From owner-svn-src-head@freebsd.org Sun Dec 9 02:58:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EFCEF1334125; Sun, 9 Dec 2018 02:58:54 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 901D874B78; Sun, 9 Dec 2018 02:58:54 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6D0FD31AF; Sun, 9 Dec 2018 02:58:54 +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 wB92ws0d047060; Sun, 9 Dec 2018 02:58:54 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB92wsRS047058; Sun, 9 Dec 2018 02:58:54 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201812090258.wB92wsRS047058@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Sun, 9 Dec 2018 02:58:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341749 - in head: share/man/man4 sys/modules/netgraph X-SVN-Group: head X-SVN-Commit-Author: sobomax X-SVN-Commit-Paths: in head: share/man/man4 sys/modules/netgraph X-SVN-Commit-Revision: 341749 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 901D874B78 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 02:58:55 -0000 Author: sobomax Date: Sun Dec 9 02:58:53 2018 New Revision: 341749 URL: https://svnweb.freebsd.org/changeset/base/341749 Log: Hook up ng_checksum(4) module and appropriate manpage to the build. The module was added back in 2016, but has never been connected. MFC after: 1 week Modified: head/share/man/man4/Makefile head/sys/modules/netgraph/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Sun Dec 9 00:42:56 2018 (r341748) +++ head/share/man/man4/Makefile Sun Dec 9 02:58:53 2018 (r341749) @@ -323,6 +323,7 @@ MAN= aac.4 \ ng_btsocket.4 \ ng_car.4 \ ng_ccatm.4 \ + ng_checksum.4 \ ng_cisco.4 \ ng_deflate.4 \ ng_device.4 \ Modified: head/sys/modules/netgraph/Makefile ============================================================================== --- head/sys/modules/netgraph/Makefile Sun Dec 9 00:42:56 2018 (r341748) +++ head/sys/modules/netgraph/Makefile Sun Dec 9 02:58:53 2018 (r341749) @@ -11,6 +11,7 @@ SUBDIR= async \ bpf \ bridge \ car \ + checksum \ cisco \ deflate \ device \ From owner-svn-src-head@freebsd.org Sun Dec 9 03:43:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 704B6133597B for ; Sun, 9 Dec 2018 03:43:26 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A4A3276E08 for ; Sun, 9 Dec 2018 03:43:25 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x831.google.com with SMTP id e5so8836977qtr.12 for ; Sat, 08 Dec 2018 19:43:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=6HUKmTDzhqBXb/l97uVcn4S2Ivnf+U9anVR6/fi+uek=; b=VRv2uzhq2WBrrtbXQg64uV1DOs/g2wgCuLjMuFRxD9zxospNM8hXHfBXlKqRS2yQLl DriLg2gZnvaWjajUhPe9mK2breuxNpdqZO70P5nP2I0WnnpLHr/OkW59NuR/ir5GTGFt dtjKpk50RuplzLJXgbPRwJYFnyCaVSv9uJnlXCl+6RisOY4qmOVnlAW8wlh8hMJpnTNJ 115tYPCNhb6F5nubmXV/KZ091gmAR+ESTvjgr+9dt3DZQ6hFt8OYIz/RVpi6XscOrjwN Mu+AoU2soyI3CI4Vl3ERCRp7sFPhyfe0oJhFDxIzuz7Mt6VPkFwbRhsIDSIQtjmvBsIQ 1DEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=6HUKmTDzhqBXb/l97uVcn4S2Ivnf+U9anVR6/fi+uek=; b=AfdLc5TUBLmzlWEyfRSCag0+qhvNw0zqw4+Ae6dz2iTIl0vKXl8hYt7QdbExIMl1Jp q7ckZZI9QzSnrWIySHpU0j9PvYCIvvbpPhzEfDVX1F5zCbkXoTW2rLfC8gI95SUHNJSq e/5wqMTKcf/fzhuM0W2IGaQOcwhW66h2u5JVl5CRqGgkOwqKRqTd5pbmSQfa6r2eJ2Aa Ci32Gx//4d1K462P/KkEkAz5S60UVWKefcEBA+P/W5YaM1myihMsgCYFdq5bU1q3aTAz 64+MZTy1t/CtBEnnrT+2pq2/vrYHfsc9eJAGQoZqXGKvEJLxWPlJVgkCVEz1F68GORDy xJHw== X-Gm-Message-State: AA+aEWajm2F8WoquGHCc3UzVg0QwILTFk8fg95//jUtfD6Zqhy4OpXaG TYQHcHCHiLSZ86VKm6HOM+Sc9vabpHaCif6Qd5AiKQ== X-Google-Smtp-Source: AFSGD/U2HtIqvvc1BKD8d2sbsHfpa/+5+yQmaZTWLjPalhWogS0ScrFYpblDXZkGyDuEVmhCKjwNokM3J35ngj+JDX0= X-Received: by 2002:ac8:3f2d:: with SMTP id c42mr7517166qtk.33.1544327004907; Sat, 08 Dec 2018 19:43:24 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> In-Reply-To: From: Warner Losh Date: Sat, 8 Dec 2018 20:43:12 -0700 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: Kevin Bowling Cc: Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org X-Rspamd-Queue-Id: A4A3276E08 X-Spamd-Result: default: False [-4.40 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; NEURAL_HAM_SHORT(-0.50)[-0.505,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[ALT1.aspmx.l.google.com,aspmx.l.google.com,ALT2.aspmx.l.google.com]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_IN_DNSWL_NONE(0.00)[1.3.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-1.89)[ip: (-6.55), ipnet: 2607:f8b0::/32(-1.49), asn: 15169(-1.30), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; FREEMAIL_CC(0.00)[gmail.com] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 03:43:26 -0000 On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik wrote: > > > > > Fully satisfying solution would be that all architectures get 64-bit > > ops, even if in the worst case they end up taking a lock. Then > > subsystems would not have to ifdef on anything. However, there > > was some opposition to this proposal and I don't think this is > > important enough to push. > > Mateusz, > > Who is opposing this particular polyfill solution? Scott Long brought > up a situation in driver development where this would be useful as > well. The polyfills lower the cognitive load and #ifdef soup which > are the right call here regardless of performance on toy ports. > I don't recall seeing the opposition either. It would have to be a global lock for all 64bit atomics.... but I think it would only be 2 atomics on those architectures. Warner > From owner-svn-src-head@freebsd.org Sun Dec 9 03:36:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 802011335553 for ; Sun, 9 Dec 2018 03:36:36 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: from mail-it1-x136.google.com (mail-it1-x136.google.com [IPv6:2607:f8b0:4864:20::136]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6E25B766B2 for ; Sun, 9 Dec 2018 03:36:35 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: by mail-it1-x136.google.com with SMTP id o19so12661846itg.5 for ; Sat, 08 Dec 2018 19:36:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kev009.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sbpeO+kvtDtOj/eyQfTsVGHNtIPUhrH83B4cpTtb4jc=; b=ddOZg43uZQ5YsRuP7gB1ujxwcxcRHTtCix/O8y/aK1/C7YEwTUxV9FGGo9/gIxcieD egXHTuonGnkN30yuwEuE0MOflh7h/tXAXrZeSEzezwUDvd3VG8FplD8wgDKX9dLUbCct J7mnNytnNymqH9evxHHFhhdyYiTIeE68y4rLw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sbpeO+kvtDtOj/eyQfTsVGHNtIPUhrH83B4cpTtb4jc=; b=A9+nGVA/hQKMMBP2kvLIjeRyFjq+InKMrfMPSvxMB6zXCFjMuY+aKDob5Vg59uLfy4 +NTVK4lQQZAblCA9kedXsKzPduVInp03Dd7Mbwaui0Ay6ZaNxhTfDCgSFxXNLuRh0rGE DDz+fjwgNp5/yPB7uZbXaxBLx/5eTt1qFsslL499HwAZXZH2btf7s3ZEqZyy7U2aX9Jk +vwZXBgiaT1XQ9Ny/5ePN2mYpGumX/+k4C7OfHfGw1o5dxLgrKbi5E6RNIOtv8rPWYIq VlQ5inDAZx2VG+pXISAM2Hs0ON1eoMpr3hAJYgU1oXjSGIpdhzc0hBPoRPO26a7+b/fp IBbw== X-Gm-Message-State: AA+aEWZDNEmFWgoJcFXuVvaujHyxBRA3j9qyv58TzBxlEaeyddYyZReS SqVzH+ZblU0EHQtBYfPhxq88Vx/KQv1l+8Pk8j0+ug== X-Google-Smtp-Source: AFSGD/WLsWK16pdT860od4lb/A6BfJJEPw+ptPCRRIT49h+2XQwdtEOvGUehFQVhnXf1IVQLd99GXJgtq6Ub2RzQOD0= X-Received: by 2002:a24:b50a:: with SMTP id v10mr7505645ite.21.1544326594588; Sat, 08 Dec 2018 19:36:34 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> In-Reply-To: From: Kevin Bowling Date: Sat, 8 Dec 2018 20:36:22 -0700 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: mjguzik@gmail.com Cc: ian@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 6E25B766B2 X-Spamd-Result: default: False [-4.58 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[kev009.com]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[kev009.com:~]; MX_GOOD(-0.01)[alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com]; RCVD_IN_DNSWL_NONE(0.00)[6.3.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.50)[-0.498,0]; R_DKIM_PERMFAIL(0.00)[kev009.com]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-1.78)[ip: (-6.01), ipnet: 2607:f8b0::/32(-1.49), asn: 15169(-1.30), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 03:36:36 -0000 On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik wrote: > > Fully satisfying solution would be that all architectures get 64-bit > ops, even if in the worst case they end up taking a lock. Then > subsystems would not have to ifdef on anything. However, there > was some opposition to this proposal and I don't think this is > important enough to push. Mateusz, Who is opposing this particular polyfill solution? Scott Long brought up a situation in driver development where this would be useful as well. The polyfills lower the cognitive load and #ifdef soup which are the right call here regardless of performance on toy ports. Regards, Kevin From owner-svn-src-head@freebsd.org Sun Dec 9 04:54:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7A9DE130BBE5; Sun, 9 Dec 2018 04:54:56 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 22A667926C; Sun, 9 Dec 2018 04:54:56 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 052C34AA7; Sun, 9 Dec 2018 04:54:56 +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 wB94st5l009608; Sun, 9 Dec 2018 04:54:55 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB94staQ009607; Sun, 9 Dec 2018 04:54:55 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812090454.wB94staQ009607@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 9 Dec 2018 04:54:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341752 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 341752 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 22A667926C X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 04:54:56 -0000 Author: jhibbits Date: Sun Dec 9 04:54:55 2018 New Revision: 341752 URL: https://svnweb.freebsd.org/changeset/base/341752 Log: powerpc/SPE: Copy lower part of source register to target for efdabs/efdnabs/efdneg MFC after: 1 week MFC With: r341751 Modified: head/sys/powerpc/booke/spe.c Modified: head/sys/powerpc/booke/spe.c ============================================================================== --- head/sys/powerpc/booke/spe.c Sun Dec 9 04:13:14 2018 (r341751) +++ head/sys/powerpc/booke/spe.c Sun Dec 9 04:54:55 2018 (r341752) @@ -543,16 +543,19 @@ spe_handle_fpdata(struct trapframe *frame) case EFDABS: curthread->td_pcb->pcb_vec.vr[rd][0] = curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); + frame->fixreg[rd] = frame->fixreg[ra]; enable_vec(curthread); break; case EFDNABS: curthread->td_pcb->pcb_vec.vr[rd][0] = curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); + frame->fixreg[rd] = frame->fixreg[ra]; enable_vec(curthread); break; case EFDNEG: curthread->td_pcb->pcb_vec.vr[rd][0] = curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); + frame->fixreg[rd] = frame->fixreg[ra]; enable_vec(curthread); break; case EFDCFS: From owner-svn-src-head@freebsd.org Sun Dec 9 04:13:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73FBE130A4AE; Sun, 9 Dec 2018 04:13:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1BF6977AB8; Sun, 9 Dec 2018 04:13: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F10A243FB; Sun, 9 Dec 2018 04:13:14 +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 wB94DENQ089026; Sun, 9 Dec 2018 04:13:14 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB94DEeT089025; Sun, 9 Dec 2018 04:13:14 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812090413.wB94DEeT089025@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 9 Dec 2018 04:13:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341751 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 341751 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1BF6977AB8 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 04:13:15 -0000 Author: jhibbits Date: Sun Dec 9 04:13:14 2018 New Revision: 341751 URL: https://svnweb.freebsd.org/changeset/base/341751 Log: powerpc/SPE: Reload vector registers after efdabs/efdnabs/efdneg While here, also style(9)-adjust indents around this code. Modified: head/sys/powerpc/booke/spe.c Modified: head/sys/powerpc/booke/spe.c ============================================================================== --- head/sys/powerpc/booke/spe.c Sun Dec 9 03:07:45 2018 (r341750) +++ head/sys/powerpc/booke/spe.c Sun Dec 9 04:13:14 2018 (r341751) @@ -464,17 +464,17 @@ spe_handle_fpdata(struct trapframe *frame) switch (instr_sec_op) { case EVFSABS: curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); + curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); frame->fixreg[rd] = frame->fixreg[ra] & ~(1U << 31); break; case EVFSNABS: curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); + curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); frame->fixreg[rd] = frame->fixreg[ra] | (1U << 31); break; case EVFSNEG: curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); + curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); frame->fixreg[rd] = frame->fixreg[ra] ^ (1U << 31); break; default: @@ -542,15 +542,18 @@ spe_handle_fpdata(struct trapframe *frame) switch (instr_sec_op) { case EFDABS: curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); + curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); + enable_vec(curthread); break; case EFDNABS: curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); + curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); + enable_vec(curthread); break; case EFDNEG: curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); + curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); + enable_vec(curthread); break; case EFDCFS: spe_explode(&fpemu, &fpemu.fe_f3, SINGLE, From owner-svn-src-head@freebsd.org Sun Dec 9 06:06:08 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CF4E130E62E; Sun, 9 Dec 2018 06:06:08 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9F93F7B644; Sun, 9 Dec 2018 06:06:07 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7AC145603; Sun, 9 Dec 2018 06:06:07 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB9667vf045393; Sun, 9 Dec 2018 06:06:07 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9667Kf045391; Sun, 9 Dec 2018 06:06:07 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201812090606.wB9667Kf045391@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sun, 9 Dec 2018 06:06:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341754 - in head/sys: modules powerpc/conf X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: in head/sys: modules powerpc/conf X-SVN-Commit-Revision: 341754 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9F93F7B644 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.96)[-0.962,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 06:06:08 -0000 Author: scottl Date: Sun Dec 9 06:06:06 2018 New Revision: 341754 URL: https://svnweb.freebsd.org/changeset/base/341754 Log: Remove the mps driver from powerpc 32bit GENERIC, and don't build it and mpr as a module for powerpc or mips. An upcoming commit will cause these drivers to rely on the presence of 64bit atomic operations. Discussed with jhibbits. Modified: head/sys/modules/Makefile head/sys/powerpc/conf/GENERIC Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Sun Dec 9 05:35:22 2018 (r341753) +++ head/sys/modules/Makefile Sun Dec 9 06:06:06 2018 (r341754) @@ -250,8 +250,8 @@ SUBDIR= \ ${_mly} \ mmc \ mmcsd \ - mpr \ - mps \ + ${_mpr} \ + ${_mps} \ mpt \ mqueue \ mrsas \ @@ -521,6 +521,12 @@ _rtwnfw= rtwnfw ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \ ${MACHINE_CPUARCH} != "riscv" _cxgbe= cxgbe +.endif + +# These rely on 64bit atomics +.if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_CPUARCH} != "mips" +_mps= mps +_mpr= mpr .endif .if ${MK_TESTS} != "no" || defined(ALL_MODULES) Modified: head/sys/powerpc/conf/GENERIC ============================================================================== --- head/sys/powerpc/conf/GENERIC Sun Dec 9 05:35:22 2018 (r341753) +++ head/sys/powerpc/conf/GENERIC Sun Dec 9 06:06:06 2018 (r341754) @@ -129,7 +129,6 @@ options AHC_ALLOW_MEMIO # Attempt to use memory mappe device isp # Qlogic family device ispfw # Firmware module for Qlogic host adapters device mpt # LSI-Logic MPT-Fusion -device mps # LSI-Logic MPT-Fusion 2 device sym # NCR/Symbios/LSI Logic 53C8XX/53C1010/53C1510D # ATA/SCSI peripherals From owner-svn-src-head@freebsd.org Sun Dec 9 06:16:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3809F130EC14; Sun, 9 Dec 2018 06:16:55 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CFB547BEF9; Sun, 9 Dec 2018 06:16:54 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AAEFC57A0; Sun, 9 Dec 2018 06:16:54 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB96GsGq050782; Sun, 9 Dec 2018 06:16:54 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB96GsAH050781; Sun, 9 Dec 2018 06:16:54 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201812090616.wB96GsAH050781@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sun, 9 Dec 2018 06:16:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341756 - head/sys/cam X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: head/sys/cam X-SVN-Commit-Revision: 341756 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CFB547BEF9 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.96)[-0.962,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 06:16:55 -0000 Author: scottl Date: Sun Dec 9 06:16:54 2018 New Revision: 341756 URL: https://svnweb.freebsd.org/changeset/base/341756 Log: Don't allocate the config_intrhook separately from the softc, it's small enough that it costs more code to handle the malloc/free than it saves. Modified: head/sys/cam/cam_xpt.c Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Sun Dec 9 06:10:11 2018 (r341755) +++ head/sys/cam/cam_xpt.c Sun Dec 9 06:16:54 2018 (r341756) @@ -129,7 +129,7 @@ struct xpt_softc { TAILQ_HEAD(,cam_eb) xpt_busses; u_int bus_generation; - struct intr_config_hook *xpt_config_hook; + struct intr_config_hook xpt_config_hook; int boot_delay; struct callout boot_callout; @@ -982,17 +982,8 @@ xpt_init(void *dummy) /* * Register a callback for when interrupts are enabled. */ - xsoftc.xpt_config_hook = - (struct intr_config_hook *)malloc(sizeof(struct intr_config_hook), - M_CAMXPT, M_NOWAIT | M_ZERO); - if (xsoftc.xpt_config_hook == NULL) { - printf("xpt_init: Cannot malloc config hook " - "- failing attach\n"); - return (ENOMEM); - } - xsoftc.xpt_config_hook->ich_func = xpt_config; - if (config_intrhook_establish(xsoftc.xpt_config_hook) != 0) { - free (xsoftc.xpt_config_hook, M_CAMXPT); + xsoftc.xpt_config_hook.ich_func = xpt_config; + if (config_intrhook_establish(&xsoftc.xpt_config_hook) != 0) { printf("xpt_init: config_intrhook_establish failed " "- failing attach\n"); } @@ -5245,9 +5236,7 @@ xpt_finishconfig_task(void *context, int pending) xpt_for_all_devices(xptpassannouncefunc, NULL); /* Release our hook so that the boot can continue. */ - config_intrhook_disestablish(xsoftc.xpt_config_hook); - free(xsoftc.xpt_config_hook, M_CAMXPT); - xsoftc.xpt_config_hook = NULL; + config_intrhook_disestablish(&xsoftc.xpt_config_hook); free(context, M_CAMXPT); } From owner-svn-src-head@freebsd.org Sun Dec 9 06:10:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52323130E70A; Sun, 9 Dec 2018 06:10:12 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E6F817B805; Sun, 9 Dec 2018 06:10:11 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C379A560D; Sun, 9 Dec 2018 06:10:11 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB96ABME045825; Sun, 9 Dec 2018 06:10:11 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB96ABUf045821; Sun, 9 Dec 2018 06:10:11 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201812090610.wB96ABUf045821@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sun, 9 Dec 2018 06:10:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341755 - in head/sys/dev: mpr mps X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: in head/sys/dev: mpr mps X-SVN-Commit-Revision: 341755 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E6F817B805 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 06:10:12 -0000 Author: scottl Date: Sun Dec 9 06:10:11 2018 New Revision: 341755 URL: https://svnweb.freebsd.org/changeset/base/341755 Log: Copy and clear the reply descriptor atomically. This prevents concurrency in the interrupt handlers (usually due to timeout/error recovery) from seeing and processing the same descriptor twice. Modified: head/sys/dev/mpr/mpr.c head/sys/dev/mps/mps.c Modified: head/sys/dev/mpr/mpr.c ============================================================================== --- head/sys/dev/mpr/mpr.c Sun Dec 9 06:06:06 2018 (r341754) +++ head/sys/dev/mpr/mpr.c Sun Dec 9 06:10:11 2018 (r341755) @@ -2493,12 +2493,13 @@ void mpr_intr_locked(void *data) { MPI2_REPLY_DESCRIPTORS_UNION *desc; + MPI2_DIAG_RELEASE_REPLY *rel_rep; + mpr_fw_diagnostic_buffer_t *pBuffer; struct mpr_softc *sc; + uint64_t tdesc; struct mpr_command *cm = NULL; uint8_t flags; u_int pq; - MPI2_DIAG_RELEASE_REPLY *rel_rep; - mpr_fw_diagnostic_buffer_t *pBuffer; sc = (struct mpr_softc *)data; @@ -2510,6 +2511,17 @@ mpr_intr_locked(void *data) for ( ;; ) { cm = NULL; desc = &sc->post_queue[sc->replypostindex]; + + /* + * Copy and clear out the descriptor so that any reentry will + * immediately know that this descriptor has already been + * looked at. There is unfortunate casting magic because the + * MPI API doesn't have a cardinal 64bit type. + */ + tdesc = 0xffffffffffffffff; + tdesc = atomic_swap_64((uint64_t *)desc, tdesc); + desc = (MPI2_REPLY_DESCRIPTORS_UNION *)&tdesc; + flags = desc->Default.ReplyFlags & MPI2_RPY_DESCRIPT_FLAGS_TYPE_MASK; if ((flags == MPI2_RPY_DESCRIPT_FLAGS_UNUSED) || @@ -2604,7 +2616,8 @@ mpr_intr_locked(void *data) cm = &sc->commands[ le16toh(desc->AddressReply.SMID)]; KASSERT(cm->cm_state == MPR_CM_STATE_INQUEUE, - ("command not inqueue\n")); + ("command SMID %d not inqueue\n", + desc->AddressReply.SMID)); cm->cm_state = MPR_CM_STATE_BUSY; cm->cm_reply = reply; cm->cm_reply_data = @@ -2630,9 +2643,6 @@ mpr_intr_locked(void *data) mpr_display_reply_info(sc,cm->cm_reply); mpr_complete_command(sc, cm); } - - desc->Words.Low = 0xffffffff; - desc->Words.High = 0xffffffff; } if (pq != sc->replypostindex) { Modified: head/sys/dev/mps/mps.c ============================================================================== --- head/sys/dev/mps/mps.c Sun Dec 9 06:06:06 2018 (r341754) +++ head/sys/dev/mps/mps.c Sun Dec 9 06:10:11 2018 (r341755) @@ -2361,12 +2361,13 @@ void mps_intr_locked(void *data) { MPI2_REPLY_DESCRIPTORS_UNION *desc; + MPI2_DIAG_RELEASE_REPLY *rel_rep; + mps_fw_diagnostic_buffer_t *pBuffer; struct mps_softc *sc; struct mps_command *cm = NULL; + uint64_t tdesc; uint8_t flags; u_int pq; - MPI2_DIAG_RELEASE_REPLY *rel_rep; - mps_fw_diagnostic_buffer_t *pBuffer; sc = (struct mps_softc *)data; @@ -2378,6 +2379,17 @@ mps_intr_locked(void *data) for ( ;; ) { cm = NULL; desc = &sc->post_queue[sc->replypostindex]; + + /* + * Copy and clear out the descriptor so that any reentry will + * immediately know that this descriptor has already been + * looked at. There is unfortunate casting magic because the + * MPI API doesn't have a cardinal 64bit type. + */ + tdesc = 0xffffffffffffffff; + tdesc = atomic_swap_64((uint64_t *)desc, tdesc); + desc = (MPI2_REPLY_DESCRIPTORS_UNION *)&tdesc; + flags = desc->Default.ReplyFlags & MPI2_RPY_DESCRIPT_FLAGS_TYPE_MASK; if ((flags == MPI2_RPY_DESCRIPT_FLAGS_UNUSED) @@ -2496,9 +2508,6 @@ mps_intr_locked(void *data) mps_display_reply_info(sc,cm->cm_reply); mps_complete_command(sc, cm); } - - desc->Words.Low = 0xffffffff; - desc->Words.High = 0xffffffff; } if (pq != sc->replypostindex) { From owner-svn-src-head@freebsd.org Sun Dec 9 06:52:26 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA456130FCCF; Sun, 9 Dec 2018 06:52:26 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5DB937D39E; Sun, 9 Dec 2018 06:52:26 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 406835E18; Sun, 9 Dec 2018 06:52:26 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB96qQkE071405; Sun, 9 Dec 2018 06:52:26 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB96qQC1071404; Sun, 9 Dec 2018 06:52:26 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201812090652.wB96qQC1071404@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sun, 9 Dec 2018 06:52:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341762 - head/sys/modules X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: head/sys/modules X-SVN-Commit-Revision: 341762 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5DB937D39E X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.96)[-0.962,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 06:52:26 -0000 Author: scottl Date: Sun Dec 9 06:52:25 2018 New Revision: 341762 URL: https://svnweb.freebsd.org/changeset/base/341762 Log: I missed powerpcspe in the previous commit for excluding mps and mpr. I also learned that 'mips' is overly broad and covers 64bit architectures too. However, it's not worth the fight right now, so any refinements will have to come another day. Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Sun Dec 9 06:48:44 2018 (r341761) +++ head/sys/modules/Makefile Sun Dec 9 06:52:25 2018 (r341762) @@ -524,7 +524,8 @@ _cxgbe= cxgbe .endif # These rely on 64bit atomics -.if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_CPUARCH} != "mips" +.if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspc" && \ + ${MACHINE_CPUARCH} != "mips" _mps= mps _mpr= mpr .endif From owner-svn-src-head@freebsd.org Sun Dec 9 06:45:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DE8B130F76C; Sun, 9 Dec 2018 06:45:51 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 16D907CC7A; Sun, 9 Dec 2018 06:45:51 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E637F5C8A; Sun, 9 Dec 2018 06:45:50 +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 wB96joCY066336; Sun, 9 Dec 2018 06:45:50 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB96jnso066329; Sun, 9 Dec 2018 06:45:49 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201812090645.wB96jnso066329@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sun, 9 Dec 2018 06:45:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_common contrib/wpa/src/eap... X-SVN-Commit-Revision: 341759 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 16D907CC7A X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-0.99)[-0.993,0]; NEURAL_HAM_SHORT(-0.97)[-0.965,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 06:45:52 -0000 Author: cy Date: Sun Dec 9 06:45:49 2018 New Revision: 341759 URL: https://svnweb.freebsd.org/changeset/base/341759 Log: MFV r341618: Update wpa 2.6 --> 2.7. Added: head/contrib/wpa/src/ap/dpp_hostapd.c - copied unchanged from r341619, vendor/wpa/dist/src/ap/dpp_hostapd.c head/contrib/wpa/src/ap/dpp_hostapd.h - copied unchanged from r341619, vendor/wpa/dist/src/ap/dpp_hostapd.h head/contrib/wpa/src/ap/eth_p_oui.c - copied unchanged from r341619, vendor/wpa/dist/src/ap/eth_p_oui.c head/contrib/wpa/src/ap/eth_p_oui.h - copied unchanged from r341619, vendor/wpa/dist/src/ap/eth_p_oui.h head/contrib/wpa/src/ap/fils_hlp.c - copied unchanged from r341619, vendor/wpa/dist/src/ap/fils_hlp.c head/contrib/wpa/src/ap/fils_hlp.h - copied unchanged from r341619, vendor/wpa/dist/src/ap/fils_hlp.h head/contrib/wpa/src/ap/gas_query_ap.c - copied unchanged from r341619, vendor/wpa/dist/src/ap/gas_query_ap.c head/contrib/wpa/src/ap/gas_query_ap.h - copied unchanged from r341619, vendor/wpa/dist/src/ap/gas_query_ap.h head/contrib/wpa/src/ap/ieee802_11_he.c - copied unchanged from r341619, vendor/wpa/dist/src/ap/ieee802_11_he.c head/contrib/wpa/src/common/dhcp.h - copied, changed from r341619, vendor/wpa/dist/src/common/dhcp.h head/contrib/wpa/src/common/dpp.c - copied unchanged from r341619, vendor/wpa/dist/src/common/dpp.c head/contrib/wpa/src/common/dpp.h - copied unchanged from r341619, vendor/wpa/dist/src/common/dpp.h head/contrib/wpa/src/common/gas_server.c - copied unchanged from r341619, vendor/wpa/dist/src/common/gas_server.c head/contrib/wpa/src/common/gas_server.h - copied unchanged from r341619, vendor/wpa/dist/src/common/gas_server.h head/contrib/wpa/src/crypto/crypto_linux.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/crypto_linux.c head/contrib/wpa/src/crypto/crypto_nettle.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/crypto_nettle.c head/contrib/wpa/src/crypto/crypto_wolfssl.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/crypto_wolfssl.c head/contrib/wpa/src/crypto/fips_prf_wolfssl.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/fips_prf_wolfssl.c head/contrib/wpa/src/crypto/sha384-kdf.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/sha384-kdf.c head/contrib/wpa/src/crypto/sha384.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/sha384.c head/contrib/wpa/src/crypto/sha512-kdf.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/sha512-kdf.c head/contrib/wpa/src/crypto/sha512-prf.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/sha512-prf.c head/contrib/wpa/src/crypto/sha512.h - copied unchanged from r341619, vendor/wpa/dist/src/crypto/sha512.h head/contrib/wpa/src/crypto/tls_wolfssl.c - copied unchanged from r341619, vendor/wpa/dist/src/crypto/tls_wolfssl.c head/contrib/wpa/src/drivers/driver_macsec_linux.c - copied unchanged from r341619, vendor/wpa/dist/src/drivers/driver_macsec_linux.c head/contrib/wpa/src/drivers/driver_wired_common.c - copied unchanged from r341619, vendor/wpa/dist/src/drivers/driver_wired_common.c head/contrib/wpa/src/drivers/driver_wired_common.h - copied unchanged from r341619, vendor/wpa/dist/src/drivers/driver_wired_common.h head/contrib/wpa/src/utils/crc32.c - copied unchanged from r341619, vendor/wpa/dist/src/utils/crc32.c head/contrib/wpa/src/utils/crc32.h - copied unchanged from r341619, vendor/wpa/dist/src/utils/crc32.h head/contrib/wpa/src/utils/json.c - copied unchanged from r341619, vendor/wpa/dist/src/utils/json.c head/contrib/wpa/src/utils/json.h - copied unchanged from r341619, vendor/wpa/dist/src/utils/json.h head/contrib/wpa/wpa_supplicant/dpp_supplicant.c - copied unchanged from r341619, vendor/wpa/dist/wpa_supplicant/dpp_supplicant.c head/contrib/wpa/wpa_supplicant/dpp_supplicant.h - copied unchanged from r341619, vendor/wpa/dist/wpa_supplicant/dpp_supplicant.h head/contrib/wpa/wpa_supplicant/examples/dpp-qrcode.py - copied unchanged from r341619, vendor/wpa/dist/wpa_supplicant/examples/dpp-qrcode.py head/contrib/wpa/wpa_supplicant/op_classes.c - copied unchanged from r341619, vendor/wpa/dist/wpa_supplicant/op_classes.c head/contrib/wpa/wpa_supplicant/rrm.c - copied unchanged from r341619, vendor/wpa/dist/wpa_supplicant/rrm.c Deleted: head/contrib/wpa/src/ap/peerkey_auth.c head/contrib/wpa/src/rsn_supp/peerkey.c head/contrib/wpa/src/rsn_supp/peerkey.h Modified: head/contrib/wpa/CONTRIBUTIONS head/contrib/wpa/COPYING head/contrib/wpa/README head/contrib/wpa/hostapd/ChangeLog head/contrib/wpa/hostapd/README head/contrib/wpa/hostapd/config_file.c head/contrib/wpa/hostapd/config_file.h head/contrib/wpa/hostapd/ctrl_iface.c head/contrib/wpa/hostapd/defconfig head/contrib/wpa/hostapd/hlr_auc_gw.c head/contrib/wpa/hostapd/hostapd.conf head/contrib/wpa/hostapd/hostapd.eap_user_sqlite head/contrib/wpa/hostapd/hostapd_cli.c head/contrib/wpa/hostapd/main.c head/contrib/wpa/hs20/client/est.c head/contrib/wpa/hs20/client/oma_dm_client.c head/contrib/wpa/hs20/client/osu_client.c head/contrib/wpa/hs20/client/osu_client.h head/contrib/wpa/src/ap/acs.c head/contrib/wpa/src/ap/acs.h head/contrib/wpa/src/ap/ap_config.c head/contrib/wpa/src/ap/ap_config.h head/contrib/wpa/src/ap/ap_drv_ops.c head/contrib/wpa/src/ap/ap_drv_ops.h head/contrib/wpa/src/ap/ap_mlme.c head/contrib/wpa/src/ap/authsrv.c head/contrib/wpa/src/ap/beacon.c head/contrib/wpa/src/ap/beacon.h head/contrib/wpa/src/ap/bss_load.c head/contrib/wpa/src/ap/ctrl_iface_ap.c head/contrib/wpa/src/ap/ctrl_iface_ap.h head/contrib/wpa/src/ap/dfs.c head/contrib/wpa/src/ap/dfs.h head/contrib/wpa/src/ap/dhcp_snoop.c head/contrib/wpa/src/ap/drv_callbacks.c head/contrib/wpa/src/ap/eap_user_db.c head/contrib/wpa/src/ap/gas_serv.c head/contrib/wpa/src/ap/gas_serv.h head/contrib/wpa/src/ap/hostapd.c head/contrib/wpa/src/ap/hostapd.h head/contrib/wpa/src/ap/hs20.c head/contrib/wpa/src/ap/hs20.h head/contrib/wpa/src/ap/hw_features.c head/contrib/wpa/src/ap/ieee802_11.c head/contrib/wpa/src/ap/ieee802_11.h head/contrib/wpa/src/ap/ieee802_11_auth.c head/contrib/wpa/src/ap/ieee802_11_auth.h head/contrib/wpa/src/ap/ieee802_11_ht.c head/contrib/wpa/src/ap/ieee802_11_shared.c head/contrib/wpa/src/ap/ieee802_11_vht.c head/contrib/wpa/src/ap/ieee802_1x.c head/contrib/wpa/src/ap/ieee802_1x.h head/contrib/wpa/src/ap/ndisc_snoop.c head/contrib/wpa/src/ap/neighbor_db.c head/contrib/wpa/src/ap/neighbor_db.h head/contrib/wpa/src/ap/pmksa_cache_auth.c head/contrib/wpa/src/ap/pmksa_cache_auth.h head/contrib/wpa/src/ap/rrm.c head/contrib/wpa/src/ap/rrm.h head/contrib/wpa/src/ap/sta_info.c head/contrib/wpa/src/ap/sta_info.h head/contrib/wpa/src/ap/taxonomy.c head/contrib/wpa/src/ap/tkip_countermeasures.c head/contrib/wpa/src/ap/vlan_init.c head/contrib/wpa/src/ap/wmm.c head/contrib/wpa/src/ap/wnm_ap.c head/contrib/wpa/src/ap/wnm_ap.h head/contrib/wpa/src/ap/wpa_auth.c head/contrib/wpa/src/ap/wpa_auth.h head/contrib/wpa/src/ap/wpa_auth_ft.c head/contrib/wpa/src/ap/wpa_auth_glue.c head/contrib/wpa/src/ap/wpa_auth_i.h head/contrib/wpa/src/ap/wpa_auth_ie.c head/contrib/wpa/src/ap/wpa_auth_ie.h head/contrib/wpa/src/ap/wps_hostapd.c head/contrib/wpa/src/common/common_module_tests.c head/contrib/wpa/src/common/ctrl_iface_common.c head/contrib/wpa/src/common/ctrl_iface_common.h head/contrib/wpa/src/common/defs.h head/contrib/wpa/src/common/gas.c head/contrib/wpa/src/common/gas.h head/contrib/wpa/src/common/hw_features_common.c head/contrib/wpa/src/common/hw_features_common.h head/contrib/wpa/src/common/ieee802_11_common.c head/contrib/wpa/src/common/ieee802_11_common.h head/contrib/wpa/src/common/ieee802_11_defs.h head/contrib/wpa/src/common/ieee802_1x_defs.h head/contrib/wpa/src/common/privsep_commands.h head/contrib/wpa/src/common/qca-vendor.h head/contrib/wpa/src/common/sae.c head/contrib/wpa/src/common/sae.h head/contrib/wpa/src/common/version.h head/contrib/wpa/src/common/wpa_common.c head/contrib/wpa/src/common/wpa_common.h head/contrib/wpa/src/common/wpa_ctrl.h head/contrib/wpa/src/common/wpa_helpers.c head/contrib/wpa/src/crypto/aes-ctr.c head/contrib/wpa/src/crypto/aes-internal-dec.c head/contrib/wpa/src/crypto/aes-internal-enc.c head/contrib/wpa/src/crypto/aes-siv.c head/contrib/wpa/src/crypto/aes.h head/contrib/wpa/src/crypto/aes_siv.h head/contrib/wpa/src/crypto/aes_wrap.h head/contrib/wpa/src/crypto/crypto.h head/contrib/wpa/src/crypto/crypto_gnutls.c head/contrib/wpa/src/crypto/crypto_internal-modexp.c head/contrib/wpa/src/crypto/crypto_libtomcrypt.c head/contrib/wpa/src/crypto/crypto_module_tests.c head/contrib/wpa/src/crypto/crypto_none.c head/contrib/wpa/src/crypto/crypto_openssl.c head/contrib/wpa/src/crypto/des-internal.c head/contrib/wpa/src/crypto/dh_groups.c head/contrib/wpa/src/crypto/ms_funcs.c head/contrib/wpa/src/crypto/ms_funcs.h head/contrib/wpa/src/crypto/random.c head/contrib/wpa/src/crypto/sha1-internal.c head/contrib/wpa/src/crypto/sha256-internal.c head/contrib/wpa/src/crypto/sha256-kdf.c head/contrib/wpa/src/crypto/sha384-prf.c head/contrib/wpa/src/crypto/sha384.h head/contrib/wpa/src/crypto/tls.h head/contrib/wpa/src/crypto/tls_gnutls.c head/contrib/wpa/src/crypto/tls_internal.c head/contrib/wpa/src/crypto/tls_none.c head/contrib/wpa/src/crypto/tls_openssl.c head/contrib/wpa/src/drivers/driver.h head/contrib/wpa/src/drivers/driver_common.c head/contrib/wpa/src/drivers/driver_macsec_qca.c head/contrib/wpa/src/drivers/driver_ndis.c head/contrib/wpa/src/drivers/driver_nl80211.h head/contrib/wpa/src/drivers/driver_nl80211_capa.c head/contrib/wpa/src/drivers/driver_nl80211_event.c head/contrib/wpa/src/drivers/driver_nl80211_monitor.c head/contrib/wpa/src/drivers/driver_nl80211_scan.c head/contrib/wpa/src/drivers/driver_privsep.c head/contrib/wpa/src/drivers/driver_wired.c head/contrib/wpa/src/drivers/drivers.c head/contrib/wpa/src/eap_common/eap_eke_common.c head/contrib/wpa/src/eap_common/eap_fast_common.c head/contrib/wpa/src/eap_common/eap_pwd_common.c head/contrib/wpa/src/eap_common/eap_pwd_common.h head/contrib/wpa/src/eap_common/eap_sim_common.c head/contrib/wpa/src/eap_peer/eap.c head/contrib/wpa/src/eap_peer/eap.h head/contrib/wpa/src/eap_peer/eap_aka.c head/contrib/wpa/src/eap_peer/eap_config.h head/contrib/wpa/src/eap_peer/eap_eke.c head/contrib/wpa/src/eap_peer/eap_fast.c head/contrib/wpa/src/eap_peer/eap_fast_pac.c head/contrib/wpa/src/eap_peer/eap_gpsk.c head/contrib/wpa/src/eap_peer/eap_i.h head/contrib/wpa/src/eap_peer/eap_ikev2.c head/contrib/wpa/src/eap_peer/eap_leap.c head/contrib/wpa/src/eap_peer/eap_mschapv2.c head/contrib/wpa/src/eap_peer/eap_pax.c head/contrib/wpa/src/eap_peer/eap_peap.c head/contrib/wpa/src/eap_peer/eap_proxy.h head/contrib/wpa/src/eap_peer/eap_proxy_dummy.c head/contrib/wpa/src/eap_peer/eap_psk.c head/contrib/wpa/src/eap_peer/eap_pwd.c head/contrib/wpa/src/eap_peer/eap_sake.c head/contrib/wpa/src/eap_peer/eap_sim.c head/contrib/wpa/src/eap_peer/eap_tls.c head/contrib/wpa/src/eap_peer/eap_tls_common.c head/contrib/wpa/src/eap_peer/eap_tls_common.h head/contrib/wpa/src/eap_peer/eap_ttls.c head/contrib/wpa/src/eap_peer/ikev2.c head/contrib/wpa/src/eap_peer/tncc.c head/contrib/wpa/src/eap_server/eap.h head/contrib/wpa/src/eap_server/eap_i.h head/contrib/wpa/src/eap_server/eap_server.c head/contrib/wpa/src/eap_server/eap_server_aka.c head/contrib/wpa/src/eap_server/eap_server_eke.c head/contrib/wpa/src/eap_server/eap_server_fast.c head/contrib/wpa/src/eap_server/eap_server_gpsk.c head/contrib/wpa/src/eap_server/eap_server_gtc.c head/contrib/wpa/src/eap_server/eap_server_ikev2.c head/contrib/wpa/src/eap_server/eap_server_mschapv2.c head/contrib/wpa/src/eap_server/eap_server_pax.c head/contrib/wpa/src/eap_server/eap_server_psk.c head/contrib/wpa/src/eap_server/eap_server_pwd.c head/contrib/wpa/src/eap_server/eap_server_sake.c head/contrib/wpa/src/eap_server/eap_server_sim.c head/contrib/wpa/src/eap_server/eap_server_tls.c head/contrib/wpa/src/eap_server/eap_server_tls_common.c head/contrib/wpa/src/eap_server/eap_server_ttls.c head/contrib/wpa/src/eap_server/eap_server_wsc.c head/contrib/wpa/src/eap_server/eap_tls_common.h head/contrib/wpa/src/eap_server/ikev2.c head/contrib/wpa/src/eap_server/tncs.c head/contrib/wpa/src/eapol_auth/eapol_auth_sm.c head/contrib/wpa/src/eapol_auth/eapol_auth_sm.h head/contrib/wpa/src/eapol_supp/eapol_supp_sm.c head/contrib/wpa/src/eapol_supp/eapol_supp_sm.h head/contrib/wpa/src/fst/fst_ctrl_aux.h head/contrib/wpa/src/fst/fst_ctrl_iface.c head/contrib/wpa/src/fst/fst_group.c head/contrib/wpa/src/fst/fst_iface.h head/contrib/wpa/src/fst/fst_session.c head/contrib/wpa/src/l2_packet/l2_packet.h head/contrib/wpa/src/l2_packet/l2_packet_privsep.c head/contrib/wpa/src/p2p/p2p.c head/contrib/wpa/src/p2p/p2p.h head/contrib/wpa/src/p2p/p2p_go_neg.c head/contrib/wpa/src/p2p/p2p_group.c head/contrib/wpa/src/p2p/p2p_i.h head/contrib/wpa/src/p2p/p2p_pd.c head/contrib/wpa/src/p2p/p2p_sd.c head/contrib/wpa/src/pae/ieee802_1x_cp.c head/contrib/wpa/src/pae/ieee802_1x_kay.c head/contrib/wpa/src/pae/ieee802_1x_kay.h head/contrib/wpa/src/pae/ieee802_1x_kay_i.h head/contrib/wpa/src/pae/ieee802_1x_secy_ops.c head/contrib/wpa/src/pae/ieee802_1x_secy_ops.h head/contrib/wpa/src/radius/radius.c head/contrib/wpa/src/radius/radius.h head/contrib/wpa/src/radius/radius_client.c head/contrib/wpa/src/radius/radius_das.c head/contrib/wpa/src/radius/radius_das.h head/contrib/wpa/src/radius/radius_server.c head/contrib/wpa/src/radius/radius_server.h head/contrib/wpa/src/rsn_supp/pmksa_cache.c head/contrib/wpa/src/rsn_supp/pmksa_cache.h head/contrib/wpa/src/rsn_supp/preauth.c head/contrib/wpa/src/rsn_supp/tdls.c head/contrib/wpa/src/rsn_supp/wpa.c head/contrib/wpa/src/rsn_supp/wpa.h head/contrib/wpa/src/rsn_supp/wpa_ft.c head/contrib/wpa/src/rsn_supp/wpa_i.h head/contrib/wpa/src/rsn_supp/wpa_ie.c head/contrib/wpa/src/rsn_supp/wpa_ie.h head/contrib/wpa/src/tls/libtommath.c head/contrib/wpa/src/tls/rsa.c head/contrib/wpa/src/tls/tlsv1_client.c head/contrib/wpa/src/tls/tlsv1_client_read.c head/contrib/wpa/src/tls/tlsv1_common.c head/contrib/wpa/src/tls/tlsv1_cred.c head/contrib/wpa/src/tls/tlsv1_server.c head/contrib/wpa/src/tls/x509v3.c head/contrib/wpa/src/utils/base64.c head/contrib/wpa/src/utils/base64.h head/contrib/wpa/src/utils/browser-wpadebug.c head/contrib/wpa/src/utils/common.c head/contrib/wpa/src/utils/common.h head/contrib/wpa/src/utils/eloop.h head/contrib/wpa/src/utils/http_curl.c head/contrib/wpa/src/utils/os.h head/contrib/wpa/src/utils/os_none.c head/contrib/wpa/src/utils/os_unix.c head/contrib/wpa/src/utils/os_win32.c head/contrib/wpa/src/utils/trace.c head/contrib/wpa/src/utils/utils_module_tests.c head/contrib/wpa/src/utils/uuid.c head/contrib/wpa/src/utils/uuid.h head/contrib/wpa/src/utils/wpa_debug.c head/contrib/wpa/src/utils/wpa_debug.h head/contrib/wpa/src/utils/wpabuf.c head/contrib/wpa/src/utils/xml-utils.c head/contrib/wpa/src/wps/wps.c head/contrib/wpa/src/wps/wps_common.c head/contrib/wpa/src/wps/wps_er.c head/contrib/wpa/src/wps/wps_registrar.c head/contrib/wpa/wpa_supplicant/Android.mk head/contrib/wpa/wpa_supplicant/ChangeLog head/contrib/wpa/wpa_supplicant/README head/contrib/wpa/wpa_supplicant/README-HS20 head/contrib/wpa/wpa_supplicant/android.config head/contrib/wpa/wpa_supplicant/ap.c head/contrib/wpa/wpa_supplicant/ap.h head/contrib/wpa/wpa_supplicant/autoscan.c head/contrib/wpa/wpa_supplicant/bgscan.c head/contrib/wpa/wpa_supplicant/bgscan_learn.c head/contrib/wpa/wpa_supplicant/bgscan_simple.c head/contrib/wpa/wpa_supplicant/bss.c head/contrib/wpa/wpa_supplicant/bss.h head/contrib/wpa/wpa_supplicant/config.c head/contrib/wpa/wpa_supplicant/config.h head/contrib/wpa/wpa_supplicant/config_file.c head/contrib/wpa/wpa_supplicant/config_ssid.h head/contrib/wpa/wpa_supplicant/ctrl_iface.c head/contrib/wpa/wpa_supplicant/ctrl_iface_named_pipe.c head/contrib/wpa/wpa_supplicant/ctrl_iface_udp.c head/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c head/contrib/wpa/wpa_supplicant/dbus/dbus_new.c head/contrib/wpa/wpa_supplicant/dbus/dbus_new.h head/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers.c head/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers.h head/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers_p2p.c head/contrib/wpa/wpa_supplicant/dbus/dbus_new_handlers_wps.c head/contrib/wpa/wpa_supplicant/defconfig head/contrib/wpa/wpa_supplicant/driver_i.h head/contrib/wpa/wpa_supplicant/events.c head/contrib/wpa/wpa_supplicant/examples/wps-ap-cli head/contrib/wpa/wpa_supplicant/gas_query.c head/contrib/wpa/wpa_supplicant/gas_query.h head/contrib/wpa/wpa_supplicant/hs20_supplicant.c head/contrib/wpa/wpa_supplicant/hs20_supplicant.h head/contrib/wpa/wpa_supplicant/ibss_rsn.c head/contrib/wpa/wpa_supplicant/interworking.c head/contrib/wpa/wpa_supplicant/interworking.h head/contrib/wpa/wpa_supplicant/mbo.c head/contrib/wpa/wpa_supplicant/mesh.c head/contrib/wpa/wpa_supplicant/mesh_mpm.c head/contrib/wpa/wpa_supplicant/mesh_rsn.c head/contrib/wpa/wpa_supplicant/notify.c head/contrib/wpa/wpa_supplicant/notify.h head/contrib/wpa/wpa_supplicant/offchannel.c head/contrib/wpa/wpa_supplicant/p2p_supplicant.c head/contrib/wpa/wpa_supplicant/preauth_test.c head/contrib/wpa/wpa_supplicant/scan.c head/contrib/wpa/wpa_supplicant/sme.c head/contrib/wpa/wpa_supplicant/sme.h head/contrib/wpa/wpa_supplicant/wifi_display.c head/contrib/wpa/wpa_supplicant/wmm_ac.c head/contrib/wpa/wpa_supplicant/wnm_sta.c head/contrib/wpa/wpa_supplicant/wnm_sta.h head/contrib/wpa/wpa_supplicant/wpa_cli.c head/contrib/wpa/wpa_supplicant/wpa_passphrase.c head/contrib/wpa/wpa_supplicant/wpa_priv.c head/contrib/wpa/wpa_supplicant/wpa_supplicant.c head/contrib/wpa/wpa_supplicant/wpa_supplicant.conf head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h head/contrib/wpa/wpa_supplicant/wpa_supplicant_template.conf head/contrib/wpa/wpa_supplicant/wpas_glue.c head/contrib/wpa/wpa_supplicant/wpas_kay.c head/contrib/wpa/wpa_supplicant/wpas_kay.h head/contrib/wpa/wpa_supplicant/wps_supplicant.c head/usr.sbin/wpa/Makefile.crypto head/usr.sbin/wpa/Makefile.inc head/usr.sbin/wpa/hostapd/Makefile head/usr.sbin/wpa/wpa_cli/Makefile head/usr.sbin/wpa/wpa_supplicant/Makefile Directory Properties: head/contrib/wpa/ (props changed) Modified: head/contrib/wpa/CONTRIBUTIONS ============================================================================== --- head/contrib/wpa/CONTRIBUTIONS Sun Dec 9 06:42:06 2018 (r341758) +++ head/contrib/wpa/CONTRIBUTIONS Sun Dec 9 06:45:49 2018 (r341759) @@ -140,7 +140,7 @@ The license terms used for hostap.git files Modified BSD license (no advertisement clause): -Copyright (c) 2002-2016, Jouni Malinen and contributors +Copyright (c) 2002-2018, Jouni Malinen and contributors All Rights Reserved. Redistribution and use in source and binary forms, with or without Modified: head/contrib/wpa/COPYING ============================================================================== --- head/contrib/wpa/COPYING Sun Dec 9 06:42:06 2018 (r341758) +++ head/contrib/wpa/COPYING Sun Dec 9 06:45:49 2018 (r341759) @@ -1,7 +1,7 @@ wpa_supplicant and hostapd -------------------------- -Copyright (c) 2002-2016, Jouni Malinen and contributors +Copyright (c) 2002-2018, Jouni Malinen and contributors All Rights Reserved. Modified: head/contrib/wpa/README ============================================================================== --- head/contrib/wpa/README Sun Dec 9 06:42:06 2018 (r341758) +++ head/contrib/wpa/README Sun Dec 9 06:45:49 2018 (r341759) @@ -1,7 +1,7 @@ wpa_supplicant and hostapd -------------------------- -Copyright (c) 2002-2016, Jouni Malinen and contributors +Copyright (c) 2002-2018, Jouni Malinen and contributors All Rights Reserved. These programs are licensed under the BSD license (the one with Modified: head/contrib/wpa/hostapd/ChangeLog ============================================================================== --- head/contrib/wpa/hostapd/ChangeLog Sun Dec 9 06:42:06 2018 (r341758) +++ head/contrib/wpa/hostapd/ChangeLog Sun Dec 9 06:45:49 2018 (r341759) @@ -1,5 +1,60 @@ ChangeLog for hostapd +2018-12-02 - v2.7 + * fixed WPA packet number reuse with replayed messages and key + reinstallation + [http://w1.fi/security/2017-1/] (CVE-2017-13082) + * added support for FILS (IEEE 802.11ai) shared key authentication + * added support for OWE (Opportunistic Wireless Encryption, RFC 8110; + and transition mode defined by WFA) + * added support for DPP (Wi-Fi Device Provisioning Protocol) + * FT: + - added local generation of PMK-R0/PMK-R1 for FT-PSK + (ft_psk_generate_local=1) + - replaced inter-AP protocol with a cleaner design that is more + easily extensible; this breaks backward compatibility and requires + all APs in the ESS to be updated at the same time to maintain FT + functionality + - added support for wildcard R0KH/R1KH + - replaced r0_key_lifetime (minutes) parameter with + ft_r0_key_lifetime (seconds) + - fixed wpa_psk_file use for FT-PSK + - fixed FT-SAE PMKID matching + - added expiration to PMK-R0 and PMK-R1 cache + - added IEEE VLAN support (including tagged VLANs) + - added support for SHA384 based AKM + * SAE + - fixed some PMKSA caching cases with SAE + - added support for configuring SAE password separately of the + WPA2 PSK/passphrase + - added option to require MFP for SAE associations + (sae_require_pmf=1) + - fixed PTK and EAPOL-Key integrity and key-wrap algorithm selection + for SAE; + note: this is not backwards compatible, i.e., both the AP and + station side implementations will need to be update at the same + time to maintain interoperability + - added support for Password Identifier + * hostapd_cli: added support for command history and completion + * added support for requesting beacon report + * large number of other fixes, cleanup, and extensions + * added option to configure EAPOL-Key retry limits + (wpa_group_update_count and wpa_pairwise_update_count) + * removed all PeerKey functionality + * fixed nl80211 AP mode configuration regression with Linux 4.15 and + newer + * added support for using wolfSSL cryptographic library + * fixed some 20/40 MHz coexistence cases where the BSS could drop to + 20 MHz even when 40 MHz would be allowed + * Hotspot 2.0 + - added support for setting Venue URL ANQP-element (venue_url) + - added support for advertising Hotspot 2.0 operator icons + - added support for Roaming Consortium Selection element + - added support for Terms and Conditions + - added support for OSEN connection in a shared RSN BSS + * added support for using OpenSSL 1.1.1 + * added EAP-pwd server support for salted passwords + 2016-10-02 - v2.6 * fixed EAP-pwd last fragment validation [http://w1.fi/security/2015-7/] (CVE-2015-5314) Modified: head/contrib/wpa/hostapd/README ============================================================================== --- head/contrib/wpa/hostapd/README Sun Dec 9 06:42:06 2018 (r341758) +++ head/contrib/wpa/hostapd/README Sun Dec 9 06:45:49 2018 (r341759) @@ -2,7 +2,7 @@ hostapd - user space IEEE 802.11 AP and IEEE 802.1X/WP Authenticator and RADIUS authentication server ================================================================ -Copyright (c) 2002-2016, Jouni Malinen and contributors +Copyright (c) 2002-2018, Jouni Malinen and contributors All Rights Reserved. This program is licensed under the BSD license (the one with @@ -70,7 +70,7 @@ Requirements Current hardware/software requirements: - drivers: Host AP driver for Prism2/2.5/3. - (http://hostap.epitest.fi/) + (http://w1.fi/hostap-driver.html) Please note that station firmware version needs to be 1.7.0 or newer to work in WPA mode. @@ -81,8 +81,7 @@ Current hardware/software requirements: Any wired Ethernet driver for wired IEEE 802.1X authentication (experimental code) - FreeBSD -current (with some kernel mods that have not yet been - committed when hostapd v0.3.0 was released) + FreeBSD -current BSD net80211 layer (e.g., Atheros driver) @@ -186,24 +185,14 @@ Authenticator and RADIUS encapsulation between the Aut the Authentication Server. Other than this, the functionality is similar to the case with the co-located Authentication Server. -Authentication Server and Supplicant ------------------------------------- +Authentication Server +--------------------- Any RADIUS server supporting EAP should be usable as an IEEE 802.1X Authentication Server with hostapd Authenticator. FreeRADIUS (http://www.freeradius.org/) has been successfully tested with hostapd -Authenticator and both Xsupplicant (http://www.open1x.org) and Windows -XP Supplicants. EAP/TLS was used with Xsupplicant and -EAP/MD5-Challenge with Windows XP. +Authenticator. -http://www.missl.cs.umd.edu/wireless/eaptls/ has useful information -about using EAP/TLS with FreeRADIUS and Xsupplicant (just replace -Cisco access point with Host AP driver, hostapd daemon, and a Prism2 -card ;-). http://www.freeradius.org/doc/EAP-MD5.html has information -about using EAP/MD5 with FreeRADIUS, including instructions for WinXP -configuration. http://www.denobula.com/EAPTLS.pdf has a HOWTO on -EAP/TLS use with WinXP Supplicant. - Automatic WEP key configuration ------------------------------- @@ -243,16 +232,15 @@ networks that require some kind of security. Task grou of IEEE 802.11 working group (http://www.ieee802.org/11/) has worked to address the flaws of the base standard and has in practice completed its work in May 2004. The IEEE 802.11i amendment to the IEEE -802.11 standard was approved in June 2004 and this amendment is likely -to be published in July 2004. +802.11 standard was approved in June 2004 and this amendment was +published in July 2004. Wi-Fi Alliance (http://www.wi-fi.org/) used a draft version of the IEEE 802.11i work (draft 3.0) to define a subset of the security enhancements that can be implemented with existing wlan hardware. This is called Wi-Fi Protected Access (WPA). This has now become a mandatory component of interoperability testing and certification done -by Wi-Fi Alliance. Wi-Fi provides information about WPA at its web -site (http://www.wi-fi.org/OpenSection/protected_access.asp). +by Wi-Fi Alliance. IEEE 802.11 standard defined wired equivalent privacy (WEP) algorithm for protecting wireless networks. WEP uses RC4 with 40-bit keys, Modified: head/contrib/wpa/hostapd/config_file.c ============================================================================== --- head/contrib/wpa/hostapd/config_file.c Sun Dec 9 06:42:06 2018 (r341758) +++ head/contrib/wpa/hostapd/config_file.c Sun Dec 9 06:45:49 2018 (r341759) @@ -1,6 +1,6 @@ /* * hostapd / Configuration file parser - * Copyright (c) 2003-2015, Jouni Malinen + * Copyright (c) 2003-2018, Jouni Malinen * * This software may be distributed under the terms of the BSD license. * See README for more details. @@ -14,6 +14,8 @@ #include "utils/common.h" #include "utils/uuid.h" #include "common/ieee802_11_defs.h" +#include "crypto/sha256.h" +#include "crypto/tls.h" #include "drivers/driver.h" #include "eap_server/eap.h" #include "radius/radius_client.h" @@ -111,7 +113,7 @@ static int hostapd_config_read_vlan_file(struct hostap #endif /* CONFIG_NO_VLAN */ -static int hostapd_acl_comp(const void *a, const void *b) +int hostapd_acl_comp(const void *a, const void *b) { const struct mac_acl_entry *aa = a; const struct mac_acl_entry *bb = b; @@ -119,6 +121,44 @@ static int hostapd_acl_comp(const void *a, const void } +int hostapd_add_acl_maclist(struct mac_acl_entry **acl, int *num, + int vlan_id, const u8 *addr) +{ + struct mac_acl_entry *newacl; + + newacl = os_realloc_array(*acl, *num + 1, sizeof(**acl)); + if (!newacl) { + wpa_printf(MSG_ERROR, "MAC list reallocation failed"); + return -1; + } + + *acl = newacl; + os_memcpy((*acl)[*num].addr, addr, ETH_ALEN); + os_memset(&(*acl)[*num].vlan_id, 0, sizeof((*acl)[*num].vlan_id)); + (*acl)[*num].vlan_id.untagged = vlan_id; + (*acl)[*num].vlan_id.notempty = !!vlan_id; + (*num)++; + + return 0; +} + + +void hostapd_remove_acl_mac(struct mac_acl_entry **acl, int *num, + const u8 *addr) +{ + int i = 0; + + while (i < *num) { + if (os_memcmp((*acl)[i].addr, addr, ETH_ALEN) == 0) { + os_remove_in_array(*acl, *num, sizeof(**acl), i); + (*num)--; + } else { + i++; + } + } +} + + static int hostapd_config_read_maclist(const char *fname, struct mac_acl_entry **acl, int *num) { @@ -126,12 +166,8 @@ static int hostapd_config_read_maclist(const char *fna char buf[128], *pos; int line = 0; u8 addr[ETH_ALEN]; - struct mac_acl_entry *newacl; int vlan_id; - if (!fname) - return 0; - f = fopen(fname, "r"); if (!f) { wpa_printf(MSG_ERROR, "MAC list file '%s' not found.", fname); @@ -139,7 +175,7 @@ static int hostapd_config_read_maclist(const char *fna } while (fgets(buf, sizeof(buf), f)) { - int i, rem = 0; + int rem = 0; line++; @@ -169,16 +205,7 @@ static int hostapd_config_read_maclist(const char *fna } if (rem) { - i = 0; - while (i < *num) { - if (os_memcmp((*acl)[i].addr, addr, ETH_ALEN) == - 0) { - os_remove_in_array(*acl, *num, - sizeof(**acl), i); - (*num)--; - } else - i++; - } + hostapd_remove_acl_mac(acl, num, addr); continue; } vlan_id = 0; @@ -190,31 +217,78 @@ static int hostapd_config_read_maclist(const char *fna if (*pos != '\0') vlan_id = atoi(pos); - newacl = os_realloc_array(*acl, *num + 1, sizeof(**acl)); - if (newacl == NULL) { - wpa_printf(MSG_ERROR, "MAC list reallocation failed"); + if (hostapd_add_acl_maclist(acl, num, vlan_id, addr) < 0) { fclose(f); return -1; } - - *acl = newacl; - os_memcpy((*acl)[*num].addr, addr, ETH_ALEN); - os_memset(&(*acl)[*num].vlan_id, 0, - sizeof((*acl)[*num].vlan_id)); - (*acl)[*num].vlan_id.untagged = vlan_id; - (*acl)[*num].vlan_id.notempty = !!vlan_id; - (*num)++; } fclose(f); - qsort(*acl, *num, sizeof(**acl), hostapd_acl_comp); + if (*acl) + qsort(*acl, *num, sizeof(**acl), hostapd_acl_comp); return 0; } #ifdef EAP_SERVER + +static int hostapd_config_eap_user_salted(struct hostapd_eap_user *user, + const char *hash, size_t len, + char **pos, int line, + const char *fname) +{ + char *pos2 = *pos; + + while (*pos2 != '\0' && *pos2 != ' ' && *pos2 != '\t' && *pos2 != '#') + pos2++; + + if (pos2 - *pos < (int) (2 * (len + 1))) { /* at least 1 byte of salt */ + wpa_printf(MSG_ERROR, + "Invalid salted %s hash on line %d in '%s'", + hash, line, fname); + return -1; + } + + user->password = os_malloc(len); + if (!user->password) { + wpa_printf(MSG_ERROR, + "Failed to allocate memory for salted %s hash", + hash); + return -1; + } + + if (hexstr2bin(*pos, user->password, len) < 0) { + wpa_printf(MSG_ERROR, + "Invalid salted password on line %d in '%s'", + line, fname); + return -1; + } + user->password_len = len; + *pos += 2 * len; + + user->salt_len = (pos2 - *pos) / 2; + user->salt = os_malloc(user->salt_len); + if (!user->salt) { + wpa_printf(MSG_ERROR, + "Failed to allocate memory for salted %s hash", + hash); + return -1; + } + + if (hexstr2bin(*pos, user->salt, user->salt_len) < 0) { + wpa_printf(MSG_ERROR, + "Invalid salt for password on line %d in '%s'", + line, fname); + return -1; + } + + *pos = pos2; + return 0; +} + + static int hostapd_config_read_eap_user(const char *fname, struct hostapd_bss_config *conf) { @@ -223,9 +297,6 @@ static int hostapd_config_read_eap_user(const char *fn int line = 0, ret = 0, num_methods; struct hostapd_eap_user *user = NULL, *tail = NULL, *new_user = NULL; - if (!fname) - return 0; - if (os_strncmp(fname, "sqlite:", 7) == 0) { #ifdef CONFIG_SQLITE os_free(conf->eap_user_sqlite); @@ -312,13 +383,12 @@ static int hostapd_config_read_eap_user(const char *fn goto failed; } - user->identity = os_malloc(pos - start); + user->identity = os_memdup(start, pos - start); if (user->identity == NULL) { wpa_printf(MSG_ERROR, "Failed to allocate " "memory for EAP identity"); goto failed; } - os_memcpy(user->identity, start, pos - start); user->identity_len = pos - start; if (pos[0] == '"' && pos[1] == '*') { @@ -436,13 +506,12 @@ static int hostapd_config_read_eap_user(const char *fn goto failed; } - user->password = os_malloc(pos - start); + user->password = os_memdup(start, pos - start); if (user->password == NULL) { wpa_printf(MSG_ERROR, "Failed to allocate " "memory for EAP password"); goto failed; } - os_memcpy(user->password, start, pos - start); user->password_len = pos - start; pos++; @@ -471,6 +540,24 @@ static int hostapd_config_read_eap_user(const char *fn user->password_len = 16; user->password_hash = 1; pos = pos2; + } else if (os_strncmp(pos, "ssha1:", 6) == 0) { + pos += 6; + if (hostapd_config_eap_user_salted(user, "sha1", 20, + &pos, + line, fname) < 0) + goto failed; + } else if (os_strncmp(pos, "ssha256:", 8) == 0) { + pos += 8; + if (hostapd_config_eap_user_salted(user, "sha256", 32, + &pos, + line, fname) < 0) + goto failed; + } else if (os_strncmp(pos, "ssha512:", 8) == 0) { + pos += 8; + if (hostapd_config_eap_user_salted(user, "sha512", 64, + &pos, + line, fname) < 0) + goto failed; } else { pos2 = pos; while (*pos2 != '\0' && *pos2 != ' ' && @@ -522,19 +609,15 @@ static int hostapd_config_read_eap_user(const char *fn fclose(f); if (ret == 0) { - user = conf->eap_user; - while (user) { - struct hostapd_eap_user *prev; - - prev = user; - user = user->next; - hostapd_config_free_eap_user(prev); - } + hostapd_config_free_eap_users(conf->eap_user); conf->eap_user = new_user; + } else { + hostapd_config_free_eap_users(new_user); } return ret; } + #endif /* EAP_SERVER */ @@ -684,12 +767,16 @@ static int hostapd_config_parse_key_mgmt(int line, con val |= WPA_KEY_MGMT_PSK; else if (os_strcmp(start, "WPA-EAP") == 0) val |= WPA_KEY_MGMT_IEEE8021X; -#ifdef CONFIG_IEEE80211R +#ifdef CONFIG_IEEE80211R_AP else if (os_strcmp(start, "FT-PSK") == 0) val |= WPA_KEY_MGMT_FT_PSK; else if (os_strcmp(start, "FT-EAP") == 0) val |= WPA_KEY_MGMT_FT_IEEE8021X; -#endif /* CONFIG_IEEE80211R */ +#ifdef CONFIG_SHA384 + else if (os_strcmp(start, "FT-EAP-SHA384") == 0) + val |= WPA_KEY_MGMT_FT_IEEE8021X_SHA384; +#endif /* CONFIG_SHA384 */ +#endif /* CONFIG_IEEE80211R_AP */ #ifdef CONFIG_IEEE80211W else if (os_strcmp(start, "WPA-PSK-SHA256") == 0) val |= WPA_KEY_MGMT_PSK_SHA256; @@ -710,6 +797,30 @@ static int hostapd_config_parse_key_mgmt(int line, con else if (os_strcmp(start, "WPA-EAP-SUITE-B-192") == 0) val |= WPA_KEY_MGMT_IEEE8021X_SUITE_B_192; #endif /* CONFIG_SUITEB192 */ +#ifdef CONFIG_FILS + else if (os_strcmp(start, "FILS-SHA256") == 0) + val |= WPA_KEY_MGMT_FILS_SHA256; + else if (os_strcmp(start, "FILS-SHA384") == 0) + val |= WPA_KEY_MGMT_FILS_SHA384; +#ifdef CONFIG_IEEE80211R_AP + else if (os_strcmp(start, "FT-FILS-SHA256") == 0) + val |= WPA_KEY_MGMT_FT_FILS_SHA256; + else if (os_strcmp(start, "FT-FILS-SHA384") == 0) + val |= WPA_KEY_MGMT_FT_FILS_SHA384; +#endif /* CONFIG_IEEE80211R_AP */ +#endif /* CONFIG_FILS */ +#ifdef CONFIG_OWE + else if (os_strcmp(start, "OWE") == 0) + val |= WPA_KEY_MGMT_OWE; +#endif /* CONFIG_OWE */ +#ifdef CONFIG_DPP + else if (os_strcmp(start, "DPP") == 0) + val |= WPA_KEY_MGMT_DPP; +#endif /* CONFIG_DPP */ +#ifdef CONFIG_HS20 + else if (os_strcmp(start, "OSEN") == 0) + val |= WPA_KEY_MGMT_OSEN; +#endif /* CONFIG_HS20 */ else { wpa_printf(MSG_ERROR, "Line %d: invalid key_mgmt '%s'", line, start); @@ -755,17 +866,34 @@ static int hostapd_config_read_wep(struct hostapd_wep_ { size_t len = os_strlen(val); - if (keyidx < 0 || keyidx > 3 || wep->key[keyidx] != NULL) + if (keyidx < 0 || keyidx > 3) return -1; + if (len == 0) { + int i, set = 0; + + bin_clear_free(wep->key[keyidx], wep->len[keyidx]); + wep->key[keyidx] = NULL; + wep->len[keyidx] = 0; + for (i = 0; i < NUM_WEP_KEYS; i++) { + if (wep->key[i]) + set++; + } + if (!set) + wep->keys_set = 0; + return 0; + } + + if (wep->key[keyidx] != NULL) + return -1; + if (val[0] == '"') { if (len < 2 || val[len - 1] != '"') return -1; len -= 2; - wep->key[keyidx] = os_malloc(len); + wep->key[keyidx] = os_memdup(val + 1, len); if (wep->key[keyidx] == NULL) return -1; - os_memcpy(wep->key[keyidx], val + 1, len); wep->len[keyidx] = len; } else { if (len & 1) @@ -978,7 +1106,27 @@ static int hostapd_config_tx_queue(struct hostapd_conf } -#ifdef CONFIG_IEEE80211R +#ifdef CONFIG_IEEE80211R_AP + +static int rkh_derive_key(const char *pos, u8 *key, size_t key_len) +{ + u8 oldkey[16]; + int ret; + + if (!hexstr2bin(pos, key, key_len)) + return 0; + + /* Try to use old short key for backwards compatibility */ + if (hexstr2bin(pos, oldkey, sizeof(oldkey))) + return -1; + + ret = hmac_sha256_kdf(oldkey, sizeof(oldkey), "FT OLDKEY", NULL, 0, + key, key_len); + os_memset(oldkey, 0, sizeof(oldkey)); + return ret; +} + + static int add_r0kh(struct hostapd_bss_config *bss, char *value) { struct ft_remote_r0kh *r0kh; @@ -1012,7 +1160,7 @@ static int add_r0kh(struct hostapd_bss_config *bss, ch os_memcpy(r0kh->id, pos, r0kh->id_len); pos = next; - if (hexstr2bin(pos, r0kh->key, sizeof(r0kh->key))) { + if (rkh_derive_key(pos, r0kh->key, sizeof(r0kh->key)) < 0) { wpa_printf(MSG_ERROR, "Invalid R0KH key: '%s'", pos); os_free(r0kh); return -1; @@ -1057,7 +1205,7 @@ static int add_r1kh(struct hostapd_bss_config *bss, ch } pos = next; - if (hexstr2bin(pos, r1kh->key, sizeof(r1kh->key))) { + if (rkh_derive_key(pos, r1kh->key, sizeof(r1kh->key)) < 0) { wpa_printf(MSG_ERROR, "Invalid R1KH key: '%s'", pos); os_free(r1kh); return -1; @@ -1068,7 +1216,7 @@ static int add_r1kh(struct hostapd_bss_config *bss, ch return 0; } -#endif /* CONFIG_IEEE80211R */ +#endif /* CONFIG_IEEE80211R_AP */ #ifdef CONFIG_IEEE80211N @@ -1085,6 +1233,12 @@ static int hostapd_config_ht_capab(struct hostapd_conf conf->ht_capab |= HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET; conf->secondary_channel = 1; } + if (os_strstr(capab, "[HT40+]") && os_strstr(capab, "[HT40-]")) { + conf->ht_capab |= HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET; + conf->ht40_plus_minus_allowed = 1; + } + if (!os_strstr(capab, "[HT40+]") && !os_strstr(capab, "[HT40-]")) + conf->secondary_channel = 0; if (os_strstr(capab, "[SMPS-STATIC]")) { conf->ht_capab &= ~HT_CAP_INFO_SMPS_MASK; conf->ht_capab |= HT_CAP_INFO_SMPS_STATIC; @@ -1307,6 +1461,44 @@ static int parse_venue_name(struct hostapd_bss_config } +static int parse_venue_url(struct hostapd_bss_config *bss, char *pos, + int line) +{ + char *sep; + size_t nlen; + struct hostapd_venue_url *url; + int ret = -1; + + sep = os_strchr(pos, ':'); + if (!sep) + goto fail; + *sep++ = '\0'; + + nlen = os_strlen(sep); + if (nlen > 254) + goto fail; + + url = os_realloc_array(bss->venue_url, bss->venue_url_count + 1, + sizeof(struct hostapd_venue_url)); + if (!url) + goto fail; + + bss->venue_url = url; + url = &bss->venue_url[bss->venue_url_count++]; + + url->venue_number = atoi(pos); + url->url_len = nlen; + os_memcpy(url->url, sep, nlen); + + ret = 0; +fail: + if (ret) + wpa_printf(MSG_ERROR, "Line %d: Invalid venue_url '%s'", + line, pos); + return ret; +} + + static int parse_3gpp_cell_net(struct hostapd_bss_config *bss, char *buf, int line) { @@ -1857,6 +2049,24 @@ static int hs20_parse_osu_nai(struct hostapd_bss_confi } +static int hs20_parse_osu_nai2(struct hostapd_bss_config *bss, + char *pos, int line) +{ + if (bss->last_osu == NULL) { + wpa_printf(MSG_ERROR, "Line %d: Unexpected OSU field", line); + return -1; + } + + os_free(bss->last_osu->osu_nai2); + bss->last_osu->osu_nai2 = os_strdup(pos); + if (bss->last_osu->osu_nai2 == NULL) + return -1; + bss->hs20_osu_providers_nai_count++; + + return 0; +} + + static int hs20_parse_osu_method_list(struct hostapd_bss_config *bss, char *pos, int line) { @@ -1916,6 +2126,25 @@ static int hs20_parse_osu_service_desc(struct hostapd_ return 0; } + +static int hs20_parse_operator_icon(struct hostapd_bss_config *bss, char *pos, + int line) +{ + char **n; + + n = os_realloc_array(bss->hs20_operator_icon, + bss->hs20_operator_icon_count + 1, sizeof(char *)); + if (!n) + return -1; + bss->hs20_operator_icon = n; + bss->hs20_operator_icon[bss->hs20_operator_icon_count] = os_strdup(pos); + if (!bss->hs20_operator_icon[bss->hs20_operator_icon_count]) + return -1; + bss->hs20_operator_icon_count++; + + return 0; +} + #endif /* CONFIG_HS20 */ @@ -1986,6 +2215,118 @@ static int parse_wpabuf_hex(int line, const char *name } +#ifdef CONFIG_FILS +static int parse_fils_realm(struct hostapd_bss_config *bss, const char *val) +{ + struct fils_realm *realm; + size_t len; + + len = os_strlen(val); + realm = os_zalloc(sizeof(*realm) + len + 1); + if (!realm) + return -1; + + os_memcpy(realm->realm, val, len); + if (fils_domain_name_hash(val, realm->hash) < 0) { + os_free(realm); + return -1; + } + dl_list_add_tail(&bss->fils_realms, &realm->list); + + return 0; +} +#endif /* CONFIG_FILS */ + + +#ifdef EAP_SERVER +static unsigned int parse_tls_flags(const char *val) +{ + unsigned int flags = 0; + + /* Disable TLS v1.3 by default for now to avoid interoperability issue. + * This can be enabled by default once the implementation has been fully + * completed and tested with other implementations. */ + flags |= TLS_CONN_DISABLE_TLSv1_3; + + if (os_strstr(val, "[ALLOW-SIGN-RSA-MD5]")) + flags |= TLS_CONN_ALLOW_SIGN_RSA_MD5; + if (os_strstr(val, "[DISABLE-TIME-CHECKS]")) + flags |= TLS_CONN_DISABLE_TIME_CHECKS; + if (os_strstr(val, "[DISABLE-TLSv1.0]")) + flags |= TLS_CONN_DISABLE_TLSv1_0; + if (os_strstr(val, "[DISABLE-TLSv1.1]")) + flags |= TLS_CONN_DISABLE_TLSv1_1; + if (os_strstr(val, "[DISABLE-TLSv1.2]")) + flags |= TLS_CONN_DISABLE_TLSv1_2; + if (os_strstr(val, "[DISABLE-TLSv1.3]")) + flags |= TLS_CONN_DISABLE_TLSv1_3; + if (os_strstr(val, "[ENABLE-TLSv1.3]")) + flags &= ~TLS_CONN_DISABLE_TLSv1_3; + if (os_strstr(val, "[SUITEB]")) + flags |= TLS_CONN_SUITEB; + if (os_strstr(val, "[SUITEB-NO-ECDH]")) + flags |= TLS_CONN_SUITEB_NO_ECDH | TLS_CONN_SUITEB; + + return flags; +} +#endif /* EAP_SERVER */ + + +#ifdef CONFIG_SAE +static int parse_sae_password(struct hostapd_bss_config *bss, const char *val) +{ + struct sae_password_entry *pw; + const char *pos = val, *pos2, *end = NULL; + + pw = os_zalloc(sizeof(*pw)); + if (!pw) + return -1; + os_memset(pw->peer_addr, 0xff, ETH_ALEN); /* default to wildcard */ + + pos2 = os_strstr(pos, "|mac="); + if (pos2) { + end = pos2; + pos2 += 5; + if (hwaddr_aton(pos2, pw->peer_addr) < 0) + goto fail; + pos = pos2 + ETH_ALEN * 3 - 1; + } + + pos2 = os_strstr(pos, "|id="); + if (pos2) { + if (!end) + end = pos2; + pos2 += 4; + pw->identifier = os_strdup(pos2); + if (!pw->identifier) + goto fail; + } + + if (!end) { + pw->password = os_strdup(val); + if (!pw->password) + goto fail; + } else { + pw->password = os_malloc(end - val + 1); + if (!pw->password) + goto fail; + os_memcpy(pw->password, val, end - val); + pw->password[end - val] = '\0'; + } + + pw->next = bss->sae_passwords; + bss->sae_passwords = pw; + + return 0; +fail: + str_clear_free(pw->password); + os_free(pw->identifier); + os_free(pw); + return -1; +} +#endif /* CONFIG_SAE */ + + static int hostapd_config_fill(struct hostapd_config *conf, struct hostapd_bss_config *bss, const char *buf, char *pos, int line) @@ -2001,20 +2342,21 @@ static int hostapd_config_fill(struct hostapd_config * os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge)); } else if (os_strcmp(buf, "driver") == 0) { int j; - /* clear to get error below if setting is invalid */ - conf->driver = NULL; + const struct wpa_driver_ops *driver = NULL; + for (j = 0; wpa_drivers[j]; j++) { if (os_strcmp(pos, wpa_drivers[j]->name) == 0) { - conf->driver = wpa_drivers[j]; + driver = wpa_drivers[j]; break; } } - if (conf->driver == NULL) { + if (!driver) { wpa_printf(MSG_ERROR, "Line %d: invalid/unknown driver '%s'", line, pos); return 1; } + conf->driver = driver; } else if (os_strcmp(buf, "driver_params") == 0) { os_free(conf->driver_params); conf->driver_params = os_strdup(pos); @@ -2058,13 +2400,16 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "utf8_ssid") == 0) { bss->ssid.utf8_ssid = atoi(pos) > 0; } else if (os_strcmp(buf, "macaddr_acl") == 0) { - bss->macaddr_acl = atoi(pos); - if (bss->macaddr_acl != ACCEPT_UNLESS_DENIED && - bss->macaddr_acl != DENY_UNLESS_ACCEPTED && - bss->macaddr_acl != USE_EXTERNAL_RADIUS_AUTH) { + enum macaddr_acl acl = atoi(pos); + + if (acl != ACCEPT_UNLESS_DENIED && + acl != DENY_UNLESS_ACCEPTED && + acl != USE_EXTERNAL_RADIUS_AUTH) { wpa_printf(MSG_ERROR, "Line %d: unknown macaddr_acl %d", - line, bss->macaddr_acl); + line, acl); + return 1; } + bss->macaddr_acl = acl; } else if (os_strcmp(buf, "accept_mac_file") == 0) { if (hostapd_config_read_maclist(pos, &bss->accept_mac, &bss->num_accept_mac)) { @@ -2091,8 +2436,8 @@ static int hostapd_config_fill(struct hostapd_config * bss->skip_inactivity_poll = atoi(pos); } else if (os_strcmp(buf, "country_code") == 0) { os_memcpy(conf->country, pos, 2); - /* FIX: make this configurable */ - conf->country[2] = ' '; + } else if (os_strcmp(buf, "country3") == 0) { + conf->country[2] = strtol(pos, NULL, 16); } else if (os_strcmp(buf, "ieee80211d") == 0) { conf->ieee80211d = atoi(pos); } else if (os_strcmp(buf, "ieee80211h") == 0) { @@ -2100,13 +2445,15 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "ieee8021x") == 0) { bss->ieee802_1x = atoi(pos); } else if (os_strcmp(buf, "eapol_version") == 0) { - bss->eapol_version = atoi(pos); - if (bss->eapol_version < 1 || bss->eapol_version > 2) { + int eapol_version = atoi(pos); + + if (eapol_version < 1 || eapol_version > 2) { wpa_printf(MSG_ERROR, "Line %d: invalid EAPOL version (%d): '%s'.", - line, bss->eapol_version, pos); + line, eapol_version, pos); return 1; } + bss->eapol_version = eapol_version; wpa_printf(MSG_DEBUG, "eapol_version=%d", bss->eapol_version); #ifdef EAP_SERVER } else if (os_strcmp(buf, "eap_authenticator") == 0) { @@ -2133,6 +2480,8 @@ static int hostapd_config_fill(struct hostapd_config * bss->check_crl = atoi(pos); } else if (os_strcmp(buf, "tls_session_lifetime") == 0) { bss->tls_session_lifetime = atoi(pos); + } else if (os_strcmp(buf, "tls_flags") == 0) { + bss->tls_flags = parse_tls_flags(pos); } else if (os_strcmp(buf, "ocsp_stapling_response") == 0) { os_free(bss->ocsp_stapling_response); bss->ocsp_stapling_response = os_strdup(pos); @@ -2207,8 +2556,10 @@ static int hostapd_config_fill(struct hostapd_config * } else if (os_strcmp(buf, "pwd_group") == 0) { bss->pwd_group = atoi(pos); #endif /* EAP_SERVER_PWD */ +#ifdef CONFIG_ERP } else if (os_strcmp(buf, "eap_server_erp") == 0) { bss->eap_server_erp = atoi(pos); +#endif /* CONFIG_ERP */ #endif /* EAP_SERVER */ } else if (os_strcmp(buf, "eap_message") == 0) { char *term; @@ -2234,24 +2585,25 @@ static int hostapd_config_fill(struct hostapd_config * os_free(bss->erp_domain); bss->erp_domain = os_strdup(pos); } else if (os_strcmp(buf, "wep_key_len_broadcast") == 0) { - bss->default_wep_key_len = atoi(pos); - if (bss->default_wep_key_len > 13) { - wpa_printf(MSG_ERROR, "Line %d: invalid WEP key len %lu (= %lu bits)", - line, - (unsigned long) bss->default_wep_key_len, - (unsigned long) - bss->default_wep_key_len * 8); + int val = atoi(pos); + + if (val < 0 || val > 13) { + wpa_printf(MSG_ERROR, + "Line %d: invalid WEP key len %d (= %d bits)", + line, val, val * 8); return 1; } + bss->default_wep_key_len = val; } else if (os_strcmp(buf, "wep_key_len_unicast") == 0) { - bss->individual_wep_key_len = atoi(pos); - if (bss->individual_wep_key_len < 0 || - bss->individual_wep_key_len > 13) { - wpa_printf(MSG_ERROR, "Line %d: invalid WEP key len %d (= %d bits)", - line, bss->individual_wep_key_len, - bss->individual_wep_key_len * 8); + int val = atoi(pos); + + if (val < 0 || val > 13) { + wpa_printf(MSG_ERROR, + "Line %d: invalid WEP key len %d (= %d bits)", + line, val, val * 8); return 1; } + bss->individual_wep_key_len = val; } else if (os_strcmp(buf, "wep_rekey_period") == 0) { bss->wep_rekeying_period = atoi(pos); if (bss->wep_rekeying_period < 0) { @@ -2433,12 +2785,37 @@ static int hostapd_config_fill(struct hostapd_config * bss->wpa = atoi(pos); } else if (os_strcmp(buf, "wpa_group_rekey") == 0) { bss->wpa_group_rekey = atoi(pos); + bss->wpa_group_rekey_set = 1; } else if (os_strcmp(buf, "wpa_strict_rekey") == 0) { bss->wpa_strict_rekey = atoi(pos); } else if (os_strcmp(buf, "wpa_gmk_rekey") == 0) { bss->wpa_gmk_rekey = atoi(pos); } else if (os_strcmp(buf, "wpa_ptk_rekey") == 0) { bss->wpa_ptk_rekey = atoi(pos); + } else if (os_strcmp(buf, "wpa_group_update_count") == 0) { + char *endp; + unsigned long val = strtoul(pos, &endp, 0); + + if (*endp || val < 1 || val > (u32) -1) { + wpa_printf(MSG_ERROR, + "Line %d: Invalid wpa_group_update_count=%lu; allowed range 1..4294967295", + line, val); + return 1; + } + bss->wpa_group_update_count = (u32) val; + } else if (os_strcmp(buf, "wpa_pairwise_update_count") == 0) { + char *endp; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Sun Dec 9 07:01:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 040F41310250; Sun, 9 Dec 2018 07:01:14 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id EFFF07D9CE; Sun, 9 Dec 2018 07:01:12 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id Vt5KgvawtctraVt5Lg78e3; Sun, 09 Dec 2018 00:01:05 -0700 X-Authority-Analysis: v=2.3 cv=Io3Pj43g c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=2ur7OfE09M0A:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=AD9GVtJHjYr9fbXkUkMA:9 a=CjuIK1q_8ugA:10 a=e9gMuUFOb40A:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 99DF98E0; Sat, 8 Dec 2018 23:01:01 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id wB97112c058759; Sat, 8 Dec 2018 23:01:01 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id wB9711aN058754; Sat, 8 Dec 2018 23:01:01 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201812090701.wB9711aN058754@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Cy Schubert cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: Message from Cy Schubert of "Sun, 09 Dec 2018 06:45:49 +0000." <201812090645.wB96jnso066329@repo.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 08 Dec 2018 23:01:01 -0800 X-CMAE-Envelope: MS4wfAqxHsbGsO2M1yeFgSdKGTSZIAwMDJSjzLzq/A7uaDfeZEgYFAJKN3/At5qvN3Wdkc6xdjPjCucPIzLBLuLrcYJ7RuTuvd0m6/yodQLrsFjQ+hBD1OsR LBaeukcpPWRwKVyzKJV/lUI9exIyrH0lgwzNaHBiDF19hG7Q7UzDHclys9VdP8zKipOgDHADKYZSzpRAQWjor+mLGAi41Jqdn0DHHOQsil3V+FDiUJVRAiU6 qyCfb3MpVbt8s52gwexmtaP9e9zLhsKMPy4iO1FDVnCdQFqyfNlUF+/LCt8H3+VX X-Rspamd-Queue-Id: EFFF07D9CE X-Spamd-Result: default: False [-2.26 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MV_CASE(0.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; LONG_SUBJ(1.52)[203]; IP_SCORE(-1.97)[ip: (-4.63), ipnet: 64.59.128.0/20(-2.84), asn: 6327(-2.28), country: CA(-0.09)]; MX_GOOD(-0.01)[cached: spqr.komquats.com]; REPLYTO_EQ_FROM(0.00)[]; NEURAL_HAM_SHORT(-0.11)[-0.106,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; RCVD_TLS_LAST(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[138.136.59.64.list.dnswl.org : 127.0.5.1] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 07:01:14 -0000 In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy Schubert writes: > Author: cy > Date: Sun Dec 9 06:45:49 2018 > New Revision: 341759 > URL: https://svnweb.freebsd.org/changeset/base/341759 > > Log: > MFV r341618: > > Update wpa 2.6 --> 2.7. Relnotes: yes -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Sun Dec 9 07:08:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE09B1310773; Sun, 9 Dec 2018 07:08:31 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 04F6A7DF5A; Sun, 9 Dec 2018 07:08:29 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id VtCQgvc82ctraVtCRg79AW; Sun, 09 Dec 2018 00:08:23 -0700 X-Authority-Analysis: v=2.3 cv=Io3Pj43g c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=2ur7OfE09M0A:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=ADuDk7LhBdMUnsHi2f4A:9 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 0973E914; Sat, 8 Dec 2018 23:08:22 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id wB978L9R098151; Sat, 8 Dec 2018 23:08:21 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id wB978Li6098145; Sat, 8 Dec 2018 23:08:21 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201812090708.wB978Li6098145@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Cy Schubert cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: Message from Cy Schubert of "Sun, 09 Dec 2018 06:45:49 +0000." <201812090645.wB96jnso066329@repo.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 08 Dec 2018 23:08:21 -0800 X-CMAE-Envelope: MS4wfOq3Jg7m20a7eVMxSq3Eymh/AH+Upz6gX+pOwq4G/V/eRvqr4yQXTiRxUBvzc99k0GALOHU8286Pi4PfYy5YxkB62AmBFtGpAhuS5TGVFmntBvRhPBUH 4WvTh/NFCnoDClh9dAXymt34AxFk5GyaLXWr+4gnJsS/vyJyGKA3cs/FdlkRFaVQROxufsy4hnR3I+6/bCxRQM047R1RldWklog/RsK22YLqyLxYDnGhwhEv DVdY5xE60H8Aqy0BarErY5JqQfQfix1RChX+XOghNyO9A/YePorNL9GlDFdbvwMv X-Rspamd-Queue-Id: 04F6A7DF5A X-Spamd-Result: default: False [-2.36 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; RCVD_IN_DNSWL_LOW(-0.10)[137.136.59.64.list.dnswl.org : 127.0.5.1]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MV_CASE(0.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; TO_DN_SOME(0.00)[]; LONG_SUBJ(1.52)[203]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; MX_GOOD(-0.01)[cached: spqr.komquats.com]; REPLYTO_EQ_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; R_SPF_NA(0.00)[]; NEURAL_HAM_SHORT(-0.09)[-0.095,0]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; IP_SCORE(-2.08)[ip: (-5.26), ipnet: 64.59.128.0/20(-2.82), asn: 6327(-2.25), country: CA(-0.09)]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 07:08:32 -0000 In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy Schubert writes: > Author: cy > Date: Sun Dec 9 06:45:49 2018 > New Revision: 341759 > URL: https://svnweb.freebsd.org/changeset/base/341759 > > Log: > MFV r341618: > > Update wpa 2.6 --> 2.7. In order to build this cleanly, artifacts from wpa 2.6 need to be removed first. Either build using a clean /usr/obj or if building using -DNO_CLEAN, rm -rf /usr/obj/opt/src/svn-current/*/usr.sbin/wpa first. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Sun Dec 9 15:34:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8CA81325159; Sun, 9 Dec 2018 15:34:21 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 496C16FA98; Sun, 9 Dec 2018 15:34:21 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 265E913301; Sun, 9 Dec 2018 15:34:21 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB9FYLno039556; Sun, 9 Dec 2018 15:34:21 GMT (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9FYKqb039555; Sun, 9 Dec 2018 15:34:20 GMT (envelope-from bde@FreeBSD.org) Message-Id: <201812091534.wB9FYKqb039555@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bde set sender to bde@FreeBSD.org using -f From: Bruce Evans Date: Sun, 9 Dec 2018 15:34:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341765 - head/sys/dev/md X-SVN-Group: head X-SVN-Commit-Author: bde X-SVN-Commit-Paths: head/sys/dev/md X-SVN-Commit-Revision: 341765 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 496C16FA98 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 15:34:21 -0000 Author: bde Date: Sun Dec 9 15:34:20 2018 New Revision: 341765 URL: https://svnweb.freebsd.org/changeset/base/341765 Log: Fix devstat on md devices. devstat_end_transaction() was called before the i/o was actually ended (by delivering it to GEOM), so at least the i/o length was messed up. It was always recorded as 0, so the average transaction size and the average transfer rate was always displayed as 0. devstat_end_transaction() was not called at all for the error case, so there were sometimes multiple starts per end. I didn't observe this in practice and don't know if it did much damage. I think it extended the length of the i/o to the next transaction. Reviewed by: kib Modified: head/sys/dev/md/md.c Modified: head/sys/dev/md/md.c ============================================================================== --- head/sys/dev/md/md.c Sun Dec 9 11:39:45 2018 (r341764) +++ head/sys/dev/md/md.c Sun Dec 9 15:34:20 2018 (r341765) @@ -1241,10 +1241,10 @@ md_kthread(void *arg) if (error != -1) { bp->bio_completed = bp->bio_length; - if ((bp->bio_cmd == BIO_READ) || (bp->bio_cmd == BIO_WRITE)) - devstat_end_transaction_bio(sc->devstat, bp); g_io_deliver(bp, error); } + if (bp->bio_cmd == BIO_READ || bp->bio_cmd == BIO_WRITE) + devstat_end_transaction_bio(sc->devstat, bp); } } From owner-svn-src-head@freebsd.org Sun Dec 9 17:55:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7A61E13289D9; Sun, 9 Dec 2018 17:55:11 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1986A737AA; Sun, 9 Dec 2018 17:55:11 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E42EA149DE; Sun, 9 Dec 2018 17:55:10 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB9HtA3s011681; Sun, 9 Dec 2018 17:55:10 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9HtAOq011680; Sun, 9 Dec 2018 17:55:10 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201812091755.wB9HtAOq011680@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sun, 9 Dec 2018 17:55:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341766 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: alc X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 341766 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1986A737AA X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 17:55:11 -0000 Author: alc Date: Sun Dec 9 17:55:10 2018 New Revision: 341766 URL: https://svnweb.freebsd.org/changeset/base/341766 Log: blst_leaf_alloc updates bighint for a leaf when an allocation is successful and includes the last block represented by the leaf. The reasoning is that, if the last block is included, then there must be no solution before that one in the leaf, so the leaf cannot provide an allocation that big again; indeed, the leaf cannot provide a solution bigger than range1. Which is all correct, except that if the value of blk passed in did not represent the first block of the leaf, because the cursor was pointing to the middle of the leaf, then a possible solution before the cursor may have been ignored, and bighint cannot be updated. Consider the sequence allocate 63 (returning address 0), free 0,63 (freeing that same block, and allocate 1 (returning 63). The result is that one block is allocated from the first leaf, and the value of bighint is 0, so that nothing can be allocated from that leaf until the only block allocated from that leaf is freed. This change detects that skipped-over solution, and when there is one it makes sure that the value of bighint is not changed when the last block is allocated. Submitted by: Doug Moore Tested by: pho X-MFC with: r340402 Differential Revision: https://reviews.freebsd.org/D18474 Modified: head/sys/kern/subr_blist.c Modified: head/sys/kern/subr_blist.c ============================================================================== --- head/sys/kern/subr_blist.c Sun Dec 9 15:34:20 2018 (r341765) +++ head/sys/kern/subr_blist.c Sun Dec 9 17:55:10 2018 (r341766) @@ -644,14 +644,14 @@ blst_next_leaf_alloc(blmeta_t *scan, daddr_t blk, int /* * BLST_LEAF_ALLOC() - allocate at a leaf in the radix tree (a bitmap). * - * This is the core of the allocator and is optimized for the - * BLIST_BMAP_RADIX block allocation case. Otherwise, execution - * time is proportional to log2(count) + bitpos time. + * This function is the core of the allocator. Its execution time is + * proportional to log(count), plus height of the tree if the allocation + * crosses a leaf boundary. */ static daddr_t blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int count) { - u_daddr_t mask; + u_daddr_t cursor_mask, mask; int count1, hi, lo, num_shifts, range1, range_ext; range1 = 0; @@ -661,14 +661,14 @@ blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int count while ((-mask & ~mask) != 0 && num_shifts > 0) { /* * If bit i is set in mask, then bits in [i, i+range1] are set - * in scan->bm_bitmap. The value of range1 is equal to - * count1 >> num_shifts. Grow range and reduce num_shifts to 0, - * while preserving these invariants. The updates to mask leave - * fewer bits set, but each bit that remains set represents a - * longer string of consecutive bits set in scan->bm_bitmap. - * If more updates to mask cannot clear more bits, because mask - * is partitioned with all 0 bits preceding all 1 bits, the loop - * terminates immediately. + * in scan->bm_bitmap. The value of range1 is equal to count1 + * >> num_shifts. Grow range1 and reduce num_shifts to 0, + * while preserving these invariants. The updates to mask + * leave fewer bits set, but each bit that remains set + * represents a longer string of consecutive bits set in + * scan->bm_bitmap. If more updates to mask cannot clear more + * bits, because mask is partitioned with all 0 bits preceding + * all 1 bits, the loop terminates immediately. */ num_shifts--; range_ext = range1 + ((count1 >> num_shifts) & 1); @@ -691,10 +691,23 @@ blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int count } /* Discard any candidates that appear before blk. */ - mask &= (u_daddr_t)-1 << (blk & BLIST_BMAP_MASK); - if (mask == 0) - return (SWAPBLK_NONE); + if ((blk & BLIST_BMAP_MASK) != 0) { + cursor_mask = mask & bitrange(0, blk & BLIST_BMAP_MASK); + if (cursor_mask != 0) { + mask ^= cursor_mask; + if (mask == 0) + return (SWAPBLK_NONE); + /* + * Bighint change for last block allocation cannot + * assume that any other blocks are allocated, so the + * bighint cannot be reduced much. + */ + range1 = BLIST_MAX_ALLOC - 1; + } + blk &= ~BLIST_BMAP_MASK; + } + /* * The least significant set bit in mask marks the start of the first * available range of sufficient size. Clear all the bits but that one, @@ -734,7 +747,7 @@ blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int count } /* Clear the allocated bits from this leaf. */ scan->bm_bitmap &= ~mask; - return ((blk & ~BLIST_BMAP_MASK) + lo); + return (blk + lo); } /* From owner-svn-src-head@freebsd.org Sun Dec 9 20:09:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B312B132D367; Sun, 9 Dec 2018 20:09:40 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 084C179288; Sun, 9 Dec 2018 20:09:39 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id wB9JXOVM062965; Sun, 9 Dec 2018 11:33:24 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id wB9JXOvW062964; Sun, 9 Dec 2018 11:33:24 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201812091933.wB9JXOvW062964@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: <201812090701.wB9711aN058754@slippy.cwsent.com> To: Cy Schubert Date: Sun, 9 Dec 2018 11:33:24 -0800 (PST) CC: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 084C179288 X-Spamd-Result: default: False [4.87 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.79)[0.788,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[dnsmgr.net]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; AUTH_NA(1.00)[]; RCPT_COUNT_FIVE(0.00)[5]; LONG_SUBJ(1.52)[203]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: pdx.rh.CN85.dnsmgr.net]; NEURAL_SPAM_LONG(0.73)[0.727,0]; NEURAL_SPAM_MEDIUM(0.96)[0.963,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(-0.02)[country: US(-0.09)] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 20:09:40 -0000 > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy Schubert > writes: > > Author: cy > > Date: Sun Dec 9 06:45:49 2018 > > New Revision: 341759 > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > Log: > > MFV r341618: > > > > Update wpa 2.6 --> 2.7. > > Relnotes: yes As an FYI, or maybe a new procedure, doing a reply to a commit message adding relnotes: yes does very little to insure that this commit gets refered to in release notes. What about we add RELNOTES.missed to the tree next to UPDATING, and when someone forgets to tag the Relnotes:yes into a commit you just follow up with a commit to that file, stating the svn revision which was missing the note and then we have a nice documented and clean way to extract the missing release note items, rather than trying to cull it from a thread in a mail list archive. The file would get truncated to 0 at appropriate times on various branches. Thoughts? Rod Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E75C2132EB84 for ; Sun, 9 Dec 2018 20:37:29 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3B1AE7A998 for ; Sun, 9 Dec 2018 20:37:29 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x835.google.com with SMTP id v11so10199442qtc.2 for ; Sun, 09 Dec 2018 12:37:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+WM9s9Lfm8ifValAHHuTBzcWuZYWFYu5YMpLErL0Mzg=; b=nWMn1jvI+SiAy66l/1Byjx3zrfR9gpCw0eYM8RpALIMt9jMxe1lkSGM+sKOHDYkz8A MgQuR1bQ641XsBM3IDTakxt5Lw3HV2cqLCY3NGvgyac1hxeugphWegxSmvvMV6D4JVSY oys7/D+jM+xGWWMnigJc6K3O7hDS4XHSnSDiOvjSaq82YhzoBkB+8DgbrBh4ShekjgUD XGmesU2s/JngCPt+PHU1n76Rq1IedixxcV86xvdy64EwReDcTCw8ySGLvabuB7LSYiCZ W5jRFpWiUCxFXhQw9dQjR+woSO71rNWkX9akhtPQmVwgNSA4avg+UV/siPEQp7ja7VjV UFDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+WM9s9Lfm8ifValAHHuTBzcWuZYWFYu5YMpLErL0Mzg=; b=nBX3KTJSHdL5HOaSdcOc+6J7f6GuFbSNDIUVUvh9B5jaiqFctM42YRBposQP1g1Wiw cDM0mEva+SjGTE/NNuIBG1DtfVzMogke5/eYSnemj7WrPNtk4XRTU3IEf3kl2P/gRi+1 nJYBmc/aFAAuiy/PLh1dX4pJR1y5RVHVEZ7rmgV45D4+6eD8O47a1Kk89eN8TrotaNnw 8JcANLRiRy39xCI68Q48tl2OcZNmuPQLKH/LP5tEsTizPeFCuQmpU04acXgfWaMX+fRB Vy6hiiBgt8RFutcTe4ZARu0xOuFkuL4oigNZZe4wt/MLWMOsN2nOOlLnEpnSAc5G5urM 3RAw== X-Gm-Message-State: AA+aEWbSD2/UeJ8UWEidjMEssqnbUeC8FA6CttS3v94mIBQPkTGvMKep LwWDBFKCsrEIpie6427jCAO4qPqlYTJt/Tprfu7riQ== X-Google-Smtp-Source: AFSGD/VygZYI0hmEc8m+gu10UpW8ZZYbnokH7NdEZPU30XsBCazF7vZTqps9AQdPLuVEj899Ffsv0cNvpBI230aCCGk= X-Received: by 2002:ac8:3f2d:: with SMTP id c42mr9648537qtk.33.1544387848642; Sun, 09 Dec 2018 12:37:28 -0800 (PST) MIME-Version: 1.0 References: <201812090701.wB9711aN058754@slippy.cwsent.com> <201812091933.wB9JXOvW062964@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201812091933.wB9JXOvW062964@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Sun, 9 Dec 2018 13:37:17 -0700 Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: "Rodney W. Grimes" Cc: Cy Schubert , Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 3B1AE7A998 X-Spamd-Result: default: False [-4.25 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: ALT1.aspmx.l.google.com]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[5.3.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.69)[-0.692,0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-1.56)[ip: (-4.92), ipnet: 2607:f8b0::/32(-1.50), asn: 15169(-1.30), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 20:37:30 -0000 On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy Schubert > > writes: > > > Author: cy > > > Date: Sun Dec 9 06:45:49 2018 > > > New Revision: 341759 > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > > > Log: > > > MFV r341618: > > > > > > Update wpa 2.6 --> 2.7. > > > > Relnotes: yes > > As an FYI, or maybe a new procedure, doing a reply to > a commit message adding relnotes: yes does very little > to insure that this commit gets refered to in release > notes. > > What about we add RELNOTES.missed to the tree > next to UPDATING, and when someone forgets to tag > the Relnotes:yes into a commit you just follow up > with a commit to that file, stating the svn revision > which was missing the note and then we have a nice > documented and clean way to extract the missing > release note items, rather than trying to cull it > from a thread in a mail list archive. > > The file would get truncated to 0 at appropriate > times on various branches. > How about just RELNOTES. You put the revision that is relevant and a quick blurb. That way we don't have to look in two places. All release notes go in here, no exceptions. You can retroactively tag them, or you can commit this as part of commit. Have a blurb at the top that tells people what order to add them in, and you'd be set. We'd then retire "relnotes: yes" in the commit message. This would also allow 'helpers' to format the RELNOTES file as we go rather than having to play 2 years of catch-up at major branch times. Having it in the commit message just doesn't work, and this is one of many reasons: Cy forgot. Other times I'll do something and it's only a month later I realize it needs to be in the release notes after some issue has come up.... Other times I put relnotes: yes in only to realize that's my vanity talking, and nobody else cares. Warner From owner-svn-src-head@freebsd.org Sun Dec 9 21:03:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DCA51132FFE5 for ; Sun, 9 Dec 2018 21:03:54 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7933C7C040 for ; Sun, 9 Dec 2018 21:03:53 +0000 (UTC) (envelope-from oliver.pinter@hardenedbsd.org) Received: by mail-yb1-xb35.google.com with SMTP id b4so1478028ybg.9 for ; Sun, 09 Dec 2018 13:03:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hardenedbsd.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Tbj9gnHHUHwg4olxDPmZQgspWoMcPZpo9ninD2Mm9H0=; b=dgo0wIw017SJNtFpQMPWArroIt5iOD1HUED8uETzgWyZv1GCaAl8EPG+D3LDEJWUKA GoReWco++lnpUmI9D3DEWovx0ApUdIC5Lz/1wbox2PbPI8lPNOTiJNrm/m09iXRXFDfD 3L+xsDwxkax6J+bdUgcaVxQSBqVjmvNmumXKPsJioFukJUufRC4R2uVIfp7K2HIYuDR/ YOxs1k5MaBGDEls0XRDEo0/ZWymRdoeRXzLZ5WaXdfdgezk7N0IsGaHplltagwnOCgCe C3PRUp4A2spkBenIWwVUfDq4X959YdhL6MrPuv5y8gniUewNedxDcYTEihc4yGLLzSgI hV8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Tbj9gnHHUHwg4olxDPmZQgspWoMcPZpo9ninD2Mm9H0=; b=LxTJ1iDnilD1Ne30S4a3eWdPH0XmrWVroN50RUvHe5D4h0MvXyo8e8HeseUdJw3zjj 5Tws5hdI0nLWH+1FZPf5B/YYvwh+stNuKSdlF9BtJS9DNZjeYRArpWrLyRX1YwxEqn2Y yg37722qGkxlN/K8pTfGcbEa50P1/Fuk0joeW25FeEVCOp9FFbiqQXjqwaBBlJZlaMv1 MPANls5Sz9fs+Us/RgxImgEo6AEDEe91UnhF4JJXNdvYMXz6c0EK4JtpPhVdJ7VgLXIf lcfuoD/epDPt0IqPiss3OJNPdNrTVNUA7yjFxgvB9ZACVs+O0GUo19eOFLXTuD18PUXN xOCA== X-Gm-Message-State: AA+aEWbsk9McmZ+DPf13KKNoDDcpqOO46p7KuSiI9R8ld4gCMj5Hl7/F +SRiLTbmKxxmLrrGElz809QIEnmno1ImtyOqesdlDw== X-Google-Smtp-Source: AFSGD/WRtqPIwDJT9SF9I4nPuOWaoYcVwwkkhtNAVaxamXloiH+ij9Z58aOAUMHc2QHmxW1pYVWaSLZg5fEGmqTliAQ= X-Received: by 2002:a25:4983:: with SMTP id w125-v6mr9746796yba.439.1544389432525; Sun, 09 Dec 2018 13:03:52 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a25:84d2:0:0:0:0:0 with HTTP; Sun, 9 Dec 2018 13:03:51 -0800 (PST) In-Reply-To: References: <201812090701.wB9711aN058754@slippy.cwsent.com> <201812091933.wB9JXOvW062964@pdx.rh.CN85.dnsmgr.net> From: Oliver Pinter Date: Sun, 9 Dec 2018 22:03:51 +0100 Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Warner Losh Cc: "Rodney W. Grimes" , "svn-src-head@freebsd.org" , Cy Schubert , "svn-src-all@freebsd.org" , src-committers , Cy Schubert X-Rspamd-Queue-Id: 7933C7C040 X-Spamd-Result: default: False [-2.92 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[hardenedbsd.org]; NEURAL_HAM_MEDIUM(-0.97)[-0.967,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[hardenedbsd.org]; NEURAL_SPAM_SHORT(0.13)[0.130,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[hardenedbsd.org:+]; MX_GOOD(-0.01)[alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_IN_DNSWL_NONE(0.00)[5.3.b.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-0.58)[ipnet: 2607:f8b0::/32(-1.49), asn: 15169(-1.30), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 21:03:55 -0000 On Sunday, December 9, 2018, Warner Losh wrote: > On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy Schubert > > > writes: > > > > Author: cy > > > > Date: Sun Dec 9 06:45:49 2018 > > > > New Revision: 341759 > > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > > > > > Log: > > > > MFV r341618: > > > > > > > > Update wpa 2.6 --> 2.7. > > > > > > Relnotes: yes > > > > As an FYI, or maybe a new procedure, doing a reply to > > a commit message adding relnotes: yes does very little > > to insure that this commit gets refered to in release > > notes. > > > > What about we add RELNOTES.missed to the tree > > next to UPDATING, and when someone forgets to tag > > the Relnotes:yes into a commit you just follow up > > with a commit to that file, stating the svn revision > > which was missing the note and then we have a nice > > documented and clean way to extract the missing > > release note items, rather than trying to cull it > > from a thread in a mail list archive. > > > > The file would get truncated to 0 at appropriate > > times on various branches. > > > > How about just RELNOTES. You put the revision that is relevant and a quick > blurb. That way we don't have to look in two places. All release notes go > in here, no exceptions. You can retroactively tag them, or you can commit > this as part of commit. > I don't really know SVN, but there wouldn't be a chicken egg probem during commit time? I mean you would really know the SVN id. So you could only add a specific revision in a different commit to RELEASE file. > > Have a blurb at the top that tells people what > order to add them in, and you'd be set. We'd then retire "relnotes: yes" in > the commit message. This would also allow 'helpers' to format the RELNOTES > file as we go rather than having to play 2 years of catch-up at major > branch times. > > Having it in the commit message just doesn't work, and this is one of many > reasons: Cy forgot. Other times I'll do something and it's only a month > later I realize it needs to be in the release notes after some issue has > come up.... Other times I put relnotes: yes in only to realize that's my > vanity talking, and nobody else cares. > > Warner > _______________________________________________ > 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-head@freebsd.org Sun Dec 9 21:11:16 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 394311330948; Sun, 9 Dec 2018 21:11:16 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D467B7C83D; Sun, 9 Dec 2018 21:11:15 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B5C9816A3F; Sun, 9 Dec 2018 21:11:15 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wB9LBFXb011534; Sun, 9 Dec 2018 21:11:15 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9LBFec011533; Sun, 9 Dec 2018 21:11:15 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201812092111.wB9LBFec011533@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Sun, 9 Dec 2018 21:11:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341768 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 341768 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D467B7C83D X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.975,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 21:11:16 -0000 Author: eugen Date: Sun Dec 9 21:11:15 2018 New Revision: 341768 URL: https://svnweb.freebsd.org/changeset/base/341768 Log: ping(8): remove needless comparision with LONG_MAX after unsigned long ultmp changed to long ltmp in r340245. MFC after: 1 week Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Sun Dec 9 19:14:21 2018 (r341767) +++ head/sbin/ping/ping.c Sun Dec 9 21:11:15 2018 (r341768) @@ -313,7 +313,7 @@ main(int argc, char *const *argv) break; case 'c': ltmp = strtol(optarg, &ep, 0); - if (*ep || ep == optarg || ltmp > LONG_MAX || ltmp <=0) + if (*ep || ep == optarg || ltmp <=0) errx(EX_USAGE, "invalid count of packets to transmit: `%s'", optarg); From owner-svn-src-head@freebsd.org Sun Dec 9 21:24:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29D7F13314B4 for ; Sun, 9 Dec 2018 21:24:20 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 729B47D22B for ; Sun, 9 Dec 2018 21:24:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82a.google.com with SMTP id l11so10288922qtp.0 for ; Sun, 09 Dec 2018 13:24:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yWYE59L4pOsuKf8AY6yRLSCvVP9pGbicX6APbaO+DZc=; b=C04MHr1laa+U5d12K+STpdlzMj9dASnxox99Wh81sovE/JodxVKoTa+Hn9aKnfuNgJ 79eLV1mupWDgzrgDIzXFK/U0C4+0SbZRFY5C1WS04jBs2jBNrNqYSqC6ayw/9RozYOVj 0SnqpfydmEUpubBrRbGBnO1oScAc5P1AUCOxi4ZViwt0Jc46I3arFfldUWEBOcydLBEW jvkJqRwVyfIW3Y3Ko51kuAgEkmj0M67wecR8R7W3fSsym22zayh6N2EQ1ncwZ+B+v2jl SZgjxXcfYUUBZs2rk3XLT/7bl9P+2zExxHnLdxrZvgqt+DY6lKHmML1MGks6niQ704jf U3LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yWYE59L4pOsuKf8AY6yRLSCvVP9pGbicX6APbaO+DZc=; b=b89UQgu6L66Km8/U58fn7ZUrAChhKQXAwhS0s32ZO+FKntWiJ7/JHINn7odUuSJHQL kGfbnxF8YGQZDpG7euuPtzRJLzHp+D2YSKOp1jtdAr9Chd4o4txDeu4oAOeduxslzhcI yD7pSX4AjC0nbEfPYBQrLmrFTQ8GPMxmrYOwKaBV76nTv7swTCJNmQvlbrL+DZeofAT9 ILwN5Ila0Hz04sTntqw9RXaK/NydlYmQPO6A5agtUGXHPiwe3TLzIhPzVOUZOxw+ZFTR a8id2KhF+MA/0tlPAxUO3u17Zu0hr32RxRx9EoY7lN6IQNrZkowJoGLdPInmBxAHy79c fSJw== X-Gm-Message-State: AA+aEWZ8tcMwOzPYp3G4lhWA4n516iaDkkxhi6QVqs9sJabWUFWwwvWn 2WW5t/sUc569VgoxbMbV464IJX6eiVskevhEendHrw== X-Google-Smtp-Source: AFSGD/V0NZPj19Y4GV7JyvYcPD/QgKtJhuaGIk30NqSrZ2mlEkKEhHlCF+x1n1uQgTIL91vb1icU2vJP+wRowuFUXb8= X-Received: by 2002:ac8:668c:: with SMTP id d12mr9378416qtp.242.1544390658931; Sun, 09 Dec 2018 13:24:18 -0800 (PST) MIME-Version: 1.0 References: <201812090701.wB9711aN058754@slippy.cwsent.com> <201812091933.wB9JXOvW062964@pdx.rh.CN85.dnsmgr.net> In-Reply-To: From: Warner Losh Date: Sun, 9 Dec 2018 14:24:07 -0700 Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Oliver Pinter Cc: "Rodney W. Grimes" , svn-src-head@freebsd.org, Cy Schubert , svn-src-all@freebsd.org, src-committers , Cy Schubert X-Rspamd-Queue-Id: 729B47D22B X-Spamd-Result: default: False [-4.55 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.73)[-0.733,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[cached: ALT1.aspmx.l.google.com]; RCVD_IN_DNSWL_NONE(0.00)[a.2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCPT_COUNT_SEVEN(0.00)[7]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-1.81)[ip: (-6.20), ipnet: 2607:f8b0::/32(-1.49), asn: 15169(-1.30), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 21:24:20 -0000 On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter wrote: > > > On Sunday, December 9, 2018, Warner Losh wrote: > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: >> >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy >> Schubert >> > > writes: >> > > > Author: cy >> > > > Date: Sun Dec 9 06:45:49 2018 >> > > > New Revision: 341759 >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 >> > > > >> > > > Log: >> > > > MFV r341618: >> > > > >> > > > Update wpa 2.6 --> 2.7. >> > > >> > > Relnotes: yes >> > >> > As an FYI, or maybe a new procedure, doing a reply to >> > a commit message adding relnotes: yes does very little >> > to insure that this commit gets refered to in release >> > notes. >> > >> > What about we add RELNOTES.missed to the tree >> > next to UPDATING, and when someone forgets to tag >> > the Relnotes:yes into a commit you just follow up >> > with a commit to that file, stating the svn revision >> > which was missing the note and then we have a nice >> > documented and clean way to extract the missing >> > release note items, rather than trying to cull it >> > from a thread in a mail list archive. >> > >> > The file would get truncated to 0 at appropriate >> > times on various branches. >> > >> >> How about just RELNOTES. You put the revision that is relevant and a quick >> blurb. That way we don't have to look in two places. All release notes go >> in here, no exceptions. You can retroactively tag them, or you can commit >> this as part of commit. > > >> > I don't really know SVN, but there wouldn't be a chicken egg probem during > commit time? I mean you would really know the SVN id. So you could only add > a specific revision in a different commit to RELEASE file. > Generally, you can guess really well, and fix it in the case of a lost race easily. You'd add the release notes text in full to the file, with a pointer to the revision(s) for the feature. Warner > >> Have a blurb at the top that tells people what >> order to add them in, and you'd be set. We'd then retire "relnotes: yes" >> in >> the commit message. This would also allow 'helpers' to format the RELNOTES >> file as we go rather than having to play 2 years of catch-up at major >> branch times. >> >> Having it in the commit message just doesn't work, and this is one of many >> reasons: Cy forgot. Other times I'll do something and it's only a month >> later I realize it needs to be in the release notes after some issue has >> come up.... Other times I put relnotes: yes in only to realize that's my >> vanity talking, and nobody else cares. >> >> Warner >> _______________________________________________ >> 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-head@freebsd.org Sun Dec 9 21:37:35 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9215F1331B67; Sun, 9 Dec 2018 21:37:35 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3109F7DCDD; Sun, 9 Dec 2018 21:37:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1317E16E08; Sun, 9 Dec 2018 21:37:35 +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 wB9LbYsd027331; Sun, 9 Dec 2018 21:37:34 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9LbYp8027330; Sun, 9 Dec 2018 21:37:34 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201812092137.wB9LbYp8027330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 9 Dec 2018 21:37:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341769 - head/sys/cam/scsi X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/cam/scsi X-SVN-Commit-Revision: 341769 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3109F7DCDD X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.975,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 21:37:35 -0000 Author: imp Date: Sun Dec 9 21:37:34 2018 New Revision: 341769 URL: https://svnweb.freebsd.org/changeset/base/341769 Log: Send a START UNIT command when a disk responds with an ASC of 04/1C. This will hopefully spin up a disk that's in low-power mode. Sponsored by: Netflix Submitted by: scottl@ Modified: head/sys/cam/scsi/scsi_all.c Modified: head/sys/cam/scsi/scsi_all.c ============================================================================== --- head/sys/cam/scsi/scsi_all.c Sun Dec 9 21:11:15 2018 (r341768) +++ head/sys/cam/scsi/scsi_all.c Sun Dec 9 21:37:34 2018 (r341769) @@ -1165,7 +1165,7 @@ static struct asc_table_entry asc_table[] = { { SST(0x04, 0x1B, SS_RDEF, /* XXX TBD */ "Logical unit not ready, sanitize in progress") }, /* DT MAEB */ - { SST(0x04, 0x1C, SS_RDEF, /* XXX TBD */ + { SST(0x04, 0x1C, SS_START | SSQ_DECREMENT_COUNT | ENXIO, "Logical unit not ready, additional power use not yet granted") }, /* D */ { SST(0x04, 0x1D, SS_RDEF, /* XXX TBD */ From owner-svn-src-head@freebsd.org Sun Dec 9 21:53:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D0931332AD3; Sun, 9 Dec 2018 21:53:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F2C187EA2E; Sun, 9 Dec 2018 21:53:45 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2BDD1713D; Sun, 9 Dec 2018 21:53:45 +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 wB9Lrj17037375; Sun, 9 Dec 2018 21:53:45 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wB9LrjUv037374; Sun, 9 Dec 2018 21:53:45 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201812092153.wB9LrjUv037374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 9 Dec 2018 21:53:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341770 - head/sys/modules X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/modules X-SVN-Commit-Revision: 341770 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F2C187EA2E X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Dec 2018 21:53:46 -0000 Author: imp Date: Sun Dec 9 21:53:45 2018 New Revision: 341770 URL: https://svnweb.freebsd.org/changeset/base/341770 Log: Fix typo in powerpcspe name. Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Sun Dec 9 21:37:34 2018 (r341769) +++ head/sys/modules/Makefile Sun Dec 9 21:53:45 2018 (r341770) @@ -524,7 +524,7 @@ _cxgbe= cxgbe .endif # These rely on 64bit atomics -.if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspc" && \ +.if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \ ${MACHINE_CPUARCH} != "mips" _mps= mps _mpr= mpr From owner-svn-src-head@freebsd.org Mon Dec 10 01:52:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08246130D799; Mon, 10 Dec 2018 01:52:41 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9C55388A5E; Mon, 10 Dec 2018 01:52:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7D3281980E; Mon, 10 Dec 2018 01:52:40 +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 wBA1qejC063523; Mon, 10 Dec 2018 01:52:40 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA1qdWR063520; Mon, 10 Dec 2018 01:52:39 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812100152.wBA1qdWR063520@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 10 Dec 2018 01:52:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341780 - head/stand/powerpc/uboot X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/stand/powerpc/uboot X-SVN-Commit-Revision: 341780 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9C55388A5E X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.969,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.991,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 01:52:41 -0000 Author: jhibbits Date: Mon Dec 10 01:52:39 2018 New Revision: 341780 URL: https://svnweb.freebsd.org/changeset/base/341780 Log: powerpc/ubldr: Teach powerpc's ubldr to boot 64-bit kernels This is just a copy of powerpc/ofw's ppc64_elf_freebsd.c modified to fit ubldr's boot format. MFC after: 1 week Added: head/stand/powerpc/uboot/ppc64_elf_freebsd.c (contents, props changed) Modified: head/stand/powerpc/uboot/Makefile head/stand/powerpc/uboot/conf.c Modified: head/stand/powerpc/uboot/Makefile ============================================================================== --- head/stand/powerpc/uboot/Makefile Mon Dec 10 01:39:40 2018 (r341779) +++ head/stand/powerpc/uboot/Makefile Mon Dec 10 01:52:39 2018 (r341780) @@ -16,7 +16,7 @@ NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} INSTALLFLAGS= -b # Architecture-specific loader code -SRCS= start.S conf.c vers.c +SRCS= start.S conf.c vers.c ppc64_elf_freebsd.c SRCS+= ucmpdi2.c # Always add MI sources Modified: head/stand/powerpc/uboot/conf.c ============================================================================== --- head/stand/powerpc/uboot/conf.c Mon Dec 10 01:39:40 2018 (r341779) +++ head/stand/powerpc/uboot/conf.c Mon Dec 10 01:52:39 2018 (r341780) @@ -95,9 +95,11 @@ struct netif_driver *netif_drivers[] = { * Sort formats so that those that can detect based on arguments * rather than reading the file go first. */ +extern struct file_format uboot_elf64; struct file_format *file_formats[] = { &uboot_elf, + &uboot_elf64, NULL }; Added: head/stand/powerpc/uboot/ppc64_elf_freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/stand/powerpc/uboot/ppc64_elf_freebsd.c Mon Dec 10 01:52:39 2018 (r341780) @@ -0,0 +1,101 @@ +/*- + * Copyright (c) 2001 Benno Rice + * 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$"); + +#define __ELF_WORD_SIZE 64 + +#include +#include + +#include +#include +#include + +#include + +#include "bootstrap.h" +#include "libuboot.h" + +vm_offset_t md_load64(char *args, vm_offset_t *modulep, vm_offset_t *dtb); +extern char end[]; +extern vm_offset_t reloc; /* From /conf.c */ + +int +ppc64_uboot_elf_loadfile(char *filename, uint64_t dest, + struct preloaded_file **result) +{ + int r; + + r = __elfN(loadfile)(filename, dest, result); + if (r != 0) + return (r); + + /* + * No need to sync the icache for modules: this will + * be done by the kernel after relocation. + */ + if (!strcmp((*result)->f_type, "elf kernel")) + __syncicache((void *) (*result)->f_addr, (*result)->f_size); + return (0); +} + +int +ppc64_uboot_elf_exec(struct preloaded_file *fp) +{ + struct file_metadata *fmp; + vm_offset_t mdp, dtbp; + Elf_Ehdr *e; + int error; + void (*entry)(void *); + + if ((fmp = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) { + return(EFTYPE); + } + e = (Elf_Ehdr *)&fmp->md_data; + + /* Handle function descriptor for ELFv1 kernels */ + if ((e->e_flags & 3) == 2) + entry = (void (*)(void*))(intptr_t)e->e_entry; + else + entry = *(void (*)(void*))(uint64_t *)(intptr_t)e->e_entry; + + if ((error = md_load64(fp->f_args, &mdp, &dtbp)) != 0) + return (error); + + dev_cleanup(); + printf("Kernel args: %s\n", fp->f_args); + + (*entry)((void *)mdp); + panic("exec returned"); +} + +struct file_format uboot_elf64 = +{ + ppc64_uboot_elf_loadfile, + ppc64_uboot_elf_exec +}; From owner-svn-src-head@freebsd.org Mon Dec 10 04:16:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AE6D1310898; Mon, 10 Dec 2018 04:16:41 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 027808CA65; Mon, 10 Dec 2018 04:16:41 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB9211AF0A; Mon, 10 Dec 2018 04:16:40 +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 wBA4GeeD036410; Mon, 10 Dec 2018 04:16:40 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA4Geah036409; Mon, 10 Dec 2018 04:16:40 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812100416.wBA4Geah036409@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 10 Dec 2018 04:16:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341781 - head/sys/powerpc/mpc85xx X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/mpc85xx X-SVN-Commit-Revision: 341781 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 027808CA65 X-Spamd-Result: default: False [-2.94 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 04:16:41 -0000 Author: jhibbits Date: Mon Dec 10 04:16:40 2018 New Revision: 341781 URL: https://svnweb.freebsd.org/changeset/base/341781 Log: powerpc/booke: Replace a logical equivalent of pmap_kextract() with a real call No sense in reinventing the wheel here. AP bringup is not a time-critical point. Modified: head/sys/powerpc/mpc85xx/platform_mpc85xx.c Modified: head/sys/powerpc/mpc85xx/platform_mpc85xx.c ============================================================================== --- head/sys/powerpc/mpc85xx/platform_mpc85xx.c Mon Dec 10 01:52:39 2018 (r341780) +++ head/sys/powerpc/mpc85xx/platform_mpc85xx.c Mon Dec 10 04:16:40 2018 (r341781) @@ -347,7 +347,7 @@ mpc85xx_smp_start_cpu_epapr(platform_t plat, struct pc rel_va = rel_page + (rel_pa & PAGE_MASK); pmap_kenter(rel_page, rel_pa & ~PAGE_MASK); rel = (struct cpu_release *)rel_va; - bptr = ((vm_paddr_t)(uintptr_t)__boot_page - __startkernel) + kernload; + bptr = pmap_kextract((uintptr_t)__boot_page); cpu_flush_dcache(__DEVOLATILE(struct cpu_release *,rel), sizeof(*rel)); rel->pir = pc->pc_cpuid; __asm __volatile("sync"); rel->entry_h = (bptr >> 32); @@ -416,7 +416,7 @@ mpc85xx_smp_start_cpu(platform_t plat, struct pcpu *pc /* Flush caches to have our changes hit DRAM. */ cpu_flush_dcache(__boot_page, 4096); - bptr = ((vm_paddr_t)(uintptr_t)__boot_page - __startkernel) + kernload; + bptr = pmap_kextract((uintptr_t)__boot_page); KASSERT((bptr & 0xfff) == 0, ("%s: boot page is not aligned (%#jx)", __func__, (uintmax_t)bptr)); if (mpc85xx_is_qoriq()) { From owner-svn-src-head@freebsd.org Mon Dec 10 05:22:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 000F61312100; Mon, 10 Dec 2018 05:22:56 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 09AE58EB4A; Mon, 10 Dec 2018 05:22:55 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id WDzKgpqkkyqMYWDzMgfaCc; Sun, 09 Dec 2018 22:20:18 -0700 X-Authority-Analysis: v=2.3 cv=CvFujUwD c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=2ur7OfE09M0A:10 a=xfDLHkLGAAAA:8 a=ypVJL4-jAAAA:8 a=7Qk2ozbKAAAA:8 a=iKhvJSA4AAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=oR3WUjlfROKjby8XLScA:9 a=CjuIK1q_8ugA:10 a=IfaqVvZgccqrtc8gcwf2:22 a=khIbc0fXALFIcTpOSxgJ:22 a=1lyxoWkJIXJV6VJUPhuM:22 a=odh9cflL3HIXMm4fY7Wr:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 8EC681E56; Sun, 9 Dec 2018 21:20:14 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id wBA5KE8E036425; Sun, 9 Dec 2018 21:20:14 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id wBA5KD8o036422; Sun, 9 Dec 2018 21:20:13 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201812100520.wBA5KD8o036422@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Warner Losh cc: Oliver Pinter , "Rodney W. Grimes" , svn-src-head@freebsd.org, Cy Schubert , svn-src-all@freebsd.org, src-committers , Cy Schubert Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: Message from Warner Losh of "Sun, 09 Dec 2018 14:24:07 -0700." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 09 Dec 2018 21:20:13 -0800 X-CMAE-Envelope: MS4wfDkNsKEla0MnVP2J6z8SZOMiz1bhND8jsNOlS2WZXqlpqbi6DxaOhBYKV2JA+T4yFSuW/hCVCq6s/9tZ/bmfiL6jRpHGL/OpZprxqTScu7aTT1gVU5zq rSQ5Q6XoL1WJV+e5qkt9hGwPt+WZLFylJPwdkMs+cZlUvgFS8LtfjU65smL+FKX/aZIbk7pXSi1GHpSafLeh/frg7wxrwC89rPYVPVaruDChiTVVPgB4+n04 n0cvozMmhKkXWI+sBoTW0w8DW3hszQoOR1IpKZRnfCvojRvyCRajA5E0iyPHPejZEfbFU3qqJMaFDfwHArdEA807O7gnq7+QgCrwD+h8GMgUWpWdN5NI0wH7 jCUjuaOOes7KgyuiB9f3FJQiWo+DpA== X-Rspamd-Queue-Id: 09AE58EB4A X-Spamd-Result: default: False [-2.88 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; RCVD_IN_DNSWL_LOW(-0.10)[138.136.59.64.list.dnswl.org : 127.0.5.1]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; LONG_SUBJ(1.52)[203]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: spqr.komquats.com]; REPLYTO_EQ_FROM(0.00)[]; RCPT_COUNT_SEVEN(0.00)[8]; NEURAL_HAM_SHORT(-0.77)[-0.767,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; IP_SCORE(-1.93)[ip: (-4.36), ipnet: 64.59.128.0/20(-2.88), asn: 6327(-2.30), country: CA(-0.09)]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 05:22:57 -0000 In message , Warner Losh writes: > --0000000000009ed486057c9d7878 > Content-Type: text/plain; charset="UTF-8" > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter > wrote: > > > > > > > On Sunday, December 9, 2018, Warner Losh wrote: > > > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > >> > >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy > >> Schubert > >> > > writes: > >> > > > Author: cy > >> > > > Date: Sun Dec 9 06:45:49 2018 > >> > > > New Revision: 341759 > >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > >> > > > > >> > > > Log: > >> > > > MFV r341618: > >> > > > > >> > > > Update wpa 2.6 --> 2.7. > >> > > > >> > > Relnotes: yes > >> > > >> > As an FYI, or maybe a new procedure, doing a reply to > >> > a commit message adding relnotes: yes does very little > >> > to insure that this commit gets refered to in release > >> > notes. > >> > > >> > What about we add RELNOTES.missed to the tree > >> > next to UPDATING, and when someone forgets to tag > >> > the Relnotes:yes into a commit you just follow up > >> > with a commit to that file, stating the svn revision > >> > which was missing the note and then we have a nice > >> > documented and clean way to extract the missing > >> > release note items, rather than trying to cull it > >> > from a thread in a mail list archive. > >> > > >> > The file would get truncated to 0 at appropriate > >> > times on various branches. > >> > > >> > >> How about just RELNOTES. You put the revision that is relevant and a quick > >> blurb. That way we don't have to look in two places. All release notes go > >> in here, no exceptions. You can retroactively tag them, or you can commit > >> this as part of commit. > > > > > >> > > I don't really know SVN, but there wouldn't be a chicken egg probem during > > commit time? I mean you would really know the SVN id. So you could only add > > a specific revision in a different commit to RELEASE file. > > > > Generally, you can guess really well, and fix it in the case of a lost race > easily. > > You'd add the release notes text in full to the file, with a pointer to the > revision(s) for the feature. How about a couple of other alternatives? Hmmm. Rather than bloat the repo, can we put this onto wiki.freebsd.org? Downside, people tend to forget or it's too much of a hassle. Upside, no repo bloat. OTOH, if it is to be a file, IMO it should live in the doc repo. If people write up good notes they can be included directly from doc/. Personally, I prefer "put it in the doc repo" better. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Mon Dec 10 06:19:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 675D7131317E; Mon, 10 Dec 2018 06:19:18 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 66A838FEA7; Mon, 10 Dec 2018 06:19:17 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id wBA6JB7m064610; Sun, 9 Dec 2018 22:19:11 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id wBA6JB0c064609; Sun, 9 Dec 2018 22:19:11 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: To: Warner Losh Date: Sun, 9 Dec 2018 22:19:11 -0800 (PST) CC: Oliver Pinter , "Rodney W. Grimes" , svn-src-head@freebsd.org, Cy Schubert , svn-src-all@freebsd.org, src-committers , Cy Schubert Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 66A838FEA7 X-Spamd-Result: default: False [2.15 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.38)[0.381,0]; NEURAL_HAM_LONG(-0.00)[-0.004,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[dnsmgr.net]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.91)[0.913,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: pdx.rh.CN85.dnsmgr.net]; RCPT_COUNT_SEVEN(0.00)[8]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(-0.03)[asn: 13868(-0.05), country: US(-0.09)] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 06:19:18 -0000 > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter > wrote: > > > > > > > On Sunday, December 9, 2018, Warner Losh wrote: > > > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > >> > >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy > >> Schubert > >> > > writes: > >> > > > Author: cy > >> > > > Date: Sun Dec 9 06:45:49 2018 > >> > > > New Revision: 341759 > >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > >> > > > > >> > > > Log: > >> > > > MFV r341618: > >> > > > > >> > > > Update wpa 2.6 --> 2.7. > >> > > > >> > > Relnotes: yes > >> > > >> > As an FYI, or maybe a new procedure, doing a reply to > >> > a commit message adding relnotes: yes does very little > >> > to insure that this commit gets refered to in release > >> > notes. > >> > > >> > What about we add RELNOTES.missed to the tree > >> > next to UPDATING, and when someone forgets to tag > >> > the Relnotes:yes into a commit you just follow up > >> > with a commit to that file, stating the svn revision > >> > which was missing the note and then we have a nice > >> > documented and clean way to extract the missing > >> > release note items, rather than trying to cull it > >> > from a thread in a mail list archive. > >> > > >> > The file would get truncated to 0 at appropriate > >> > times on various branches. > >> > > >> > >> How about just RELNOTES. You put the revision that is relevant and a quick > >> blurb. That way we don't have to look in two places. All release notes go > >> in here, no exceptions. You can retroactively tag them, or you can commit > >> this as part of commit. My one concern is that if we remove the Relnotes: yes line from the commits then we may end up totally ignoring the need to put entries in RELNOTES, which unlike UPDATING do not have consequences if ignored. > > > > > >> > > I don't really know SVN, but there wouldn't be a chicken egg probem during > > commit time? I mean you would really know the SVN id. So you could only add > > a specific revision in a different commit to RELEASE file. > > > > Generally, you can guess really well, and fix it in the case of a lost race > easily. No reason to guess, if you add the RELNOTES change with the commit then it is the revision that added the RELNOTES entry, so a log view of RELNOTES would show you the revision. If you do it after words or edit an existing entry in the RELNOTES file that is also fairly clear as that commit has no other files touched. > > You'd add the release notes text in full to the file, with a pointer to the > revision(s) for the feature. If you modify RELNOTES with the commit adding the feature we could easily use a pointer of "this commit", the svn version number of that added entry is self referencing to the actual change, which I actually rather like the idea of. > > Warner > > > > >> Have a blurb at the top that tells people what > >> order to add them in, and you'd be set. We'd then retire "relnotes: yes" > >> in > >> the commit message. This would also allow 'helpers' to format the RELNOTES > >> file as we go rather than having to play 2 years of catch-up at major > >> branch times. Yes. You could actually "delete" an entry from RELNOTES once a proper entry in the actual release notes had been created, such that RELNOTES is really a list of pending items. > >> > >> Having it in the commit message just doesn't work, and this is one of many > >> reasons: Cy forgot. Other times I'll do something and it's only a month > >> later I realize it needs to be in the release notes after some issue has > >> come up.... Other times I put relnotes: yes in only to realize that's my > >> vanity talking, and nobody else cares. I agree, what we have now works poorly. > >> Warner -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon Dec 10 06:34:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 31F7613136CC; Mon, 10 Dec 2018 06:34:34 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 8815F69FD2; Mon, 10 Dec 2018 06:34:33 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id wBA6YSdJ064670; Sun, 9 Dec 2018 22:34:28 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id wBA6YRcM064669; Sun, 9 Dec 2018 22:34:27 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201812100634.wBA6YRcM064669@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: <201812100520.wBA5KD8o036422@slippy.cwsent.com> To: Cy Schubert Date: Sun, 9 Dec 2018 22:34:27 -0800 (PST) CC: Warner Losh , Oliver Pinter , "Rodney W. Grimes" , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Cy Schubert Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 8815F69FD2 X-Spamd-Result: default: False [4.59 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.44)[0.439,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[dnsmgr.net]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.97)[0.973,0]; LONG_SUBJ(1.52)[203]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: pdx.rh.CN85.dnsmgr.net]; NEURAL_SPAM_LONG(0.80)[0.796,0]; RCPT_COUNT_SEVEN(0.00)[8]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(-0.03)[asn: 13868(-0.05), country: US(-0.09)] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 06:34:34 -0000 > In message il.com> > , Warner Losh writes: > > --0000000000009ed486057c9d7878 > > Content-Type: text/plain; charset="UTF-8" > > > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter > > wrote: > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh wrote: > > > > > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > >> > > >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy > > >> Schubert > > >> > > writes: > > >> > > > Author: cy > > >> > > > Date: Sun Dec 9 06:45:49 2018 > > >> > > > New Revision: 341759 > > >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > >> > > > > > >> > > > Log: > > >> > > > MFV r341618: > > >> > > > > > >> > > > Update wpa 2.6 --> 2.7. > > >> > > > > >> > > Relnotes: yes > > >> > > > >> > As an FYI, or maybe a new procedure, doing a reply to > > >> > a commit message adding relnotes: yes does very little > > >> > to insure that this commit gets refered to in release > > >> > notes. > > >> > > > >> > What about we add RELNOTES.missed to the tree > > >> > next to UPDATING, and when someone forgets to tag > > >> > the Relnotes:yes into a commit you just follow up > > >> > with a commit to that file, stating the svn revision > > >> > which was missing the note and then we have a nice > > >> > documented and clean way to extract the missing > > >> > release note items, rather than trying to cull it > > >> > from a thread in a mail list archive. > > >> > > > >> > The file would get truncated to 0 at appropriate > > >> > times on various branches. > > >> > > > >> > > >> How about just RELNOTES. You put the revision that is relevant and a quick > > >> blurb. That way we don't have to look in two places. All release notes go > > >> in here, no exceptions. You can retroactively tag them, or you can commit > > >> this as part of commit. > > > > > > > > >> > > > I don't really know SVN, but there wouldn't be a chicken egg probem during > > > commit time? I mean you would really know the SVN id. So you could only add > > > a specific revision in a different commit to RELEASE file. > > > > > > > Generally, you can guess really well, and fix it in the case of a lost race > > easily. > > > > You'd add the release notes text in full to the file, with a pointer to the > > revision(s) for the feature. > > How about a couple of other alternatives? > > Hmmm. Rather than bloat the repo, I do not think this is going to create any sizeable amount of repo bloat. > can we put this onto > wiki.freebsd.org? Downside, people tend to forget or it's too much of a > hassle. Upside, no repo bloat. wiki.freebsd.org is out of the question, to far away from the commit button to ever be used by most developers. > > otoh, is it is to be a file, IMO it should live in the doc repo. If > people write up good notes they can be included directly from doc/. Again, doc repo is too far away for most developers to ever both with a commit to the doc repository, however we have move the release notes to the doc repository, but that is mostly release engineering doing work on that. > > Personally, I prefer "put it in the doc repo" better. Release notes are already there, but putting this file there would ensure that no developer ever adds anything to it. That would also mean 2 commits for any relnotes type thing, one to the base repository and another to the docs repository, and that would lose the self referential svn version that I mentioned in my reply to imp@ -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon Dec 10 06:40:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C68613137ED; Mon, 10 Dec 2018 06:40:44 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 155076A1D2; Mon, 10 Dec 2018 06:40:42 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id WFF8g0a23ctraWFF9g9qv2; Sun, 09 Dec 2018 23:40:41 -0700 X-Authority-Analysis: v=2.3 cv=Io3Pj43g c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=2ur7OfE09M0A:10 a=iKhvJSA4AAAA:8 a=ypVJL4-jAAAA:8 a=7Qk2ozbKAAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=PGztigdreN4GuxPxX5EA:9 a=CjuIK1q_8ugA:10 a=odh9cflL3HIXMm4fY7Wr:22 a=khIbc0fXALFIcTpOSxgJ:22 a=1lyxoWkJIXJV6VJUPhuM:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 20B771F6B; Sun, 9 Dec 2018 22:40:37 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id wBA6eabO052007; Sun, 9 Dec 2018 22:40:36 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id wBA6eaMA052004; Sun, 9 Dec 2018 22:40:36 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201812100640.wBA6eaMA052004@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: rgrimes@freebsd.org cc: Warner Losh , Oliver Pinter , svn-src-head@freebsd.org, Cy Schubert , svn-src-all@freebsd.org, src-committers , Cy Schubert Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: Message from "Rodney W. Grimes" of "Sun, 09 Dec 2018 22:19:11 -0800." <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 09 Dec 2018 22:40:36 -0800 X-CMAE-Envelope: MS4wfHZK4qAssYBM9PgRRI+w13DiwpGEPnffBBWp8oslN0nMtIedU8dAi0/mN60j8KBXBR0HII0Eld7Xsuw4VDO09NbhBnkkP/ifUU86s3xeyFB4foy7nX2L BB5pXEOKFyDv800JyTddAJZEfJqq3z5XnbwpfcasGFFCYkrayp+UdPg74yyZlWxYaNl7J1Pn0BeMIxTQOvDBwv/fbTy6WSyDJk+8XxXB5DDrLwPMCadrLqU4 +9FqECUK9LkUfxFSd/LKB/C+PSK5T7ofq77Jjk0I0LczBOcWC3JuDRD9X0uR2Yv7oTtipRzPr+vbQ82Yl3z1jADtgcNDhx/VbctkRn7Pv3l2a7K8imwoHxGM xUXjwJHl6VT2vIVaH3wxEbvHpoC/+w== X-Rspamd-Queue-Id: 155076A1D2 X-Spamd-Result: default: False [-2.97 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; LONG_SUBJ(1.52)[203]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: spqr.komquats.com]; REPLYTO_EQ_FROM(0.00)[]; RCPT_COUNT_SEVEN(0.00)[8]; NEURAL_HAM_SHORT(-0.91)[-0.915,0]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; IP_SCORE(-1.87)[ip: (-4.12), ipnet: 64.59.128.0/20(-2.85), asn: 6327(-2.28), country: CA(-0.09)]; RCVD_IN_DNSWL_LOW(-0.10)[138.136.59.64.list.dnswl.org : 127.0.5.1] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 06:40:44 -0000 In message <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net>, "Rodney W. Gri mes" writes: > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter > > > wrote: > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh wrote: > > > > > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > >> > > >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy > > >> Schubert > > >> > > writes: > > >> > > > Author: cy > > >> > > > Date: Sun Dec 9 06:45:49 2018 > > >> > > > New Revision: 341759 > > >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > >> > > > > > >> > > > Log: > > >> > > > MFV r341618: > > >> > > > > > >> > > > Update wpa 2.6 --> 2.7. > > >> > > > > >> > > Relnotes: yes > > >> > > > >> > As an FYI, or maybe a new procedure, doing a reply to > > >> > a commit message adding relnotes: yes does very little > > >> > to insure that this commit gets refered to in release > > >> > notes. > > >> > > > >> > What about we add RELNOTES.missed to the tree > > >> > next to UPDATING, and when someone forgets to tag > > >> > the Relnotes:yes into a commit you just follow up > > >> > with a commit to that file, stating the svn revision > > >> > which was missing the note and then we have a nice > > >> > documented and clean way to extract the missing > > >> > release note items, rather than trying to cull it > > >> > from a thread in a mail list archive. > > >> > > > >> > The file would get truncated to 0 at appropriate > > >> > times on various branches. > > >> > > > >> > > >> How about just RELNOTES. You put the revision that is relevant and a qui > ck > > >> blurb. That way we don't have to look in two places. All release notes g > o > > >> in here, no exceptions. You can retroactively tag them, or you can commi > t > > >> this as part of commit. > > My one concern is that if we remove the Relnotes: yes line > from the commits then we may end up totally ignoring the > need to put entries in RELNOTES, which unlike UPDATING > do not have consequences if ignored. > > > > > > > > > >> > > > I don't really know SVN, but there wouldn't be a chicken egg probem durin > g > > > commit time? I mean you would really know the SVN id. So you could only a > dd > > > a specific revision in a different commit to RELEASE file. > > > > > > > Generally, you can guess really well, and fix it in the case of a lost race > > easily. > > No reason to guess, if you add the RELNOTES change with the commit > then it is the revision that added the RELNOTES entry, so a log view > of RELNOTES would show you the revision. If you do it after words > or edit an existing entry in the RELNOTES file that is also fairly > clear as that commit has no other files touched. > > > > > You'd add the release notes text in full to the file, with a pointer to the > > revision(s) for the feature. > > If you modify RELNOTES with the commit adding the feature we > could easily use a pointer of "this commit", the svn version number > of that added entry is self referencing to the actual change, > which I actually rather like the idea of. > > > > > Warner > > > > > > > >> Have a blurb at the top that tells people what > > >> order to add them in, and you'd be set. We'd then retire "relnotes: yes" > > >> in > > >> the commit message. This would also allow 'helpers' to format the RELNOT > ES > > >> file as we go rather than having to play 2 years of catch-up at major > > >> branch times. > > Yes. You could actually "delete" an entry from RELNOTES once a > proper entry in the actual release notes had been created, such > that RELNOTES is really a list of pending items. > > > >> > > >> Having it in the commit message just doesn't work, and this is one of ma > ny > > >> reasons: Cy forgot. Other times I'll do something and it's only a month > > >> later I realize it needs to be in the release notes after some issue has > > >> come up.... Other times I put relnotes: yes in only to realize that's my > > >> vanity talking, and nobody else cares. > > I agree, what we have now works poorly. Forgetting, yes, but also a hmmm moment. Initially my thinking was a file in doc/. Or maybe something like the vuxml port where we fill in the blanks and make validate to make sure all the i's are dotted and t's crossed. It's a little extra work for committers but would help re@ immensely, and get the details in from the get-go. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Mon Dec 10 06:48:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 094E41313A93 for ; Mon, 10 Dec 2018 06:48:00 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C03656A667 for ; Mon, 10 Dec 2018 06:47:58 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x835.google.com with SMTP id v11so11172771qtc.2 for ; Sun, 09 Dec 2018 22:47:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=fdGytl9RZPT2rkMfoFn60rdAiDVMG0vo6BC35lmbaas=; b=GYM3r5y1iIR19SzVZh939ytg8LB/n/rIum/qgpjORnjwMBWxwhopPDq8HMcLIwEK2q +Hut9RikB+WyOjG7d/j/0EGkHakGCqsVMj8a8bP3BM/PkGMywFUSHHHE9ZjTufXNTMwG mJ4GOcQybrxNpWRrB4PcMWHNeBJAmsASvyuBo/ixHHi3WrTUlztJE8AJJuo4IqKof6Ty pGSxMsnBer5w+ayoUXUgP2tSn7Q7mOA0GJ42ggcsA8c78FX1Z7oUPmCKqnmozEGUS6MB sqxBA+BfqOX31JZMP8kIb/pbsVBVtUdJGItgXU381zb9SnwxtpYDzIsFbsVHUzpCWdoP tZzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fdGytl9RZPT2rkMfoFn60rdAiDVMG0vo6BC35lmbaas=; b=bs3yXxgu21qvZ4fvLjV7Ym2truC9ytNPz028T5gPM+0Pd2yHLpVh/T6noPviXxpUC/ c2PMg/ME/qiwZ+Jo1g23wV+sb1PFFNXA9EJE8hrUMBHK5NlbxvaUZPBb/uyEF6wwO96Y GqrJ1T6YuWpSj2fk3hKS43MXPwdXz68sdr+ZsPviFbztB1xqr86zhpbm4Ns4pdnEGpQA JjGA37GeLdJBznffIFEbnSAXrR1I69CmJHFAUsoM/Ub41X1EbTKjaVacE0GCOHm/A2MO cfLkqPrpgvnZ2FhnqTM4PK6uW7jcYX3nhE37SdQciTnPQboQVTW6QsjF9rmisaPjSJzS iR4w== X-Gm-Message-State: AA+aEWY5h0n6izI1YxfV+ZxQSTRQaNeZKnwrULMbMFKUL+1ODwrXNlrG YPgZxR1Xk6cWnq0wAfvBRLDrfG9Ie+ozQulycLwCaC/6 X-Google-Smtp-Source: AFSGD/UsIp1VrAn2jpFDg/WBHFw54IT4PxgN7DOSOBSNWw3rTN9WrVDD+uUd/DzuDcG1WORb5H1Nt+kXErp4LZ86ePE= X-Received: by 2002:ac8:4294:: with SMTP id o20mr11092152qtl.118.1544424477874; Sun, 09 Dec 2018 22:47:57 -0800 (PST) MIME-Version: 1.0 References: <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net> <201812100640.wBA6eaMA052004@slippy.cwsent.com> In-Reply-To: <201812100640.wBA6eaMA052004@slippy.cwsent.com> From: Warner Losh Date: Sun, 9 Dec 2018 23:47:46 -0700 Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Cy Schubert Cc: "Rodney W. Grimes" , Oliver Pinter , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Cy Schubert X-Rspamd-Queue-Id: C03656A667 X-Spamd-Result: default: False [-4.46 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.94)[-0.935,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[ALT1.aspmx.l.google.com,aspmx.l.google.com,ALT2.aspmx.l.google.com]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_IN_DNSWL_NONE(0.00)[5.3.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-1.52)[ip: (-4.71), ipnet: 2607:f8b0::/32(-1.50), asn: 15169(-1.30), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 06:48:00 -0000 On Sun, Dec 9, 2018, 11:40 PM Cy Schubert In message <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net>, > "Rodney W. Gri > mes" writes: > > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter < > oliver.pinter@hardenedbsd.org > > > > > > wrote: > > > > > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh wrote: > > > > > > > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > >> > > > >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy > > > >> Schubert > > > >> > > writes: > > > >> > > > Author: cy > > > >> > > > Date: Sun Dec 9 06:45:49 2018 > > > >> > > > New Revision: 341759 > > > >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > >> > > > > > > >> > > > Log: > > > >> > > > MFV r341618: > > > >> > > > > > > >> > > > Update wpa 2.6 --> 2.7. > > > >> > > > > > >> > > Relnotes: yes > > > >> > > > > >> > As an FYI, or maybe a new procedure, doing a reply to > > > >> > a commit message adding relnotes: yes does very little > > > >> > to insure that this commit gets refered to in release > > > >> > notes. > > > >> > > > > >> > What about we add RELNOTES.missed to the tree > > > >> > next to UPDATING, and when someone forgets to tag > > > >> > the Relnotes:yes into a commit you just follow up > > > >> > with a commit to that file, stating the svn revision > > > >> > which was missing the note and then we have a nice > > > >> > documented and clean way to extract the missing > > > >> > release note items, rather than trying to cull it > > > >> > from a thread in a mail list archive. > > > >> > > > > >> > The file would get truncated to 0 at appropriate > > > >> > times on various branches. > > > >> > > > > >> > > > >> How about just RELNOTES. You put the revision that is relevant and > a qui > > ck > > > >> blurb. That way we don't have to look in two places. All release > notes g > > o > > > >> in here, no exceptions. You can retroactively tag them, or you can > commi > > t > > > >> this as part of commit. > > > > My one concern is that if we remove the Relnotes: yes line > > from the commits then we may end up totally ignoring the > > need to put entries in RELNOTES, which unlike UPDATING > > do not have consequences if ignored. > > > > > > > > > > > > > >> > > > > I don't really know SVN, but there wouldn't be a chicken egg probem > durin > > g > > > > commit time? I mean you would really know the SVN id. So you could > only a > > dd > > > > a specific revision in a different commit to RELEASE file. > > > > > > > > > > Generally, you can guess really well, and fix it in the case of a lost > race > > > easily. > > > > No reason to guess, if you add the RELNOTES change with the commit > > then it is the revision that added the RELNOTES entry, so a log view > > of RELNOTES would show you the revision. If you do it after words > > or edit an existing entry in the RELNOTES file that is also fairly > > clear as that commit has no other files touched. > > > > > > > > You'd add the release notes text in full to the file, with a pointer > to the > > > revision(s) for the feature. > > > > If you modify RELNOTES with the commit adding the feature we > > could easily use a pointer of "this commit", the svn version number > > of that added entry is self referencing to the actual change, > > which I actually rather like the idea of. > > > > > > > > Warner > > > > > > > > > > >> Have a blurb at the top that tells people what > > > >> order to add them in, and you'd be set. We'd then retire "relnotes: > yes" > > > >> in > > > >> the commit message. This would also allow 'helpers' to format the > RELNOT > > ES > > > >> file as we go rather than having to play 2 years of catch-up at > major > > > >> branch times. > > > > Yes. You could actually "delete" an entry from RELNOTES once a > > proper entry in the actual release notes had been created, such > > that RELNOTES is really a list of pending items. > > > > > >> > > > >> Having it in the commit message just doesn't work, and this is one > of ma > > ny > > > >> reasons: Cy forgot. Other times I'll do something and it's only a > month > > > >> later I realize it needs to be in the release notes after some > issue has > > > >> come up.... Other times I put relnotes: yes in only to realize > that's my > > > >> vanity talking, and nobody else cares. > > > > I agree, what we have now works poorly. > > Forgetting, yes, but also a hmmm moment. > > Initially my thinking was a file in doc/. Or maybe something like the > vuxml port where we fill in the blanks and make validate to make sure > all the i's are dotted and t's crossed. It's a little extra work for > committers but would help re@ immensely, and get the details in from > the get-go. > My thought was a low friction, proximate way to do a ticker of important changes. Doc repo is too hard. Too much friction. A simple extra file puts it all in one, easy to find and edit place... it can cause other things to happen, further away. But it needs to be close by. Warner > > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: http://www.FreeBSD.org > > The need of the many outweighs the greed of the few. > > > From owner-svn-src-head@freebsd.org Mon Dec 10 09:17:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B87C513177E0; Mon, 10 Dec 2018 09:17:17 +0000 (UTC) (envelope-from se@freebsd.org) Received: from mailout03.t-online.de (mailout03.t-online.de [194.25.134.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mailout00.t-online.de", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C7B8C6F14A; Mon, 10 Dec 2018 09:17:16 +0000 (UTC) (envelope-from se@freebsd.org) Received: from fwd26.aul.t-online.de (fwd26.aul.t-online.de [172.20.26.131]) by mailout03.t-online.de (Postfix) with SMTP id 2FCB3427F354; Mon, 10 Dec 2018 10:17:09 +0100 (CET) Received: from Stefans-MBP-LAN.fritz.box (rPaYTvZGYhzcZGO3uuulOTU9PgBXwg6AztbZHLN68uBZVQkbOA6c1jHZHd7vlzxgFQ@[93.200.55.147]) by fwd26.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1gWHgW-3Ukf9U0; Mon, 10 Dec 2018 10:17:04 +0100 Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Warner Losh , Cy Schubert , "Rodney W. Grimes" , Oliver Pinter , Cy Schubert Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers References: <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net> <201812100640.wBA6eaMA052004@slippy.cwsent.com> From: Stefan Esser Openpgp: preference=signencrypt Autocrypt: addr=se@freebsd.org; prefer-encrypt=mutual; keydata= xsBNBFVxiRIBCADOLNOZBsqlplHUQ3tG782FNtVT33rQli9EjNt2fhFERHIo4NxHlWBpHLnU b0s4L/eItx7au0i7Gegv01A9LUMwOnAc9EFAm4EW3Wmoa6MYrcP7xDClohg/Y69f7SNpEs3x YATBy+L6NzWZbJjZXD4vqPgZSDuMcLU7BEdJf0f+6h1BJPnGuwHpsSdnnMrZeIM8xQ8PPUVQ L0GZkVojHgNUngJH6e21qDrud0BkdiBcij0M3TCP4GQrJ/YMdurfc8mhueLpwGR2U1W8TYB7 4UY+NLw0McThOCLCxXflIeF/Y7jSB0zxzvb/H3LWkodUTkV57yX9IbUAGA5RKRg9zsUtABEB AAHNKVN0ZWZhbiBFw59lciAoWWFob28hKSA8c3QuZXNzZXJAeWFob28uZGU+wsCWBBMBCgBA AhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AWIQSjceplnAvsyCtxUxNH67XvWv31RAUC WvLvqwUJCyUBEwAKCRBH67XvWv31REySCACc6vqcSFQCRyBRc2CV5ZBjbbnTy7VBoXbUS3/c 4Hn8I0YQ39q7//2z8vYsgLeM1mMXL4PUIU/0f0dBAFBLpxV7bntGzyCJls6SeGS/qcQKhqaI 6I7NcWg8OkIJIhUL6q238cS1ql9pU65fyHe0PP8JS08m81PDpX2/4wTE6h2jgYUy55eXRzoF MEjr1S8SSnidsBem27o7iWu9ltJsUtE86071iZlLzbuHv2nvucrjAV9cK9tHrxYT/YiY8QhT L48iWj2xIjLjg1ebmgIFZ2k881we/KTIoUugqOOR1gDSc4qwM8CA388cN3frjtl98CwhAT5T UV8tIDqri+/Z1AKwzsBNBFVxiRIBCACxI/aglzGVbnI6XHd0MTP05VK/fJub4hHdc+LQpz1M kVnCAhFbY9oecTB/togdKtfiloavjbFrb0nJhJnx57K+3SdSuu+znaQ4SlWiZOtXnkbpRWNU eMm+gtTDMSvloGAfr76RtFHskdDOLgXsHD70bKuMhlBxUCrSwGzHaD00q8iQPhJZ5itb3WPq z3B4IjiDAWTO2obD1wtAvSuHuUj/XJRsiKDKW3x13cfavkad81bZW4cpNwUv8XHLv/vaZPSA ly+hkY7NrDZydMMXVNQ7AJQufWuTJ0q7sImRcEZ5EIa98esJPey4O7C0vY405wjeyxpVZkpq ThDMurqtQFn1ABEBAAHCwHwEGAEKACYCGwwWIQSjceplnAvsyCtxUxNH67XvWv31RAUCWvLv qwUJCyUBGQAKCRBH67XvWv31RLnrB/9gzcRlpx71sDMosoZULWn7wysBJ/8AIEfIByRaHQe3 pn/KwE57pB+zFbbQqB7YzeZb7/UUgR4zU2ZbOcEfwDZcHUbj0B3fGRsS3t0uiLlAd8w0sBZb SxrqzjdpDjIbOZkxssqUmvrsN67UG1AFWH9aD24keBS7YjPBS8hLxPeYV+Xz6vUL8fRZje/Z JgiBMIwyj6g2lH/zkdnxBdC0iG1xxJOLTaghMMeQyCdH6ef8+VMyAlAJsMckbOTvx63tY8z7 DFcrnTJfbe1EziRilVsEaK8tTzJzhcTfos+f3eBYWEilxe5HzIhYKJeC7lmsSUcGwa6+9VRg a0ctmi9Z8OgX Message-ID: <2b0c3d91-54b6-37d9-e934-a87629b399fd@freebsd.org> Date: Mon, 10 Dec 2018 10:17:03 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 8bit X-ID: rPaYTvZGYhzcZGO3uuulOTU9PgBXwg6AztbZHLN68uBZVQkbOA6c1jHZHd7vlzxgFQ X-TOI-MSGID: b74ff86d-fa7c-405d-91a8-97bb96455f23 X-Rspamd-Queue-Id: C7B8C6F14A X-Spamd-Result: default: False [-2.91 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.992,0]; NEURAL_HAM_LONG(-0.95)[-0.950,0]; NEURAL_HAM_SHORT(-0.97)[-0.971,0]; ASN(0.00)[asn:3320, ipnet:194.25.0.0/16, country:DE] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:17:18 -0000 Am 10.12.18 um 07:47 schrieb Warner Losh: > > > On Sun, Dec 9, 2018, 11:40 PM Cy Schubert wrote: > > In message <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net > >, > "Rodney W. Gri > mes" writes: > > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter > > > > > > > wrote: > > > > > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh > wrote: > > > > > > > >> On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > > >> freebsd@pdx.rh.cn85.dnsmgr.net > > wrote: > > > >> > > > >> > > In message <201812090645.wB96jnso066329@repo.freebsd.org > >, Cy > > > >> Schubert > > > >> > > writes: > > > >> > > > Author: cy > > > >> > > > Date: Sun Dec  9 06:45:49 2018 > > > >> > > > New Revision: 341759 > > > >> > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > >> > > > > > > >> > > > Log: > > > >> > > >   MFV r341618: > > > >> > > > > > > >> > > >   Update wpa 2.6 --> 2.7. > > > >> > > > > > >> > > Relnotes: yes > > > >> > > > > >> > As an FYI, or maybe a new procedure, doing a reply to > > > >> > a commit message adding relnotes: yes does very little > > > >> > to insure that this commit gets refered to in release > > > >> > notes. > > > >> > > > > >> > What about we add RELNOTES.missed to the tree > > > >> > next to UPDATING, and when someone forgets to tag > > > >> > the Relnotes:yes into a commit you just follow up > > > >> > with a commit to that file, stating the svn revision > > > >> > which was missing the note and then we have a nice > > > >> > documented and clean way to extract the missing > > > >> > release note items, rather than trying to cull it > > > >> > from a thread in a mail list archive. > > > >> > > > > >> > The file would get truncated to 0 at appropriate > > > >> > times on various branches. > > > >> > > > > >> > > > >> How about just RELNOTES. You put the revision that is relevant and > a qui > > ck > > > >> blurb. That way we don't have to look in two places. All release > notes g > > o > > > >> in here, no exceptions. You can retroactively tag them, or you can > commi > > t > > > >> this as part of commit. > > > > My one concern is that if we remove the Relnotes: yes line > > from the commits then we may end up totally ignoring the > > need to put entries in RELNOTES, which unlike UPDATING > > do not have consequences if ignored. > > > > > > > > > > > > > >> > > > > I don't really know SVN, but there wouldn't be a chicken egg probem > durin > > g > > > > commit time? I mean you would really know the SVN id. So you could > only a > > dd > > > > a specific revision in a different commit to RELEASE file. > > > > > > > > > > Generally, you can guess really well, and fix it in the case of a lost > race > > > easily. > > > > No reason to guess, if you add the RELNOTES change with the commit > > then it is the revision that added the RELNOTES entry, so a log view > > of RELNOTES would show you the revision.  If you do it after words > > or edit an existing entry in the RELNOTES file that is also fairly > > clear as that commit has no other files touched. > > > > > > > > You'd add the release notes text in full to the file, with a pointer > to the > > > revision(s) for the feature. > > > > If you modify RELNOTES with the commit adding the feature we > > could easily use a pointer of "this commit", the svn version number > > of that added entry is self referencing to the actual change, > > which I actually rather like the idea of. > > > > > > > > Warner > > > > > > > > > > >> Have a blurb at the top that tells people what > > > >> order to add them in, and you'd be set. We'd then retire "relnotes: > yes" > > > >> in > > > >> the commit message. This would also allow 'helpers' to format the > RELNOT > > ES > > > >> file as we go rather than having to play 2 years of catch-up at major > > > >> branch times. > > > > Yes.  You could actually "delete" an entry from RELNOTES once a > > proper entry in the actual release notes had been created, such > > that RELNOTES is really a list of pending items. > > > > > >> > > > >> Having it in the commit message just doesn't work, and this is one > of ma > > ny > > > >> reasons: Cy forgot. Other times I'll do something and it's only a month > > > >> later I realize it needs to be in the release notes after some > issue has > > > >> come up.... Other times I put relnotes: yes in only to realize > that's my > > > >> vanity talking, and nobody else cares. > > > > I agree, what we have now works poorly. > > Forgetting, yes, but also a hmmm moment. > > Initially my thinking was a file in doc/. Or maybe something like the > vuxml port where we fill in the blanks and make validate to make sure > all the i's are dotted and t's crossed. It's a little extra work for > committers but would help re@ immensely, and get the details in from > the get-go. > > My thought was a low friction,  proximate way to do a ticker of important > changes. Doc repo is too hard. Too much friction. A simple extra file puts it > all in one, easy to find and edit place... it can cause other things to > happen, further away. But it needs to be close by. IMHO it would be easiest to use and to remember to just perform a forced commit to any of the files affected by the change and to set RELNOTES in that commit. The commit message could further contain a SVN revision number of the relevant change (mandatory, if it has not been the previous commit to that file) and optionally an explanatory text for the RE. This could be automated by allowing the revision affected (or a few words of explanation) to be put on the RELNOTES line - assume there already is a script that scans the repository for such entries and that script could be enhanced to automatically retrieve the commit message from a referenced earlier commit, for example. Regards, STefan From owner-svn-src-head@freebsd.org Mon Dec 10 09:35:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C23BB1317F4A; Mon, 10 Dec 2018 09:35:34 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 694AE6FBD2; Mon, 10 Dec 2018 09:35:34 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3EEE81E260; Mon, 10 Dec 2018 09:35:34 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBA9ZYXf002340; Mon, 10 Dec 2018 09:35:34 GMT (envelope-from arybchik@FreeBSD.org) Received: (from arybchik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA9ZXa6002338; Mon, 10 Dec 2018 09:35:33 GMT (envelope-from arybchik@FreeBSD.org) Message-Id: <201812100935.wBA9ZXa6002338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arybchik set sender to arybchik@FreeBSD.org using -f From: Andrew Rybchenko Date: Mon, 10 Dec 2018 09:35:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341782 - head/sys/dev/sfxge X-SVN-Group: head X-SVN-Commit-Author: arybchik X-SVN-Commit-Paths: head/sys/dev/sfxge X-SVN-Commit-Revision: 341782 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 694AE6FBD2 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:35:35 -0000 Author: arybchik Date: Mon Dec 10 09:35:33 2018 New Revision: 341782 URL: https://svnweb.freebsd.org/changeset/base/341782 Log: sfxge(4): populate per-event queue stats in sysctl In order to find out why the first event queue and corresponding interrupt is triggered more frequent, it is useful to know which events go to each event queue. Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18418 Modified: head/sys/dev/sfxge/sfxge.h head/sys/dev/sfxge/sfxge_ev.c Modified: head/sys/dev/sfxge/sfxge.h ============================================================================== --- head/sys/dev/sfxge/sfxge.h Mon Dec 10 04:16:40 2018 (r341781) +++ head/sys/dev/sfxge/sfxge.h Mon Dec 10 09:35:33 2018 (r341782) @@ -184,6 +184,10 @@ struct sfxge_evq { unsigned int buf_base_id; unsigned int entries; char lock_name[SFXGE_LOCK_NAME_MAX]; +#if EFSYS_OPT_QSTATS + clock_t stats_update_time; + uint64_t stats[EV_NQSTATS]; +#endif } __aligned(CACHE_LINE_SIZE); #define SFXGE_NDESCS 1024 @@ -275,6 +279,9 @@ struct sfxge_softc { struct ifnet *ifnet; unsigned int if_flags; struct sysctl_oid *stats_node; +#if EFSYS_OPT_QSTATS + struct sysctl_oid *evqs_stats_node; +#endif struct sysctl_oid *txqs_node; struct task task_reset; Modified: head/sys/dev/sfxge/sfxge_ev.c ============================================================================== --- head/sys/dev/sfxge/sfxge_ev.c Mon Dec 10 04:16:40 2018 (r341781) +++ head/sys/dev/sfxge/sfxge_ev.c Mon Dec 10 09:35:33 2018 (r341782) @@ -443,29 +443,94 @@ sfxge_ev_wake_up(void *arg, uint32_t index) #if EFSYS_OPT_QSTATS static void +sfxge_evq_stat_update(struct sfxge_evq *evq) +{ + clock_t now; + + SFXGE_EVQ_LOCK(evq); + + if (__predict_false(evq->init_state != SFXGE_EVQ_STARTED)) + goto out; + + now = ticks; + if ((unsigned int)(now - evq->stats_update_time) < (unsigned int)hz) + goto out; + + evq->stats_update_time = now; + efx_ev_qstats_update(evq->common, evq->stats); + +out: + SFXGE_EVQ_UNLOCK(evq); +} + +static int +sfxge_evq_stat_handler(SYSCTL_HANDLER_ARGS) +{ + struct sfxge_evq *evq = arg1; + struct sfxge_softc *sc = evq->sc; + unsigned int id = arg2; + + SFXGE_ADAPTER_LOCK(sc); + + sfxge_evq_stat_update(evq); + + SFXGE_ADAPTER_UNLOCK(sc); + + return (SYSCTL_OUT(req, &evq->stats[id], sizeof(evq->stats[id]))); +} + +static int +sfxge_evq_stat_init(struct sfxge_evq *evq) +{ + struct sfxge_softc *sc = evq->sc; + struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->dev); + char name[16]; + struct sysctl_oid *evq_stats_node; + unsigned int id; + + snprintf(name, sizeof(name), "%u", evq->index); + evq_stats_node = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(sc->evqs_stats_node), + OID_AUTO, name, CTLFLAG_RD, NULL, ""); + if (evq_stats_node == NULL) + return (ENOMEM); + + for (id = 0; id < EV_NQSTATS; id++) { + SYSCTL_ADD_PROC( + ctx, SYSCTL_CHILDREN(evq_stats_node), + OID_AUTO, efx_ev_qstat_name(sc->enp, id), + CTLTYPE_U64|CTLFLAG_RD, + evq, id, sfxge_evq_stat_handler, "Q", + ""); + } + + return (0); +} + +static void sfxge_ev_stat_update(struct sfxge_softc *sc) { struct sfxge_evq *evq; unsigned int index; clock_t now; + unsigned int id; SFXGE_ADAPTER_LOCK(sc); - if (__predict_false(sc->evq[0]->init_state != SFXGE_EVQ_STARTED)) - goto out; - now = ticks; if ((unsigned int)(now - sc->ev_stats_update_time) < (unsigned int)hz) goto out; sc->ev_stats_update_time = now; - /* Add event counts from each event queue in turn */ + memset(sc->ev_stats, 0, sizeof(sc->ev_stats)); + + /* Update and add event counts from each event queue in turn */ for (index = 0; index < sc->evq_count; index++) { evq = sc->evq[index]; - SFXGE_EVQ_LOCK(evq); - efx_ev_qstats_update(evq->common, sc->ev_stats); - SFXGE_EVQ_UNLOCK(evq); + sfxge_evq_stat_update(evq); + for (id = 0; id < EV_NQSTATS; id++) + sc->ev_stats[id] += evq->stats[id]; } out: SFXGE_ADAPTER_UNLOCK(sc); @@ -672,7 +737,7 @@ sfxge_ev_qstop(struct sfxge_softc *sc, unsigned int in #if EFSYS_OPT_QSTATS /* Add event counts before discarding the common evq state */ - efx_ev_qstats_update(evq->common, sc->ev_stats); + efx_ev_qstats_update(evq->common, evq->stats); #endif efx_ev_qdestroy(evq->common); @@ -873,7 +938,24 @@ sfxge_ev_qinit(struct sfxge_softc *sc, unsigned int in evq->init_state = SFXGE_EVQ_INITIALIZED; +#if EFSYS_OPT_QSTATS + rc = sfxge_evq_stat_init(evq); + if (rc != 0) + goto fail_evq_stat_init; +#endif + return (0); + +#if EFSYS_OPT_QSTATS +fail_evq_stat_init: + evq->init_state = SFXGE_EVQ_UNINITIALIZED; + SFXGE_EVQ_LOCK_DESTROY(evq); + sfxge_dma_free(esmp); + sc->evq[index] = NULL; + free(evq, M_SFXGE); + + return (rc); +#endif } void @@ -922,6 +1004,16 @@ sfxge_ev_init(struct sfxge_softc *sc) sc, 0, sfxge_int_mod_handler, "IU", "sfxge interrupt moderation (us)"); +#if EFSYS_OPT_QSTATS + sc->evqs_stats_node = SYSCTL_ADD_NODE( + device_get_sysctl_ctx(sc->dev), SYSCTL_CHILDREN(sc->stats_node), + OID_AUTO, "evq", CTLFLAG_RD, NULL, "Event queues stats"); + if (sc->evqs_stats_node == NULL) { + rc = ENOMEM; + goto fail_evqs_stats_node; + } +#endif + /* * Initialize the event queue(s) - one per interrupt. */ @@ -940,6 +1032,9 @@ fail: while (--index >= 0) sfxge_ev_qfini(sc, index); +#if EFSYS_OPT_QSTATS +fail_evqs_stats_node: +#endif sc->evq_count = 0; return (rc); } From owner-svn-src-head@freebsd.org Mon Dec 10 09:35:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14CF61317F7B; Mon, 10 Dec 2018 09:35:46 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id A006A6FC84; Mon, 10 Dec 2018 09:35:44 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id 579CD3D1EB8; Mon, 10 Dec 2018 20:35:40 +1100 (AEDT) Date: Mon, 10 Dec 2018 20:35:39 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Eugene Grosbein cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341768 - head/sbin/ping In-Reply-To: <201812092111.wB9LBFec011533@repo.freebsd.org> Message-ID: <20181210184329.A1122@besplex.bde.org> References: <201812092111.wB9LBFec011533@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.2 cv=FNpr/6gs c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=xAMMRBIkV0rQtsxeVqYA:9 a=CjuIK1q_8ugA:10 X-Rspamd-Queue-Id: A006A6FC84 X-Spamd-Result: default: False [-6.66 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:211.29.132.0/23]; MIME_GOOD(-0.10)[text/plain]; FREEMAIL_FROM(0.00)[optusnet.com.au]; DMARC_NA(0.00)[optusnet.com.au]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-3.39)[ip: (-9.37), ipnet: 211.28.0.0/14(-4.19), asn: 4804(-3.35), country: AU(-0.04)]; MX_GOOD(-0.01)[cached: extmail.optusnet.com.au]; NEURAL_HAM_SHORT(-0.96)[-0.958,0]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[optusnet.com.au]; ASN(0.00)[asn:4804, ipnet:211.28.0.0/14, country:AU]; RCVD_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_LOW(-0.10)[42.132.29.211.list.dnswl.org : 127.0.5.1] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:35:46 -0000 On Sun, 9 Dec 2018, Eugene Grosbein wrote: > Log: > ping(8): remove needless comparision with LONG_MAX > after unsigned long ultmp changed to long ltmp in r340245. > > MFC after: 1 week A range check is needed, and is now not even attempted for large positive values. The logic for the range check was broken in r340245. The LONG_MAX was a vestige of the correct logic. Several other vestiges remain. > Modified: head/sbin/ping/ping.c > ============================================================================== > --- head/sbin/ping/ping.c Sun Dec 9 19:14:21 2018 (r341767) > +++ head/sbin/ping/ping.c Sun Dec 9 21:11:15 2018 (r341768) > @@ -313,7 +313,7 @@ main(int argc, char *const *argv) > break; > case 'c': > ltmp = strtol(optarg, &ep, 0); > - if (*ep || ep == optarg || ltmp > LONG_MAX || ltmp <=0) > + if (*ep || ep == optarg || ltmp <=0) > errx(EX_USAGE, > "invalid count of packets to transmit: `%s'", > optarg); The bugs in r340245 visible in this patch are: - lost range checking for large positive values. Before r340245, this was done hackishly by using strtoul() so that the in-bound error value ULONG_MAX was out of bounds for the range check against LONG_MAX. This range check also checked for large values which don't overflow u_long. Changing to use strtol() broke this. LONG_MAX is in-band for strtol(), any check of it alone is buggy; the inherited check of it was nonsense. - style bug: nonsense use of a temporary variable. ultmp exists and has type u_long to hold the result of of strtoul(), mainly so that the results that don't need to be larger than LONG_MAX can be checked before clobbering them by assignment to a non-temporary variable of type long. Now going through ltmp makes no difference since ltmp's type is the same as the type of the final variable and there is no reason to preserve the current value of the final variable; clobbering has already occurred in strtol() (clamp overflowing values to LONG_MAX and set errno to ERANGE to indicate the error). - style bug: no space after '<=' The main bug near here before r340245 and visible in the patch for it and fixed in r340245 is: - the hackish range checking doesn't work for negative values unless they are large enough to cause overflow as u_longs. strtoul() converts -n by evaluating n as a u_long and negating the result. So small negative values were detected as errors after becoming > LONG_MAX, but values between about -(double)ULONG_MAX and LONG_MIN wee not detected as errors after becoming <= LONG_MAX. The main bugs not near here that are not similar and are not fixed in any version are: - in all of the "packet size too large" error messages the converted value is printed (in decimal) instead of the arg (quoted). Simpler messages like the one visible in the above patch just print the arg, and they even quote the arg consistently. The arg may have leading whitespace or signs, or a non-decimal base, and then printing its converted value in decimal obfuscates it. This is the main bug used to justify r340245. After not detecting some negative values, they were misprinted as large positive values (near ULONG_MAX). Related style/quality bugs: - the simpler error message mostly just say "invalid" without distinguishing between invalid formats and invalid due to overflow or invalid due to being negative or invalid due to failing another range check. Sometimes, often just due to implementation details of the range check, some range check failures cause a differently encrypted undocumented exit code (EX_NOPERM instead of EX_USAGE) and a different error message with more details. - the "invalid" messages give no hint of the the valid range together no hint of range errors in either the message or the exit code - the man page gives no hint of the valid range for most or all numeric args, even for the "packet size too large" case where the error messages give the top end of the range (this is a fairly arbitrary limit for non-root only; most other cases have a less arbitrary limit of LONG_MAX or INT_MAX). - the special error handling for "packet size too large" is too fussy unless most error handling is done almost perfectly. The error handling is messy enough without it. The important thing about this case is that it is special for non-root, but neither the message nor the man page mentions special cases for non-root. The man page doesn't even mention valid ranges for this. Only the exit code distinguishes this case. Perfect error handling would first distingish sub-cases of EINVAL errors (signs and purer gargage), ERANGE errors, and other range check errors with more resricted ranges for non-root. Then print specific messages including specific ranges for range check errors and something about privilege for restricted cases. This would be too fussy. Unrelated style/quality bugs: - the man page also doesn't mention the better-known restriction of ping -f to root - many of these restrictions to root are bogus. E.g., for ping -f and ping -i, unprivileged users can spam the network much faster than with these options, by using plain ping in a shell loop, unless the fork() or exec() rate is severely restricted, but that would break normal use. These 2 restrictions worked better in 1980 when shell loops and fork() and exec() might have taken longer for each iteration than the ping latency of a slow network. - to fix this security hole, ping could wait for 10 msec before doing anything (in the non-root case) - ping -f doesn't actually flood. It is limited to 100 pps unless the ping is echoed faster than that. 100 pps might have been a lot in 1980. If clock interrupt latency is 10 msec or lower, then ping -f has the 100 pps limit for root too. Plain ping in a shell loop can go much faster than 100 pps, except possibly in 1980 (the case where the shell loop might not be faster enough is with a fairly low ping latency of 100 usec or smaller. That is about as long as old versions of FreeBSD take to fork()+exec() /bin/cat on 1 4GHz CPU, but current versions are several times slower). - the granularity for the wait in ping -i is undocumented (the man page says "fractional"). The code attempts to implement only milliseconds resolution but gets the kernel timeout granularity. Root can use an interval of 0. The ultmp method was the result of wollman rewriting much worse arg parsing that used atoi(). Bruce From owner-svn-src-head@freebsd.org Mon Dec 10 09:35:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8C4A31317F84; Mon, 10 Dec 2018 09:35:47 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 339446FCD0; Mon, 10 Dec 2018 09:35:47 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 150EF1E266; Mon, 10 Dec 2018 09:35:46 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBA9ZjvK002398; Mon, 10 Dec 2018 09:35:45 GMT (envelope-from arybchik@FreeBSD.org) Received: (from arybchik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA9Zjhf002396; Mon, 10 Dec 2018 09:35:45 GMT (envelope-from arybchik@FreeBSD.org) Message-Id: <201812100935.wBA9Zjhf002396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arybchik set sender to arybchik@FreeBSD.org using -f From: Andrew Rybchenko Date: Mon, 10 Dec 2018 09:35:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341783 - head/sys/dev/sfxge/common X-SVN-Group: head X-SVN-Commit-Author: arybchik X-SVN-Commit-Paths: head/sys/dev/sfxge/common X-SVN-Commit-Revision: 341783 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 339446FCD0 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.991,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:35:47 -0000 Author: arybchik Date: Mon Dec 10 09:35:45 2018 New Revision: 341783 URL: https://svnweb.freebsd.org/changeset/base/341783 Log: sfxge(4): report support for Tx checksum op descriptors FreeBSD driver needs a patch to provide a means for packets which do not need checksum offload but have flow ID set to avoid hitting only the first Tx queue (which has been used for packets not needing checksum offload). This should be possible on Huntington, Medford or Medford2 chips since these support toggling checksum offload on any given queue dynamically by means of pushing option descriptors. The patch for FreeBSD driver will then need a means to figure out whether the feature can be used, and testing adapter family might not be a good solution. This patch adds a feature bit specifically to indicate support for checksum option descriptors. The new feature bits may have more users in future, apart from the mentioned FreeBSD patch. Submitted by: Ivan Malov Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18388 Modified: head/sys/dev/sfxge/common/efx.h head/sys/dev/sfxge/common/efx_nic.c Modified: head/sys/dev/sfxge/common/efx.h ============================================================================== --- head/sys/dev/sfxge/common/efx.h Mon Dec 10 09:35:33 2018 (r341782) +++ head/sys/dev/sfxge/common/efx.h Mon Dec 10 09:35:45 2018 (r341783) @@ -1261,6 +1261,7 @@ efx_bist_stop( #define EFX_FEATURE_FW_ASSISTED_TSO 0x00001000 #define EFX_FEATURE_FW_ASSISTED_TSO_V2 0x00002000 #define EFX_FEATURE_PACKED_STREAM 0x00004000 +#define EFX_FEATURE_TXQ_CKSUM_OP_DESC 0x00008000 typedef enum efx_tunnel_protocol_e { EFX_TUNNEL_PROTOCOL_NONE = 0, Modified: head/sys/dev/sfxge/common/efx_nic.c ============================================================================== --- head/sys/dev/sfxge/common/efx_nic.c Mon Dec 10 09:35:33 2018 (r341782) +++ head/sys/dev/sfxge/common/efx_nic.c Mon Dec 10 09:35:45 2018 (r341783) @@ -257,7 +257,8 @@ efx_nic_create( EFX_FEATURE_PIO_BUFFERS | EFX_FEATURE_FW_ASSISTED_TSO | EFX_FEATURE_FW_ASSISTED_TSO_V2 | - EFX_FEATURE_PACKED_STREAM; + EFX_FEATURE_PACKED_STREAM | + EFX_FEATURE_TXQ_CKSUM_OP_DESC; break; #endif /* EFSYS_OPT_HUNTINGTON */ @@ -277,7 +278,8 @@ efx_nic_create( EFX_FEATURE_MCDI_DMA | EFX_FEATURE_PIO_BUFFERS | EFX_FEATURE_FW_ASSISTED_TSO_V2 | - EFX_FEATURE_PACKED_STREAM; + EFX_FEATURE_PACKED_STREAM | + EFX_FEATURE_TXQ_CKSUM_OP_DESC; break; #endif /* EFSYS_OPT_MEDFORD */ @@ -293,7 +295,8 @@ efx_nic_create( EFX_FEATURE_MCDI_DMA | EFX_FEATURE_PIO_BUFFERS | EFX_FEATURE_FW_ASSISTED_TSO_V2 | - EFX_FEATURE_PACKED_STREAM; + EFX_FEATURE_PACKED_STREAM | + EFX_FEATURE_TXQ_CKSUM_OP_DESC; break; #endif /* EFSYS_OPT_MEDFORD2 */ From owner-svn-src-head@freebsd.org Mon Dec 10 09:35:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B1DF21317FD7; Mon, 10 Dec 2018 09:35:57 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 568086FDB5; Mon, 10 Dec 2018 09:35:57 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A6C5B1E267; Mon, 10 Dec 2018 09:35:54 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBA9ZsdN002466; Mon, 10 Dec 2018 09:35:54 GMT (envelope-from arybchik@FreeBSD.org) Received: (from arybchik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA9Zr63002463; Mon, 10 Dec 2018 09:35:53 GMT (envelope-from arybchik@FreeBSD.org) Message-Id: <201812100935.wBA9Zr63002463@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arybchik set sender to arybchik@FreeBSD.org using -f From: Andrew Rybchenko Date: Mon, 10 Dec 2018 09:35:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341784 - head/sys/dev/sfxge X-SVN-Group: head X-SVN-Commit-Author: arybchik X-SVN-Commit-Paths: head/sys/dev/sfxge X-SVN-Commit-Revision: 341784 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 568086FDB5 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.991,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:35:57 -0000 Author: arybchik Date: Mon Dec 10 09:35:53 2018 New Revision: 341784 URL: https://svnweb.freebsd.org/changeset/base/341784 Log: sfxge(4): prepare the number of Tx queues on event queue 0 to become variable The number of Tx queues on event queue 0 can depend on the NIC family type, and this property will be leveraged by future patches. This patch prepares the code for this change. Submitted by: Ivan Malov Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18389 Modified: head/sys/dev/sfxge/sfxge.c head/sys/dev/sfxge/sfxge_ev.c head/sys/dev/sfxge/sfxge_tx.c head/sys/dev/sfxge/sfxge_tx.h Modified: head/sys/dev/sfxge/sfxge.c ============================================================================== --- head/sys/dev/sfxge/sfxge.c Mon Dec 10 09:35:45 2018 (r341783) +++ head/sys/dev/sfxge/sfxge.c Mon Dec 10 09:35:53 2018 (r341784) @@ -151,8 +151,8 @@ sfxge_estimate_rsrc_limits(struct sfxge_softc *sc) limits.edl_min_evq_count = 1; limits.edl_max_evq_count = evq_max; - limits.edl_min_txq_count = SFXGE_TXQ_NTYPES; - limits.edl_max_txq_count = evq_max + SFXGE_TXQ_NTYPES - 1; + limits.edl_min_txq_count = SFXGE_EVQ0_N_TXQ(sc); + limits.edl_max_txq_count = evq_max + SFXGE_EVQ0_N_TXQ(sc) - 1; limits.edl_min_rxq_count = 1; limits.edl_max_rxq_count = evq_max; @@ -168,12 +168,12 @@ sfxge_estimate_rsrc_limits(struct sfxge_softc *sc) return (rc); } - KASSERT(txq_allocated >= SFXGE_TXQ_NTYPES, - ("txq_allocated < SFXGE_TXQ_NTYPES")); + KASSERT(txq_allocated >= SFXGE_EVQ0_N_TXQ(sc), + ("txq_allocated < %u", SFXGE_EVQ0_N_TXQ(sc))); sc->evq_max = MIN(evq_allocated, evq_max); sc->evq_max = MIN(rxq_allocated, sc->evq_max); - sc->evq_max = MIN(txq_allocated - (SFXGE_TXQ_NTYPES - 1), + sc->evq_max = MIN(txq_allocated - (SFXGE_EVQ0_N_TXQ(sc) - 1), sc->evq_max); KASSERT(sc->evq_max <= evq_max, @@ -205,7 +205,7 @@ sfxge_set_drv_limits(struct sfxge_softc *sc) limits.edl_min_evq_count = limits.edl_max_evq_count = sc->intr.n_alloc; limits.edl_min_txq_count = limits.edl_max_txq_count = - sc->intr.n_alloc + SFXGE_TXQ_NTYPES - 1; + sc->intr.n_alloc + SFXGE_EVQ0_N_TXQ(sc) - 1; limits.edl_min_rxq_count = limits.edl_max_rxq_count = sc->intr.n_alloc; Modified: head/sys/dev/sfxge/sfxge_ev.c ============================================================================== --- head/sys/dev/sfxge/sfxge_ev.c Mon Dec 10 09:35:45 2018 (r341783) +++ head/sys/dev/sfxge/sfxge_ev.c Mon Dec 10 09:35:53 2018 (r341784) @@ -269,9 +269,10 @@ sfxge_get_txq_by_label(struct sfxge_evq *evq, enum sfx { unsigned int index; - KASSERT((evq->index == 0 && label < SFXGE_TXQ_NTYPES) || + KASSERT((evq->index == 0 && label < SFXGE_EVQ0_N_TXQ(evq->sc)) || (label == SFXGE_TXQ_IP_TCP_UDP_CKSUM), ("unexpected txq label")); - index = (evq->index == 0) ? label : (evq->index - 1 + SFXGE_TXQ_NTYPES); + index = (evq->index == 0) ? + label : (evq->index - 1 + SFXGE_EVQ0_N_TXQ(evq->sc)); return (evq->sc->txq[index]); } Modified: head/sys/dev/sfxge/sfxge_tx.c ============================================================================== --- head/sys/dev/sfxge/sfxge_tx.c Mon Dec 10 09:35:45 2018 (r341783) +++ head/sys/dev/sfxge/sfxge_tx.c Mon Dec 10 09:35:53 2018 (r341784) @@ -1973,7 +1973,7 @@ sfxge_tx_init(struct sfxge_softc *sc) goto fail_tx_dpl_put_max; } - sc->txq_count = SFXGE_TXQ_NTYPES - 1 + sc->intr.n_alloc; + sc->txq_count = SFXGE_EVQ0_N_TXQ(sc) - 1 + sc->intr.n_alloc; sc->tso_fw_assisted = sfxge_tso_fw_assisted; if ((~encp->enc_features & EFX_FEATURE_FW_ASSISTED_TSO) || @@ -2002,9 +2002,9 @@ sfxge_tx_init(struct sfxge_softc *sc) goto fail2; for (index = 0; - index < sc->txq_count - SFXGE_TXQ_NTYPES + 1; + index < sc->txq_count - SFXGE_EVQ0_N_TXQ(sc) + 1; index++) { - if ((rc = sfxge_tx_qinit(sc, SFXGE_TXQ_NTYPES - 1 + index, + if ((rc = sfxge_tx_qinit(sc, SFXGE_EVQ0_N_TXQ(sc) - 1 + index, SFXGE_TXQ_IP_TCP_UDP_CKSUM, index)) != 0) goto fail3; } Modified: head/sys/dev/sfxge/sfxge_tx.h ============================================================================== --- head/sys/dev/sfxge/sfxge_tx.h Mon Dec 10 09:35:45 2018 (r341783) +++ head/sys/dev/sfxge/sfxge_tx.h Mon Dec 10 09:35:53 2018 (r341784) @@ -139,6 +139,8 @@ enum sfxge_txq_type { SFXGE_TXQ_NTYPES }; +#define SFXGE_EVQ0_N_TXQ(_sc) SFXGE_TXQ_NTYPES + #define SFXGE_TXQ_UNBLOCK_LEVEL(_entries) (EFX_TXQ_LIMIT(_entries) / 4) #define SFXGE_TX_BATCH 64 From owner-svn-src-head@freebsd.org Mon Dec 10 09:36:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 85F881318023; Mon, 10 Dec 2018 09:36:10 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 291CE6FF0E; Mon, 10 Dec 2018 09:36:10 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8D9A81E26D; Mon, 10 Dec 2018 09:36:06 +0000 (UTC) (envelope-from arybchik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBA9a6lH002531; Mon, 10 Dec 2018 09:36:06 GMT (envelope-from arybchik@FreeBSD.org) Received: (from arybchik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA9a59D002523; Mon, 10 Dec 2018 09:36:05 GMT (envelope-from arybchik@FreeBSD.org) Message-Id: <201812100936.wBA9a59D002523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arybchik set sender to arybchik@FreeBSD.org using -f From: Andrew Rybchenko Date: Mon, 10 Dec 2018 09:36:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341785 - head/sys/dev/sfxge X-SVN-Group: head X-SVN-Commit-Author: arybchik X-SVN-Commit-Paths: head/sys/dev/sfxge X-SVN-Commit-Revision: 341785 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 291CE6FF0E X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.969,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.992,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:36:10 -0000 Author: arybchik Date: Mon Dec 10 09:36:05 2018 New Revision: 341785 URL: https://svnweb.freebsd.org/changeset/base/341785 Log: sfxge(4): use n Tx queues instead of n + 2 on EF10 HW On EF10 HW we can avoid sending packets without checksum offload or with IP-only checksum offload to dedicated queues. Instead, we can use option descriptors to change offload policy on any queue during runtime. Thus, we don't need to create two dedicated queues. Submitted by: Ivan Malov Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18390 Modified: head/sys/dev/sfxge/sfxge.c head/sys/dev/sfxge/sfxge.h head/sys/dev/sfxge/sfxge_ev.c head/sys/dev/sfxge/sfxge_tx.c head/sys/dev/sfxge/sfxge_tx.h Modified: head/sys/dev/sfxge/sfxge.c ============================================================================== --- head/sys/dev/sfxge/sfxge.c Mon Dec 10 09:35:53 2018 (r341784) +++ head/sys/dev/sfxge/sfxge.c Mon Dec 10 09:36:05 2018 (r341785) @@ -762,6 +762,11 @@ sfxge_create(struct sfxge_softc *sc) } sc->rxq_entries = sfxge_rx_ring_entries; + if (efx_nic_cfg_get(enp)->enc_features & EFX_FEATURE_TXQ_CKSUM_OP_DESC) + sc->txq_dynamic_cksum_toggle_supported = B_TRUE; + else + sc->txq_dynamic_cksum_toggle_supported = B_FALSE; + if (!ISP2(sfxge_tx_ring_entries) || (sfxge_tx_ring_entries < EFX_TXQ_MINNDESCS) || (sfxge_tx_ring_entries > efx_nic_cfg_get(enp)->enc_txq_max_ndescs)) { Modified: head/sys/dev/sfxge/sfxge.h ============================================================================== --- head/sys/dev/sfxge/sfxge.h Mon Dec 10 09:35:53 2018 (r341784) +++ head/sys/dev/sfxge/sfxge.h Mon Dec 10 09:36:05 2018 (r341785) @@ -294,6 +294,8 @@ struct sfxge_softc { efx_nic_t *enp; efsys_lock_t enp_lock; + boolean_t txq_dynamic_cksum_toggle_supported; + unsigned int rxq_entries; unsigned int txq_entries; Modified: head/sys/dev/sfxge/sfxge_ev.c ============================================================================== --- head/sys/dev/sfxge/sfxge_ev.c Mon Dec 10 09:35:53 2018 (r341784) +++ head/sys/dev/sfxge/sfxge_ev.c Mon Dec 10 09:36:05 2018 (r341785) @@ -269,8 +269,11 @@ sfxge_get_txq_by_label(struct sfxge_evq *evq, enum sfx { unsigned int index; - KASSERT((evq->index == 0 && label < SFXGE_EVQ0_N_TXQ(evq->sc)) || - (label == SFXGE_TXQ_IP_TCP_UDP_CKSUM), ("unexpected txq label")); + KASSERT((evq->sc->txq_dynamic_cksum_toggle_supported) ? (label == 0) : + ((evq->index == 0 && label < SFXGE_TXQ_NTYPES) || + (label == SFXGE_TXQ_IP_TCP_UDP_CKSUM)), + ("unexpected txq label")); + index = (evq->index == 0) ? label : (evq->index - 1 + SFXGE_EVQ0_N_TXQ(evq->sc)); return (evq->sc->txq[index]); Modified: head/sys/dev/sfxge/sfxge_tx.c ============================================================================== --- head/sys/dev/sfxge/sfxge_tx.c Mon Dec 10 09:35:53 2018 (r341784) +++ head/sys/dev/sfxge/sfxge_tx.c Mon Dec 10 09:36:05 2018 (r341785) @@ -35,7 +35,7 @@ /* Theory of operation: * - * Tx queues allocation and mapping + * Tx queues allocation and mapping on Siena * * One Tx queue with enabled checksum offload is allocated per Rx channel * (event queue). Also 2 Tx queues (one without checksum offload and one @@ -46,6 +46,17 @@ * if event queue index is 0, TxQ-index = TxQ-label * [0..SFXGE_TXQ_NTYPES) * else TxQ-index = SFXGE_TXQ_NTYPES + EvQ-index - 1 * See sfxge_get_txq_by_label() sfxge_ev.c + * + * Tx queue allocation and mapping on EF10 + * + * One Tx queue with enabled checksum offload is allocated per Rx + * channel (event queue). Checksum offload on all Tx queues is enabled or + * disabled dynamically by inserting option descriptors, so the additional + * queues used on Siena are not required. + * + * TxQ label is always set to zero on EF10 hardware. + * So, event queue to Tx queue mapping is simple: + * TxQ-index = EvQ-index */ #include @@ -139,38 +150,75 @@ static void sfxge_tx_qlist_post(struct sfxge_txq *txq) static void sfxge_tx_qunblock(struct sfxge_txq *txq); static int sfxge_tx_queue_tso(struct sfxge_txq *txq, struct mbuf *mbuf, const bus_dma_segment_t *dma_seg, int n_dma_seg, - int vlan_tagged); + int n_extra_descs); +static inline void +sfxge_next_stmp(struct sfxge_txq *txq, struct sfxge_tx_mapping **pstmp) +{ + KASSERT((*pstmp)->flags == 0, ("stmp flags are not 0")); + if (__predict_false(*pstmp == + &txq->stmp[txq->ptr_mask])) + *pstmp = &txq->stmp[0]; + else + (*pstmp)++; +} + static int -sfxge_tx_maybe_insert_tag(struct sfxge_txq *txq, struct mbuf *mbuf) +sfxge_tx_maybe_toggle_cksum_offload(struct sfxge_txq *txq, struct mbuf *mbuf, + struct sfxge_tx_mapping **pstmp) { + uint16_t new_hw_cksum_flags; + efx_desc_t *desc; + + if (mbuf->m_pkthdr.csum_flags & + (CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6 | CSUM_TSO)) { + /* + * We always set EFX_TXQ_CKSUM_IPV4 here because this + * configuration is the most useful, and this won't + * cause any trouble in case of IPv6 traffic anyway. + */ + new_hw_cksum_flags = EFX_TXQ_CKSUM_IPV4 | EFX_TXQ_CKSUM_TCPUDP; + } else if (mbuf->m_pkthdr.csum_flags & CSUM_DELAY_IP) { + new_hw_cksum_flags = EFX_TXQ_CKSUM_IPV4; + } else { + new_hw_cksum_flags = 0; + } + + if (new_hw_cksum_flags == txq->hw_cksum_flags) + return (0); + + desc = &txq->pend_desc[txq->n_pend_desc]; + efx_tx_qdesc_checksum_create(txq->common, new_hw_cksum_flags, desc); + txq->hw_cksum_flags = new_hw_cksum_flags; + txq->n_pend_desc++; + + sfxge_next_stmp(txq, pstmp); + + return (1); +} + +static int +sfxge_tx_maybe_insert_tag(struct sfxge_txq *txq, struct mbuf *mbuf, + struct sfxge_tx_mapping **pstmp) +{ uint16_t this_tag = ((mbuf->m_flags & M_VLANTAG) ? mbuf->m_pkthdr.ether_vtag : 0); + efx_desc_t *desc; if (this_tag == txq->hw_vlan_tci) return (0); - efx_tx_qdesc_vlantci_create(txq->common, - bswap16(this_tag), - &txq->pend_desc[0]); - txq->n_pend_desc = 1; + desc = &txq->pend_desc[txq->n_pend_desc]; + efx_tx_qdesc_vlantci_create(txq->common, bswap16(this_tag), desc); txq->hw_vlan_tci = this_tag; + txq->n_pend_desc++; + + sfxge_next_stmp(txq, pstmp); + return (1); } -static inline void -sfxge_next_stmp(struct sfxge_txq *txq, struct sfxge_tx_mapping **pstmp) -{ - KASSERT((*pstmp)->flags == 0, ("stmp flags are not 0")); - if (__predict_false(*pstmp == - &txq->stmp[txq->ptr_mask])) - *pstmp = &txq->stmp[0]; - else - (*pstmp)++; -} - - void sfxge_tx_qcomplete(struct sfxge_txq *txq, struct sfxge_evq *evq) { @@ -361,8 +409,9 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, int rc; int i; int eop; + uint16_t hw_cksum_flags_prev; uint16_t hw_vlan_tci_prev; - int vlan_tagged; + int n_extra_descs; KASSERT(!txq->blocked, ("txq->blocked")); @@ -413,14 +462,20 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, used_map = &stmp->map; + hw_cksum_flags_prev = txq->hw_cksum_flags; hw_vlan_tci_prev = txq->hw_vlan_tci; - vlan_tagged = sfxge_tx_maybe_insert_tag(txq, mbuf); - if (vlan_tagged) { - sfxge_next_stmp(txq, &stmp); - } + /* + * The order of option descriptors, which are used to leverage VLAN tag + * and checksum offloads, might be important. Changing checksum offload + * between VLAN option and packet descriptors probably does not work. + */ + n_extra_descs = sfxge_tx_maybe_toggle_cksum_offload(txq, mbuf, &stmp); + n_extra_descs += sfxge_tx_maybe_insert_tag(txq, mbuf, &stmp); + if (mbuf->m_pkthdr.csum_flags & CSUM_TSO) { - rc = sfxge_tx_queue_tso(txq, mbuf, dma_seg, n_dma_seg, vlan_tagged); + rc = sfxge_tx_queue_tso(txq, mbuf, dma_seg, n_dma_seg, + n_extra_descs); if (rc < 0) goto reject_mapped; stmp = &txq->stmp[(rc - 1) & txq->ptr_mask]; @@ -431,7 +486,7 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, i = 0; for (;;) { - desc = &txq->pend_desc[i + vlan_tagged]; + desc = &txq->pend_desc[i + n_extra_descs]; eop = (i == n_dma_seg - 1); efx_tx_qdesc_dma_create(txq->common, dma_seg[i].ds_addr, @@ -443,7 +498,7 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, i++; sfxge_next_stmp(txq, &stmp); } - txq->n_pend_desc = n_dma_seg + vlan_tagged; + txq->n_pend_desc = n_dma_seg + n_extra_descs; } /* @@ -467,6 +522,7 @@ static int sfxge_tx_queue_mbuf(struct sfxge_txq *txq, reject_mapped: txq->hw_vlan_tci = hw_vlan_tci_prev; + txq->hw_cksum_flags = hw_cksum_flags_prev; bus_dmamap_unload(txq->packet_dma_tag, *used_map); reject: /* Drop the packet on the floor. */ @@ -840,8 +896,9 @@ sfxge_if_transmit(struct ifnet *ifp, struct mbuf *m) ("interface not up")); /* Pick the desired transmit queue. */ - if (m->m_pkthdr.csum_flags & - (CSUM_DELAY_DATA | CSUM_TCP_IPV6 | CSUM_UDP_IPV6 | CSUM_TSO)) { + if (sc->txq_dynamic_cksum_toggle_supported | + (m->m_pkthdr.csum_flags & + (CSUM_DELAY_DATA | CSUM_TCP_IPV6 | CSUM_UDP_IPV6 | CSUM_TSO))) { int index = 0; #ifdef RSS @@ -867,7 +924,9 @@ sfxge_if_transmit(struct ifnet *ifp, struct mbuf *m) if (m->m_pkthdr.csum_flags & CSUM_TSO) sfxge_parse_tx_packet(m); #endif - txq = sc->txq[SFXGE_TXQ_IP_TCP_UDP_CKSUM + index]; + index += (sc->txq_dynamic_cksum_toggle_supported == B_FALSE) ? + SFXGE_TXQ_IP_TCP_UDP_CKSUM : 0; + txq = sc->txq[index]; } else if (m->m_pkthdr.csum_flags & CSUM_DELAY_IP) { txq = sc->txq[SFXGE_TXQ_IP_CKSUM]; } else { @@ -1311,7 +1370,7 @@ static int tso_start_new_packet(struct sfxge_txq *txq, static int sfxge_tx_queue_tso(struct sfxge_txq *txq, struct mbuf *mbuf, const bus_dma_segment_t *dma_seg, int n_dma_seg, - int vlan_tagged) + int n_extra_descs) { struct sfxge_tso_state tso; unsigned int id; @@ -1328,7 +1387,7 @@ sfxge_tx_queue_tso(struct sfxge_txq *txq, struct mbuf tso.in_len = dma_seg->ds_len - (tso.header_len - skipped); tso.dma_addr = dma_seg->ds_addr + (tso.header_len - skipped); - id = (txq->added + vlan_tagged) & txq->ptr_mask; + id = (txq->added + n_extra_descs) & txq->ptr_mask; if (__predict_false(tso_start_new_packet(txq, &tso, &id))) return (-1); @@ -1492,6 +1551,8 @@ sfxge_tx_qstop(struct sfxge_softc *sc, unsigned int in efx_sram_buf_tbl_clear(sc->enp, txq->buf_base_id, EFX_TXQ_NBUFS(sc->txq_entries)); + txq->hw_cksum_flags = 0; + SFXGE_EVQ_UNLOCK(evq); SFXGE_TXQ_UNLOCK(txq); } @@ -1513,6 +1574,10 @@ sfxge_tx_max_pkt_desc(const struct sfxge_softc *sc, en unsigned int fa_tso_v1_max_descs = 0; unsigned int fa_tso_v2_max_descs = 0; + /* Checksum offload Tx option descriptor may be required */ + if (sc->txq_dynamic_cksum_toggle_supported) + max_descs++; + /* VLAN tagging Tx option descriptor may be required */ if (efx_nic_cfg_get(sc->enp)->enc_hw_tx_insert_vlan_enabled) max_descs++; @@ -1557,6 +1622,7 @@ sfxge_tx_qstart(struct sfxge_softc *sc, unsigned int i efsys_mem_t *esmp; uint16_t flags; unsigned int tso_fw_assisted; + unsigned int label; struct sfxge_evq *evq; unsigned int desc_index; int rc; @@ -1598,8 +1664,10 @@ sfxge_tx_qstart(struct sfxge_softc *sc, unsigned int i break; } + label = (sc->txq_dynamic_cksum_toggle_supported) ? 0 : txq->type; + /* Create the common code transmit queue. */ - if ((rc = efx_tx_qcreate(sc->enp, index, txq->type, esmp, + if ((rc = efx_tx_qcreate(sc->enp, index, label, esmp, sc->txq_entries, txq->buf_base_id, flags, evq->common, &txq->common, &desc_index)) != 0) { /* Retry if no FATSOv2 resources, otherwise fail */ @@ -1609,7 +1677,7 @@ sfxge_tx_qstart(struct sfxge_softc *sc, unsigned int i /* Looks like all FATSOv2 contexts are used */ flags &= ~EFX_TXQ_FATSOV2; tso_fw_assisted &= ~SFXGE_FATSOV2; - if ((rc = efx_tx_qcreate(sc->enp, index, txq->type, esmp, + if ((rc = efx_tx_qcreate(sc->enp, index, label, esmp, sc->txq_entries, txq->buf_base_id, flags, evq->common, &txq->common, &desc_index)) != 0) goto fail; @@ -1632,6 +1700,9 @@ sfxge_tx_qstart(struct sfxge_softc *sc, unsigned int i txq->hw_vlan_tci = 0; + txq->hw_cksum_flags = flags & + (EFX_TXQ_CKSUM_IPV4 | EFX_TXQ_CKSUM_TCPUDP); + SFXGE_TXQ_UNLOCK(txq); return (0); @@ -1993,13 +2064,15 @@ sfxge_tx_init(struct sfxge_softc *sc) } /* Initialize the transmit queues */ - if ((rc = sfxge_tx_qinit(sc, SFXGE_TXQ_NON_CKSUM, - SFXGE_TXQ_NON_CKSUM, 0)) != 0) - goto fail; + if (sc->txq_dynamic_cksum_toggle_supported == B_FALSE) { + if ((rc = sfxge_tx_qinit(sc, SFXGE_TXQ_NON_CKSUM, + SFXGE_TXQ_NON_CKSUM, 0)) != 0) + goto fail; - if ((rc = sfxge_tx_qinit(sc, SFXGE_TXQ_IP_CKSUM, - SFXGE_TXQ_IP_CKSUM, 0)) != 0) - goto fail2; + if ((rc = sfxge_tx_qinit(sc, SFXGE_TXQ_IP_CKSUM, + SFXGE_TXQ_IP_CKSUM, 0)) != 0) + goto fail2; + } for (index = 0; index < sc->txq_count - SFXGE_EVQ0_N_TXQ(sc) + 1; Modified: head/sys/dev/sfxge/sfxge_tx.h ============================================================================== --- head/sys/dev/sfxge/sfxge_tx.h Mon Dec 10 09:35:53 2018 (r341784) +++ head/sys/dev/sfxge/sfxge_tx.h Mon Dec 10 09:36:05 2018 (r341785) @@ -139,7 +139,9 @@ enum sfxge_txq_type { SFXGE_TXQ_NTYPES }; -#define SFXGE_EVQ0_N_TXQ(_sc) SFXGE_TXQ_NTYPES +#define SFXGE_EVQ0_N_TXQ(_sc) \ + ((_sc)->txq_dynamic_cksum_toggle_supported ? \ + 1 : SFXGE_TXQ_NTYPES) #define SFXGE_TXQ_UNBLOCK_LEVEL(_entries) (EFX_TXQ_LIMIT(_entries) / 4) @@ -205,6 +207,9 @@ struct sfxge_txq { unsigned int n_pend_desc; unsigned int added; unsigned int reaped; + + /* The last (or constant) set of HW offloads requested on the queue */ + uint16_t hw_cksum_flags; /* The last VLAN TCI seen on the queue if FW-assisted tagging is used */ From owner-svn-src-head@freebsd.org Mon Dec 10 09:45:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C63713184BD; Mon, 10 Dec 2018 09:45:59 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 02203707B4; Mon, 10 Dec 2018 09:45:59 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D235A1E40E; Mon, 10 Dec 2018 09:45:58 +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 wBA9jwhU007409; Mon, 10 Dec 2018 09:45:58 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBA9jwO5007406; Mon, 10 Dec 2018 09:45:58 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201812100945.wBA9jwO5007406@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Mon, 10 Dec 2018 09:45:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341786 - in head/sys/dev: rtwn/usb usb usb/wlan X-SVN-Group: head X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in head/sys/dev: rtwn/usb usb usb/wlan X-SVN-Commit-Revision: 341786 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 02203707B4 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 09:45:59 -0000 Author: avos Date: Mon Dec 10 09:45:57 2018 New Revision: 341786 URL: https://svnweb.freebsd.org/changeset/base/341786 Log: rtwn, rsu: add more USB ids. PR: 233638 Submitted by: cezary.sliwa@gmail.com MFC after: 3 days Modified: head/sys/dev/rtwn/usb/rtwn_usb_attach.h head/sys/dev/usb/usbdevs head/sys/dev/usb/wlan/if_rsu.c Modified: head/sys/dev/rtwn/usb/rtwn_usb_attach.h ============================================================================== --- head/sys/dev/rtwn/usb/rtwn_usb_attach.h Mon Dec 10 09:36:05 2018 (r341785) +++ head/sys/dev/rtwn/usb/rtwn_usb_attach.h Mon Dec 10 09:45:57 2018 (r341786) @@ -118,6 +118,7 @@ static const STRUCT_USB_HOST_ID rtwn_devs[] = { RTWN_RTL8188EU_DEV(DLINK, DWA123D1), RTWN_RTL8188EU_DEV(DLINK, DWA125D1), RTWN_RTL8188EU_DEV(ELECOM, WDC150SU2M), + RTWN_RTL8188EU_DEV(TPLINK, WN722N), RTWN_RTL8188EU_DEV(REALTEK, RTL8188ETV), RTWN_RTL8188EU_DEV(REALTEK, RTL8188EU), #undef RTWN_RTL8188EU_DEV Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Mon Dec 10 09:36:05 2018 (r341785) +++ head/sys/dev/usb/usbdevs Mon Dec 10 09:45:57 2018 (r341786) @@ -4346,6 +4346,7 @@ product SITECOMEU RT3072_4 0x0048 RT3072 product SITECOMEU RT3072_5 0x004a RT3072 product SITECOMEU WL349V1 0x004b WL-349 v1 product SITECOMEU RT3072_6 0x004d RT3072 +product SITECOMEU WLA1000 0x005b WLA-1000 product SITECOMEU RTL8188CU_1 0x0052 RTL8188CU product SITECOMEU RTL8188CU_2 0x005c RTL8188CU product SITECOMEU RTL8192CU 0x0061 RTL8192CU @@ -4611,6 +4612,7 @@ product TOSHIBA TRANSMEMORY 0x6545 USB ThumbDrive product TPLINK T4U 0x0101 Archer T4U product TPLINK WN822NV4 0x0108 TL-WN822N v4 product TPLINK WN823NV2 0x0109 TL-WN823N v2 +product TPLINK WN722N 0x010c TL-WN722N product TPLINK T4UV2 0x010d Archer T4U ver 2 product TPLINK T4UHV2 0x010e Archer T4UH ver 2 product TPLINK RTL8153 0x0601 RTL8153 USB 10/100/1000 LAN Modified: head/sys/dev/usb/wlan/if_rsu.c ============================================================================== --- head/sys/dev/usb/wlan/if_rsu.c Mon Dec 10 09:36:05 2018 (r341785) +++ head/sys/dev/usb/wlan/if_rsu.c Mon Dec 10 09:45:57 2018 (r341786) @@ -114,6 +114,7 @@ static const STRUCT_USB_HOST_ID rsu_devs[] = { RSU_HT_NOT_SUPPORTED) } RSU_DEV(ASUS, RTL8192SU), RSU_DEV(AZUREWAVE, RTL8192SU_4), + RSU_DEV(SITECOMEU, WLA1000), RSU_DEV_HT(ACCTON, RTL8192SU), RSU_DEV_HT(ASUS, USBN10), RSU_DEV_HT(AZUREWAVE, RTL8192SU_1), From owner-svn-src-head@freebsd.org Mon Dec 10 13:38:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 864F113263F7; Mon, 10 Dec 2018 13:38:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2753C78608; Mon, 10 Dec 2018 13:38:15 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D3E53208E1; Mon, 10 Dec 2018 13:38:14 +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 wBADcEhi026486; Mon, 10 Dec 2018 13:38:14 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBADcE5A026483; Mon, 10 Dec 2018 13:38:14 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201812101338.wBADcE5A026483@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 10 Dec 2018 13:38:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341787 - in head/sys: arm/include mips/include powerpc/include X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in head/sys: arm/include mips/include powerpc/include X-SVN-Commit-Revision: 341787 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2753C78608 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 13:38:15 -0000 Author: hselasky Date: Mon Dec 10 13:38:13 2018 New Revision: 341787 URL: https://svnweb.freebsd.org/changeset/base/341787 Log: Implement atomic_swap_xxx() for all platforms. Differential Revision: https://reviews.freebsd.org/D18450 Reviewed by: kib@ MFC after: 3 days Sponsored by: Mellanox Technologies Modified: head/sys/arm/include/atomic.h head/sys/mips/include/atomic.h head/sys/powerpc/include/atomic.h Modified: head/sys/arm/include/atomic.h ============================================================================== --- head/sys/arm/include/atomic.h Mon Dec 10 09:45:57 2018 (r341786) +++ head/sys/arm/include/atomic.h Mon Dec 10 13:38:13 2018 (r341787) @@ -55,6 +55,13 @@ #include #endif /* Arch >= v6 */ +static __inline u_long +atomic_swap_long(volatile u_long *p, u_long v) +{ + + return (atomic_swap_32((volatile uint32_t *)p, v)); +} + #define atomic_clear_ptr atomic_clear_32 #define atomic_clear_acq_ptr atomic_clear_acq_32 #define atomic_clear_rel_ptr atomic_clear_rel_32 Modified: head/sys/mips/include/atomic.h ============================================================================== --- head/sys/mips/include/atomic.h Mon Dec 10 09:45:57 2018 (r341786) +++ head/sys/mips/include/atomic.h Mon Dec 10 13:38:13 2018 (r341787) @@ -755,4 +755,68 @@ atomic_thread_fence_seq_cst(void) #define atomic_store_rel_ptr atomic_store_rel_long #define atomic_readandclear_ptr atomic_readandclear_long +static __inline unsigned int +atomic_swap_int(volatile unsigned int *ptr, const unsigned int value) +{ + unsigned int retval; + + retval = *ptr; + + while (!atomic_fcmpset_int(ptr, &retval, value)) + ; + return (retval); +} + +static __inline uint32_t +atomic_swap_32(volatile uint32_t *ptr, const uint32_t value) +{ + uint32_t retval; + + retval = *ptr; + + while (!atomic_fcmpset_32(ptr, &retval, value)) + ; + return (retval); +} + +#if defined(__mips_n64) || defined(__mips_n32) +static __inline uint64_t +atomic_swap_64(volatile uint64_t *ptr, const uint64_t value) +{ + uint64_t retval; + + retval = *ptr; + + while (!atomic_fcmpset_64(ptr, &retval, value)) + ; + return (retval); +} +#endif + +static __inline unsigned long +atomic_swap_long(volatile unsigned long *ptr, const unsigned long value) +{ + unsigned long retval; + + retval = *ptr; + + while (!atomic_fcmpset_32((volatile uint32_t *)ptr, + (uint32_t *)&retval, value)) + ; + return (retval); +} + +static __inline uintptr_t +atomic_swap_ptr(volatile uintptr_t *ptr, const uintptr_t value) +{ + uintptr_t retval; + + retval = *ptr; + + while (!atomic_fcmpset_32((volatile uint32_t *)ptr, + (uint32_t *)&retval, value)) + ; + return (retval); +} + #endif /* ! _MACHINE_ATOMIC_H_ */ Modified: head/sys/powerpc/include/atomic.h ============================================================================== --- head/sys/powerpc/include/atomic.h Mon Dec 10 09:45:57 2018 (r341786) +++ head/sys/powerpc/include/atomic.h Mon Dec 10 13:38:13 2018 (r341787) @@ -852,6 +852,9 @@ atomic_swap_64(volatile u_long *p, u_long v) #define atomic_fetchadd_64 atomic_fetchadd_long #define atomic_swap_long atomic_swap_64 #define atomic_swap_ptr atomic_swap_64 +#else +#define atomic_swap_long(p,v) atomic_swap_32((volatile u_int *)(p), v) +#define atomic_swap_ptr(p,v) atomic_swap_32((volatile u_int *)(p), v) #endif #undef __ATOMIC_REL From owner-svn-src-head@freebsd.org Mon Dec 10 13:41:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C86F213266FA; Mon, 10 Dec 2018 13:41:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6BCDF79082; Mon, 10 Dec 2018 13:41:34 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D874120945; Mon, 10 Dec 2018 13:41: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 wBADfXY4031546; Mon, 10 Dec 2018 13:41:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBADfXVC031544; Mon, 10 Dec 2018 13:41:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201812101341.wBADfXVC031544@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 10 Dec 2018 13:41:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341789 - head/sys/compat/linuxkpi/common/include/asm X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/include/asm X-SVN-Commit-Revision: 341789 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6BCDF79082 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.99)[-0.990,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 13:41:35 -0000 Author: hselasky Date: Mon Dec 10 13:41:33 2018 New Revision: 341789 URL: https://svnweb.freebsd.org/changeset/base/341789 Log: Remove no longer needed ifdefs in the LinuxKPI, after r341787. Differential Revision: https://reviews.freebsd.org/D18450 Reviewed by: kib@ MFC after: 3 days Sponsored by: Mellanox Technologies Modified: head/sys/compat/linuxkpi/common/include/asm/atomic-long.h head/sys/compat/linuxkpi/common/include/asm/atomic.h Modified: head/sys/compat/linuxkpi/common/include/asm/atomic-long.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/asm/atomic-long.h Mon Dec 10 13:41:28 2018 (r341788) +++ head/sys/compat/linuxkpi/common/include/asm/atomic-long.h Mon Dec 10 13:41:33 2018 (r341789) @@ -78,15 +78,7 @@ atomic_long_dec(atomic_long_t *v) static inline long atomic_long_xchg(atomic_long_t *v, long val) { -#if defined(__i386__) || defined(__amd64__) || defined(__aarch64__) return atomic_swap_long(&v->counter, val); -#else - long ret = atomic_long_read(v); - - while (!atomic_fcmpset_long(&v->counter, &ret, val)) - ; - return (ret); -#endif } static inline long Modified: head/sys/compat/linuxkpi/common/include/asm/atomic.h ============================================================================== --- head/sys/compat/linuxkpi/common/include/asm/atomic.h Mon Dec 10 13:41:28 2018 (r341788) +++ head/sys/compat/linuxkpi/common/include/asm/atomic.h Mon Dec 10 13:41:33 2018 (r341789) @@ -128,15 +128,7 @@ atomic_clear_mask(unsigned int mask, atomic_t *v) static inline int atomic_xchg(atomic_t *v, int i) { -#if !defined(__mips__) return (atomic_swap_int(&v->counter, i)); -#else - int ret = atomic_read(v); - - while (!atomic_fcmpset_int(&v->counter, &ret, i)) - ; - return (ret); -#endif } static inline int From owner-svn-src-head@freebsd.org Mon Dec 10 14:39:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 161351328014; Mon, 10 Dec 2018 14:39:22 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ABEED7B993; Mon, 10 Dec 2018 14:39:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8CE4021290; Mon, 10 Dec 2018 14:39:21 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBAEdLmX058734; Mon, 10 Dec 2018 14:39:21 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBAEdLLv058733; Mon, 10 Dec 2018 14:39:21 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201812101439.wBAEdLLv058733@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Mon, 10 Dec 2018 14:39:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341795 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 341795 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: ABEED7B993 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.970,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 14:39:22 -0000 Author: eugen Date: Mon Dec 10 14:39:21 2018 New Revision: 341795 URL: https://svnweb.freebsd.org/changeset/base/341795 Log: ping(8): add space after "<=" as per style(9). MFC after: 1 week X-MFC-with: r341768 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Mon Dec 10 14:24:41 2018 (r341794) +++ head/sbin/ping/ping.c Mon Dec 10 14:39:21 2018 (r341795) @@ -313,7 +313,7 @@ main(int argc, char *const *argv) break; case 'c': ltmp = strtol(optarg, &ep, 0); - if (*ep || ep == optarg || ltmp <=0) + if (*ep || ep == optarg || ltmp <= 0) errx(EX_USAGE, "invalid count of packets to transmit: `%s'", optarg); From owner-svn-src-head@freebsd.org Mon Dec 10 14:50:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D0761328C86; Mon, 10 Dec 2018 14:50:12 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 22A247C37F; Mon, 10 Dec 2018 14:50:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F0B9721423; Mon, 10 Dec 2018 14:50:11 +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 wBAEoBIu063660; Mon, 10 Dec 2018 14:50:11 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBAEoBvM063659; Mon, 10 Dec 2018 14:50:11 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201812101450.wBAEoBvM063659@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 10 Dec 2018 14:50:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341796 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 341796 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 22A247C37F X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 14:50:12 -0000 Author: emaste Date: Mon Dec 10 14:50:11 2018 New Revision: 341796 URL: https://svnweb.freebsd.org/changeset/base/341796 Log: Clean stale wpa dependencies and objects after r341759 The wpa update added some source files with the same name as a file in another directory (found via .PATH in the previous version). Having a stale entry in a .depend file means the new file won't be built, so test for this case and if found remove all of wpa's dependency files. MFC with: r341759 Sponsored by: The FreeBSD Foundation Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Mon Dec 10 14:39:21 2018 (r341795) +++ head/Makefile.inc1 Mon Dec 10 14:50:11 2018 (r341796) @@ -977,6 +977,14 @@ _cleanobj_fast_depend_hack: .PHONY rm -f ${OBJTOP}/usr.sbin/ntp/libntpevent/.depend.*; \ fi +# 20181209 r341759 track migration across wpa update + @if [ -e "${OBJTOP}/usr.sbin/wpa/wpa_supplicant/.depend.rrm.o" ] && \ + egrep -q 'src/ap/rrm.c' \ + ${OBJTOP}/usr.sbin/wpa/wpa_supplicant/.depend.rrm.o; then \ + echo "Removing stale wpa dependencies and objects"; \ + rm -f ${OBJTOP}/usr.sbin/wpa/*/.depend*; \ + fi + _worldtmp: .PHONY @echo @echo "--------------------------------------------------------------" From owner-svn-src-head@freebsd.org Mon Dec 10 14:54:30 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49D511328FF6; Mon, 10 Dec 2018 14:54:30 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E3FBB7CA2D; Mon, 10 Dec 2018 14:54:29 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C5B86215C8; Mon, 10 Dec 2018 14:54:29 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBAEsTUT068891; Mon, 10 Dec 2018 14:54:29 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBAEsSvh068887; Mon, 10 Dec 2018 14:54:28 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <201812101454.wBAEsSvh068887@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Mon, 10 Dec 2018 14:54:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341797 - in head/sys/powerpc: aim include powerpc X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: in head/sys/powerpc: aim include powerpc X-SVN-Commit-Revision: 341797 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E3FBB7CA2D X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 14:54:30 -0000 Author: luporl Date: Mon Dec 10 14:54:28 2018 New Revision: 341797 URL: https://svnweb.freebsd.org/changeset/base/341797 Log: ppc64: handle exception 0x1500 (soft patch) This change adds a hypervisor trap handler for exception 0x1500 (soft patch), normalizing all VSX registers and returning. This avoids a kernel panic due to unknown exception. Change made with the collaboration of leonardo.bianconi_eldorado.org.br, that found out that this is a hypervisor exception and not a supervisor one, and fixed this in the code. Reviewed by: jhibbits, sbruno Differential Revision: https://reviews.freebsd.org/D17806 Modified: head/sys/powerpc/aim/aim_machdep.c head/sys/powerpc/include/trap.h head/sys/powerpc/powerpc/db_trace.c head/sys/powerpc/powerpc/trap.c Modified: head/sys/powerpc/aim/aim_machdep.c ============================================================================== --- head/sys/powerpc/aim/aim_machdep.c Mon Dec 10 14:50:11 2018 (r341796) +++ head/sys/powerpc/aim/aim_machdep.c Mon Dec 10 14:54:28 2018 (r341797) @@ -366,6 +366,7 @@ aim_cpu_init(vm_offset_t toc) bcopy(&hypertrapcode, (void *)(EXC_HEA + trap_offset), trapsize); bcopy(&hypertrapcode, (void *)(EXC_HMI + trap_offset), trapsize); bcopy(&hypertrapcode, (void *)(EXC_HVI + trap_offset), trapsize); + bcopy(&hypertrapcode, (void *)(EXC_SOFT_PATCH + trap_offset), trapsize); #endif bcopy(&rstcode, (void *)(EXC_RST + trap_offset), (size_t)&rstcodeend - Modified: head/sys/powerpc/include/trap.h ============================================================================== --- head/sys/powerpc/include/trap.h Mon Dec 10 14:50:11 2018 (r341796) +++ head/sys/powerpc/include/trap.h Mon Dec 10 14:54:28 2018 (r341797) @@ -103,6 +103,9 @@ #define EXC_SPFPD 0x2f30 /* SPE Floating-point Data */ #define EXC_SPFPR 0x2f40 /* SPE Floating-point Round */ +/* POWER8 */ +#define EXC_SOFT_PATCH 0x1500 /* POWER8 Soft Patch Exception */ + #define EXC_LAST 0x2f00 /* Last possible exception vector */ #define EXC_AST 0x3000 /* Fake AST vector */ Modified: head/sys/powerpc/powerpc/db_trace.c ============================================================================== --- head/sys/powerpc/powerpc/db_trace.c Mon Dec 10 14:50:11 2018 (r341796) +++ head/sys/powerpc/powerpc/db_trace.c Mon Dec 10 14:54:28 2018 (r341797) @@ -255,6 +255,7 @@ db_backtrace(struct thread *td, db_addr_t fp, int coun case EXC_DECR: trapstr = "DECR"; break; case EXC_PERF: trapstr = "PERF"; break; case EXC_VSX: trapstr = "VSX"; break; + case EXC_SOFT_PATCH: trapstr = "SOFT_PATCH"; break; default: trapstr = NULL; break; } if (trapstr != NULL) { Modified: head/sys/powerpc/powerpc/trap.c ============================================================================== --- head/sys/powerpc/powerpc/trap.c Mon Dec 10 14:50:11 2018 (r341796) +++ head/sys/powerpc/powerpc/trap.c Mon Dec 10 14:54:28 2018 (r341797) @@ -95,6 +95,7 @@ static void syscall(struct trapframe *frame); void handle_kernel_slb_spill(int, register_t, register_t); static int handle_user_slb_spill(pmap_t pm, vm_offset_t addr); extern int n_slbs; +static void normalize_inputs(void); #endif extern vm_offset_t __startkernel; @@ -147,6 +148,7 @@ static struct powerpc_exception powerpc_exceptions[] = { EXC_VECAST_G4, "altivec assist" }, { EXC_THRM, "thermal management" }, { EXC_RUNMODETRC, "run mode/trace" }, + { EXC_SOFT_PATCH, "soft patch exception" }, { EXC_LAST, NULL } }; @@ -382,6 +384,17 @@ trap(struct trapframe *frame) ucode = BUS_OBJERR; break; +#if defined(__powerpc64__) && defined(AIM) + case EXC_SOFT_PATCH: + /* + * Point to the instruction that generated the exception to execute it again, + * and normalize the register values. + */ + frame->srr0 -= 4; + normalize_inputs(); + break; +#endif + default: trap_fatal(frame); } @@ -908,6 +921,49 @@ fix_unaligned(struct thread *td, struct trapframe *fra return (-1); } + +#if defined(__powerpc64__) && defined(AIM) +#define MSKNSHL(x, m, n) "(((" #x ") & " #m ") << " #n ")" +#define MSKNSHR(x, m, n) "(((" #x ") & " #m ") >> " #n ")" + +/* xvcpsgndp instruction, built in opcode format. + * This can be changed to use mnemonic after a toolchain update. + */ +#define XVCPSGNDP(xt, xa, xb) \ + __asm __volatile(".long (" \ + MSKNSHL(60, 0x3f, 26) " | " \ + MSKNSHL(xt, 0x1f, 21) " | " \ + MSKNSHL(xa, 0x1f, 16) " | " \ + MSKNSHL(xb, 0x1f, 11) " | " \ + MSKNSHL(240, 0xff, 3) " | " \ + MSKNSHR(xa, 0x20, 3) " | " \ + MSKNSHR(xa, 0x20, 4) " | " \ + MSKNSHR(xa, 0x20, 5) ")") + +/* Macros to normalize 1 or 10 VSX registers */ +#define NORM(x) XVCPSGNDP(x, x, x) +#define NORM10(x) \ + NORM(x ## 0); NORM(x ## 1); NORM(x ## 2); NORM(x ## 3); NORM(x ## 4); \ + NORM(x ## 5); NORM(x ## 6); NORM(x ## 7); NORM(x ## 8); NORM(x ## 9) + +static void +normalize_inputs(void) +{ + unsigned long msr; + + /* enable VSX */ + msr = mfmsr(); + mtmsr(msr | PSL_VSX); + + NORM(0); NORM(1); NORM(2); NORM(3); NORM(4); + NORM(5); NORM(6); NORM(7); NORM(8); NORM(9); + NORM10(1); NORM10(2); NORM10(3); NORM10(4); NORM10(5); + NORM(60); NORM(61); NORM(62); NORM(63); + + /* restore MSR */ + mtmsr(msr); +} +#endif #ifdef KDB int From owner-svn-src-head@freebsd.org Mon Dec 10 14:55:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64FF313290FA; Mon, 10 Dec 2018 14:55:47 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it1-f174.google.com (mail-it1-f174.google.com [209.85.166.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C2AA87CD90; Mon, 10 Dec 2018 14:55:46 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it1-f174.google.com with SMTP id i145so17701910ita.4; Mon, 10 Dec 2018 06:55:46 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4TvsPrDu6uOBb27T8WKccqa9/FC7t8jbL7LL6dy//6M=; b=JW3XHGBJfxRS/DoVifgjf2CJkWVkUgPlU/Oby7MRAa4l9JWKlo1bJnTCM7Mb59ehO5 4gGdl1OWOjc1K/RQMZbUNCkU1/lDlabkjhyWeQNltLM7Ttm62f5a2FDYKKkpInc2sacz 2L/0n3Dge+Vbm9PCVbJ0Ky/hfuITT/OOXaWpxu0n97/kER/OH9pz9BjGVl3OSZkZXZ6T BCNsqnLEyHw4VwCZzpD4wAAt8zL247EYPIa0P5y9V+RYgZYXkPJGQ3DmWfR4DKoFPnas cR3zLIm1FZ2zdlytmmtDtUD4aggLe36QOLBTzGpvGTr9jpPU+3WBkqOqOKSxVwcpC3Ho LOGg== X-Gm-Message-State: AA+aEWbNMAopij+qCPPi3CEwp8CWPW+c09vIjjBoAvynAkeecty3CjFT FIYVbgTFOqIpwWk+1gVjqwzRSB6N4cR0M8e2g6PH5g== X-Google-Smtp-Source: AFSGD/X3t8BCmE8FStZzdwZaGG2FZr/OmUWl1AN033xQx+ZAtqY3kCH1C6lxWMXOzSEpGjBaA19THt6Razk6bRb8OpM= X-Received: by 2002:a02:5618:: with SMTP id o24mr12319650jab.111.1544453745910; Mon, 10 Dec 2018 06:55:45 -0800 (PST) MIME-Version: 1.0 References: <201812090645.wB96jnso066329@repo.freebsd.org> <201812090708.wB978Li6098145@slippy.cwsent.com> In-Reply-To: <201812090708.wB978Li6098145@slippy.cwsent.com> From: Ed Maste Date: Mon, 10 Dec 2018 09:55:33 -0500 Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Cy Schubert Cc: Cy Schubert , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: C2AA87CD90 X-Spamd-Result: default: False [-5.83 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.994,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[freebsd.org]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.96)[-0.955,0]; RCVD_IN_DNSWL_NONE(0.00)[174.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.87)[ip: (-9.44), ipnet: 209.85.128.0/17(-3.55), asn: 15169(-1.29), country: US(-0.09)]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[174.166.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 14:55:47 -0000 On Sun, 9 Dec 2018 at 02:08, Cy Schubert wrote: > > In message <201812090645.wB96jnso066329@repo.freebsd.org>, Cy Schubert > writes: > > Author: cy > > Date: Sun Dec 9 06:45:49 2018 > > New Revision: 341759 > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > Log: > > MFV r341618: > > > > Update wpa 2.6 --> 2.7. > > In order to build this cleanly, artifacts from wpa 2.6 need to be > removed first. Either build using a clean /usr/obj or if building using > -DNO_CLEAN, rm -rf /usr/obj/opt/src/svn-current/*/usr.sbin/wpa first. We've been able to build with -DNO_CLEAN for about a year and a half; I added automatic cleanup of old dependencies for this wpa update in r341796. From owner-svn-src-head@freebsd.org Mon Dec 10 15:42:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6A23A132A62C; Mon, 10 Dec 2018 15:42:14 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 120F87E9D1; Mon, 10 Dec 2018 15:42:14 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D531421DDA; Mon, 10 Dec 2018 15:42:13 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBAFgDRh093542; Mon, 10 Dec 2018 15:42:13 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBAFgDWZ093541; Mon, 10 Dec 2018 15:42:13 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201812101542.wBAFgDWZ093541@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 10 Dec 2018 15:42:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341798 - head/sbin/ipfw X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sbin/ipfw X-SVN-Commit-Revision: 341798 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 120F87E9D1 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.971,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 15:42:14 -0000 Author: ae Date: Mon Dec 10 15:42:13 2018 New Revision: 341798 URL: https://svnweb.freebsd.org/changeset/base/341798 Log: Use correct size for IPv4 address in gethostbyaddr(). When u_long is 8 bytes, it returns EINVAL and 'ipfw -N show' doesn't work. Reported by: Claudio Eichenberger MFC after: 1 week Modified: head/sbin/ipfw/ipfw2.c Modified: head/sbin/ipfw/ipfw2.c ============================================================================== --- head/sbin/ipfw/ipfw2.c Mon Dec 10 14:54:28 2018 (r341797) +++ head/sbin/ipfw/ipfw2.c Mon Dec 10 15:42:13 2018 (r341798) @@ -1256,7 +1256,8 @@ print_ip(struct buf_pr *bp, const struct format_opts * (cmd->o.opcode == O_IP_SRC || cmd->o.opcode == O_IP_DST) ? 32 : contigmask((uint8_t *)&(a[1]), 32); if (mb == 32 && co.do_resolv) - he = gethostbyaddr((char *)&(a[0]), sizeof(u_long), AF_INET); + he = gethostbyaddr((char *)&(a[0]), sizeof(in_addr_t), + AF_INET); if (he != NULL) /* resolved to name */ bprintf(bp, "%s", he->h_name); else if (mb == 0) /* any */ From owner-svn-src-head@freebsd.org Mon Dec 10 16:22:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDF26132B8F6 for ; Mon, 10 Dec 2018 16:22:20 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound3d.ore.mailhop.org (outbound3d.ore.mailhop.org [54.186.57.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 22572809F3 for ; Mon, 10 Dec 2018 16:22:20 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1544458912; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=Ef72Y+R0NMmw3rU7+tzhUzWevclCqVTMV9361uwzO0axj7GTlq1EanWkZW0Z49tDIobTAxHpO0X3F TyzW1GnsXQplNfmpsby4V8tXC8tJMxpuLo2DtcvgxoA3tNK+l/M14mY4GtxFCLuAMrWGql3K9pHCT7 zl7HnjTGoUHEMwYvHn798HzEKvqiWKdoHqYPG/qkcswiTg6jXKuV++9DDTgv3WFJaZv0QmM43Z6K3y 0AWcbzUeGqqKg5tmz9I5xpAeyPb9YgtNefYp60A89EhcEeYvB2vag4F9EKxcMvDpszTUYwDtIS6ir9 u2To1ku+i7uFkwUd4jCDeK6j6QbRvxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=Nw9cSnc0KrCcz0FEnKaEhgxuygnwHLASXVNbdRQDN5A=; b=dh9L9Jbo/bT79A8PbGbr0eFRF4n3BiGDQNSvJprhg1Y+uaclhvBl6hNXju8iJEkHW31PceO/Vr+fx kH2YHhCdOMV71sdMnruoCbTxSZeebkjqRUOfCiLcYDdY0zg5VDwgaTCh71qHDYQpGqyyu73SxaMyHF iJMuk+hJstKoglqTKKT+piBEFRptBHZSHmz9hVQTGuOF6w9iV4JRywi1H39T7EG/eWvSPwcu9GYYlp 8lWL53qqCO/ELDnNCaNytEoXfJiYK+gcA9yP889JBNrUTjyVIdNofFjUP6VLKEIkHJoNGfG+DGkQMk B/OOMt3FADEs35f1R+hwuJysBDAsfbg== ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=Nw9cSnc0KrCcz0FEnKaEhgxuygnwHLASXVNbdRQDN5A=; b=Qy5ROZPE3JQjHnAIUnOGnnKwBJXKJ4QyVI8nKCigINV6j+zo+4+ZqHtSen+O6GKhYCM7H6asOvQnj J6uMKZnxiF90pmLqawVrvYInEU1Zirfxdr/GYRsM0wMvGwrWMWiLg7GRKny5L1bwPvu13wx5Aji50R 0OYMd8+aJXl99Q65j+LbEZzYq5NNvmWdbnxNwyyNBo5dTFzE9p2gptBC0StHgtOS/ILEg17UtGyJyY B4xYUtGdAMWE0k+RBH7WyM6MuFK6WNbbKD8wcWCEFAAt2Uh+XzLVq3KWwdfXIO9rfc9yuMe8q/Ykl/ C63QDBU0/pyR2D4WzfHMVmeVumEUpuw== X-MHO-RoutePath: aGlwcGll X-MHO-User: b1f1ca5f-fc97-11e8-a59a-7b143e15dabc X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id b1f1ca5f-fc97-11e8-a59a-7b143e15dabc; Mon, 10 Dec 2018 16:21:51 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id wBAGM95p072416; Mon, 10 Dec 2018 09:22:09 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1544458929.1860.329.camel@freebsd.org> Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... From: Ian Lepore To: Warner Losh , Cy Schubert Cc: "Rodney W. Grimes" , Oliver Pinter , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Cy Schubert Date: Mon, 10 Dec 2018 09:22:09 -0700 In-Reply-To: References: <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net> <201812100640.wBA6eaMA052004@slippy.cwsent.com> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 22572809F3 X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:16509, ipnet:54.186.0.0/15, country:US]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 16:22:21 -0000 On Sun, 2018-12-09 at 23:47 -0700, Warner Losh wrote: > On Sun, Dec 9, 2018, 11:40 PM Cy Schubert wrote: > > > > > In message <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net>, > > "Rodney W. Gri > > mes" writes: > > > > > > > > > > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter < > > oliver.pinter@hardenedbsd.org > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh > > > > > wrote: > > > > > > > > > > > > > > > > > On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > > > > > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > In message <201812090645.wB96jnso066329@repo.freebsd.or > > > > > > > > g>, Cy > > > > > > Schubert > > > > > > > > > > > > > > > > > > > > > > > writes: > > > > > > > > > > > > > > > > > > Author: cy > > > > > > > > > Date: Sun Dec  9 06:45:49 2018 > > > > > > > > > New Revision: 341759 > > > > > > > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > > > > > > > > > > > > > > > Log: > > > > > > > > >   MFV r341618: > > > > > > > > > > > > > > > > > >   Update wpa 2.6 --> 2.7. > > > > > > > > Relnotes: yes > > > > > > > As an FYI, or maybe a new procedure, doing a reply to > > > > > > > a commit message adding relnotes: yes does very little > > > > > > > to insure that this commit gets refered to in release > > > > > > > notes. > > > > > > > > > > > > > > What about we add RELNOTES.missed to the tree > > > > > > > next to UPDATING, and when someone forgets to tag > > > > > > > the Relnotes:yes into a commit you just follow up > > > > > > > with a commit to that file, stating the svn revision > > > > > > > which was missing the note and then we have a nice > > > > > > > documented and clean way to extract the missing > > > > > > > release note items, rather than trying to cull it > > > > > > > from a thread in a mail list archive. > > > > > > > > > > > > > > The file would get truncated to 0 at appropriate > > > > > > > times on various branches. > > > > > > > > > > > > > How about just RELNOTES. You put the revision that is > > > > > > relevant and > > a qui > > > > > > ck > > > > > > > > > > > > > > > > > > > > > blurb. That way we don't have to look in two places. All > > > > > > release > > notes g > > > > > > o > > > > > > > > > > > > > > > > > > > > > in here, no exceptions. You can retroactively tag them, or > > > > > > you can > > commi > > > > > > t > > > > > > > > > > > > > > > > > > > > > this as part of commit. > > > My one concern is that if we remove the Relnotes: yes line > > > from the commits then we may end up totally ignoring the > > > need to put entries in RELNOTES, which unlike UPDATING > > > do not have consequences if ignored. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I don't really know SVN, but there wouldn't be a chicken egg > > > > > probem > > durin > > > > > > g > > > > > > > > > > > > > > commit time? I mean you would really know the SVN id. So you > > > > > could > > only a > > > > > > dd > > > > > > > > > > > > > > a specific revision in a different commit to RELEASE file. > > > > > > > > > Generally, you can guess really well, and fix it in the case of > > > > a lost > > race > > > > > > > > > > > easily. > > > No reason to guess, if you add the RELNOTES change with the > > > commit > > > then it is the revision that added the RELNOTES entry, so a log > > > view > > > of RELNOTES would show you the revision.  If you do it after > > > words > > > or edit an existing entry in the RELNOTES file that is also > > > fairly > > > clear as that commit has no other files touched. > > > > > > > > > > > > > > > You'd add the release notes text in full to the file, with a > > > > pointer > > to the > > > > > > > > > > > revision(s) for the feature. > > > If you modify RELNOTES with the commit adding the feature we > > > could easily use a pointer of "this commit", the svn version > > > number > > > of that added entry is self referencing to the actual change, > > > which I actually rather like the idea of. > > > > > > > > > > > > > > > Warner > > > > > > > > > > > > > > > > > > > > > > > > > > Have a blurb at the top that tells people what > > > > > > order to add them in, and you'd be set. We'd then retire > > > > > > "relnotes: > > yes" > > > > > > > > > > > > > > > > > > > > > > > > in > > > > > > the commit message. This would also allow 'helpers' to > > > > > > format the > > RELNOT > > > > > > ES > > > > > > > > > > > > > > > > > > > > > file as we go rather than having to play 2 years of catch- > > > > > > up at > > major > > > > > > > > > > > > > > > > > > > > > > > > branch times. > > > Yes.  You could actually "delete" an entry from RELNOTES once a > > > proper entry in the actual release notes had been created, such > > > that RELNOTES is really a list of pending items. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Having it in the commit message just doesn't work, and this > > > > > > is one > > of ma > > > > > > ny > > > > > > > > > > > > > > > > > > > > > reasons: Cy forgot. Other times I'll do something and it's > > > > > > only a > > month > > > > > > > > > > > > > > > > > > > > > > > > later I realize it needs to be in the release notes after > > > > > > some > > issue has > > > > > > > > > > > > > > > > > > > > > > > > come up.... Other times I put relnotes: yes in only to > > > > > > realize > > that's my > > > > > > > > > > > > > > > > > > > > > > > > vanity talking, and nobody else cares. > > > I agree, what we have now works poorly. > > Forgetting, yes, but also a hmmm moment. > > > > Initially my thinking was a file in doc/. Or maybe something like > > the > > vuxml port where we fill in the blanks and make validate to make > > sure > > all the i's are dotted and t's crossed. It's a little extra work > > for > > committers but would help re@ immensely, and get the details in > > from > > the get-go. > > > > My thought was a low friction,  proximate way to do a ticker of important > changes. Doc repo is too hard. Too much friction. A simple extra file puts > it all in one, easy to find and edit place... it can cause other things to > happen, further away. But it needs to be close by. > I agree that a RELNOTES file as plain ascii text will be the easiest thing for src committers to work with, and being easy will definitely improve the odds of being updated. We have empirical data on src committers updating an xml file in the docs repo, based on documenting version number bumps, and it all too often doesn't happen, I think laregely because it's a big hassle and it's out of sight in another repo. -- Ian From owner-svn-src-head@freebsd.org Mon Dec 10 16:23:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8591B132B967; Mon, 10 Dec 2018 16:23:12 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1FED680C77; Mon, 10 Dec 2018 16:23:12 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 00DC822495; Mon, 10 Dec 2018 16:23:12 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBAGNBO5015810; Mon, 10 Dec 2018 16:23:11 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBAGNBUd015809; Mon, 10 Dec 2018 16:23:11 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201812101623.wBAGNBUd015809@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 10 Dec 2018 16:23:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341799 - head/sbin/ipfw X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sbin/ipfw X-SVN-Commit-Revision: 341799 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1FED680C77 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.965,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 16:23:12 -0000 Author: ae Date: Mon Dec 10 16:23:11 2018 New Revision: 341799 URL: https://svnweb.freebsd.org/changeset/base/341799 Log: Rework how protocol number is tracked in rule. Save it when O_PROTO opcode will be printed. This should solve the problem, when protocol name is not printed in `ipfw -N show`. Reported by: Claudio Eichenberger MFC after: 1 week Modified: head/sbin/ipfw/ipfw2.c Modified: head/sbin/ipfw/ipfw2.c ============================================================================== --- head/sbin/ipfw/ipfw2.c Mon Dec 10 15:42:13 2018 (r341798) +++ head/sbin/ipfw/ipfw2.c Mon Dec 10 16:23:11 2018 (r341799) @@ -1511,6 +1511,7 @@ print_instruction(struct buf_pr *bp, const struct form bprintf(bp, " %s", pe->p_name); else bprintf(bp, " %u", cmd->arg1); + state->proto = cmd->arg1; break; case O_MACADDR2: print_mac(bp, insntod(cmd, mac)); @@ -1992,10 +1993,10 @@ print_proto(struct buf_pr *bp, struct format_opts *fo, struct show_state *state) { ipfw_insn *cmd; - int l, proto, ip4, ip6, tmp; + int l, proto, ip4, ip6; /* Count all O_PROTO, O_IP4, O_IP6 instructions. */ - proto = tmp = ip4 = ip6 = 0; + proto = ip4 = ip6 = 0; for (l = state->rule->act_ofs, cmd = state->rule->cmd; l > 0; l -= F_LEN(cmd), cmd += F_LEN(cmd)) { switch (cmd->opcode) { @@ -2031,18 +2032,13 @@ print_proto(struct buf_pr *bp, struct format_opts *fo, if (cmd == NULL || (cmd->len & F_OR)) for (l = proto; l > 0; l--) { cmd = print_opcode(bp, fo, state, O_PROTO); - if (cmd != NULL && (cmd->len & F_OR) == 0) + if (cmd == NULL || (cmd->len & F_OR) == 0) break; - tmp = cmd->arg1; } /* Initialize proto, it is used by print_newports() */ - if (tmp != 0) - state->proto = tmp; - else if (ip6 != 0) - state->proto = IPPROTO_IPV6; - else - state->proto = IPPROTO_IP; state->flags |= HAVE_PROTO; + if (state->proto == 0 && ip6 != 0) + state->proto = IPPROTO_IPV6; } static int From owner-svn-src-head@freebsd.org Mon Dec 10 17:14:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D082E132D5F9; Mon, 10 Dec 2018 17:14:39 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 25F4A83D28; Mon, 10 Dec 2018 17:14:38 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id wBAHEXmW066678; Mon, 10 Dec 2018 09:14:33 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id wBAHEX7G066677; Mon, 10 Dec 2018 09:14:33 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201812101714.wBAHEX7G066677@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: <1544458929.1860.329.camel@freebsd.org> To: Ian Lepore Date: Mon, 10 Dec 2018 09:14:33 -0800 (PST) CC: Warner Losh , Cy Schubert , "Rodney W. Grimes" , Oliver Pinter , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Cy Schubert Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 25F4A83D28 X-Spamd-Result: default: False [1.99 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[rgrimes@freebsd.org]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[dnsmgr.net]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.91)[0.907,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: pdx.rh.CN85.dnsmgr.net]; NEURAL_SPAM_LONG(0.69)[0.695,0]; RCPT_COUNT_SEVEN(0.00)[9]; NEURAL_HAM_SHORT(-0.48)[-0.476,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(-0.03)[asn: 13868(-0.04), country: US(-0.09)] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 17:14:40 -0000 > On Sun, 2018-12-09 at 23:47 -0700, Warner Losh wrote: > > On Sun, Dec 9, 2018, 11:40 PM Cy Schubert > wrote: > > > > > > > > In message <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net>, > > > "Rodney W. Gri > > > mes" writes: > > > > > > > > > > > > > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter < > > > oliver.pinter@hardenedbsd.org > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > > > > > > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > In message <201812090645.wB96jnso066329@repo.freebsd.or > > > > > > > > > g>, Cy > > > > > > > Schubert > > > > > > > > > > > > > > > > > > > > > > > > > > writes: > > > > > > > > > > > > > > > > > > > > Author: cy > > > > > > > > > > Date: Sun Dec??9 06:45:49 2018 > > > > > > > > > > New Revision: 341759 > > > > > > > > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > > > > > > > > > > > > > > > > > Log: > > > > > > > > > > ? MFV r341618: > > > > > > > > > > > > > > > > > > > > ? Update wpa 2.6 --> 2.7. > > > > > > > > > Relnotes: yes > > > > > > > > As an FYI, or maybe a new procedure, doing a reply to > > > > > > > > a commit message adding relnotes: yes does very little > > > > > > > > to insure that this commit gets refered to in release > > > > > > > > notes. > > > > > > > > > > > > > > > > What about we add RELNOTES.missed to the tree > > > > > > > > next to UPDATING, and when someone forgets to tag > > > > > > > > the Relnotes:yes into a commit you just follow up > > > > > > > > with a commit to that file, stating the svn revision > > > > > > > > which was missing the note and then we have a nice > > > > > > > > documented and clean way to extract the missing > > > > > > > > release note items, rather than trying to cull it > > > > > > > > from a thread in a mail list archive. > > > > > > > > > > > > > > > > The file would get truncated to 0 at appropriate > > > > > > > > times on various branches. > > > > > > > > > > > > > > > How about just RELNOTES. You put the revision that is > > > > > > > relevant and > > > a qui > > > > > > > > ck > > > > > > > > > > > > > > > > > > > > > > > > > blurb. That way we don't have to look in two places. All > > > > > > > release > > > notes g > > > > > > > > o > > > > > > > > > > > > > > > > > > > > > > > > > in here, no exceptions. You can retroactively tag them, or > > > > > > > you can > > > commi > > > > > > > > t > > > > > > > > > > > > > > > > > > > > > > > > > this as part of commit. > > > > My one concern is that if we remove the Relnotes: yes line > > > > from the commits then we may end up totally ignoring the > > > > need to put entries in RELNOTES, which unlike UPDATING > > > > do not have consequences if ignored. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I don't really know SVN, but there wouldn't be a chicken egg > > > > > > probem > > > durin > > > > > > > > g > > > > > > > > > > > > > > > > > commit time? I mean you would really know the SVN id. So you > > > > > > could > > > only a > > > > > > > > dd > > > > > > > > > > > > > > > > > a specific revision in a different commit to RELEASE file. > > > > > > > > > > > Generally, you can guess really well, and fix it in the case of > > > > > a lost > > > race > > > > > > > > > > > > > > easily. > > > > No reason to guess, if you add the RELNOTES change with the > > > > commit > > > > then it is the revision that added the RELNOTES entry, so a log > > > > view > > > > of RELNOTES would show you the revision.??If you do it after > > > > words > > > > or edit an existing entry in the RELNOTES file that is also > > > > fairly > > > > clear as that commit has no other files touched. > > > > > > > > > > > > > > > > > > > You'd add the release notes text in full to the file, with a > > > > > pointer > > > to the > > > > > > > > > > > > > > revision(s) for the feature. > > > > If you modify RELNOTES with the commit adding the feature we > > > > could easily use a pointer of "this commit", the svn version > > > > number > > > > of that added entry is self referencing to the actual change, > > > > which I actually rather like the idea of. > > > > > > > > > > > > > > > > > > > Warner > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Have a blurb at the top that tells people what > > > > > > > order to add them in, and you'd be set. We'd then retire > > > > > > > "relnotes: > > > yes" > > > > > > > > > > > > > > > > > > > > > > > > > > > > > in > > > > > > > the commit message. This would also allow 'helpers' to > > > > > > > format the > > > RELNOT > > > > > > > > ES > > > > > > > > > > > > > > > > > > > > > > > > > file as we go rather than having to play 2 years of catch- > > > > > > > up at > > > major > > > > > > > > > > > > > > > > > > > > > > > > > > > > > branch times. > > > > Yes.??You could actually "delete" an entry from RELNOTES once a > > > > proper entry in the actual release notes had been created, such > > > > that RELNOTES is really a list of pending items. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Having it in the commit message just doesn't work, and this > > > > > > > is one > > > of ma > > > > > > > > ny > > > > > > > > > > > > > > > > > > > > > > > > > reasons: Cy forgot. Other times I'll do something and it's > > > > > > > only a > > > month > > > > > > > > > > > > > > > > > > > > > > > > > > > > > later I realize it needs to be in the release notes after > > > > > > > some > > > issue has > > > > > > > > > > > > > > > > > > > > > > > > > > > > > come up.... Other times I put relnotes: yes in only to > > > > > > > realize > > > that's my > > > > > > > > > > > > > > > > > > > > > > > > > > > > > vanity talking, and nobody else cares. > > > > I agree, what we have now works poorly. > > > Forgetting, yes, but also a hmmm moment. > > > > > > Initially my thinking was a file in doc/. Or maybe something like > > > the > > > vuxml port where we fill in the blanks and make validate to make > > > sure > > > all the i's are dotted and t's crossed. It's a little extra work > > > for > > > committers but would help re@ immensely, and get the details in > > > from > > > the get-go. > > > > > > > My thought was a low friction,??proximate way to do a ticker of important > > changes. Doc repo is too hard. Too much friction. A simple extra file puts > > it all in one, easy to find and edit place... it can cause other things to > > happen, further away. But it needs to be close by. > > > > I agree that a RELNOTES file as plain ascii text will be the easiest > thing for src committers to work with, and being easy will definitely > improve the odds of being updated. > > We have empirical data on src committers updating an xml file in the > docs repo, based on documenting version number bumps, and it all too > often doesn't happen, I think laregely because it's a big hassle and > it's out of sight in another repo. On this position I agree fully with Warner and Ian, simple and easy is very important here, and IMHO this RELNOTES file is a simple fix for the missing RelNotes: yes issue. It also allows the committer to actually say more than just "yes". Also note I do not think we would be requireing more than a simple "this should be mentioned in release notes", defanitly are not asking for publication ready notes, though those would be gladly accepted! Can I ask that the community now allows the RE@ team to discuss this internally and come back with a proposal? Feel free to continue discussing on this thread, I'll try to incorporate any items brought up into our discussion. Thanks, -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Mon Dec 10 18:18:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2719A132F428 for ; Mon, 10 Dec 2018 18:18:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9EF1D864E1 for ; Mon, 10 Dec 2018 18:18:08 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x735.google.com with SMTP id y16so7047664qki.7 for ; Mon, 10 Dec 2018 10:18:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ptmy7aHQ3bHxuYQEeQ/tVXprBkrsRM5YZeLeXG0VTEQ=; b=12/CKoNyfEuUVsjavziGGn4MCy3lVn3F3cKVwr83iWG4yCPrQ6fwtZ2hFAqFUDecZc Jt/vMU4xWg76yiDjVnHKXCDCAZLS193eRESFiqAMe/OGnmBqLIZeoriH1AzG5MKSum69 iloen/ZmYdWIeQ42JbeGju4FkLj4M6FW/RhOqW6LfMcJapyHOS5A/h/f+nTvhgS3NmJp Z3kPaA2UkS5/S/0O0COBg27qkVuIpav10UkTddKHGu7hTsGPhdK2db0kyxNMAy80blcc 5H4y8EBOqXF3RWx0yLJk/S0CwfeUsYr/43Iqw1r8OmQain5r1Cz0IbWqLClV1iciwJa3 vd1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ptmy7aHQ3bHxuYQEeQ/tVXprBkrsRM5YZeLeXG0VTEQ=; b=kJ03LiJ6zPLb21HpqyXexLlSahSa0+xiV9TqTyRp5H6opWOa5sBAyPVs60PVxxxXdG q89PSfI2Kx/2ikMNi2iNTS4W2LGKZ/Nv1GYW+b3nz9YknPhU6wB5QAoKvw8FTSEhAEua 7zMLmF8dTFv/OFT1NU67jgxkRzHM5+m6gYnOuqfKkhCu6AYozVPkV/6EzCdjp9vxkhjF coIfXGo64bzeMLDGVYNiFNPuOVwwkIUKtE1j7hDMyGGIkbFMu3MPXHp8y8lM5puIua0H N5fym0GgsixpYyCRNutcmmjP/yRdoWQilFKkzsabb8y/AakJvYOj5UWs2CYQ+caSNoWY 84Og== X-Gm-Message-State: AA+aEWZ5RmzAiE7jA2T0RGtjoBe+E1Q91QrAMF7s5CriYv5kyjONnzIa GkZM+m1w58i0Z7TkBHjkliPMGT70PToUbiYTGCEJlQ== X-Google-Smtp-Source: AFSGD/XesTZdatDMwPfJhihVIkdOnROIVjtvXQXq2X8E2Yh1gsij7KcXBZcoUBVcobVGMZCYWtaOWu/qge+NwwH4ark= X-Received: by 2002:a37:9201:: with SMTP id u1mr12312395qkd.258.1544465888029; Mon, 10 Dec 2018 10:18:08 -0800 (PST) MIME-Version: 1.0 References: <1544458929.1860.329.camel@freebsd.org> <201812101714.wBAHEX7G066677@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201812101714.wBAHEX7G066677@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Mon, 10 Dec 2018 11:17:56 -0700 Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: "Rodney W. Grimes" Cc: Ian Lepore , Cy Schubert , Oliver Pinter , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Cy Schubert X-Rspamd-Queue-Id: 9EF1D864E1 X-Spamd-Result: default: False [-5.45 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[cached: ALT1.aspmx.l.google.com]; RCPT_COUNT_SEVEN(0.00)[8]; RCVD_IN_DNSWL_NONE(0.00)[5.3.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.47)[ip: (-9.46), ipnet: 2607:f8b0::/32(-1.50), asn: 15169(-1.28), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 18:18:10 -0000 On Mon, Dec 10, 2018 at 10:14 AM Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > On Sun, 2018-12-09 at 23:47 -0700, Warner Losh wrote: > > > On Sun, Dec 9, 2018, 11:40 PM Cy Schubert > > wrote: > > > > > > > > > > > In message <201812100619.wBA6JB0c064609@pdx.rh.CN85.dnsmgr.net>, > > > > "Rodney W. Gri > > > > mes" writes: > > > > > > > > > > > > > > > > > On Sun, Dec 9, 2018 at 2:03 PM Oliver Pinter < > > > > oliver.pinter@hardenedbsd.org > > > > > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Sunday, December 9, 2018, Warner Losh > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > On Sun, Dec 9, 2018 at 1:09 PM Rodney W. Grimes < > > > > > > > > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > In message <201812090645.wB96jnso066329@repo.freebsd.or > > > > > > > > > > g>, Cy > > > > > > > > Schubert > > > > > > > > > > > > > > > > > > > > > > > > > > > > > writes: > > > > > > > > > > > > > > > > > > > > > > Author: cy > > > > > > > > > > > Date: Sun Dec??9 06:45:49 2018 > > > > > > > > > > > New Revision: 341759 > > > > > > > > > > > URL: https://svnweb.freebsd.org/changeset/base/341759 > > > > > > > > > > > > > > > > > > > > > > Log: > > > > > > > > > > > ? MFV r341618: > > > > > > > > > > > > > > > > > > > > > > ? Update wpa 2.6 --> 2.7. > > > > > > > > > > Relnotes: yes > > > > > > > > > As an FYI, or maybe a new procedure, doing a reply to > > > > > > > > > a commit message adding relnotes: yes does very little > > > > > > > > > to insure that this commit gets refered to in release > > > > > > > > > notes. > > > > > > > > > > > > > > > > > > What about we add RELNOTES.missed to the tree > > > > > > > > > next to UPDATING, and when someone forgets to tag > > > > > > > > > the Relnotes:yes into a commit you just follow up > > > > > > > > > with a commit to that file, stating the svn revision > > > > > > > > > which was missing the note and then we have a nice > > > > > > > > > documented and clean way to extract the missing > > > > > > > > > release note items, rather than trying to cull it > > > > > > > > > from a thread in a mail list archive. > > > > > > > > > > > > > > > > > > The file would get truncated to 0 at appropriate > > > > > > > > > times on various branches. > > > > > > > > > > > > > > > > > How about just RELNOTES. You put the revision that is > > > > > > > > relevant and > > > > a qui > > > > > > > > > > ck > > > > > > > > > > > > > > > > > > > > > > > > > > > > > blurb. That way we don't have to look in two places. All > > > > > > > > release > > > > notes g > > > > > > > > > > o > > > > > > > > > > > > > > > > > > > > > > > > > > > > > in here, no exceptions. You can retroactively tag them, or > > > > > > > > you can > > > > commi > > > > > > > > > > t > > > > > > > > > > > > > > > > > > > > > > > > > > > > > this as part of commit. > > > > > My one concern is that if we remove the Relnotes: yes line > > > > > from the commits then we may end up totally ignoring the > > > > > need to put entries in RELNOTES, which unlike UPDATING > > > > > do not have consequences if ignored. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I don't really know SVN, but there wouldn't be a chicken egg > > > > > > > probem > > > > durin > > > > > > > > > > g > > > > > > > > > > > > > > > > > > > > commit time? I mean you would really know the SVN id. So you > > > > > > > could > > > > only a > > > > > > > > > > dd > > > > > > > > > > > > > > > > > > > > a specific revision in a different commit to RELEASE file. > > > > > > > > > > > > > Generally, you can guess really well, and fix it in the case of > > > > > > a lost > > > > race > > > > > > > > > > > > > > > > > easily. > > > > > No reason to guess, if you add the RELNOTES change with the > > > > > commit > > > > > then it is the revision that added the RELNOTES entry, so a log > > > > > view > > > > > of RELNOTES would show you the revision.??If you do it after > > > > > words > > > > > or edit an existing entry in the RELNOTES file that is also > > > > > fairly > > > > > clear as that commit has no other files touched. > > > > > > > > > > > > > > > > > > > > > > > You'd add the release notes text in full to the file, with a > > > > > > pointer > > > > to the > > > > > > > > > > > > > > > > > revision(s) for the feature. > > > > > If you modify RELNOTES with the commit adding the feature we > > > > > could easily use a pointer of "this commit", the svn version > > > > > number > > > > > of that added entry is self referencing to the actual change, > > > > > which I actually rather like the idea of. > > > > > > > > > > > > > > > > > > > > > > > Warner > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Have a blurb at the top that tells people what > > > > > > > > order to add them in, and you'd be set. We'd then retire > > > > > > > > "relnotes: > > > > yes" > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > in > > > > > > > > the commit message. This would also allow 'helpers' to > > > > > > > > format the > > > > RELNOT > > > > > > > > > > ES > > > > > > > > > > > > > > > > > > > > > > > > > > > > > file as we go rather than having to play 2 years of catch- > > > > > > > > up at > > > > major > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > branch times. > > > > > Yes.??You could actually "delete" an entry from RELNOTES once a > > > > > proper entry in the actual release notes had been created, such > > > > > that RELNOTES is really a list of pending items. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Having it in the commit message just doesn't work, and this > > > > > > > > is one > > > > of ma > > > > > > > > > > ny > > > > > > > > > > > > > > > > > > > > > > > > > > > > > reasons: Cy forgot. Other times I'll do something and it's > > > > > > > > only a > > > > month > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > later I realize it needs to be in the release notes after > > > > > > > > some > > > > issue has > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > come up.... Other times I put relnotes: yes in only to > > > > > > > > realize > > > > that's my > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > vanity talking, and nobody else cares. > > > > > I agree, what we have now works poorly. > > > > Forgetting, yes, but also a hmmm moment. > > > > > > > > Initially my thinking was a file in doc/. Or maybe something like > > > > the > > > > vuxml port where we fill in the blanks and make validate to make > > > > sure > > > > all the i's are dotted and t's crossed. It's a little extra work > > > > for > > > > committers but would help re@ immensely, and get the details in > > > > from > > > > the get-go. > > > > > > > > > > My thought was a low friction,??proximate way to do a ticker of > important > > > changes. Doc repo is too hard. Too much friction. A simple extra file > puts > > > it all in one, easy to find and edit place... it can cause other > things to > > > happen, further away. But it needs to be close by. > > > > > > > I agree that a RELNOTES file as plain ascii text will be the easiest > > thing for src committers to work with, and being easy will definitely > > improve the odds of being updated. > > > > We have empirical data on src committers updating an xml file in the > > docs repo, based on documenting version number bumps, and it all too > > often doesn't happen, I think laregely because it's a big hassle and > > it's out of sight in another repo. > > On this position I agree fully with Warner and Ian, simple and easy > is very important here, and IMHO this RELNOTES file is a simple fix > for the missing RelNotes: yes issue. It also allows the committer > to actually say more than just "yes". > > Also note I do not think we would be requireing more than a simple > "this should be mentioned in release notes", defanitly are not asking > for publication ready notes, though those would be gladly accepted! > > Can I ask that the community now allows the RE@ team to discuss > this internally and come back with a proposal? Feel free to continue > discussing on this thread, I'll try to incorporate any items brought > up into our discussion. > I proposed a simple thing to make it easier to cope with oopses and other times developers want to help out. Having two methods to do this seems wrong to me, but if there's a reasonable workflow that has them in it that keeps the release note load current, I'd defer to that. Please include in your discussions who does what when with them after the developer tags a release note worthy item, and how the different worker bees know that an item has been dealt with (this piece is why I think Relnotes: yes in commits is doomed to fail: we'd need a parallel structure to track the ones that have been written up, while a single text file with the protocol developers add, doc/re removes when the release notes are moved into marked-up form seems to doom any tagging directly in the SVN commit log). Let's get SOMETHING where developers habitually tag things contemporaneously (or nearly so), then once we have the worry about ways to make it easier. It's all about reducing friction and producing better result (the project producing good release notes) than having some policy that's ideologically pure, but that doesn't fit our needs. Warner From owner-svn-src-head@freebsd.org Mon Dec 10 19:39:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 598ED13314CB; Mon, 10 Dec 2018 19:39:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F19836B9A9; Mon, 10 Dec 2018 19:39:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D215924436; Mon, 10 Dec 2018 19:39:24 +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 wBAJdOU1016039; Mon, 10 Dec 2018 19:39:24 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBAJdOnm016038; Mon, 10 Dec 2018 19:39:24 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201812101939.wBAJdOnm016038@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 10 Dec 2018 19:39:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341800 - in head: sys/kern tests/sys/kern X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head: sys/kern tests/sys/kern X-SVN-Commit-Revision: 341800 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F19836B9A9 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 19:39:25 -0000 Author: jhb Date: Mon Dec 10 19:39:24 2018 New Revision: 341800 URL: https://svnweb.freebsd.org/changeset/base/341800 Log: Don't report stale signal information for non-signal events in ptrace_lwpinfo. Once a signal's siginfo was copied to 'td_si' as part of the signal exchange in issignal(), it was never cleared. This caused future thread events that are reported as SIGTRAP events without signal information to report the stale siginfo in 'td_si'. For example, if a debugger created a new process and used SIGSTOP to stop it after PT_ATTACH, future system call entry / exit events would set PL_FLAG_SI with the SIGSTOP siginfo in pl_siginfo. This broke 'catch syscall' in current versions of gdb as it assumed PL_FLAG_SI with SIGTRAP indicates a breakpoint or single step trap. Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18487 Modified: head/sys/kern/kern_sig.c head/tests/sys/kern/ptrace_test.c Modified: head/sys/kern/kern_sig.c ============================================================================== --- head/sys/kern/kern_sig.c Mon Dec 10 16:23:11 2018 (r341799) +++ head/sys/kern/kern_sig.c Mon Dec 10 19:39:24 2018 (r341800) @@ -2847,6 +2847,8 @@ issignal(struct thread *td) sig = ptracestop(td, sig, &ksi); mtx_lock(&ps->ps_mtx); + td->td_si.si_signo = 0; + /* * Keep looking if the debugger discarded or * replaced the signal. Modified: head/tests/sys/kern/ptrace_test.c ============================================================================== --- head/tests/sys/kern/ptrace_test.c Mon Dec 10 16:23:11 2018 (r341799) +++ head/tests/sys/kern/ptrace_test.c Mon Dec 10 19:39:24 2018 (r341800) @@ -3772,6 +3772,78 @@ ATF_TC_BODY(ptrace__PT_CONTINUE_different_thread, tc) } #endif +/* + * Verify that PT_LWPINFO doesn't return stale siginfo. + */ +ATF_TC_WITHOUT_HEAD(ptrace__PT_LWPINFO_stale_siginfo); +ATF_TC_BODY(ptrace__PT_LWPINFO_stale_siginfo, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; + int events, status; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + raise(SIGABRT); + exit(1); + } + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The next stop should report the SIGABRT in the child body. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGABRT); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SI); + ATF_REQUIRE(pl.pl_siginfo.si_signo == SIGABRT); + + /* + * Continue the process ignoring the signal, but enabling + * syscall traps. + */ + ATF_REQUIRE(ptrace(PT_SYSCALL, fpid, (caddr_t)1, 0) == 0); + + /* + * The next stop should report a system call entry from + * exit(). PL_FLAGS_SI should not be set. + */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_flags & PL_FLAG_SCE); + ATF_REQUIRE((pl.pl_flags & PL_FLAG_SI) == 0); + + /* Disable syscall tracing and continue the child to let it exit. */ + ATF_REQUIRE(ptrace(PT_GET_EVENT_MASK, fpid, (caddr_t)&events, + sizeof(events)) == 0); + events &= ~PTRACE_SYSCALL; + ATF_REQUIRE(ptrace(PT_SET_EVENT_MASK, fpid, (caddr_t)&events, + sizeof(events)) == 0); + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The last event should be for the child process's exit. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + ATF_TP_ADD_TCS(tp) { @@ -3831,6 +3903,7 @@ ATF_TP_ADD_TCS(tp) #if defined(HAVE_BREAKPOINT) && defined(SKIP_BREAK) ATF_TP_ADD_TC(tp, ptrace__PT_CONTINUE_different_thread); #endif + ATF_TP_ADD_TC(tp, ptrace__PT_LWPINFO_stale_siginfo); return (atf_no_error()); } From owner-svn-src-head@freebsd.org Mon Dec 10 21:33:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 229EC1334228; Mon, 10 Dec 2018 21:33:02 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BD9C06FD39; Mon, 10 Dec 2018 21:33:01 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 84AB225846; Mon, 10 Dec 2018 21:33:01 +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 wBALX1jx079353; Mon, 10 Dec 2018 21:33:01 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBALX1So079352; Mon, 10 Dec 2018 21:33:01 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201812102133.wBALX1So079352@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Mon, 10 Dec 2018 21:33:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341801 - head/sys/mips/conf X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/mips/conf X-SVN-Commit-Revision: 341801 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BD9C06FD39 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 21:33:02 -0000 Author: imp Date: Mon Dec 10 21:33:01 2018 New Revision: 341801 URL: https://svnweb.freebsd.org/changeset/base/341801 Log: Remove stray hints files. Deleted: head/sys/mips/conf/ADM5120.hints head/sys/mips/conf/IDT.hints From owner-svn-src-head@freebsd.org Mon Dec 10 21:47:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FFF91334980; Mon, 10 Dec 2018 21:47:20 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AFA46706BD; Mon, 10 Dec 2018 21:47:19 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 90BC8259FB; Mon, 10 Dec 2018 21:47:19 +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 wBALlJPw085284; Mon, 10 Dec 2018 21:47:19 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBALlJHg085283; Mon, 10 Dec 2018 21:47:19 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201812102147.wBALlJHg085283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 10 Dec 2018 21:47:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341802 - head/usr.bin/truss X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/usr.bin/truss X-SVN-Commit-Revision: 341802 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AFA46706BD X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.969,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 21:47:20 -0000 Author: jhb Date: Mon Dec 10 21:47:19 2018 New Revision: 341802 URL: https://svnweb.freebsd.org/changeset/base/341802 Log: Validate the string size parameter passed to -s. Use strtonum() to reject negative sizes instead of core dumping. PR: 232206 Submitted by: David Carlier MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D17537 Modified: head/usr.bin/truss/main.c Modified: head/usr.bin/truss/main.c ============================================================================== --- head/usr.bin/truss/main.c Mon Dec 10 21:33:01 2018 (r341801) +++ head/usr.bin/truss/main.c Mon Dec 10 21:47:19 2018 (r341802) @@ -71,6 +71,7 @@ main(int ac, char **av) struct trussinfo *trussinfo; char *fname; char **command; + const char *errstr; pid_t pid; int c; @@ -118,7 +119,9 @@ main(int ac, char **av) fname = optarg; break; case 's': /* Specified string size */ - trussinfo->strsize = atoi(optarg); + trussinfo->strsize = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr) + errx(1, "maximum string size is %s: %s", errstr, optarg); break; case 'S': /* Don't trace signals */ trussinfo->flags |= NOSIGS; From owner-svn-src-head@freebsd.org Mon Dec 10 22:15:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6672A13352DE; Mon, 10 Dec 2018 22:15:23 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mail.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 E1A0471625; Mon, 10 Dec 2018 22:15:22 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-2.local (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id 1B2CC10B754; Mon, 10 Dec 2018 17:15:21 -0500 (EST) Subject: Re: svn commit: r341682 - head/sys/sys To: Warner Losh , Kevin Bowling References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> Cc: Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= xsDiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg80eSm9obiBCYWxk d2luIDxqb2huQGJhbGR3aW4uY3g+wmMEExECACMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX gAUCRND5wwIZAQAKCRBy3lIGd+N/BNLXAJ9KIb6teuDL1W+FkCgvv+y8PxKTkACeIUfbn3sl cueBzqTcf09idwa8YTbOwU0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Ds gnr31AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh +GojXlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cM SOrHYUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOF QVHOEVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq 1tqzhltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZ TwtXsNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m 7Z164yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioI AjjHaIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbU KWwxQ4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjH uW/CSQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZN wwCfafMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> Date: Mon, 10 Dec 2018 14:15:20 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Mon, 10 Dec 2018 17:15:21 -0500 (EST) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-Rspamd-Queue-Id: E1A0471625 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 22:15:23 -0000 On 12/8/18 7:43 PM, Warner Losh wrote: > > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling wrote: > > On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > wrote: > > > > > Fully satisfying solution would be that all architectures get 64-bit > > ops, even if in the worst case they end up taking a lock. Then > > subsystems would not have to ifdef on anything. However, there > > was some opposition to this proposal and I don't think this is > > important enough to push. > > Mateusz, > > Who is opposing this particular polyfill solution?  Scott Long brought > up a situation in driver development where this would be useful as > well.  The polyfills lower the cognitive load and #ifdef soup which > are the right call here regardless of performance on toy ports. > > > I don't recall seeing the opposition either. It would have to be a global lock for all 64bit atomics.... but I think it would only be 2 atomics on those architectures. It would have to be a spin lock, so in the case of unrl you would be trading an operation on one of N regular mutexes for a single spin lock that was also contested by other things. This would be pretty crappy. For drivers that aren't actually used on platforms without 32-bit atomics we can simply not build them in sys/modules/Makefile or not put them in GENERIC. For something in the core kernel like unrl I think we will have to do what Mateusz has done here. -- John Baldwin                                                                              From owner-svn-src-head@freebsd.org Mon Dec 10 23:48:06 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C07E51336A43; Mon, 10 Dec 2018 23:48:06 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C4CEC74101; Mon, 10 Dec 2018 23:48:05 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id wBANlsvg071368 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 11 Dec 2018 01:47:57 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua wBANlsvg071368 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id wBANlsrX071367; Tue, 11 Dec 2018 01:47:54 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 11 Dec 2018 01:47:54 +0200 From: Konstantin Belousov To: John Baldwin Cc: Warner Losh , Kevin Bowling , Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Subject: Re: svn commit: r341682 - head/sys/sys Message-ID: <20181210234754.GD60291@kib.kiev.ua> References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> User-Agent: Mutt/1.11.1 (2018-12-01) X-Spam-Status: No, score=0.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM,FREEMAIL_REPLY, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: C4CEC74101 X-Spamd-Result: default: False [-4.92 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.78)[-0.781,0]; RCPT_COUNT_SEVEN(0.00)[9]; IP_SCORE(-2.13)[ip: (-2.65), ipnet: 2001:470::/32(-4.48), asn: 6939(-3.42), country: US(-0.09)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; RCVD_TLS_LAST(0.00)[]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 23:48:07 -0000 On Mon, Dec 10, 2018 at 02:15:20PM -0800, John Baldwin wrote: > On 12/8/18 7:43 PM, Warner Losh wrote: > > > > > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling wrote: > > > > On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > wrote: > > > > > > > > Fully satisfying solution would be that all architectures get 64-bit > > > ops, even if in the worst case they end up taking a lock. Then > > > subsystems would not have to ifdef on anything. However, there > > > was some opposition to this proposal and I don't think this is > > > important enough to push. > > > > Mateusz, > > > > Who is opposing this particular polyfill solution?  Scott Long brought > > up a situation in driver development where this would be useful as > > well.  The polyfills lower the cognitive load and #ifdef soup which > > are the right call here regardless of performance on toy ports. > > > > > > I don't recall seeing the opposition either. It would have to be a global lock for all 64bit atomics.... but I think it would only be 2 atomics on those architectures. > > It would have to be a spin lock, so in the case of unrl you would be trading > an operation on one of N regular mutexes for a single spin lock that was > also contested by other things. This would be pretty crappy. For drivers > that aren't actually used on platforms without 32-bit atomics we can simply > not build them in sys/modules/Makefile or not put them in GENERIC. For > something in the core kernel like unrl I think we will have to do what > Mateusz has done here. It is worse. All atomics that acess the same location must use the same lock. Otherwise, you could observe torn writes and out of thin air values. Since you cannot know in advance which locations are acceses by the locked variant, all freebsd atomics ops have to be switched to locked variant on the architecture. From owner-svn-src-head@freebsd.org Mon Dec 10 23:57:19 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B7D61336ECE for ; Mon, 10 Dec 2018 23:57:19 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound3d.ore.mailhop.org (outbound3d.ore.mailhop.org [54.186.57.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 4C87274799 for ; Mon, 10 Dec 2018 23:57:18 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1544486216; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=FMO3ce245ndXUueL0rdDBGQyBCnhZ3h9PjUfz+QdGddsFgmWwKAaDD/e0NDxNfvmh5nqcZJeR9oM3 xbBn0ceI8NH3254Beypg91MSvtARlCDhemoXnvoYHOXLH81+Fn/v7bTB7pTyl/FsxM9xDSGcGh3/3+ SwcLz4M78QMsCKZVfst1x7daJEETFZ+ExCljelsH02MvV4nPPsYumkdWrWCf32ugVQwkMiPK8wb9CY Cq0qwyCk8RNcIP6Q8tTWtVa8SUqjdWprud8Xa2ItwDJJ0kqwt9z4Wa6oNi2mZKvWYPGtyiAzVilwKo UgGCnfamC3a83n7wRZytg6snpzzXcvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=A2KBRWeNKlGo6BKsf/U4OL1ixl56MVn0A+CyT2Qcjn8=; b=mykP0CuNBqvYAuEkQMD2fzVHdG1gKOM0xCicpWxDs+1CeYmSujd3jfX73rKyoZxQx1jZEQ3/ZtJHb Iz/hbhJiXGv0XJwQ5EeUw+UG6FfI8ExZUzzqnb+xmu0S2H9FLaHuziOVlZGYxpCXgrGEfs0K5g30D4 kcKv3QTNRfjTF+cXRmE/Rmr8Lw4VipJsy98FQtIzO9sVNjRLEbUYbjbB+OsDR17GBnfX4DJVd/fWJW +IuITYrGVjNMSUHVyt+Ikq/3f1i0WvZ0owZx7JyJjwkA5v+WrWAXYp1cVjdymczbw06AfC1E2Ik+2j wSx90wpu6115AmXYupigiwC8yA+Lm1w== ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=A2KBRWeNKlGo6BKsf/U4OL1ixl56MVn0A+CyT2Qcjn8=; b=PQJ45U5TEn4XbJODoPcBpf8rZoCqUbM0GS8Od6FSrBPR0b3t/oWCQ7nxohTy4TK+XlLwrnp/tnNuP mps11qRjFvAWZ2MUApAwvM5taP62tqSNdTlWFdlcBjSE7ioh1+atVvnm3o8/vuiC96WMT9t3mjY4Yp MDYO8NQp8vxZs4w2LYrYPz8lLPf+6qUy5fKHrnsXnbnSW72V5TEZGNVbqZLdna9qwP3yE1jBl8hrTQ sh8scH5/sWxDvc91HsmIKuVMwjf69B5SyYS1JbIYZip+mavoVb5j/w+1TQPVIo94vBOUKJXvMs0tO+ oqO4uyBaeXfxpNpQ6DsNSGgEzaxuW8g== X-MHO-RoutePath: aGlwcGll X-MHO-User: 44bae117-fcd7-11e8-a59a-7b143e15dabc X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id 44bae117-fcd7-11e8-a59a-7b143e15dabc; Mon, 10 Dec 2018 23:56:54 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id wBANvDEK073321; Mon, 10 Dec 2018 16:57:13 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1544486233.1860.343.camel@freebsd.org> Subject: Re: svn commit: r341682 - head/sys/sys From: Ian Lepore To: John Baldwin , Warner Losh , Kevin Bowling Cc: Mateusz Guzik , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Date: Mon, 10 Dec 2018 16:57:13 -0700 In-Reply-To: <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4C87274799 X-Spamd-Result: default: False [-2.99 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.99)[-0.988,0]; ASN(0.00)[asn:16509, ipnet:54.186.0.0/15, country:US]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2018 23:57:19 -0000 On Mon, 2018-12-10 at 14:15 -0800, John Baldwin wrote: > On 12/8/18 7:43 PM, Warner Losh wrote: > > > > > > > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling > m wrote: > > > >     On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > m > wrote: > > > >     > > >     > Fully satisfying solution would be that all architectures get > > 64-bit > >     > ops, even if in the worst case they end up taking a lock. > > Then > >     > subsystems would not have to ifdef on anything. However, > > there > >     > was some opposition to this proposal and I don't think this > > is > >     > important enough to push. > > > >     Mateusz, > > > >     Who is opposing this particular polyfill solution?  Scott Long > > brought > >     up a situation in driver development where this would be useful > > as > >     well.  The polyfills lower the cognitive load and #ifdef soup > > which > >     are the right call here regardless of performance on toy ports. > > > > > > I don't recall seeing the opposition either. It would have to be a > > global lock for all 64bit atomics.... but I think it would only be > > 2 atomics on those architectures.  > It would have to be a spin lock, so in the case of unrl you would be > trading > an operation on one of N regular mutexes for a single spin lock that > was > also contested by other things.  This would be pretty crappy.  For > drivers > that aren't actually used on platforms without 32-bit atomics we can > simply > not build them in sys/modules/Makefile or not put them in > GENERIC.  For > something in the core kernel like unrl I think we will have to do > what > Mateusz has done here. > On a single-core system all you need to implement 64-bit atomics in the kernel is to disable interrupts around using normal load/store operations on the values. Do we have any platforms that are SMP but don't have hardware primitives for 64-bit atomics? -- Ian From owner-svn-src-head@freebsd.org Tue Dec 11 00:14:08 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B478C1337682 for ; Tue, 11 Dec 2018 00:14:08 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: from mail-it1-x144.google.com (mail-it1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9E7BE75301 for ; Tue, 11 Dec 2018 00:14:07 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: by mail-it1-x144.google.com with SMTP id g76so872487itg.2 for ; Mon, 10 Dec 2018 16:14:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kev009.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wb0RP5ZsF2sDXJ0YfirrjzHS7A44BgChCT5qwoJsveA=; b=DmVN5NauGZ+jvqQraokql6PWxSnfw+wABn65ffl6MjB8mBe8+zFmpBtTasaMl6VA23 MKiBqNSRlFdbA3vDQoNGqJap7TlmpG9sC8pUvmGrHxraW5VCoB1JRW/qeSEK+fhEjqJo s5uV80nm2VxNPfL+cZp0BFm6O0l2TTT5bJPvg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wb0RP5ZsF2sDXJ0YfirrjzHS7A44BgChCT5qwoJsveA=; b=Z+Oboxy4Ctg0uKQZriQ4SrCelp/5bXZbSKJzgg4OkIAA3IeD38bnLm9Ak0y1J5qwDN YNEF/jWPtkF+zm3eqj5u0xhf2bfxW6SkuTwYTGKcPfrHts3q2q6frhOG5FQqvaOdDnR4 0q7+Syo/+Mqb+lBijWusq1GmzABwgXyJMOnvKmSDGnIie81LnPCsmBjf984/a3wMA2yA oZTdhqELbR9L97zXhvI4MZlTcne6cTxXmOn91hzxykcW1KVN5v0lx8p80C7TJ+JYhtL7 SMmsecmTNYCud1u2W3XE+WQ8aDew6ajJ4kAR5KPEs8LHWhtoJo/RCUtnDJ4OX1XLfx5+ qoSw== X-Gm-Message-State: AA+aEWa4q2iVar6vgpm0ec9jYQtQ/x8S+g15WmBURjTF5dSwnxKS3Alh e1QsdjlEo0M1p+0221MO4gGP3EJfIvg4AKdZz9aSjw== X-Google-Smtp-Source: AFSGD/XGKZkwq7AB9MLWIJ7OpsScyZFhV1zdh3KI+gtCEKJfDeOXX12llskZ+NOreaoo52qkrajtQ3lNNPF8OGnRshE= X-Received: by 2002:a24:1152:: with SMTP id 79mr465294itf.167.1544487246869; Mon, 10 Dec 2018 16:14:06 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <1544486233.1860.343.camel@freebsd.org> In-Reply-To: <1544486233.1860.343.camel@freebsd.org> From: Kevin Bowling Date: Mon, 10 Dec 2018 17:13:55 -0700 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: ian@freebsd.org Cc: John Baldwin , Warner Losh , mjguzik@gmail.com, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 9E7BE75301 X-Spamd-Result: default: False [1.46 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_SPAM_SHORT(0.49)[0.494,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[kev009.com]; NEURAL_SPAM_MEDIUM(0.71)[0.712,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[kev009.com:~]; MX_GOOD(-0.01)[alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com]; RCVD_IN_DNSWL_NONE(0.00)[4.4.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCPT_COUNT_SEVEN(0.00)[8]; R_DKIM_PERMFAIL(0.00)[kev009.com]; NEURAL_SPAM_LONG(0.30)[0.302,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(0.26)[ip: (4.20), ipnet: 2607:f8b0::/32(-1.52), asn: 15169(-1.28), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 00:14:08 -0000 Right we are talking about a polyfill for systems that have 1-2 cores in practice. You're not going to crank high parallelism on these global locks in practice and the common lock may help performance due to cache residence for all we know. This is a lot of ballyhoo for a decision that should favor the reduction of complexity, clean KPIs, and overwhelming majority of machines that have 64b atomics, not scattering ifdefs in the code for niche performance. Regards, Kevin On Mon, Dec 10, 2018 at 4:57 PM Ian Lepore wrote: > > On Mon, 2018-12-10 at 14:15 -0800, John Baldwin wrote: > > On 12/8/18 7:43 PM, Warner Losh wrote: > > > > > > > > > > > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling > > m wrote: > > > > > > On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > > m > wrote: > > > > > > > > > > > Fully satisfying solution would be that all architectures get > > > 64-bit > > > > ops, even if in the worst case they end up taking a lock. > > > Then > > > > subsystems would not have to ifdef on anything. However, > > > there > > > > was some opposition to this proposal and I don't think this > > > is > > > > important enough to push. > > > > > > Mateusz, > > > > > > Who is opposing this particular polyfill solution? Scott Long > > > brought > > > up a situation in driver development where this would be useful > > > as > > > well. The polyfills lower the cognitive load and #ifdef soup > > > which > > > are the right call here regardless of performance on toy ports. > > > > > > > > > I don't recall seeing the opposition either. It would have to be a > > > global lock for all 64bit atomics.... but I think it would only be > > > 2 atomics on those architectures. > > It would have to be a spin lock, so in the case of unrl you would be > > trading > > an operation on one of N regular mutexes for a single spin lock that > > was > > also contested by other things. This would be pretty crappy. For > > drivers > > that aren't actually used on platforms without 32-bit atomics we can > > simply > > not build them in sys/modules/Makefile or not put them in > > GENERIC. For > > something in the core kernel like unrl I think we will have to do > > what > > Mateusz has done here. > > > > On a single-core system all you need to implement 64-bit atomics in the > kernel is to disable interrupts around using normal load/store > operations on the values. Do we have any platforms that are SMP but > don't have hardware primitives for 64-bit atomics? > > -- Ian From owner-svn-src-head@freebsd.org Tue Dec 11 00:27:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CED95130A262; Tue, 11 Dec 2018 00:27:10 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com [IPv6:2a00:1450:4864:20::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 07A6E76171; Tue, 11 Dec 2018 00:27:10 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-lj1-x232.google.com with SMTP id x85-v6so11385498ljb.2; Mon, 10 Dec 2018 16:27:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5RVQvlYek3anWZT3VhVLCbc/NTrPmPCDFQ4/2bWGbqk=; b=YkJRveHKWzX//juenbvzEJgPmCron7Z3i7GV30bV6bTibz98bxzgAC0DEHOe6f4xvD LZCvap7spjbI6VcizNz8ulqclxkkgWXscCZvMPLe7iOW3jkS/iiqsvfWvIiYdW3PcQNH BDuqRmZY3GQdqwQutbslOmKOV5DtjrNMWCSlJkO867VckFOvDe48JaQRRKHt3YRCZvxD j+jMwAsH3F9uIezD4UM73i4t6kB7bm9Yy9xsQgj2boaxUqgu8WBVUhCbEUh6z/UmOQon zQSI3HatvE/YUMjKLpjGGSTSf4tfVqqJOfoiE4XT2TRmXEzPdzchVfsPEpB4+jNxznr9 /ueg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5RVQvlYek3anWZT3VhVLCbc/NTrPmPCDFQ4/2bWGbqk=; b=BtZEG2BSg/nAS9KbuaPQEF50e1fUAKul44gJVUMlf/mZwcb2KvAVratefXa3t8sKax OeH2f90HFOYnUVzD+Nw/J/faBMPacrHthXaWIS8mcB2rJawwpGRuR3lCDtuXNk2fe4Ai US007l84eZCf9QHNZUG+teCscyMtXJ4psSpZr4wliURYi6pJ6zf5exI5vAJDt62ruCN3 KUX3ltxs+Rl4dBn+qSTlcFEnx5RmRZX6uYOUlmVAb9fkIylv9HYSb6drADQg/wbbYNXz XLlQgtiQXoI+SxLb+Pny8FFeVW7uO9vJwy5yXC14ZZ3ivy5LKBum+g8zNoCY8KmcToc7 Csiw== X-Gm-Message-State: AA+aEWZzcyLfXMjDGoG33mOeBoIjvXaDh431TgJfU0VWeZ8sAi7CZhUl 4VkTfPuW/FdtAVo6wT6CqVqZmh0MBXS0nPNxjv0r5Q== X-Google-Smtp-Source: AFSGD/VGq3s1+YoPo7tqOfGtQ1MMdW/XxOsGMLlFc8xUHfSOtIGRPC8SGYwR4kpqBJhaPOlIkOMZp6ZicljZwHeJnEc= X-Received: by 2002:a2e:7d15:: with SMTP id y21-v6mr7161857ljc.77.1544488028244; Mon, 10 Dec 2018 16:27:08 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <1544486233.1860.343.camel@freebsd.org> In-Reply-To: <1544486233.1860.343.camel@freebsd.org> From: Justin Hibbits Date: Mon, 10 Dec 2018 18:26:57 -0600 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: Ian Lepore Cc: John Baldwin , Warner Losh , Kevin Bowling , Mateusz Guzik , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org X-Rspamd-Queue-Id: 07A6E76171 X-Spamd-Result: default: False [-4.02 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.991,0]; R_DKIM_ALLOW(-0.20)[gmail.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(-0.57)[ipnet: 2a00:1450::/32(-1.47), asn: 15169(-1.27), country: US(-0.09)]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCPT_COUNT_SEVEN(0.00)[9]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; RCVD_IN_DNSWL_NONE(0.00)[2.3.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.46)[-0.455,0]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 00:27:11 -0000 On Mon, Dec 10, 2018, 17:57 Ian Lepore On Mon, 2018-12-10 at 14:15 -0800, John Baldwin wrote: > > On 12/8/18 7:43 PM, Warner Losh wrote: > > > > > > > > > > > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling > > m wrote: > > > > > > On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > > m > wrote: > > > > > > > > > > > Fully satisfying solution would be that all architectures get > > > 64-bit > > > > ops, even if in the worst case they end up taking a lock. > > > Then > > > > subsystems would not have to ifdef on anything. However, > > > there > > > > was some opposition to this proposal and I don't think this > > > is > > > > important enough to push. > > > > > > Mateusz, > > > > > > Who is opposing this particular polyfill solution? Scott Long > > > brought > > > up a situation in driver development where this would be useful > > > as > > > well. The polyfills lower the cognitive load and #ifdef soup > > > which > > > are the right call here regardless of performance on toy ports. > > > > > > > > > I don't recall seeing the opposition either. It would have to be a > > > global lock for all 64bit atomics.... but I think it would only be > > > 2 atomics on those architectures. > > It would have to be a spin lock, so in the case of unrl you would be > > trading > > an operation on one of N regular mutexes for a single spin lock that > > was > > also contested by other things. This would be pretty crappy. For > > drivers > > that aren't actually used on platforms without 32-bit atomics we can > > simply > > not build them in sys/modules/Makefile or not put them in > > GENERIC. For > > something in the core kernel like unrl I think we will have to do > > what > > Mateusz has done here. > > > > On a single-core system all you need to implement 64-bit atomics in the > kernel is to disable interrupts around using normal load/store > operations on the values. Do we have any platforms that are SMP but > don't have hardware primitives for 64-bit atomics? > > -- Ian > There were some dual processor G4 machines. I have one. It doesn't have 64 bit atomics. - Justin > From owner-svn-src-head@freebsd.org Tue Dec 11 00:55:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CAD94130B21F for ; Tue, 11 Dec 2018 00:55:16 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0722177566 for ; Tue, 11 Dec 2018 00:55:16 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x734.google.com with SMTP id d19so7682486qkg.5 for ; Mon, 10 Dec 2018 16:55:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Z5GhONhV94FT63PmsOX4BMTG6qfiDfYxKLXvRQzNy2U=; b=yTluxTzEt/uloPOPV4Iw0Kvz6E4c2ZOIJCV63yGSdXcwUzrg8BdA0z9gElChHE3gp0 2YWOKJB4euE4qYP58YeryNTkzksLjxDqarshzDfbfNGNuqQohzE5ojSd6v2e/JkDkg+D sYl/ZPI3otcEHNc3/7+mkBqnY8QazKHL+wpos0poWWZ89er5X1DFg62Ojllk4W29UWtm vEXZZWZVg9MfFtCVLytEiz7NF/S6aCG6LZHVSUj6klVECeihn1meh8IaVBMRzXgm5jkv mFEvNVilRPV40hyRSg6nbmywSYigf12bn98U2RxQ18Yn5VDr8ULkCubgeizrTMXUp/Wc aObw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Z5GhONhV94FT63PmsOX4BMTG6qfiDfYxKLXvRQzNy2U=; b=IPTEqERumwzCdW1eeuDokWhj3YhYOHH2g0t2otO5yqEQSsJj+JlYmKXeTv6a8h4C/3 uqGgedvsIt2zDysI92G2q95KGlwMiM9SORjeC6/CU+Dy1wmljorqM1igyXSxPHx+apWI ZyfvMgucef9WXb/MJ+XtJH8CfMwnM/OCzm75P35Dnk9hfzaWOtB8DA3LTTwathTNx2sJ JKO8sqPK35sUBqT8lKtl/Mjicy91KUT36kIi1+V8S/dn15dc0QZgxW3ZT+h3Q22uRFa9 Cv4gnlEyVM3cielkXwGIlrlhNBz2vrZ50Pc4+N8bi38l+8qVYWQYrbiwIyNnXm9F3phu NfJg== X-Gm-Message-State: AA+aEWZTLwk3MRvzf11cO6nqIbTJZyr0zhkdNBbffeKYNjvDOFsys/ZD X9nE27covOzziprzPXh/Ut7Du3Lx8WqjaF4+hQJ+qg== X-Google-Smtp-Source: AFSGD/X26JGPQTSvbaemE9VlLpCtO98WUwnky4GKxUMDKzDxz73/ny3BPbljfD4qEfo4++Y9wxFnAnPHd3PmkXLrC8k= X-Received: by 2002:a37:6c05:: with SMTP id h5mr13028212qkc.175.1544489715378; Mon, 10 Dec 2018 16:55:15 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <1544486233.1860.343.camel@freebsd.org> In-Reply-To: From: Warner Losh Date: Mon, 10 Dec 2018 17:55:01 -0700 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: Justin Hibbits Cc: Ian Lepore , John Baldwin , Kevin Bowling , Mateusz Guzik , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org X-Rspamd-Queue-Id: 0722177566 X-Spamd-Result: default: False [-5.28 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.92)[-0.916,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: ALT1.aspmx.l.google.com]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCPT_COUNT_SEVEN(0.00)[9]; RCVD_IN_DNSWL_NONE(0.00)[4.3.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(-2.36)[ip: (-8.91), ipnet: 2607:f8b0::/32(-1.52), asn: 15169(-1.27), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 00:55:17 -0000 On Mon, Dec 10, 2018, 5:27 PM Justin Hibbits > > On Mon, Dec 10, 2018, 17:57 Ian Lepore >> On Mon, 2018-12-10 at 14:15 -0800, John Baldwin wrote: >> > On 12/8/18 7:43 PM, Warner Losh wrote: >> > > >> > > >> > > >> > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling > > > m wrote: >> > > >> > > On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > > > m > wrote: >> > > >> > > > >> > > > Fully satisfying solution would be that all architectures get >> > > 64-bit >> > > > ops, even if in the worst case they end up taking a lock. >> > > Then >> > > > subsystems would not have to ifdef on anything. However, >> > > there >> > > > was some opposition to this proposal and I don't think this >> > > is >> > > > important enough to push. >> > > >> > > Mateusz, >> > > >> > > Who is opposing this particular polyfill solution? Scott Long >> > > brought >> > > up a situation in driver development where this would be useful >> > > as >> > > well. The polyfills lower the cognitive load and #ifdef soup >> > > which >> > > are the right call here regardless of performance on toy ports. >> > > >> > > >> > > I don't recall seeing the opposition either. It would have to be a >> > > global lock for all 64bit atomics.... but I think it would only be >> > > 2 atomics on those architectures. >> > It would have to be a spin lock, so in the case of unrl you would be >> > trading >> > an operation on one of N regular mutexes for a single spin lock that >> > was >> > also contested by other things. This would be pretty crappy. For >> > drivers >> > that aren't actually used on platforms without 32-bit atomics we can >> > simply >> > not build them in sys/modules/Makefile or not put them in >> > GENERIC. For >> > something in the core kernel like unrl I think we will have to do >> > what >> > Mateusz has done here. >> > >> >> On a single-core system all you need to implement 64-bit atomics in the >> kernel is to disable interrupts around using normal load/store >> operations on the values. Do we have any platforms that are SMP but >> don't have hardware primitives for 64-bit atomics? >> >> -- Ian >> > > There were some dual processor G4 machines. I have one. It doesn't have > 64 bit atomics. > There is a 32 bit mips machine like this as well. For drivers it's not too bad, but for core functions in the MI part of the kernel, all known implementations super duper suck. Warner > From owner-svn-src-head@freebsd.org Tue Dec 11 00:58:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1058130B3F5 for ; Tue, 11 Dec 2018 00:58:23 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D34C877905 for ; Tue, 11 Dec 2018 00:58:22 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: by mail-io1-xd44.google.com with SMTP id o5so10393403iop.12 for ; Mon, 10 Dec 2018 16:58:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kev009.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=8RPg+MrYZVuBBbyFjwSZ9Y2OH8NP5U0j4CpG9ScyM7o=; b=iGQH1QJrAGY/W2W7VKkEO9C280MHu9k6MnX6Z1nJduvSWYCpSFEOEoPDUCZ8s0dEnV 7P+gOmdBHCyPEOLI/p919cHoy1cqZ9/jaFu47WHhyEPqFRh6f+y2TvbGv72pzfYw4jfb 51K6U2fzJeCCIrTxhNqHm7QL1fYith+5ujags= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8RPg+MrYZVuBBbyFjwSZ9Y2OH8NP5U0j4CpG9ScyM7o=; b=t5i3vSaBnvKJnh2lZT/OqC52mOqWTh9v7us5bDJ3kbT0SB6PKXUjC1xXu1cAZSVMJB ewrwiL2Abf6g+8c+XpqB1QmCEcsod+8dYePnAkBqNxlvF04EcPnpZxuBWZvCxHknJAOu pEAkbDZZ2G9smE3pTTQeObOGr2sKFOD4kKZ7ZGglAwaqCRFJ6Xxq5T2wv3YUNLITFaOr B4XFvR81x7Y0WOCsKRpQS8RrXJKw3lc/ijoFRfwa6IKdvM8NdKX2LB74wwe0QIAJbWsG cDUe+WnX6rIlSWtEQJ5IpI3uvvvoLFORqjgy2G9iINMxjA4uVZl6eFO1OT7DWzkc9WD+ p2LQ== X-Gm-Message-State: AA+aEWalWbt8teuzigHsxSUBFuq45+kRy2sfE6jbqxbBYegBMq4J8KSn QENai+TWpLfsQeHu9BS8ZtNsB4pWuDfusMMMiFzAPA== X-Google-Smtp-Source: AFSGD/WWC8UKjaEjmPZUq+bsxIEObABl3PF4lK/6IZ2gMwKzaa8vhtECpe/1bVF0sFFOVFoVjLQroLW1+5GI/4GjKDY= X-Received: by 2002:a5d:9654:: with SMTP id d20mr11691159ios.257.1544489902143; Mon, 10 Dec 2018 16:58:22 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <1544486233.1860.343.camel@freebsd.org> In-Reply-To: From: Kevin Bowling Date: Mon, 10 Dec 2018 17:58:10 -0700 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: Justin Hibbits Cc: ian@freebsd.org, John Baldwin , Warner Losh , mjguzik@gmail.com, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: D34C877905 X-Spamd-Result: default: False [0.35 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-0.31)[-0.310,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[kev009.com]; NEURAL_SPAM_MEDIUM(0.32)[0.325,0]; NEURAL_SPAM_SHORT(0.52)[0.520,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[kev009.com:~]; MX_GOOD(-0.01)[cached: alt1.aspmx.l.google.com]; RCPT_COUNT_SEVEN(0.00)[9]; RCVD_IN_DNSWL_NONE(0.00)[4.4.d.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_DKIM_PERMFAIL(0.00)[kev009.com]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(0.12)[ip: (3.49), ipnet: 2607:f8b0::/32(-1.52), asn: 15169(-1.27), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 00:58:23 -0000 Humor me with a kernel feature that will sue 64b atomics while both instruction streams are ping ponging on the hypothetical lock because this thread is getting pretty far out there.. On Mon, Dec 10, 2018 at 5:27 PM Justin Hibbits wrote: > > > > On Mon, Dec 10, 2018, 17:57 Ian Lepore > >> On Mon, 2018-12-10 at 14:15 -0800, John Baldwin wrote: >> > On 12/8/18 7:43 PM, Warner Losh wrote: >> > > >> > > >> > > >> > > On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling > > > m wrote: >> > > >> > > On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > > > m > wrote: >> > > >> > > > >> > > > Fully satisfying solution would be that all architectures get >> > > 64-bit >> > > > ops, even if in the worst case they end up taking a lock. >> > > Then >> > > > subsystems would not have to ifdef on anything. However, >> > > there >> > > > was some opposition to this proposal and I don't think this >> > > is >> > > > important enough to push. >> > > >> > > Mateusz, >> > > >> > > Who is opposing this particular polyfill solution? Scott Long >> > > brought >> > > up a situation in driver development where this would be useful >> > > as >> > > well. The polyfills lower the cognitive load and #ifdef soup >> > > which >> > > are the right call here regardless of performance on toy ports. >> > > >> > > >> > > I don't recall seeing the opposition either. It would have to be a >> > > global lock for all 64bit atomics.... but I think it would only be >> > > 2 atomics on those architectures. >> > It would have to be a spin lock, so in the case of unrl you would be >> > trading >> > an operation on one of N regular mutexes for a single spin lock that >> > was >> > also contested by other things. This would be pretty crappy. For >> > drivers >> > that aren't actually used on platforms without 32-bit atomics we can >> > simply >> > not build them in sys/modules/Makefile or not put them in >> > GENERIC. For >> > something in the core kernel like unrl I think we will have to do >> > what >> > Mateusz has done here. >> > >> >> On a single-core system all you need to implement 64-bit atomics in the >> kernel is to disable interrupts around using normal load/store >> operations on the values. Do we have any platforms that are SMP but >> don't have hardware primitives for 64-bit atomics? >> >> -- Ian > > > There were some dual processor G4 machines. I have one. It doesn't have 64 bit atomics. > > - Justin From owner-svn-src-head@freebsd.org Tue Dec 11 01:38:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5ABA130FC32; Tue, 11 Dec 2018 01:38:51 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5CDB17A88C; Tue, 11 Dec 2018 01:38:51 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3A791282AA; Tue, 11 Dec 2018 01:38:51 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBB1cpfE006661; Tue, 11 Dec 2018 01:38:51 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB1cp1p006660; Tue, 11 Dec 2018 01:38:51 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201812110138.wBB1cp1p006660@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Tue, 11 Dec 2018 01:38:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341803 - head/libexec/rc X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/libexec/rc X-SVN-Commit-Revision: 341803 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5CDB17A88C X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 01:38:51 -0000 Author: cem Date: Tue Dec 11 01:38:50 2018 New Revision: 341803 URL: https://svnweb.freebsd.org/changeset/base/341803 Log: rc.subr: Implement list_vars without using 'read' 'read' pessimistically read(2)s one byte at a time, which can be quite silly for large environments in slow emulators. In my boring user environment, truss shows that the number of read() syscalls to source rc.subr and invoke list_vars is reduced by something like 3400 to 60. ministat(1) shows a significant time difference of about -71% for my environment. Suggested by: jilles Discussed with: dteske, jhb, jilles Differential Revision: https://reviews.freebsd.org/D18481 Modified: head/libexec/rc/rc.subr Modified: head/libexec/rc/rc.subr ============================================================================== --- head/libexec/rc/rc.subr Mon Dec 10 21:47:19 2018 (r341802) +++ head/libexec/rc/rc.subr Tue Dec 11 01:38:50 2018 (r341803) @@ -58,17 +58,29 @@ JID=0 # --------- # list_vars pattern -# List vars matching pattern. +# List variables matching glob pattern. # list_vars() { - set | { while read LINE; do - var="${LINE%%=*}" - case "$var" in - "$LINE"|*[!a-zA-Z0-9_]*) continue ;; - $1) echo $var + # Localize 'set' option below. + local - + local IFS=$'\n' line varname + + # Disable path expansion in unquoted 'for' parameters below. + set -o noglob + + for line in $(set); do + varname="${line%%=*}" + + case "$varname" in + "$line"|*[!a-zA-Z0-9_]*) + continue + ;; + $1) + echo $varname + ;; esac - done; } + done } # set_rcvar [var] [defval] [desc] From owner-svn-src-head@freebsd.org Tue Dec 11 02:03:01 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AA2E1311304; Tue, 11 Dec 2018 02:03:01 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F18687BBB3; Tue, 11 Dec 2018 02:03: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D269528818; Tue, 11 Dec 2018 02:03: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 wBB230hB021828; Tue, 11 Dec 2018 02:03:00 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB230Mo021827; Tue, 11 Dec 2018 02:03:00 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812110203.wBB230Mo021827@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Tue, 11 Dec 2018 02:03:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341805 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 341805 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F18687BBB3 X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 02:03:01 -0000 Author: jhibbits Date: Tue Dec 11 02:03:00 2018 New Revision: 341805 URL: https://svnweb.freebsd.org/changeset/base/341805 Log: powerpc/booke: Don't get and use the load offset for TOC on APs The code was a near exact copy of the code in startup, but it doesn't need the complexity since the kernel is already relocated. With VM_MIN_KERNEL_ADDRESS as currently set to KERNBASE, this doesn't cause a problem, because it's a zero offset. However, when KERNBASE is changed to a physical load address, it then has a non-zero offset, and ends up with an invalid stack pointer, causing the AP to hang. Modified: head/sys/powerpc/booke/locore.S Modified: head/sys/powerpc/booke/locore.S ============================================================================== --- head/sys/powerpc/booke/locore.S Tue Dec 11 01:49:06 2018 (r341804) +++ head/sys/powerpc/booke/locore.S Tue Dec 11 02:03:00 2018 (r341805) @@ -549,14 +549,9 @@ bp_kernload: add %r2,%r1,%r2 mtspr SPR_SPRG8, %r2 - /* Get load offset */ - ld %r31,-0x8000(%r2) /* First TOC entry is TOC base */ - subf %r31,%r31,%r2 /* Subtract from real TOC base to get base */ - /* Set up the stack pointer */ ld %r1,TOC_REF(tmpstack)(%r2) addi %r1,%r1,TMPSTACKSZ-96 - add %r1,%r1,%r31 #else /* * Setup a temporary stack From owner-svn-src-head@freebsd.org Tue Dec 11 02:14:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB95A1311F3D; Tue, 11 Dec 2018 02:14:41 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5101B7C40C; Tue, 11 Dec 2018 02:14:41 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32CF428A13; Tue, 11 Dec 2018 02:14:41 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBB2EfvC027073; Tue, 11 Dec 2018 02:14:41 GMT (envelope-from dab@FreeBSD.org) Received: (from dab@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB2EeYl027070; Tue, 11 Dec 2018 02:14:40 GMT (envelope-from dab@FreeBSD.org) Message-Id: <201812110214.wBB2EeYl027070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dab set sender to dab@FreeBSD.org using -f From: David Bright Date: Tue, 11 Dec 2018 02:14:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341806 - head/share/vt/keymaps X-SVN-Group: head X-SVN-Commit-Author: dab X-SVN-Commit-Paths: head/share/vt/keymaps X-SVN-Commit-Revision: 341806 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5101B7C40C X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 02:14:41 -0000 Author: dab Date: Tue Dec 11 02:14:40 2018 New Revision: 341806 URL: https://svnweb.freebsd.org/changeset/base/341806 Log: Add uk.macbook.kbd keymap (vt) PR: 215185 Submitted by: James Wright Reported by: James Wright Reviewed by: emaste (earlier version) MFC after: 1 week Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D18395 Added: head/share/vt/keymaps/uk.macbook.kbd (contents, props changed) Modified: head/share/vt/keymaps/INDEX.keymaps head/share/vt/keymaps/Makefile Modified: head/share/vt/keymaps/INDEX.keymaps ============================================================================== --- head/share/vt/keymaps/INDEX.keymaps Tue Dec 11 02:03:00 2018 (r341805) +++ head/share/vt/keymaps/INDEX.keymaps Tue Dec 11 02:14:40 2018 (r341806) @@ -520,6 +520,12 @@ uk.dvorak.kbd:fr:Royaume Uni Dvorak uk.dvorak.kbd:pt:Reino Unido Dvorak uk.dvorak.kbd:es:Británico Dvorak +uk.macbook.kbd:en:United Kingdom Macbook +uk.macbook.kbd:de:Vereinigtes Königreich Macbook +uk.macbook.kbd:fr:Royaume Uni Macbook +uk.macbook.kbd:pt:Reino Unido Macbook +uk.macbook.kbd:es:Británico Macbook + us.kbd:en:United States of America us.kbd:de:US-amerikanisch us.kbd:fr:États Unis d'Amérique Modified: head/share/vt/keymaps/Makefile ============================================================================== --- head/share/vt/keymaps/Makefile Tue Dec 11 02:03:00 2018 (r341805) +++ head/share/vt/keymaps/Makefile Tue Dec 11 02:14:40 2018 (r341806) @@ -74,6 +74,7 @@ FILES= INDEX.keymaps \ uk.capsctrl.kbd \ uk.dvorak.kbd \ uk.kbd \ + uk.macbook.kbd \ us.acc.kbd \ us.ctrl.kbd \ us.dvorak.kbd \ Added: head/share/vt/keymaps/uk.macbook.kbd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/vt/keymaps/uk.macbook.kbd Tue Dec 11 02:14:40 2018 (r341806) @@ -0,0 +1,115 @@ +# $FreeBSD$ +# by James Wright +# alt +# scan cntrl alt alt cntrl lock +# code base shift cntrl shift alt shift cntrl shift state +# ------------------------------------------------------------------ + 000 nop nop nop nop nop nop nop nop O + 001 esc esc esc esc esc esc debug esc O + 002 '1' '!' nop nop '1' '!' nop nop O + 003 '2' '@' nul nul 0x20ac '@' nul nul O + 004 '3' 0xa3 nop nop '#' 0xa3 nop nop O + 005 '4' '$' nop nop '4' '$' nop nop O + 006 '5' '%' nop nop '5' '%' nop nop O + 007 '6' '^' rs rs '6' '^' rs rs O + 008 '7' '&' nop nop '7' '&' nop nop O + 009 '8' '*' nop nop '8' '*' nop nop O + 010 '9' '(' nop nop '9' '(' nop nop O + 011 '0' ')' nop nop '0' ')' nop nop O + 012 '-' '_' us us '-' '_' us us O + 013 '=' '+' nop nop '=' '+' nop nop O + 014 bs bs del del bs bs del del O + 015 ht btab nop nop ht btab nop nop O + 016 'q' 'Q' dc1 dc1 'q' 'Q' dc1 dc1 C + 017 'w' 'W' etb etb 'w' 'W' etb etb C + 018 'e' 'E' enq enq 'e' 'E' enq enq C + 019 'r' 'R' dc2 dc2 'r' 'R' dc2 dc2 C + 020 't' 'T' dc4 dc4 't' 'T' dc4 dc4 C + 021 'y' 'Y' em em 'y' 'Y' em em C + 022 'u' 'U' nak nak 'u' 'U' nak nak C + 023 'i' 'I' ht ht 'i' 'I' ht ht C + 024 'o' 'O' si si 'o' 'O' si si C + 025 'p' 'P' dle dle 'p' 'P' dle dle C + 026 '[' '{' esc esc '[' '{' esc esc O + 027 ']' '}' gs gs ']' '}' gs gs O + 028 cr cr nl nl cr cr nl nl O + 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O + 030 'a' 'A' soh soh 'a' 'A' soh soh C + 031 's' 'S' dc3 dc3 's' 'S' dc3 dc3 C + 032 'd' 'D' eot eot 'd' 'D' eot eot C + 033 'f' 'F' ack ack 'f' 'F' ack ack C + 034 'g' 'G' bel bel 'g' 'G' bel bel C + 035 'h' 'H' bs bs 'h' 'H' bs bs C + 036 'j' 'J' nl nl 'j' 'J' nl nl C + 037 'k' 'K' vt vt 'k' 'K' vt vt C + 038 'l' 'L' ff ff 'l' 'L' ff ff C + 039 ';' ':' nop nop ';' ':' nop nop O + 040 ''' '"' nop nop ''' '"' nop nop O + 041 0xa7 0xb1 nop nop 0xa7 0xb1 nop nop O + 042 lshift lshift lshift lshift lshift lshift lshift lshift O + 043 '\' '|' fs fs '\' '|' fs fs O + 044 'z' 'Z' sub sub 'z' 'Z' sub sub C + 045 'x' 'X' can can 'x' 'X' can can C + 046 'c' 'C' etx etx 'c' 'C' etx etx C + 047 'v' 'V' syn syn 'v' 'V' syn syn C + 048 'b' 'B' stx stx 'b' 'B' stx stx C + 049 'n' 'N' so so 'n' 'N' so so C + 050 'm' 'M' cr cr 'm' 'M' cr cr C + 051 ',' '<' nop nop ',' '<' nop nop O + 052 '.' '>' nop nop '.' '>' nop nop O + 053 '/' '?' nop nop '/' '?' nop nop O + 054 rshift rshift rshift rshift rshift rshift rshift rshift O + 055 '*' '*' '*' '*' '*' '*' '*' '*' O + 056 lalt lalt lalt lalt lalt lalt lalt lalt O + 057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O + 058 clock clock clock clock clock clock clock clock O + 059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O + 060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O + 061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O + 062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O + 063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O + 064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O + 065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O + 066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O + 067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O + 068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O + 069 nlock nlock nlock nlock nlock nlock nlock nlock O + 070 slock slock slock slock slock slock slock slock O + 071 fkey49 '7' '7' '7' '7' '7' '7' '7' N + 072 fkey50 '8' '8' '8' '8' '8' '8' '8' N + 073 fkey51 '9' '9' '9' '9' '9' '9' '9' N + 074 fkey52 '-' '-' '-' '-' '-' '-' '-' N + 075 fkey53 '4' '4' '4' '4' '4' '4' '4' N + 076 fkey54 '5' '5' '5' '5' '5' '5' '5' N + 077 fkey55 '6' '6' '6' '6' '6' '6' '6' N + 078 fkey56 '+' '+' '+' '+' '+' '+' '+' N + 079 fkey57 '1' '1' '1' '1' '1' '1' '1' N + 080 fkey58 '2' '2' '2' '2' '2' '2' '2' N + 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N + 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N + 083 del '.' '.' '.' '.' '.' boot boot N + 084 nop nop nop nop nop nop nop nop O + 085 nop nop nop nop nop nop nop nop O + 086 '`' '~' nop nop '`' '~' nop nop O + 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O + 088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O + 089 cr cr nl nl cr cr nl nl O + 090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O + 091 '/' '/' '/' '/' '/' '/' '/' '/' N + 092 nscr pscr debug debug nop nop nop nop O + 093 ralt ralt ralt ralt ralt ralt ralt ralt O + 094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O + 095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O + 096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O + 097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O + 098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O + 099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O + 100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O + 101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O + 102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O + 103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O + 104 slock saver slock saver susp nop susp nop O + 105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O + 106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O + 107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O + 108 nop nop nop nop nop nop nop nop O From owner-svn-src-head@freebsd.org Tue Dec 11 02:15:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26EB2131210E; Tue, 11 Dec 2018 02:15:57 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8EF417C61B; Tue, 11 Dec 2018 02:15:56 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 712EA28A2D; Tue, 11 Dec 2018 02:15:56 +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 wBB2Fu3C027186; Tue, 11 Dec 2018 02:15:56 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB2FuLP027185; Tue, 11 Dec 2018 02:15:56 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812110215.wBB2FuLP027185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 11 Dec 2018 02:15:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341807 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 341807 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8EF417C61B X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 02:15:57 -0000 Author: markj Date: Tue Dec 11 02:15:56 2018 New Revision: 341807 URL: https://svnweb.freebsd.org/changeset/base/341807 Log: Use inline tests for individual PTE bits in the RISC-V pmap. Inline tests for PTE_* bits are easy to read and don't really require a predicate function, and predicates which operate on a pt_entry_t are inconvenient when working with L1 and L2 page table entries. Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18461 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Dec 11 02:14:40 2018 (r341806) +++ head/sys/riscv/riscv/pmap.c Tue Dec 11 02:15:56 2018 (r341807) @@ -356,36 +356,6 @@ pmap_l3(pmap_t pmap, vm_offset_t va) return (pmap_l2_to_l3(l2, va)); } - -static __inline int -pmap_is_write(pt_entry_t entry) -{ - - return (entry & PTE_W); -} - -static __inline int -pmap_l3_valid(pt_entry_t l3) -{ - - return (l3 & PTE_V); -} - -static inline int -pmap_page_accessed(pt_entry_t pte) -{ - - return (pte & PTE_A); -} - -/* Checks if the page is dirty. */ -static inline int -pmap_page_dirty(pt_entry_t pte) -{ - - return (pte & PTE_D); -} - static __inline void pmap_resident_count_inc(pmap_t pmap, int count) { @@ -898,7 +868,7 @@ pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_ retry: l3p = pmap_l3(pmap, va); if (l3p != NULL && (l3 = pmap_load(l3p)) != 0) { - if ((pmap_is_write(l3)) || ((prot & VM_PROT_WRITE) == 0)) { + if ((l3 & PTE_W) != 0 || (prot & VM_PROT_WRITE) == 0) { phys = PTE_TO_PHYS(l3); if (vm_page_pa_tryrelock(pmap, phys, &pa)) goto retry; @@ -1777,7 +1747,7 @@ pmap_remove_l3(pmap_t pmap, pt_entry_t *l3, vm_offset_ if (old_l3 & PTE_SW_MANAGED) { phys = PTE_TO_PHYS(old_l3); m = PHYS_TO_VM_PAGE(phys); - if (pmap_page_dirty(old_l3)) + if ((old_l3 & PTE_D) != 0) vm_page_dirty(m); if (old_l3 & PTE_A) vm_page_aflag_set(m, PGA_REFERENCED); @@ -1935,7 +1905,7 @@ pmap_remove_all(vm_page_t m) /* * Update the vm_page_t clean and reference bits. */ - if (pmap_page_dirty(tl3)) + if ((tl3 & PTE_D) != 0) vm_page_dirty(m); pmap_unuse_l3(pmap, pv->pv_va, pmap_load(l2), &free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_next); @@ -1997,9 +1967,9 @@ pmap_protect(pmap_t pmap, vm_offset_t sva, vm_offset_t for (l3p = pmap_l2_to_l3(l2, sva); sva != va_next; l3p++, sva += L3_SIZE) { l3 = pmap_load(l3p); - if (pmap_l3_valid(l3)) { + if ((l3 & PTE_V) != 0) { entry = pmap_load(l3p); - entry &= ~(PTE_W); + entry &= ~PTE_W; pmap_load_store(l3p, entry); /* XXX: Use pmap_invalidate_range */ pmap_invalidate_page(pmap, sva); @@ -2186,7 +2156,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, v /* * Is the specified virtual address already mapped? */ - if (pmap_l3_valid(orig_l3)) { + if ((orig_l3 & PTE_V) != 0) { /* * Wiring change, just update stats. We don't worry about * wiring PT pages as they remain resident as long as there @@ -2217,10 +2187,9 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, v /* * No, might be a protection or wiring change. */ - if ((orig_l3 & PTE_SW_MANAGED) != 0) { - if (pmap_is_write(new_l3)) - vm_page_aflag_set(m, PGA_WRITEABLE); - } + if ((orig_l3 & PTE_SW_MANAGED) != 0 && + (new_l3 & PTE_W) != 0) + vm_page_aflag_set(m, PGA_WRITEABLE); goto validate; } @@ -2245,7 +2214,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, v * concurrent calls to pmap_page_test_mappings() and * pmap_ts_referenced(). */ - if (pmap_page_dirty(orig_l3)) + if ((orig_l3 & PTE_D) != 0) vm_page_dirty(om); if ((orig_l3 & PTE_A) != 0) vm_page_aflag_set(om, PGA_REFERENCED); @@ -2278,7 +2247,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, v CHANGE_PV_LIST_LOCK_TO_PHYS(&lock, pa); TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_next); m->md.pv_gen++; - if (pmap_is_write(new_l3)) + if ((new_l3 & PTE_W) != 0) vm_page_aflag_set(m, PGA_WRITEABLE); } @@ -2298,8 +2267,8 @@ validate: pmap_invalidate_page(pmap, va); KASSERT(PTE_TO_PHYS(orig_l3) == pa, ("pmap_enter: invalid update")); - if (pmap_page_dirty(orig_l3) && - (orig_l3 & PTE_SW_MANAGED) != 0) + if ((orig_l3 & (PTE_D | PTE_SW_MANAGED)) == + (PTE_D | PTE_SW_MANAGED)) vm_page_dirty(m); } else { pmap_load_store(l3, new_l3); @@ -2840,7 +2809,7 @@ pmap_remove_pages(pmap_t pmap) /* * Update the vm_page_t clean/reference bits. */ - if (pmap_page_dirty(tl3)) + if ((tl3 & PTE_D) != 0) vm_page_dirty(m); CHANGE_PV_LIST_LOCK_TO_VM_PAGE(&lock, m); @@ -3044,11 +3013,11 @@ retry_pv_loop: retry: oldl3 = pmap_load(l3); - if (pmap_is_write(oldl3)) { - newl3 = oldl3 & ~(PTE_W); + if ((oldl3 & PTE_W) != 0) { + newl3 = oldl3 & ~PTE_W; if (!atomic_cmpset_long(l3, oldl3, newl3)) goto retry; - /* TODO: use pmap_page_dirty(oldl3) ? */ + /* TODO: check for PTE_D? */ if ((oldl3 & PTE_A) != 0) vm_page_dirty(m); pmap_invalidate_page(pmap, pv->pv_va); @@ -3129,7 +3098,7 @@ retry: l3 = pmap_l2_to_l3(l2, pv->pv_va); old_l3 = pmap_load(l3); - if (pmap_page_dirty(old_l3)) + if ((old_l3 & PTE_D) != 0) vm_page_dirty(m); if ((old_l3 & PTE_A) != 0) { if (safe_to_clear_referenced(pmap, old_l3)) { @@ -3271,9 +3240,9 @@ retry: val = MINCORE_INCORE; } - if (pmap_page_dirty(tpte)) + if ((tpte & PTE_D) != 0) val |= MINCORE_MODIFIED | MINCORE_MODIFIED_OTHER; - if (pmap_page_accessed(tpte)) + if ((tpte & PTE_A) != 0) val |= MINCORE_REFERENCED | MINCORE_REFERENCED_OTHER; managed = (tpte & PTE_SW_MANAGED) == PTE_SW_MANAGED; } From owner-svn-src-head@freebsd.org Tue Dec 11 02:16:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A45C713121B4; Tue, 11 Dec 2018 02:16:28 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4B0807C777; Tue, 11 Dec 2018 02:16:28 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2C35D28A33; Tue, 11 Dec 2018 02:16:28 +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 wBB2GSmZ027259; Tue, 11 Dec 2018 02:16:28 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB2GSbD027258; Tue, 11 Dec 2018 02:16:28 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812110216.wBB2GSbD027258@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 11 Dec 2018 02:16:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341808 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 341808 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4B0807C777 X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 02:16:28 -0000 Author: markj Date: Tue Dec 11 02:16:27 2018 New Revision: 341808 URL: https://svnweb.freebsd.org/changeset/base/341808 Log: Remove an unused malloc(9) type. MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Tue Dec 11 02:15:56 2018 (r341807) +++ head/sys/riscv/riscv/pmap.c Tue Dec 11 02:16:27 2018 (r341808) @@ -213,8 +213,6 @@ __FBSDID("$FreeBSD$"); LIST_HEAD(pmaplist, pmap); static struct pmaplist allpmaps; -static MALLOC_DEFINE(M_VMPMAP, "pmap", "PMAP L1"); - struct pmap kernel_pmap_store; vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ From owner-svn-src-head@freebsd.org Tue Dec 11 02:48:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 66406131427A; Tue, 11 Dec 2018 02:48:50 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0C1547DCD1; Tue, 11 Dec 2018 02:48:50 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF6E828FC7; Tue, 11 Dec 2018 02:48:49 +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 wBB2mnir043032; Tue, 11 Dec 2018 02:48:49 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB2mnEL043030; Tue, 11 Dec 2018 02:48:49 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201812110248.wBB2mnEL043030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 11 Dec 2018 02:48:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341809 - in head: lib/libc/sys sys/kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head: lib/libc/sys sys/kern X-SVN-Commit-Revision: 341809 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0C1547DCD1 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.958,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 02:48:50 -0000 Author: kib Date: Tue Dec 11 02:48:49 2018 New Revision: 341809 URL: https://svnweb.freebsd.org/changeset/base/341809 Log: Remove special case handling for getfhat(fd, NULL, handle). There is no reason for it to behave differently from openat(fd, NULL). Also the handling did not worked because the substituted path was from the system address space, causing EFAULT. Submitted by: Jack Halford MFC after: 1 week Differential revision: https://reviews.freebsd.org/D18501 Modified: head/lib/libc/sys/getfh.2 head/sys/kern/vfs_syscalls.c Modified: head/lib/libc/sys/getfh.2 ============================================================================== --- head/lib/libc/sys/getfh.2 Tue Dec 11 02:16:27 2018 (r341808) +++ head/lib/libc/sys/getfh.2 Tue Dec 11 02:48:49 2018 (r341809) @@ -29,7 +29,7 @@ .\" @(#)getfh.2 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd December 7, 2018 +.Dd December 11, 2018 .Dt GETFH 2 .Os .Sh NAME @@ -76,12 +76,12 @@ and .Fn lgetfh except when the .Fa path -specifies a relative or NULL path, or the +specifies a relative path, or the .Dv AT_BENEATH flag is provided. For .Fn getfhat -and relative or NULL +and relative .Fa path , the status is retrieved from a file relative to the directory associated with the file descriptor Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Tue Dec 11 02:16:27 2018 (r341808) +++ head/sys/kern/vfs_syscalls.c Tue Dec 11 02:48:49 2018 (r341809) @@ -4196,8 +4196,8 @@ sys_getfhat(struct thread *td, struct getfhat_args *ua if ((uap->flags & ~(AT_SYMLINK_NOFOLLOW | AT_BENEATH)) != 0) return (EINVAL); - return (kern_getfhat(td, uap->flags, uap->fd, uap->path ? uap->path : ".", - UIO_USERSPACE, uap->fhp)); + return (kern_getfhat(td, uap->flags, uap->fd, uap->path, UIO_USERSPACE, + uap->fhp)); } static int From owner-svn-src-head@freebsd.org Tue Dec 11 02:54:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E36CF13147FA; Tue, 11 Dec 2018 02:54:37 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 834FA7E244; Tue, 11 Dec 2018 02:54:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4C95A29196; Tue, 11 Dec 2018 02:54:37 +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 wBB2sbDZ047793; Tue, 11 Dec 2018 02:54:37 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB2sa1P047791; Tue, 11 Dec 2018 02:54:36 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201812110254.wBB2sa1P047791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 11 Dec 2018 02:54:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341810 - in head/sys: kern x86/x86 X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: kern x86/x86 X-SVN-Commit-Revision: 341810 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 834FA7E244 X-Spamd-Result: default: False [-2.95 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.958,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 02:54:38 -0000 Author: kib Date: Tue Dec 11 02:54:36 2018 New Revision: 341810 URL: https://svnweb.freebsd.org/changeset/base/341810 Log: Free bootstacks after AP startup. Bootstacks are unused after APs executed sched_throw() in init_secondary_tail() and started executing on proper idle thread stack. Add sysinit that detects that the idle thread for each CPU was scheduled at least once, and free corresponding bootstack. Slight addition of the code (~200 bytes) is compensated by the saving, because even on typical small modern desktop CPU we leak 128K of memory otherwise (4 pages x 8 threads). Reviewed by: jhb MFC after: 1 week Differential revision: https://reviews.freebsd.org/D18486 Modified: head/sys/kern/kern_thread.c head/sys/x86/x86/mp_x86.c Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Tue Dec 11 02:48:49 2018 (r341809) +++ head/sys/kern/kern_thread.c Tue Dec 11 02:54:36 2018 (r341810) @@ -197,7 +197,7 @@ thread_ctor(void *mem, int size, void *arg, int flags) td = (struct thread *)mem; td->td_state = TDS_INACTIVE; - td->td_oncpu = NOCPU; + td->td_lastcpu = td->td_oncpu = NOCPU; td->td_tid = tid_alloc(); Modified: head/sys/x86/x86/mp_x86.c ============================================================================== --- head/sys/x86/x86/mp_x86.c Tue Dec 11 02:48:49 2018 (r341809) +++ head/sys/x86/x86/mp_x86.c Tue Dec 11 02:54:36 2018 (r341810) @@ -1071,9 +1071,23 @@ init_secondary_tail(void) /* NOTREACHED */ } -/******************************************************************* - * local functions and data - */ +static void +smp_after_idle_runnable(void *arg __unused) +{ + struct thread *idle_td; + int cpu; + + for (cpu = 1; cpu < mp_ncpus; cpu++) { + idle_td = pcpu_find(cpu)->pc_idlethread; + while (idle_td->td_lastcpu == NOCPU && + idle_td->td_oncpu == NOCPU) + cpu_spinwait(); + kmem_free((vm_offset_t)bootstacks[cpu], kstack_pages * + PAGE_SIZE); + } +} +SYSINIT(smp_after_idle_runnable, SI_SUB_SMP, SI_ORDER_ANY, + smp_after_idle_runnable, NULL); /* * We tell the I/O APIC code about all the CPUs we want to receive From owner-svn-src-head@freebsd.org Tue Dec 11 05:10:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7DB0131A4CE; Tue, 11 Dec 2018 05:10:23 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6CC7C83752; Tue, 11 Dec 2018 05:10:23 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4D89A2AD61; Tue, 11 Dec 2018 05:10:23 +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 wBB5AN9Y016033; Tue, 11 Dec 2018 05:10:23 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBB5ANTM016032; Tue, 11 Dec 2018 05:10:23 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201812110510.wBB5ANTM016032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 11 Dec 2018 05:10:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341811 - head/sys/dev/ahci X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sys/dev/ahci X-SVN-Commit-Revision: 341811 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6CC7C83752 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.973,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 05:10:24 -0000 Author: delphij Date: Tue Dec 11 05:10:22 2018 New Revision: 341811 URL: https://svnweb.freebsd.org/changeset/base/341811 Log: Remove questionable initialization for ICH8M, rely on BIOS to properly initialize the controller. According to the datasheet, the old code checks if port 2 (P2E, 0x4) was the only enabled port (except port 0, which was ignored by mask 0xfe), and issue a write to the PCS register to disable all but port 0, right before ahci_ctlr_reset. Some other operating systems would issue a port enable to all ports, but since the current code only does the special initialization for ICH8M, it entirely and rely on BIOS to do the right thing (the alternative would be https://reviews.freebsd.org/D18300?id=50922 , should we see reports that we really need to do it). Reviewed by: mav MFC after: 3 months Differential Revision: https://reviews.freebsd.org/D18300 Modified: head/sys/dev/ahci/ahci_pci.c Modified: head/sys/dev/ahci/ahci_pci.c ============================================================================== --- head/sys/dev/ahci/ahci_pci.c Tue Dec 11 02:54:36 2018 (r341810) +++ head/sys/dev/ahci/ahci_pci.c Tue Dec 11 05:10:22 2018 (r341811) @@ -358,10 +358,7 @@ static int ahci_pci_ctlr_reset(device_t dev) { - if (pci_read_config(dev, PCIR_DEVVENDOR, 4) == 0x28298086 && - (pci_read_config(dev, 0x92, 1) & 0xfe) == 0x04) - pci_write_config(dev, 0x92, 0x01, 1); - return ahci_ctlr_reset(dev); + return(ahci_ctlr_reset(dev)); } static int From owner-svn-src-head@freebsd.org Tue Dec 11 04:57:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45B411318C3E; Tue, 11 Dec 2018 04:57:14 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5FA098307F; Tue, 11 Dec 2018 04:57:12 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 7198E1247; Mon, 10 Dec 2018 23:57:10 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Mon, 10 Dec 2018 23:57:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsco.org; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm2; bh=R hwREypnUcOO9txwAgiZSMmQ7uxdRsFRrBlPfekG2DE=; b=E+EjLkTV7mJ0Va0Rw LQDhUrcGYPpoXHSzVJF+ljNm4EeJp0h/8YDzMtZIzVdcPTLGMxJsOzpNMXmymTNR X/wxw+/wGsgZKvqFH3KMAU88PoTfRFsI++Pzmt7E5i0zzzJqgCa+AN6iu35N91Qk EEM1x0OiYcCAQWmrUK+rr0Tl1GTstNPJyHmRDTJ0zrSgl3U1xmIg4EiPvMLI2ODd 0nu4CWS87b84QWPNoJg2b39u6bp+J5UioNfN6UF5VqiZlUuDBZwfzeKv1EO6R9H2 NAp9NigaZQfZotA6VuhHl89pLEJ8ox052aK1MVn1ty0IwtoWUltnkNQHMnsZ1U+7 EEk4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=RhwREypnUcOO9txwAgiZSMmQ7uxdRsFRrBlPfekG2 DE=; b=isST6UXiK9Qe0jEyj6fZokUfvZIm6mFR6RPx5oJUzDZPuo7rhiTrEbUAC CyXpt73Mg8OQ3Pj6XjmeDhCDATD4EsApEpHS6XLfw2tGFpx2vzMaqdu+ylHFWO5e ECtKYGZgnOzo7bFjco2bUaka3xjlg33OBIwQqywGbP051XOLQZsCGAgaF6JNS1TU xYdu4xUlXL9p8R8JPLRRrrxfvE6eewmy8SckVKKntboE3byzlVp74n2RPyqBSGWb NMan08nmzAzUUeOMmslvkjs9SsyNkXPvK+MOo7biRXx51Q5jLVnmMQ7xOoJvfI8n ZWfrGcFp/gGhVqBU10QJISCfM5eIA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtkedrudegiedgjeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpegtggfuhfgjff fgkfhfvffosehtqhhmtdhhtdejnecuhfhrohhmpefutghothhtucfnohhnghcuoehstgho thhtlhesshgrmhhstghordhorhhgqeenucfkphepkedrgeeirdekledrvddufeenucfrrg hrrghmpehmrghilhhfrhhomhepshgtohhtthhlsehsrghmshgtohdrohhrghenucevlhhu shhtvghrufhiiigvpedt X-ME-Proxy: Received: from [192.168.0.137] (unknown [8.46.89.213]) by mail.messagingengine.com (Postfix) with ESMTPA id B473D102EE; Mon, 10 Dec 2018 23:57:08 -0500 (EST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\)) Subject: Re: svn commit: r341682 - head/sys/sys From: Scott Long In-Reply-To: <20181210234754.GD60291@kib.kiev.ua> Date: Mon, 10 Dec 2018 21:57:08 -0700 Cc: John Baldwin , Warner Losh , Kevin Bowling , Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <20181210234754.GD60291@kib.kiev.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.3445.100.39) X-Rspamd-Queue-Id: 5FA098307F X-Spamd-Result: default: False [-6.44 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[samsco.org,messagingengine.com]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:64.147.123.25]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[samsco.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[samsco.org:+,messagingengine.com:+]; MX_GOOD(-0.01)[in2-smtp.messagingengine.com,in1-smtp.messagingengine.com,in2-smtp.messagingengine.com,in1-smtp.messagingengine.com,in2-smtp.messagingengine.com,in1-smtp.messagingengine.com,in2-smtp.messagingengine.com,in1-smtp.messagingengine.com,in2-smtp.messagingengine.com,in1-smtp.messagingengine.com,in2-smtp.messagingengine.com,in1-smtp.messagingengine.com]; RCPT_COUNT_SEVEN(0.00)[10]; NEURAL_HAM_SHORT(-0.86)[-0.862,0]; IP_SCORE(-3.47)[ip: (-8.97), ipnet: 64.147.123.0/24(-4.48), asn: 11403(-3.82), country: US(-0.09)]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_IN_DNSWL_LOW(-0.10)[25.123.147.64.list.dnswl.org : 127.0.5.1]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:11403, ipnet:64.147.123.0/24, country:US]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Server: mx1.freebsd.org X-Mailman-Approved-At: Tue, 11 Dec 2018 05:31:54 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 04:57:14 -0000 > On Dec 10, 2018, at 4:47 PM, Konstantin Belousov = wrote: >=20 > On Mon, Dec 10, 2018 at 02:15:20PM -0800, John Baldwin wrote: >> On 12/8/18 7:43 PM, Warner Losh wrote: >>>=20 >>>=20 >>> On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling wrote: >>>=20 >>> On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > wrote: >>>=20 >>>>=20 >>>> Fully satisfying solution would be that all architectures get = 64-bit >>>> ops, even if in the worst case they end up taking a lock. Then >>>> subsystems would not have to ifdef on anything. However, there >>>> was some opposition to this proposal and I don't think this is >>>> important enough to push. >>>=20 >>> Mateusz, >>>=20 >>> Who is opposing this particular polyfill solution? Scott Long = brought >>> up a situation in driver development where this would be useful = as >>> well. The polyfills lower the cognitive load and #ifdef soup = which >>> are the right call here regardless of performance on toy ports. >>>=20 >>>=20 >>> I don't recall seeing the opposition either. It would have to be a = global lock for all 64bit atomics.... but I think it would only be 2 = atomics on those architectures.=20 >>=20 >> It would have to be a spin lock, so in the case of unrl you would be = trading >> an operation on one of N regular mutexes for a single spin lock that = was >> also contested by other things. This would be pretty crappy. For = drivers >> that aren't actually used on platforms without 32-bit atomics we can = simply >> not build them in sys/modules/Makefile or not put them in GENERIC. = For >> something in the core kernel like unrl I think we will have to do = what >> Mateusz has done here. >=20 > It is worse. All atomics that acess the same location must use the = same > lock. Otherwise, you could observe torn writes and out of thin air > values. Since you cannot know in advance which locations are acceses > by the locked variant, all freebsd atomics ops have to be switched to > locked variant on the architecture. 64bit atomics on I486 already suffer the risk of torn reads; the = implementation merely does a CLI to protect against local preemption (though you could = still get unlucky with an NMI). I suppose you could argue that SMP isn=E2=80=99= t really viable on I486 and therefore this fact is irrelevant, but it does = illustrate precedence for having API completeness in a platform. Really, this isn=E2=80=99t that hard. Part of the existing contract of = using atomics is that you carefully evaluate all uses of the variable and decide when to = use an atomic instruction. Arguing that we can=E2=80=99t make this process = automatic and foolproof for 64bit quantities, especially for a subset of subset of platforms/architectures, and therefore we should be even more of a = difficult landmine, is not=E2=80=A6. I don=E2=80=99t know what to say=E2=80=A6 = sensical? 64bit operations are a reality for MI code in a modern OS, and I=E2=80=99m= tired of having to tip-toe around them due to incomplete MD implementations. The instructions have been available on Intel CPUs for 25 years! My very strong preference is to have a complete and functional = implementation of atomic.h for any architecture that is hooked up to the build. We can = then tackle the details of optimization and edge case refinement, just like = we do with every other API and service that we work on. It doesn=E2=80=99t = have to be perfect to be useful, and at this point we=E2=80=99re providing neither = perfection nor utility, just =E2=80=9Cbuts=E2=80=9D and =E2=80=9Cwhat ifs=E2=80=9D. Going forward, I=E2=80=99m going to start using 64bit atomics where = they=E2=80=99re prudent, instead of avoiding them due to this niche 32bit argument. If that = means more and more of what I do no longer compiles on a mips or a ppc32, then that=E2=80=99s a sacrifice that is fine with me. It still creates extra = development work, and having a uniformly available implementation would be much nicer. Scott From owner-svn-src-head@freebsd.org Tue Dec 11 11:13:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B1AF5132BD65; Tue, 11 Dec 2018 11:13:12 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 567728FFB8; Tue, 11 Dec 2018 11:13:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3642B2ECA9; Tue, 11 Dec 2018 11:13: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 wBBBDCi3007145; Tue, 11 Dec 2018 11:13:12 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBBDCE4007144; Tue, 11 Dec 2018 11:13:12 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201812111113.wBBBDCE4007144@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 11 Dec 2018 11:13:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341814 - head/sys/arm64/acpica X-SVN-Group: head X-SVN-Commit-Author: andrew X-SVN-Commit-Paths: head/sys/arm64/acpica X-SVN-Commit-Revision: 341814 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 567728FFB8 X-Spamd-Result: default: False [-2.97 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.971,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 11:13:12 -0000 Author: andrew Date: Tue Dec 11 11:13:11 2018 New Revision: 341814 URL: https://svnweb.freebsd.org/changeset/base/341814 Log: Only read the ACPI proximity tabled on arm64 when we are booting from ACPI. Sponsored by: DARPA, AFRL Modified: head/sys/arm64/acpica/acpi_machdep.c Modified: head/sys/arm64/acpica/acpi_machdep.c ============================================================================== --- head/sys/arm64/acpica/acpi_machdep.c Tue Dec 11 06:47:04 2018 (r341813) +++ head/sys/arm64/acpica/acpi_machdep.c Tue Dec 11 11:13:11 2018 (r341814) @@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include #include @@ -238,6 +240,10 @@ acpi_map_addr(struct acpi_generic_address *addr, bus_s static void parse_pxm_tables(void *dummy) { + + /* Only parse ACPI tables when booting via ACPI */ + if (arm64_bus_method != ARM64_BUS_ACPI) + return; acpi_pxm_init(MAXCPU, (vm_paddr_t)1 << 40); acpi_pxm_parse_tables(); From owner-svn-src-head@freebsd.org Tue Dec 11 08:20:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5E301325F73 for ; Tue, 11 Dec 2018 08:20:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x741.google.com (mail-qk1-x741.google.com [IPv6:2607:f8b0:4864:20::741]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9EBE58A5AC for ; Tue, 11 Dec 2018 08:20:09 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x741.google.com with SMTP id y78so8079939qka.12 for ; Tue, 11 Dec 2018 00:20:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kj0CstleGLFyxn1V5J0ew/D7SufRTwRvAIvkMCvwEJc=; b=mxtu0idnjyQF426QwtGclw1hHO3VFyrY60ONF3+CwkFNWv1CMlL6Wpm1vyK6d96j14 ou+7u3quXMM9VNaNflAIBDWlgxusIRfssprDJKyDAMoYb6cpZTBb3xgA7/NPrXR9XYPR 0f+0Mc7I14F4mVkmPVwUMzqdckZ0lr0DGyVCpOdyEFAhq+spmfF8mC596rwZzN0wwP2r HpwLDyF+v9yoyMPDZxCvn8eSnBNiKBiOQyELfZJpWPKH5YcTKDWnq6nFbRqRFSwAYRhd qhVw0Y4MDhfooENpOb3KRE7/veYnDePvB0S0F1oAhM6PopM/2MzmtLl7JkiZWMMY6cD5 CumA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kj0CstleGLFyxn1V5J0ew/D7SufRTwRvAIvkMCvwEJc=; b=fXL0kkXDPtZUbrVO534JIZjv5+P/qhYlbu6p5D4wPeq/QS9L2qH8fzL5z6Asrzb4Lz nkyScxSkfvn3vTmfy34srqkhihXMUvAYiz5s/M+XKOYq30t7hBRW/kIRnAG2B8+ZsT36 jfkwAEBZ6bR+nEVuUFEZtJmwIYN4PMAcTI8hQdIwl1GVkSEmOI1PWVwZqGuQ4flo1ubR z7oI7ZB9ndxH0P1U9GNnSBosNua0yWcAQNmXpoCdH7+Ss/bbbLhiYXskslNZDs/eKa+3 M48zFWT68iSPS29PoiNWXKAaMVRrLASVL+MimRALUlNiv3NngA6FEQ7RDl3ECvfJA/5Y YTHQ== X-Gm-Message-State: AA+aEWZ2MVnz3opDcKPRkR9QN5cnWyMSOcfuyOUaTojCgoPDjw7qPGYx y7FnWAJh8FhyclXDYexd3Lu8k8qD/g9NPjatp4dnZ0UV X-Google-Smtp-Source: AFSGD/V9ki6YsZT/uPRZrdUDNLNHoIDs97cVO8Swsug2wszmjNoBqPWfJLuH1tdrTInuQ9IrExGo2yzOzzNJnzBYvAo= X-Received: by 2002:a37:6e86:: with SMTP id j128mr14197936qkc.46.1544516408844; Tue, 11 Dec 2018 00:20:08 -0800 (PST) MIME-Version: 1.0 References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <20181210234754.GD60291@kib.kiev.ua> In-Reply-To: From: Warner Losh Date: Tue, 11 Dec 2018 01:19:57 -0700 Message-ID: Subject: Re: svn commit: r341682 - head/sys/sys To: Scott Long Cc: Konstantin Belousov , John Baldwin , Kevin Bowling , Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Scott Long X-Rspamd-Queue-Id: 9EBE58A5AC X-Spamd-Result: default: False [2.74 / 15.00]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; NEURAL_SPAM_SHORT(0.79)[0.793,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; NEURAL_SPAM_MEDIUM(0.85)[0.850,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[ALT1.aspmx.l.google.com,aspmx.l.google.com,ALT2.aspmx.l.google.com]; RCPT_COUNT_SEVEN(0.00)[10]; RCVD_IN_DNSWL_NONE(0.00)[1.4.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_SPAM_LONG(0.82)[0.819,0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_LAST(0.00)[]; IP_SCORE(0.29)[ip: (4.30), ipnet: 2607:f8b0::/32(-1.51), asn: 15169(-1.27), country: US(-0.09)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; FREEMAIL_CC(0.00)[gmail.com] X-Rspamd-Server: mx1.freebsd.org X-Mailman-Approved-At: Tue, 11 Dec 2018 11:48:12 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 08:20:11 -0000 On Mon, Dec 10, 2018 at 9:57 PM Scott Long wrote: > > > > On Dec 10, 2018, at 4:47 PM, Konstantin Belousov > wrote: > > > > On Mon, Dec 10, 2018 at 02:15:20PM -0800, John Baldwin wrote: > >> On 12/8/18 7:43 PM, Warner Losh wrote: > >>> > >>> > >>> On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling wrote: > >>> > >>> On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > wrote: > >>> > >>>> > >>>> Fully satisfying solution would be that all architectures get 64-bit > >>>> ops, even if in the worst case they end up taking a lock. Then > >>>> subsystems would not have to ifdef on anything. However, there > >>>> was some opposition to this proposal and I don't think this is > >>>> important enough to push. > >>> > >>> Mateusz, > >>> > >>> Who is opposing this particular polyfill solution? Scott Long > brought > >>> up a situation in driver development where this would be useful as > >>> well. The polyfills lower the cognitive load and #ifdef soup whic= h > >>> are the right call here regardless of performance on toy ports. > >>> > >>> > >>> I don't recall seeing the opposition either. It would have to be a > global lock for all 64bit atomics.... but I think it would only be 2 > atomics on those architectures. > >> > >> It would have to be a spin lock, so in the case of unrl you would be > trading > >> an operation on one of N regular mutexes for a single spin lock that w= as > >> also contested by other things. This would be pretty crappy. For > drivers > >> that aren't actually used on platforms without 32-bit atomics we can > simply > >> not build them in sys/modules/Makefile or not put them in GENERIC. Fo= r > >> something in the core kernel like unrl I think we will have to do what > >> Mateusz has done here. > > > > It is worse. All atomics that acess the same location must use the same > > lock. Otherwise, you could observe torn writes and out of thin air > > values. Since you cannot know in advance which locations are acceses > > by the locked variant, all freebsd atomics ops have to be switched to > > locked variant on the architecture. > > 64bit atomics on I486 already suffer the risk of torn reads; the > implementation > merely does a CLI to protect against local preemption (though you could > still > get unlucky with an NMI). I suppose you could argue that SMP isn=E2=80= =99t really > viable on I486 and therefore this fact is irrelevant, but it does > illustrate > precedence for having API completeness in a platform. > We haven't ever supported SMP on i486, to my knowledge. Certainly by the 5.x time frame with SMPng it wasn't there. The 64-bit ops that are there are mostly to smoothly support some of the (now older) embedded boards. I haven't looked at the SMP work smp did for 4.x, but IIRC, it wasn't even supported there. > Really, this isn=E2=80=99t that hard. Part of the existing contract of u= sing > atomics is > that you carefully evaluate all uses of the variable and decide when to u= se > an atomic instruction. Arguing that we can=E2=80=99t make this process a= utomatic > and foolproof for 64bit quantities, especially for a subset of subset of > platforms/architectures, and therefore we should be even more of a > difficult > landmine, is not=E2=80=A6. I don=E2=80=99t know what to say=E2=80=A6 sens= ical? > I think it's fine to say that 64-bit atomics need to be efficient on the supported platforms (more on that below). > 64bit operations are a reality for MI code in a modern OS, and I=E2=80=99= m tired of > having to tip-toe around them due to incomplete MD implementations. The > instructions have been available on Intel CPUs for 25 years! My > very strong preference is to have a complete and functional implementatio= n > of atomic.h for any architecture that is hooked up to the build. We can > then > tackle the details of optimization and edge case refinement, just like we > do > with every other API and service that we work on. It doesn=E2=80=99t hav= e to be > perfect to be useful, and at this point we=E2=80=99re providing neither p= erfection > nor > utility, just =E2=80=9Cbuts=E2=80=9D and =E2=80=9Cwhat ifs=E2=80=9D. > I think you miss the point of discussion, at least on my part. I'm looking at the MIPS side and asking the question whatever 32-bit SMP support we may have had in the past should die. We only ever supported it on one not-so-common board that's aged out of relevance (JZ4780 is the only one I found that needs 32-bit MIPS SMP, and it's a 4 year old embedded board that's not that relevant today and there's no successor products in the market or as far as I can tell planned). We also have kernels that run in 32-bit mode on 64-bit hardware, but those provide little value and w already transitioned our largest 64-bit mips platform away from that support, so we can deorbit as well, I think. They give little value to the project. some house keeping here is likely in order. If that just leaves an odd PPC thing, then I think it's perfectly fine to start conversations there as well about trimming that support with the powerpc guys. Going forward, I=E2=80=99m going to start using 64bit atomics where they=E2= =80=99re prudent, > instead of avoiding them due to this niche 32bit argument. If that means > more and more of what I do no longer compiles on a mips or a ppc32, then > that=E2=80=99s a sacrifice that is fine with me. It still creates extra > development work, > and having a uniformly available implementation would be much nicer. > To be clear, I'm not making the argument since I could dig up one place in mips land that uses it, we should hold things back. I think the cost / benefit ratio for mips at least is the same as we have for some of the older arm stuff: we can implement it by disabling interrupts and declaring by fiat we won't support what few SMP chips that might be out there on that platform. FreeBSD/arm decided years ago we would never support the armv4 and armv5 SMP designs that were in the market place, for example. I think it's fine that we do that today with at least the mips32 stuff. And if people want to keep the mips32 UP stuff going, it's with the same CLI ; do it; POPF trick we do on intel to keep i486 going. My argument is that we need to find all the places that this would hurt, and we should make a calm, dispassionate decision about that pain. So far, the pain brought up on the 'hard to support end' suggests a minor trimming of what we support is in order rather than a holding back of other gains that can be made. I do plan on making this argument in the thread that's going on in mips@ right now, and hope to have it all squared away by the end of the week what the plans will be. We need to take a look at the trailing edge more aggressively. I'm looking at super-old SCSI cards, PC Card, armv5 and a few others that we should trim in 13. We've already circulated these ideas, and apart from very specific objections met with general support. Maybe we should seriously look at adding i486 to the list, as well as taking a hard look at 32-bit platforms post 13 and planning for that transition starting today. Brooks also has in motion this on the older nic card side of things too, so we'll see a big trimming there in the coming months as well. One thing the project has been bad about has been collecting data on what's actually in use and using that to more aggressively drive deprecation and removal of old drivers and features from the system that are no longer relevant. So we get stuck in arguments of someone has it, might be using it and since there's not organized pushback that articulates the real cost this has to the project, we accumulate a lot of drivers whose only changes have been API changes (and we're not even sure those were done right). The 64-bit atomics friction and grumpiness is but one symptom of this larger, deeper problem. And unless we address that, these narrow issues that are easy to talk to death will continue to plague our forward progress. Warner From owner-svn-src-head@freebsd.org Tue Dec 11 11:40:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86977132CD80; Tue, 11 Dec 2018 11:40:49 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id B90076A8BA; Tue, 11 Dec 2018 11:40:48 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id 47B651484E; Tue, 11 Dec 2018 11:40:47 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.15.2/8.15.2) with ESMTPS id wBBBekuu066229 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 11 Dec 2018 11:40:46 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.15.2/8.15.2/Submit) id wBBBejm4066228; Tue, 11 Dec 2018 11:40:45 GMT (envelope-from phk) To: Warner Losh cc: Scott Long , Konstantin Belousov , John Baldwin , Kevin Bowling , Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , Scott Long Subject: Re: svn commit: r341682 - head/sys/sys In-reply-to: From: "Poul-Henning Kamp" References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <20181210234754.GD60291@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <66226.1544528445.1@critter.freebsd.dk> Content-Transfer-Encoding: quoted-printable Date: Tue, 11 Dec 2018 11:40:45 +0000 Message-ID: <66227.1544528445@critter.freebsd.dk> X-Rspamd-Queue-Id: B90076A8BA X-Spamd-Result: default: False [4.12 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.78)[0.784,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.dk]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.95)[0.945,0]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: phk.freebsd.dk]; NEURAL_SPAM_LONG(0.94)[0.937,0]; RCPT_COUNT_SEVEN(0.00)[11]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[phk@phk.freebsd.dk,phk@critter.freebsd.dk]; RCVD_NO_TLS_LAST(0.10)[]; R_DKIM_NA(0.00)[]; IP_SCORE(0.17)[asn: 1835(0.85), country: EU(-0.00)]; ASN(0.00)[asn:1835, ipnet:130.225.0.0/16, country:EU]; FROM_NEQ_ENVFROM(0.00)[phk@phk.freebsd.dk,phk@critter.freebsd.dk] X-Rspamd-Server: mx1.freebsd.org X-Mailman-Approved-At: Tue, 11 Dec 2018 11:55:37 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 11:40:49 -0000 -------- In message , Warner Losh writes: >We haven't ever supported SMP on i486, to my knowledge. There were never any usable i486 SMP hardware. The i486 CPU was not designed to do SMP so getting two CPUs to talk together (IPIs and all that) required a lot of glue-logic, which never got chip-ified. A few prototypes were built, but nothing ever reached production, least of all HP's 1000xi486 chip "mainfram" project. -- = Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe = Never attribute to malice what can adequately be explained by incompetence= . From owner-svn-src-head@freebsd.org Tue Dec 11 11:58:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE196132DA5E; Tue, 11 Dec 2018 11:58:45 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 95A236B4BA; Tue, 11 Dec 2018 11:58:45 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 769DC2F3E6; Tue, 11 Dec 2018 11:58:45 +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 wBBBwjsk027965; Tue, 11 Dec 2018 11:58:45 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBBwjIm027964; Tue, 11 Dec 2018 11:58:45 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812111158.wBBBwjIm027964@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 11 Dec 2018 11:58:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341817 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 341817 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 95A236B4BA X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 11:58:46 -0000 Author: mjg Date: Tue Dec 11 11:58:44 2018 New Revision: 341817 URL: https://svnweb.freebsd.org/changeset/base/341817 Log: fd: tidy up closing a fd - avoid a call to knote_close in the common case - annotate mqueue as unlikely Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_descrip.c Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Tue Dec 11 11:57:12 2018 (r341816) +++ head/sys/kern/kern_descrip.c Tue Dec 11 11:58:44 2018 (r341817) @@ -1186,12 +1186,13 @@ closefp(struct filedesc *fdp, int fd, struct file *fp, * knote_fdclose to prevent a race of the fd getting opened, a knote * added, and deleteing a knote for the new fd. */ - knote_fdclose(td, fd); + if (__predict_false(!TAILQ_EMPTY(&fdp->fd_kqlist))) + knote_fdclose(td, fd); /* * We need to notify mqueue if the object is of type mqueue. */ - if (fp->f_type == DTYPE_MQUEUE) + if (__predict_false(fp->f_type == DTYPE_MQUEUE)) mq_fdclose(td, fd, fp); FILEDESC_XUNLOCK(fdp); From owner-svn-src-head@freebsd.org Tue Dec 11 11:57:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00C2A132D8FB; Tue, 11 Dec 2018 11:57:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9C8646B316; Tue, 11 Dec 2018 11:57:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7DAAD2F3DE; Tue, 11 Dec 2018 11:57:12 +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 wBBBvCUx027864; Tue, 11 Dec 2018 11:57:12 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBBvCZj027863; Tue, 11 Dec 2018 11:57:12 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812111157.wBBBvCZj027863@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 11 Dec 2018 11:57:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341816 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 341816 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9C8646B316 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 11:57:13 -0000 Author: mjg Date: Tue Dec 11 11:57:12 2018 New Revision: 341816 URL: https://svnweb.freebsd.org/changeset/base/341816 Log: fd: stop looking for exact freefile after allocation If a lower fd is closed later, the lookup goes to waste. Allocation always performs the lookup anyway. Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_descrip.c Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Tue Dec 11 11:31:13 2018 (r341815) +++ head/sys/kern/kern_descrip.c Tue Dec 11 11:57:12 2018 (r341816) @@ -262,7 +262,7 @@ fdused(struct filedesc *fdp, int fd) if (fd > fdp->fd_lastfile) fdp->fd_lastfile = fd; if (fd == fdp->fd_freefile) - fdp->fd_freefile = fd_first_free(fdp, fd, fdp->fd_nfiles); + fdp->fd_freefile++; } /* From owner-svn-src-head@freebsd.org Tue Dec 11 12:01:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 524DA132E689; Tue, 11 Dec 2018 12:01:47 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E84766B9F2; Tue, 11 Dec 2018 12:01:46 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB13E2F569; Tue, 11 Dec 2018 12:01:46 +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 wBBC1kY0031375; Tue, 11 Dec 2018 12:01:46 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBC1kl2031373; Tue, 11 Dec 2018 12:01:46 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812111201.wBBC1kl2031373@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 11 Dec 2018 12:01:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341818 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 341818 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E84766B9F2 X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 12:01:47 -0000 Author: mjg Date: Tue Dec 11 12:01:46 2018 New Revision: 341818 URL: https://svnweb.freebsd.org/changeset/base/341818 Log: Make lim_cur inline if possible. It is a function call only to accomodate *some* ABIs which install a hook. They only care for 3 types of limits: DATA, STACK, VMEM Instead of always calling the func, see at compilation time if the requested limit is something else and just do the read if so. Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_resource.c head/sys/sys/resourcevar.h Modified: head/sys/kern/kern_resource.c ============================================================================== --- head/sys/kern/kern_resource.c Tue Dec 11 11:58:44 2018 (r341817) +++ head/sys/kern/kern_resource.c Tue Dec 11 12:01:46 2018 (r341818) @@ -1168,7 +1168,7 @@ lim_max_proc(struct proc *p, int which) * The which parameter which specifies the index into the rlimit array */ rlim_t -lim_cur(struct thread *td, int which) +(lim_cur)(struct thread *td, int which) { struct rlimit rl; Modified: head/sys/sys/resourcevar.h ============================================================================== --- head/sys/sys/resourcevar.h Tue Dec 11 11:58:44 2018 (r341817) +++ head/sys/sys/resourcevar.h Tue Dec 11 12:01:46 2018 (r341818) @@ -132,6 +132,19 @@ struct plimit *lim_alloc(void); void lim_copy(struct plimit *dst, struct plimit *src); rlim_t lim_cur(struct thread *td, int which); +#define lim_cur(td, which) ({ \ + rlim_t _rlim; \ + struct thread *_td = (td); \ + int _which = (which); \ + if (__builtin_constant_p(which) && which != RLIMIT_DATA && \ + which != RLIMIT_STACK && which != RLIMIT_VMEM) { \ + _rlim = td->td_limit->pl_rlimit[which].rlim_cur; \ + } else { \ + _rlim = lim_cur(_td, _which); \ + } \ + _rlim; \ +}) + rlim_t lim_cur_proc(struct proc *p, int which); void lim_fork(struct proc *p1, struct proc *p2); void lim_free(struct plimit *limp); From owner-svn-src-head@freebsd.org Tue Dec 11 12:08:19 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51811132EF4D; Tue, 11 Dec 2018 12:08:19 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E840D6C0DC; Tue, 11 Dec 2018 12:08:18 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C3D7B2F5AD; Tue, 11 Dec 2018 12:08:18 +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 wBBC8Ikt033443; Tue, 11 Dec 2018 12:08:18 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBC8I2M033442; Tue, 11 Dec 2018 12:08:18 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812111208.wBBC8I2M033442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 11 Dec 2018 12:08:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341819 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 341819 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E840D6C0DC X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.97)[-0.967,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 12:08:19 -0000 Author: mjg Date: Tue Dec 11 12:08:18 2018 New Revision: 341819 URL: https://svnweb.freebsd.org/changeset/base/341819 Log: fd: dedup code in sys_getdtablesize Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_descrip.c Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Tue Dec 11 12:01:46 2018 (r341818) +++ head/sys/kern/kern_descrip.c Tue Dec 11 12:08:18 2018 (r341819) @@ -348,8 +348,7 @@ sys_getdtablesize(struct thread *td, struct getdtables uint64_t lim; #endif - td->td_retval[0] = - min((int)lim_cur(td, RLIMIT_NOFILE), maxfilesperproc); + td->td_retval[0] = getmaxfd(td); #ifdef RACCT PROC_LOCK(td->td_proc); lim = racct_get_limit(td->td_proc, RACCT_NOFILE); From owner-svn-src-head@freebsd.org Tue Dec 11 16:36:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51A0513373F4; Tue, 11 Dec 2018 16:36:00 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E81987F6C2; Tue, 11 Dec 2018 16:35:59 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C918B242F; Tue, 11 Dec 2018 16:35:59 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBGZxux074272; Tue, 11 Dec 2018 16:35:59 GMT (envelope-from dab@FreeBSD.org) Received: (from dab@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBGZxaD074270; Tue, 11 Dec 2018 16:35:59 GMT (envelope-from dab@FreeBSD.org) Message-Id: <201812111635.wBBGZxaD074270@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dab set sender to dab@FreeBSD.org using -f From: David Bright Date: Tue, 11 Dec 2018 16:35:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341820 - head/sys/dev/asmc X-SVN-Group: head X-SVN-Commit-Author: dab X-SVN-Commit-Paths: head/sys/dev/asmc X-SVN-Commit-Revision: 341820 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E81987F6C2 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.51 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.51)[-0.506,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 16:36:00 -0000 Author: dab Date: Tue Dec 11 16:35:59 2018 New Revision: 341820 URL: https://svnweb.freebsd.org/changeset/base/341820 Log: asmc: Add Support for MacBookAir 7,1 and 7,2 PR: 226172 Submitted by: James Wright Reported by: James Wright MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18396 Modified: head/sys/dev/asmc/asmc.c head/sys/dev/asmc/asmcvar.h Modified: head/sys/dev/asmc/asmc.c ============================================================================== --- head/sys/dev/asmc/asmc.c Tue Dec 11 12:08:18 2018 (r341819) +++ head/sys/dev/asmc/asmc.c Tue Dec 11 16:35:59 2018 (r341820) @@ -300,6 +300,21 @@ struct asmc_model asmc_models[] = { ASMC_MBA5_TEMPS, ASMC_MBA5_TEMPNAMES, ASMC_MBA5_TEMPDESCS }, + { + "MacBookAir7,1", "Apple SMC MacBook Air 11-inch (Early 2015)", + ASMC_SMS_FUNCS_DISABLED, + ASMC_FAN_FUNCS2, + ASMC_LIGHT_FUNCS, + ASMC_MBA7_TEMPS, ASMC_MBA7_TEMPNAMES, ASMC_MBA7_TEMPDESCS + }, + + { + "MacBookAir7,2", "Apple SMC MacBook Air 13-inch (Early 2015)", + ASMC_SMS_FUNCS_DISABLED, + ASMC_FAN_FUNCS2, + ASMC_LIGHT_FUNCS, + ASMC_MBA7_TEMPS, ASMC_MBA7_TEMPNAMES, ASMC_MBA7_TEMPDESCS + }, { NULL, NULL } }; Modified: head/sys/dev/asmc/asmcvar.h ============================================================================== --- head/sys/dev/asmc/asmcvar.h Tue Dec 11 12:08:18 2018 (r341819) +++ head/sys/dev/asmc/asmcvar.h Tue Dec 11 16:35:59 2018 (r341820) @@ -428,3 +428,27 @@ struct asmc_softc { "TCXC", "THSP", "Memory Bank A", "PCH Die", \ "Ta0P", "Heatpipe", "Mainboard Proximity 1", "Mainboard Proximity 2", \ "Palm Rest", "Memory Proximity" } + +#define ASMC_MBA7_TEMPS { "TB0T", "TB1T", "TB2T", \ + "TC0E", "TC0F", "TC0P", \ + "TC1C", "TC2C", \ + "TCGC", "TCSA", "TCXC", \ + "THSP", "TM0P", "TPCD", \ + "TW0P" "Ta0P", "Th1H", \ + "Tm0P", "Ts0P", "Ts0S", NULL } + +#define ASMC_MBA7_TEMPNAMES { "enclosure1", "enclosure2", "enclosure3", \ + "cputemp1", "cputemp2", "cpuproximity", \ + "cpucore1", "cpucore2", \ + "pecigpu", "pecisa", "pecicpu", \ + "thunderboltproximity", "memorybank", "pchdie", \ + "wirelessproximity", "airflowproximity", "heatpipe", \ + "mainboardproximity", "palmrest", "memoryproximity" } + +#define ASMC_MBA7_TEMPDESCS { "Enclosure Bottom 1", "Enclosure Bottom 2", "Enclosure Bottom 3", \ + "CPU Temp 1", "CPU Temp 2", "CPU Proximity", \ + "CPU Core 1", "CPU Core 2", \ + "PECI GPU", "PECI SA", "PECI CPU", \ + "Thunderbolt Proximity", "Memory Bank A", "PCH Die", \ + "Wireless Proximity", "Airflow Proxmity", "Heatpipe", \ + "Mainboard Proximity", "Palm Rest", "Memory Proximity" } From owner-svn-src-head@freebsd.org Tue Dec 11 16:49:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99B9F13379DF; Tue, 11 Dec 2018 16:49:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 36A167FF2B; Tue, 11 Dec 2018 16:49:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1820725F2; Tue, 11 Dec 2018 16:49:02 +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 wBBGn1l1079695; Tue, 11 Dec 2018 16:49:01 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBGn1rB079694; Tue, 11 Dec 2018 16:49:01 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812111649.wBBGn1rB079694@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 11 Dec 2018 16:49:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341821 - head/sys/x86/x86 X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/x86/x86 X-SVN-Commit-Revision: 341821 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 36A167FF2B X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.50 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.50)[-0.496,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 16:49:02 -0000 Author: markj Date: Tue Dec 11 16:49:01 2018 New Revision: 341821 URL: https://svnweb.freebsd.org/changeset/base/341821 Log: Fix the PAE kernel gcc build. The error was caused by map_ucode() casting a vm_paddr_t to a void *. Use a uintptr_t instead to match the caller. Fix some style bugs while here. Reported by: bde Reviewed by: bde MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/x86/x86/ucode.c Modified: head/sys/x86/x86/ucode.c ============================================================================== --- head/sys/x86/x86/ucode.c Tue Dec 11 16:35:59 2018 (r341820) +++ head/sys/x86/x86/ucode.c Tue Dec 11 16:49:01 2018 (r341821) @@ -278,12 +278,13 @@ ucode_load_ap(int cpu) } static void * -map_ucode(vm_paddr_t free, size_t len) +map_ucode(uintptr_t free, size_t len) { - #ifdef __i386__ - for (vm_paddr_t pa = free; pa < free + len; pa += PAGE_SIZE) - pmap_kenter(pa, pa); + uintptr_t va; + + for (va = free; va < free + len; va += PAGE_SIZE) + pmap_kenter(va, (vm_paddr_t)va); #else (void)len; #endif @@ -291,12 +292,13 @@ map_ucode(vm_paddr_t free, size_t len) } static void -unmap_ucode(vm_paddr_t free, size_t len) +unmap_ucode(uintptr_t free, size_t len) { - #ifdef __i386__ - for (vm_paddr_t pa = free; pa < free + len; pa += PAGE_SIZE) - pmap_kremove((vm_offset_t)pa); + uintptr_t va; + + for (va = free; va < free + len; va += PAGE_SIZE) + pmap_kremove(va); #else (void)free; (void)len; From owner-svn-src-head@freebsd.org Tue Dec 11 17:14:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 16743130B0F9; Tue, 11 Dec 2018 17:14:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AFAFF81614; Tue, 11 Dec 2018 17:14:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 91C832B03; Tue, 11 Dec 2018 17:14:12 +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 wBBHECb1095832; Tue, 11 Dec 2018 17:14:12 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBHECSk095831; Tue, 11 Dec 2018 17:14:12 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812111714.wBBHECSk095831@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 11 Dec 2018 17:14:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341822 - head/sys/security/audit X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/security/audit X-SVN-Commit-Revision: 341822 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AFAFF81614 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.55 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.55)[-0.545,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 17:14:13 -0000 Author: mjg Date: Tue Dec 11 17:14:12 2018 New Revision: 341822 URL: https://svnweb.freebsd.org/changeset/base/341822 Log: audi: replace open-coded TDP_AUDITREC checks with the macro Sponsored by: The FreeBSD Foundation Modified: head/sys/security/audit/audit.h Modified: head/sys/security/audit/audit.h ============================================================================== --- head/sys/security/audit/audit.h Tue Dec 11 16:49:01 2018 (r341821) +++ head/sys/security/audit/audit.h Tue Dec 11 17:14:12 2018 (r341822) @@ -389,7 +389,7 @@ void audit_thread_free(struct thread *td); * auditing is disabled, so we don't just check audit_syscalls_enabled here. */ #define AUDIT_SYSCALL_EXIT(error, td) do { \ - if (td->td_pflags & TDP_AUDITREC) \ + if (AUDITING_TD(td)) \ audit_syscall_exit(error, td); \ } while (0) @@ -397,7 +397,7 @@ void audit_thread_free(struct thread *td); * A Macro to wrap the audit_sysclose() function. */ #define AUDIT_SYSCLOSE(td, fd) do { \ - if (td->td_pflags & TDP_AUDITREC) \ + if (AUDITING_TD(td)) \ audit_sysclose(td, fd); \ } while (0) From owner-svn-src-head@freebsd.org Tue Dec 11 17:23:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 887F9130B614; Tue, 11 Dec 2018 17:23:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (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 2EAF781E62; Tue, 11 Dec 2018 17:23:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-2.local (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id 33C2710A87D; Tue, 11 Dec 2018 12:23:57 -0500 (EST) Subject: Re: svn commit: r341803 - head/libexec/rc To: Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812110138.wBB1cp1p006660@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= xsDiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg80eSm9obiBCYWxk d2luIDxqb2huQGJhbGR3aW4uY3g+wmMEExECACMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX gAUCRND5wwIZAQAKCRBy3lIGd+N/BNLXAJ9KIb6teuDL1W+FkCgvv+y8PxKTkACeIUfbn3sl cueBzqTcf09idwa8YTbOwU0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Ds gnr31AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh +GojXlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cM SOrHYUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOF QVHOEVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq 1tqzhltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZ TwtXsNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m 7Z164yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioI AjjHaIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbU KWwxQ4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjH uW/CSQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZN wwCfafMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> Date: Tue, 11 Dec 2018 09:23:56 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <201812110138.wBB1cp1p006660@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Tue, 11 Dec 2018 12:23:57 -0500 (EST) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-Rspamd-Queue-Id: 2EAF781E62 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.48 / 15.00]; ASN(0.00)[asn:11403, ipnet:96.47.64.0/20, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.48)[-0.483,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 17:23:58 -0000 On 12/10/18 5:38 PM, Conrad Meyer wrote: > Author: cem > Date: Tue Dec 11 01:38:50 2018 > New Revision: 341803 > URL: https://svnweb.freebsd.org/changeset/base/341803 > > Log: > rc.subr: Implement list_vars without using 'read' > > 'read' pessimistically read(2)s one byte at a time, which can be quite > silly for large environments in slow emulators. > > In my boring user environment, truss shows that the number of read() > syscalls to source rc.subr and invoke list_vars is reduced by something like > 3400 to 60. ministat(1) shows a significant time difference of about -71% > for my environment. > > Suggested by: jilles > Discussed with: dteske, jhb, jilles > Differential Revision: https://reviews.freebsd.org/D18481 For some background, one my colleagues reported that it was taking hours in (an admittedly slow) CPU simulator to get through '/etc/rc.d/netif start'. I ended up running that script under truss in a RISC-V qemu machine. The entire run took 212 seconds (truss did slow it down quite a bit). Of that 212 seconds, the read side of each list_vars invocation took ~25.5 seconds, and with lo0 and vtnet0 there were 8 list_vars invocations, so 204 out of the 212 seconds were spent in the single-byte read() syscalls in 'while read'. Even on qemu without truss during bootup 'netif start' took a couple of seconds (long enough to get 2-3 Ctrl-T's in) before this change and is now similar to bare metal with the change. list_vars is rarely used outside of 'netif', so it probably doesn't make a measurable difference on bare metal. -- John Baldwin                                                                              From owner-svn-src-head@freebsd.org Tue Dec 11 17:40:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C3E32130C03A; Tue, 11 Dec 2018 17:40:55 +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 CDDDB82A8A; Tue, 11 Dec 2018 17:40:54 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from [76.77.180.168] (port=60367 helo=eskarina.lan) by shxd.cx with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1gWm1W-000C5t-ME; Tue, 11 Dec 2018 09:40:46 -0800 From: Devin Teske Message-Id: <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: svn commit: r341803 - head/libexec/rc Date: Tue, 11 Dec 2018 09:40:45 -0800 In-Reply-To: <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> Cc: Devin Teske , Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org To: John Baldwin References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> X-Mailer: Apple Mail (2.3445.9.1) Sender: devin@shxd.cx X-Rspamd-Queue-Id: CDDDB82A8A X-Spamd-Bar: ++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [2.17 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; DMARC_NA(0.00)[FreeBSD.org]; AUTH_NA(1.00)[]; RCPT_COUNT_FIVE(0.00)[6]; IP_SCORE(0.29)[ip: (0.80), ipnet: 64.201.240.0/20(0.40), asn: 36734(0.32), country: US(-0.09)]; NEURAL_SPAM_SHORT(0.19)[0.195,0]; MX_GOOD(-0.01)[mail.shxd.cx]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[dteske@FreeBSD.org,devin@shxd.cx]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; ASN(0.00)[asn:36734, ipnet:64.201.240.0/20, country:US]; FROM_NEQ_ENVFROM(0.00)[dteske@FreeBSD.org,devin@shxd.cx]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 17:40:56 -0000 > On Dec 11, 2018, at 9:23 AM, John Baldwin wrote: >=20 > On 12/10/18 5:38 PM, Conrad Meyer wrote: >> Author: cem >> Date: Tue Dec 11 01:38:50 2018 >> New Revision: 341803 >> URL: https://svnweb.freebsd.org/changeset/base/341803 >>=20 >> Log: >> rc.subr: Implement list_vars without using 'read' >>=20 >> 'read' pessimistically read(2)s one byte at a time, which can be = quite >> silly for large environments in slow emulators. >>=20 >> In my boring user environment, truss shows that the number of read() >> syscalls to source rc.subr and invoke list_vars is reduced by = something like >> 3400 to 60. ministat(1) shows a significant time difference of = about -71% >> for my environment. >>=20 >> Suggested by: jilles >> Discussed with: dteske, jhb, jilles >> Differential Revision: https://reviews.freebsd.org/D18481 >=20 > For some background, one my colleagues reported that it was taking = hours in > (an admittedly slow) CPU simulator to get through '/etc/rc.d/netif = start'. > I ended up running that script under truss in a RISC-V qemu machine. = The > entire run took 212 seconds (truss did slow it down quite a bit). Of = that > 212 seconds, the read side of each list_vars invocation took ~25.5 = seconds, > and with lo0 and vtnet0 there were 8 list_vars invocations, so 204 out = of > the 212 seconds were spent in the single-byte read() syscalls in = 'while read'. >=20 > Even on qemu without truss during bootup 'netif start' took a couple = of > seconds (long enough to get 2-3 Ctrl-T's in) before this change and is = now > similar to bare metal with the change. list_vars is rarely used = outside of > 'netif', so it probably doesn't make a measurable difference on bare = metal. >=20 Thank you for the background which was lost by the time I got to the = phab. I can't help but ask though,... If it was noticed that read(2) processes the stream one byte at a time, why not just optimize read(2)? I'm afraid of the prospect of having to hunt down every instance of = while-read, but if we can fix the underlying read(2) inefficiency then we make = while-read OK. --=20 Devin= From owner-svn-src-head@freebsd.org Tue Dec 11 17:46:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39FFE130C2EA; Tue, 11 Dec 2018 17:46:02 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D543F82EBF; Tue, 11 Dec 2018 17:46:01 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B63B73026; Tue, 11 Dec 2018 17:46:01 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBHk1b4011917; Tue, 11 Dec 2018 17:46:01 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBHk1E2011916; Tue, 11 Dec 2018 17:46:01 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201812111746.wBBHk1E2011916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Tue, 11 Dec 2018 17:46:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341824 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 341824 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D543F82EBF X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.57 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.57)[-0.574,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 17:46:02 -0000 Author: shurd Date: Tue Dec 11 17:46:01 2018 New Revision: 341824 URL: https://svnweb.freebsd.org/changeset/base/341824 Log: Fix !tx_abdicate error from r336560 r336560 was supposed to restore pre-r323954 behaviour when tx_abdicate is not set (the default case). However, it appears that rather than the drainage check being made conditional on tx_abdicate being set, it was duplicated so it occured twice if tx_abdicate was set and once if it was not. Now when !tx_abdicate, drainage is only checked if the doorbell isn't pending. Reported by: lev MFC after: 1 week Sponsored by: Limelight Networks Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Tue Dec 11 17:39:49 2018 (r341823) +++ head/sys/net/iflib.c Tue Dec 11 17:46:01 2018 (r341824) @@ -3582,7 +3582,6 @@ _task_fn_tx(void *context) */ if (abdicate) ifmp_ring_check_drainage(txq->ift_br, TX_BATCH_SIZE); - ifmp_ring_check_drainage(txq->ift_br, TX_BATCH_SIZE); if (ctx->ifc_flags & IFC_LEGACY) IFDI_INTR_ENABLE(ctx); else { From owner-svn-src-head@freebsd.org Tue Dec 11 17:55:01 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1A0D130C797; Tue, 11 Dec 2018 17:55:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (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 65DBF83588; Tue, 11 Dec 2018 17:55:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-2.local (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id 6D94A10A87D; Tue, 11 Dec 2018 12:54:59 -0500 (EST) Subject: Re: svn commit: r341803 - head/libexec/rc To: Devin Teske Cc: Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= xsDiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg80eSm9obiBCYWxk d2luIDxqb2huQGJhbGR3aW4uY3g+wmMEExECACMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX gAUCRND5wwIZAQAKCRBy3lIGd+N/BNLXAJ9KIb6teuDL1W+FkCgvv+y8PxKTkACeIUfbn3sl cueBzqTcf09idwa8YTbOwU0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Ds gnr31AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh +GojXlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cM SOrHYUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOF QVHOEVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq 1tqzhltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZ TwtXsNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m 7Z164yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioI AjjHaIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbU KWwxQ4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjH uW/CSQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZN wwCfafMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: Date: Tue, 11 Dec 2018 09:54:58 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Tue, 11 Dec 2018 12:54:59 -0500 (EST) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-Rspamd-Queue-Id: 65DBF83588 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.50 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.50)[-0.499,0]; ASN(0.00)[asn:11403, ipnet:96.47.64.0/20, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 17:55:01 -0000 On 12/11/18 9:40 AM, Devin Teske wrote: > > >> On Dec 11, 2018, at 9:23 AM, John Baldwin > wrote: >> >> On 12/10/18 5:38 PM, Conrad Meyer wrote: >>> Author: cem >>> Date: Tue Dec 11 01:38:50 2018 >>> New Revision: 341803 >>> URL: https://svnweb.freebsd.org/changeset/base/341803 >>> >>> Log: >>>  rc.subr: Implement list_vars without using 'read' >>> >>>  'read' pessimistically read(2)s one byte at a time, which can be quite >>>  silly for large environments in slow emulators. >>> >>>  In my boring user environment, truss shows that the number of read() >>>  syscalls to source rc.subr and invoke list_vars is reduced by something like >>>  3400 to 60.  ministat(1) shows a significant time difference of about -71% >>>  for my environment. >>> >>>  Suggested by:jilles >>>  Discussed with:dteske, jhb, jilles >>>  Differential Revision:https://reviews.freebsd.org/D18481 >> >> For some background, one my colleagues reported that it was taking hours in >> (an admittedly slow) CPU simulator to get through '/etc/rc.d/netif start'. >> I ended up running that script under truss in a RISC-V qemu machine.  The >> entire run took 212 seconds (truss did slow it down quite a bit).  Of that >> 212 seconds, the read side of each list_vars invocation took ~25.5 seconds, >> and with lo0 and vtnet0 there were 8 list_vars invocations, so 204 out of >> the 212 seconds were spent in the single-byte read() syscalls in 'while read'. >> >> Even on qemu without truss during bootup 'netif start' took a couple of >> seconds (long enough to get 2-3 Ctrl-T's in) before this change and is now >> similar to bare metal with the change.  list_vars is rarely used outside of >> 'netif', so it probably doesn't make a measurable difference on bare metal. >> > > Thank you for the background which was lost by the time I got to the phab. > > I can't help but ask though,... > > If it was noticed that read(2) processes the stream one byte at a time, > why not just optimize read(2)? > > I'm afraid of the prospect of having to hunt down every instance of while-read, > but if we can fix the underlying read(2) inefficiency then we make while-read OK. It's a system call. A CPU emulator has to do a lot of work for a system call because it involves two mode switches (user -> kernel and back again). You can't "fix" that as it's just a part of the CPU architecture. There's a reason that stdio uses buffering by default, it's because system calls have overhead. The 'read' builtin in sh can't use buffering, so it is always going to be inefficient. -- John Baldwin                                                                              From owner-svn-src-head@freebsd.org Tue Dec 11 18:04:09 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDF7F130CDA0 for ; Tue, 11 Dec 2018 18:04:08 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E5B6F83BFE for ; Tue, 11 Dec 2018 18:04:07 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x734.google.com with SMTP id o89so9173731qko.0 for ; Tue, 11 Dec 2018 10:04:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xOECVAH5OHnyxXbd2NP4+thkmRxZPFkFRhC0MRjqDYU=; b=Fw05dZBEc76y0j4lljRAvF4SmfK7BsCXmwXiFGR+LQiA5B8f2T/1HYL5k7Px8nZIlf 8+cRURp23m1SfJzvA0xaRExWKfW2EvsQjAH69N6TtBioXYw/7UYpFwFldeimucNnaZQf kmTes6IdW4a5GAWhibo2g+bJSr4HM/TLaXfbq20xiq9SyncKWRgEBVwpYCmLgRz4D+Ib XRoa8haP3yUYnMsYMa10E7b8bop7gv97bL8gU2DcwM9pMXw5olEim8smXTvmMQLpyFHc 7VojzE+FGPI4kj41EJ2S8Dd9kj2r5dJFwqL3mSj1JwR7Qb6sSxufUBV5LZzKbNRqAC9J YenA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xOECVAH5OHnyxXbd2NP4+thkmRxZPFkFRhC0MRjqDYU=; b=auFlcf231QbOSNIOZMnENMyzlOPfqMKQ60dKkiKcLk2DI8UzYGlsJ0mVFeaPOt501y Do5ZgMT2bjXvjzPbmeyY4aKRetGaMGVgNtkVgxSFgBB3Fx3yFOHA5cybhc748bsX7qru nqvwyx57vzgmnqVJ+EigGK3X/26ksiDcCpO5BXa2OM/RI6vs4D0KbhyGs3AO0eaAWJxZ 2QphO1CBOmqBGW0L4yCehrMehWQo1J+D57sBxOP5br6rPNB58TWxNDymDhQ6pturrxvg 2nEzVM8wqJwsTMj/pmq21gSdzoigpHZ4HW0ScB+FaF0Vmhm6rUjrFBu+2CjOeEd/AO+J COAg== X-Gm-Message-State: AA+aEWZZJgLM6LZ7GnUPgZvVlATs88zigrl0CxTYNTUjHhZCYePlSknm 3Yb5EwpQcMb4Jqa7z8k9I1CD0kVAEaxcV2nQZ/kz0w== X-Google-Smtp-Source: AFSGD/Ux29L2XEoLMu4sRrgBxEa8x8Bb7qXNUGUM40fEussidU01KolRwQGfRKskFnRG6xyL4BXJ8uFupLhj+aHuNKY= X-Received: by 2002:a37:6e86:: with SMTP id j128mr16046831qkc.46.1544551447267; Tue, 11 Dec 2018 10:04:07 -0800 (PST) MIME-Version: 1.0 References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> In-Reply-To: From: Warner Losh Date: Tue, 11 Dec 2018 11:03:55 -0700 Message-ID: Subject: Re: svn commit: r341803 - head/libexec/rc To: John Baldwin Cc: Devin Teske , "Conrad E. Meyer" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: E5B6F83BFE X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Fw05dZBE X-Spamd-Result: default: False [-3.29 / 15.00]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[cached: ALT1.aspmx.l.google.com]; RCVD_IN_DNSWL_NONE(0.00)[4.3.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.95)[-0.948,0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; IP_SCORE(-2.33)[ip: (-8.76), ipnet: 2607:f8b0::/32(-1.53), asn: 15169(-1.27), country: US(-0.09)]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 18:04:09 -0000 On Tue, Dec 11, 2018, 9:55 AM John Baldwin The 'read' builtin in sh can't use buffering, so it is always going to be > slow > It can't use it because of pipes. The example from the parts of this that was on IRC was basically: foo | (read bar; baz) Which reads one line into the bar variable and then sends the rest to the bar command. Warner > From owner-svn-src-head@freebsd.org Tue Dec 11 19:05:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3329A130F88E; Tue, 11 Dec 2018 19:05:36 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D43BE867FC; Tue, 11 Dec 2018 19:05:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4CF64258; Tue, 11 Dec 2018 19:05:35 +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 wBBJ5Z4L053496; Tue, 11 Dec 2018 19:05:35 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBJ5Yfu053488; Tue, 11 Dec 2018 19:05:34 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812111905.wBBJ5Yfu053488@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 11 Dec 2018 19:05:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341825 - in head: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan contri... X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in head: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtin... X-SVN-Commit-Revision: 341825 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D43BE867FC X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.49 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.49)[-0.494,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 19:05:38 -0000 Author: dim Date: Tue Dec 11 19:05:28 2018 New Revision: 341825 URL: https://svnweb.freebsd.org/changeset/base/341825 Log: Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to the upstream release_70 branch r348686 (effectively, 7.0.1 rc3). The release will follow very soon, but no more functional changes are expected. Release notes for llvm, clang and lld 7.0.0 are available here: PR: 230240, 230355 Relnotes: yes MFC after: 2 months Added: head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h head/contrib/compiler-rt/lib/asan/asan_malloc_local.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/asan/asan_malloc_local.h head/contrib/compiler-rt/lib/asan/asan_mapping_myriad.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/asan/asan_mapping_myriad.h head/contrib/compiler-rt/lib/asan/asan_rtems.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/asan/asan_rtems.cc head/contrib/compiler-rt/lib/builtins/arm/chkstk.S - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/builtins/arm/chkstk.S head/contrib/compiler-rt/lib/builtins/hexagon/ - copied from r341824, projects/clang700-import/contrib/compiler-rt/lib/builtins/hexagon/ head/contrib/compiler-rt/lib/builtins/riscv/ - copied from r341824, projects/clang700-import/contrib/compiler-rt/lib/builtins/riscv/ - copied from r341824, projects/clang700-import/contrib/compiler-rt/lib/fuzzer/ head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.h head/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h head/contrib/compiler-rt/lib/hwasan/hwasan_report.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/hwasan/hwasan_report.h head/contrib/compiler-rt/lib/msan/msan_report.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/msan/msan_report.h head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_rtems.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_rtems.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cc head/contrib/compiler-rt/lib/scudo/scudo_errors.cpp - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/scudo/scudo_errors.cpp head/contrib/compiler-rt/lib/scudo/scudo_errors.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/scudo/scudo_errors.h head/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp head/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cc head/contrib/compiler-rt/lib/ubsan/ubsan_monitor.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/ubsan/ubsan_monitor.cc head/contrib/compiler-rt/lib/ubsan/ubsan_monitor.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/ubsan/ubsan_monitor.h head/contrib/compiler-rt/lib/xray/xray_allocator.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_allocator.h head/contrib/compiler-rt/lib/xray/xray_basic_flags.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_basic_flags.cc head/contrib/compiler-rt/lib/xray/xray_basic_flags.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_basic_flags.h head/contrib/compiler-rt/lib/xray/xray_basic_flags.inc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_basic_flags.inc head/contrib/compiler-rt/lib/xray/xray_basic_logging.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_basic_logging.cc head/contrib/compiler-rt/lib/xray/xray_basic_logging.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_basic_logging.h head/contrib/compiler-rt/lib/xray/xray_fdr_flags.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_fdr_flags.cc head/contrib/compiler-rt/lib/xray/xray_fdr_flags.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_fdr_flags.h head/contrib/compiler-rt/lib/xray/xray_fdr_flags.inc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_fdr_flags.inc head/contrib/compiler-rt/lib/xray/xray_function_call_trie.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_function_call_trie.h head/contrib/compiler-rt/lib/xray/xray_profile_collector.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_profile_collector.cc head/contrib/compiler-rt/lib/xray/xray_profile_collector.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_profile_collector.h head/contrib/compiler-rt/lib/xray/xray_profiling.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_profiling.cc head/contrib/compiler-rt/lib/xray/xray_profiling_flags.cc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_profiling_flags.cc head/contrib/compiler-rt/lib/xray/xray_profiling_flags.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_profiling_flags.h head/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc head/contrib/compiler-rt/lib/xray/xray_recursion_guard.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_recursion_guard.h head/contrib/compiler-rt/lib/xray/xray_segmented_array.h - copied unchanged from r341824, projects/clang700-import/contrib/compiler-rt/lib/xray/xray_segmented_array.h head/contrib/libc++/include/__errc - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/__errc head/contrib/libc++/include/__node_handle - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/__node_handle head/contrib/libc++/include/charconv - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/charconv head/contrib/libc++/include/compare - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/compare head/contrib/libc++/include/experimental/simd - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/experimental/simd head/contrib/libc++/include/filesystem - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/filesystem head/contrib/libc++/include/span - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/span head/contrib/libc++/include/version - copied unchanged from r341824, projects/clang700-import/contrib/libc++/include/version head/contrib/libc++/src/charconv.cpp - copied unchanged from r341824, projects/clang700-import/contrib/libc++/src/charconv.cpp head/contrib/libc++/src/filesystem/ - copied from r341824, projects/clang700-import/contrib/libc++/src/filesystem/ head/contrib/libc++/src/include/apple_availability.h - copied unchanged from r341824, projects/clang700-import/contrib/libc++/src/include/apple_availability.h head/contrib/llvm/include/llvm-c/Comdat.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm-c/Comdat.h head/contrib/llvm/include/llvm-c/DataTypes.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm-c/DataTypes.h head/contrib/llvm/include/llvm-c/DisassemblerTypes.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm-c/DisassemblerTypes.h head/contrib/llvm/include/llvm-c/Transforms/InstCombine.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm-c/Transforms/InstCombine.h head/contrib/llvm/include/llvm-c/Transforms/Utils.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm-c/Transforms/Utils.h head/contrib/llvm/include/llvm/ADT/Any.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/ADT/Any.h head/contrib/llvm/include/llvm/ADT/FunctionExtras.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/ADT/FunctionExtras.h head/contrib/llvm/include/llvm/Analysis/MustExecute.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Analysis/MustExecute.h head/contrib/llvm/include/llvm/Analysis/PhiValues.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Analysis/PhiValues.h head/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h head/contrib/llvm/include/llvm/Analysis/Utils/ - copied from r341824, projects/clang700-import/contrib/llvm/include/llvm/Analysis/Utils/ head/contrib/llvm/include/llvm/BinaryFormat/DynamicTags.def - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/DynamicTags.def head/contrib/llvm/include/llvm/CodeGen/AccelTable.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/AccelTable.h head/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc head/contrib/llvm/include/llvm/CodeGen/ExecutionDomainFix.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/ExecutionDomainFix.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h head/contrib/llvm/include/llvm/CodeGen/LoopTraversal.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/LoopTraversal.h head/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h head/contrib/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h head/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h head/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h head/contrib/llvm/include/llvm/IR/DomTreeUpdater.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/IR/DomTreeUpdater.h head/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc head/contrib/llvm/include/llvm/Object/CVDebugRecord.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Object/CVDebugRecord.h head/contrib/llvm/include/llvm/Object/WasmTraits.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Object/WasmTraits.h head/contrib/llvm/include/llvm/Passes/PassPlugin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Passes/PassPlugin.h head/contrib/llvm/include/llvm/Support/AMDHSAKernelDescriptor.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/AMDHSAKernelDescriptor.h head/contrib/llvm/include/llvm/Support/CheckedArithmetic.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/CheckedArithmetic.h head/contrib/llvm/include/llvm/Support/DJB.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/DJB.h head/contrib/llvm/include/llvm/Support/DataTypes.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/DataTypes.h head/contrib/llvm/include/llvm/Support/InitLLVM.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/InitLLVM.h head/contrib/llvm/include/llvm/Support/JSON.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/JSON.h head/contrib/llvm/include/llvm/Support/MachineValueType.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/MachineValueType.h head/contrib/llvm/include/llvm/Support/MemAlloc.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/MemAlloc.h head/contrib/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h head/contrib/llvm/include/llvm/Support/TargetOpcodes.def - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/TargetOpcodes.def head/contrib/llvm/include/llvm/Support/TaskQueue.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/TaskQueue.h head/contrib/llvm/include/llvm/Support/VersionTuple.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/VersionTuple.h head/contrib/llvm/include/llvm/Support/WithColor.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/WithColor.h head/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h head/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h head/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Transforms/AggressiveInstCombine/ - copied from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/AggressiveInstCombine/ head/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h head/contrib/llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h head/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h head/contrib/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h head/contrib/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h head/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h head/contrib/llvm/include/llvm/Transforms/Utils.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h head/contrib/llvm/lib/Analysis/MustExecute.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Analysis/MustExecute.cpp head/contrib/llvm/lib/Analysis/PhiValues.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Analysis/PhiValues.cpp head/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp head/contrib/llvm/lib/BinaryFormat/Wasm.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/BinaryFormat/Wasm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h head/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp head/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp head/contrib/llvm/lib/CodeGen/ExecutionDomainFix.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/ExecutionDomainFix.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp head/contrib/llvm/lib/CodeGen/LoopTraversal.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/LoopTraversal.cpp head/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp head/contrib/llvm/lib/CodeGen/ValueTypes.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/ValueTypes.cpp head/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp head/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp head/contrib/llvm/lib/Demangle/Compiler.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Demangle/Compiler.h head/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp head/contrib/llvm/lib/Demangle/StringView.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Demangle/StringView.h head/contrib/llvm/lib/Demangle/Utility.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Demangle/Utility.h head/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp head/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/ - copied from r341824, projects/clang700-import/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/ head/contrib/llvm/lib/IR/DomTreeUpdater.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/IR/DomTreeUpdater.cpp head/contrib/llvm/lib/MC/MCAsmMacro.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/MC/MCAsmMacro.cpp head/contrib/llvm/lib/Passes/PassPlugin.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Passes/PassPlugin.cpp head/contrib/llvm/lib/Support/DJB.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Support/DJB.cpp head/contrib/llvm/lib/Support/InitLLVM.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Support/InitLLVM.cpp head/contrib/llvm/lib/Support/JSON.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Support/JSON.cpp head/contrib/llvm/lib/Support/UnicodeCaseFold.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Support/UnicodeCaseFold.cpp head/contrib/llvm/lib/Support/VersionTuple.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Support/VersionTuple.cpp head/contrib/llvm/lib/Support/WithColor.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Support/WithColor.cpp head/contrib/llvm/lib/TableGen/JSONBackend.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/TableGen/JSONBackend.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFeatures.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUFeatures.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.cpp head/contrib/llvm/lib/Target/AMDGPU/R600.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/R600.td head/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp head/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.h head/contrib/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp head/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp head/contrib/llvm/lib/Target/AMDGPU/SIProgramInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIProgramInfo.h head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.cpp head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.h head/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp head/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp head/contrib/llvm/lib/Target/BPF/BPFMIPeephole.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/BPF/BPFMIPeephole.cpp head/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonCallingConv.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Hexagon/HexagonCallingConv.td head/contrib/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td head/contrib/llvm/lib/Target/Hexagon/HexagonVExtract.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Hexagon/HexagonVExtract.cpp head/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp head/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsCallLowering.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsCallLowering.h head/contrib/llvm/lib/Target/Mips/MipsExpandPseudo.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsExpandPseudo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp head/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterBanks.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsRegisterBanks.td head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h head/contrib/llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h head/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp head/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp head/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h head/contrib/llvm/lib/Target/WebAssembly/AsmParser/ - copied from r341824, projects/clang700-import/contrib/llvm/lib/Target/WebAssembly/AsmParser/ head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstPrinterCommon.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/InstPrinter/X86InstPrinterCommon.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h head/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp head/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp head/contrib/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp head/contrib/llvm/lib/Target/X86/X86InstrFoldTables.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86InstrFoldTables.cpp head/contrib/llvm/lib/Target/X86/X86InstrFoldTables.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86InstrFoldTables.h head/contrib/llvm/lib/Target/X86/X86PfmCounters.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86PfmCounters.td head/contrib/llvm/lib/Target/X86/X86SchedPredicates.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86SchedPredicates.td head/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp head/contrib/llvm/lib/Transforms/AggressiveInstCombine/ - copied from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/AggressiveInstCombine/ head/contrib/llvm/lib/Transforms/IPO/BlockExtractor.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/IPO/BlockExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/SCCP.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/IPO/SCCP.cpp head/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineTables.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineTables.td head/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp head/contrib/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp head/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h head/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h head/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.h head/contrib/llvm/tools/clang/include/clang/AST/ComparisonCategories.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/AST/ComparisonCategories.h head/contrib/llvm/tools/clang/include/clang/AST/NonTrivialTypeVisitor.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/AST/NonTrivialTypeVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyDeclStackTrace.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/AST/PrettyDeclStackTrace.h head/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h head/contrib/llvm/tools/clang/include/clang/Basic/BitmaskEnum.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/BitmaskEnum.h head/contrib/llvm/tools/clang/include/clang/Basic/Features.def - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/Features.def head/contrib/llvm/tools/clang/include/clang/Basic/Stack.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/Stack.h head/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_fp16.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/arm_fp16.td head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td head/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateInstCallback.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Sema/TemplateInstCallback.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTContext.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSort.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSort.h head/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h head/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/ - copied from r341824, projects/clang700-import/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/ head/contrib/llvm/tools/clang/lib/AST/ComparisonCategories.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/AST/ComparisonCategories.cpp head/contrib/llvm/tools/clang/lib/Analysis/ConstructionContext.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Analysis/ConstructionContext.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.h head/contrib/llvm/tools/clang/lib/Basic/XRayInstr.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Basic/XRayInstr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCV.h head/contrib/llvm/tools/clang/lib/Frontend/FrontendTiming.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Frontend/FrontendTiming.cpp head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_device_functions.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_device_functions.h head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_libdevice_declares.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_libdevice_declares.h head/contrib/llvm/tools/clang/lib/Headers/cldemoteintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/cldemoteintrin.h head/contrib/llvm/tools/clang/lib/Headers/invpcidintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/invpcidintrin.h head/contrib/llvm/tools/clang/lib/Headers/movdirintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/movdirintrin.h head/contrib/llvm/tools/clang/lib/Headers/pconfigintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/pconfigintrin.h head/contrib/llvm/tools/clang/lib/Headers/ptwriteintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/ptwriteintrin.h head/contrib/llvm/tools/clang/lib/Headers/sgxintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/sgxintrin.h head/contrib/llvm/tools/clang/lib/Headers/waitpkgintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/waitpkgintrin.h head/contrib/llvm/tools/clang/lib/Headers/wbnoinvdintrin.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Headers/wbnoinvdintrin.h head/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObjectChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp head/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp head/contrib/llvm/tools/clang/lib/Tooling/Inclusions/ - copied from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Tooling/Inclusions/ head/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp head/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp head/contrib/llvm/tools/lld/COFF/ICF.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/COFF/ICF.h head/contrib/llvm/tools/lld/COFF/MarkLive.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/COFF/MarkLive.h head/contrib/llvm/tools/lld/Common/Timer.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/Common/Timer.cpp head/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp head/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp head/contrib/llvm/tools/lld/ELF/CallGraphSort.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/ELF/CallGraphSort.h head/contrib/llvm/tools/lld/ELF/MarkLive.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/ELF/MarkLive.h head/contrib/llvm/tools/lld/docs/ - copied from r341824, projects/clang700-import/contrib/llvm/tools/lld/docs/ head/contrib/llvm/tools/lld/include/lld/Common/Timer.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lld/include/lld/Common/Timer.h head/contrib/llvm/tools/lldb/include/lldb/Core/DumpRegisterValue.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/Core/DumpRegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Args.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/Utility/Args.h head/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Environment.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/Utility/Environment.h head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h head/contrib/llvm/tools/lldb/include/lldb/module.modulemap - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/include/lldb/module.modulemap head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.h head/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ - copied from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.h head/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/ - copied from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/ head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwinConstants.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwinConstants.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64-register-enums.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64-register-enums.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.h head/contrib/llvm/tools/lldb/source/Utility/Args.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Utility/Args.cpp head/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp head/contrib/llvm/tools/lldb/source/Utility/Environment.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Utility/Environment.cpp head/contrib/llvm/tools/lldb/source/Utility/PPC64_DWARF_Registers.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/source/Utility/PPC64_DWARF_Registers.h head/contrib/llvm/tools/lldb/tools/lldb-mi/module.modulemap - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/tools/lldb-mi/module.modulemap head/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp head/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h head/contrib/llvm/tools/llvm-cov/CoverageExporter.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-cov/CoverageExporter.h head/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h head/contrib/llvm/tools/llvm-mca/ - copied from r341824, projects/clang700-import/contrib/llvm/tools/llvm-mca/ head/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td head/contrib/llvm/tools/llvm-objcopy/StripOpts.td - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-objcopy/StripOpts.td head/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp head/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.h head/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h head/contrib/llvm/tools/llvm-xray/func-id-helper.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/func-id-helper.cpp head/contrib/llvm/tools/llvm-xray/llvm-xray.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/llvm-xray.cpp head/contrib/llvm/tools/llvm-xray/xray-account.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-account.cpp head/contrib/llvm/tools/llvm-xray/xray-color-helper.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-color-helper.cpp head/contrib/llvm/tools/llvm-xray/xray-converter.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-converter.cpp head/contrib/llvm/tools/llvm-xray/xray-extract.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-extract.cpp head/contrib/llvm/tools/llvm-xray/xray-graph-diff.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-graph-diff.cpp head/contrib/llvm/tools/llvm-xray/xray-graph.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-graph.cpp head/contrib/llvm/tools/llvm-xray/xray-registry.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-registry.cpp head/contrib/llvm/tools/llvm-xray/xray-stacks.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/llvm-xray/xray-stacks.cpp head/contrib/llvm/tools/opt/Debugify.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/tools/opt/Debugify.h head/contrib/llvm/utils/TableGen/PredicateExpander.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/utils/TableGen/PredicateExpander.cpp head/contrib/llvm/utils/TableGen/PredicateExpander.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/utils/TableGen/PredicateExpander.h head/contrib/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp head/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp - copied unchanged from r341824, projects/clang700-import/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.h - copied unchanged from r341824, projects/clang700-import/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.h head/lib/libc++fs/ - copied from r341824, projects/clang700-import/lib/libc++fs/ head/lib/libclang_rt/fuzzer/ - copied from r341824, projects/clang700-import/lib/libclang_rt/fuzzer/ head/lib/libclang_rt/fuzzer_no_main/ - copied from r341824, projects/clang700-import/lib/libclang_rt/fuzzer_no_main/ head/lib/libclang_rt/msan/ - copied from r341824, projects/clang700-import/lib/libclang_rt/msan/ head/lib/libclang_rt/msan_cxx/ - copied from r341824, projects/clang700-import/lib/libclang_rt/msan_cxx/ head/usr.bin/clang/llvm-mca/ - copied from r341824, projects/clang700-import/usr.bin/clang/llvm-mca/ Directory Properties: head/contrib/compiler-rt/lib/fuzzer/ (props changed) Deleted: head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_freebsd.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc head/contrib/compiler-rt/lib/scudo/scudo_interceptors.cpp head/contrib/compiler-rt/lib/xray/xray_fdr_logging_impl.h head/contrib/compiler-rt/lib/xray/xray_inmemory_log.cc head/contrib/compiler-rt/lib/xray/xray_inmemory_log.h head/contrib/libc++/src/experimental/filesystem/directory_iterator.cpp head/contrib/libc++/src/experimental/filesystem/filesystem_time_helper.h head/contrib/libc++/src/experimental/filesystem/operations.cpp head/contrib/libc++/src/experimental/filesystem/path.cpp head/contrib/llvm/include/llvm/Analysis/ObjectUtils.h head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/WebAssembly.def head/contrib/llvm/include/llvm/CodeGen/CommandFlags.def head/contrib/llvm/include/llvm/CodeGen/ExecutionDepsFix.h head/contrib/llvm/include/llvm/CodeGen/MachineValueType.h head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVDebugRecord.h head/contrib/llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.def head/contrib/llvm/include/llvm/Support/AMDGPUKernelDescriptor.h head/contrib/llvm/include/llvm/Support/CodeGenCWrappers.h head/contrib/llvm/include/llvm/Transforms/GCOVProfiler.h head/contrib/llvm/include/llvm/Transforms/InstrProfiling.h head/contrib/llvm/include/llvm/Transforms/PGOInstrumentation.h head/contrib/llvm/include/llvm/Transforms/SampleProfile.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyInstructions.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h head/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp head/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp head/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.h head/contrib/llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h head/contrib/llvm/lib/IR/ValueTypes.cpp head/contrib/llvm/lib/Target/AArch64/AArch64SchedM1.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h head/contrib/llvm/lib/Target/AMDGPU/Processors.td head/contrib/llvm/lib/Target/AMDGPU/R600Intrinsics.td head/contrib/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h head/contrib/llvm/lib/Target/Mips/MipsHazardSchedule.cpp head/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSection.h head/contrib/llvm/lib/Target/PowerPC/PPCMachineBasicBlockUtils.h head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h head/contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlanBuilder.h head/contrib/llvm/patches/ head/contrib/llvm/tools/clang/include/clang/Basic/VersionTuple.h head/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h head/contrib/llvm/tools/clang/include/clang/Sema/PrettyDeclStackTrace.h head/contrib/llvm/tools/clang/lib/Basic/VersionTuple.cpp head/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.h head/contrib/llvm/tools/lld/COFF/Strings.cpp head/contrib/llvm/tools/lld/COFF/Strings.h head/contrib/llvm/tools/lld/ELF/Strings.cpp head/contrib/llvm/tools/lld/ELF/Strings.h head/contrib/llvm/tools/lld/lib/Support/ head/contrib/llvm/tools/lld/tools/linker-script-test/ head/contrib/llvm/tools/lldb/include/lldb/API/SystemInitializerFull.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Args.h head/contrib/llvm/tools/lldb/include/lldb/Utility/History.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectArgs.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectArgs.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSyntax.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSyntax.h head/contrib/llvm/tools/lldb/source/Interpreter/Args.cpp head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/AddressSanitizer/ head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UndefinedBehaviorSanitizer/ head/contrib/llvm/tools/lldb/source/Plugins/Process/win-minidump/ head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnamesSet.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnamesSet.h head/contrib/llvm/tools/lldb/source/Utility/History.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h head/contrib/llvm/tools/lldb/tools/intel-mpx/ head/contrib/llvm/tools/lli/OrcLazyJIT.cpp head/contrib/llvm/tools/lli/OrcLazyJIT.h head/contrib/llvm/tools/llvm-pdbutil/Diff.cpp head/contrib/llvm/tools/llvm-pdbutil/Diff.h head/contrib/llvm/tools/llvm-pdbutil/DiffPrinter.cpp head/contrib/llvm/tools/llvm-pdbutil/DiffPrinter.h head/contrib/llvm/tools/llvm-xray/func-id-helper.cc head/contrib/llvm/tools/llvm-xray/llvm-xray.cc head/contrib/llvm/tools/llvm-xray/xray-account.cc head/contrib/llvm/tools/llvm-xray/xray-color-helper.cc head/contrib/llvm/tools/llvm-xray/xray-converter.cc head/contrib/llvm/tools/llvm-xray/xray-extract.cc head/contrib/llvm/tools/llvm-xray/xray-graph-diff.cc head/contrib/llvm/tools/llvm-xray/xray-graph.cc head/contrib/llvm/tools/llvm-xray/xray-registry.cc head/contrib/llvm/tools/llvm-xray/xray-stacks.cc head/lib/clang/include/llvm/Support/DataTypes.h head/usr.bin/clang/lld/ld.lld.1 Modified: head/ObsoleteFiles.inc head/UPDATING head/contrib/compiler-rt/LICENSE.TXT head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h head/contrib/compiler-rt/include/sanitizer/msan_interface.h head/contrib/compiler-rt/include/sanitizer/scudo_interface.h (contents, props changed) head/contrib/compiler-rt/include/xray/xray_interface.h (contents, props changed) head/contrib/compiler-rt/include/xray/xray_log_interface.h (contents, props changed) head/contrib/compiler-rt/include/xray/xray_records.h (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_allocator.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_allocator.h head/contrib/compiler-rt/lib/asan/asan_debugging.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_descriptions.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_descriptions.h (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_errors.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_errors.h (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_flags.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_flags.inc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_globals.cc head/contrib/compiler-rt/lib/asan/asan_globals_win.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_interceptors.cc head/contrib/compiler-rt/lib/asan/asan_interceptors.h head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_internal.h head/contrib/compiler-rt/lib/asan/asan_mac.cc head/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc head/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc head/contrib/compiler-rt/lib/asan/asan_mapping.h head/contrib/compiler-rt/lib/asan/asan_memory_profile.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_new_delete.cc head/contrib/compiler-rt/lib/asan/asan_poisoning.cc head/contrib/compiler-rt/lib/asan/asan_poisoning.h head/contrib/compiler-rt/lib/asan/asan_report.cc head/contrib/compiler-rt/lib/asan/asan_report.h head/contrib/compiler-rt/lib/asan/asan_rtl.cc head/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc (contents, props changed) head/contrib/compiler-rt/lib/asan/asan_thread.cc head/contrib/compiler-rt/lib/asan/asan_win.cc head/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc (contents, props changed) head/contrib/compiler-rt/lib/builtins/clear_cache.c (contents, props changed) head/contrib/compiler-rt/lib/builtins/clzdi2.c (contents, props changed) head/contrib/compiler-rt/lib/builtins/cpu_model.c (contents, props changed) head/contrib/compiler-rt/lib/builtins/ctzdi2.c (contents, props changed) head/contrib/compiler-rt/lib/builtins/emutls.c (contents, props changed) head/contrib/compiler-rt/lib/builtins/int_types.h (contents, props changed) head/contrib/compiler-rt/lib/builtins/os_version_check.c (contents, props changed) head/contrib/compiler-rt/lib/cfi/cfi.cc (contents, props changed) head/contrib/compiler-rt/lib/cfi/cfi_blacklist.txt (contents, props changed) head/contrib/compiler-rt/lib/dfsan/dfsan.cc (contents, props changed) head/contrib/compiler-rt/lib/dfsan/dfsan_custom.cc (contents, props changed) head/contrib/compiler-rt/lib/dfsan/done_abilist.txt (contents, props changed) head/contrib/compiler-rt/lib/esan/esan.cpp (contents, props changed) head/contrib/compiler-rt/lib/esan/esan_interceptors.cpp (contents, props changed) head/contrib/compiler-rt/lib/esan/esan_sideline_linux.cpp (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan.h (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_flags.inc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_report.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_thread.cc (contents, props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_thread.h (contents, props changed) head/contrib/compiler-rt/lib/interception/interception.h head/contrib/compiler-rt/lib/interception/interception_linux.cc head/contrib/compiler-rt/lib/interception/interception_linux.h head/contrib/compiler-rt/lib/interception/interception_win.cc head/contrib/compiler-rt/lib/lsan/lsan.cc head/contrib/compiler-rt/lib/lsan/lsan_allocator.cc head/contrib/compiler-rt/lib/lsan/lsan_allocator.h head/contrib/compiler-rt/lib/lsan/lsan_common.cc head/contrib/compiler-rt/lib/lsan/lsan_common.h head/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc (contents, props changed) head/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc head/contrib/compiler-rt/lib/lsan/lsan_malloc_mac.cc (contents, props changed) head/contrib/compiler-rt/lib/lsan/lsan_thread.cc head/contrib/compiler-rt/lib/msan/msan.cc head/contrib/compiler-rt/lib/msan/msan.h head/contrib/compiler-rt/lib/msan/msan_allocator.cc head/contrib/compiler-rt/lib/msan/msan_interceptors.cc head/contrib/compiler-rt/lib/msan/msan_interface_internal.h head/contrib/compiler-rt/lib/msan/msan_linux.cc head/contrib/compiler-rt/lib/msan/msan_new_delete.cc head/contrib/compiler-rt/lib/msan/msan_poisoning.cc (contents, props changed) head/contrib/compiler-rt/lib/msan/msan_report.cc head/contrib/compiler-rt/lib/profile/GCDAProfiling.c head/contrib/compiler-rt/lib/profile/InstrProfData.inc (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfiling.h (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingFile.c (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingMerge.c (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingMergeFile.c (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingPort.h (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h (contents, props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingValue.c (contents, props changed) head/contrib/compiler-rt/lib/safestack/safestack.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh (contents, props changed) head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_allocator.h (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_flags.cpp (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_platform.h (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_termination.cpp (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_tsd.h (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc (contents, props changed) head/contrib/compiler-rt/lib/scudo/scudo_utils.cpp (contents, props changed) head/contrib/compiler-rt/lib/stats/stats.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/go/test.c head/contrib/compiler-rt/lib/tsan/go/tsan_go.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.h (contents, props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc head/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc head/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc (contents, props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc head/contrib/compiler-rt/lib/ubsan/ubsan_diag.h head/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc (contents, props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc (contents, props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc head/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h head/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc head/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc (contents, props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_platform.h (contents, props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc (contents, props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cc (contents, props changed) head/contrib/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_AArch64.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_arm.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_buffer_queue.h (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_flags.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_flags.h (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_flags.inc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_init.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_interface.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_interface_internal.h (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_log_interface.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_mips.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_mips64.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_powerpc64.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_utils.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_utils.h (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_x86_64.cc (contents, props changed) head/contrib/compiler-rt/lib/xray/xray_x86_64.inc (contents, props changed) head/contrib/libc++/include/__bsd_locale_fallbacks.h (contents, props changed) head/contrib/libc++/include/__config head/contrib/libc++/include/__functional_03 head/contrib/libc++/include/__functional_base head/contrib/libc++/include/__hash_table head/contrib/libc++/include/__libcpp_version head/contrib/libc++/include/__locale head/contrib/libc++/include/__mutex_base head/contrib/libc++/include/__nullptr head/contrib/libc++/include/__sso_allocator head/contrib/libc++/include/__string head/contrib/libc++/include/__threading_support head/contrib/libc++/include/__tree head/contrib/libc++/include/algorithm head/contrib/libc++/include/any head/contrib/libc++/include/array head/contrib/libc++/include/atomic head/contrib/libc++/include/cfloat head/contrib/libc++/include/chrono head/contrib/libc++/include/cmath head/contrib/libc++/include/codecvt head/contrib/libc++/include/complex head/contrib/libc++/include/cstdlib head/contrib/libc++/include/ctime head/contrib/libc++/include/deque head/contrib/libc++/include/exception head/contrib/libc++/include/experimental/__config head/contrib/libc++/include/experimental/algorithm head/contrib/libc++/include/experimental/any head/contrib/libc++/include/experimental/chrono head/contrib/libc++/include/experimental/coroutine head/contrib/libc++/include/experimental/dynarray head/contrib/libc++/include/experimental/filesystem head/contrib/libc++/include/experimental/functional head/contrib/libc++/include/experimental/memory_resource head/contrib/libc++/include/experimental/numeric head/contrib/libc++/include/experimental/optional head/contrib/libc++/include/experimental/propagate_const head/contrib/libc++/include/experimental/ratio head/contrib/libc++/include/experimental/string_view head/contrib/libc++/include/experimental/system_error head/contrib/libc++/include/experimental/tuple head/contrib/libc++/include/experimental/type_traits head/contrib/libc++/include/float.h (contents, props changed) head/contrib/libc++/include/forward_list head/contrib/libc++/include/fstream head/contrib/libc++/include/functional head/contrib/libc++/include/future head/contrib/libc++/include/initializer_list head/contrib/libc++/include/ios head/contrib/libc++/include/istream head/contrib/libc++/include/iterator head/contrib/libc++/include/list head/contrib/libc++/include/locale head/contrib/libc++/include/map head/contrib/libc++/include/math.h (contents, props changed) head/contrib/libc++/include/memory head/contrib/libc++/include/module.modulemap head/contrib/libc++/include/new head/contrib/libc++/include/numeric head/contrib/libc++/include/optional head/contrib/libc++/include/ostream head/contrib/libc++/include/queue head/contrib/libc++/include/random head/contrib/libc++/include/regex head/contrib/libc++/include/set head/contrib/libc++/include/shared_mutex head/contrib/libc++/include/stack head/contrib/libc++/include/stdexcept head/contrib/libc++/include/stdio.h (contents, props changed) head/contrib/libc++/include/streambuf head/contrib/libc++/include/string head/contrib/libc++/include/string_view head/contrib/libc++/include/system_error head/contrib/libc++/include/tgmath.h (contents, props changed) head/contrib/libc++/include/thread head/contrib/libc++/include/tuple head/contrib/libc++/include/type_traits head/contrib/libc++/include/typeinfo head/contrib/libc++/include/unordered_map head/contrib/libc++/include/unordered_set head/contrib/libc++/include/utility head/contrib/libc++/include/valarray head/contrib/libc++/include/variant head/contrib/libc++/include/vector head/contrib/libc++/src/any.cpp (contents, props changed) head/contrib/libc++/src/bind.cpp (contents, props changed) head/contrib/libc++/src/chrono.cpp (contents, props changed) head/contrib/libc++/src/experimental/memory_resource.cpp (contents, props changed) head/contrib/libc++/src/future.cpp (contents, props changed) head/contrib/libc++/src/include/config_elast.h (contents, props changed) head/contrib/libc++/src/locale.cpp (contents, props changed) head/contrib/libc++/src/memory.cpp (contents, props changed) head/contrib/libc++/src/mutex.cpp (contents, props changed) head/contrib/libc++/src/new.cpp (contents, props changed) head/contrib/libc++/src/optional.cpp (contents, props changed) head/contrib/libc++/src/shared_mutex.cpp (contents, props changed) head/contrib/libc++/src/support/runtime/exception_msvc.ipp head/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp head/contrib/libc++/src/system_error.cpp (contents, props changed) head/contrib/libc++/src/typeinfo.cpp (contents, props changed) head/contrib/libc++/src/utility.cpp (contents, props changed) head/contrib/llvm/LICENSE.TXT head/contrib/llvm/include/llvm-c/Core.h head/contrib/llvm/include/llvm-c/DebugInfo.h (contents, props changed) head/contrib/llvm/include/llvm-c/Disassembler.h head/contrib/llvm/include/llvm-c/ExecutionEngine.h head/contrib/llvm/include/llvm-c/Initialization.h head/contrib/llvm/include/llvm-c/OrcBindings.h (contents, props changed) head/contrib/llvm/include/llvm-c/Support.h head/contrib/llvm/include/llvm-c/TargetMachine.h head/contrib/llvm/include/llvm-c/Transforms/Scalar.h head/contrib/llvm/include/llvm-c/Transforms/Vectorize.h head/contrib/llvm/include/llvm-c/Types.h (contents, props changed) head/contrib/llvm/include/llvm-c/lto.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/APSInt.h head/contrib/llvm/include/llvm/ADT/ArrayRef.h head/contrib/llvm/include/llvm/ADT/BitVector.h head/contrib/llvm/include/llvm/ADT/CachedHashString.h (contents, props changed) head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h head/contrib/llvm/include/llvm/ADT/DenseSet.h head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h head/contrib/llvm/include/llvm/ADT/EpochTracker.h (contents, props changed) head/contrib/llvm/include/llvm/ADT/GraphTraits.h head/contrib/llvm/include/llvm/ADT/Hashing.h head/contrib/llvm/include/llvm/ADT/ImmutableList.h head/contrib/llvm/include/llvm/ADT/ImmutableMap.h head/contrib/llvm/include/llvm/ADT/ImmutableSet.h head/contrib/llvm/include/llvm/ADT/MapVector.h head/contrib/llvm/include/llvm/ADT/None.h head/contrib/llvm/include/llvm/ADT/Optional.h head/contrib/llvm/include/llvm/ADT/PackedVector.h head/contrib/llvm/include/llvm/ADT/PointerUnion.h head/contrib/llvm/include/llvm/ADT/SCCIterator.h head/contrib/llvm/include/llvm/ADT/STLExtras.h head/contrib/llvm/include/llvm/ADT/ScopeExit.h (contents, props changed) head/contrib/llvm/include/llvm/ADT/SetVector.h head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h head/contrib/llvm/include/llvm/ADT/SmallSet.h head/contrib/llvm/include/llvm/ADT/SmallVector.h head/contrib/llvm/include/llvm/ADT/SparseMultiSet.h head/contrib/llvm/include/llvm/ADT/SparseSet.h head/contrib/llvm/include/llvm/ADT/Statistic.h head/contrib/llvm/include/llvm/ADT/StringExtras.h head/contrib/llvm/include/llvm/ADT/StringMap.h head/contrib/llvm/include/llvm/ADT/StringRef.h head/contrib/llvm/include/llvm/ADT/StringSwitch.h head/contrib/llvm/include/llvm/ADT/TinyPtrVector.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/UniqueVector.h head/contrib/llvm/include/llvm/ADT/VariadicFunction.h head/contrib/llvm/include/llvm/ADT/edit_distance.h head/contrib/llvm/include/llvm/ADT/ilist.h head/contrib/llvm/include/llvm/ADT/ilist_node.h head/contrib/llvm/include/llvm/ADT/ilist_node_options.h (contents, props changed) head/contrib/llvm/include/llvm/ADT/iterator.h head/contrib/llvm/include/llvm/ADT/iterator_range.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/AssumptionCache.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h head/contrib/llvm/include/llvm/Analysis/CFG.h head/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h head/contrib/llvm/include/llvm/Analysis/CallGraph.h head/contrib/llvm/include/llvm/Analysis/CaptureTracking.h head/contrib/llvm/include/llvm/Analysis/CodeMetrics.h head/contrib/llvm/include/llvm/Analysis/ConstantFolding.h head/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h head/contrib/llvm/include/llvm/Analysis/DemandedBits.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h head/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h head/contrib/llvm/include/llvm/Analysis/EHPersonalities.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h head/contrib/llvm/include/llvm/Analysis/Lint.h head/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/LoopInfo.h head/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h head/contrib/llvm/include/llvm/Analysis/LoopIterator.h head/contrib/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/MemoryLocation.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/MemorySSA.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/MemorySSAUpdater.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/OrderedBasicBlock.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/PHITransAddr.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/PostDominators.h head/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h head/contrib/llvm/include/llvm/Analysis/RegionInfo.h head/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h head/contrib/llvm/include/llvm/Analysis/RegionIterator.h head/contrib/llvm/include/llvm/Analysis/RegionPass.h head/contrib/llvm/include/llvm/Analysis/RegionPrinter.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h head/contrib/llvm/include/llvm/Analysis/SparsePropagation.h head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def head/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h head/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/ValueLattice.h (contents, props changed) head/contrib/llvm/include/llvm/Analysis/ValueTracking.h head/contrib/llvm/include/llvm/Analysis/VectorUtils.h (contents, props changed) head/contrib/llvm/include/llvm/AsmParser/Parser.h head/contrib/llvm/include/llvm/BinaryFormat/COFF.h (contents, props changed) head/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def head/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h (contents, props changed) head/contrib/llvm/include/llvm/BinaryFormat/ELF.h (contents, props changed) head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def head/contrib/llvm/include/llvm/BinaryFormat/MachO.h (contents, props changed) head/contrib/llvm/include/llvm/BinaryFormat/Magic.h (contents, props changed) head/contrib/llvm/include/llvm/BinaryFormat/Wasm.h (contents, props changed) head/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def head/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h (contents, props changed) head/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h head/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h head/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h head/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h head/contrib/llvm/include/llvm/CodeGen/Analysis.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h head/contrib/llvm/include/llvm/CodeGen/CostTable.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/DIE.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/FastISel.h head/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h head/contrib/llvm/include/llvm/CodeGen/GCStrategy.h head/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h head/contrib/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h head/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h head/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h head/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/MIRPrinter.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/MachORelocation.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h head/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h head/contrib/llvm/include/llvm/CodeGen/MachineDominators.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineFunction.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineOperand.h head/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h head/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h head/contrib/llvm/include/llvm/CodeGen/MacroFusion.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Math.h head/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h head/contrib/llvm/include/llvm/CodeGen/PBQPRAConstraint.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/ParallelCG.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/Passes.h head/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h head/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h head/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h head/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDFS.h head/contrib/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h head/contrib/llvm/include/llvm/CodeGen/StackMaps.h head/contrib/llvm/include/llvm/CodeGen/StackProtector.h head/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetLowering.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h head/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h (contents, props changed) head/contrib/llvm/include/llvm/CodeGen/ValueTypes.h head/contrib/llvm/include/llvm/CodeGen/ValueTypes.td head/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DIContext.h head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASupport.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h (contents, props changed) head/contrib/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h (contents, props changed) head/contrib/llvm/include/llvm/Demangle/Demangle.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h head/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h head/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h (contents, props changed) head/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h head/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h head/contrib/llvm/include/llvm/FuzzMutate/FuzzerCLI.h (contents, props changed) head/contrib/llvm/include/llvm/FuzzMutate/OpDescriptor.h (contents, props changed) head/contrib/llvm/include/llvm/IR/Attributes.h head/contrib/llvm/include/llvm/IR/Attributes.td head/contrib/llvm/include/llvm/IR/AutoUpgrade.h head/contrib/llvm/include/llvm/IR/BasicBlock.h head/contrib/llvm/include/llvm/IR/CFG.h head/contrib/llvm/include/llvm/IR/CallSite.h head/contrib/llvm/include/llvm/IR/CallingConv.h head/contrib/llvm/include/llvm/IR/Comdat.h head/contrib/llvm/include/llvm/IR/Constant.h head/contrib/llvm/include/llvm/IR/ConstantRange.h head/contrib/llvm/include/llvm/IR/Constants.h head/contrib/llvm/include/llvm/IR/DIBuilder.h head/contrib/llvm/include/llvm/IR/DataLayout.h head/contrib/llvm/include/llvm/IR/DebugInfo.h head/contrib/llvm/include/llvm/IR/DebugInfoFlags.def head/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h (contents, props changed) head/contrib/llvm/include/llvm/IR/DebugLoc.h head/contrib/llvm/include/llvm/IR/DerivedTypes.h head/contrib/llvm/include/llvm/IR/DiagnosticHandler.h (contents, props changed) head/contrib/llvm/include/llvm/IR/DiagnosticInfo.h head/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h head/contrib/llvm/include/llvm/IR/Dominators.h head/contrib/llvm/include/llvm/IR/Function.h head/contrib/llvm/include/llvm/IR/GlobalObject.h head/contrib/llvm/include/llvm/IR/GlobalValue.h head/contrib/llvm/include/llvm/IR/GlobalVariable.h head/contrib/llvm/include/llvm/IR/IRBuilder.h head/contrib/llvm/include/llvm/IR/IRPrintingPasses.h head/contrib/llvm/include/llvm/IR/InstVisitor.h head/contrib/llvm/include/llvm/IR/InstrTypes.h head/contrib/llvm/include/llvm/IR/Instruction.h head/contrib/llvm/include/llvm/IR/Instructions.h head/contrib/llvm/include/llvm/IR/IntrinsicInst.h head/contrib/llvm/include/llvm/IR/Intrinsics.h head/contrib/llvm/include/llvm/IR/Intrinsics.td head/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td head/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td head/contrib/llvm/include/llvm/IR/IntrinsicsARM.td head/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td head/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td head/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td head/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td head/contrib/llvm/include/llvm/IR/IntrinsicsX86.td head/contrib/llvm/include/llvm/IR/LLVMContext.h head/contrib/llvm/include/llvm/IR/LegacyPassManagers.h head/contrib/llvm/include/llvm/IR/MDBuilder.h head/contrib/llvm/include/llvm/IR/Mangler.h head/contrib/llvm/include/llvm/IR/Metadata.def head/contrib/llvm/include/llvm/IR/Metadata.h head/contrib/llvm/include/llvm/IR/Module.h head/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h (contents, props changed) head/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h (contents, props changed) head/contrib/llvm/include/llvm/IR/Operator.h head/contrib/llvm/include/llvm/IR/OptBisect.h (contents, props changed) head/contrib/llvm/include/llvm/IR/PassManager.h head/contrib/llvm/include/llvm/IR/PassManagerInternal.h (contents, props changed) head/contrib/llvm/include/llvm/IR/PatternMatch.h head/contrib/llvm/include/llvm/IR/ProfileSummary.h (contents, props changed) head/contrib/llvm/include/llvm/IR/Statepoint.h (contents, props changed) head/contrib/llvm/include/llvm/IR/TrackingMDRef.h (contents, props changed) head/contrib/llvm/include/llvm/IR/Type.h head/contrib/llvm/include/llvm/IR/Use.h head/contrib/llvm/include/llvm/IR/UseListOrder.h (contents, props changed) head/contrib/llvm/include/llvm/IR/User.h head/contrib/llvm/include/llvm/IR/Value.h head/contrib/llvm/include/llvm/IR/ValueHandle.h head/contrib/llvm/include/llvm/IR/ValueMap.h head/contrib/llvm/include/llvm/IR/ValueSymbolTable.h head/contrib/llvm/include/llvm/IR/Verifier.h head/contrib/llvm/include/llvm/IRReader/IRReader.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/LTO/Caching.h (contents, props changed) head/contrib/llvm/include/llvm/LTO/Config.h (contents, props changed) head/contrib/llvm/include/llvm/LTO/LTO.h (contents, props changed) head/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h (contents, props changed) head/contrib/llvm/include/llvm/LinkAllIR.h head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/Linker/Linker.h head/contrib/llvm/include/llvm/MC/MCAsmBackend.h head/contrib/llvm/include/llvm/MC/MCAsmInfo.h head/contrib/llvm/include/llvm/MC/MCAsmLayout.h head/contrib/llvm/include/llvm/MC/MCAsmMacro.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCCodePadder.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCCodeView.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCELFStreamer.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCFixup.h head/contrib/llvm/include/llvm/MC/MCFixupKindInfo.h head/contrib/llvm/include/llvm/MC/MCFragment.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCInst.h head/contrib/llvm/include/llvm/MC/MCInstBuilder.h head/contrib/llvm/include/llvm/MC/MCInstPrinter.h head/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h head/contrib/llvm/include/llvm/MC/MCInstrDesc.h head/contrib/llvm/include/llvm/MC/MCInstrInfo.h head/contrib/llvm/include/llvm/MC/MCInstrItineraries.h head/contrib/llvm/include/llvm/MC/MCLabel.h head/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCObjectWriter.h head/contrib/llvm/include/llvm/MC/MCParser/AsmCond.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h head/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCRegisterInfo.h head/contrib/llvm/include/llvm/MC/MCSchedule.h head/contrib/llvm/include/llvm/MC/MCSection.h head/contrib/llvm/include/llvm/MC/MCSectionWasm.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h head/contrib/llvm/include/llvm/MC/MCSymbol.h head/contrib/llvm/include/llvm/MC/MCSymbolMachO.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCSymbolWasm.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCTargetOptions.h head/contrib/llvm/include/llvm/MC/MCValue.h head/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCWasmStreamer.h (contents, props changed) head/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h head/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h head/contrib/llvm/include/llvm/MC/StringTableBuilder.h head/contrib/llvm/include/llvm/Object/Archive.h head/contrib/llvm/include/llvm/Object/Binary.h head/contrib/llvm/include/llvm/Object/COFF.h head/contrib/llvm/include/llvm/Object/COFFImportFile.h (contents, props changed) head/contrib/llvm/include/llvm/Object/Decompressor.h (contents, props changed) head/contrib/llvm/include/llvm/Object/ELF.h head/contrib/llvm/include/llvm/Object/ELFObjectFile.h head/contrib/llvm/include/llvm/Object/ELFTypes.h head/contrib/llvm/include/llvm/Object/IRObjectFile.h head/contrib/llvm/include/llvm/Object/MachO.h head/contrib/llvm/include/llvm/Object/MachOUniversal.h head/contrib/llvm/include/llvm/Object/ModuleSymbolTable.h (contents, props changed) head/contrib/llvm/include/llvm/Object/ObjectFile.h head/contrib/llvm/include/llvm/Object/RelocVisitor.h head/contrib/llvm/include/llvm/Object/Wasm.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/DWARFEmitter.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h (contents, props changed) head/contrib/llvm/include/llvm/ObjectYAML/YAML.h (contents, props changed) head/contrib/llvm/include/llvm/Option/Arg.h head/contrib/llvm/include/llvm/Option/ArgList.h head/contrib/llvm/include/llvm/Option/OptTable.h head/contrib/llvm/include/llvm/Option/Option.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/PassAnalysisSupport.h head/contrib/llvm/include/llvm/PassRegistry.h head/contrib/llvm/include/llvm/Passes/PassBuilder.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/GCOV.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/InstrProf.h head/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h head/contrib/llvm/include/llvm/ProfileData/ProfileCommon.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/SampleProf.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h (contents, props changed) head/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h (contents, props changed) head/contrib/llvm/include/llvm/Support/AArch64TargetParser.def head/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h (contents, props changed) head/contrib/llvm/include/llvm/Support/ARMTargetParser.def head/contrib/llvm/include/llvm/Support/AlignOf.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/AtomicOrdering.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BinaryByteStream.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BinaryStream.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BinaryStreamArray.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BinaryStreamReader.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BinaryStreamRef.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BinaryStreamWriter.h (contents, props changed) head/contrib/llvm/include/llvm/Support/BlockFrequency.h head/contrib/llvm/include/llvm/Support/BranchProbability.h head/contrib/llvm/include/llvm/Support/CachePruning.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Casting.h head/contrib/llvm/include/llvm/Support/CodeGenCoverage.h (contents, props changed) head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/ConvertUTF.h head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h head/contrib/llvm/include/llvm/Support/DataExtractor.h head/contrib/llvm/include/llvm/Support/Debug.h head/contrib/llvm/include/llvm/Support/DebugCounter.h (contents, props changed) head/contrib/llvm/include/llvm/Support/DynamicLibrary.h head/contrib/llvm/include/llvm/Support/Endian.h head/contrib/llvm/include/llvm/Support/EndianStream.h head/contrib/llvm/include/llvm/Support/Errc.h head/contrib/llvm/include/llvm/Support/Errno.h head/contrib/llvm/include/llvm/Support/Error.h (contents, props changed) head/contrib/llvm/include/llvm/Support/ErrorHandling.h head/contrib/llvm/include/llvm/Support/ErrorOr.h head/contrib/llvm/include/llvm/Support/FileOutputBuffer.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/FormatAdapters.h (contents, props changed) head/contrib/llvm/include/llvm/Support/FormatVariadic.h (contents, props changed) head/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h (contents, props changed) head/contrib/llvm/include/llvm/Support/GenericDomTree.h head/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h head/contrib/llvm/include/llvm/Support/GraphWriter.h head/contrib/llvm/include/llvm/Support/Host.h head/contrib/llvm/include/llvm/Support/JamCRC.h (contents, props changed) head/contrib/llvm/include/llvm/Support/KnownBits.h (contents, props changed) head/contrib/llvm/include/llvm/Support/LEB128.h head/contrib/llvm/include/llvm/Support/LineIterator.h head/contrib/llvm/include/llvm/Support/LockFileManager.h head/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h (contents, props changed) head/contrib/llvm/include/llvm/Support/MD5.h head/contrib/llvm/include/llvm/Support/MathExtras.h head/contrib/llvm/include/llvm/Support/Memory.h head/contrib/llvm/include/llvm/Support/MemoryBuffer.h head/contrib/llvm/include/llvm/Support/MipsABIFlags.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Mutex.h head/contrib/llvm/include/llvm/Support/MutexGuard.h head/contrib/llvm/include/llvm/Support/OnDiskHashTable.h head/contrib/llvm/include/llvm/Support/Options.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Parallel.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Path.h head/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h head/contrib/llvm/include/llvm/Support/Process.h head/contrib/llvm/include/llvm/Support/Program.h head/contrib/llvm/include/llvm/Support/RWMutex.h head/contrib/llvm/include/llvm/Support/Regex.h head/contrib/llvm/include/llvm/Support/SMLoc.h head/contrib/llvm/include/llvm/Support/SaveAndRestore.h head/contrib/llvm/include/llvm/Support/ScaledNumber.h head/contrib/llvm/include/llvm/Support/ScopedPrinter.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Signals.h head/contrib/llvm/include/llvm/Support/SourceMgr.h head/contrib/llvm/include/llvm/Support/StringSaver.h (contents, props changed) head/contrib/llvm/include/llvm/Support/SystemUtils.h head/contrib/llvm/include/llvm/Support/TargetParser.h (contents, props changed) head/contrib/llvm/include/llvm/Support/TargetRegistry.h head/contrib/llvm/include/llvm/Support/ThreadLocal.h head/contrib/llvm/include/llvm/Support/ThreadPool.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Threading.h head/contrib/llvm/include/llvm/Support/Timer.h head/contrib/llvm/include/llvm/Support/ToolOutputFile.h head/contrib/llvm/include/llvm/Support/TrailingObjects.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Unicode.h head/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h head/contrib/llvm/include/llvm/Support/UniqueLock.h (contents, props changed) head/contrib/llvm/include/llvm/Support/Win64EH.h head/contrib/llvm/include/llvm/Support/X86TargetParser.def head/contrib/llvm/include/llvm/Support/YAMLParser.h head/contrib/llvm/include/llvm/Support/YAMLTraits.h head/contrib/llvm/include/llvm/Support/raw_ostream.h head/contrib/llvm/include/llvm/Support/type_traits.h head/contrib/llvm/include/llvm/Support/xxhash.h (contents, props changed) head/contrib/llvm/include/llvm/TableGen/Record.h head/contrib/llvm/include/llvm/TableGen/SearchableTable.td head/contrib/llvm/include/llvm/Target/GenericOpcodes.td head/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td head/contrib/llvm/include/llvm/Target/GlobalISel/Target.td head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetCallingConv.td head/contrib/llvm/include/llvm/Target/TargetItinerary.td head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetSchedule.td head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Testing/Support/Error.h (contents, props changed) head/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/IPO/Inliner.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombine.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/NewGVN.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/Reassociate.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h head/contrib/llvm/include/llvm/Transforms/Utils/Evaluator.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/IntegerDivision.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopSimplify.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/LoopVersioning.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/OrderedInstructions.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h head/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h head/contrib/llvm/include/llvm/Transforms/Vectorize.h head/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h (contents, props changed) head/contrib/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h (contents, props changed) head/contrib/llvm/include/llvm/XRay/XRayRecord.h (contents, props changed) head/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h (contents, props changed) head/contrib/llvm/include/llvm/module.modulemap head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp head/contrib/llvm/lib/Analysis/AliasAnalysisSummary.h (contents, props changed) head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp head/contrib/llvm/lib/Analysis/CFGPrinter.cpp head/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/CFLGraph.h (contents, props changed) head/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp head/contrib/llvm/lib/Analysis/CallGraph.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/CodeMetrics.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/Delinearization.cpp head/contrib/llvm/lib/Analysis/DemandedBits.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/DominanceFrontier.cpp head/contrib/llvm/lib/Analysis/EHPersonalities.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/GlobalsModRef.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/IVUsers.cpp head/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/InlineCost.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/LazyCallGraph.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/LoopInfo.cpp head/contrib/llvm/lib/Analysis/LoopPass.cpp head/contrib/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/MemDepPrinter.cpp head/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/MemoryLocation.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/MemorySSA.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/PHITransAddr.cpp head/contrib/llvm/lib/Analysis/PostDominators.cpp head/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/RegionInfo.cpp head/contrib/llvm/lib/Analysis/RegionPass.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/StratifiedSets.h (contents, props changed) head/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp (contents, props changed) head/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp head/contrib/llvm/lib/Analysis/Trace.cpp head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/Analysis/VectorUtils.cpp (contents, props changed) head/contrib/llvm/lib/AsmParser/LLLexer.cpp head/contrib/llvm/lib/AsmParser/LLLexer.h head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/AsmParser/LLParser.h head/contrib/llvm/lib/AsmParser/LLToken.h head/contrib/llvm/lib/AsmParser/Parser.cpp head/contrib/llvm/lib/BinaryFormat/Dwarf.cpp (contents, props changed) head/contrib/llvm/lib/BinaryFormat/Magic.cpp (contents, props changed) head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp (contents, props changed) head/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp (contents, props changed) head/contrib/llvm/lib/Bitcode/Writer/BitWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/AllocationOrder.cpp head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AntiDepBreaker.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h head/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h (contents, props changed) head/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.h head/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CodeGen.cpp head/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp head/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp head/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp head/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp head/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp head/contrib/llvm/lib/CodeGen/ExpandReductions.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/FaultMaps.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/FuncletLayout.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GCMetadata.cpp head/contrib/llvm/lib/CodeGen/GCRootLowering.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/GlobalMerge.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.cpp head/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp head/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp head/contrib/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/LexicalScopes.cpp head/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp head/contrib/llvm/lib/CodeGen/LiveIntervals.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp head/contrib/llvm/lib/CodeGen/LiveRangeCalc.h head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp head/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp head/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/LiveVariables.cpp head/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp head/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRParser/MIParser.h (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MIRPrinter.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineCombiner.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp head/contrib/llvm/lib/CodeGen/MachineDominators.cpp head/contrib/llvm/lib/CodeGen/MachineFrameInfo.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachineFunction.cpp head/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp head/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp head/contrib/llvm/lib/CodeGen/MachineOperand.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachineOutliner.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp head/contrib/llvm/lib/CodeGen/MachineScheduler.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/MacroFusion.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp head/contrib/llvm/lib/CodeGen/PHIElimination.cpp head/contrib/llvm/lib/CodeGen/ParallelCG.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/PatchableFunction.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp head/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/RegAllocBase.cpp head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp head/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp head/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp head/contrib/llvm/lib/CodeGen/RegisterPressure.cpp head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp head/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SafeStack.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SafeStackLayout.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SafeStackLayout.h (contents, props changed) head/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.cpp head/contrib/llvm/lib/CodeGen/SplitKit.cpp head/contrib/llvm/lib/CodeGen/SplitKit.h head/contrib/llvm/lib/CodeGen/StackColoring.cpp head/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp head/contrib/llvm/lib/CodeGen/StackMaps.cpp head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp head/contrib/llvm/lib/CodeGen/TailDuplication.cpp head/contrib/llvm/lib/CodeGen/TailDuplicator.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp head/contrib/llvm/lib/CodeGen/TargetSchedule.cpp head/contrib/llvm/lib/CodeGen/TargetSubtargetInfo.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp (contents, props changed) head/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/MSF/MSFBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/MSF/MSFCommon.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/HashTable.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp (contents, props changed) head/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp (contents, props changed) head/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp head/contrib/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c head/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h head/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp head/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp head/contrib/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.h (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h head/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp (contents, props changed) head/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp head/contrib/llvm/lib/FuzzMutate/FuzzerCLI.cpp (contents, props changed) head/contrib/llvm/lib/FuzzMutate/IRMutator.cpp (contents, props changed) head/contrib/llvm/lib/IR/AsmWriter.cpp head/contrib/llvm/lib/IR/AttributeImpl.h head/contrib/llvm/lib/IR/Attributes.cpp head/contrib/llvm/lib/IR/AutoUpgrade.cpp head/contrib/llvm/lib/IR/BasicBlock.cpp head/contrib/llvm/lib/IR/Comdat.cpp head/contrib/llvm/lib/IR/ConstantFold.cpp head/contrib/llvm/lib/IR/ConstantRange.cpp head/contrib/llvm/lib/IR/Constants.cpp head/contrib/llvm/lib/IR/ConstantsContext.h head/contrib/llvm/lib/IR/Core.cpp head/contrib/llvm/lib/IR/DIBuilder.cpp head/contrib/llvm/lib/IR/DataLayout.cpp head/contrib/llvm/lib/IR/DebugInfo.cpp head/contrib/llvm/lib/IR/DebugInfoMetadata.cpp (contents, props changed) head/contrib/llvm/lib/IR/DebugLoc.cpp head/contrib/llvm/lib/IR/DiagnosticHandler.cpp (contents, props changed) head/contrib/llvm/lib/IR/DiagnosticInfo.cpp head/contrib/llvm/lib/IR/Dominators.cpp head/contrib/llvm/lib/IR/Function.cpp head/contrib/llvm/lib/IR/Globals.cpp head/contrib/llvm/lib/IR/IRBuilder.cpp head/contrib/llvm/lib/IR/IRPrintingPasses.cpp head/contrib/llvm/lib/IR/InlineAsm.cpp head/contrib/llvm/lib/IR/Instruction.cpp head/contrib/llvm/lib/IR/Instructions.cpp head/contrib/llvm/lib/IR/IntrinsicInst.cpp head/contrib/llvm/lib/IR/LLVMContext.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.cpp head/contrib/llvm/lib/IR/LLVMContextImpl.h head/contrib/llvm/lib/IR/LegacyPassManager.cpp head/contrib/llvm/lib/IR/MDBuilder.cpp head/contrib/llvm/lib/IR/Mangler.cpp head/contrib/llvm/lib/IR/Metadata.cpp head/contrib/llvm/lib/IR/Module.cpp head/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp (contents, props changed) head/contrib/llvm/lib/IR/Operator.cpp (contents, props changed) head/contrib/llvm/lib/IR/OptBisect.cpp (contents, props changed) head/contrib/llvm/lib/IR/Pass.cpp head/contrib/llvm/lib/IR/ProfileSummary.cpp (contents, props changed) head/contrib/llvm/lib/IR/SafepointIRVerifier.cpp (contents, props changed) head/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h head/contrib/llvm/lib/IR/Type.cpp head/contrib/llvm/lib/IR/TypeFinder.cpp head/contrib/llvm/lib/IR/Value.cpp head/contrib/llvm/lib/IR/ValueSymbolTable.cpp head/contrib/llvm/lib/IR/Verifier.cpp head/contrib/llvm/lib/IRReader/IRReader.cpp head/contrib/llvm/lib/LTO/Caching.cpp (contents, props changed) head/contrib/llvm/lib/LTO/LTO.cpp (contents, props changed) head/contrib/llvm/lib/LTO/LTOBackend.cpp (contents, props changed) head/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp head/contrib/llvm/lib/LTO/LTOModule.cpp head/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp (contents, props changed) head/contrib/llvm/lib/Linker/IRMover.cpp (contents, props changed) head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmBackend.cpp head/contrib/llvm/lib/MC/MCAsmInfo.cpp head/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCCodeView.cpp (contents, props changed) head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELFStreamer.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCFragment.cpp (contents, props changed) head/contrib/llvm/lib/MC/MCInst.cpp head/contrib/llvm/lib/MC/MCInstrAnalysis.cpp head/contrib/llvm/lib/MC/MCLabel.cpp head/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCNullStreamer.cpp head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp head/contrib/llvm/lib/MC/MCSchedule.cpp (contents, props changed) head/contrib/llvm/lib/MC/MCSection.cpp head/contrib/llvm/lib/MC/MCSectionCOFF.cpp head/contrib/llvm/lib/MC/MCSectionELF.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCSubtargetInfo.cpp head/contrib/llvm/lib/MC/MCSymbol.cpp head/contrib/llvm/lib/MC/MCValue.cpp head/contrib/llvm/lib/MC/MCWasmObjectTargetWriter.cpp (contents, props changed) head/contrib/llvm/lib/MC/MCWasmStreamer.cpp (contents, props changed) head/contrib/llvm/lib/MC/MCWinCOFFStreamer.cpp (contents, props changed) head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/StringTableBuilder.cpp head/contrib/llvm/lib/MC/SubtargetFeature.cpp head/contrib/llvm/lib/MC/WasmObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Object/Archive.cpp head/contrib/llvm/lib/Object/ArchiveWriter.cpp (contents, props changed) head/contrib/llvm/lib/Object/Binary.cpp head/contrib/llvm/lib/Object/COFFImportFile.cpp (contents, props changed) head/contrib/llvm/lib/Object/COFFModuleDefinition.cpp (contents, props changed) head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/ELF.cpp head/contrib/llvm/lib/Object/ELFObjectFile.cpp head/contrib/llvm/lib/Object/IRSymtab.cpp (contents, props changed) head/contrib/llvm/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Object/ModuleSymbolTable.cpp (contents, props changed) head/contrib/llvm/lib/Object/Object.cpp head/contrib/llvm/lib/Object/ObjectFile.cpp head/contrib/llvm/lib/Object/RecordStreamer.cpp head/contrib/llvm/lib/Object/RecordStreamer.h head/contrib/llvm/lib/Object/SymbolSize.cpp (contents, props changed) head/contrib/llvm/lib/Object/SymbolicFile.cpp head/contrib/llvm/lib/Object/WasmObjectFile.cpp (contents, props changed) head/contrib/llvm/lib/Object/WindowsResource.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/DWARFVisitor.h (contents, props changed) head/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp (contents, props changed) head/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp (contents, props changed) head/contrib/llvm/lib/Option/Arg.cpp head/contrib/llvm/lib/Option/ArgList.cpp head/contrib/llvm/lib/Option/OptTable.cpp head/contrib/llvm/lib/Option/Option.cpp head/contrib/llvm/lib/Passes/PassBuilder.cpp (contents, props changed) head/contrib/llvm/lib/Passes/PassRegistry.def head/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/GCOV.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/InstrProf.cpp head/contrib/llvm/lib/ProfileData/InstrProfReader.cpp head/contrib/llvm/lib/ProfileData/InstrProfWriter.cpp head/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/SampleProf.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/SampleProfReader.cpp (contents, props changed) head/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp (contents, props changed) head/contrib/llvm/lib/Support/AMDGPUMetadata.cpp (contents, props changed) head/contrib/llvm/lib/Support/APFloat.cpp head/contrib/llvm/lib/Support/APInt.cpp head/contrib/llvm/lib/Support/ARMAttributeParser.cpp (contents, props changed) head/contrib/llvm/lib/Support/BinaryStreamRef.cpp (contents, props changed) head/contrib/llvm/lib/Support/BranchProbability.cpp head/contrib/llvm/lib/Support/COM.cpp (contents, props changed) head/contrib/llvm/lib/Support/CachePruning.cpp (contents, props changed) head/contrib/llvm/lib/Support/Chrono.cpp (contents, props changed) head/contrib/llvm/lib/Support/CodeGenCoverage.cpp (contents, props changed) head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/ConvertUTF.cpp (contents, props changed) head/contrib/llvm/lib/Support/CrashRecoveryContext.cpp head/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp head/contrib/llvm/lib/Support/Debug.cpp head/contrib/llvm/lib/Support/DebugCounter.cpp (contents, props changed) head/contrib/llvm/lib/Support/DynamicLibrary.cpp head/contrib/llvm/lib/Support/Errno.cpp head/contrib/llvm/lib/Support/Error.cpp (contents, props changed) head/contrib/llvm/lib/Support/ErrorHandling.cpp head/contrib/llvm/lib/Support/FileOutputBuffer.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/FormattedStream.cpp head/contrib/llvm/lib/Support/GraphWriter.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/Locale.cpp head/contrib/llvm/lib/Support/LockFileManager.cpp head/contrib/llvm/lib/Support/MD5.cpp head/contrib/llvm/lib/Support/ManagedStatic.cpp head/contrib/llvm/lib/Support/Memory.cpp head/contrib/llvm/lib/Support/MemoryBuffer.cpp head/contrib/llvm/lib/Support/Mutex.cpp head/contrib/llvm/lib/Support/NativeFormatting.cpp (contents, props changed) head/contrib/llvm/lib/Support/Parallel.cpp (contents, props changed) head/contrib/llvm/lib/Support/Path.cpp head/contrib/llvm/lib/Support/PrettyStackTrace.cpp head/contrib/llvm/lib/Support/Process.cpp head/contrib/llvm/lib/Support/Program.cpp head/contrib/llvm/lib/Support/RWMutex.cpp head/contrib/llvm/lib/Support/RandomNumberGenerator.cpp head/contrib/llvm/lib/Support/Regex.cpp head/contrib/llvm/lib/Support/SHA1.cpp (contents, props changed) head/contrib/llvm/lib/Support/Signals.cpp head/contrib/llvm/lib/Support/SmallPtrSet.cpp head/contrib/llvm/lib/Support/SmallVector.cpp head/contrib/llvm/lib/Support/SourceMgr.cpp head/contrib/llvm/lib/Support/Statistic.cpp head/contrib/llvm/lib/Support/StringExtras.cpp head/contrib/llvm/lib/Support/StringMap.cpp head/contrib/llvm/lib/Support/StringPool.cpp head/contrib/llvm/lib/Support/StringRef.cpp head/contrib/llvm/lib/Support/StringSaver.cpp (contents, props changed) head/contrib/llvm/lib/Support/TarWriter.cpp (contents, props changed) head/contrib/llvm/lib/Support/TargetParser.cpp (contents, props changed) head/contrib/llvm/lib/Support/TargetRegistry.cpp head/contrib/llvm/lib/Support/ThreadLocal.cpp head/contrib/llvm/lib/Support/Threading.cpp head/contrib/llvm/lib/Support/Timer.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Twine.cpp head/contrib/llvm/lib/Support/Unix/Host.inc head/contrib/llvm/lib/Support/Unix/Memory.inc head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Process.inc head/contrib/llvm/lib/Support/Unix/Program.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Unix/ThreadLocal.inc head/contrib/llvm/lib/Support/Unix/Threading.inc (contents, props changed) head/contrib/llvm/lib/Support/Unix/Unix.h head/contrib/llvm/lib/Support/Unix/Watchdog.inc head/contrib/llvm/lib/Support/Watchdog.cpp head/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc head/contrib/llvm/lib/Support/Windows/Host.inc head/contrib/llvm/lib/Support/Windows/Path.inc head/contrib/llvm/lib/Support/Windows/Process.inc head/contrib/llvm/lib/Support/Windows/Program.inc head/contrib/llvm/lib/Support/Windows/RWMutex.inc head/contrib/llvm/lib/Support/Windows/Signals.inc head/contrib/llvm/lib/Support/Windows/WindowsSupport.h head/contrib/llvm/lib/Support/YAMLParser.cpp head/contrib/llvm/lib/Support/YAMLTraits.cpp head/contrib/llvm/lib/Support/circular_raw_ostream.cpp head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/Support/regcomp.c head/contrib/llvm/lib/Support/regengine.inc head/contrib/llvm/lib/Support/regex_impl.h head/contrib/llvm/lib/Support/xxhash.cpp (contents, props changed) head/contrib/llvm/lib/TableGen/Error.cpp head/contrib/llvm/lib/TableGen/Main.cpp head/contrib/llvm/lib/TableGen/Record.cpp head/contrib/llvm/lib/TableGen/StringMatcher.cpp head/contrib/llvm/lib/TableGen/TGLexer.cpp head/contrib/llvm/lib/TableGen/TGLexer.h head/contrib/llvm/lib/TableGen/TGParser.cpp head/contrib/llvm/lib/TableGen/TGParser.h head/contrib/llvm/lib/Target/AArch64/AArch64.td head/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td head/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp head/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp head/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp head/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp head/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h head/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedKryo.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX.td head/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td head/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp head/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h head/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td head/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp head/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp head/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp head/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp head/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsics.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDKernelCodeT.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td head/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td head/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td head/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td head/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td head/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td head/contrib/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600Defines.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600InstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td head/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600Processors.td head/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIDebuggerInsertNops.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIDefines.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIFixVGPRCopies.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td head/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td head/contrib/llvm/lib/Target/AMDGPU/SISchedule.td head/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td head/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td head/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td head/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td head/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td head/contrib/llvm/lib/Target/ARC/ARCAsmPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCBranchFinalize.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCFrameLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCInstrFormats.td head/contrib/llvm/lib/Target/ARC/ARCInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCInstrInfo.td head/contrib/llvm/lib/Target/ARC/ARCMCInstLower.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCMCInstLower.h (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.h (contents, props changed) head/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/InstPrinter/ARCInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARC/InstPrinter/ARCInstPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInfo.h (contents, props changed) head/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARM.h head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARM/ARMCallingConv.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.td head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h head/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/ARM/ARMRegisterBanks.td head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA57.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td head/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td head/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h (contents, props changed) head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h (contents, props changed) head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h (contents, props changed) head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h (contents, props changed) head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp head/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp head/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp head/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/AVR.h (contents, props changed) head/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp (contents, props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPF.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPF.td head/contrib/llvm/lib/Target/BPF/BPFCallingConv.td head/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td head/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFSubtarget.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFSubtarget.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h (contents, props changed) head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp (contents, props changed) head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/BitTracker.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/Hexagon.h head/contrib/llvm/lib/Target/Hexagon/Hexagon.td head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h head/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td head/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h head/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td head/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td head/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h head/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td head/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td head/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h head/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td head/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h head/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp head/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h (contents, props changed) head/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp head/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiInstrFormats.td head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.td head/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp (contents, props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h head/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp head/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp head/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp head/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp (contents, props changed) head/contrib/llvm/lib/Target/Mips/Mips.h head/contrib/llvm/lib/Target/Mips/Mips.td head/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp head/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h head/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td head/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsCondMov.td head/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp head/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp head/contrib/llvm/lib/Target/Mips/MipsEVAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsEVAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp head/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h head/contrib/llvm/lib/Target/Mips/MipsMSAInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp head/contrib/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp head/contrib/llvm/lib/Target/Mips/MipsOs16.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsSchedule.td head/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td head/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td head/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h head/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTX.td head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h head/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h head/contrib/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h head/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td head/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td head/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h head/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h (contents, props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/Nios2/Nios2InstrFormats.td head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.td head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h (contents, props changed) head/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp head/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h head/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td head/contrib/llvm/lib/Target/PowerPC/PPC.h head/contrib/llvm/lib/Target/PowerPC/PPC.td head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td head/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrSPE.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td head/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp head/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td head/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h head/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp (contents, props changed) head/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/InstPrinter/RISCVInstPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCV.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCV.td head/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td head/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.td head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h (contents, props changed) head/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp (contents, props changed) head/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp head/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp head/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp head/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp head/contrib/llvm/lib/Target/Sparc/LeonFeatures.td head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h head/contrib/llvm/lib/Target/Sparc/Sparc.h head/contrib/llvm/lib/Target/Sparc/Sparc.td head/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h head/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp head/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp head/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h head/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h head/contrib/llvm/lib/Target/SystemZ/SystemZ.h head/contrib/llvm/lib/Target/SystemZ/SystemZ.td head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h head/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.td head/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp (contents, props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp (contents, props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h (contents, props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp (contents, props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h (contents, props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZOperands.td head/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td head/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td head/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/Target.cpp head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachine.cpp head/contrib/llvm/lib/Target/TargetMachineC.cpp head/contrib/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/README.txt (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.h (contents, props changed) head/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt (contents, props changed) head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h head/contrib/llvm/lib/Target/X86/X86.h head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86AsmPrinter.h head/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp head/contrib/llvm/lib/Target/X86/X86CallLowering.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86CallingConv.h head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86EvexToVex.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp head/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp head/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.h head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86Instr3DNow.td head/contrib/llvm/lib/Target/X86/X86InstrAVX512.td head/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td head/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrExtension.td head/contrib/llvm/lib/Target/X86/X86InstrFMA.td head/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.h (contents, props changed) head/contrib/llvm/lib/Target/X86/X86InstrFPStack.td head/contrib/llvm/lib/Target/X86/X86InstrFormats.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrMMX.td head/contrib/llvm/lib/Target/X86/X86InstrMPX.td head/contrib/llvm/lib/Target/X86/X86InstrSGX.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrSVM.td head/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td head/contrib/llvm/lib/Target/X86/X86InstrSystem.td head/contrib/llvm/lib/Target/X86/X86InstrVMX.td head/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td head/contrib/llvm/lib/Target/X86/X86InstrXOP.td head/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h (contents, props changed) head/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp head/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h head/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp head/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp head/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td head/contrib/llvm/lib/Target/X86/X86SchedHaswell.td head/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td head/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td head/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td head/contrib/llvm/lib/Target/X86/X86Schedule.td head/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td head/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td head/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td head/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp head/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h (contents, props changed) head/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp head/contrib/llvm/lib/Target/X86/X86WinAllocaExpander.cpp (contents, props changed) head/contrib/llvm/lib/Target/X86/X86WinEHState.cpp (contents, props changed) head/contrib/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp head/contrib/llvm/lib/Target/XCore/InstPrinter/XCoreInstPrinter.h head/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp head/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp head/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.cpp head/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.h head/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h head/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h head/contrib/llvm/lib/Testing/Support/Error.cpp (contents, props changed) head/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp (contents, props changed) head/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp (contents, props changed) head/contrib/llvm/lib/ToolDrivers/llvm-lib/Options.td head/contrib/llvm/lib/Transforms/Coroutines/CoroEarly.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Coroutines/CoroInternal.h (contents, props changed) head/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp head/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp head/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp head/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/Internalize.cpp head/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp head/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp head/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h (contents, props changed) head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp head/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp head/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp head/contrib/llvm/lib/Transforms/ObjCARC/BlotMapVector.h (contents, props changed) head/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h head/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp head/contrib/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp head/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp head/contrib/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Float2Int.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp head/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp head/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/SROA.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp head/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/Sink.cpp head/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp head/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp head/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp head/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp head/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp head/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/EscapeEnumerator.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp head/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/GlobalStatus.cpp head/contrib/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/InstructionNamer.cpp head/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp head/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp head/contrib/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp head/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/LoopVersioning.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp head/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp head/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp head/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp head/contrib/llvm/lib/Transforms/Utils/OrderedInstructions.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/StripGCRelocates.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp head/contrib/llvm/lib/Transforms/Utils/Utils.cpp head/contrib/llvm/lib/Transforms/Utils/VNCoercion.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp head/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp head/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp (contents, props changed) head/contrib/llvm/lib/Transforms/Vectorize/VPlan.h (contents, props changed) head/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h (contents, props changed) head/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp head/contrib/llvm/lib/XRay/Trace.cpp (contents, props changed) head/contrib/llvm/tools/bugpoint/BugDriver.cpp head/contrib/llvm/tools/bugpoint/BugDriver.h head/contrib/llvm/tools/bugpoint/CrashDebugger.cpp head/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp head/contrib/llvm/tools/bugpoint/ExtractFunction.cpp head/contrib/llvm/tools/bugpoint/FindBugs.cpp head/contrib/llvm/tools/bugpoint/Miscompilation.cpp head/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp head/contrib/llvm/tools/bugpoint/ToolRunner.cpp head/contrib/llvm/tools/bugpoint/bugpoint.cpp head/contrib/llvm/tools/clang/LICENSE.TXT head/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h head/contrib/llvm/tools/clang/include/clang-c/CXCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h head/contrib/llvm/tools/clang/include/clang-c/CXString.h head/contrib/llvm/tools/clang/include/clang-c/Documentation.h head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h head/contrib/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h head/contrib/llvm/tools/clang/include/clang/AST/APValue.h head/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/ASTFwd.h head/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h head/contrib/llvm/tools/clang/include/clang/AST/ASTLambda.h head/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h head/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h head/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h head/contrib/llvm/tools/clang/include/clang/AST/Availability.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h head/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def head/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h head/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h head/contrib/llvm/tools/clang/include/clang/AST/Comment.h head/contrib/llvm/tools/clang/include/clang/AST/CommentBriefParser.h head/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h head/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h head/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h head/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h head/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h head/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h head/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h head/contrib/llvm/tools/clang/include/clang/AST/LocInfoType.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/Mangle.h head/contrib/llvm/tools/clang/include/clang/AST/MangleNumberingContext.h head/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h head/contrib/llvm/tools/clang/include/clang/AST/ParentMap.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h head/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h head/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h head/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h head/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h head/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def head/contrib/llvm/tools/clang/include/clang/AST/TypeOrdering.h head/contrib/llvm/tools/clang/include/clang/AST/TypeVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h head/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h head/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h head/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h head/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h head/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Analysis/CodeInjector.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h head/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h head/contrib/llvm/tools/clang/include/clang/Basic/ABI.h head/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h head/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/AttrSubjectMatchRules.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def head/contrib/llvm/tools/clang/include/clang/Basic/CapturedStmt.h head/contrib/llvm/tools/clang/include/clang/Basic/CharInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/CommentOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h head/contrib/llvm/tools/clang/include/clang/Basic/ExpressionTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/FileSystemOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h head/contrib/llvm/tools/clang/include/clang/Basic/Lambda.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h head/contrib/llvm/tools/clang/include/clang/Basic/MacroBuilder.h head/contrib/llvm/tools/clang/include/clang/Basic/Module.h head/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenCLOptions.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h head/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h head/contrib/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def head/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/Version.h head/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h head/contrib/llvm/tools/clang/include/clang/Basic/Visibility.h head/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def head/contrib/llvm/tools/clang/include/clang/Basic/XRayLists.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h head/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h head/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitBuilder.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/CodeGen/SwiftCallingConv.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTranslationUnit.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Driver/Action.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h head/contrib/llvm/tools/clang/include/clang/Driver/Distro.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/Job.h head/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h head/contrib/llvm/tools/clang/include/clang/Driver/Tool.h head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Driver/Types.def head/contrib/llvm/tools/clang/include/clang/Driver/Types.h head/contrib/llvm/tools/clang/include/clang/Driver/XRayArgs.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Edit/Commit.h head/contrib/llvm/tools/clang/include/clang/Edit/EditedSource.h head/contrib/llvm/tools/clang/include/clang/Edit/EditsReceiver.h head/contrib/llvm/tools/clang/include/clang/Edit/FileOffset.h head/contrib/llvm/tools/clang/include/clang/Edit/Rewriters.h head/contrib/llvm/tools/clang/include/clang/Format/Format.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def head/contrib/llvm/tools/clang/include/clang/Frontend/LayoutOverrideSource.h head/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticReader.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnostics.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h head/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h head/contrib/llvm/tools/clang/include/clang/FrontendTool/Utils.h head/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h head/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h head/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h head/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h head/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h head/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Lex/Token.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h head/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/DeltaTree.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/HTMLRewrite.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteBuffer.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h head/contrib/llvm/tools/clang/include/clang/Sema/LoopHint.h head/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h head/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaConsumer.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaLambda.h head/contrib/llvm/tools/clang/include/clang/Sema/Template.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h head/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h head/contrib/llvm/tools/clang/include/clang/Sema/Weak.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h head/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h head/contrib/llvm/tools/clang/include/clang/Serialization/Module.h head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h head/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Diagnostic.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h head/contrib/llvm/tools/clang/include/clang/Tooling/FixIt.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/AtomicChange.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/RefactoringCallbacks.h head/contrib/llvm/tools/clang/include/clang/Tooling/ReplacementsYaml.h head/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h (contents, props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h head/contrib/llvm/tools/clang/include/clang/module.modulemap head/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h head/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransARCAssign.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp head/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h head/contrib/llvm/tools/clang/lib/AST/APValue.cpp head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/Comment.cpp head/contrib/llvm/tools/clang/lib/AST/CommentBriefParser.cpp head/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp head/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/Mangle.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp head/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp head/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp head/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp head/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp head/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp head/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp head/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp head/contrib/llvm/tools/clang/lib/Analysis/Dominators.cpp head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/FormatStringParsing.h head/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp head/contrib/llvm/tools/clang/lib/Analysis/ObjCNoReturn.cpp head/contrib/llvm/tools/clang/lib/Analysis/PostOrderCFGView.cpp head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp head/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp head/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp head/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp head/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticOptions.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp head/contrib/llvm/tools/clang/lib/Basic/Module.cpp head/contrib/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp head/contrib/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp head/contrib/llvm/tools/clang/lib/Basic/Sanitizers.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Nios2.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp head/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp head/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h head/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGGPUBuiltin.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h head/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/ConstantInitBuilder.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/SwiftCallingConv.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/Action.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/Distro.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/Job.cpp head/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp head/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Lanai.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Driver/Types.cpp head/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Edit/Commit.cpp head/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp head/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp head/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp head/contrib/llvm/tools/clang/lib/Format/BreakableToken.h head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp head/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h head/contrib/llvm/tools/clang/lib/Format/Encoding.h head/contrib/llvm/tools/clang/lib/Format/Format.cpp head/contrib/llvm/tools/clang/lib/Format/FormatInternal.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp head/contrib/llvm/tools/clang/lib/Format/FormatToken.h head/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp head/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp head/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h head/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp head/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp head/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/CodeGenOptions.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp head/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp head/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/LayoutOverrideSource.cpp head/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp head/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/PCHContainerOperations.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FixItRewriter.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/HTMLPrint.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp head/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_builtin_vars.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h head/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h head/contrib/llvm/tools/clang/lib/Headers/altivec.h head/contrib/llvm/tools/clang/lib/Headers/ammintrin.h head/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h head/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512cdintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512erintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512ifmaintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512ifmavlintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512pfintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vlcdintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/avxintrin.h head/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h head/contrib/llvm/tools/clang/lib/Headers/cetintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/clflushoptintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/clzerointrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/cpuid.h head/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/algorithm head/contrib/llvm/tools/clang/lib/Headers/emmintrin.h head/contrib/llvm/tools/clang/lib/Headers/f16cintrin.h head/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h head/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h head/contrib/llvm/tools/clang/lib/Headers/fxsrintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/htmxlintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h head/contrib/llvm/tools/clang/lib/Headers/immintrin.h head/contrib/llvm/tools/clang/lib/Headers/intrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/lwpintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/mm3dnow.h head/contrib/llvm/tools/clang/lib/Headers/mmintrin.h head/contrib/llvm/tools/clang/lib/Headers/module.modulemap head/contrib/llvm/tools/clang/lib/Headers/mwaitxintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/nmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/opencl-c.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/pkuintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h head/contrib/llvm/tools/clang/lib/Headers/prfchwintrin.h head/contrib/llvm/tools/clang/lib/Headers/rdseedintrin.h head/contrib/llvm/tools/clang/lib/Headers/shaintrin.h head/contrib/llvm/tools/clang/lib/Headers/smmintrin.h head/contrib/llvm/tools/clang/lib/Headers/stdint.h head/contrib/llvm/tools/clang/lib/Headers/tmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/unwind.h head/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/x86intrin.h head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h head/contrib/llvm/tools/clang/lib/Headers/xopintrin.h head/contrib/llvm/tools/clang/lib/Headers/xsavecintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/xsaveintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/xsaveoptintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/xsavesintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Headers/xtestintrin.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/IndexingContext.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h head/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp head/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp head/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp head/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp head/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp head/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp head/contrib/llvm/tools/clang/lib/Serialization/Module.cpp head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp head/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FunctionSummary.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp head/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp head/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp (contents, props changed) head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp head/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp head/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp (contents, props changed) head/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp head/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h head/contrib/llvm/tools/llc/llc.cpp head/contrib/llvm/tools/lld/COFF/CMakeLists.txt (contents, props changed) head/contrib/llvm/tools/lld/COFF/Chunks.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/Chunks.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/Config.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/DLL.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/DLL.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/Driver.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/Driver.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/DriverUtils.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/ICF.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/InputFiles.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/InputFiles.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/LTO.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/LTO.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/MapFile.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/MarkLive.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/MinGW.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/Options.td head/contrib/llvm/tools/lld/COFF/PDB.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/PDB.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/SymbolTable.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/SymbolTable.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/Symbols.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/Symbols.h (contents, props changed) head/contrib/llvm/tools/lld/COFF/Writer.cpp (contents, props changed) head/contrib/llvm/tools/lld/COFF/Writer.h (contents, props changed) head/contrib/llvm/tools/lld/Common/Args.cpp (contents, props changed) head/contrib/llvm/tools/lld/Common/CMakeLists.txt (contents, props changed) head/contrib/llvm/tools/lld/Common/ErrorHandler.cpp (contents, props changed) head/contrib/llvm/tools/lld/Common/Strings.cpp (contents, props changed) head/contrib/llvm/tools/lld/Common/TargetOptionsCommandFlags.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/X86.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/CMakeLists.txt (contents, props changed) head/contrib/llvm/tools/lld/ELF/Config.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Driver.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Driver.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/DriverUtils.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/EhFrame.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Filesystem.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/GdbIndex.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/GdbIndex.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/ICF.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/ICF.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/InputFiles.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/InputFiles.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/InputSection.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/InputSection.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/LTO.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/LTO.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/LinkerScript.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/LinkerScript.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/MapFile.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/MapFile.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/MarkLive.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Options.td head/contrib/llvm/tools/lld/ELF/OutputSections.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/OutputSections.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Relocations.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Relocations.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/ScriptParser.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/SymbolTable.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Symbols.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Symbols.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/SyntheticSections.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Target.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Target.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Thunks.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Thunks.h (contents, props changed) head/contrib/llvm/tools/lld/ELF/Writer.cpp (contents, props changed) head/contrib/llvm/tools/lld/ELF/Writer.h (contents, props changed) head/contrib/llvm/tools/lld/LICENSE.TXT (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Common/Driver.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Common/ErrorHandler.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Common/Strings.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Common/TargetOptionsCommandFlags.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Common/Version.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/DefinedAtom.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/File.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/Instrumentation.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/LinkingContext.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/PassManager.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/Reader.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/Resolver.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/Simple.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/SymbolTable.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/TODO.txt (contents, props changed) head/contrib/llvm/tools/lld/include/lld/Core/Writer.h (contents, props changed) head/contrib/llvm/tools/lld/include/lld/ReaderWriter/MachOLinkingContext.h (contents, props changed) head/contrib/llvm/tools/lld/lib/Core/LinkingContext.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/Driver/CMakeLists.txt (contents, props changed) head/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/Driver/DarwinLdOptions.td head/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CMakeLists.txt (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h (contents, props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp (contents, props changed) head/contrib/llvm/tools/lld/tools/lld/lld.cpp (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h head/contrib/llvm/tools/lldb/include/lldb/API/SBBroadcaster.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h head/contrib/llvm/tools/lldb/include/lldb/API/SBData.h head/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h head/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h head/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h head/contrib/llvm/tools/lldb/include/lldb/API/SBInstruction.h head/contrib/llvm/tools/lldb/include/lldb/API/SBInstructionList.h head/contrib/llvm/tools/lldb/include/lldb/API/SBLaunchInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBModule.h head/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h head/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h head/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h head/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h head/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h head/contrib/llvm/tools/lldb/include/lldb/API/SBValueList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSiteList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointCallbackContext.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointLocation.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointList.h head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h head/contrib/llvm/tools/lldb/include/lldb/Core/Address.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h head/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h head/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/Broadcaster.h head/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h head/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h head/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h head/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h head/contrib/llvm/tools/lldb/include/lldb/Core/Event.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h head/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h head/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h head/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h head/contrib/llvm/tools/lldb/include/lldb/Core/Module.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleChild.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h head/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h head/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/RegisterValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h head/contrib/llvm/tools/lldb/include/lldb/Core/Scalar.h head/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h head/contrib/llvm/tools/lldb/include/lldb/Core/Section.h head/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h head/contrib/llvm/tools/lldb/include/lldb/Core/StreamBuffer.h head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeValue.h head/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h head/contrib/llvm/tools/lldb/include/lldb/Core/UserSettingsController.h head/contrib/llvm/tools/lldb/include/lldb/Core/Value.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h head/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionSourceCode.h head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/IRDynamicChecks.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h head/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Config.h.cmake head/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h head/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/File.h head/contrib/llvm/tools/lldb/include/lldb/Host/Host.h head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostThread.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Predicate.h head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h head/contrib/llvm/tools/lldb/include/lldb/Host/PseudoTerminal.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h head/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h head/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Terminal.h head/contrib/llvm/tools/lldb/include/lldb/Host/XML.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/GetOptInc.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpoint.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/netbsd/HostInfoNetBSD.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostInfoPosix.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandAlias.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h head/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompactUnwindInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/Declaration.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineEntry.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/Variable.h head/contrib/llvm/tools/lldb/include/lldb/Symbol/VariableList.h head/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h head/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/Language.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/Memory.h head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ModuleCache.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h head/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h head/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h head/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h head/contrib/llvm/tools/lldb/include/lldb/Target/Process.h head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ProcessStructReader.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/Queue.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/QueueList.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterCheckpoint.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h head/contrib/llvm/tools/lldb/include/lldb/Target/RegisterNumber.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadHistory.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h head/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h head/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h head/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/Target.h head/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadCollection.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadList.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h head/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h head/contrib/llvm/tools/lldb/include/lldb/Utility/AnsiTerminal.h head/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Baton.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/CleanUp.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/ConstString.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBuffer.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferHeap.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/DataEncoder.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Flags.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/RegularExpression.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/SafeMachO.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/SelectHelper.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/SharedCluster.h head/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h head/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Stream.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamTee.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/TildeExpressionResolver.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Timeout.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/UserID.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/VMRange.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h head/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-defines.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h head/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h (contents, props changed) head/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-types.h head/contrib/llvm/tools/lldb/include/lldb/lldb-versioning.h head/contrib/llvm/tools/lldb/source/API/SBAddress.cpp head/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp head/contrib/llvm/tools/lldb/source/API/SBEvent.cpp head/contrib/llvm/tools/lldb/source/API/SBFrame.cpp head/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp head/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp head/contrib/llvm/tools/lldb/source/API/SBInstructionList.cpp head/contrib/llvm/tools/lldb/source/API/SBLaunchInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/API/SBModule.cpp head/contrib/llvm/tools/lldb/source/API/SBModuleSpec.cpp head/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp head/contrib/llvm/tools/lldb/source/API/SBProcess.cpp head/contrib/llvm/tools/lldb/source/API/SBQueueItem.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/API/SBStream.cpp head/contrib/llvm/tools/lldb/source/API/SBTarget.cpp head/contrib/llvm/tools/lldb/source/API/SBThread.cpp head/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/API/SBType.cpp head/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp head/contrib/llvm/tools/lldb/source/API/SBValue.cpp head/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolver.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp head/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp head/contrib/llvm/tools/lldb/source/Core/Address.cpp head/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp head/contrib/llvm/tools/lldb/source/Core/Broadcaster.cpp head/contrib/llvm/tools/lldb/source/Core/Communication.cpp head/contrib/llvm/tools/lldb/source/Core/Debugger.cpp head/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp head/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp head/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp head/contrib/llvm/tools/lldb/source/Core/Event.cpp head/contrib/llvm/tools/lldb/source/Core/FileLineResolver.cpp head/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp head/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Core/Listener.cpp head/contrib/llvm/tools/lldb/source/Core/Mangled.cpp head/contrib/llvm/tools/lldb/source/Core/Module.cpp head/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp head/contrib/llvm/tools/lldb/source/Core/Opcode.cpp head/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp head/contrib/llvm/tools/lldb/source/Core/RegisterValue.cpp head/contrib/llvm/tools/lldb/source/Core/Scalar.cpp head/contrib/llvm/tools/lldb/source/Core/Section.cpp head/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp head/contrib/llvm/tools/lldb/source/Core/Value.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectList.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp head/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp head/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp head/contrib/llvm/tools/lldb/source/Expression/DiagnosticManager.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp head/contrib/llvm/tools/lldb/source/Expression/ExpressionVariable.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp head/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp head/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp head/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp head/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp head/contrib/llvm/tools/lldb/source/Expression/REPL.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Expression/UserExpression.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/File.cpp head/contrib/llvm/tools/lldb/source/Host/common/Host.cpp head/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpointList.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/SoftwareBreakpoint.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp head/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/Terminal.cpp head/contrib/llvm/tools/lldb/source/Host/common/UDPSocket.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/common/XML.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp head/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/netbsd/HostInfoNetBSD.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Interpreter/CommandAlias.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp head/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h head/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArgs.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormatEntity.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp head/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp head/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp head/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoParser.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoUserExpression.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoUserExpression.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSError.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSException.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InstructionUtils.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserOCaml.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h (contents, props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp head/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Symbol/Block.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp head/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp head/contrib/llvm/tools/lldb/source/Symbol/Declaration.cpp head/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp head/contrib/llvm/tools/lldb/source/Symbol/Function.cpp head/contrib/llvm/tools/lldb/source/Symbol/GoASTContext.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp head/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp head/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp head/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp head/contrib/llvm/tools/lldb/source/Symbol/Type.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp head/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp head/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp head/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp head/contrib/llvm/tools/lldb/source/Target/ABI.cpp head/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp head/contrib/llvm/tools/lldb/source/Target/Memory.cpp head/contrib/llvm/tools/lldb/source/Target/ModuleCache.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp head/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp head/contrib/llvm/tools/lldb/source/Target/Platform.cpp head/contrib/llvm/tools/lldb/source/Target/Process.cpp head/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp head/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp head/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp head/contrib/llvm/tools/lldb/source/Target/StackID.cpp head/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp head/contrib/llvm/tools/lldb/source/Target/Target.cpp head/contrib/llvm/tools/lldb/source/Target/TargetList.cpp head/contrib/llvm/tools/lldb/source/Target/Thread.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp head/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp head/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp head/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/ConstString.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/DataBufferHeap.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/FastDemangle.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/JSON.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/Log.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/RegularExpression.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/SharingPtr.cpp head/contrib/llvm/tools/lldb/source/Utility/Status.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/Stream.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp head/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp head/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/TildeExpressionResolver.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/UUID.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/VASprintf.cpp (contents, props changed) head/contrib/llvm/tools/lldb/source/Utility/VMRange.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/driver/Driver.cpp head/contrib/llvm/tools/lldb/tools/driver/Driver.h head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIReadMe.txt (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp (contents, props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.cpp (contents, props changed) head/contrib/llvm/tools/lli/RemoteJITUtils.h (contents, props changed) head/contrib/llvm/tools/lli/lli.cpp head/contrib/llvm/tools/llvm-ar/llvm-ar.cpp head/contrib/llvm/tools/llvm-as/llvm-as.cpp head/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp head/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageFilters.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageFilters.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageReport.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageReport.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/RenderingSupport.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/SourceCoverageView.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.h (contents, props changed) head/contrib/llvm/tools/llvm-cov/TestingSupport.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cov/llvm-cov.cpp head/contrib/llvm/tools/llvm-cxxdump/Error.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp (contents, props changed) head/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp (contents, props changed) head/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp head/contrib/llvm/tools/llvm-dis/llvm-dis.cpp head/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp (contents, props changed) head/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp head/contrib/llvm/tools/llvm-extract/llvm-extract.cpp head/contrib/llvm/tools/llvm-link/llvm-link.cpp head/contrib/llvm/tools/llvm-lto/llvm-lto.cpp head/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp (contents, props changed) head/contrib/llvm/tools/llvm-mc/llvm-mc.cpp head/contrib/llvm/tools/llvm-modextract/llvm-modextract.cpp (contents, props changed) head/contrib/llvm/tools/llvm-nm/llvm-nm.cpp head/contrib/llvm/tools/llvm-objcopy/Object.cpp (contents, props changed) head/contrib/llvm/tools/llvm-objcopy/Object.h (contents, props changed) head/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp (contents, props changed) head/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.h (contents, props changed) head/contrib/llvm/tools/llvm-objdump/COFFDump.cpp head/contrib/llvm/tools/llvm-objdump/ELFDump.cpp head/contrib/llvm/tools/llvm-objdump/MachODump.cpp head/contrib/llvm/tools/llvm-objdump/WasmDump.cpp (contents, props changed) head/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp head/contrib/llvm/tools/llvm-objdump/llvm-objdump.h head/contrib/llvm/tools/llvm-pdbutil/Analyze.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/InputFile.h (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp (contents, props changed) head/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h (contents, props changed) head/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp head/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h head/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp head/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp head/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp head/contrib/llvm/tools/llvm-readobj/MachODumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.cpp head/contrib/llvm/tools/llvm-readobj/ObjDumper.h head/contrib/llvm/tools/llvm-readobj/StackMapPrinter.h (contents, props changed) head/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp (contents, props changed) head/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp head/contrib/llvm/tools/llvm-readobj/llvm-readobj.h head/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp head/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp head/contrib/llvm/tools/llvm-xray/func-id-helper.h (contents, props changed) head/contrib/llvm/tools/llvm-xray/xray-account.h (contents, props changed) head/contrib/llvm/tools/llvm-xray/xray-graph.h (contents, props changed) head/contrib/llvm/tools/opt/BreakpointPrinter.cpp head/contrib/llvm/tools/opt/BreakpointPrinter.h head/contrib/llvm/tools/opt/Debugify.cpp (contents, props changed) head/contrib/llvm/tools/opt/NewPMDriver.cpp head/contrib/llvm/tools/opt/NewPMDriver.h head/contrib/llvm/tools/opt/PassPrinters.cpp head/contrib/llvm/tools/opt/PassPrinters.h head/contrib/llvm/tools/opt/opt.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/CTagsEmitter.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenInstruction.h head/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h head/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp head/contrib/llvm/utils/TableGen/CodeGenRegisters.h head/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp head/contrib/llvm/utils/TableGen/CodeGenSchedule.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/CodeGenTarget.h head/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.h head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp head/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp head/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/InfoByHwMode.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/InfoByHwMode.h (contents, props changed) head/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp head/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp head/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.h (contents, props changed) head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/TableGenBackends.h head/contrib/llvm/utils/TableGen/X86DisassemblerShared.h head/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp head/contrib/llvm/utils/TableGen/X86DisassemblerTables.h head/contrib/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp (contents, props changed) head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/contrib/llvm/utils/TableGen/X86RecognizableInstr.h head/etc/mtree/BSD.debug.dist head/etc/mtree/BSD.usr.dist head/lib/Makefile head/lib/clang/freebsd_cc_version.h head/lib/clang/headers/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/clang/Config/config.h head/lib/clang/include/lld/Common/Version.inc head/lib/clang/include/lldb/Host/Config.h head/lib/clang/include/llvm/Config/config.h head/lib/clang/include/llvm/Config/llvm-config.h head/lib/clang/include/llvm/Support/VCSRevision.h head/lib/clang/libclang/Makefile head/lib/clang/liblldb/Makefile head/lib/clang/libllvm/Makefile head/lib/clang/libllvmminimal/Makefile head/lib/libc++/Makefile head/lib/libc++experimental/Makefile head/lib/libclang_rt/Makefile head/lib/libclang_rt/Makefile.inc head/lib/libclang_rt/asan/Makefile head/lib/libclang_rt/asan_dynamic/Makefile head/lib/libclang_rt/include/Makefile head/lib/libclang_rt/safestack/Makefile head/lib/libclang_rt/stats/Makefile head/lib/libclang_rt/tsan/Makefile head/lib/libclang_rt/tsan_cxx/Makefile head/lib/libclang_rt/ubsan_standalone/Makefile head/share/mk/bsd.sys.mk head/share/mk/src.opts.mk head/sys/conf/files head/sys/conf/kern.mk head/sys/conf/kern.pre.mk head/sys/conf/ldscript.i386 head/sys/i386/i386/locore.s head/sys/modules/fxp/Makefile head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.bin/clang/Makefile head/usr.bin/clang/bugpoint/bugpoint.1 head/usr.bin/clang/clang/Makefile head/usr.bin/clang/clang/clang.1 head/usr.bin/clang/llc/llc.1 head/usr.bin/clang/lld/Makefile head/usr.bin/clang/lli/Makefile head/usr.bin/clang/lli/lli.1 head/usr.bin/clang/llvm-ar/llvm-ar.1 head/usr.bin/clang/llvm-as/llvm-as.1 head/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 head/usr.bin/clang/llvm-cov/llvm-cov.1 head/usr.bin/clang/llvm-diff/llvm-diff.1 head/usr.bin/clang/llvm-dis/llvm-dis.1 head/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 head/usr.bin/clang/llvm-extract/llvm-extract.1 head/usr.bin/clang/llvm-link/llvm-link.1 head/usr.bin/clang/llvm-nm/llvm-nm.1 head/usr.bin/clang/llvm-objcopy/Makefile head/usr.bin/clang/llvm-pdbutil/Makefile head/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1 head/usr.bin/clang/llvm-profdata/llvm-profdata.1 head/usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1 head/usr.bin/clang/llvm-tblgen/Makefile head/usr.bin/clang/llvm-tblgen/llvm-tblgen.1 head/usr.bin/clang/llvm-xray/Makefile head/usr.bin/clang/opt/Makefile head/usr.bin/clang/opt/opt.1 Directory Properties: head/ (props changed) head/cddl/ (props changed) head/cddl/contrib/opensolaris/ (props changed) head/cddl/contrib/opensolaris/cmd/zdb/ (props changed) head/cddl/contrib/opensolaris/cmd/zfs/ (props changed) head/cddl/contrib/opensolaris/lib/libzfs/ (props changed) head/contrib/amd/ (props changed) head/contrib/blacklist/ (props changed) head/contrib/bmake/ (props changed) head/contrib/compiler-rt/ (props changed) head/contrib/compiler-rt/include/sanitizer/allocator_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/coverage_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/dfsan_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/esan_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/lsan_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/tsan_interface.h (props changed) head/contrib/compiler-rt/include/sanitizer/tsan_interface_atomic.h (props changed) head/contrib/compiler-rt/lib/BlocksRuntime/Block.h (props changed) head/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h (props changed) head/contrib/compiler-rt/lib/BlocksRuntime/data.c (props changed) head/contrib/compiler-rt/lib/BlocksRuntime/runtime.c (props changed) head/contrib/compiler-rt/lib/asan/asan_activation.cc (props changed) head/contrib/compiler-rt/lib/asan/asan_activation.h (props changed) head/contrib/compiler-rt/lib/asan/asan_activation_flags.inc (props changed) head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc (props changed) head/contrib/compiler-rt/lib/asan/asan_init_version.h (props changed) head/contrib/compiler-rt/lib/asan/asan_interface.inc (props changed) head/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc (props changed) head/contrib/compiler-rt/lib/asan/asan_premap_shadow.h (props changed) head/contrib/compiler-rt/lib/asan/asan_scariness_score.h (props changed) head/contrib/compiler-rt/lib/asan/asan_suppressions.cc (props changed) head/contrib/compiler-rt/lib/asan/asan_suppressions.h (props changed) head/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc (props changed) head/contrib/compiler-rt/lib/asan/asan_win_weak_interception.cc (props changed) head/contrib/compiler-rt/lib/asan/weak_symbols.txt (props changed) head/contrib/compiler-rt/lib/builtins/README.txt (props changed) head/contrib/compiler-rt/lib/builtins/aarch64/chkstk.S (props changed) head/contrib/compiler-rt/lib/builtins/absvdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/absvsi2.c (props changed) head/contrib/compiler-rt/lib/builtins/absvti2.c (props changed) head/contrib/compiler-rt/lib/builtins/adddf3.c (props changed) head/contrib/compiler-rt/lib/builtins/addsf3.c (props changed) head/contrib/compiler-rt/lib/builtins/addtf3.c (props changed) head/contrib/compiler-rt/lib/builtins/addvdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/addvsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/addvti3.c (props changed) head/contrib/compiler-rt/lib/builtins/apple_versioning.c (props changed) head/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/addsf3.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_dcmp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_div0.c (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_drsub.c (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_frsub.c (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/clzdi2.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/clzsi2.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/comparesf2.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/divsi3.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/modsi3.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/switch16.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/switch32.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/switch8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/switchu8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync-ops.h (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/sync_synchronize.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/udivsi3.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/umodsi3.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S (props changed) head/contrib/compiler-rt/lib/builtins/ashldi3.c (props changed) head/contrib/compiler-rt/lib/builtins/ashlti3.c (props changed) head/contrib/compiler-rt/lib/builtins/ashrdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/ashrti3.c (props changed) head/contrib/compiler-rt/lib/builtins/assembly.h (props changed) head/contrib/compiler-rt/lib/builtins/atomic.c (props changed) head/contrib/compiler-rt/lib/builtins/atomic_flag_clear.c (props changed) head/contrib/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c (props changed) head/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set.c (props changed) head/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c (props changed) head/contrib/compiler-rt/lib/builtins/atomic_signal_fence.c (props changed) head/contrib/compiler-rt/lib/builtins/atomic_thread_fence.c (props changed) head/contrib/compiler-rt/lib/builtins/bswapdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/bswapsi2.c (props changed) head/contrib/compiler-rt/lib/builtins/clzsi2.c (props changed) head/contrib/compiler-rt/lib/builtins/clzti2.c (props changed) head/contrib/compiler-rt/lib/builtins/cmpdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/cmpti2.c (props changed) head/contrib/compiler-rt/lib/builtins/comparedf2.c (props changed) head/contrib/compiler-rt/lib/builtins/comparesf2.c (props changed) head/contrib/compiler-rt/lib/builtins/comparetf2.c (props changed) head/contrib/compiler-rt/lib/builtins/ctzsi2.c (props changed) head/contrib/compiler-rt/lib/builtins/ctzti2.c (props changed) head/contrib/compiler-rt/lib/builtins/divdc3.c (props changed) head/contrib/compiler-rt/lib/builtins/divdf3.c (props changed) head/contrib/compiler-rt/lib/builtins/divdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/divmoddi4.c (props changed) head/contrib/compiler-rt/lib/builtins/divmodsi4.c (props changed) head/contrib/compiler-rt/lib/builtins/divsc3.c (props changed) head/contrib/compiler-rt/lib/builtins/divsf3.c (props changed) head/contrib/compiler-rt/lib/builtins/divsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/divtc3.c (props changed) head/contrib/compiler-rt/lib/builtins/divtf3.c (props changed) head/contrib/compiler-rt/lib/builtins/divti3.c (props changed) head/contrib/compiler-rt/lib/builtins/divxc3.c (props changed) head/contrib/compiler-rt/lib/builtins/enable_execute_stack.c (props changed) head/contrib/compiler-rt/lib/builtins/eprintf.c (props changed) head/contrib/compiler-rt/lib/builtins/extenddftf2.c (props changed) head/contrib/compiler-rt/lib/builtins/extendhfsf2.c (props changed) head/contrib/compiler-rt/lib/builtins/extendsfdf2.c (props changed) head/contrib/compiler-rt/lib/builtins/extendsftf2.c (props changed) head/contrib/compiler-rt/lib/builtins/ffsdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/ffssi2.c (props changed) head/contrib/compiler-rt/lib/builtins/ffsti2.c (props changed) head/contrib/compiler-rt/lib/builtins/fixdfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixdfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixdfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixsfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixsfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixsfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixtfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixtfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixtfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunsdfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunsdfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunsdfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunssfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunssfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunssfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunstfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunstfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunstfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunsxfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunsxfsi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixunsxfti.c (props changed) head/contrib/compiler-rt/lib/builtins/fixxfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/fixxfti.c (props changed) head/contrib/compiler-rt/lib/builtins/floatdidf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatdisf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatditf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatdixf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatsidf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatsisf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatsitf.c (props changed) head/contrib/compiler-rt/lib/builtins/floattidf.c (props changed) head/contrib/compiler-rt/lib/builtins/floattisf.c (props changed) head/contrib/compiler-rt/lib/builtins/floattitf.c (props changed) head/contrib/compiler-rt/lib/builtins/floattixf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatundidf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatundisf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatunditf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatundixf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatunsidf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatunsisf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatunsitf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatuntidf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatuntisf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatuntitf.c (props changed) head/contrib/compiler-rt/lib/builtins/floatuntixf.c (props changed) head/contrib/compiler-rt/lib/builtins/fp_add_impl.inc (props changed) head/contrib/compiler-rt/lib/builtins/fp_extend.h (props changed) head/contrib/compiler-rt/lib/builtins/fp_extend_impl.inc (props changed) head/contrib/compiler-rt/lib/builtins/fp_fixint_impl.inc (props changed) head/contrib/compiler-rt/lib/builtins/fp_fixuint_impl.inc (props changed) head/contrib/compiler-rt/lib/builtins/fp_lib.h (props changed) head/contrib/compiler-rt/lib/builtins/fp_mul_impl.inc (props changed) head/contrib/compiler-rt/lib/builtins/fp_trunc.h (props changed) head/contrib/compiler-rt/lib/builtins/fp_trunc_impl.inc (props changed) head/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c (props changed) head/contrib/compiler-rt/lib/builtins/i386/ashldi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/ashrdi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/chkstk.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/chkstk2.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/divdi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/floatdidf.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/floatdisf.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/floatdixf.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/floatundidf.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/floatundisf.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/floatundixf.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/lshrdi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/moddi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/muldi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/udivdi3.S (props changed) head/contrib/compiler-rt/lib/builtins/i386/umoddi3.S (props changed) head/contrib/compiler-rt/lib/builtins/int_endianness.h (props changed) head/contrib/compiler-rt/lib/builtins/int_lib.h (props changed) head/contrib/compiler-rt/lib/builtins/int_math.h (props changed) head/contrib/compiler-rt/lib/builtins/int_util.c (props changed) head/contrib/compiler-rt/lib/builtins/int_util.h (props changed) head/contrib/compiler-rt/lib/builtins/lshrdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/lshrti3.c (props changed) head/contrib/compiler-rt/lib/builtins/mingw_fixfloat.c (props changed) head/contrib/compiler-rt/lib/builtins/moddi3.c (props changed) head/contrib/compiler-rt/lib/builtins/modsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/modti3.c (props changed) head/contrib/compiler-rt/lib/builtins/muldc3.c (props changed) head/contrib/compiler-rt/lib/builtins/muldf3.c (props changed) head/contrib/compiler-rt/lib/builtins/muldi3.c (props changed) head/contrib/compiler-rt/lib/builtins/mulodi4.c (props changed) head/contrib/compiler-rt/lib/builtins/mulosi4.c (props changed) head/contrib/compiler-rt/lib/builtins/muloti4.c (props changed) head/contrib/compiler-rt/lib/builtins/mulsc3.c (props changed) head/contrib/compiler-rt/lib/builtins/mulsf3.c (props changed) head/contrib/compiler-rt/lib/builtins/multf3.c (props changed) head/contrib/compiler-rt/lib/builtins/multi3.c (props changed) head/contrib/compiler-rt/lib/builtins/mulvdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/mulvsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/mulvti3.c (props changed) head/contrib/compiler-rt/lib/builtins/mulxc3.c (props changed) head/contrib/compiler-rt/lib/builtins/negdf2.c (props changed) head/contrib/compiler-rt/lib/builtins/negdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/negsf2.c (props changed) head/contrib/compiler-rt/lib/builtins/negti2.c (props changed) head/contrib/compiler-rt/lib/builtins/negvdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/negvsi2.c (props changed) head/contrib/compiler-rt/lib/builtins/negvti2.c (props changed) head/contrib/compiler-rt/lib/builtins/paritydi2.c (props changed) head/contrib/compiler-rt/lib/builtins/paritysi2.c (props changed) head/contrib/compiler-rt/lib/builtins/parityti2.c (props changed) head/contrib/compiler-rt/lib/builtins/popcountdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/popcountsi2.c (props changed) head/contrib/compiler-rt/lib/builtins/popcountti2.c (props changed) head/contrib/compiler-rt/lib/builtins/powidf2.c (props changed) head/contrib/compiler-rt/lib/builtins/powisf2.c (props changed) head/contrib/compiler-rt/lib/builtins/powitf2.c (props changed) head/contrib/compiler-rt/lib/builtins/powixf2.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/DD.h (props changed) head/contrib/compiler-rt/lib/builtins/ppc/divtc3.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/fixtfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/fixunstfdi.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/floatditf.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/floatunditf.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/gcc_qadd.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/gcc_qdiv.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/gcc_qmul.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/gcc_qsub.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/multc3.c (props changed) head/contrib/compiler-rt/lib/builtins/ppc/restFP.S (props changed) head/contrib/compiler-rt/lib/builtins/ppc/saveFP.S (props changed) head/contrib/compiler-rt/lib/builtins/subdf3.c (props changed) head/contrib/compiler-rt/lib/builtins/subsf3.c (props changed) head/contrib/compiler-rt/lib/builtins/subtf3.c (props changed) head/contrib/compiler-rt/lib/builtins/subvdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/subvsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/subvti3.c (props changed) head/contrib/compiler-rt/lib/builtins/trampoline_setup.c (props changed) head/contrib/compiler-rt/lib/builtins/truncdfhf2.c (props changed) head/contrib/compiler-rt/lib/builtins/truncdfsf2.c (props changed) head/contrib/compiler-rt/lib/builtins/truncsfhf2.c (props changed) head/contrib/compiler-rt/lib/builtins/trunctfdf2.c (props changed) head/contrib/compiler-rt/lib/builtins/trunctfsf2.c (props changed) head/contrib/compiler-rt/lib/builtins/ucmpdi2.c (props changed) head/contrib/compiler-rt/lib/builtins/ucmpti2.c (props changed) head/contrib/compiler-rt/lib/builtins/udivdi3.c (props changed) head/contrib/compiler-rt/lib/builtins/udivmoddi4.c (props changed) head/contrib/compiler-rt/lib/builtins/udivmodsi4.c (props changed) head/contrib/compiler-rt/lib/builtins/udivmodti4.c (props changed) head/contrib/compiler-rt/lib/builtins/udivsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/udivti3.c (props changed) head/contrib/compiler-rt/lib/builtins/umoddi3.c (props changed) head/contrib/compiler-rt/lib/builtins/umodsi3.c (props changed) head/contrib/compiler-rt/lib/builtins/umodti3.c (props changed) head/contrib/compiler-rt/lib/builtins/unwind-ehabi-helpers.h (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/chkstk.S (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/chkstk2.S (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/floatdidf.c (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/floatdisf.c (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/floatdixf.c (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/floatundidf.S (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/floatundisf.S (props changed) head/contrib/compiler-rt/lib/builtins/x86_64/floatundixf.S (props changed) head/contrib/compiler-rt/lib/dfsan/dfsan.h (props changed) head/contrib/compiler-rt/lib/dfsan/dfsan_flags.inc (props changed) head/contrib/compiler-rt/lib/dfsan/dfsan_interceptors.cc (props changed) head/contrib/compiler-rt/lib/dfsan/dfsan_platform.h (props changed) head/contrib/compiler-rt/lib/dfsan/libc_ubuntu1404_abilist.txt (props changed) head/contrib/compiler-rt/lib/esan/cache_frag.cpp (props changed) head/contrib/compiler-rt/lib/esan/cache_frag.h (props changed) head/contrib/compiler-rt/lib/esan/esan.h (props changed) head/contrib/compiler-rt/lib/esan/esan_circular_buffer.h (props changed) head/contrib/compiler-rt/lib/esan/esan_flags.cpp (props changed) head/contrib/compiler-rt/lib/esan/esan_flags.h (props changed) head/contrib/compiler-rt/lib/esan/esan_flags.inc (props changed) head/contrib/compiler-rt/lib/esan/esan_hashtable.h (props changed) head/contrib/compiler-rt/lib/esan/esan_interface.cpp (props changed) head/contrib/compiler-rt/lib/esan/esan_interface_internal.h (props changed) head/contrib/compiler-rt/lib/esan/esan_linux.cpp (props changed) head/contrib/compiler-rt/lib/esan/esan_shadow.h (props changed) head/contrib/compiler-rt/lib/esan/esan_sideline.h (props changed) head/contrib/compiler-rt/lib/esan/working_set.cpp (props changed) head/contrib/compiler-rt/lib/esan/working_set.h (props changed) head/contrib/compiler-rt/lib/esan/working_set_posix.cpp (props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.h (props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_blacklist.txt (props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_flags.h (props changed) head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.h (props changed) head/contrib/compiler-rt/lib/lsan/lsan_flags.inc (props changed) head/contrib/compiler-rt/lib/lsan/lsan_linux.cc (props changed) head/contrib/compiler-rt/lib/lsan/lsan_mac.cc (props changed) head/contrib/compiler-rt/lib/lsan/lsan_preinit.cc (props changed) head/contrib/compiler-rt/lib/lsan/weak_symbols.txt (props changed) head/contrib/compiler-rt/lib/msan/msan_allocator.h (props changed) head/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.cc (props changed) head/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.h (props changed) head/contrib/compiler-rt/lib/msan/msan_flags.inc (props changed) head/contrib/compiler-rt/lib/msan/msan_origin.h (props changed) head/contrib/compiler-rt/lib/msan/msan_poisoning.h (props changed) head/contrib/compiler-rt/lib/msan/msan_thread.cc (props changed) head/contrib/compiler-rt/lib/msan/msan_thread.h (props changed) head/contrib/compiler-rt/lib/profile/InstrProfiling.c (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingRuntime.cc (props changed) head/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c (props changed) head/contrib/compiler-rt/lib/profile/WindowsMMap.c (props changed) head/contrib/compiler-rt/lib/profile/WindowsMMap.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface_posix.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_dbghelp.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno_codes.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_mips64.S (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_x86_64.S (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepotbase.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.h (props changed) head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc (props changed) head/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh (props changed) head/contrib/compiler-rt/lib/sanitizer_common/weak_symbols.txt (props changed) head/contrib/compiler-rt/lib/scudo/scudo_crc32.cpp (props changed) head/contrib/compiler-rt/lib/scudo/scudo_crc32.h (props changed) head/contrib/compiler-rt/lib/scudo/scudo_flags.h (props changed) head/contrib/compiler-rt/lib/scudo/scudo_flags.inc (props changed) head/contrib/compiler-rt/lib/scudo/scudo_utils.h (props changed) head/contrib/compiler-rt/lib/stats/stats.h (props changed) head/contrib/compiler-rt/lib/stats/stats_client.cc (props changed) head/contrib/compiler-rt/lib/tsan/dd/dd_interceptors.cc (props changed) head/contrib/compiler-rt/lib/tsan/dd/dd_rtl.cc (props changed) head/contrib/compiler-rt/lib/tsan/dd/dd_rtl.h (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_external.cc (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cc (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.h (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_ppc_regs.h (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_preinit.cc (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mips64.S (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_ppc64.S (props changed) head/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_flags.h (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_init.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_init.h (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cc (props changed) head/contrib/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc (props changed) head/contrib/compiler-rt/lib/ubsan/weak_symbols.txt (props changed) head/contrib/compiler-rt/lib/xray/weak_symbols.txt (props changed) head/contrib/compiler-rt/lib/xray/xray_always_instrument.txt (props changed) head/contrib/compiler-rt/lib/xray/xray_defs.h (props changed) head/contrib/compiler-rt/lib/xray/xray_fdr_logging.h (props changed) head/contrib/compiler-rt/lib/xray/xray_never_instrument.txt (props changed) head/contrib/compiler-rt/lib/xray/xray_powerpc64.inc (props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_AArch64.S (props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_arm.S (props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_mips.S (props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_mips64.S (props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_powerpc64.cc (props changed) head/contrib/compiler-rt/lib/xray/xray_trampoline_powerpc64_asm.S (props changed) head/contrib/compiler-rt/lib/xray/xray_tsc.h (props changed) head/contrib/dialog/ (props changed) head/contrib/dma/ (props changed) head/contrib/elftoolchain/ (props changed) head/contrib/expat/ (props changed) head/contrib/file/ (props changed) head/contrib/gcc/ (props changed) head/contrib/ipfilter/ (props changed) head/contrib/ldns/ (props changed) head/contrib/libarchive/ (props changed) head/contrib/libc++/ (props changed) head/contrib/libc++/include/__bsd_locale_defaults.h (props changed) head/contrib/libc++/include/complex.h (props changed) head/contrib/libc++/include/ctype.h (props changed) head/contrib/libc++/include/errno.h (props changed) head/contrib/libc++/include/inttypes.h (props changed) head/contrib/libc++/include/limits.h (props changed) head/contrib/libc++/include/locale.h (props changed) head/contrib/libc++/include/setjmp.h (props changed) head/contrib/libc++/include/stdbool.h (props changed) head/contrib/libc++/include/stddef.h (props changed) head/contrib/libc++/include/stdint.h (props changed) head/contrib/libc++/include/stdlib.h (props changed) head/contrib/libc++/include/string.h (props changed) head/contrib/libc++/include/wchar.h (props changed) head/contrib/libc++/include/wctype.h (props changed) head/contrib/libc++/src/algorithm.cpp (props changed) head/contrib/libc++/src/condition_variable.cpp (props changed) head/contrib/libc++/src/debug.cpp (props changed) head/contrib/libc++/src/exception.cpp (props changed) head/contrib/libc++/src/functional.cpp (props changed) head/contrib/libc++/src/hash.cpp (props changed) head/contrib/libc++/src/include/atomic_support.h (props changed) head/contrib/libc++/src/include/refstring.h (props changed) head/contrib/libc++/src/ios.cpp (props changed) head/contrib/libc++/src/iostream.cpp (props changed) head/contrib/libc++/src/random.cpp (props changed) head/contrib/libc++/src/regex.cpp (props changed) head/contrib/libc++/src/stdexcept.cpp (props changed) head/contrib/libc++/src/string.cpp (props changed) head/contrib/libc++/src/strstream.cpp (props changed) head/contrib/libc++/src/thread.cpp (props changed) head/contrib/libc++/src/valarray.cpp (props changed) head/contrib/libc++/src/variant.cpp (props changed) head/contrib/libc++/src/vector.cpp (props changed) head/contrib/llvm/ (props changed) head/contrib/llvm/include/llvm-c/ErrorHandling.h (props changed) head/contrib/llvm/include/llvm/ADT/AllocatorList.h (props changed) head/contrib/llvm/include/llvm/ADT/BitmaskEnum.h (props changed) head/contrib/llvm/include/llvm/ADT/BreadthFirstIterator.h (props changed) head/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h (props changed) head/contrib/llvm/include/llvm/ADT/PointerSumType.h (props changed) head/contrib/llvm/include/llvm/ADT/PriorityWorklist.h (props changed) head/contrib/llvm/include/llvm/ADT/Sequence.h (props changed) head/contrib/llvm/include/llvm/ADT/ilist_base.h (props changed) head/contrib/llvm/include/llvm/ADT/ilist_iterator.h (props changed) head/contrib/llvm/include/llvm/ADT/ilist_node_base.h (props changed) head/contrib/llvm/include/llvm/ADT/simple_ilist.h (props changed) head/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h (props changed) head/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h (props changed) head/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h (props changed) head/contrib/llvm/include/llvm/Analysis/IndirectCallSiteVisitor.h (props changed) head/contrib/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h (props changed) head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h (props changed) head/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h (props changed) head/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h (props changed) head/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h (props changed) head/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h (props changed) head/contrib/llvm/include/llvm/AsmParser/SlotMapping.h (props changed) head/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h (props changed) head/contrib/llvm/include/llvm/CodeGen/ExpandReductions.h (props changed) head/contrib/llvm/include/llvm/CodeGen/FaultMaps.h (props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h (props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h (props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h (props changed) head/contrib/llvm/include/llvm/CodeGen/GlobalISel/Types.h (props changed) head/contrib/llvm/include/llvm/CodeGen/LiveStacks.h (props changed) head/contrib/llvm/include/llvm/CodeGen/LowLevelType.h (props changed) head/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h (props changed) head/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h (props changed) head/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h (props changed) head/contrib/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h (props changed) head/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h (props changed) head/contrib/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h (props changed) head/contrib/llvm/include/llvm/CodeGen/TailDuplicator.h (props changed) head/contrib/llvm/include/llvm/CodeGen/UnreachableBlockElim.h (props changed) head/contrib/llvm/include/llvm/CodeGen/WinEHFuncInfo.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/FunctionId.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/Line.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/MSF/MSFError.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDB.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBContext.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h (props changed) head/contrib/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h (props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h (props changed) head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h (props changed) head/contrib/llvm/include/llvm/ExecutionEngine/OrcMCJITReplacement.h (props changed) head/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h (props changed) head/contrib/llvm/include/llvm/FuzzMutate/Operations.h (props changed) head/contrib/llvm/include/llvm/FuzzMutate/Random.h (props changed) head/contrib/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h (props changed) head/contrib/llvm/include/llvm/IR/DerivedUser.h (props changed) head/contrib/llvm/include/llvm/IR/GlobalIFunc.h (props changed) head/contrib/llvm/include/llvm/IR/GlobalIndirectSymbol.h (props changed) head/contrib/llvm/include/llvm/IR/ModuleSlotTracker.h (props changed) head/contrib/llvm/include/llvm/IR/SafepointIRVerifier.h (props changed) head/contrib/llvm/include/llvm/LTO/LTOBackend.h (props changed) head/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h (props changed) head/contrib/llvm/include/llvm/LTO/legacy/LTOModule.h (props changed) head/contrib/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h (props changed) head/contrib/llvm/include/llvm/Linker/IRMover.h (props changed) head/contrib/llvm/include/llvm/MC/LaneBitmask.h (props changed) head/contrib/llvm/include/llvm/MC/MCAsmInfoWasm.h (props changed) head/contrib/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h (props changed) head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h (props changed) head/contrib/llvm/include/llvm/MC/MCSymbolCOFF.h (props changed) head/contrib/llvm/include/llvm/MC/MCSymbolELF.h (props changed) head/contrib/llvm/include/llvm/Object/ArchiveWriter.h (props changed) head/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h (props changed) head/contrib/llvm/include/llvm/Object/IRSymtab.h (props changed) head/contrib/llvm/include/llvm/Object/StackMapParser.h (props changed) head/contrib/llvm/include/llvm/Object/SymbolSize.h (props changed) head/contrib/llvm/include/llvm/Object/WindowsResource.h (props changed) head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h (props changed) head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h (props changed) head/contrib/llvm/include/llvm/ObjectYAML/ObjectYAML.h (props changed) head/contrib/llvm/include/llvm/Support/ARMAttributeParser.h (props changed) head/contrib/llvm/include/llvm/Support/BinaryItemStream.h (props changed) head/contrib/llvm/include/llvm/Support/BinaryStreamError.h (props changed) head/contrib/llvm/include/llvm/Support/COM.h (props changed) head/contrib/llvm/include/llvm/Support/Chrono.h (props changed) head/contrib/llvm/include/llvm/Support/FormatCommon.h (props changed) head/contrib/llvm/include/llvm/Support/FormatProviders.h (props changed) head/contrib/llvm/include/llvm/Support/GlobPattern.h (props changed) head/contrib/llvm/include/llvm/Support/NativeFormatting.h (props changed) head/contrib/llvm/include/llvm/Support/Printable.h (props changed) head/contrib/llvm/include/llvm/Support/ReverseIteration.h (props changed) head/contrib/llvm/include/llvm/Support/SHA1.h (props changed) head/contrib/llvm/include/llvm/Support/Solaris/sys/regset.h (props changed) head/contrib/llvm/include/llvm/Support/TarWriter.h (props changed) head/contrib/llvm/include/llvm/Support/TrigramIndex.h (props changed) head/contrib/llvm/include/llvm/Support/TypeName.h (props changed) head/contrib/llvm/include/llvm/Support/raw_sha1_ostream.h (props changed) head/contrib/llvm/include/llvm/Support/thread.h (props changed) head/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h (props changed) head/contrib/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h (props changed) head/contrib/llvm/include/llvm/Transforms/Coroutines.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/ConstantMerge.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/GlobalDCE.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/GlobalOpt.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/GlobalSplit.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/Internalize.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/PartialInlining.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/SCCP.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h (props changed) head/contrib/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h (props changed) head/contrib/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/BDCE.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/DCE.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/Float2Int.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/GuardWidening.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LICM.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopPredication.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopRotation.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopSink.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LowerAtomic.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/NaryReassociate.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/Sink.h (props changed) head/contrib/llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/AddDiscriminators.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/LCSSA.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/LowerInvoke.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/SanitizerStats.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h (props changed) head/contrib/llvm/include/llvm/Transforms/Utils/VNCoercion.h (props changed) head/contrib/llvm/include/llvm/WindowsManifest/WindowsManifestMerger.h (props changed) head/contrib/llvm/include/llvm/WindowsResource/ResourceProcessor.h (props changed) head/contrib/llvm/include/llvm/WindowsResource/ResourceScriptToken.h (props changed) head/contrib/llvm/include/llvm/WindowsResource/ResourceScriptTokenList.h (props changed) head/contrib/llvm/include/llvm/XRay/Graph.h (props changed) head/contrib/llvm/include/llvm/XRay/InstrumentationMap.h (props changed) head/contrib/llvm/include/llvm/XRay/Trace.h (props changed) head/contrib/llvm/lib/Analysis/AliasAnalysisSummary.cpp (props changed) head/contrib/llvm/lib/Analysis/AssumptionCache.cpp (props changed) head/contrib/llvm/lib/Analysis/CallPrinter.cpp (props changed) head/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp (props changed) head/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp (props changed) head/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp (props changed) head/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp (props changed) head/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp (props changed) head/contrib/llvm/lib/Analysis/TypeMetadataUtils.cpp (props changed) head/contrib/llvm/lib/Analysis/ValueLattice.cpp (props changed) head/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp (props changed) head/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h (props changed) head/contrib/llvm/lib/Bitcode/Reader/ValueList.h (props changed) head/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp (props changed) head/contrib/llvm/lib/CodeGen/FEntryInserter.cpp (props changed) head/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp (props changed) head/contrib/llvm/lib/CodeGen/LiveRangeUtils.h (props changed) head/contrib/llvm/lib/CodeGen/LiveStacks.cpp (props changed) head/contrib/llvm/lib/CodeGen/LowLevelType.cpp (props changed) head/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp (props changed) head/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp (props changed) head/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp (props changed) head/contrib/llvm/lib/CodeGen/SafeStackColoring.h (props changed) head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp (props changed) head/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/CodeViewError.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/Line.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp (props changed) head/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp (props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp (props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp (props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp (props changed) head/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp (props changed) head/contrib/llvm/lib/DebugInfo/MSF/MSFError.cpp (props changed) head/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAError.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/IPDBSourceFile.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleList.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/EnumTables.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/Hash.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/RawError.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolStream.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBContext.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymDumper.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp (props changed) head/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp (props changed) head/contrib/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp (props changed) head/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h (props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp (props changed) head/contrib/llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp (props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp (props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h (props changed) head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h (props changed) head/contrib/llvm/lib/FuzzMutate/OpDescriptor.cpp (props changed) head/contrib/llvm/lib/FuzzMutate/Operations.cpp (props changed) head/contrib/llvm/lib/FuzzMutate/RandomIRBuilder.cpp (props changed) head/contrib/llvm/lib/IR/MetadataImpl.h (props changed) head/contrib/llvm/lib/IR/Statepoint.cpp (props changed) head/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp (props changed) head/contrib/llvm/lib/Linker/LinkDiagnosticInfo.h (props changed) head/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp (props changed) head/contrib/llvm/lib/MC/MCCodePadder.cpp (props changed) head/contrib/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp (props changed) head/contrib/llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp (props changed) head/contrib/llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp (props changed) head/contrib/llvm/lib/MC/MCDisassembler/MCSymbolizer.cpp (props changed) head/contrib/llvm/lib/MC/MCInstrDesc.cpp (props changed) head/contrib/llvm/lib/MC/MCSectionWasm.cpp (props changed) head/contrib/llvm/lib/MC/MCSymbolELF.cpp (props changed) head/contrib/llvm/lib/MC/MCWinEH.cpp (props changed) head/contrib/llvm/lib/Object/Decompressor.cpp (props changed) head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp (props changed) head/contrib/llvm/lib/ObjectYAML/DWARFVisitor.cpp (props changed) head/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp (props changed) head/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp (props changed) head/contrib/llvm/lib/ObjectYAML/ObjectYAML.cpp (props changed) head/contrib/llvm/lib/ObjectYAML/YAML.cpp (props changed) head/contrib/llvm/lib/Support/BinaryStreamError.cpp (props changed) head/contrib/llvm/lib/Support/BinaryStreamReader.cpp (props changed) head/contrib/llvm/lib/Support/BinaryStreamWriter.cpp (props changed) head/contrib/llvm/lib/Support/FormatVariadic.cpp (props changed) head/contrib/llvm/lib/Support/GlobPattern.cpp (props changed) head/contrib/llvm/lib/Support/JamCRC.cpp (props changed) head/contrib/llvm/lib/Support/KnownBits.cpp (props changed) head/contrib/llvm/lib/Support/LowLevelType.cpp (props changed) head/contrib/llvm/lib/Support/MathExtras.cpp (props changed) head/contrib/llvm/lib/Support/Options.cpp (props changed) head/contrib/llvm/lib/Support/ScopedPrinter.cpp (props changed) head/contrib/llvm/lib/Support/ThreadPool.cpp (props changed) head/contrib/llvm/lib/Support/TrigramIndex.cpp (props changed) head/contrib/llvm/lib/Support/Unix/COM.inc (props changed) head/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc (props changed) head/contrib/llvm/lib/Support/Windows/COM.inc (props changed) head/contrib/llvm/lib/Support/Windows/Threading.inc (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.h (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.h (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp (props changed) head/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h (props changed) head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h (props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp (props changed) head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h (props changed) head/contrib/llvm/lib/Target/ARC/ARC.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCExpandPseudos.cpp (props changed) head/contrib/llvm/lib/Target/ARC/ARCFrameLowering.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp (props changed) head/contrib/llvm/lib/Target/ARC/ARCInstrInfo.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.cpp (props changed) head/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCSubtarget.cpp (props changed) head/contrib/llvm/lib/Target/ARC/ARCSubtarget.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp (props changed) head/contrib/llvm/lib/Target/ARC/ARCTargetMachine.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCTargetStreamer.h (props changed) head/contrib/llvm/lib/Target/ARC/ARCTargetTransformInfo.h (props changed) head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp (props changed) head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h (props changed) head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp (props changed) head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.h (props changed) head/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp (props changed) head/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.h (props changed) head/contrib/llvm/lib/Target/ARM/ARMCallLowering.h (props changed) head/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp (props changed) head/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h (props changed) head/contrib/llvm/lib/Target/ARM/ARMMacroFusion.h (props changed) head/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.h (props changed) head/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.h (props changed) head/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.cpp (props changed) head/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRFrameLowering.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRFrameLowering.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRISelLowering.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRMCInstLower.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRMCInstLower.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRMachineFunctionInfo.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRSelectionDAGInfo.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRSubtarget.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRSubtarget.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h (props changed) head/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp (props changed) head/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.h (props changed) head/contrib/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp (props changed) head/contrib/llvm/lib/Target/AVR/InstPrinter/AVRInstPrinter.cpp (props changed) head/contrib/llvm/lib/Target/AVR/InstPrinter/AVRInstPrinter.h (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.h (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.cpp (props changed) head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.h (props changed) head/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp (props changed) head/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp (props changed) head/contrib/llvm/lib/Target/BPF/BPFFrameLowering.cpp (props changed) head/contrib/llvm/lib/Target/BPF/BPFFrameLowering.h (props changed) head/contrib/llvm/lib/Target/BPF/BPFMCInstLower.cpp (props changed) head/contrib/llvm/lib/Target/BPF/BPFMCInstLower.h (props changed) head/contrib/llvm/lib/Target/BPF/BPFTargetMachine.h (props changed) head/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.h (props changed) head/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.h (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.h (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h (props changed) head/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h (props changed) head/contrib/llvm/lib/Target/Hexagon/RDFCopy.h (props changed) head/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.h (props changed) head/contrib/llvm/lib/Target/Hexagon/RDFGraph.h (props changed) head/contrib/llvm/lib/Target/Hexagon/RDFRegisters.cpp (props changed) head/contrib/llvm/lib/Target/Hexagon/RDFRegisters.h (props changed) head/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h (props changed) head/contrib/llvm/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.h (props changed) head/contrib/llvm/lib/Target/Lanai/Lanai.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiAluCode.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiCondCode.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.h (props changed) head/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h (props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h (props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h (props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h (props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp (props changed) head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h (props changed) head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h (props changed) head/contrib/llvm/lib/Target/Mips/MipsCCState.cpp (props changed) head/contrib/llvm/lib/Target/Mips/MipsCCState.h (props changed) head/contrib/llvm/lib/Target/Mips/Relocation.txt (props changed) head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp (props changed) head/contrib/llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp (props changed) head/contrib/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp (props changed) head/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp (props changed) head/contrib/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/InstPrinter/Nios2InstPrinter.h (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h (props changed) head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.h (props changed) head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp (props changed) head/contrib/llvm/lib/Target/Nios2/TargetInfo/Nios2TargetInfo.cpp (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCCCState.cpp (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCCCState.h (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.h (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp (props changed) head/contrib/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp (props changed) head/contrib/llvm/lib/Target/PowerPC/README_P9.txt (props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h (props changed) head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h (props changed) head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp (props changed) head/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.h (props changed) head/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp (props changed) head/contrib/llvm/lib/Target/Sparc/LeonPasses.cpp (props changed) head/contrib/llvm/lib/Target/Sparc/LeonPasses.h (props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp (props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZTDC.cpp (props changed) head/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h (props changed) head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h (props changed) head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h (props changed) head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp (props changed) head/contrib/llvm/lib/Target/X86/X86CallLowering.h (props changed) head/contrib/llvm/lib/Target/X86/X86CallingConv.cpp (props changed) head/contrib/llvm/lib/Target/X86/X86FixupSetCC.cpp (props changed) head/contrib/llvm/lib/Target/X86/X86LegalizerInfo.h (props changed) head/contrib/llvm/lib/Target/X86/X86MacroFusion.h (props changed) head/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.h (props changed) head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp (props changed) head/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h (props changed) head/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h (props changed) head/contrib/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp (props changed) head/contrib/llvm/lib/Transforms/Coroutines/CoroInstr.h (props changed) head/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp (props changed) head/contrib/llvm/lib/Transforms/IPO/GlobalSplit.cpp (props changed) head/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp (props changed) head/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp (props changed) head/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp (props changed) head/contrib/llvm/lib/Transforms/Scalar/IVUsersPrinter.cpp (props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp (props changed) head/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp (props changed) head/contrib/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp (props changed) head/contrib/llvm/lib/Transforms/Utils/NameAnonGlobals.cpp (props changed) head/contrib/llvm/lib/Transforms/Utils/SanitizerStats.cpp (props changed) head/contrib/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp (props changed) head/contrib/llvm/lib/XRay/InstrumentationMap.cpp (props changed) head/contrib/llvm/tools/clang/ (props changed) head/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h (props changed) head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/OSLog.h (props changed) head/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h (props changed) head/contrib/llvm/tools/clang/include/clang/Basic/MemoryBufferCache.h (props changed) head/contrib/llvm/tools/clang/include/clang/Basic/PragmaKinds.h (props changed) head/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h (props changed) head/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h (props changed) head/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitFuture.h (props changed) head/contrib/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h (props changed) head/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTUDiagnostic.h (props changed) head/contrib/llvm/tools/clang/include/clang/Index/CodegenNameGenerator.h (props changed) head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMapTypes.h (props changed) head/contrib/llvm/tools/clang/include/clang/Sema/CleanupInfo.h (props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h (props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h (props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h (props changed) head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiff.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiffInternal.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/Extract.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h (props changed) head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h (props changed) head/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp (props changed) head/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp (props changed) head/contrib/llvm/tools/clang/lib/AST/Linkage.h (props changed) head/contrib/llvm/tools/clang/lib/Analysis/CodeInjector.cpp (props changed) head/contrib/llvm/tools/clang/lib/Analysis/OSLog.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/MemoryBufferCache.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.h (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.h (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/Nios2.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.h (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.h (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.cpp (props changed) head/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.h (props changed) head/contrib/llvm/tools/clang/lib/CodeGen/Address.h (props changed) head/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.h (props changed) head/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.h (props changed) head/contrib/llvm/tools/clang/lib/CrossTU/CrossTranslationUnit.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVCSetupApi.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.h (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.cpp (props changed) head/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.h (props changed) head/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_complex_builtins.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_math_forward_declares.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/__stddef_max_align_t.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/adxintrin.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/arm64intr.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/armintr.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/htmintrin.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/inttypes.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/msa.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/s390intrin.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/stdatomic.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/vadefs.h (props changed) head/contrib/llvm/tools/clang/lib/Headers/vecintrin.h (props changed) head/contrib/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp (props changed) head/contrib/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/FixIt.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.h (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp (props changed) head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp (props changed) head/contrib/llvm/tools/clang/utils/TableGen/ClangDataCollectorsEmitter.cpp (props changed) head/contrib/llvm/tools/lld/ (props changed) head/contrib/llvm/tools/lld/CMakeLists.txt (props changed) head/contrib/llvm/tools/lld/CODE_OWNERS.TXT (props changed) head/contrib/llvm/tools/lld/COFF/MapFile.h (props changed) head/contrib/llvm/tools/lld/COFF/MinGW.h (props changed) head/contrib/llvm/tools/lld/Common/Memory.cpp (props changed) head/contrib/llvm/tools/lld/Common/Reproduce.cpp (props changed) head/contrib/llvm/tools/lld/Common/Threads.cpp (props changed) head/contrib/llvm/tools/lld/Common/Version.cpp (props changed) head/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp (props changed) head/contrib/llvm/tools/lld/ELF/Bits.h (props changed) head/contrib/llvm/tools/lld/ELF/EhFrame.h (props changed) head/contrib/llvm/tools/lld/ELF/Filesystem.h (props changed) head/contrib/llvm/tools/lld/ELF/ScriptLexer.h (props changed) head/contrib/llvm/tools/lld/ELF/ScriptParser.h (props changed) head/contrib/llvm/tools/lld/include/lld/Common/Args.h (props changed) head/contrib/llvm/tools/lld/include/lld/Common/LLVM.h (props changed) head/contrib/llvm/tools/lld/include/lld/Common/Memory.h (props changed) head/contrib/llvm/tools/lld/include/lld/Common/Reproduce.h (props changed) head/contrib/llvm/tools/lld/include/lld/Common/Threads.h (props changed) head/contrib/llvm/tools/lld/include/lld/Common/Version.inc.in (props changed) head/contrib/llvm/tools/lld/include/lld/Core/AbsoluteAtom.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/ArchiveLibraryFile.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/Atom.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/Error.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/Node.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/Pass.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/Reference.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryAtom.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryFile.h (props changed) head/contrib/llvm/tools/lld/include/lld/Core/UndefinedAtom.h (props changed) head/contrib/llvm/tools/lld/include/lld/ReaderWriter/YamlContext.h (props changed) head/contrib/llvm/tools/lld/lib/CMakeLists.txt (props changed) head/contrib/llvm/tools/lld/lib/Core/CMakeLists.txt (props changed) head/contrib/llvm/tools/lld/lib/Core/DefinedAtom.cpp (props changed) head/contrib/llvm/tools/lld/lib/Core/Error.cpp (props changed) head/contrib/llvm/tools/lld/lib/Core/File.cpp (props changed) head/contrib/llvm/tools/lld/lib/Core/Reader.cpp (props changed) head/contrib/llvm/tools/lld/lib/Core/Resolver.cpp (props changed) head/contrib/llvm/tools/lld/lib/Core/SymbolTable.cpp (props changed) head/contrib/llvm/tools/lld/lib/Core/Writer.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/CMakeLists.txt (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/Atoms.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/DebugInfo.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ExecutableAtoms.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/File.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/FlatNamespaceFile.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOPasses.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/TLVPass.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/WriterMachO.cpp (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/CMakeLists.txt (props changed) head/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (props changed) head/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt (props changed) head/contrib/llvm/tools/lldb/ (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBAttachInfo.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBLanguageRuntime.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfo.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBQueue.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBQueueItem.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBTrace.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBTraceOptions.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/API/SBVariablesOptions.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/DumpDataExtractor.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLVector.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFunctionPointer.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/DiagnosticManager.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/ConnectionFileDescriptor.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostGetOpt.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcess.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcessBase.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThread.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadForward.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/LockFile.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/LockFileBase.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/OptionParser.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLauncher.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/ThreadLauncher.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/Time.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpointList.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeWatchpointList.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/SoftwareBreakpoint.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/TCPSocket.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/common/UDPSocket.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/openbsd/HostInfoOpenBSD.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/DomainSocket.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/Fcntl.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostThreadPosix.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/LockFilePosix.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Host/posix/ProcessLauncherPosixFork.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializer.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemLifetimeManager.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangUtil.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDecl.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDeclContext.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/JavaASTContext.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/OCamlASTContext.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeMap.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/StructuredDataPlugin.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallOnFunctionExit.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Either.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Endian.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/FastDemangle.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/IOObject.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/LLDBAssert.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/Logging.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/NameMatches.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamCallback.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamGDBRemote.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StreamString.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/TraceOptions.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/UriParser.h (props changed) head/contrib/llvm/tools/lldb/include/lldb/Utility/VASPrintf.h (props changed) head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h (props changed) head/contrib/llvm/tools/lldb/source/API/SBExecutionContext.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBLanguageRuntime.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfo.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfoList.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBQueue.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBThreadCollection.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBTrace.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBTraceOptions.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp (props changed) head/contrib/llvm/tools/lldb/source/API/SBVariablesOptions.cpp (props changed) head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp (props changed) head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp (props changed) head/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h (props changed) head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp (props changed) head/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h (props changed) head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.cpp (props changed) head/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultCast.cpp (props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp (props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp (props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp (props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp (props changed) head/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp (props changed) head/contrib/llvm/tools/lldb/source/Expression/Expression.cpp (props changed) head/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/FileSystem.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/GetOptInc.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/HostProcess.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/LockFileBase.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/NativeBreakpoint.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/NativeWatchpointList.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/OptionParser.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/PipeBase.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/ProcessRunLock.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/common/ThreadLauncher.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/openbsd/HostInfoOpenBSD.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/posix/DomainSocket.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp (props changed) head/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp (props changed) head/contrib/llvm/tools/lldb/source/Initialization/SystemInitializer.cpp (props changed) head/contrib/llvm/tools/lldb/source/Initialization/SystemLifetimeManager.cpp (props changed) head/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoAST.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoLexer.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoLexer.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/GoParser.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/gen_go_ast.py (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoFormatterFunctions.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoLanguage.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Go/GoLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/OCamlLanguage.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/OCamlLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/OperatingSystemGo.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFUtils.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/LaunchFlavor.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_s390x.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm64-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-s390x-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/NtStructures.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp (props changed) head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h (props changed) head/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h (props changed) head/contrib/llvm/tools/lldb/source/Symbol/ClangUtil.cpp (props changed) head/contrib/llvm/tools/lldb/source/Symbol/CompilerDecl.cpp (props changed) head/contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp (props changed) head/contrib/llvm/tools/lldb/source/Symbol/DebugMacros.cpp (props changed) head/contrib/llvm/tools/lldb/source/Symbol/JavaASTContext.cpp (props changed) head/contrib/llvm/tools/lldb/source/Symbol/OCamlASTContext.cpp (props changed) head/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/FileAction.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/Language.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/Queue.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/QueueList.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/RegisterNumber.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/StructuredDataPlugin.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/SystemRuntime.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/ThreadCollection.cpp (props changed) head/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h (props changed) head/contrib/llvm/tools/lldb/source/Utility/ARM64_ehframe_Registers.h (props changed) head/contrib/llvm/tools/lldb/source/Utility/ARM_ehframe_Registers.h (props changed) head/contrib/llvm/tools/lldb/source/Utility/Baton.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/Connection.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/IOObject.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/LLDBAssert.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/Logging.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/NameMatches.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h (props changed) head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h (props changed) head/contrib/llvm/tools/lldb/source/Utility/StreamCallback.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/StreamGDBRemote.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/StreamString.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/StringList.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/Timer.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp (props changed) head/contrib/llvm/tools/lldb/source/Utility/UserID.cpp (props changed) head/contrib/llvm/tools/lldb/tools/argdumper/argdumper.cpp (props changed) head/contrib/llvm/tools/lldb/tools/compact-unwind/compact-unwind-dumper.c (props changed) head/contrib/llvm/tools/lldb/tools/driver/Platform.cpp (props changed) head/contrib/llvm/tools/lldb/tools/driver/Platform.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnConfig.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIExtensions.txt (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-mi/Platform.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.cpp (props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h (props changed) head/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.h (props changed) head/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp (props changed) head/contrib/llvm/tools/llvm-cov/gcov.cpp (props changed) head/contrib/llvm/tools/llvm-cxxdump/Error.h (props changed) head/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/Analyze.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/OutputStyle.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.h (props changed) head/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp (props changed) head/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h (props changed) head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp (props changed) head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h (props changed) head/contrib/llvm/tools/llvm-xray/trie-node.h (props changed) head/contrib/llvm/tools/llvm-xray/xray-color-helper.h (props changed) head/contrib/llvm/tools/llvm-xray/xray-converter.h (props changed) head/contrib/llvm/tools/llvm-xray/xray-graph-diff.h (props changed) head/contrib/llvm/tools/llvm-xray/xray-registry.h (props changed) head/contrib/llvm/utils/TableGen/Attributes.cpp (props changed) head/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp (props changed) head/contrib/llvm/utils/TableGen/CodeGenHwModes.h (props changed) head/contrib/llvm/utils/TableGen/SDNodeProperties.cpp (props changed) head/contrib/llvm/utils/TableGen/SDNodeProperties.h (props changed) head/contrib/llvm/utils/TableGen/Types.cpp (props changed) head/contrib/llvm/utils/TableGen/Types.h (props changed) head/contrib/lua/ (props changed) head/contrib/mandoc/ (props changed) head/contrib/netbsd-tests/ (props changed) head/contrib/ntp/ (props changed) head/contrib/nvi/ (props changed) head/contrib/one-true-awk/ (props changed) head/contrib/openbsm/ (props changed) head/contrib/pf/ (props changed) head/contrib/sendmail/ (props changed) head/contrib/serf/ (props changed) head/contrib/tcpdump/ (props changed) head/contrib/tnftp/ (props changed) head/contrib/tzcode/stdtime/ (props changed) head/contrib/tzdata/ (props changed) head/contrib/unbound/ (props changed) head/contrib/wpa/ (props changed) head/crypto/heimdal/ (props changed) head/crypto/openssh/ (props changed) head/crypto/openssl/ (props changed) head/gnu/lib/ (props changed) head/gnu/usr.bin/binutils/ (props changed) head/gnu/usr.bin/cc/cc_tools/ (props changed) head/gnu/usr.bin/gdb/ (props changed) head/lib/libedit/ (props changed) head/sys/cddl/contrib/opensolaris/ (props changed) head/sys/contrib/ck/ (props changed) head/sys/contrib/dev/acpica/ (props changed) head/sys/contrib/ipfilter/ (props changed) head/sys/contrib/octeon-sdk/ (props changed) head/sys/contrib/zstd/ (props changed) head/sys/gnu/dts/arm/ (props changed) head/sys/gnu/dts/arm64/ (props changed) head/sys/gnu/dts/include/ (props changed) head/usr.sbin/bhyve/pci_fbuf.c (props changed) head/usr.sbin/bhyve/pci_xhci.c (props changed) head/usr.sbin/bhyve/ps2kbd.c (props changed) head/usr.sbin/bhyve/rfb.c (props changed) Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Tue Dec 11 17:46:01 2018 (r341824) +++ head/ObsoleteFiles.inc Tue Dec 11 19:05:28 2018 (r341825) @@ -38,6 +38,142 @@ # xargs -n1 | sort | uniq -d; # done +# 20181218: new clang import which bumps version from 6.0.1 to 7.0.1. +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/6.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/6.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/6.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/6.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/6.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/6.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/6.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/6.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/6.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/6.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/6.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/6.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/6.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/6.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/6.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/6.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/6.0.1/include +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/6.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/6.0.1/lib +OLD_DIRS+=usr/lib/clang/6.0.1 # 20181116: Rename test file. OLD_FILES+=usr/tests/sys/netinet/reuseport_lb # 20181112: Cleanup old libcap_dns. Modified: head/UPDATING ============================================================================== --- head/UPDATING Tue Dec 11 17:46:01 2018 (r341824) +++ head/UPDATING Tue Dec 11 19:05:28 2018 (r341825) @@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20181218: + Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to + 7.0.1. Please see the 20141231 entry below for information about + prerequisites and upgrading, if you are not already using clang 3.5.0 + or higher. + 20181126: On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as Modified: head/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- head/contrib/compiler-rt/LICENSE.TXT Tue Dec 11 17:46:01 2018 (r341824) +++ head/contrib/compiler-rt/LICENSE.TXT Tue Dec 11 19:05:28 2018 (r341825) @@ -14,7 +14,7 @@ Full text of the relevant licenses is included below. University of Illinois/NCSA Open Source License -Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT All rights reserved. Modified: head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Tue Dec 11 17:46:01 2018 (r341824) +++ head/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Tue Dec 11 19:05:28 2018 (r341825) @@ -65,6 +65,11 @@ extern "C" { void __sanitizer_unaligned_store32(void *p, uint32_t x); void __sanitizer_unaligned_store64(void *p, uint64_t x); + // Returns 1 on the first call, then returns 0 thereafter. Called by the tool + // to ensure only one report is printed when multiple errors occur + // simultaneously. + int __sanitizer_acquire_crash_state(); + // Annotate the current state of a contiguous container, such as // std::vector, std::string or similar. // A contiguous container is a container that keeps all of its elements Modified: head/contrib/compiler-rt/include/sanitizer/msan_interface.h ============================================================================== --- head/contrib/compiler-rt/include/sanitizer/msan_interface.h Tue Dec 11 17:46:01 2018 (r341824) +++ head/contrib/compiler-rt/include/sanitizer/msan_interface.h Tue Dec 11 19:05:28 2018 (r341825) @@ -104,6 +104,14 @@ extern "C" { copy. Source and destination regions can overlap. */ void __msan_copy_shadow(const volatile void *dst, const volatile void *src, size_t size); + + /* Disables uninitialized memory checks in interceptors. */ + void __msan_scoped_disable_interceptor_checks(void); + + /* Re-enables uninitialized memory checks in interceptors after a previous + call to __msan_scoped_disable_interceptor_checks. */ + void __msan_scoped_enable_interceptor_checks(void); + #ifdef __cplusplus } // extern "C" #endif Copied: head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h (from r341824, projects/clang700-import/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h Tue Dec 11 19:05:28 2018 (r341825, copy of r341824, projects/clang700-import/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h) @@ -0,0 +1,4734 @@ +//===-- netbsd_syscall_hooks.h --------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of public sanitizer interface. +// +// System call handlers. +// +// Interface methods declared in this header implement pre- and post- syscall +// actions for the active sanitizer. +// Usage: +// __sanitizer_syscall_pre_getfoo(...args...); +// long long res = syscall(SYS_getfoo, ...args...); +// __sanitizer_syscall_post_getfoo(res, ...args...); +// +// DO NOT EDIT! THIS FILE HAS BEEN GENERATED! +// +// Generated with: generate_netbsd_syscalls.awk +// Generated date: 2018-03-03 +// Generated from: syscalls.master,v 1.291 2018/01/06 16:41:23 kamil Exp +// +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_NETBSD_SYSCALL_HOOKS_H +#define SANITIZER_NETBSD_SYSCALL_HOOKS_H + +#define __sanitizer_syscall_pre_syscall(code, arg0, arg1, arg2, arg3, arg4, \ + arg5, arg6, arg7) \ + __sanitizer_syscall_pre_impl_syscall( \ + (long long)(code), (long long)(arg0), (long long)(arg1), \ + (long long)(arg2), (long long)(arg3), (long long)(arg4), \ + (long long)(arg5), (long long)(arg6), (long long)(arg7)) +#define __sanitizer_syscall_post_syscall(res, code, arg0, arg1, arg2, arg3, \ + arg4, arg5, arg6, arg7) \ + __sanitizer_syscall_post_impl_syscall( \ + res, (long long)(code), (long long)(arg0), (long long)(arg1), \ + (long long)(arg2), (long long)(arg3), (long long)(arg4), \ + (long long)(arg5), (long long)(arg6), (long long)(arg7)) +#define __sanitizer_syscall_pre_exit(rval) \ + __sanitizer_syscall_pre_impl_exit((long long)(rval)) +#define __sanitizer_syscall_post_exit(res, rval) \ + __sanitizer_syscall_post_impl_exit(res, (long long)(rval)) +#define __sanitizer_syscall_pre_fork() __sanitizer_syscall_pre_impl_fork() +#define __sanitizer_syscall_post_fork(res) \ + __sanitizer_syscall_post_impl_fork(res) +#define __sanitizer_syscall_pre_read(fd, buf, nbyte) \ + __sanitizer_syscall_pre_impl_read((long long)(fd), (long long)(buf), \ + (long long)(nbyte)) +#define __sanitizer_syscall_post_read(res, fd, buf, nbyte) \ + __sanitizer_syscall_post_impl_read(res, (long long)(fd), (long long)(buf), \ + (long long)(nbyte)) +#define __sanitizer_syscall_pre_write(fd, buf, nbyte) \ + __sanitizer_syscall_pre_impl_write((long long)(fd), (long long)(buf), \ + (long long)(nbyte)) +#define __sanitizer_syscall_post_write(res, fd, buf, nbyte) \ + __sanitizer_syscall_post_impl_write(res, (long long)(fd), (long long)(buf), \ + (long long)(nbyte)) +#define __sanitizer_syscall_pre_open(path, flags, mode) \ + __sanitizer_syscall_pre_impl_open((long long)(path), (long long)(flags), \ + (long long)(mode)) +#define __sanitizer_syscall_post_open(res, path, flags, mode) \ + __sanitizer_syscall_post_impl_open(res, (long long)(path), \ + (long long)(flags), (long long)(mode)) +#define __sanitizer_syscall_pre_close(fd) \ + __sanitizer_syscall_pre_impl_close((long long)(fd)) +#define __sanitizer_syscall_post_close(res, fd) \ + __sanitizer_syscall_post_impl_close(res, (long long)(fd)) +#define __sanitizer_syscall_pre_compat_50_wait4(pid, status, options, rusage) \ + __sanitizer_syscall_pre_impl_compat_50_wait4( \ + (long long)(pid), (long long)(status), (long long)(options), \ + (long long)(rusage)) +#define __sanitizer_syscall_post_compat_50_wait4(res, pid, status, options, \ + rusage) \ + __sanitizer_syscall_post_impl_compat_50_wait4( \ + res, (long long)(pid), (long long)(status), (long long)(options), \ + (long long)(rusage)) +#define __sanitizer_syscall_pre_compat_43_ocreat(path, mode) \ + __sanitizer_syscall_pre_impl_compat_43_ocreat((long long)(path), \ + (long long)(mode)) +#define __sanitizer_syscall_post_compat_43_ocreat(res, path, mode) \ + __sanitizer_syscall_post_impl_compat_43_ocreat(res, (long long)(path), \ + (long long)(mode)) +#define __sanitizer_syscall_pre_link(path, link) \ + __sanitizer_syscall_pre_impl_link((long long)(path), (long long)(link)) +#define __sanitizer_syscall_post_link(res, path, link) \ + __sanitizer_syscall_post_impl_link(res, (long long)(path), (long long)(link)) +#define __sanitizer_syscall_pre_unlink(path) \ + __sanitizer_syscall_pre_impl_unlink((long long)(path)) +#define __sanitizer_syscall_post_unlink(res, path) \ + __sanitizer_syscall_post_impl_unlink(res, (long long)(path)) +/* syscall 11 has been skipped */ +#define __sanitizer_syscall_pre_chdir(path) \ + __sanitizer_syscall_pre_impl_chdir((long long)(path)) +#define __sanitizer_syscall_post_chdir(res, path) \ + __sanitizer_syscall_post_impl_chdir(res, (long long)(path)) +#define __sanitizer_syscall_pre_fchdir(fd) \ + __sanitizer_syscall_pre_impl_fchdir((long long)(fd)) +#define __sanitizer_syscall_post_fchdir(res, fd) \ + __sanitizer_syscall_post_impl_fchdir(res, (long long)(fd)) +#define __sanitizer_syscall_pre_compat_50_mknod(path, mode, dev) \ + __sanitizer_syscall_pre_impl_compat_50_mknod( \ + (long long)(path), (long long)(mode), (long long)(dev)) +#define __sanitizer_syscall_post_compat_50_mknod(res, path, mode, dev) \ + __sanitizer_syscall_post_impl_compat_50_mknod( \ + res, (long long)(path), (long long)(mode), (long long)(dev)) +#define __sanitizer_syscall_pre_chmod(path, mode) \ + __sanitizer_syscall_pre_impl_chmod((long long)(path), (long long)(mode)) +#define __sanitizer_syscall_post_chmod(res, path, mode) \ + __sanitizer_syscall_post_impl_chmod(res, (long long)(path), (long long)(mode)) +#define __sanitizer_syscall_pre_chown(path, uid, gid) \ + __sanitizer_syscall_pre_impl_chown((long long)(path), (long long)(uid), \ + (long long)(gid)) +#define __sanitizer_syscall_post_chown(res, path, uid, gid) \ + __sanitizer_syscall_post_impl_chown(res, (long long)(path), \ + (long long)(uid), (long long)(gid)) +#define __sanitizer_syscall_pre_break(nsize) \ + __sanitizer_syscall_pre_impl_break((long long)(nsize)) +#define __sanitizer_syscall_post_break(res, nsize) \ + __sanitizer_syscall_post_impl_break(res, (long long)(nsize)) +#define __sanitizer_syscall_pre_compat_20_getfsstat(buf, bufsize, flags) \ + __sanitizer_syscall_pre_impl_compat_20_getfsstat( \ + (long long)(buf), (long long)(bufsize), (long long)(flags)) +#define __sanitizer_syscall_post_compat_20_getfsstat(res, buf, bufsize, flags) \ + __sanitizer_syscall_post_impl_compat_20_getfsstat( \ + res, (long long)(buf), (long long)(bufsize), (long long)(flags)) +#define __sanitizer_syscall_pre_compat_43_olseek(fd, offset, whence) \ + __sanitizer_syscall_pre_impl_compat_43_olseek( \ + (long long)(fd), (long long)(offset), (long long)(whence)) +#define __sanitizer_syscall_post_compat_43_olseek(res, fd, offset, whence) \ + __sanitizer_syscall_post_impl_compat_43_olseek( \ + res, (long long)(fd), (long long)(offset), (long long)(whence)) +#define __sanitizer_syscall_pre_getpid() __sanitizer_syscall_pre_impl_getpid() +#define __sanitizer_syscall_post_getpid(res) \ + __sanitizer_syscall_post_impl_getpid(res) +#define __sanitizer_syscall_pre_compat_40_mount(type, path, flags, data) \ + __sanitizer_syscall_pre_impl_compat_40_mount( \ + (long long)(type), (long long)(path), (long long)(flags), \ + (long long)(data)) +#define __sanitizer_syscall_post_compat_40_mount(res, type, path, flags, data) \ + __sanitizer_syscall_post_impl_compat_40_mount( \ + res, (long long)(type), (long long)(path), (long long)(flags), \ + (long long)(data)) +#define __sanitizer_syscall_pre_unmount(path, flags) \ + __sanitizer_syscall_pre_impl_unmount((long long)(path), (long long)(flags)) +#define __sanitizer_syscall_post_unmount(res, path, flags) \ + __sanitizer_syscall_post_impl_unmount(res, (long long)(path), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_setuid(uid) \ + __sanitizer_syscall_pre_impl_setuid((long long)(uid)) +#define __sanitizer_syscall_post_setuid(res, uid) \ + __sanitizer_syscall_post_impl_setuid(res, (long long)(uid)) +#define __sanitizer_syscall_pre_getuid() __sanitizer_syscall_pre_impl_getuid() +#define __sanitizer_syscall_post_getuid(res) \ + __sanitizer_syscall_post_impl_getuid(res) +#define __sanitizer_syscall_pre_geteuid() __sanitizer_syscall_pre_impl_geteuid() +#define __sanitizer_syscall_post_geteuid(res) \ + __sanitizer_syscall_post_impl_geteuid(res) +#define __sanitizer_syscall_pre_ptrace(req, pid, addr, data) \ + __sanitizer_syscall_pre_impl_ptrace((long long)(req), (long long)(pid), \ + (long long)(addr), (long long)(data)) +#define __sanitizer_syscall_post_ptrace(res, req, pid, addr, data) \ + __sanitizer_syscall_post_impl_ptrace(res, (long long)(req), \ + (long long)(pid), (long long)(addr), \ + (long long)(data)) +#define __sanitizer_syscall_pre_recvmsg(s, msg, flags) \ + __sanitizer_syscall_pre_impl_recvmsg((long long)(s), (long long)(msg), \ + (long long)(flags)) +#define __sanitizer_syscall_post_recvmsg(res, s, msg, flags) \ + __sanitizer_syscall_post_impl_recvmsg(res, (long long)(s), (long long)(msg), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_sendmsg(s, msg, flags) \ + __sanitizer_syscall_pre_impl_sendmsg((long long)(s), (long long)(msg), \ + (long long)(flags)) +#define __sanitizer_syscall_post_sendmsg(res, s, msg, flags) \ + __sanitizer_syscall_post_impl_sendmsg(res, (long long)(s), (long long)(msg), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_recvfrom(s, buf, len, flags, from, \ + fromlenaddr) \ + __sanitizer_syscall_pre_impl_recvfrom( \ + (long long)(s), (long long)(buf), (long long)(len), (long long)(flags), \ + (long long)(from), (long long)(fromlenaddr)) +#define __sanitizer_syscall_post_recvfrom(res, s, buf, len, flags, from, \ + fromlenaddr) \ + __sanitizer_syscall_post_impl_recvfrom( \ + res, (long long)(s), (long long)(buf), (long long)(len), \ + (long long)(flags), (long long)(from), (long long)(fromlenaddr)) +#define __sanitizer_syscall_pre_accept(s, name, anamelen) \ + __sanitizer_syscall_pre_impl_accept((long long)(s), (long long)(name), \ + (long long)(anamelen)) +#define __sanitizer_syscall_post_accept(res, s, name, anamelen) \ + __sanitizer_syscall_post_impl_accept(res, (long long)(s), (long long)(name), \ + (long long)(anamelen)) +#define __sanitizer_syscall_pre_getpeername(fdes, asa, alen) \ + __sanitizer_syscall_pre_impl_getpeername( \ + (long long)(fdes), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_post_getpeername(res, fdes, asa, alen) \ + __sanitizer_syscall_post_impl_getpeername( \ + res, (long long)(fdes), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_pre_getsockname(fdes, asa, alen) \ + __sanitizer_syscall_pre_impl_getsockname( \ + (long long)(fdes), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_post_getsockname(res, fdes, asa, alen) \ + __sanitizer_syscall_post_impl_getsockname( \ + res, (long long)(fdes), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_pre_access(path, flags) \ + __sanitizer_syscall_pre_impl_access((long long)(path), (long long)(flags)) +#define __sanitizer_syscall_post_access(res, path, flags) \ + __sanitizer_syscall_post_impl_access(res, (long long)(path), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_chflags(path, flags) \ + __sanitizer_syscall_pre_impl_chflags((long long)(path), (long long)(flags)) +#define __sanitizer_syscall_post_chflags(res, path, flags) \ + __sanitizer_syscall_post_impl_chflags(res, (long long)(path), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_fchflags(fd, flags) \ + __sanitizer_syscall_pre_impl_fchflags((long long)(fd), (long long)(flags)) +#define __sanitizer_syscall_post_fchflags(res, fd, flags) \ + __sanitizer_syscall_post_impl_fchflags(res, (long long)(fd), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_sync() __sanitizer_syscall_pre_impl_sync() +#define __sanitizer_syscall_post_sync(res) \ + __sanitizer_syscall_post_impl_sync(res) +#define __sanitizer_syscall_pre_kill(pid, signum) \ + __sanitizer_syscall_pre_impl_kill((long long)(pid), (long long)(signum)) +#define __sanitizer_syscall_post_kill(res, pid, signum) \ + __sanitizer_syscall_post_impl_kill(res, (long long)(pid), (long long)(signum)) +#define __sanitizer_syscall_pre_compat_43_stat43(path, ub) \ + __sanitizer_syscall_pre_impl_compat_43_stat43((long long)(path), \ + (long long)(ub)) +#define __sanitizer_syscall_post_compat_43_stat43(res, path, ub) \ + __sanitizer_syscall_post_impl_compat_43_stat43(res, (long long)(path), \ + (long long)(ub)) +#define __sanitizer_syscall_pre_getppid() __sanitizer_syscall_pre_impl_getppid() +#define __sanitizer_syscall_post_getppid(res) \ + __sanitizer_syscall_post_impl_getppid(res) +#define __sanitizer_syscall_pre_compat_43_lstat43(path, ub) \ + __sanitizer_syscall_pre_impl_compat_43_lstat43((long long)(path), \ + (long long)(ub)) +#define __sanitizer_syscall_post_compat_43_lstat43(res, path, ub) \ + __sanitizer_syscall_post_impl_compat_43_lstat43(res, (long long)(path), \ + (long long)(ub)) +#define __sanitizer_syscall_pre_dup(fd) \ + __sanitizer_syscall_pre_impl_dup((long long)(fd)) +#define __sanitizer_syscall_post_dup(res, fd) \ + __sanitizer_syscall_post_impl_dup(res, (long long)(fd)) +#define __sanitizer_syscall_pre_pipe() __sanitizer_syscall_pre_impl_pipe() +#define __sanitizer_syscall_post_pipe(res) \ + __sanitizer_syscall_post_impl_pipe(res) +#define __sanitizer_syscall_pre_getegid() __sanitizer_syscall_pre_impl_getegid() +#define __sanitizer_syscall_post_getegid(res) \ + __sanitizer_syscall_post_impl_getegid(res) +#define __sanitizer_syscall_pre_profil(samples, size, offset, scale) \ + __sanitizer_syscall_pre_impl_profil((long long)(samples), (long long)(size), \ + (long long)(offset), (long long)(scale)) +#define __sanitizer_syscall_post_profil(res, samples, size, offset, scale) \ + __sanitizer_syscall_post_impl_profil(res, (long long)(samples), \ + (long long)(size), (long long)(offset), \ + (long long)(scale)) +#define __sanitizer_syscall_pre_ktrace(fname, ops, facs, pid) \ + __sanitizer_syscall_pre_impl_ktrace((long long)(fname), (long long)(ops), \ + (long long)(facs), (long long)(pid)) +#define __sanitizer_syscall_post_ktrace(res, fname, ops, facs, pid) \ + __sanitizer_syscall_post_impl_ktrace(res, (long long)(fname), \ + (long long)(ops), (long long)(facs), \ + (long long)(pid)) +#define __sanitizer_syscall_pre_compat_13_sigaction13(signum, nsa, osa) \ + __sanitizer_syscall_pre_impl_compat_13_sigaction13( \ + (long long)(signum), (long long)(nsa), (long long)(osa)) +#define __sanitizer_syscall_post_compat_13_sigaction13(res, signum, nsa, osa) \ + __sanitizer_syscall_post_impl_compat_13_sigaction13( \ + res, (long long)(signum), (long long)(nsa), (long long)(osa)) +#define __sanitizer_syscall_pre_getgid() __sanitizer_syscall_pre_impl_getgid() +#define __sanitizer_syscall_post_getgid(res) \ + __sanitizer_syscall_post_impl_getgid(res) +#define __sanitizer_syscall_pre_compat_13_sigprocmask13(how, mask) \ + __sanitizer_syscall_pre_impl_compat_13_sigprocmask13((long long)(how), \ + (long long)(mask)) +#define __sanitizer_syscall_post_compat_13_sigprocmask13(res, how, mask) \ + __sanitizer_syscall_post_impl_compat_13_sigprocmask13(res, (long long)(how), \ + (long long)(mask)) +#define __sanitizer_syscall_pre___getlogin(namebuf, namelen) \ + __sanitizer_syscall_pre_impl___getlogin((long long)(namebuf), \ + (long long)(namelen)) +#define __sanitizer_syscall_post___getlogin(res, namebuf, namelen) \ + __sanitizer_syscall_post_impl___getlogin(res, (long long)(namebuf), \ + (long long)(namelen)) +#define __sanitizer_syscall_pre___setlogin(namebuf) \ + __sanitizer_syscall_pre_impl___setlogin((long long)(namebuf)) +#define __sanitizer_syscall_post___setlogin(res, namebuf) \ + __sanitizer_syscall_post_impl___setlogin(res, (long long)(namebuf)) +#define __sanitizer_syscall_pre_acct(path) \ + __sanitizer_syscall_pre_impl_acct((long long)(path)) +#define __sanitizer_syscall_post_acct(res, path) \ + __sanitizer_syscall_post_impl_acct(res, (long long)(path)) +#define __sanitizer_syscall_pre_compat_13_sigpending13() \ + __sanitizer_syscall_pre_impl_compat_13_sigpending13() +#define __sanitizer_syscall_post_compat_13_sigpending13(res) \ + __sanitizer_syscall_post_impl_compat_13_sigpending13(res) +#define __sanitizer_syscall_pre_compat_13_sigaltstack13(nss, oss) \ + __sanitizer_syscall_pre_impl_compat_13_sigaltstack13((long long)(nss), \ + (long long)(oss)) +#define __sanitizer_syscall_post_compat_13_sigaltstack13(res, nss, oss) \ + __sanitizer_syscall_post_impl_compat_13_sigaltstack13(res, (long long)(nss), \ + (long long)(oss)) +#define __sanitizer_syscall_pre_ioctl(fd, com, data) \ + __sanitizer_syscall_pre_impl_ioctl((long long)(fd), (long long)(com), \ + (long long)(data)) +#define __sanitizer_syscall_post_ioctl(res, fd, com, data) \ + __sanitizer_syscall_post_impl_ioctl(res, (long long)(fd), (long long)(com), \ + (long long)(data)) +#define __sanitizer_syscall_pre_compat_12_oreboot(opt) \ + __sanitizer_syscall_pre_impl_compat_12_oreboot((long long)(opt)) +#define __sanitizer_syscall_post_compat_12_oreboot(res, opt) \ + __sanitizer_syscall_post_impl_compat_12_oreboot(res, (long long)(opt)) +#define __sanitizer_syscall_pre_revoke(path) \ + __sanitizer_syscall_pre_impl_revoke((long long)(path)) +#define __sanitizer_syscall_post_revoke(res, path) \ + __sanitizer_syscall_post_impl_revoke(res, (long long)(path)) +#define __sanitizer_syscall_pre_symlink(path, link) \ + __sanitizer_syscall_pre_impl_symlink((long long)(path), (long long)(link)) +#define __sanitizer_syscall_post_symlink(res, path, link) \ + __sanitizer_syscall_post_impl_symlink(res, (long long)(path), \ + (long long)(link)) +#define __sanitizer_syscall_pre_readlink(path, buf, count) \ + __sanitizer_syscall_pre_impl_readlink((long long)(path), (long long)(buf), \ + (long long)(count)) +#define __sanitizer_syscall_post_readlink(res, path, buf, count) \ + __sanitizer_syscall_post_impl_readlink(res, (long long)(path), \ + (long long)(buf), (long long)(count)) +#define __sanitizer_syscall_pre_execve(path, argp, envp) \ + __sanitizer_syscall_pre_impl_execve((long long)(path), (long long)(argp), \ + (long long)(envp)) +#define __sanitizer_syscall_post_execve(res, path, argp, envp) \ + __sanitizer_syscall_post_impl_execve(res, (long long)(path), \ + (long long)(argp), (long long)(envp)) +#define __sanitizer_syscall_pre_umask(newmask) \ + __sanitizer_syscall_pre_impl_umask((long long)(newmask)) +#define __sanitizer_syscall_post_umask(res, newmask) \ + __sanitizer_syscall_post_impl_umask(res, (long long)(newmask)) +#define __sanitizer_syscall_pre_chroot(path) \ + __sanitizer_syscall_pre_impl_chroot((long long)(path)) +#define __sanitizer_syscall_post_chroot(res, path) \ + __sanitizer_syscall_post_impl_chroot(res, (long long)(path)) +#define __sanitizer_syscall_pre_compat_43_fstat43(fd, sb) \ + __sanitizer_syscall_pre_impl_compat_43_fstat43((long long)(fd), \ + (long long)(sb)) +#define __sanitizer_syscall_post_compat_43_fstat43(res, fd, sb) \ + __sanitizer_syscall_post_impl_compat_43_fstat43(res, (long long)(fd), \ + (long long)(sb)) +#define __sanitizer_syscall_pre_compat_43_ogetkerninfo(op, where, size, arg) \ + __sanitizer_syscall_pre_impl_compat_43_ogetkerninfo( \ + (long long)(op), (long long)(where), (long long)(size), \ + (long long)(arg)) +#define __sanitizer_syscall_post_compat_43_ogetkerninfo(res, op, where, size, \ + arg) \ + __sanitizer_syscall_post_impl_compat_43_ogetkerninfo( \ + res, (long long)(op), (long long)(where), (long long)(size), \ + (long long)(arg)) +#define __sanitizer_syscall_pre_compat_43_ogetpagesize() \ + __sanitizer_syscall_pre_impl_compat_43_ogetpagesize() +#define __sanitizer_syscall_post_compat_43_ogetpagesize(res) \ + __sanitizer_syscall_post_impl_compat_43_ogetpagesize(res) +#define __sanitizer_syscall_pre_compat_12_msync(addr, len) \ + __sanitizer_syscall_pre_impl_compat_12_msync((long long)(addr), \ + (long long)(len)) +#define __sanitizer_syscall_post_compat_12_msync(res, addr, len) \ + __sanitizer_syscall_post_impl_compat_12_msync(res, (long long)(addr), \ + (long long)(len)) +#define __sanitizer_syscall_pre_vfork() __sanitizer_syscall_pre_impl_vfork() +#define __sanitizer_syscall_post_vfork(res) \ + __sanitizer_syscall_post_impl_vfork(res) +/* syscall 67 has been skipped */ +/* syscall 68 has been skipped */ +/* syscall 69 has been skipped */ +/* syscall 70 has been skipped */ +#define __sanitizer_syscall_pre_compat_43_ommap(addr, len, prot, flags, fd, \ + pos) \ + __sanitizer_syscall_pre_impl_compat_43_ommap( \ + (long long)(addr), (long long)(len), (long long)(prot), \ + (long long)(flags), (long long)(fd), (long long)(pos)) +#define __sanitizer_syscall_post_compat_43_ommap(res, addr, len, prot, flags, \ + fd, pos) \ + __sanitizer_syscall_post_impl_compat_43_ommap( \ + res, (long long)(addr), (long long)(len), (long long)(prot), \ + (long long)(flags), (long long)(fd), (long long)(pos)) +#define __sanitizer_syscall_pre_vadvise(anom) \ + __sanitizer_syscall_pre_impl_vadvise((long long)(anom)) +#define __sanitizer_syscall_post_vadvise(res, anom) \ + __sanitizer_syscall_post_impl_vadvise(res, (long long)(anom)) +#define __sanitizer_syscall_pre_munmap(addr, len) \ + __sanitizer_syscall_pre_impl_munmap((long long)(addr), (long long)(len)) +#define __sanitizer_syscall_post_munmap(res, addr, len) \ + __sanitizer_syscall_post_impl_munmap(res, (long long)(addr), (long long)(len)) +#define __sanitizer_syscall_pre_mprotect(addr, len, prot) \ + __sanitizer_syscall_pre_impl_mprotect((long long)(addr), (long long)(len), \ + (long long)(prot)) +#define __sanitizer_syscall_post_mprotect(res, addr, len, prot) \ + __sanitizer_syscall_post_impl_mprotect(res, (long long)(addr), \ + (long long)(len), (long long)(prot)) +#define __sanitizer_syscall_pre_madvise(addr, len, behav) \ + __sanitizer_syscall_pre_impl_madvise((long long)(addr), (long long)(len), \ + (long long)(behav)) +#define __sanitizer_syscall_post_madvise(res, addr, len, behav) \ + __sanitizer_syscall_post_impl_madvise(res, (long long)(addr), \ + (long long)(len), (long long)(behav)) +/* syscall 76 has been skipped */ +/* syscall 77 has been skipped */ +#define __sanitizer_syscall_pre_mincore(addr, len, vec) \ + __sanitizer_syscall_pre_impl_mincore((long long)(addr), (long long)(len), \ + (long long)(vec)) +#define __sanitizer_syscall_post_mincore(res, addr, len, vec) \ + __sanitizer_syscall_post_impl_mincore(res, (long long)(addr), \ + (long long)(len), (long long)(vec)) +#define __sanitizer_syscall_pre_getgroups(gidsetsize, gidset) \ + __sanitizer_syscall_pre_impl_getgroups((long long)(gidsetsize), \ + (long long)(gidset)) +#define __sanitizer_syscall_post_getgroups(res, gidsetsize, gidset) \ + __sanitizer_syscall_post_impl_getgroups(res, (long long)(gidsetsize), \ + (long long)(gidset)) +#define __sanitizer_syscall_pre_setgroups(gidsetsize, gidset) \ + __sanitizer_syscall_pre_impl_setgroups((long long)(gidsetsize), \ + (long long)(gidset)) +#define __sanitizer_syscall_post_setgroups(res, gidsetsize, gidset) \ + __sanitizer_syscall_post_impl_setgroups(res, (long long)(gidsetsize), \ + (long long)(gidset)) +#define __sanitizer_syscall_pre_getpgrp() __sanitizer_syscall_pre_impl_getpgrp() +#define __sanitizer_syscall_post_getpgrp(res) \ + __sanitizer_syscall_post_impl_getpgrp(res) +#define __sanitizer_syscall_pre_setpgid(pid, pgid) \ + __sanitizer_syscall_pre_impl_setpgid((long long)(pid), (long long)(pgid)) +#define __sanitizer_syscall_post_setpgid(res, pid, pgid) \ + __sanitizer_syscall_post_impl_setpgid(res, (long long)(pid), \ + (long long)(pgid)) +#define __sanitizer_syscall_pre_compat_50_setitimer(which, itv, oitv) \ + __sanitizer_syscall_pre_impl_compat_50_setitimer( \ + (long long)(which), (long long)(itv), (long long)(oitv)) +#define __sanitizer_syscall_post_compat_50_setitimer(res, which, itv, oitv) \ + __sanitizer_syscall_post_impl_compat_50_setitimer( \ + res, (long long)(which), (long long)(itv), (long long)(oitv)) +#define __sanitizer_syscall_pre_compat_43_owait() \ + __sanitizer_syscall_pre_impl_compat_43_owait() +#define __sanitizer_syscall_post_compat_43_owait(res) \ + __sanitizer_syscall_post_impl_compat_43_owait(res) +#define __sanitizer_syscall_pre_compat_12_oswapon(name) \ + __sanitizer_syscall_pre_impl_compat_12_oswapon((long long)(name)) +#define __sanitizer_syscall_post_compat_12_oswapon(res, name) \ + __sanitizer_syscall_post_impl_compat_12_oswapon(res, (long long)(name)) +#define __sanitizer_syscall_pre_compat_50_getitimer(which, itv) \ + __sanitizer_syscall_pre_impl_compat_50_getitimer((long long)(which), \ + (long long)(itv)) +#define __sanitizer_syscall_post_compat_50_getitimer(res, which, itv) \ + __sanitizer_syscall_post_impl_compat_50_getitimer(res, (long long)(which), \ + (long long)(itv)) +#define __sanitizer_syscall_pre_compat_43_ogethostname(hostname, len) \ + __sanitizer_syscall_pre_impl_compat_43_ogethostname((long long)(hostname), \ + (long long)(len)) +#define __sanitizer_syscall_post_compat_43_ogethostname(res, hostname, len) \ + __sanitizer_syscall_post_impl_compat_43_ogethostname( \ + res, (long long)(hostname), (long long)(len)) +#define __sanitizer_syscall_pre_compat_43_osethostname(hostname, len) \ + __sanitizer_syscall_pre_impl_compat_43_osethostname((long long)(hostname), \ + (long long)(len)) +#define __sanitizer_syscall_post_compat_43_osethostname(res, hostname, len) \ + __sanitizer_syscall_post_impl_compat_43_osethostname( \ + res, (long long)(hostname), (long long)(len)) +#define __sanitizer_syscall_pre_compat_43_ogetdtablesize() \ + __sanitizer_syscall_pre_impl_compat_43_ogetdtablesize() +#define __sanitizer_syscall_post_compat_43_ogetdtablesize(res) \ + __sanitizer_syscall_post_impl_compat_43_ogetdtablesize(res) +#define __sanitizer_syscall_pre_dup2(from, to) \ + __sanitizer_syscall_pre_impl_dup2((long long)(from), (long long)(to)) +#define __sanitizer_syscall_post_dup2(res, from, to) \ + __sanitizer_syscall_post_impl_dup2(res, (long long)(from), (long long)(to)) +/* syscall 91 has been skipped */ +#define __sanitizer_syscall_pre_fcntl(fd, cmd, arg) \ + __sanitizer_syscall_pre_impl_fcntl((long long)(fd), (long long)(cmd), \ + (long long)(arg)) +#define __sanitizer_syscall_post_fcntl(res, fd, cmd, arg) \ + __sanitizer_syscall_post_impl_fcntl(res, (long long)(fd), (long long)(cmd), \ + (long long)(arg)) +#define __sanitizer_syscall_pre_compat_50_select(nd, in, ou, ex, tv) \ + __sanitizer_syscall_pre_impl_compat_50_select( \ + (long long)(nd), (long long)(in), (long long)(ou), (long long)(ex), \ + (long long)(tv)) +#define __sanitizer_syscall_post_compat_50_select(res, nd, in, ou, ex, tv) \ + __sanitizer_syscall_post_impl_compat_50_select( \ + res, (long long)(nd), (long long)(in), (long long)(ou), (long long)(ex), \ + (long long)(tv)) +/* syscall 94 has been skipped */ +#define __sanitizer_syscall_pre_fsync(fd) \ + __sanitizer_syscall_pre_impl_fsync((long long)(fd)) +#define __sanitizer_syscall_post_fsync(res, fd) \ + __sanitizer_syscall_post_impl_fsync(res, (long long)(fd)) +#define __sanitizer_syscall_pre_setpriority(which, who, prio) \ + __sanitizer_syscall_pre_impl_setpriority( \ + (long long)(which), (long long)(who), (long long)(prio)) +#define __sanitizer_syscall_post_setpriority(res, which, who, prio) \ + __sanitizer_syscall_post_impl_setpriority( \ + res, (long long)(which), (long long)(who), (long long)(prio)) +#define __sanitizer_syscall_pre_compat_30_socket(domain, type, protocol) \ + __sanitizer_syscall_pre_impl_compat_30_socket( \ + (long long)(domain), (long long)(type), (long long)(protocol)) +#define __sanitizer_syscall_post_compat_30_socket(res, domain, type, protocol) \ + __sanitizer_syscall_post_impl_compat_30_socket( \ + res, (long long)(domain), (long long)(type), (long long)(protocol)) +#define __sanitizer_syscall_pre_connect(s, name, namelen) \ + __sanitizer_syscall_pre_impl_connect((long long)(s), (long long)(name), \ + (long long)(namelen)) +#define __sanitizer_syscall_post_connect(res, s, name, namelen) \ + __sanitizer_syscall_post_impl_connect( \ + res, (long long)(s), (long long)(name), (long long)(namelen)) +#define __sanitizer_syscall_pre_compat_43_oaccept(s, name, anamelen) \ + __sanitizer_syscall_pre_impl_compat_43_oaccept( \ + (long long)(s), (long long)(name), (long long)(anamelen)) +#define __sanitizer_syscall_post_compat_43_oaccept(res, s, name, anamelen) \ + __sanitizer_syscall_post_impl_compat_43_oaccept( \ + res, (long long)(s), (long long)(name), (long long)(anamelen)) +#define __sanitizer_syscall_pre_getpriority(which, who) \ + __sanitizer_syscall_pre_impl_getpriority((long long)(which), (long long)(who)) +#define __sanitizer_syscall_post_getpriority(res, which, who) \ + __sanitizer_syscall_post_impl_getpriority(res, (long long)(which), \ + (long long)(who)) +#define __sanitizer_syscall_pre_compat_43_osend(s, buf, len, flags) \ + __sanitizer_syscall_pre_impl_compat_43_osend( \ + (long long)(s), (long long)(buf), (long long)(len), (long long)(flags)) +#define __sanitizer_syscall_post_compat_43_osend(res, s, buf, len, flags) \ + __sanitizer_syscall_post_impl_compat_43_osend( \ + res, (long long)(s), (long long)(buf), (long long)(len), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_compat_43_orecv(s, buf, len, flags) \ + __sanitizer_syscall_pre_impl_compat_43_orecv( \ + (long long)(s), (long long)(buf), (long long)(len), (long long)(flags)) +#define __sanitizer_syscall_post_compat_43_orecv(res, s, buf, len, flags) \ + __sanitizer_syscall_post_impl_compat_43_orecv( \ + res, (long long)(s), (long long)(buf), (long long)(len), \ + (long long)(flags)) +#define __sanitizer_syscall_pre_compat_13_sigreturn13(sigcntxp) \ + __sanitizer_syscall_pre_impl_compat_13_sigreturn13((long long)(sigcntxp)) +#define __sanitizer_syscall_post_compat_13_sigreturn13(res, sigcntxp) \ + __sanitizer_syscall_post_impl_compat_13_sigreturn13(res, \ + (long long)(sigcntxp)) +#define __sanitizer_syscall_pre_bind(s, name, namelen) \ + __sanitizer_syscall_pre_impl_bind((long long)(s), (long long)(name), \ + (long long)(namelen)) +#define __sanitizer_syscall_post_bind(res, s, name, namelen) \ + __sanitizer_syscall_post_impl_bind(res, (long long)(s), (long long)(name), \ + (long long)(namelen)) +#define __sanitizer_syscall_pre_setsockopt(s, level, name, val, valsize) \ + __sanitizer_syscall_pre_impl_setsockopt((long long)(s), (long long)(level), \ + (long long)(name), (long long)(val), \ + (long long)(valsize)) +#define __sanitizer_syscall_post_setsockopt(res, s, level, name, val, valsize) \ + __sanitizer_syscall_post_impl_setsockopt( \ + res, (long long)(s), (long long)(level), (long long)(name), \ + (long long)(val), (long long)(valsize)) +#define __sanitizer_syscall_pre_listen(s, backlog) \ + __sanitizer_syscall_pre_impl_listen((long long)(s), (long long)(backlog)) +#define __sanitizer_syscall_post_listen(res, s, backlog) \ + __sanitizer_syscall_post_impl_listen(res, (long long)(s), \ + (long long)(backlog)) +/* syscall 107 has been skipped */ +#define __sanitizer_syscall_pre_compat_43_osigvec(signum, nsv, osv) \ + __sanitizer_syscall_pre_impl_compat_43_osigvec( \ + (long long)(signum), (long long)(nsv), (long long)(osv)) +#define __sanitizer_syscall_post_compat_43_osigvec(res, signum, nsv, osv) \ + __sanitizer_syscall_post_impl_compat_43_osigvec( \ + res, (long long)(signum), (long long)(nsv), (long long)(osv)) +#define __sanitizer_syscall_pre_compat_43_osigblock(mask) \ + __sanitizer_syscall_pre_impl_compat_43_osigblock((long long)(mask)) +#define __sanitizer_syscall_post_compat_43_osigblock(res, mask) \ + __sanitizer_syscall_post_impl_compat_43_osigblock(res, (long long)(mask)) +#define __sanitizer_syscall_pre_compat_43_osigsetmask(mask) \ + __sanitizer_syscall_pre_impl_compat_43_osigsetmask((long long)(mask)) +#define __sanitizer_syscall_post_compat_43_osigsetmask(res, mask) \ + __sanitizer_syscall_post_impl_compat_43_osigsetmask(res, (long long)(mask)) +#define __sanitizer_syscall_pre_compat_13_sigsuspend13(mask) \ + __sanitizer_syscall_pre_impl_compat_13_sigsuspend13((long long)(mask)) +#define __sanitizer_syscall_post_compat_13_sigsuspend13(res, mask) \ + __sanitizer_syscall_post_impl_compat_13_sigsuspend13(res, (long long)(mask)) +#define __sanitizer_syscall_pre_compat_43_osigstack(nss, oss) \ + __sanitizer_syscall_pre_impl_compat_43_osigstack((long long)(nss), \ + (long long)(oss)) +#define __sanitizer_syscall_post_compat_43_osigstack(res, nss, oss) \ + __sanitizer_syscall_post_impl_compat_43_osigstack(res, (long long)(nss), \ + (long long)(oss)) +#define __sanitizer_syscall_pre_compat_43_orecvmsg(s, msg, flags) \ + __sanitizer_syscall_pre_impl_compat_43_orecvmsg( \ + (long long)(s), (long long)(msg), (long long)(flags)) +#define __sanitizer_syscall_post_compat_43_orecvmsg(res, s, msg, flags) \ + __sanitizer_syscall_post_impl_compat_43_orecvmsg( \ + res, (long long)(s), (long long)(msg), (long long)(flags)) +#define __sanitizer_syscall_pre_compat_43_osendmsg(s, msg, flags) \ + __sanitizer_syscall_pre_impl_compat_43_osendmsg( \ + (long long)(s), (long long)(msg), (long long)(flags)) +#define __sanitizer_syscall_post_compat_43_osendmsg(res, s, msg, flags) \ + __sanitizer_syscall_post_impl_compat_43_osendmsg( \ + res, (long long)(s), (long long)(msg), (long long)(flags)) +/* syscall 115 has been skipped */ +#define __sanitizer_syscall_pre_compat_50_gettimeofday(tp, tzp) \ + __sanitizer_syscall_pre_impl_compat_50_gettimeofday((long long)(tp), \ + (long long)(tzp)) +#define __sanitizer_syscall_post_compat_50_gettimeofday(res, tp, tzp) \ + __sanitizer_syscall_post_impl_compat_50_gettimeofday(res, (long long)(tp), \ + (long long)(tzp)) +#define __sanitizer_syscall_pre_compat_50_getrusage(who, rusage) \ + __sanitizer_syscall_pre_impl_compat_50_getrusage((long long)(who), \ + (long long)(rusage)) +#define __sanitizer_syscall_post_compat_50_getrusage(res, who, rusage) \ + __sanitizer_syscall_post_impl_compat_50_getrusage(res, (long long)(who), \ + (long long)(rusage)) +#define __sanitizer_syscall_pre_getsockopt(s, level, name, val, avalsize) \ + __sanitizer_syscall_pre_impl_getsockopt((long long)(s), (long long)(level), \ + (long long)(name), (long long)(val), \ + (long long)(avalsize)) +#define __sanitizer_syscall_post_getsockopt(res, s, level, name, val, \ + avalsize) \ + __sanitizer_syscall_post_impl_getsockopt( \ + res, (long long)(s), (long long)(level), (long long)(name), \ + (long long)(val), (long long)(avalsize)) +/* syscall 119 has been skipped */ +#define __sanitizer_syscall_pre_readv(fd, iovp, iovcnt) \ + __sanitizer_syscall_pre_impl_readv((long long)(fd), (long long)(iovp), \ + (long long)(iovcnt)) +#define __sanitizer_syscall_post_readv(res, fd, iovp, iovcnt) \ + __sanitizer_syscall_post_impl_readv(res, (long long)(fd), (long long)(iovp), \ + (long long)(iovcnt)) +#define __sanitizer_syscall_pre_writev(fd, iovp, iovcnt) \ + __sanitizer_syscall_pre_impl_writev((long long)(fd), (long long)(iovp), \ + (long long)(iovcnt)) +#define __sanitizer_syscall_post_writev(res, fd, iovp, iovcnt) \ + __sanitizer_syscall_post_impl_writev(res, (long long)(fd), \ + (long long)(iovp), (long long)(iovcnt)) +#define __sanitizer_syscall_pre_compat_50_settimeofday(tv, tzp) \ + __sanitizer_syscall_pre_impl_compat_50_settimeofday((long long)(tv), \ + (long long)(tzp)) +#define __sanitizer_syscall_post_compat_50_settimeofday(res, tv, tzp) \ + __sanitizer_syscall_post_impl_compat_50_settimeofday(res, (long long)(tv), \ + (long long)(tzp)) +#define __sanitizer_syscall_pre_fchown(fd, uid, gid) \ + __sanitizer_syscall_pre_impl_fchown((long long)(fd), (long long)(uid), \ + (long long)(gid)) +#define __sanitizer_syscall_post_fchown(res, fd, uid, gid) \ + __sanitizer_syscall_post_impl_fchown(res, (long long)(fd), (long long)(uid), \ + (long long)(gid)) +#define __sanitizer_syscall_pre_fchmod(fd, mode) \ + __sanitizer_syscall_pre_impl_fchmod((long long)(fd), (long long)(mode)) +#define __sanitizer_syscall_post_fchmod(res, fd, mode) \ + __sanitizer_syscall_post_impl_fchmod(res, (long long)(fd), (long long)(mode)) +#define __sanitizer_syscall_pre_compat_43_orecvfrom(s, buf, len, flags, from, \ + fromlenaddr) \ + __sanitizer_syscall_pre_impl_compat_43_orecvfrom( \ + (long long)(s), (long long)(buf), (long long)(len), (long long)(flags), \ + (long long)(from), (long long)(fromlenaddr)) +#define __sanitizer_syscall_post_compat_43_orecvfrom(res, s, buf, len, flags, \ + from, fromlenaddr) \ + __sanitizer_syscall_post_impl_compat_43_orecvfrom( \ + res, (long long)(s), (long long)(buf), (long long)(len), \ + (long long)(flags), (long long)(from), (long long)(fromlenaddr)) +#define __sanitizer_syscall_pre_setreuid(ruid, euid) \ + __sanitizer_syscall_pre_impl_setreuid((long long)(ruid), (long long)(euid)) +#define __sanitizer_syscall_post_setreuid(res, ruid, euid) \ + __sanitizer_syscall_post_impl_setreuid(res, (long long)(ruid), \ + (long long)(euid)) +#define __sanitizer_syscall_pre_setregid(rgid, egid) \ + __sanitizer_syscall_pre_impl_setregid((long long)(rgid), (long long)(egid)) +#define __sanitizer_syscall_post_setregid(res, rgid, egid) \ + __sanitizer_syscall_post_impl_setregid(res, (long long)(rgid), \ + (long long)(egid)) +#define __sanitizer_syscall_pre_rename(from, to) \ + __sanitizer_syscall_pre_impl_rename((long long)(from), (long long)(to)) +#define __sanitizer_syscall_post_rename(res, from, to) \ + __sanitizer_syscall_post_impl_rename(res, (long long)(from), (long long)(to)) +#define __sanitizer_syscall_pre_compat_43_otruncate(path, length) \ + __sanitizer_syscall_pre_impl_compat_43_otruncate((long long)(path), \ + (long long)(length)) +#define __sanitizer_syscall_post_compat_43_otruncate(res, path, length) \ + __sanitizer_syscall_post_impl_compat_43_otruncate(res, (long long)(path), \ + (long long)(length)) +#define __sanitizer_syscall_pre_compat_43_oftruncate(fd, length) \ + __sanitizer_syscall_pre_impl_compat_43_oftruncate((long long)(fd), \ + (long long)(length)) +#define __sanitizer_syscall_post_compat_43_oftruncate(res, fd, length) \ + __sanitizer_syscall_post_impl_compat_43_oftruncate(res, (long long)(fd), \ + (long long)(length)) +#define __sanitizer_syscall_pre_flock(fd, how) \ + __sanitizer_syscall_pre_impl_flock((long long)(fd), (long long)(how)) +#define __sanitizer_syscall_post_flock(res, fd, how) \ + __sanitizer_syscall_post_impl_flock(res, (long long)(fd), (long long)(how)) +#define __sanitizer_syscall_pre_mkfifo(path, mode) \ + __sanitizer_syscall_pre_impl_mkfifo((long long)(path), (long long)(mode)) +#define __sanitizer_syscall_post_mkfifo(res, path, mode) \ + __sanitizer_syscall_post_impl_mkfifo(res, (long long)(path), \ + (long long)(mode)) +#define __sanitizer_syscall_pre_sendto(s, buf, len, flags, to, tolen) \ + __sanitizer_syscall_pre_impl_sendto((long long)(s), (long long)(buf), \ + (long long)(len), (long long)(flags), \ + (long long)(to), (long long)(tolen)) +#define __sanitizer_syscall_post_sendto(res, s, buf, len, flags, to, tolen) \ + __sanitizer_syscall_post_impl_sendto(res, (long long)(s), (long long)(buf), \ + (long long)(len), (long long)(flags), \ + (long long)(to), (long long)(tolen)) +#define __sanitizer_syscall_pre_shutdown(s, how) \ + __sanitizer_syscall_pre_impl_shutdown((long long)(s), (long long)(how)) +#define __sanitizer_syscall_post_shutdown(res, s, how) \ + __sanitizer_syscall_post_impl_shutdown(res, (long long)(s), (long long)(how)) +#define __sanitizer_syscall_pre_socketpair(domain, type, protocol, rsv) \ + __sanitizer_syscall_pre_impl_socketpair( \ + (long long)(domain), (long long)(type), (long long)(protocol), \ + (long long)(rsv)) +#define __sanitizer_syscall_post_socketpair(res, domain, type, protocol, rsv) \ + __sanitizer_syscall_post_impl_socketpair( \ + res, (long long)(domain), (long long)(type), (long long)(protocol), \ + (long long)(rsv)) +#define __sanitizer_syscall_pre_mkdir(path, mode) \ + __sanitizer_syscall_pre_impl_mkdir((long long)(path), (long long)(mode)) +#define __sanitizer_syscall_post_mkdir(res, path, mode) \ + __sanitizer_syscall_post_impl_mkdir(res, (long long)(path), (long long)(mode)) +#define __sanitizer_syscall_pre_rmdir(path) \ + __sanitizer_syscall_pre_impl_rmdir((long long)(path)) +#define __sanitizer_syscall_post_rmdir(res, path) \ + __sanitizer_syscall_post_impl_rmdir(res, (long long)(path)) +#define __sanitizer_syscall_pre_compat_50_utimes(path, tptr) \ + __sanitizer_syscall_pre_impl_compat_50_utimes((long long)(path), \ + (long long)(tptr)) +#define __sanitizer_syscall_post_compat_50_utimes(res, path, tptr) \ + __sanitizer_syscall_post_impl_compat_50_utimes(res, (long long)(path), \ + (long long)(tptr)) +/* syscall 139 has been skipped */ +#define __sanitizer_syscall_pre_compat_50_adjtime(delta, olddelta) \ + __sanitizer_syscall_pre_impl_compat_50_adjtime((long long)(delta), \ + (long long)(olddelta)) +#define __sanitizer_syscall_post_compat_50_adjtime(res, delta, olddelta) \ + __sanitizer_syscall_post_impl_compat_50_adjtime(res, (long long)(delta), \ + (long long)(olddelta)) +#define __sanitizer_syscall_pre_compat_43_ogetpeername(fdes, asa, alen) \ + __sanitizer_syscall_pre_impl_compat_43_ogetpeername( \ + (long long)(fdes), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_post_compat_43_ogetpeername(res, fdes, asa, alen) \ + __sanitizer_syscall_post_impl_compat_43_ogetpeername( \ + res, (long long)(fdes), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_pre_compat_43_ogethostid() \ + __sanitizer_syscall_pre_impl_compat_43_ogethostid() +#define __sanitizer_syscall_post_compat_43_ogethostid(res) \ + __sanitizer_syscall_post_impl_compat_43_ogethostid(res) +#define __sanitizer_syscall_pre_compat_43_osethostid(hostid) \ + __sanitizer_syscall_pre_impl_compat_43_osethostid((long long)(hostid)) +#define __sanitizer_syscall_post_compat_43_osethostid(res, hostid) \ + __sanitizer_syscall_post_impl_compat_43_osethostid(res, (long long)(hostid)) +#define __sanitizer_syscall_pre_compat_43_ogetrlimit(which, rlp) \ + __sanitizer_syscall_pre_impl_compat_43_ogetrlimit((long long)(which), \ + (long long)(rlp)) +#define __sanitizer_syscall_post_compat_43_ogetrlimit(res, which, rlp) \ + __sanitizer_syscall_post_impl_compat_43_ogetrlimit(res, (long long)(which), \ + (long long)(rlp)) +#define __sanitizer_syscall_pre_compat_43_osetrlimit(which, rlp) \ + __sanitizer_syscall_pre_impl_compat_43_osetrlimit((long long)(which), \ + (long long)(rlp)) +#define __sanitizer_syscall_post_compat_43_osetrlimit(res, which, rlp) \ + __sanitizer_syscall_post_impl_compat_43_osetrlimit(res, (long long)(which), \ + (long long)(rlp)) +#define __sanitizer_syscall_pre_compat_43_okillpg(pgid, signum) \ + __sanitizer_syscall_pre_impl_compat_43_okillpg((long long)(pgid), \ + (long long)(signum)) +#define __sanitizer_syscall_post_compat_43_okillpg(res, pgid, signum) \ + __sanitizer_syscall_post_impl_compat_43_okillpg(res, (long long)(pgid), \ + (long long)(signum)) +#define __sanitizer_syscall_pre_setsid() __sanitizer_syscall_pre_impl_setsid() +#define __sanitizer_syscall_post_setsid(res) \ + __sanitizer_syscall_post_impl_setsid(res) +#define __sanitizer_syscall_pre_compat_50_quotactl(path, cmd, uid, arg) \ + __sanitizer_syscall_pre_impl_compat_50_quotactl( \ + (long long)(path), (long long)(cmd), (long long)(uid), (long long)(arg)) +#define __sanitizer_syscall_post_compat_50_quotactl(res, path, cmd, uid, arg) \ + __sanitizer_syscall_post_impl_compat_50_quotactl( \ + res, (long long)(path), (long long)(cmd), (long long)(uid), \ + (long long)(arg)) +#define __sanitizer_syscall_pre_compat_43_oquota() \ + __sanitizer_syscall_pre_impl_compat_43_oquota() +#define __sanitizer_syscall_post_compat_43_oquota(res) \ + __sanitizer_syscall_post_impl_compat_43_oquota(res) +#define __sanitizer_syscall_pre_compat_43_ogetsockname(fdec, asa, alen) \ + __sanitizer_syscall_pre_impl_compat_43_ogetsockname( \ + (long long)(fdec), (long long)(asa), (long long)(alen)) +#define __sanitizer_syscall_post_compat_43_ogetsockname(res, fdec, asa, alen) \ + __sanitizer_syscall_post_impl_compat_43_ogetsockname( \ + res, (long long)(fdec), (long long)(asa), (long long)(alen)) +/* syscall 151 has been skipped */ +/* syscall 152 has been skipped */ +/* syscall 153 has been skipped */ +/* syscall 154 has been skipped */ +#define __sanitizer_syscall_pre_nfssvc(flag, argp) \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Dec 11 19:32:24 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B678131123C; Tue, 11 Dec 2018 19:32:24 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CCAE36837F; Tue, 11 Dec 2018 19:32:23 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AE95D4788; Tue, 11 Dec 2018 19:32:23 +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 wBBJWN2K069895; Tue, 11 Dec 2018 19:32:23 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBJWHhh067846; Tue, 11 Dec 2018 19:32:17 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812111932.wBBJWHhh067846@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Tue, 11 Dec 2018 19:32:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341827 - in head/sys: cddl/compat/opensolaris/kern cddl/contrib/opensolaris/uts/common/fs/zfs compat/linux dev/filemon fs/ext2fs fs/fuse fs/msdosfs fs/nandfs fs/nfs fs/nfsserver fs/tmp... X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: cddl/compat/opensolaris/kern cddl/contrib/opensolaris/uts/common/fs/zfs compat/linux dev/filemon fs/ext2fs fs/fuse fs/msdosfs fs/nandfs fs/nfs fs/nfsserver fs/tmpfs kern net netinet netin... X-SVN-Commit-Revision: 341827 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CCAE36837F X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.50 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.50)[-0.498,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 19:32:24 -0000 Author: mjg Date: Tue Dec 11 19:32:16 2018 New Revision: 341827 URL: https://svnweb.freebsd.org/changeset/base/341827 Log: Remove unused argument to priv_check_cred. Patch mostly generated with cocinnelle: @@ expression E1,E2; @@ - priv_check_cred(E1,E2,0) + priv_check_cred(E1,E2) Sponsored by: The FreeBSD Foundation Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c head/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/compat/linux/linux_misc.c head/sys/compat/linux/linux_uid16.c head/sys/dev/filemon/filemon_wrapper.c head/sys/fs/ext2fs/ext2_vnops.c head/sys/fs/fuse/fuse_internal.c head/sys/fs/fuse/fuse_vnops.c head/sys/fs/msdosfs/msdosfs_vnops.c head/sys/fs/nandfs/nandfs_vnops.c head/sys/fs/nfs/nfs_commonsubs.c head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/tmpfs/tmpfs_subr.c head/sys/fs/tmpfs/tmpfs_vnops.c head/sys/kern/kern_exec.c head/sys/kern/kern_fork.c head/sys/kern/kern_priv.c head/sys/kern/kern_prot.c head/sys/kern/subr_acl_nfs4.c head/sys/kern/subr_acl_posix1e.c head/sys/kern/uipc_mqueue.c head/sys/kern/uipc_sem.c head/sys/kern/uipc_shm.c head/sys/kern/vfs_mount.c head/sys/kern/vfs_subr.c head/sys/kern/vfs_syscalls.c head/sys/net/if_tap.c head/sys/net/if_tun.c head/sys/netinet/in_pcb.c head/sys/netinet6/in6_pcb.c head/sys/netinet6/ip6_output.c head/sys/netipsec/ipsec_pcb.c head/sys/netsmb/smb_subr.h head/sys/security/audit/audit_syscalls.c head/sys/security/mac/mac_net.c head/sys/security/mac_bsdextended/mac_bsdextended.c head/sys/security/mac_lomac/mac_lomac.c head/sys/security/mac_partition/mac_partition.c head/sys/security/mac_portacl/mac_portacl.c head/sys/security/mac_seeotheruids/mac_seeotheruids.c head/sys/sys/priv.h head/sys/ufs/ffs/ffs_alloc.c head/sys/ufs/ffs/ffs_softdep.c head/sys/ufs/ffs/ffs_vnops.c head/sys/ufs/ufs/ufs_quota.c head/sys/ufs/ufs/ufs_vnops.c head/sys/vm/vm_mmap.c Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c Tue Dec 11 19:32:16 2018 (r341827) @@ -41,35 +41,35 @@ int secpolicy_nfs(cred_t *cr) { - return (priv_check_cred(cr, PRIV_NFS_DAEMON, 0)); + return (priv_check_cred(cr, PRIV_NFS_DAEMON)); } int secpolicy_zfs(cred_t *cr) { - return (priv_check_cred(cr, PRIV_VFS_MOUNT, 0)); + return (priv_check_cred(cr, PRIV_VFS_MOUNT)); } int secpolicy_sys_config(cred_t *cr, int checkonly __unused) { - return (priv_check_cred(cr, PRIV_ZFS_POOL_CONFIG, 0)); + return (priv_check_cred(cr, PRIV_ZFS_POOL_CONFIG)); } int secpolicy_zinject(cred_t *cr) { - return (priv_check_cred(cr, PRIV_ZFS_INJECT, 0)); + return (priv_check_cred(cr, PRIV_ZFS_INJECT)); } int secpolicy_fs_unmount(cred_t *cr, struct mount *vfsp __unused) { - return (priv_check_cred(cr, PRIV_VFS_UNMOUNT, 0)); + return (priv_check_cred(cr, PRIV_VFS_UNMOUNT)); } int @@ -97,7 +97,7 @@ secpolicy_basic_link(vnode_t *vp, cred_t *cr) return (0); if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_LINK, 0)); + return (priv_check_cred(cr, PRIV_VFS_LINK)); } int @@ -113,7 +113,7 @@ secpolicy_vnode_remove(vnode_t *vp, cred_t *cr) if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_ADMIN, 0)); + return (priv_check_cred(cr, PRIV_VFS_ADMIN)); } int @@ -123,18 +123,18 @@ secpolicy_vnode_access(cred_t *cr, vnode_t *vp, uid_t if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - if ((accmode & VREAD) && priv_check_cred(cr, PRIV_VFS_READ, 0) != 0) + if ((accmode & VREAD) && priv_check_cred(cr, PRIV_VFS_READ) != 0) return (EACCES); if ((accmode & VWRITE) && - priv_check_cred(cr, PRIV_VFS_WRITE, 0) != 0) { + priv_check_cred(cr, PRIV_VFS_WRITE) != 0) { return (EACCES); } if (accmode & VEXEC) { if (vp->v_type == VDIR) { - if (priv_check_cred(cr, PRIV_VFS_LOOKUP, 0) != 0) + if (priv_check_cred(cr, PRIV_VFS_LOOKUP) != 0) return (EACCES); } else { - if (priv_check_cred(cr, PRIV_VFS_EXEC, 0) != 0) + if (priv_check_cred(cr, PRIV_VFS_EXEC) != 0) return (EACCES); } } @@ -192,7 +192,7 @@ secpolicy_vnode_any_access(cred_t *cr, vnode_t *vp, ui continue; break; } - if (priv_check_cred(cr, priv, 0) == 0) + if (priv_check_cred(cr, priv) == 0) return (0); } return (EPERM); @@ -206,7 +206,7 @@ secpolicy_vnode_setdac(vnode_t *vp, cred_t *cr, uid_t return (0); if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_ADMIN, 0)); + return (priv_check_cred(cr, PRIV_VFS_ADMIN)); } int @@ -256,7 +256,7 @@ secpolicy_vnode_setattr(cred_t *cr, vnode_t *vp, struc ((mask & AT_GID) && vap->va_gid != ovap->va_gid && !groupmember(vap->va_gid, cr))) { if (secpolicy_fs_owner(vp->v_mount, cr) != 0) { - error = priv_check_cred(cr, PRIV_VFS_CHOWN, 0); + error = priv_check_cred(cr, PRIV_VFS_CHOWN); if (error) return (error); } @@ -300,7 +300,7 @@ secpolicy_vnode_setids_setgids(vnode_t *vp, cred_t *cr return (0); if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_SETGID, 0)); + return (priv_check_cred(cr, PRIV_VFS_SETGID)); } int @@ -310,7 +310,7 @@ secpolicy_vnode_setid_retain(vnode_t *vp, cred_t *cr, if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_RETAINSUGID, 0)); + return (priv_check_cred(cr, PRIV_VFS_RETAINSUGID)); } void @@ -321,7 +321,7 @@ secpolicy_setid_clear(struct vattr *vap, vnode_t *vp, return; if ((vap->va_mode & (S_ISUID | S_ISGID)) != 0) { - if (priv_check_cred(cr, PRIV_VFS_RETAINSUGID, 0)) { + if (priv_check_cred(cr, PRIV_VFS_RETAINSUGID)) { vap->va_mask |= AT_MODE; vap->va_mode &= ~(S_ISUID|S_ISGID); } @@ -343,7 +343,7 @@ secpolicy_setid_setsticky_clear(vnode_t *vp, struct va * is not a member of. Both of these are allowed in jail(8). */ if (vp->v_type != VDIR && (vap->va_mode & S_ISTXT)) { - if (priv_check_cred(cr, PRIV_VFS_STICKYFILE, 0)) + if (priv_check_cred(cr, PRIV_VFS_STICKYFILE)) return (EFTYPE); } /* @@ -359,7 +359,7 @@ secpolicy_setid_setsticky_clear(vnode_t *vp, struct va * Deny setting setuid if we are not the file owner. */ if ((vap->va_mode & S_ISUID) && ovap->va_uid != cr->cr_uid) { - error = priv_check_cred(cr, PRIV_VFS_ADMIN, 0); + error = priv_check_cred(cr, PRIV_VFS_ADMIN); if (error) return (error); } @@ -370,7 +370,7 @@ int secpolicy_fs_mount(cred_t *cr, vnode_t *mvp, struct mount *vfsp) { - return (priv_check_cred(cr, PRIV_VFS_MOUNT, 0)); + return (priv_check_cred(cr, PRIV_VFS_MOUNT)); } int @@ -383,7 +383,7 @@ secpolicy_vnode_owner(vnode_t *vp, cred_t *cr, uid_t o return (0); /* XXX: vfs_suser()? */ - return (priv_check_cred(cr, PRIV_VFS_MOUNT_OWNER, 0)); + return (priv_check_cred(cr, PRIV_VFS_MOUNT_OWNER)); } int @@ -392,14 +392,14 @@ secpolicy_vnode_chown(vnode_t *vp, cred_t *cr, uid_t o if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_CHOWN, 0)); + return (priv_check_cred(cr, PRIV_VFS_CHOWN)); } void secpolicy_fs_mount_clearopts(cred_t *cr, struct mount *vfsp) { - if (priv_check_cred(cr, PRIV_VFS_MOUNT_NONUSER, 0) != 0) { + if (priv_check_cred(cr, PRIV_VFS_MOUNT_NONUSER) != 0) { MNT_ILOCK(vfsp); vfsp->vfs_flag |= VFS_NOSETUID | MNT_USER; vfs_clearmntopt(vfsp, MNTOPT_SETUID); @@ -418,12 +418,12 @@ secpolicy_xvattr(vnode_t *vp, xvattr_t *xvap, uid_t ow if (secpolicy_fs_owner(vp->v_mount, cr) == 0) return (0); - return (priv_check_cred(cr, PRIV_VFS_SYSFLAGS, 0)); + return (priv_check_cred(cr, PRIV_VFS_SYSFLAGS)); } int secpolicy_smb(cred_t *cr) { - return (priv_check_cred(cr, PRIV_NETSMB, 0)); + return (priv_check_cred(cr, PRIV_NETSMB)); } Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c Tue Dec 11 19:32:16 2018 (r341827) @@ -63,7 +63,7 @@ zone_dataset_attach(struct ucred *cred, const char *da struct prison *pr; int dofree, error; - if ((error = priv_check_cred(cred, PRIV_ZFS_JAIL, 0)) != 0) + if ((error = priv_check_cred(cred, PRIV_ZFS_JAIL)) != 0) return (error); /* Allocate memory before we grab prison's mutex. */ @@ -115,7 +115,7 @@ zone_dataset_detach(struct ucred *cred, const char *da struct prison *pr; int error; - if ((error = priv_check_cred(cred, PRIV_ZFS_JAIL, 0)) != 0) + if ((error = priv_check_cred(cred, PRIV_ZFS_JAIL)) != 0) return (error); sx_slock(&allprison_lock); 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 Dec 11 19:12:44 2018 (r341826) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Dec 11 19:32:16 2018 (r341827) @@ -5205,7 +5205,7 @@ zfs_freebsd_setattr(ap) * otherwise, they behave like unprivileged processes. */ if (secpolicy_fs_owner(vp->v_mount, cred) == 0 || - priv_check_cred(cred, PRIV_VFS_SYSFLAGS, 0) == 0) { + priv_check_cred(cred, PRIV_VFS_SYSFLAGS) == 0) { if (zflags & (ZFS_IMMUTABLE | ZFS_APPENDONLY | ZFS_NOUNLINK)) { error = securelevel_gt(cred, 0); Modified: head/sys/compat/linux/linux_misc.c ============================================================================== --- head/sys/compat/linux/linux_misc.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/compat/linux/linux_misc.c Tue Dec 11 19:32:16 2018 (r341827) @@ -1336,7 +1336,7 @@ linux_setgroups(struct thread *td, struct linux_setgro * Keep cr_groups[0] unchanged to prevent that. */ - if ((error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS, 0)) != 0) { + if ((error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS)) != 0) { PROC_UNLOCK(p); crfree(newcred); goto out; Modified: head/sys/compat/linux/linux_uid16.c ============================================================================== --- head/sys/compat/linux/linux_uid16.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/compat/linux/linux_uid16.c Tue Dec 11 19:32:16 2018 (r341827) @@ -192,7 +192,7 @@ linux_setgroups16(struct thread *td, struct linux_setg * Keep cr_groups[0] unchanged to prevent that. */ - if ((error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS, 0)) != 0) { + if ((error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS)) != 0) { PROC_UNLOCK(p); crfree(newcred); Modified: head/sys/dev/filemon/filemon_wrapper.c ============================================================================== --- head/sys/dev/filemon/filemon_wrapper.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/dev/filemon/filemon_wrapper.c Tue Dec 11 19:32:16 2018 (r341827) @@ -129,8 +129,7 @@ filemon_event_process_exec(void *arg __unused, struct /* If the credentials changed then cease tracing. */ if (imgp->newcred != NULL && imgp->credential_setid && - priv_check_cred(filemon->cred, - PRIV_DEBUG_DIFFCRED, 0) != 0) { + priv_check_cred(filemon->cred, PRIV_DEBUG_DIFFCRED) != 0) { /* * It may have changed to NULL already, but * will not be re-attached by anything else. Modified: head/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vnops.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/ext2fs/ext2_vnops.c Tue Dec 11 19:32:16 2018 (r341827) @@ -420,7 +420,7 @@ ext2_setattr(struct vop_setattr_args *ap) * Privileged non-jail processes may not modify system flags * if securelevel > 0 and any existing system flags are set. */ - if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS, 0)) { + if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS)) { if (ip->i_flags & (SF_IMMUTABLE | SF_APPEND)) { error = securelevel_gt(cred, 0); if (error) @@ -531,12 +531,12 @@ ext2_chmod(struct vnode *vp, int mode, struct ucred *c * process is not a member of. */ if (vp->v_type != VDIR && (mode & S_ISTXT)) { - error = priv_check_cred(cred, PRIV_VFS_STICKYFILE, 0); + error = priv_check_cred(cred, PRIV_VFS_STICKYFILE); if (error) return (EFTYPE); } if (!groupmember(ip->i_gid, cred) && (mode & ISGID)) { - error = priv_check_cred(cred, PRIV_VFS_SETGID, 0); + error = priv_check_cred(cred, PRIV_VFS_SETGID); if (error) return (error); } @@ -576,7 +576,7 @@ ext2_chown(struct vnode *vp, uid_t uid, gid_t gid, str */ if (uid != ip->i_uid || (gid != ip->i_gid && !groupmember(gid, cred))) { - error = priv_check_cred(cred, PRIV_VFS_CHOWN, 0); + error = priv_check_cred(cred, PRIV_VFS_CHOWN); if (error) return (error); } @@ -586,7 +586,7 @@ ext2_chown(struct vnode *vp, uid_t uid, gid_t gid, str ip->i_uid = uid; ip->i_flag |= IN_CHANGE; if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) { - if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID, 0) != 0) + if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID) != 0) ip->i_mode &= ~(ISUID | ISGID); } return (0); @@ -1983,7 +1983,7 @@ ext2_makeinode(int mode, struct vnode *dvp, struct vno tvp->v_type = IFTOVT(mode); /* Rest init'd in getnewvnode(). */ ip->i_nlink = 1; if ((ip->i_mode & ISGID) && !groupmember(ip->i_gid, cnp->cn_cred)) { - if (priv_check_cred(cnp->cn_cred, PRIV_VFS_RETAINSUGID, 0)) + if (priv_check_cred(cnp->cn_cred, PRIV_VFS_RETAINSUGID)) ip->i_mode &= ~ISGID; } @@ -2311,7 +2311,7 @@ ext2_write(struct vop_write_args *ap) */ if ((ip->i_mode & (ISUID | ISGID)) && resid > uio->uio_resid && ap->a_cred) { - if (priv_check_cred(ap->a_cred, PRIV_VFS_RETAINSUGID, 0)) + if (priv_check_cred(ap->a_cred, PRIV_VFS_RETAINSUGID)) ip->i_mode &= ~(ISUID | ISGID); } if (error) { Modified: head/sys/fs/fuse/fuse_internal.c ============================================================================== --- head/sys/fs/fuse/fuse_internal.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/fuse/fuse_internal.c Tue Dec 11 19:32:16 2018 (r341827) @@ -171,7 +171,7 @@ fuse_internal_access(struct vnode *vp, return 0; } if ((mode & VADMIN) != 0) { - err = priv_check_cred(cred, PRIV_VFS_ADMIN, 0); + err = priv_check_cred(cred, PRIV_VFS_ADMIN); if (err) { return err; } Modified: head/sys/fs/fuse/fuse_vnops.c ============================================================================== --- head/sys/fs/fuse/fuse_vnops.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/fuse/fuse_vnops.c Tue Dec 11 19:32:16 2018 (r341827) @@ -242,7 +242,7 @@ fuse_vnop_access(struct vop_access_args *ap) } if (!(data->dataflags & FSESS_INITED)) { if (vnode_isvroot(vp)) { - if (priv_check_cred(cred, PRIV_VFS_ADMIN, 0) || + if (priv_check_cred(cred, PRIV_VFS_ADMIN) || (fuse_match_cred(data->daemoncred, cred) == 0)) { return 0; } Modified: head/sys/fs/msdosfs/msdosfs_vnops.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_vnops.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/msdosfs/msdosfs_vnops.c Tue Dec 11 19:32:16 2018 (r341827) @@ -378,7 +378,7 @@ msdosfs_setattr(struct vop_setattr_args *ap) if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); if (cred->cr_uid != pmp->pm_uid) { - error = priv_check_cred(cred, PRIV_VFS_ADMIN, 0); + error = priv_check_cred(cred, PRIV_VFS_ADMIN); if (error) return (error); } @@ -427,7 +427,7 @@ msdosfs_setattr(struct vop_setattr_args *ap) gid = pmp->pm_gid; if (cred->cr_uid != pmp->pm_uid || uid != pmp->pm_uid || (gid != pmp->pm_gid && !groupmember(gid, cred))) { - error = priv_check_cred(cred, PRIV_VFS_CHOWN, 0); + error = priv_check_cred(cred, PRIV_VFS_CHOWN); if (error) return (error); } @@ -498,7 +498,7 @@ msdosfs_setattr(struct vop_setattr_args *ap) if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); if (cred->cr_uid != pmp->pm_uid) { - error = priv_check_cred(cred, PRIV_VFS_ADMIN, 0); + error = priv_check_cred(cred, PRIV_VFS_ADMIN); if (error) return (error); } Modified: head/sys/fs/nandfs/nandfs_vnops.c ============================================================================== --- head/sys/fs/nandfs/nandfs_vnops.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/nandfs/nandfs_vnops.c Tue Dec 11 19:32:16 2018 (r341827) @@ -721,11 +721,11 @@ nandfs_chmod(struct vnode *vp, int mode, struct ucred * jail(8). */ if (vp->v_type != VDIR && (mode & S_ISTXT)) { - if (priv_check_cred(cred, PRIV_VFS_STICKYFILE, 0)) + if (priv_check_cred(cred, PRIV_VFS_STICKYFILE)) return (EFTYPE); } if (!groupmember(inode->i_gid, cred) && (mode & ISGID)) { - error = priv_check_cred(cred, PRIV_VFS_SETGID, 0); + error = priv_check_cred(cred, PRIV_VFS_SETGID); if (error) return (error); } @@ -734,7 +734,7 @@ nandfs_chmod(struct vnode *vp, int mode, struct ucred * Deny setting setuid if we are not the file owner. */ if ((mode & ISUID) && inode->i_uid != cred->cr_uid) { - error = priv_check_cred(cred, PRIV_VFS_ADMIN, 0); + error = priv_check_cred(cred, PRIV_VFS_ADMIN); if (error) return (error); } @@ -777,7 +777,7 @@ nandfs_chown(struct vnode *vp, uid_t uid, gid_t gid, s */ if (((uid != inode->i_uid && uid != cred->cr_uid) || (gid != inode->i_gid && !groupmember(gid, cred))) && - (error = priv_check_cred(cred, PRIV_VFS_CHOWN, 0))) + (error = priv_check_cred(cred, PRIV_VFS_CHOWN))) return (error); ogid = inode->i_gid; ouid = inode->i_uid; @@ -788,7 +788,7 @@ nandfs_chown(struct vnode *vp, uid_t uid, gid_t gid, s node->nn_flags |= IN_CHANGE; if ((inode->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) { - if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID, 0)) + if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID)) inode->i_mode &= ~(ISUID | ISGID); } DPRINTF(VNCALL, ("%s: vp %p, cred %p, td %p - ret OK\n", __func__, vp, @@ -839,7 +839,7 @@ nandfs_setattr(struct vop_setattr_args *ap) */ flags = inode->i_flags; - if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS, 0)) { + if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS)) { if (flags & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) { error = securelevel_gt(cred, 0); if (error) Modified: head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- head/sys/fs/nfs/nfs_commonsubs.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/nfs/nfs_commonsubs.c Tue Dec 11 19:32:16 2018 (r341827) @@ -1869,7 +1869,7 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, case NFSATTRBIT_QUOTAHARD: NFSM_DISSECT(tl, u_int32_t *, NFSX_HYPER); if (sbp != NULL) { - if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA, 0)) + if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA)) freenum = sbp->f_bfree; else freenum = sbp->f_bavail; @@ -1898,7 +1898,7 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, case NFSATTRBIT_QUOTASOFT: NFSM_DISSECT(tl, u_int32_t *, NFSX_HYPER); if (sbp != NULL) { - if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA, 0)) + if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA)) freenum = sbp->f_bfree; else freenum = sbp->f_bavail; @@ -2756,7 +2756,7 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount free(cp, M_NFSSTRING); break; case NFSATTRBIT_QUOTAHARD: - if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA, 0)) + if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA)) freenum = fs->f_bfree; else freenum = fs->f_bavail; @@ -2780,7 +2780,7 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount retnum += NFSX_HYPER; break; case NFSATTRBIT_QUOTASOFT: - if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA, 0)) + if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA)) freenum = fs->f_bfree; else freenum = fs->f_bavail; @@ -2832,7 +2832,7 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount break; case NFSATTRBIT_SPACEAVAIL: NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); - if (priv_check_cred(cred, PRIV_VFS_BLOCKRESERVE, 0)) { + if (priv_check_cred(cred, PRIV_VFS_BLOCKRESERVE)) { if (pnfssf != NULL) uquad = (u_int64_t)pnfssf->f_bfree; else Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Tue Dec 11 19:32:16 2018 (r341827) @@ -996,8 +996,7 @@ nfsvno_createsub(struct nfsrv_descript *nd, struct nam if (nvap->na_type == VCHR && rdev == 0xffffffff) nvap->na_type = VFIFO; if (nvap->na_type != VFIFO && - (error = priv_check_cred(nd->nd_cred, - PRIV_VFS_MKNOD_DEV, 0))) { + (error = priv_check_cred(nd->nd_cred, PRIV_VFS_MKNOD_DEV))) { vrele(ndp->ni_startdir); nfsvno_relpathbuf(ndp); vput(ndp->ni_dvp); @@ -1091,7 +1090,7 @@ nfsvno_mknod(struct nameidata *ndp, struct nfsvattr *n nfsvno_relpathbuf(ndp); } else { if (nvap->na_type != VFIFO && - (error = priv_check_cred(cred, PRIV_VFS_MKNOD_DEV, 0))) { + (error = priv_check_cred(cred, PRIV_VFS_MKNOD_DEV))) { vrele(ndp->ni_startdir); nfsvno_relpathbuf(ndp); vput(ndp->ni_dvp); Modified: head/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_subr.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/tmpfs/tmpfs_subr.c Tue Dec 11 19:32:16 2018 (r341827) @@ -1522,7 +1522,7 @@ tmpfs_chflags(struct vnode *vp, u_long flags, struct u * Unprivileged processes are not permitted to unset system * flags, or modify flags if any system flags are set. */ - if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS, 0)) { + if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS)) { if (node->tn_flags & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) { error = securelevel_gt(cred, 0); @@ -1579,11 +1579,11 @@ tmpfs_chmod(struct vnode *vp, mode_t mode, struct ucre * process is not a member of. */ if (vp->v_type != VDIR && (mode & S_ISTXT)) { - if (priv_check_cred(cred, PRIV_VFS_STICKYFILE, 0)) + if (priv_check_cred(cred, PRIV_VFS_STICKYFILE)) return (EFTYPE); } if (!groupmember(node->tn_gid, cred) && (mode & S_ISGID)) { - error = priv_check_cred(cred, PRIV_VFS_SETGID, 0); + error = priv_check_cred(cred, PRIV_VFS_SETGID); if (error) return (error); } @@ -1649,7 +1649,7 @@ tmpfs_chown(struct vnode *vp, uid_t uid, gid_t gid, st */ if ((uid != node->tn_uid || (gid != node->tn_gid && !groupmember(gid, cred))) && - (error = priv_check_cred(cred, PRIV_VFS_CHOWN, 0))) + (error = priv_check_cred(cred, PRIV_VFS_CHOWN))) return (error); ogid = node->tn_gid; @@ -1661,7 +1661,7 @@ tmpfs_chown(struct vnode *vp, uid_t uid, gid_t gid, st node->tn_status |= TMPFS_NODE_CHANGED; if ((node->tn_mode & (S_ISUID | S_ISGID)) && (ouid != uid || ogid != gid)) { - if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID, 0)) + if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID)) node->tn_mode &= ~(S_ISUID | S_ISGID); } Modified: head/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_vnops.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/fs/tmpfs/tmpfs_vnops.c Tue Dec 11 19:32:16 2018 (r341827) @@ -523,7 +523,7 @@ tmpfs_write(struct vop_write_args *v) node->tn_status |= TMPFS_NODE_ACCESSED | TMPFS_NODE_MODIFIED | TMPFS_NODE_CHANGED; if (node->tn_mode & (S_ISUID | S_ISGID)) { - if (priv_check_cred(v->a_cred, PRIV_VFS_RETAINSUGID, 0)) + if (priv_check_cred(v->a_cred, PRIV_VFS_RETAINSUGID)) node->tn_mode &= ~(S_ISUID | S_ISGID); } if (error != 0) Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/kern_exec.c Tue Dec 11 19:32:16 2018 (r341827) @@ -786,7 +786,7 @@ interpret: #ifdef KTRACE if (p->p_tracecred != NULL && - priv_check_cred(p->p_tracecred, PRIV_DEBUG_DIFFCRED, 0)) + priv_check_cred(p->p_tracecred, PRIV_DEBUG_DIFFCRED)) ktrprocexec(p, &tracecred, &tracevp); #endif /* Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/kern_fork.c Tue Dec 11 19:32:16 2018 (r341827) @@ -838,8 +838,7 @@ fork1(struct thread *td, struct fork_req *fr) * processes; don't let root exceed the limit. */ nprocs_new = atomic_fetchadd_int(&nprocs, 1) + 1; - if ((nprocs_new >= maxproc - 10 && priv_check_cred(td->td_ucred, - PRIV_MAXPROC, 0) != 0) || nprocs_new >= maxproc) { + if ((nprocs_new >= maxproc - 10 && priv_check_cred(td->td_ucred, PRIV_MAXPROC) != 0) || nprocs_new >= maxproc) { error = EAGAIN; sx_xlock(&allproc_lock); if (ppsratecheck(&lastfail, &curfail, 1)) { @@ -936,7 +935,7 @@ fork1(struct thread *td, struct fork_req *fr) * * XXXRW: Can we avoid privilege here if it's not needed? */ - error = priv_check_cred(td->td_ucred, PRIV_PROC_LIMIT, 0); + error = priv_check_cred(td->td_ucred, PRIV_PROC_LIMIT); if (error == 0) ok = chgproccnt(td->td_ucred->cr_ruidinfo, 1, 0); else { Modified: head/sys/kern/kern_priv.c ============================================================================== --- head/sys/kern/kern_priv.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/kern_priv.c Tue Dec 11 19:32:16 2018 (r341827) @@ -76,7 +76,7 @@ SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv__err, * only a few to grant it. */ int -priv_check_cred(struct ucred *cred, int priv, int flags) +priv_check_cred(struct ucred *cred, int priv) { int error; @@ -207,5 +207,5 @@ priv_check(struct thread *td, int priv) KASSERT(td == curthread, ("priv_check: td != curthread")); - return (priv_check_cred(td->td_ucred, priv, 0)); + return (priv_check_cred(td->td_ucred, priv)); } Modified: head/sys/kern/kern_prot.c ============================================================================== --- head/sys/kern/kern_prot.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/kern_prot.c Tue Dec 11 19:32:16 2018 (r341827) @@ -518,7 +518,7 @@ sys_setuid(struct thread *td, struct setuid_args *uap) #ifdef POSIX_APPENDIX_B_4_2_2 /* Use BSD-compat clause from B.4.2.2 */ uid != oldcred->cr_uid && /* allow setuid(geteuid()) */ #endif - (error = priv_check_cred(oldcred, PRIV_CRED_SETUID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETUID)) != 0) goto fail; #ifdef _POSIX_SAVED_IDS @@ -531,7 +531,7 @@ sys_setuid(struct thread *td, struct setuid_args *uap) uid == oldcred->cr_uid || #endif /* We are using privs. */ - priv_check_cred(oldcred, PRIV_CRED_SETUID, 0) == 0) + priv_check_cred(oldcred, PRIV_CRED_SETUID) == 0) #endif { /* @@ -615,7 +615,7 @@ sys_seteuid(struct thread *td, struct seteuid_args *ua if (euid != oldcred->cr_ruid && /* allow seteuid(getuid()) */ euid != oldcred->cr_svuid && /* allow seteuid(saved uid) */ - (error = priv_check_cred(oldcred, PRIV_CRED_SETEUID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETEUID)) != 0) goto fail; /* @@ -682,7 +682,7 @@ sys_setgid(struct thread *td, struct setgid_args *uap) #ifdef POSIX_APPENDIX_B_4_2_2 /* Use BSD-compat clause from B.4.2.2 */ gid != oldcred->cr_groups[0] && /* allow setgid(getegid()) */ #endif - (error = priv_check_cred(oldcred, PRIV_CRED_SETGID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETGID)) != 0) goto fail; #ifdef _POSIX_SAVED_IDS @@ -695,7 +695,7 @@ sys_setgid(struct thread *td, struct setgid_args *uap) gid == oldcred->cr_groups[0] || #endif /* We are using privs. */ - priv_check_cred(oldcred, PRIV_CRED_SETGID, 0) == 0) + priv_check_cred(oldcred, PRIV_CRED_SETGID) == 0) #endif { /* @@ -764,7 +764,7 @@ sys_setegid(struct thread *td, struct setegid_args *ua if (egid != oldcred->cr_rgid && /* allow setegid(getgid()) */ egid != oldcred->cr_svgid && /* allow setegid(saved gid) */ - (error = priv_check_cred(oldcred, PRIV_CRED_SETEGID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETEGID)) != 0) goto fail; if (oldcred->cr_groups[0] != egid) { @@ -835,7 +835,7 @@ kern_setgroups(struct thread *td, u_int ngrp, gid_t *g goto fail; #endif - error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS, 0); + error = priv_check_cred(oldcred, PRIV_CRED_SETGROUPS); if (error) goto fail; @@ -898,7 +898,7 @@ sys_setreuid(struct thread *td, struct setreuid_args * ruid != oldcred->cr_svuid) || (euid != (uid_t)-1 && euid != oldcred->cr_uid && euid != oldcred->cr_ruid && euid != oldcred->cr_svuid)) && - (error = priv_check_cred(oldcred, PRIV_CRED_SETREUID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETREUID)) != 0) goto fail; if (euid != (uid_t)-1 && oldcred->cr_uid != euid) { @@ -970,7 +970,7 @@ sys_setregid(struct thread *td, struct setregid_args * rgid != oldcred->cr_svgid) || (egid != (gid_t)-1 && egid != oldcred->cr_groups[0] && egid != oldcred->cr_rgid && egid != oldcred->cr_svgid)) && - (error = priv_check_cred(oldcred, PRIV_CRED_SETREGID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETREGID)) != 0) goto fail; if (egid != (gid_t)-1 && oldcred->cr_groups[0] != egid) { @@ -1045,7 +1045,7 @@ sys_setresuid(struct thread *td, struct setresuid_args (suid != (uid_t)-1 && suid != oldcred->cr_ruid && suid != oldcred->cr_svuid && suid != oldcred->cr_uid)) && - (error = priv_check_cred(oldcred, PRIV_CRED_SETRESUID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETRESUID)) != 0) goto fail; if (euid != (uid_t)-1 && oldcred->cr_uid != euid) { @@ -1129,7 +1129,7 @@ sys_setresgid(struct thread *td, struct setresgid_args (sgid != (gid_t)-1 && sgid != oldcred->cr_rgid && sgid != oldcred->cr_svgid && sgid != oldcred->cr_groups[0])) && - (error = priv_check_cred(oldcred, PRIV_CRED_SETRESGID, 0)) != 0) + (error = priv_check_cred(oldcred, PRIV_CRED_SETRESGID)) != 0) goto fail; if (egid != (gid_t)-1 && oldcred->cr_groups[0] != egid) { @@ -1343,7 +1343,7 @@ cr_canseeotheruids(struct ucred *u1, struct ucred *u2) { if (!see_other_uids && u1->cr_ruid != u2->cr_ruid) { - if (priv_check_cred(u1, PRIV_SEEOTHERUIDS, 0) != 0) + if (priv_check_cred(u1, PRIV_SEEOTHERUIDS) != 0) return (ESRCH); } return (0); @@ -1382,7 +1382,7 @@ cr_canseeothergids(struct ucred *u1, struct ucred *u2) break; } if (!match) { - if (priv_check_cred(u1, PRIV_SEEOTHERGIDS, 0) != 0) + if (priv_check_cred(u1, PRIV_SEEOTHERGIDS) != 0) return (ESRCH); } } @@ -1530,7 +1530,7 @@ cr_cansignal(struct ucred *cred, struct proc *proc, in break; default: /* Not permitted without privilege. */ - error = priv_check_cred(cred, PRIV_SIGNAL_SUGID, 0); + error = priv_check_cred(cred, PRIV_SIGNAL_SUGID); if (error) return (error); } @@ -1544,7 +1544,7 @@ cr_cansignal(struct ucred *cred, struct proc *proc, in cred->cr_ruid != proc->p_ucred->cr_svuid && cred->cr_uid != proc->p_ucred->cr_ruid && cred->cr_uid != proc->p_ucred->cr_svuid) { - error = priv_check_cred(cred, PRIV_SIGNAL_DIFFCRED, 0); + error = priv_check_cred(cred, PRIV_SIGNAL_DIFFCRED); if (error) return (error); } Modified: head/sys/kern/subr_acl_nfs4.c ============================================================================== --- head/sys/kern/subr_acl_nfs4.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/subr_acl_nfs4.c Tue Dec 11 19:32:16 2018 (r341827) @@ -259,8 +259,7 @@ vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_ * No match. Try to use privileges, if there are any. */ if (is_directory) { - if ((accmode & VEXEC) && !priv_check_cred(cred, - PRIV_VFS_LOOKUP, 0)) + if ((accmode & VEXEC) && !priv_check_cred(cred, PRIV_VFS_LOOKUP)) priv_granted |= VEXEC; } else { /* @@ -270,23 +269,23 @@ vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_ */ if ((accmode & VEXEC) && (file_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) != 0 && - !priv_check_cred(cred, PRIV_VFS_EXEC, 0)) + !priv_check_cred(cred, PRIV_VFS_EXEC)) priv_granted |= VEXEC; } - if ((accmode & VREAD) && !priv_check_cred(cred, PRIV_VFS_READ, 0)) + if ((accmode & VREAD) && !priv_check_cred(cred, PRIV_VFS_READ)) priv_granted |= VREAD; if ((accmode & (VWRITE | VAPPEND | VDELETE_CHILD)) && - !priv_check_cred(cred, PRIV_VFS_WRITE, 0)) + !priv_check_cred(cred, PRIV_VFS_WRITE)) priv_granted |= (VWRITE | VAPPEND | VDELETE_CHILD); if ((accmode & VADMIN_PERMS) && - !priv_check_cred(cred, PRIV_VFS_ADMIN, 0)) + !priv_check_cred(cred, PRIV_VFS_ADMIN)) priv_granted |= VADMIN_PERMS; if ((accmode & VSTAT_PERMS) && - !priv_check_cred(cred, PRIV_VFS_STAT, 0)) + !priv_check_cred(cred, PRIV_VFS_STAT)) priv_granted |= VSTAT_PERMS; if ((accmode & priv_granted) == accmode) { Modified: head/sys/kern/subr_acl_posix1e.c ============================================================================== --- head/sys/kern/subr_acl_posix1e.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/subr_acl_posix1e.c Tue Dec 11 19:32:16 2018 (r341827) @@ -90,8 +90,7 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g priv_granted = 0; if (type == VDIR) { - if ((accmode & VEXEC) && !priv_check_cred(cred, - PRIV_VFS_LOOKUP, 0)) + if ((accmode & VEXEC) && !priv_check_cred(cred, PRIV_VFS_LOOKUP)) priv_granted |= VEXEC; } else { /* @@ -101,18 +100,18 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g */ if ((accmode & VEXEC) && (acl_posix1e_acl_to_mode(acl) & (S_IXUSR | S_IXGRP | S_IXOTH)) != 0 && - !priv_check_cred(cred, PRIV_VFS_EXEC, 0)) + !priv_check_cred(cred, PRIV_VFS_EXEC)) priv_granted |= VEXEC; } - if ((accmode & VREAD) && !priv_check_cred(cred, PRIV_VFS_READ, 0)) + if ((accmode & VREAD) && !priv_check_cred(cred, PRIV_VFS_READ)) priv_granted |= VREAD; if (((accmode & VWRITE) || (accmode & VAPPEND)) && - !priv_check_cred(cred, PRIV_VFS_WRITE, 0)) + !priv_check_cred(cred, PRIV_VFS_WRITE)) priv_granted |= (VWRITE | VAPPEND); - if ((accmode & VADMIN) && !priv_check_cred(cred, PRIV_VFS_ADMIN, 0)) + if ((accmode & VADMIN) && !priv_check_cred(cred, PRIV_VFS_ADMIN)) priv_granted |= VADMIN; /* Modified: head/sys/kern/uipc_mqueue.c ============================================================================== --- head/sys/kern/uipc_mqueue.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/uipc_mqueue.c Tue Dec 11 19:32:16 2018 (r341827) @@ -1032,7 +1032,7 @@ int do_unlink(struct mqfs_node *pn, struct ucred *ucre sx_assert(&pn->mn_info->mi_lock, SX_LOCKED); if (ucred->cr_uid != pn->mn_uid && - (error = priv_check_cred(ucred, PRIV_MQ_ADMIN, 0)) != 0) + (error = priv_check_cred(ucred, PRIV_MQ_ADMIN)) != 0) error = EACCES; else if (!pn->mn_deleted) { parent = pn->mn_parent; @@ -2581,7 +2581,7 @@ mqf_chown(struct file *fp, uid_t uid, gid_t gid, struc gid = pn->mn_gid; if (((uid != pn->mn_uid && uid != active_cred->cr_uid) || (gid != pn->mn_gid && !groupmember(gid, active_cred))) && - (error = priv_check_cred(active_cred, PRIV_VFS_CHOWN, 0))) + (error = priv_check_cred(active_cred, PRIV_VFS_CHOWN))) goto out; pn->mn_uid = uid; pn->mn_gid = gid; Modified: head/sys/kern/uipc_sem.c ============================================================================== --- head/sys/kern/uipc_sem.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/uipc_sem.c Tue Dec 11 19:32:16 2018 (r341827) @@ -242,7 +242,7 @@ ksem_chown(struct file *fp, uid_t uid, gid_t gid, stru gid = ks->ks_gid; if (((uid != ks->ks_uid && uid != active_cred->cr_uid) || (gid != ks->ks_gid && !groupmember(gid, active_cred))) && - (error = priv_check_cred(active_cred, PRIV_VFS_CHOWN, 0))) + (error = priv_check_cred(active_cred, PRIV_VFS_CHOWN))) goto out; ks->ks_uid = uid; ks->ks_gid = gid; @@ -364,7 +364,7 @@ ksem_access(struct ksem *ks, struct ucred *ucred) error = vaccess(VREG, ks->ks_mode, ks->ks_uid, ks->ks_gid, VREAD | VWRITE, ucred, NULL); if (error) - error = priv_check_cred(ucred, PRIV_SEM_WRITE, 0); + error = priv_check_cred(ucred, PRIV_SEM_WRITE); return (error); } Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/uipc_shm.c Tue Dec 11 19:32:16 2018 (r341827) @@ -968,7 +968,7 @@ shm_chown(struct file *fp, uid_t uid, gid_t gid, struc gid = shmfd->shm_gid; if (((uid != shmfd->shm_uid && uid != active_cred->cr_uid) || (gid != shmfd->shm_gid && !groupmember(gid, active_cred))) && - (error = priv_check_cred(active_cred, PRIV_VFS_CHOWN, 0))) + (error = priv_check_cred(active_cred, PRIV_VFS_CHOWN))) goto out; shmfd->shm_uid = uid; shmfd->shm_gid = gid; Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/vfs_mount.c Tue Dec 11 19:32:16 2018 (r341827) @@ -862,7 +862,7 @@ vfs_domount_first( */ error = VOP_GETATTR(vp, &va, td->td_ucred); if (error == 0 && va.va_uid != td->td_ucred->cr_uid) - error = priv_check_cred(td->td_ucred, PRIV_VFS_ADMIN, 0); + error = priv_check_cred(td->td_ucred, PRIV_VFS_ADMIN); if (error == 0) error = vinvalbuf(vp, V_SAVE, 0, 0); if (error == 0 && vp->v_type != VDIR) Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/vfs_subr.c Tue Dec 11 19:32:16 2018 (r341827) @@ -4469,7 +4469,7 @@ privcheck: * requests, instead of PRIV_VFS_EXEC. */ if ((accmode & VEXEC) && ((dac_granted & VEXEC) == 0) && - !priv_check_cred(cred, PRIV_VFS_LOOKUP, 0)) + !priv_check_cred(cred, PRIV_VFS_LOOKUP)) priv_granted |= VEXEC; } else { /* @@ -4479,20 +4479,20 @@ privcheck: */ if ((accmode & VEXEC) && ((dac_granted & VEXEC) == 0) && (file_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) != 0 && - !priv_check_cred(cred, PRIV_VFS_EXEC, 0)) + !priv_check_cred(cred, PRIV_VFS_EXEC)) priv_granted |= VEXEC; } if ((accmode & VREAD) && ((dac_granted & VREAD) == 0) && - !priv_check_cred(cred, PRIV_VFS_READ, 0)) + !priv_check_cred(cred, PRIV_VFS_READ)) priv_granted |= VREAD; if ((accmode & VWRITE) && ((dac_granted & VWRITE) == 0) && - !priv_check_cred(cred, PRIV_VFS_WRITE, 0)) + !priv_check_cred(cred, PRIV_VFS_WRITE)) priv_granted |= (VWRITE | VAPPEND); if ((accmode & VADMIN) && ((dac_granted & VADMIN) == 0) && - !priv_check_cred(cred, PRIV_VFS_ADMIN, 0)) + !priv_check_cred(cred, PRIV_VFS_ADMIN)) priv_granted |= VADMIN; if ((accmode & (priv_granted | dac_granted)) == accmode) { @@ -4527,7 +4527,7 @@ extattr_check_cred(struct vnode *vp, int attrnamespace switch (attrnamespace) { case EXTATTR_NAMESPACE_SYSTEM: /* Potentially should be: return (EPERM); */ - return (priv_check_cred(cred, PRIV_VFS_EXTATTR_SYSTEM, 0)); + return (priv_check_cred(cred, PRIV_VFS_EXTATTR_SYSTEM)); case EXTATTR_NAMESPACE_USER: return (VOP_ACCESS(vp, accmode, cred, td)); default: Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/kern/vfs_syscalls.c Tue Dec 11 19:32:16 2018 (r341827) @@ -1484,13 +1484,13 @@ can_hardlink(struct vnode *vp, struct ucred *cred) return (error); if (hardlink_check_uid && cred->cr_uid != va.va_uid) { - error = priv_check_cred(cred, PRIV_VFS_LINK, 0); + error = priv_check_cred(cred, PRIV_VFS_LINK); if (error != 0) return (error); } if (hardlink_check_gid && !groupmember(va.va_gid, cred)) { - error = priv_check_cred(cred, PRIV_VFS_LINK, 0); + error = priv_check_cred(cred, PRIV_VFS_LINK); if (error != 0) return (error); } Modified: head/sys/net/if_tap.c ============================================================================== --- head/sys/net/if_tap.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/net/if_tap.c Tue Dec 11 19:32:16 2018 (r341827) @@ -346,7 +346,7 @@ tapclone(void *arg, struct ucred *cred, char *name, in return; if (!tapdclone || - (!tapuopen && priv_check_cred(cred, PRIV_NET_IFCREATE, 0) != 0)) + (!tapuopen && priv_check_cred(cred, PRIV_NET_IFCREATE) != 0)) return; unit = 0; Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/net/if_tun.c Tue Dec 11 19:32:16 2018 (r341827) @@ -204,7 +204,7 @@ tunclone(void *arg, struct ucred *cred, char *name, in * If tun cloning is enabled, only the superuser can create an * interface. */ - if (!tundclone || priv_check_cred(cred, PRIV_NET_IFCREATE, 0) != 0) + if (!tundclone || priv_check_cred(cred, PRIV_NET_IFCREATE) != 0) return; if (strcmp(name, tunname) == 0) { Modified: head/sys/netinet/in_pcb.c ============================================================================== --- head/sys/netinet/in_pcb.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/netinet/in_pcb.c Tue Dec 11 19:32:16 2018 (r341827) @@ -622,7 +622,7 @@ in_pcb_lport(struct inpcb *inp, struct in_addr *laddrp last = V_ipport_hilastauto; lastport = &pcbinfo->ipi_lasthi; } else if (inp->inp_flags & INP_LOWPORT) { - error = priv_check_cred(cred, PRIV_NETINET_RESERVEDPORT, 0); + error = priv_check_cred(cred, PRIV_NETINET_RESERVEDPORT); if (error) return (error); first = V_ipport_lowfirstauto; /* 1023 */ @@ -866,12 +866,10 @@ in_pcbbind_setup(struct inpcb *inp, struct sockaddr *n /* GROSS */ if (ntohs(lport) <= V_ipport_reservedhigh && ntohs(lport) >= V_ipport_reservedlow && - priv_check_cred(cred, PRIV_NETINET_RESERVEDPORT, - 0)) + priv_check_cred(cred, PRIV_NETINET_RESERVEDPORT)) return (EACCES); if (!IN_MULTICAST(ntohl(sin->sin_addr.s_addr)) && - priv_check_cred(inp->inp_cred, - PRIV_NETINET_REUSEPORT, 0) != 0) { + priv_check_cred(inp->inp_cred, PRIV_NETINET_REUSEPORT) != 0) { t = in_pcblookup_local(pcbinfo, sin->sin_addr, lport, INPLOOKUP_WILDCARD, cred); /* Modified: head/sys/netinet6/in6_pcb.c ============================================================================== --- head/sys/netinet6/in6_pcb.c Tue Dec 11 19:12:44 2018 (r341826) +++ head/sys/netinet6/in6_pcb.c Tue Dec 11 19:32:16 2018 (r341827) @@ -212,12 +212,10 @@ in6_pcbbind(struct inpcb *inp, struct sockaddr *nam, /* GROSS */ if (ntohs(lport) <= V_ipport_reservedhigh && ntohs(lport) >= V_ipport_reservedlow && *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Tue Dec 11 19:34:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 466A113113D8; Tue, 11 Dec 2018 19:34:34 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 85BD169AC1; Tue, 11 Dec 2018 19:34:33 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f48.google.com with SMTP id l14so12789448ioj.5; Tue, 11 Dec 2018 11:34:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=ccFktZfQ6RKD+dfvN1UvWNkZydaBL8Qz5cWvjTpVU4E=; b=aCuEomZY9KL/vA4D/HzdIFkJ0eHo2EWhWu+MUYf3UmeXUtxvKAXCHR4It/8CErvbIY V5GSmDYAaGa6uZLwt24U31ifDFDYDrNg4W+8SDORBQ6MKNQZI0kZBPYT4UrzYmcNhEyI 1Ia9nOSHrKhVng9IqLpRCW3R/KCYjlbVfay7MPluQjn92h3prYp6thHLAjNcR2+5Rgo7 23pggSkB9puDOmmEXvuR76qvt+0RlkK1PPofrUl5E6d8kTFOajTvBTA6j/N3GYiWOalF b64UM3QDpGh29oTlJlyREMuxgrffrV3hcwa5ooyS5260okc+6b/8vbuFjfvkj+dNPm/B qZyw== X-Gm-Message-State: AA+aEWYYOUWv6fgkv2NfKxfNW9rMBECarDBQl34WPrfwo85uE9K7y1Eh 9GuOUagjiIjJlef8Ny/XXVBY9Vz9 X-Google-Smtp-Source: AFSGD/V9P+ME3XyJMKRtC47nmKyMNY51ENaAEyGK9q3yGAFTXUE65OKKjY5MNpEeSYRGnBPMhW8I3Q== X-Received: by 2002:a6b:919:: with SMTP id t25mr13726828ioi.207.1544556533422; Tue, 11 Dec 2018 11:28:53 -0800 (PST) Received: from mail-it1-f173.google.com (mail-it1-f173.google.com. [209.85.166.173]) by smtp.gmail.com with ESMTPSA id e68sm2432592ite.7.2018.12.11.11.28.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Dec 2018 11:28:53 -0800 (PST) Received: by mail-it1-f173.google.com with SMTP id z7so5392917iti.0; Tue, 11 Dec 2018 11:28:52 -0800 (PST) X-Received: by 2002:a24:5411:: with SMTP id t17mr3233212ita.32.1544556532832; Tue, 11 Dec 2018 11:28:52 -0800 (PST) MIME-Version: 1.0 References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> In-Reply-To: <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 11 Dec 2018 11:28:41 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r341803 - head/libexec/rc To: John Baldwin Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 85BD169AC1 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.48 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-3.92 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; TO_DN_SOME(0.00)[]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; RCVD_TLS_LAST(0.00)[]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.98)[-0.985,0]; RCVD_IN_DNSWL_NONE(0.00)[48.166.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-2.92)[ip: (-9.72), ipnet: 209.85.128.0/17(-3.54), asn: 15169(-1.27), country: US(-0.09)]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 19:34:34 -0000 On Tue, Dec 11, 2018 at 9:24 AM John Baldwin wrote: > list_vars is rarely used outside of > 'netif', so it probably doesn't make a measurable difference on bare metal. To clarify: It likely doesn't make a measurable difference *to boot times* on bare metal, but even on amd64 bare metal the time of list_vars itself is readily measurable; the 71% reduction quoted in the commit log was measured on amd64. Best, Conrad From owner-svn-src-head@freebsd.org Tue Dec 11 19:58:09 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D5331311F9B; Tue, 11 Dec 2018 19:58:09 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it1-f194.google.com (mail-it1-f194.google.com [209.85.166.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BA58C6A87B; Tue, 11 Dec 2018 19:58:08 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it1-f194.google.com with SMTP id x124so11714217itd.1; Tue, 11 Dec 2018 11:58:08 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=aEuwPC4FaunwQxgn0m+1EYcxN1LUBEKhv5IUiHJ/LM4=; b=SKsSXp1uitwzOya4kCW0pPihm4qqRA2WlE8elI1ilKq9nBj87bE9nn+tvaPkRQCZ55 z9rassUZs7eUYyFuIspGsp+yqYS0WIVCkTNpMw+12S5X157+OuihTjjqq8L71Izrf+2q sSP/sHweCNypGFt5R+9bxizjB0Gv+hX8cVUNwYjPHFA9bQgSD77/nS2fXso49SwgzUrh xNRJ/DjqOhgKoheooZtjS9JYJgwY0//Sm90a5sIOynG3RELm4Cu8nU8AojChIQmTQu4k siV858/QugEuO5qXf0pj88G9ef5fr3HScoupsxbvYr6YWhA9YAoODFJOYNX/ipS/kNkg et0Q== X-Gm-Message-State: AA+aEWYaPplj6074v+U6Q2twpyaStKgH1owpuRkx4f2ESzYLM11ibF+M Lnvl+h3MAvSv9pYfbiAy/JBy8l3y X-Google-Smtp-Source: AFSGD/X49iJgxcjvbOk9syKGm7dDbh4yXzXoyAoLzUIatyQ5a4jKu/rRahAUk5ESXY18H6xKlI+22g== X-Received: by 2002:a02:c88:: with SMTP id 8mr16529490jan.87.1544558287383; Tue, 11 Dec 2018 11:58:07 -0800 (PST) Received: from mail-io1-f49.google.com (mail-io1-f49.google.com. [209.85.166.49]) by smtp.gmail.com with ESMTPSA id t194sm9368852iof.3.2018.12.11.11.58.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Dec 2018 11:58:06 -0800 (PST) Received: by mail-io1-f49.google.com with SMTP id x6so12836190ioa.9; Tue, 11 Dec 2018 11:58:06 -0800 (PST) X-Received: by 2002:a6b:ee16:: with SMTP id i22mr13739435ioh.124.1544558286416; Tue, 11 Dec 2018 11:58:06 -0800 (PST) MIME-Version: 1.0 References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 11 Dec 2018 11:57:55 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r341803 - head/libexec/rc To: Warner Losh Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: BA58C6A87B X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.194 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-1.95 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; IP_SCORE(-0.98)[ipnet: 209.85.128.0/17(-3.54), asn: 15169(-1.27), country: US(-0.09)]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; TO_DN_SOME(0.00)[]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; NEURAL_HAM_SHORT(-0.96)[-0.962,0]; RCVD_IN_DNSWL_NONE(0.00)[194.166.85.209.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[194.166.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 19:58:09 -0000 On Tue, Dec 11, 2018 at 10:04 AM Warner Losh wrote: > On Tue, Dec 11, 2018, 9:55 AM John Baldwin > >> The 'read' builtin in sh can't use buffering, so it is always going to b= e slow > > It can't use it because of pipes. The example from the parts of this that= was on IRC was basically: > > foo | (read bar; baz) > > Which reads one line into the bar variable and then sends the rest to the= bar command. It can't trivially, but it's not impossible. sh could play games and buffer its own use of stdin, and then open a fresh pipe for stdin of subsequent non-builtins, writing out unused portions of the buffer.[A] Some other alternatives that would require kernel support but are things we've talked about doing in the kernel before anyway: * If we had something like eBPF programs attached to IO, maybe sh's read built-in could push a small eBPF program into the kernel that determined how many bytes could be read from the pipe in a single syscall without reading too far. It's fairly trivial. Simply returning a number of bytes up to and including the first '\n' would be a fine, if sometimes conservative amount. (Input lines can be continued with a trailing backslash, except in -r mode, but as a first-cut approximation, reading-until-newline is probably good enough.)[B] * Heck, even just a read_until_newline(2) syscall would work and probably be more broadly useful than just sh(1). I don't think it passes the sniff test =E2=80=94 not general enough, and probably not someth= ing you want beginners stumbling across instead of fgets(3) =E2=80=94 but it'd = be fine, and there are other pipe-abusing programs that care about reading ASCII text lines without overconsuming input than just sh(1).[C] * If we had something like Linux's tee(2) system call (which is as it sounds =E2=80=94 tee(1) for pipes), sh(1)'s read built-in could tee(2) for buffering without impacting stdin, and read(2) stdin only when it knew how many bytes were consumed (or when the pipe buffer became full).[D] I suspect (C) would be the easiest to implement correctly, followed by (D). (B) is requires some architectural design and bikeshedding and the details on the kernel side are tricky. (A) would be a little tricky and probably require extensive changes to sh(1) itself, which is a risk to the base system. But it would not impact the kernel. Is there any interest in a tee(2)-like syscall? Thanks, Conrad From owner-svn-src-head@freebsd.org Tue Dec 11 20:35:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E12E13136DA; Tue, 11 Dec 2018 20:35:50 +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 3F6B46C14F; Tue, 11 Dec 2018 20:35:50 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from [76.77.180.168] (port=62566 helo=eskarina.lan) by shxd.cx with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1gWoku-000Eqn-4N; Tue, 11 Dec 2018 12:35:48 -0800 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: svn commit: r341803 - head/libexec/rc From: Devin Teske In-Reply-To: Date: Tue, 11 Dec 2018 12:35:46 -0800 Cc: Devin Teske , Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> To: cem@freebsd.org X-Mailer: Apple Mail (2.3445.9.1) Sender: devin@shxd.cx X-Rspamd-Queue-Id: 3F6B46C14F X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.98 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.979,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 20:35:51 -0000 > On Dec 11, 2018, at 11:57 AM, Conrad Meyer wrote: >=20 > On Tue, Dec 11, 2018 at 10:04 AM Warner Losh wrote: >> On Tue, Dec 11, 2018, 9:55 AM John Baldwin >>=20 >>> The 'read' builtin in sh can't use buffering, so it is always going = to be slow >>=20 >> It can't use it because of pipes. The example from the parts of this = that was on IRC was basically: >>=20 >> foo | (read bar; baz) >>=20 >> Which reads one line into the bar variable and then sends the rest to = the bar command. >=20 > It can't trivially, but it's not impossible. sh could play games and > buffer its own use of stdin, and then open a fresh pipe for stdin of > subsequent non-builtins, writing out unused portions of the buffer.[A] >=20 > Some other alternatives that would require kernel support but are > things we've talked about doing in the kernel before anyway: >=20 > * If we had something like eBPF programs attached to IO, maybe sh's > read built-in could push a small eBPF program into the kernel that > determined how many bytes could be read from the pipe in a single > syscall without reading too far. It's fairly trivial. Simply > returning a number of bytes up to and including the first '\n' would > be a fine, if sometimes conservative amount. (Input lines can be > continued with a trailing backslash, except in -r mode, but as a > first-cut approximation, reading-until-newline is probably good > enough.)[B] >=20 > * Heck, even just a read_until_newline(2) syscall would work and > probably be more broadly useful than just sh(1). I don't think it > passes the sniff test =E2=80=94 not general enough, and probably not = something > you want beginners stumbling across instead of fgets(3) =E2=80=94 but = it'd be > fine, and there are other pipe-abusing programs that care about > reading ASCII text lines without overconsuming input than just > sh(1).[C] >=20 > * If we had something like Linux's tee(2) system call (which is as it > sounds =E2=80=94 tee(1) for pipes), sh(1)'s read built-in could tee(2) = for > buffering without impacting stdin, and read(2) stdin only when it knew > how many bytes were consumed (or when the pipe buffer became full).[D] >=20 > I suspect (C) would be the easiest to implement correctly, followed by > (D). (B) is requires some architectural design and bikeshedding and > the details on the kernel side are tricky. (A) would be a little > tricky and probably require extensive changes to sh(1) itself, which > is a risk to the base system. But it would not impact the kernel. >=20 > Is there any interest in a tee(2)-like syscall? >=20 Linux has vmsplice(2). I know jmg@ also expressed interest in having a vmsplice in FreeBSD. As for sh not being able to read more than a single byte at a time = because it could be reading from a pipe, what if it read into a buffer and = returned a line from the buffer. A subsequent read would return more data from = the buffer, ad nauseam until the buffer runs out -- in which case another = chunk is read to augment the data. This buffer could be expunged when stdin collapses (e.g., when the sub- shell completes. --=20 Devin= From owner-svn-src-head@freebsd.org Tue Dec 11 20:47:01 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC8611313DA9; Tue, 11 Dec 2018 20:47:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 741136C962; Tue, 11 Dec 2018 20:47: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 568B353BC; Tue, 11 Dec 2018 20:47: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 wBBKl1ih007489; Tue, 11 Dec 2018 20:47:01 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBKl1aB007487; Tue, 11 Dec 2018 20:47:01 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201812112047.wBBKl1aB007487@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 11 Dec 2018 20:47:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341829 - head/usr.sbin/bhyve X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/usr.sbin/bhyve X-SVN-Commit-Revision: 341829 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 741136C962 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.75 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.75)[-0.747,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 20:47:02 -0000 Author: mav Date: Tue Dec 11 20:47:00 2018 New Revision: 341829 URL: https://svnweb.freebsd.org/changeset/base/341829 Log: Allow CTL device specification in bhyve virtio-scsi. There was a large refactoring done in CTL to allow multiple ioctl frontend ports (and respective devices) to be created, particularly for bhyve. Unfortunately, respective part of bhyve functionality got lost somehow from the original virtio-scsi commit. This change allows wanted device path to be specified in either of two ways: -s 6,virtio-scsi,/dev/cam/ctl1.1 -s 6,virtio-scsi,dev=/dev/cam/ctl2.3 If neither is specified, the default /dev/cam/ctl device is used. While there, remove per-queue CTL device opening, which makes no sense at this point. Reported by: wg Reviewed by: araujo MFC after: 3 days Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D18504 Modified: head/usr.sbin/bhyve/bhyve.8 head/usr.sbin/bhyve/pci_virtio_scsi.c Modified: head/usr.sbin/bhyve/bhyve.8 ============================================================================== --- head/usr.sbin/bhyve/bhyve.8 Tue Dec 11 19:34:25 2018 (r341828) +++ head/usr.sbin/bhyve/bhyve.8 Tue Dec 11 20:47:00 2018 (r341829) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 24, 2018 +.Dd December 11, 2018 .Dt BHYVE 8 .Os .Sh NAME @@ -298,7 +298,16 @@ if not explicitly specified. .Pp SCSI devices: .Bl -tag -width 10n -.It Pa /dev/cam/ Ns Oo , Ns Ar port and initiator_id Oc +.It Pa /dev/cam/ctl Ns Oo Ar pp . Ns Ar vp Oc Ns Oo , Ns Ar scsi-device-options Oc +.El +.Pp +The +.Ar scsi-device-options +are: +.Bl -tag -width 10n +.It Li iid= Ns Ar IID +Initiator ID to use when sending requests to specified CTL port. +The default value is 0. .El .Pp TTY devices: Modified: head/usr.sbin/bhyve/pci_virtio_scsi.c ============================================================================== --- head/usr.sbin/bhyve/pci_virtio_scsi.c Tue Dec 11 19:34:25 2018 (r341828) +++ head/usr.sbin/bhyve/pci_virtio_scsi.c Tue Dec 11 20:47:00 2018 (r341829) @@ -105,7 +105,6 @@ struct pci_vtscsi_config { struct pci_vtscsi_queue { struct pci_vtscsi_softc * vsq_sc; struct vqueue_info * vsq_vq; - int vsq_ctl_fd; pthread_mutex_t vsq_mtx; pthread_mutex_t vsq_qmtx; pthread_cond_t vsq_cv; @@ -529,7 +528,7 @@ pci_vtscsi_request_handle(struct pci_vtscsi_queue *q, sbuf_delete(sb); } - err = ioctl(q->vsq_ctl_fd, CTL_IO, io); + err = ioctl(sc->vss_ctl_fd, CTL_IO, io); if (err != 0) { WPRINTF(("CTL_IO: err=%d (%s)\n", errno, strerror(errno))); cmd_wr->response = VIRTIO_SCSI_S_FAILURE; @@ -639,14 +638,8 @@ pci_vtscsi_init_queue(struct pci_vtscsi_softc *sc, int i; queue->vsq_sc = sc; - queue->vsq_ctl_fd = open("/dev/cam/ctl", O_RDWR); queue->vsq_vq = &sc->vss_vq[num + 2]; - if (queue->vsq_ctl_fd < 0) { - WPRINTF(("cannot open /dev/cam/ctl: %s\n", strerror(errno))); - return (-1); - } - pthread_mutex_init(&queue->vsq_mtx, NULL); pthread_mutex_init(&queue->vsq_qmtx, NULL); pthread_cond_init(&queue->vsq_cv, NULL); @@ -672,24 +665,34 @@ static int pci_vtscsi_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) { struct pci_vtscsi_softc *sc; - char *optname = NULL; - char *opt; - int i; + char *opt, *optname; + const char *devname; + int i, optidx = 0; sc = calloc(1, sizeof(struct pci_vtscsi_softc)); - sc->vss_ctl_fd = open("/dev/cam/ctl", O_RDWR); + devname = "/dev/cam/ctl"; + while ((opt = strsep(&opts, ",")) != NULL) { + optname = strsep(&opt, "="); + if (opt == NULL && optidx == 0) { + if (optname[0] != 0) + devname = optname; + } else if (strcmp(optname, "dev") == 0 && opt != NULL) { + devname = opt; + } else if (strcmp(optname, "iid") == 0 && opt != NULL) { + sc->vss_iid = strtoul(opt, NULL, 10); + } else { + fprintf(stderr, "Invalid option %s\n", optname); + free(sc); + return (1); + } + optidx++; + } + sc->vss_ctl_fd = open(devname, O_RDWR); if (sc->vss_ctl_fd < 0) { - WPRINTF(("cannot open /dev/cam/ctl: %s\n", strerror(errno))); + WPRINTF(("cannot open %s: %s\n", devname, strerror(errno))); + free(sc); return (1); - } - - while ((opt = strsep(&opts, ",")) != NULL) { - if ((optname = strsep(&opt, "=")) != NULL) { - if (strcmp(optname, "iid") == 0) { - sc->vss_iid = strtoul(opt, NULL, 10); - } - } } vi_softc_linkup(&sc->vss_vs, &vtscsi_vi_consts, sc, pi, sc->vss_vq); From owner-svn-src-head@freebsd.org Tue Dec 11 21:07:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D52D1314CFC; Tue, 11 Dec 2018 21:07:59 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id CFEAF6DB29; Tue, 11 Dec 2018 21:07:57 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id F29151058798; Wed, 12 Dec 2018 08:07:47 +1100 (AEDT) Date: Wed, 12 Dec 2018 08:07:46 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: John Baldwin cc: Devin Teske , Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341803 - head/libexec/rc In-Reply-To: Message-ID: <20181212071210.L826@besplex.bde.org> References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@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.2 cv=P6RKvmIu c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=2YV7UqY5TkSZ53OTWUUA:9 a=KOuUgUcxiEPbkqpa:21 a=mwZBcAdhYNl40Ij3:21 a=CjuIK1q_8ugA:10 X-Rspamd-Queue-Id: CFEAF6DB29 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of brde@optusnet.com.au designates 211.29.132.249 as permitted sender) smtp.mailfrom=brde@optusnet.com.au X-Spamd-Result: default: False [-4.56 / 15.00]; ARC_NA(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:211.29.132.0/23]; FREEMAIL_FROM(0.00)[optusnet.com.au]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DMARC_NA(0.00)[optusnet.com.au]; RCPT_COUNT_FIVE(0.00)[6]; IP_SCORE(-3.27)[ip: (-8.70), ipnet: 211.28.0.0/14(-4.23), asn: 4804(-3.39), country: AU(-0.04)]; MX_GOOD(-0.01)[cached: extmail.optusnet.com.au]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; RCVD_NO_TLS_LAST(0.10)[]; RCVD_IN_DNSWL_LOW(-0.10)[249.132.29.211.list.dnswl.org : 127.0.5.1]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[optusnet.com.au]; ASN(0.00)[asn:4804, ipnet:211.28.0.0/14, country:AU]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:07:59 -0000 On Tue, 11 Dec 2018, John Baldwin wrote: > On 12/11/18 9:40 AM, Devin Teske wrote: >> ... >> Thank you for the background which was lost by the time I got to the phab. >> >> I can't help but ask though,... >> >> If it was noticed that read(2) processes the stream one byte at a time, >> why not just optimize read(2)? >> >> I'm afraid of the prospect of having to hunt down every instance of while-read, >> but if we can fix the underlying read(2) inefficiency then we make while-read OK. > > It's a system call. A CPU emulator has to do a lot of work for a system call > because it involves two mode switches (user -> kernel and back again). You > can't "fix" that as it's just a part of the CPU architecture. There's a reason > that stdio uses buffering by default, it's because system calls have overhead. > The 'read' builtin in sh can't use buffering, so it is always going to be > inefficient. Syscalls have always been well known to be slow, but slowness is relative. CPUs are thousands of times slower that in 1980, so systems should be able to crunch through a few MB of data read 1 byte at a time fast enough that no one notices the slowness, even when emulated. But software bloat is now outrunning CPU speed increases. Some bandwidths for reading 1 byte at a time run today on the same 2GHz CPU i386 UP hardware linux-2.1.128 kernel built in 1998: 2500k/sec linux-2.4.0t8 kernel built in 2000: 1720k/sec linux-2.6.10 kernel built in 2004: 1540k/sec FreeBSD-4 kernel built in 2007: 680k/sec FreeBSD-~5.2 kernel built in 2018: 700k/sec FreeBSD-11 kernel built in 2018: 720k/sec (SMP kernel) FreeBSD-pre12 kernel built in 2018: 540k/sec (SMP kernel) FreeBSD-13 kernel built in 2018: 170k/sec (SMP kernel) This is with all recent security-related pessimizations like ibrs turned off, except the main one for i386 is using separate address spaces for the kernel and userland and this cannot be turned off. This is what gives most of the recent slowdown factor of more than 3. This slowdown factor is close to 3 for large block sizes, since read() is so slow that it takes about the same time for all block sizes below a few hundred bytes. Network bandwidth has similar slowdowns for small packets starting in FreeBSD-4 (the old Linuxes have low enough syscall overhead for the NIC to saturate at 640 kpps before the CPU or 1 Gbps ethernet saturates). amd64 doesn't have the 3-fold slowdown from separate address spaces. Optimizing syscalls is not very important, but it is convenient for applications with bad buffering to not be very slow, and it is annoying to lose benchmarks by a factor of 2 in 1998 and 10 now. Bruce From owner-svn-src-head@freebsd.org Tue Dec 11 21:16:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28C7D131527C; Tue, 11 Dec 2018 21:16:10 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C4D5F6E11A; Tue, 11 Dec 2018 21:16:09 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C07758F8; Tue, 11 Dec 2018 21:16:09 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBLG9NN023110; Tue, 11 Dec 2018 21:16:09 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBLG9a9023109; Tue, 11 Dec 2018 21:16:09 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201812112116.wBBLG9a9023109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 11 Dec 2018 21:16:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341832 - head/tools/build/options X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/tools/build/options X-SVN-Commit-Revision: 341832 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C4D5F6E11A X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.75 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.75)[-0.747,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:16:10 -0000 Author: bz Date: Tue Dec 11 21:16:09 2018 New Revision: 341832 URL: https://svnweb.freebsd.org/changeset/base/341832 Log: Remove a dead file. CVS was removed in r251794. Deleted: head/tools/build/options/WITHOUT_CVS From owner-svn-src-head@freebsd.org Tue Dec 11 21:22:30 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A595613158B1; Tue, 11 Dec 2018 21:22:30 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id 3A2CF6E90F; Tue, 11 Dec 2018 21:22:30 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id 41AE314867; Tue, 11 Dec 2018 21:22:29 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.15.2/8.15.2) with ESMTPS id wBBLMSX5002323 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 11 Dec 2018 21:22:28 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.15.2/8.15.2/Submit) id wBBLMR88002322; Tue, 11 Dec 2018 21:22:27 GMT (envelope-from phk) To: Bruce Evans cc: John Baldwin , Devin Teske , Conrad Meyer , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341803 - head/libexec/rc In-reply-to: <20181212071210.L826@besplex.bde.org> From: "Poul-Henning Kamp" References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> <20181212071210.L826@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <2320.1544563347.1@critter.freebsd.dk> Date: Tue, 11 Dec 2018 21:22:27 +0000 Message-ID: <2321.1544563347@critter.freebsd.dk> X-Rspamd-Queue-Id: 3A2CF6E90F X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.97 / 15.00]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:22:30 -0000 -------- In message <20181212071210.L826@besplex.bde.org>, Bruce Evans writes: >But software bloat is now outrunning CPU speed increases. Some bandwidths >for reading 1 byte at a time run today on the same 2GHz CPU i386 UP hardware > >linux-2.1.128 kernel built in 1998: 2500k/sec >linux-2.4.0t8 kernel built in 2000: 1720k/sec >linux-2.6.10 kernel built in 2004: 1540k/sec >FreeBSD-4 kernel built in 2007: 680k/sec >FreeBSD-~5.2 kernel built in 2018: 700k/sec >FreeBSD-11 kernel built in 2018: 720k/sec (SMP kernel) >FreeBSD-pre12 kernel built in 2018: 540k/sec (SMP kernel) >FreeBSD-13 kernel built in 2018: 170k/sec (SMP kernel) It is not just software bloat, it is also caused by the deeper and deeper pile of kludges between what goes for a "CPU" these days and what counts as "RAM". -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-svn-src-head@freebsd.org Tue Dec 11 21:44:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7CB191316D8B; Tue, 11 Dec 2018 21:44:40 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 23B6D6FC4C; Tue, 11 Dec 2018 21:44:40 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04F185E2F; Tue, 11 Dec 2018 21:44:40 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBLidrU038811; Tue, 11 Dec 2018 21:44:39 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBLidco038810; Tue, 11 Dec 2018 21:44:39 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201812112144.wBBLidco038810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 11 Dec 2018 21:44:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341833 - head/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/netpfil/pf X-SVN-Commit-Revision: 341833 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 23B6D6FC4C X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.75 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.75)[-0.747,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:44:40 -0000 Author: kp Date: Tue Dec 11 21:44:39 2018 New Revision: 341833 URL: https://svnweb.freebsd.org/changeset/base/341833 Log: pf: Prevent integer overflow in PF when calculating the adaptive timeout. Mainly states of established TCP connections would be affected resulting in immediate state removal once the number of states is bigger than adaptive.start. Disabling adaptive timeouts is a workaround to avoid this bug. Issue found and initial diff by Mathieu Blanc (mathieu.blanc at cea dot fr) Reported by: Andreas Longwitz Obtained from: OpenBSD MFC after: 2 weeks Modified: head/sys/netpfil/pf/pf.c Modified: head/sys/netpfil/pf/pf.c ============================================================================== --- head/sys/netpfil/pf/pf.c Tue Dec 11 21:16:09 2018 (r341832) +++ head/sys/netpfil/pf/pf.c Tue Dec 11 21:44:39 2018 (r341833) @@ -1567,9 +1567,11 @@ pf_state_expires(const struct pf_state *state) states = V_pf_status.states; } if (end && states > start && start < end) { - if (states < end) - return (state->expire + timeout * (end - states) / - (end - start)); + if (states < end) { + timeout = (u_int64_t)timeout * (end - states) / + (end - start); + return (state->expire + timeout); + } else return (time_uptime); } From owner-svn-src-head@freebsd.org Tue Dec 11 21:45:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDD711316E3F; Tue, 11 Dec 2018 21:45:57 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A09D6FDD6; Tue, 11 Dec 2018 21:45:57 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B00C5E31; Tue, 11 Dec 2018 21:45:57 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBLjvgG038920; Tue, 11 Dec 2018 21:45:57 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBLjvcE038919; Tue, 11 Dec 2018 21:45:57 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201812112145.wBBLjvcE038919@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 11 Dec 2018 21:45:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341834 - head/tests/sys/netpfil/pf/ioctl X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/pf/ioctl X-SVN-Commit-Revision: 341834 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6A09D6FDD6 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.75 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.75)[-0.747,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:45:58 -0000 Author: kp Date: Tue Dec 11 21:45:56 2018 New Revision: 341834 URL: https://svnweb.freebsd.org/changeset/base/341834 Log: pf tests: ioctl tests require root rights Explicitly mark these tests as requiring root rights. We need to be able to open /dev/pf. Reported by: Marie Helene Kvello-Aune MFC after: 2 weeks Modified: head/tests/sys/netpfil/pf/ioctl/validation.c Modified: head/tests/sys/netpfil/pf/ioctl/validation.c ============================================================================== --- head/tests/sys/netpfil/pf/ioctl/validation.c Tue Dec 11 21:44:39 2018 (r341833) +++ head/tests/sys/netpfil/pf/ioctl/validation.c Tue Dec 11 21:45:56 2018 (r341834) @@ -61,7 +61,12 @@ common_init_tbl(struct pfr_table *tbl) tbl->pfrt_fback = 0; } -ATF_TC_WITHOUT_HEAD(addtables); +ATF_TC(addtables); +ATF_TC_HEAD(addtables, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(addtables, tc) { struct pfioc_table io; @@ -105,7 +110,12 @@ ATF_TC_BODY(addtables, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(deltables); +ATF_TC(deltables); +ATF_TC_HEAD(deltables, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(deltables, tc) { struct pfioc_table io; @@ -140,7 +150,12 @@ ATF_TC_BODY(deltables, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(gettables); +ATF_TC(gettables); +ATF_TC_HEAD(gettables, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(gettables, tc) { struct pfioc_table io; @@ -170,7 +185,12 @@ ATF_TC_BODY(gettables, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(gettstats); +ATF_TC(gettstats); +ATF_TC_HEAD(gettstats, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(gettstats, tc) { struct pfioc_table io; @@ -200,7 +220,12 @@ ATF_TC_BODY(gettstats, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(clrtstats); +ATF_TC(clrtstats); +ATF_TC_HEAD(clrtstats, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(clrtstats, tc) { struct pfioc_table io; @@ -232,7 +257,12 @@ ATF_TC_BODY(clrtstats, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(settflags); +ATF_TC(settflags); +ATF_TC_HEAD(settflags, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(settflags, tc) { struct pfioc_table io; @@ -264,7 +294,12 @@ ATF_TC_BODY(settflags, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(addaddrs); +ATF_TC(addaddrs); +ATF_TC_HEAD(addaddrs, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(addaddrs, tc) { struct pfioc_table io; @@ -291,7 +326,12 @@ ATF_TC_BODY(addaddrs, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(deladdrs); +ATF_TC(deladdrs); +ATF_TC_HEAD(deladdrs, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(deladdrs, tc) { struct pfioc_table io; @@ -318,7 +358,12 @@ ATF_TC_BODY(deladdrs, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(setaddrs); +ATF_TC(setaddrs); +ATF_TC_HEAD(setaddrs, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(setaddrs, tc) { struct pfioc_table io; @@ -345,7 +390,12 @@ ATF_TC_BODY(setaddrs, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(getaddrs); +ATF_TC(getaddrs); +ATF_TC_HEAD(getaddrs, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(getaddrs, tc) { struct pfioc_table io; @@ -374,7 +424,12 @@ ATF_TC_BODY(getaddrs, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(getastats); +ATF_TC(getastats); +ATF_TC_HEAD(getastats, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(getastats, tc) { struct pfioc_table io; @@ -403,7 +458,12 @@ ATF_TC_BODY(getastats, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(clrastats); +ATF_TC(clrastats); +ATF_TC_HEAD(clrastats, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(clrastats, tc) { struct pfioc_table io; @@ -432,7 +492,12 @@ ATF_TC_BODY(clrastats, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(tstaddrs); +ATF_TC(tstaddrs); +ATF_TC_HEAD(tstaddrs, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(tstaddrs, tc) { struct pfioc_table io; @@ -461,7 +526,12 @@ ATF_TC_BODY(tstaddrs, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(inadefine); +ATF_TC(inadefine); +ATF_TC_HEAD(inadefine, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(inadefine, tc) { struct pfioc_table io; @@ -490,7 +560,12 @@ ATF_TC_BODY(inadefine, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(igetifaces); +ATF_TC(igetifaces); +ATF_TC_HEAD(igetifaces, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(igetifaces, tc) { struct pfioc_iface io; @@ -516,7 +591,12 @@ ATF_TC_BODY(igetifaces, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(cxbegin); +ATF_TC(cxbegin); +ATF_TC_HEAD(cxbegin, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(cxbegin, tc) { struct pfioc_trans io; @@ -547,7 +627,12 @@ ATF_TC_BODY(cxbegin, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(cxrollback); +ATF_TC(cxrollback); +ATF_TC_HEAD(cxrollback, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(cxrollback, tc) { struct pfioc_trans io; @@ -578,7 +663,12 @@ ATF_TC_BODY(cxrollback, tc) COMMON_CLEANUP(); } -ATF_TC_WITHOUT_HEAD(commit); +ATF_TC(commit); +ATF_TC_HEAD(commit, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} + ATF_TC_BODY(commit, tc) { struct pfioc_trans io; From owner-svn-src-head@freebsd.org Tue Dec 11 21:49:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E3B21316FB5; Tue, 11 Dec 2018 21:49:14 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C5DCB6FFCF; Tue, 11 Dec 2018 21:49:13 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A27845E38; Tue, 11 Dec 2018 21:49:13 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBBLnDUp039090; Tue, 11 Dec 2018 21:49:13 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBLnDZI039089; Tue, 11 Dec 2018 21:49:13 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201812112149.wBBLnDZI039089@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Tue, 11 Dec 2018 21:49:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341835 - head/tests/sys/netpfil/pf/ioctl X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/pf/ioctl X-SVN-Commit-Revision: 341835 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C5DCB6FFCF X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.75 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.75)[-0.747,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:49:14 -0000 Author: kp Date: Tue Dec 11 21:49:13 2018 New Revision: 341835 URL: https://svnweb.freebsd.org/changeset/base/341835 Log: pf tests: Use the ATF cleanup infrastructure in the ioctl tests Use ATF_TC_CLEANUP(), because that means the cleanup code will get called even if a test fails. Before it would only be executed if every test within the body succeeded. Reported by: Marie Helene Kvello-Aune MFC after: 2 weeks Modified: head/tests/sys/netpfil/pf/ioctl/validation.c Modified: head/tests/sys/netpfil/pf/ioctl/validation.c ============================================================================== --- head/tests/sys/netpfil/pf/ioctl/validation.c Tue Dec 11 21:45:56 2018 (r341834) +++ head/tests/sys/netpfil/pf/ioctl/validation.c Tue Dec 11 21:49:13 2018 (r341835) @@ -61,7 +61,7 @@ common_init_tbl(struct pfr_table *tbl) tbl->pfrt_fback = 0; } -ATF_TC(addtables); +ATF_TC_WITH_CLEANUP(addtables); ATF_TC_HEAD(addtables, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -106,11 +106,14 @@ ATF_TC_BODY(addtables, tc) io.pfrio_buffer = &tbls; ioctl(dev, DIOCRADDTABLES, &io); +} +ATF_TC_CLEANUP(addtables, tc) +{ COMMON_CLEANUP(); } -ATF_TC(deltables); +ATF_TC_WITH_CLEANUP(deltables); ATF_TC_HEAD(deltables, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -146,11 +149,14 @@ ATF_TC_BODY(deltables, tc) io.pfrio_buffer = NULL; if (ioctl(dev, DIOCRDELTABLES, &io) == 0) atf_tc_fail("Request with NULL buffer succeeded"); +} +ATF_TC_CLEANUP(deltables, tc) +{ COMMON_CLEANUP(); } -ATF_TC(gettables); +ATF_TC_WITH_CLEANUP(gettables); ATF_TC_HEAD(gettables, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -181,11 +187,14 @@ ATF_TC_BODY(gettables, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRGETTABLES, &io) != 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(gettables, tc) +{ COMMON_CLEANUP(); } -ATF_TC(gettstats); +ATF_TC_WITH_CLEANUP(gettstats); ATF_TC_HEAD(gettstats, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -216,11 +225,14 @@ ATF_TC_BODY(gettstats, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRGETTSTATS, &io) != 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(gettstats, tc) +{ COMMON_CLEANUP(); } -ATF_TC(clrtstats); +ATF_TC_WITH_CLEANUP(clrtstats); ATF_TC_HEAD(clrtstats, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -253,11 +265,14 @@ ATF_TC_BODY(clrtstats, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRCLRTSTATS, &io) != 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(clrtstats, tc) +{ COMMON_CLEANUP(); } -ATF_TC(settflags); +ATF_TC_WITH_CLEANUP(settflags); ATF_TC_HEAD(settflags, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -290,11 +305,14 @@ ATF_TC_BODY(settflags, tc) io.pfrio_size = 1 << 28; if (ioctl(dev, DIOCRSETTFLAGS, &io) != 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(settflags, tc) +{ COMMON_CLEANUP(); } -ATF_TC(addaddrs); +ATF_TC_WITH_CLEANUP(addaddrs); ATF_TC_HEAD(addaddrs, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -322,11 +340,14 @@ ATF_TC_BODY(addaddrs, tc) io.pfrio_size = 1 << 28; if (ioctl(dev, DIOCRADDADDRS, &io) == 0) atf_tc_fail("Reuqest with size 1 << 28 failed"); +} +ATF_TC_CLEANUP(addaddrs, tc) +{ COMMON_CLEANUP(); } -ATF_TC(deladdrs); +ATF_TC_WITH_CLEANUP(deladdrs); ATF_TC_HEAD(deladdrs, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -354,11 +375,14 @@ ATF_TC_BODY(deladdrs, tc) io.pfrio_size = 1 << 28; if (ioctl(dev, DIOCRDELADDRS, &io) == 0) atf_tc_fail("Reuqest with size 1 << 28 failed"); +} +ATF_TC_CLEANUP(deladdrs, tc) +{ COMMON_CLEANUP(); } -ATF_TC(setaddrs); +ATF_TC_WITH_CLEANUP(setaddrs); ATF_TC_HEAD(setaddrs, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -386,11 +410,14 @@ ATF_TC_BODY(setaddrs, tc) io.pfrio_size = 1 << 28; if (ioctl(dev, DIOCRSETADDRS, &io) == 0) atf_tc_fail("Reuqest with size 1 << 28 failed"); +} +ATF_TC_CLEANUP(setaddrs, tc) +{ COMMON_CLEANUP(); } -ATF_TC(getaddrs); +ATF_TC_WITH_CLEANUP(getaddrs); ATF_TC_HEAD(getaddrs, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -420,11 +447,14 @@ ATF_TC_BODY(getaddrs, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRGETADDRS, &io) == 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(getaddrs, tc) +{ COMMON_CLEANUP(); } -ATF_TC(getastats); +ATF_TC_WITH_CLEANUP(getastats); ATF_TC_HEAD(getastats, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -454,11 +484,14 @@ ATF_TC_BODY(getastats, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRGETASTATS, &io) == 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(getastats, tc) +{ COMMON_CLEANUP(); } -ATF_TC(clrastats); +ATF_TC_WITH_CLEANUP(clrastats); ATF_TC_HEAD(clrastats, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -488,11 +521,14 @@ ATF_TC_BODY(clrastats, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRCLRASTATS, &io) == 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(clrastats, tc) +{ COMMON_CLEANUP(); } -ATF_TC(tstaddrs); +ATF_TC_WITH_CLEANUP(tstaddrs); ATF_TC_HEAD(tstaddrs, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -522,11 +558,14 @@ ATF_TC_BODY(tstaddrs, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRTSTADDRS, &io) == 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(tstaddrs, tc) +{ COMMON_CLEANUP(); } -ATF_TC(inadefine); +ATF_TC_WITH_CLEANUP(inadefine); ATF_TC_HEAD(inadefine, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -556,11 +595,14 @@ ATF_TC_BODY(inadefine, tc) io.pfrio_size = 1 << 24; if (ioctl(dev, DIOCRINADEFINE, &io) == 0) atf_tc_fail("Request with size 1 << 24 failed"); +} +ATF_TC_CLEANUP(inadefine, tc) +{ COMMON_CLEANUP(); } -ATF_TC(igetifaces); +ATF_TC_WITH_CLEANUP(igetifaces); ATF_TC_HEAD(igetifaces, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -587,11 +629,14 @@ ATF_TC_BODY(igetifaces, tc) io.pfiio_size = 1 << 31; if (ioctl(dev, DIOCIGETIFACES, &io) == 0) atf_tc_fail("request with size 1 << 31 succeeded"); +} +ATF_TC_CLEANUP(igetifaces, tc) +{ COMMON_CLEANUP(); } -ATF_TC(cxbegin); +ATF_TC_WITH_CLEANUP(cxbegin); ATF_TC_HEAD(cxbegin, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -623,11 +668,14 @@ ATF_TC_BODY(cxbegin, tc) io.array = NULL; if (ioctl(dev, DIOCXBEGIN, &io) == 0) atf_tc_fail("request with size -1 succeeded"); +} +ATF_TC_CLEANUP(cxbegin, tc) +{ COMMON_CLEANUP(); } -ATF_TC(cxrollback); +ATF_TC_WITH_CLEANUP(cxrollback); ATF_TC_HEAD(cxrollback, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -659,11 +707,14 @@ ATF_TC_BODY(cxrollback, tc) io.array = NULL; if (ioctl(dev, DIOCXROLLBACK, &io) == 0) atf_tc_fail("request with size -1 succeeded"); +} +ATF_TC_CLEANUP(cxrollback, tc) +{ COMMON_CLEANUP(); } -ATF_TC(commit); +ATF_TC_WITH_CLEANUP(commit); ATF_TC_HEAD(commit, tc) { atf_tc_set_md_var(tc, "require.user", "root"); @@ -695,7 +746,10 @@ ATF_TC_BODY(commit, tc) io.array = NULL; if (ioctl(dev, DIOCXCOMMIT, &io) == 0) atf_tc_fail("request with size -1 succeeded"); +} +ATF_TC_CLEANUP(commit, tc) +{ COMMON_CLEANUP(); } From owner-svn-src-head@freebsd.org Tue Dec 11 21:55:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7EEC1317368; Tue, 11 Dec 2018 21:55:16 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 73B9A704A6; Tue, 11 Dec 2018 21:55:16 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f45.google.com with SMTP id x6so13120801ioa.9; Tue, 11 Dec 2018 13:55:16 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=oEkqyaJVoWoNFbm0g91ypoDVrptSLeOTu9ol6XZesz4=; b=LzvSb8KkoHVI1gAiGjxv1L/NnmoNC+77fCF1yJp9Twg3UGEwvjVjSqyEGaa3DPvgnN 6KrZfyD3Tjz9CH5kgHDw46z1bSSsyL/gs3F6P84kKlYV8yjVX+8qxT5A7wWBxc/p4ikq dIuFP2LTDW5gjxgR+FD1ZchhLydBR2lJXoSlhfcCiXXlpxPvRBEARR4xXvH9i3RUTXt9 Sp7wkA5pEvx9JjCHBXvNgJotJKGLeKBaxPuixoKHWl9Tx7V12RS5QJcv1IblX3uncmmF Ki3k9fFhhEI4ip5Q4F0vG6d4ftI6M83EDtKuNnZfTj8BP+3Akt34yP94Wx3tu2TKdWMD fO3w== X-Gm-Message-State: AA+aEWaQ22RQJMraS8ueF2nBRWdTx/tbw++IjOaLZZXYX5a4pNbul8uH 4FrosdD6arw7anxfNjm7urI9mXve X-Google-Smtp-Source: AFSGD/XSJQ5N0Ww99KdADvXf00XRVkXLLXiCwwrVIn6sTU4+9o2iDxEt1o8emAmsWCTVkqwPWyQPgQ== X-Received: by 2002:a6b:6111:: with SMTP id v17mr15626902iob.107.1544565309769; Tue, 11 Dec 2018 13:55:09 -0800 (PST) Received: from mail-it1-f180.google.com (mail-it1-f180.google.com. [209.85.166.180]) by smtp.gmail.com with ESMTPSA id 194sm2072768itl.32.2018.12.11.13.55.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Dec 2018 13:55:09 -0800 (PST) Received: by mail-it1-f180.google.com with SMTP id m8so11969805itk.0; Tue, 11 Dec 2018 13:55:09 -0800 (PST) X-Received: by 2002:a24:5411:: with SMTP id t17mr3632243ita.32.1544565309264; Tue, 11 Dec 2018 13:55:09 -0800 (PST) MIME-Version: 1.0 References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 11 Dec 2018 13:54:58 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r341803 - head/libexec/rc To: Devin Teske Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 73B9A704A6 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.98 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 21:55:17 -0000 On Tue, Dec 11, 2018 at 12:35 PM Devin Teske wrote: > > On Dec 11, 2018, at 11:57 AM, Conrad Meyer wrote: > > Is there any interest in a tee(2)-like syscall? > > > > Linux has vmsplice(2). I know jmg@ also expressed interest in having a > vmsplice in FreeBSD. Sure; they're related. See also splice(2). But tee(2) is probably the one that would be most useful here. > As for sh not being able to read more than a single byte at a time because > it could be reading from a pipe, what if it read into a buffer and returned > a line from the buffer. A subsequent read would return more data from the > buffer, ad nauseam until the buffer runs out -- in which case another chunk > is read to augment the data. > > This buffer could be expunged when stdin collapses (e.g., when the sub- > shell completes. Yeah, this is basically what "buffered input" means. An example of the problem with the naive solution is the scenario Warner pasted a few emails ago. Take: foo | (read bar; baz) (Where 'baz' is not a built-in.) To implement this correctly with buffered 'read,' you have to somehow flush any input in the buffer beyond the end of the first line to the pipe that will be baz's stdin, as well as with the remaining contents of the pipe from foo (which may be indefinite). That is what I suggested above as (A). One big caveat is that you basically have to spawn a thread or process to keep feeding the input from the first pipe to the magical implicit pipe. This overhead can be avoided readily in most scenarios if only the 'read' command is buffered. Also, the described (read bar; baz) sub-program is a fairly odd construction, and the feeding isn't needed if no non-builtin programs after 'read' will access stdin. If it helps paint a more concrete picture, imagine 'foo' as 'yes' and 'baz' as 'pv > /dev/null' or something (i.e., indefinite data source, indefinite data sink). Best, Conrad From owner-svn-src-head@freebsd.org Tue Dec 11 22:14:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D5A61317D8F; Tue, 11 Dec 2018 22:14:41 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B5B4371048; Tue, 11 Dec 2018 22:14:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96AA3637A; Tue, 11 Dec 2018 22:14:40 +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 wBBMEewv054500; Tue, 11 Dec 2018 22:14:40 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBBMEbfA054486; Tue, 11 Dec 2018 22:14:37 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812112214.wBBMEbfA054486@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Tue, 11 Dec 2018 22:14:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341836 - in head: lib/libufs sbin/fsck_ffs sbin/fsirand sbin/newfs sys/sys sys/ufs/ffs sys/ufs/ufs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: in head: lib/libufs sbin/fsck_ffs sbin/fsirand sbin/newfs sys/sys sys/ufs/ffs sys/ufs/ufs X-SVN-Commit-Revision: 341836 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B5B4371048 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.69 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.69)[-0.692,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 22:14:41 -0000 Author: mckusick Date: Tue Dec 11 22:14:37 2018 New Revision: 341836 URL: https://svnweb.freebsd.org/changeset/base/341836 Log: Continuing efforts to provide hardening of FFS. This change adds a check hash to the filesystem inodes. Access attempts to files associated with an inode with an invalid check hash will fail with EINVAL (Invalid argument). Access is reestablished after an fsck is run to find and validate the inodes with invalid check-hashes. This check avoids a class of filesystem panics related to corrupted inodes. The hash is done using crc32c. Note this check-hash is for the inode itself and not any of its indirect blocks. Check-hash validation may be extended to also cover indirect block pointers, but that will be a separate (and more costly) feature. Check hashes are added only to UFS2 and not to UFS1 as UFS1 is primarily used in embedded systems with small memories and low-powered processors which need as light-weight a filesystem as possible. Reviewed by: kib Tested by: Peter Holm Sponsored by: Netflix Modified: head/lib/libufs/inode.c head/lib/libufs/libufs.h head/sbin/fsck_ffs/inode.c head/sbin/fsck_ffs/main.c head/sbin/fsirand/fsirand.c head/sbin/newfs/mkfs.c head/sys/sys/param.h head/sys/ufs/ffs/ffs_extern.h head/sys/ufs/ffs/ffs_inode.c head/sys/ufs/ffs/ffs_snapshot.c head/sys/ufs/ffs/ffs_softdep.c head/sys/ufs/ffs/ffs_subr.c head/sys/ufs/ffs/ffs_vfsops.c head/sys/ufs/ufs/dinode.h Modified: head/lib/libufs/inode.c ============================================================================== --- head/lib/libufs/inode.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/lib/libufs/inode.c Tue Dec 11 22:14:37 2018 (r341836) @@ -90,7 +90,10 @@ gotit: switch (disk->d_ufs) { disk->d_dp.dp2 = &((struct ufs2_dinode *)inoblock)[inum - min]; if (dp != NULL) *dp = disk->d_dp; - return (0); + if (ffs_verify_dinode_ckhash(fs, disk->d_dp.dp2) == 0) + return (0); + ERROR(disk, "check-hash failed for inode read from disk"); + return (-1); default: break; } @@ -108,6 +111,8 @@ putinode(struct uufsd *disk) ERROR(disk, "No inode block allocated"); return (-1); } + if (disk->d_ufs == 2) + ffs_update_dinode_ckhash(fs, disk->d_dp.dp2); if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)), disk->d_inoblock, disk->d_fs.fs_bsize) <= 0) return (-1); Modified: head/lib/libufs/libufs.h ============================================================================== --- head/lib/libufs/libufs.h Tue Dec 11 21:49:13 2018 (r341835) +++ head/lib/libufs/libufs.h Tue Dec 11 22:14:37 2018 (r341836) @@ -116,6 +116,8 @@ int ffs_sbget(void *, struct fs **, off_t, char *, int (*)(void *, off_t, void **, int)); int ffs_sbput(void *, struct fs *, off_t, int (*)(void *, off_t, void *, int)); +void ffs_update_dinode_ckhash(struct fs *, struct ufs2_dinode *); +int ffs_verify_dinode_ckhash(struct fs *, struct ufs2_dinode *); /* * Request standard superblock location in ffs_sbget Modified: head/sbin/fsck_ffs/inode.c ============================================================================== --- head/sbin/fsck_ffs/inode.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sbin/fsck_ffs/inode.c Tue Dec 11 22:14:37 2018 (r341836) @@ -286,6 +286,7 @@ union dinode * ginode(ino_t inumber) { ufs2_daddr_t iblk; + union dinode *dp; if (inumber < UFS_ROOTINO || inumber > maxino) errx(EEXIT, "bad inode number %ju to ginode", @@ -301,7 +302,17 @@ ginode(ino_t inumber) if (sblock.fs_magic == FS_UFS1_MAGIC) return ((union dinode *) &pbp->b_un.b_dinode1[inumber % INOPB(&sblock)]); - return ((union dinode *)&pbp->b_un.b_dinode2[inumber % INOPB(&sblock)]); + dp = (union dinode *)&pbp->b_un.b_dinode2[inumber % INOPB(&sblock)]; + if (ffs_verify_dinode_ckhash(&sblock, (struct ufs2_dinode *)dp) != 0) { + pwarn("INODE CHECK-HASH FAILED"); + prtinode(inumber, dp); + if (preen || reply("FIX") != 0) { + if (preen) + printf(" (FIXED)\n"); + inodirty(dp); + } + } + return (dp); } /* @@ -347,6 +358,21 @@ getnextinode(ino_t inumber, int rebuildcg) nextinop += sizeof(struct ufs1_dinode); else nextinop += sizeof(struct ufs2_dinode); + if ((ckhashadd & CK_INODE) != 0) { + ffs_update_dinode_ckhash(&sblock, (struct ufs2_dinode *)dp); + dirty(&inobuf); + } + if (ffs_verify_dinode_ckhash(&sblock, (struct ufs2_dinode *)dp) != 0) { + pwarn("INODE CHECK-HASH FAILED"); + prtinode(inumber, dp); + if (preen || reply("FIX") != 0) { + if (preen) + printf(" (FIXED)\n"); + ffs_update_dinode_ckhash(&sblock, + (struct ufs2_dinode *)dp); + dirty(&inobuf); + } + } if (rebuildcg && (char *)dp == inobuf.b_un.b_buf) { /* * Try to determine if we have reached the end of the @@ -522,6 +548,8 @@ void inodirty(union dinode *dp) { + if (sblock.fs_magic == FS_UFS2_MAGIC) + ffs_update_dinode_ckhash(&sblock, (struct ufs2_dinode *)dp); dirty(pbp); } Modified: head/sbin/fsck_ffs/main.c ============================================================================== --- head/sbin/fsck_ffs/main.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sbin/fsck_ffs/main.c Tue Dec 11 22:14:37 2018 (r341836) @@ -468,13 +468,13 @@ checkfilesys(char *filesys) ckhashadd |= CK_SUPERBLOCK; sblock.fs_metackhash |= CK_SUPERBLOCK; } -#ifdef notyet if ((sblock.fs_metackhash & CK_INODE) == 0 && getosreldate() >= P_OSREL_CK_INODE && reply("ADD INODE CHECK-HASH PROTECTION") != 0) { ckhashadd |= CK_INODE; sblock.fs_metackhash |= CK_INODE; } +#ifdef notyet if ((sblock.fs_metackhash & CK_INDIR) == 0 && getosreldate() >= P_OSREL_CK_INDIR && reply("ADD INDIRECT BLOCK CHECK-HASH PROTECTION") != 0) { Modified: head/sbin/fsirand/fsirand.c ============================================================================== --- head/sbin/fsirand/fsirand.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sbin/fsirand/fsirand.c Tue Dec 11 22:14:37 2018 (r341836) @@ -202,6 +202,7 @@ fsirand(char *device) dp1++; } else { dp2->di_gen = arc4random(); + ffs_update_dinode_ckhash(sblock, dp2); dp2++; } } Modified: head/sbin/newfs/mkfs.c ============================================================================== --- head/sbin/newfs/mkfs.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sbin/newfs/mkfs.c Tue Dec 11 22:14:37 2018 (r341836) @@ -499,6 +499,8 @@ restart: sblock.fs_metackhash |= CK_CYLGRP; if (getosreldate() >= P_OSREL_CK_SUPERBLOCK) sblock.fs_metackhash |= CK_SUPERBLOCK; + if (getosreldate() >= P_OSREL_CK_INODE) + sblock.fs_metackhash |= CK_INODE; } /* Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/sys/param.h Tue Dec 11 22:14:37 2018 (r341836) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300004 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300005 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, @@ -89,6 +89,7 @@ #define P_OSREL_CK_CYLGRP 1200046 #define P_OSREL_VMTOTAL64 1200054 #define P_OSREL_CK_SUPERBLOCK 1300000 +#define P_OSREL_CK_INODE 1300005 #define P_OSREL_MAJOR(x) ((x) / 100000) #endif Modified: head/sys/ufs/ffs/ffs_extern.h ============================================================================== --- head/sys/ufs/ffs/ffs_extern.h Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ffs/ffs_extern.h Tue Dec 11 22:14:37 2018 (r341836) @@ -108,6 +108,8 @@ void ffs_sync_snap(struct mount *, int); int ffs_syncvnode(struct vnode *vp, int waitfor, int flags); int ffs_truncate(struct vnode *, off_t, int, struct ucred *); int ffs_update(struct vnode *, int); +void ffs_update_dinode_ckhash(struct fs *, struct ufs2_dinode *); +int ffs_verify_dinode_ckhash(struct fs *, struct ufs2_dinode *); int ffs_valloc(struct vnode *, int, struct ucred *, struct vnode **); int ffs_vfree(struct vnode *, ino_t, int); vfs_vget_t ffs_vget; Modified: head/sys/ufs/ffs/ffs_inode.c ============================================================================== --- head/sys/ufs/ffs/ffs_inode.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ffs/ffs_inode.c Tue Dec 11 22:14:37 2018 (r341836) @@ -154,6 +154,7 @@ loop: */ random_harvest_queue(&(ip->i_din1), sizeof(ip->i_din1), RANDOM_FS_ATIME); } else { + ffs_update_dinode_ckhash(fs, ip->i_din2); *((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ip->i_number)) = *ip->i_din2; /* Modified: head/sys/ufs/ffs/ffs_snapshot.c ============================================================================== --- head/sys/ufs/ffs/ffs_snapshot.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ffs/ffs_snapshot.c Tue Dec 11 22:14:37 2018 (r341836) @@ -1340,6 +1340,8 @@ expunge_ufs2(snapvp, cancelip, fs, acctfunc, expungety bzero(&dip->di_db[0], (UFS_NDADDR + UFS_NIADDR) * sizeof(ufs2_daddr_t)); if (clearmode || cancelip->i_effnlink == 0) dip->di_mode = 0; + else + ffs_update_dinode_ckhash(fs, dip); bdwrite(bp); /* * Now go through and expunge all the blocks in the file Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ffs/ffs_softdep.c Tue Dec 11 22:14:37 2018 (r341836) @@ -6702,6 +6702,7 @@ softdep_journal_freeblocks(ip, cred, length, flags) *((struct ufs1_dinode *)bp->b_data + ino_to_fsbo(fs, ip->i_number)) = *ip->i_din1; } else { + ffs_update_dinode_ckhash(fs, ip->i_din2); *((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ip->i_number)) = *ip->i_din2; } @@ -6957,6 +6958,7 @@ softdep_setup_freeblocks(ip, length, flags) dp2 = ((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ip->i_number)); ip->i_din2->di_freelink = dp2->di_freelink; + ffs_update_dinode_ckhash(fs, ip->i_din2); *dp2 = *ip->i_din2; } /* @@ -9752,6 +9754,7 @@ clear_unlinked_inodedep(inodedep) dip = (struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, pino); dip->di_freelink = nino; + ffs_update_dinode_ckhash(fs, dip); } /* * If the bwrite fails we have no recourse to recover. The @@ -10392,6 +10395,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp) inon = TAILQ_NEXT(inodedep, id_unlinked); dp->di_freelink = inon ? inon->id_ino : 0; + ffs_update_dinode_ckhash(fs, dp); } /* * If the bitmap is not yet written, then the allocated @@ -10553,6 +10557,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp) #endif /* INVARIANTS */ dp->di_ib[i] = 0; } + ffs_update_dinode_ckhash(fs, dp); return; } /* @@ -10581,6 +10586,7 @@ initiate_write_inodeblock_ufs2(inodedep, bp) */ for (; adp; adp = TAILQ_NEXT(adp, ad_next)) dp->di_ib[adp->ad_offset - UFS_NDADDR] = 0; + ffs_update_dinode_ckhash(fs, dp); } /* @@ -11619,8 +11625,11 @@ handle_written_inodeblock(inodedep, bp, flags) * marked dirty so that its will eventually get written back in * its correct form. */ - if (hadchanges) + if (hadchanges) { + if (fstype == UFS2) + ffs_update_dinode_ckhash(inodedep->id_fs, dp2); bdirty(bp); + } bufwait: /* * If the write did not succeed, we have done all the roll-forward Modified: head/sys/ufs/ffs/ffs_subr.c ============================================================================== --- head/sys/ufs/ffs/ffs_subr.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ffs/ffs_subr.c Tue Dec 11 22:14:37 2018 (r341836) @@ -119,6 +119,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc { struct ufs1_dinode *dip1; struct ufs2_dinode *dip2; + int error; if (I_IS_UFS1(ip)) { dip1 = ip->i_din1; @@ -142,9 +143,53 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc ip->i_gen = dip2->di_gen; ip->i_uid = dip2->di_uid; ip->i_gid = dip2->di_gid; - return (0); + if ((error = ffs_verify_dinode_ckhash(fs, dip2)) != 0) + printf("Inode %jd: check-hash failed\n", (intmax_t)ino); + return (error); } #endif /* _KERNEL */ + +/* + * Verify an inode check-hash. + */ +int +ffs_verify_dinode_ckhash(struct fs *fs, struct ufs2_dinode *dip) +{ + uint32_t save_ckhash; + + /* + * Return success if unallocated or we are not doing inode check-hash. + */ + if (dip->di_mode == 0 || (fs->fs_metackhash & CK_INODE) == 0) + return (0); + /* + * Exclude di_ckhash from the crc32 calculation, e.g., always use + * a check-hash value of zero when calculating the check-hash. + */ + save_ckhash = dip->di_ckhash; + dip->di_ckhash = 0; + if (save_ckhash != calculate_crc32c(~0L, (void *)dip, sizeof(*dip))) + return (EINVAL); + dip->di_ckhash = save_ckhash; + return (0); +} + +/* + * Update an inode check-hash. + */ +void +ffs_update_dinode_ckhash(struct fs *fs, struct ufs2_dinode *dip) +{ + + if (dip->di_mode == 0 || (fs->fs_metackhash & CK_INODE) == 0) + return; + /* + * Exclude old di_ckhash from the crc32 calculation, e.g., always use + * a check-hash value of zero when calculating the new check-hash. + */ + dip->di_ckhash = 0; + dip->di_ckhash = calculate_crc32c(~0L, (void *)dip, sizeof(*dip)); +} /* * These are the low-level functions that actually read and write Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ffs/ffs_vfsops.c Tue Dec 11 22:14:37 2018 (r341836) @@ -817,7 +817,7 @@ ffs_mountfs(devvp, mp, td) if ((error = ffs_sbget(devvp, &fs, loc, M_UFSMNT, ffs_use_bread)) != 0) goto out; /* none of these types of check-hashes are maintained by this kernel */ - fs->fs_metackhash &= ~(CK_INODE | CK_INDIR | CK_DIR); + fs->fs_metackhash &= ~(CK_INDIR | CK_DIR); /* no support for any undefined flags */ fs->fs_flags &= FS_SUPPORTED; fs->fs_flags &= ~FS_UNCLEAN; Modified: head/sys/ufs/ufs/dinode.h ============================================================================== --- head/sys/ufs/ufs/dinode.h Tue Dec 11 21:49:13 2018 (r341835) +++ head/sys/ufs/ufs/dinode.h Tue Dec 11 22:14:37 2018 (r341836) @@ -149,7 +149,8 @@ struct ufs2_dinode { ufs2_daddr_t di_ib[UFS_NIADDR]; /* 208: Indirect disk blocks. */ u_int64_t di_modrev; /* 232: i_modrev for NFSv4 */ uint32_t di_freelink; /* 240: SUJ: Next unlinked inode. */ - uint32_t di_spare[3]; /* 244: Reserved; currently unused */ + uint32_t di_ckhash; /* 244: if CK_INODE, its check-hash */ + uint32_t di_spare[2]; /* 248: Reserved; currently unused */ }; /* From owner-svn-src-head@freebsd.org Tue Dec 11 22:42:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23DF41318B33; Tue, 11 Dec 2018 22:42:05 +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 BB8997219E; Tue, 11 Dec 2018 22:42:04 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from [76.77.180.168] (port=64831 helo=eskarina.lan) by shxd.cx with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1gWqj5-000Gl2-JF; Tue, 11 Dec 2018 14:42:03 -0800 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: svn commit: r341803 - head/libexec/rc From: Devin Teske In-Reply-To: Date: Tue, 11 Dec 2018 14:42:02 -0800 Cc: Devin Teske , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <917251B0-00E0-47E2-B6FB-568EDB9ED781@FreeBSD.org> References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> To: cem@freebsd.org X-Mailer: Apple Mail (2.3445.9.1) Sender: devin@shxd.cx X-Rspamd-Queue-Id: BB8997219E X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.98 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.98)[-0.977,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 22:42:05 -0000 > On Dec 11, 2018, at 1:54 PM, Conrad Meyer wrote: >=20 > On Tue, Dec 11, 2018 at 12:35 PM Devin Teske = wrote: >>> On Dec 11, 2018, at 11:57 AM, Conrad Meyer wrote: >>> Is there any interest in a tee(2)-like syscall? >>>=20 >>=20 >> Linux has vmsplice(2). I know jmg@ also expressed interest in having = a >> vmsplice in FreeBSD. >=20 > Sure; they're related. See also splice(2). But tee(2) is probably > the one that would be most useful here. >=20 >> As for sh not being able to read more than a single byte at a time = because >> it could be reading from a pipe, what if it read into a buffer and = returned >> a line from the buffer. A subsequent read would return more data from = the >> buffer, ad nauseam until the buffer runs out -- in which case another = chunk >> is read to augment the data. >>=20 >> This buffer could be expunged when stdin collapses (e.g., when the = sub- >> shell completes. >=20 > Yeah, this is basically what "buffered input" means. An example of > the problem with the naive solution is the scenario Warner pasted a > few emails ago. Take: >=20 > foo | (read bar; baz) >=20 > (Where 'baz' is not a built-in.) To implement this correctly with > buffered 'read,' you have to somehow flush any input in the buffer > beyond the end of the first line to the pipe that will be baz's stdin, > as well as with the remaining contents of the pipe from foo (which > may be indefinite). That is what I suggested above as (A). >=20 > One big caveat is that you basically have to spawn a thread or process > to keep feeding the input from the first pipe to the magical implicit > pipe. This overhead can be avoided readily in most scenarios if only > the 'read' command is buffered. Also, the described (read bar; baz) > sub-program is a fairly odd construction, and the feeding isn't needed > if no non-builtin programs after 'read' will access stdin. >=20 > If it helps paint a more concrete picture, imagine 'foo' as 'yes' and > 'baz' as 'pv > /dev/null' or something (i.e., indefinite data source, > indefinite data sink). Thanks, this definitely illustrates the trouble. In that case, would it be appropriate to say that: blah | while read x; do ...; done Is always more efficiently written as: IFS=3D$'\n' for x in $( blah ); do ...; done ? --=20 Devin= From owner-svn-src-head@freebsd.org Wed Dec 12 01:00:34 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F71C13253C6; Wed, 12 Dec 2018 01:00:34 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9E8D16A5F6; Wed, 12 Dec 2018 01:00:33 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f43.google.com with SMTP id r200so13431466iod.11; Tue, 11 Dec 2018 17:00:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=gXtL2gOlKYyLaoFBhSA+J5ooSXf4b90E0Lx0oVfz0Yw=; b=uGeRnspVG5RgKzNWzE8AZTGHYZ21urcvs8UdKQjnDBHMVyBRxYAVz1qITiKJxMReNK ZcceFQ1yqWkW3SvxdPFY8W4ALiKMmpgffjq8MK0QdFMFJ2BFPPjT6NOdukTdHmk5iSVz 1JbXdHpsLL1/hCfQTTwm2lb+M0fuFmPa8Z/lGiQweRwwn8p7h8tFBZCZwkfRXeH52mcK 853irzYWidDgpM8NMuJvfAVXtsOkLWw4vLbpAOc+Qy2KPfl25rQPy4fxWcXju6tfWCXq jUC1MIPpaq2OzWOfWEqf+fise0paaaDMJtDwOxtv4F+tidjjB9jeHqHuAc0iTnHc1pVk 1Kig== X-Gm-Message-State: AA+aEWZw3IkXWMKC1sAfYBuJndMa0D/PJsHZdeuYONFTz6AZIQoxIPDs LS6vzGCKw+7tht2zvz2jEEQM9h2L X-Google-Smtp-Source: AFSGD/V2a9c8beExcZT31rFWg6kdrDdL5odUNBXWLYI8L64VXl+9SkqBwglB2YcY0Bgs4yywSh4qYg== X-Received: by 2002:a5d:8989:: with SMTP id m9mr15535302iol.216.1544576427378; Tue, 11 Dec 2018 17:00:27 -0800 (PST) Received: from mail-it1-f180.google.com (mail-it1-f180.google.com. [209.85.166.180]) by smtp.gmail.com with ESMTPSA id x99sm2104412ita.23.2018.12.11.17.00.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Dec 2018 17:00:26 -0800 (PST) Received: by mail-it1-f180.google.com with SMTP id z7so6629267iti.0; Tue, 11 Dec 2018 17:00:26 -0800 (PST) X-Received: by 2002:a02:c88:: with SMTP id 8mr17341359jan.87.1544576426488; Tue, 11 Dec 2018 17:00:26 -0800 (PST) MIME-Version: 1.0 References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> <917251B0-00E0-47E2-B6FB-568EDB9ED781@FreeBSD.org> In-Reply-To: <917251B0-00E0-47E2-B6FB-568EDB9ED781@FreeBSD.org> Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 11 Dec 2018 17:00:15 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r341803 - head/libexec/rc To: Devin Teske Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 9E8D16A5F6 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.93 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.93)[-0.926,0]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 01:00:34 -0000 On Tue, Dec 11, 2018 at 2:42 PM Devin Teske wrote: > In that case, would it be appropriate to say that: > > blah | while read x; do ...; done > > Is always more efficiently written as: > > IFS=$'\n' > for x in $( blah ); do ...; done I don't know. The suggestion came from jilles@, who is much more familiar with sh(1) than I am. My understanding is that it's important that 'set -o noglob' is set, or else 'blah' lines that include globs may be evaluated against the filesystem. There is also a caveat if 'blah' is the 'set' command, or similar, in that IFS' own value itself will be split across multiple for loop iteration 'x' values ("IFS='", "'"). I would hesitate to say "always" given my limited understanding of the shell, but it might be true. Best, Conrad From owner-svn-src-head@freebsd.org Tue Dec 11 20:47:16 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 913B81313DCC; Tue, 11 Dec 2018 20:47:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA2C96CA5C; Tue, 11 Dec 2018 20:47:15 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id wBBKkulk072930 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 11 Dec 2018 22:46:59 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua wBBKkulk072930 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id wBBKkt1T072929; Tue, 11 Dec 2018 22:46:55 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 11 Dec 2018 22:46:55 +0200 From: Konstantin Belousov To: Scott Long Cc: John Baldwin , Warner Losh , Kevin Bowling , Mateusz Guzik , Ian Lepore , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers , scottl@freebsd.org Subject: Re: svn commit: r341682 - head/sys/sys Message-ID: <20181211204655.GF60291@kib.kiev.ua> References: <201812071205.wB7C5BvA038350@repo.freebsd.org> <1544206201.1860.288.camel@freebsd.org> <45f85061-2633-852c-3cc0-41f64d51e4f0@FreeBSD.org> <20181210234754.GD60291@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.11.1 (2018-12-01) X-Spam-Status: No, score=0.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM,FREEMAIL_REPLY, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Mailman-Approved-At: Wed, 12 Dec 2018 01:22:06 +0000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 20:47:16 -0000 On Mon, Dec 10, 2018 at 09:57:08PM -0700, Scott Long wrote: > > > > On Dec 10, 2018, at 4:47 PM, Konstantin Belousov wrote: > > > > On Mon, Dec 10, 2018 at 02:15:20PM -0800, John Baldwin wrote: > >> On 12/8/18 7:43 PM, Warner Losh wrote: > >>> > >>> > >>> On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling wrote: > >>> > >>> On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik > wrote: > >>> > >>>> > >>>> Fully satisfying solution would be that all architectures get 64-bit > >>>> ops, even if in the worst case they end up taking a lock. Then > >>>> subsystems would not have to ifdef on anything. However, there > >>>> was some opposition to this proposal and I don't think this is > >>>> important enough to push. > >>> > >>> Mateusz, > >>> > >>> Who is opposing this particular polyfill solution? Scott Long brought > >>> up a situation in driver development where this would be useful as > >>> well. The polyfills lower the cognitive load and #ifdef soup which > >>> are the right call here regardless of performance on toy ports. > >>> > >>> > >>> I don't recall seeing the opposition either. It would have to be a global lock for all 64bit atomics.... but I think it would only be 2 atomics on those architectures. > >> > >> It would have to be a spin lock, so in the case of unrl you would be trading > >> an operation on one of N regular mutexes for a single spin lock that was > >> also contested by other things. This would be pretty crappy. For drivers > >> that aren't actually used on platforms without 32-bit atomics we can simply > >> not build them in sys/modules/Makefile or not put them in GENERIC. For > >> something in the core kernel like unrl I think we will have to do what > >> Mateusz has done here. > > > > It is worse. All atomics that acess the same location must use the same > > lock. Otherwise, you could observe torn writes and out of thin air > > values. Since you cannot know in advance which locations are acceses > > by the locked variant, all freebsd atomics ops have to be switched to > > locked variant on the architecture. > > 64bit atomics on I486 already suffer the risk of torn reads; the implementation > merely does a CLI to protect against local preemption (though you could still > get unlucky with an NMI). I suppose you could argue that SMP isn’t really > viable on I486 and therefore this fact is irrelevant, but it does illustrate > precedence for having API completeness in a platform. 64bit atomics on 486 are fine, because we only support SMP on machines which have cmpxchg8b. Even then, I am not sure that we really support the kind of SMP configurations from the Pentium times, at least I am certain that this was not exercised for quite long time. > > Really, this isn’t that hard. Part of the existing contract of using atomics is > that you carefully evaluate all uses of the variable and decide when to use > an atomic instruction. Arguing that we can’t make this process automatic > and foolproof for 64bit quantities, especially for a subset of subset of > platforms/architectures, and therefore we should be even more of a difficult > landmine, is not…. I don’t know what to say… sensical? > > 64bit operations are a reality for MI code in a modern OS, and I’m tired of > having to tip-toe around them due to incomplete MD implementations. The > instructions have been available on Intel CPUs for 25 years! My > very strong preference is to have a complete and functional implementation > of atomic.h for any architecture that is hooked up to the build. We can then > tackle the details of optimization and edge case refinement, just like we do > with every other API and service that we work on. It doesn’t have to be > perfect to be useful, and at this point we’re providing neither perfection nor > utility, just “buts†and “what ifsâ€. I do not understand this rant. Provide working implementation for 64bit atomics on the arches which lack them, everybody will be happy. My point is that implementing e.g. only atomic_add_64() using lock is not a solution. Exactly because it makes inconsistent KPI which does not satisfy basic guarantees which are provided on other arches, heavily relied upon in FreeBSD code, and documented in atomic(9) in the free prose, with further references to C11. I.e. instead of the cross-arch KPI such implementation would require consumers to know arch pecularities. Isn't this complete failure of the goals ? BTW, this is why C11 standard provides lockless predicate for atomic types and not for atomic ops. If one atomic op is locked, all of them must be. > > Going forward, I’m going to start using 64bit atomics where they’re prudent, > instead of avoiding them due to this niche 32bit argument. If that means > more and more of what I do no longer compiles on a mips or a ppc32, then > that’s a sacrifice that is fine with me. It still creates extra development work, > and having a uniformly available implementation would be much nicer. > > Scott > From owner-svn-src-head@freebsd.org Wed Dec 12 02:07:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57DB7132729D; Wed, 12 Dec 2018 02:07:39 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Thawte RSA CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9C9526C5F9; Wed, 12 Dec 2018 02:07:38 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wBC25DS3010418; Tue, 11 Dec 2018 18:07:32 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=to : cc : subject : in-reply-to : references : from : mime-version : content-type : content-id : date : message-id; s=PPS1017; bh=D0y/PRgvWGmybYlFhv0q2JflkvDycKClc52M+TKGjpQ=; b=IXYVGaeNrQFx/IGMjg60/Ao4+BhN+5+tW/2cp3vNIU2jRtm8Gt4T/aoSi37EnKotZGPH gCZ7gE6PibkSpKezuTXD+cEXKWWjoJjz5Avg+dSituuQ4EOQjxYWbgVwpJd4u0SM5t9H ec41xYlaZzi80DmEbG208Pj7bZBoV91JyF8OgRLWrGbB+NsL13drCaOFeZ0esOEai1dC lpvMkLHdgn0P5r1nKpOh9aqNM+1RYzqXSk0PgsTe7pcu4KSa5/l8nhZpAL4iKq1rWXHX ep0BMeOzdXQlUdqfJNltm73LNN+ZveXDXAQbQ7iNhjKfY43yLBh0VHTp0px6y0U2J6Um QA== Received: from nam03-by2-obe.outbound.protection.outlook.com (mail-by2nam03lp2056.outbound.protection.outlook.com [104.47.42.56]) by mx0b-00273201.pphosted.com with ESMTP id 2pap9k0862-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 11 Dec 2018 18:07:32 -0800 Received: from CO2PR05CA0086.namprd05.prod.outlook.com (2603:10b6:104:1::12) by DM5PR05MB3273.namprd05.prod.outlook.com (2603:10b6:3:c8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.10; Wed, 12 Dec 2018 02:07:29 +0000 Received: from DM3NAM05FT063.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e51::205) by CO2PR05CA0086.outlook.office365.com (2603:10b6:104:1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.8 via Frontend Transport; Wed, 12 Dec 2018 02:07:29 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.12 as permitted sender) Received: from P-EXFEND-EQX-01.jnpr.net (66.129.239.12) by DM3NAM05FT063.mail.protection.outlook.com (10.152.98.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1446.5 via Frontend Transport; Wed, 12 Dec 2018 02:07:28 +0000 Received: from P-EXBEND-EQX-01.jnpr.net (10.104.8.52) by P-EXFEND-EQX-01.jnpr.net (10.104.8.54) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 11 Dec 2018 18:07:27 -0800 Received: from p-mailhub01.juniper.net (10.104.20.6) by P-EXBEND-EQX-01.jnpr.net (10.104.8.52) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 11 Dec 2018 18:07:27 -0800 Received: from kaos.jnpr.net (kaos.jnpr.net [172.23.50.162]) by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id wBC27QqW024125; Tue, 11 Dec 2018 18:07:27 -0800 (envelope-from sjg@juniper.net) Received: by kaos.jnpr.net (Postfix, from userid 1377) id C044E14AF0; Tue, 11 Dec 2018 18:07:26 -0800 (PST) Received: from kaos.jnpr.net (localhost [127.0.0.1]) by kaos.jnpr.net (Postfix) with ESMTP id BE90D14AEF; Tue, 11 Dec 2018 18:07:26 -0800 (PST) To: CC: Devin Teske , src-committers , , , Subject: Re: svn commit: r341803 - head/libexec/rc In-Reply-To: References: <201812110138.wBB1cp1p006660@repo.freebsd.org> <2a76b295-b2da-3015-c201-dbe0ec63ca5a@FreeBSD.org> <98481565-CDD7-4301-B86B-072D5B984AF7@FreeBSD.org> <917251B0-00E0-47E2-B6FB-568EDB9ED781@FreeBSD.org> Comments: In-reply-to: Conrad Meyer message dated "Tue, 11 Dec 2018 17:00:15 -0800." From: "Simon J. Gerraty" X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 26.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <43931.1544580446.1@kaos.jnpr.net> Date: Tue, 11 Dec 2018 18:07:26 -0800 Message-ID: <46440.1544580446@kaos.jnpr.net> X-EXCLAIMER-MD-CONFIG: e3cb0ff2-54e7-4646-8a04-0dae4ac7b136 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.129.239.12; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(376002)(346002)(396003)(39860400002)(136003)(2980300002)(189003)(199004)(97736004)(97876018)(2906002)(69596002)(356004)(2351001)(305945005)(6916009)(55016002)(336012)(46406003)(107886003)(186003)(23726003)(6346003)(117636001)(77096007)(53546011)(76176011)(50466002)(7696005)(6266002)(5660300001)(53936002)(6246003)(68736007)(97756001)(90966002)(26005)(14444005)(9686003)(450100002)(8676002)(93886005)(486006)(4326008)(478600001)(76506005)(229853002)(81166006)(81156014)(16586007)(53416004)(11346002)(7126003)(316002)(50226002)(54906003)(126002)(476003)(86362001)(446003)(47776003)(8936002)(106466001)(105596002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR05MB3273; H:P-EXFEND-EQX-01.jnpr.net; FPR:; SPF:SoftFail; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; DM3NAM05FT063; 1:oDOQrmLJbBEu5OM/uZr/CTKNa/+GG/CNGhfp9R0gmVa3t1ttIvzFqScE7XzV+tdIMss/87C6Raq9VqycJMieWUtp8VOmhJghfBYyQBJbzONFqV3V0J/4uLdQIyS0eST4 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eb944139-0081-45d7-b303-08d65fd691af X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:DM5PR05MB3273; X-Microsoft-Exchange-Diagnostics: 1; DM5PR05MB3273; 3:9W3suadTZvLZQL6/5TGfZBfPQE67TP3b93Pkw3EfOnQ4ef02/JN8ewH8AVOz+hyrO/H4lYd6Cs1wW3+HBeobK3/6EZ7a/mpJAdeNR4Hh+MeF29eEb3kW8W34NTSmbknRBz97T354qfV2wJQIkM02Gn89+UjiJoOnDdV+V0XCVPvOio1ec/JZBYPTcTm9KuBLPB/5z4+vGXTl/Fdjptign264I29r26oha9TexeHg2Kf0wRljkFU4vOIWCGbo+Eqnwho2eOysqe+iuS9xnIyAC719KbYNYFomUOqrB4eKSgtOk2ferhoDq5I+AkJz8/PZEnFXhpX88a66JDPwmIP0lcjolXZV1xh5M/skRCT+C6o=; 25:gZblNdg5CTwDdTvLZfDyKGlitgVR74Fq6vXu/8s5rjG4pWJrQ3AXoLwhdo3BCLqc3rCvZIuUtwUAuCaMcW81s1QtXlgu/vTlNQjfb6PbEzPbhuj62eVXJ/vPj8IvP+qBVzgND/xD4KyAUoZahadcIaphOkj19GJvQW9IDT6oq5Xa1aDMFEJlozztWIvm2KatnzEE7ZPck6VdoAPuxMf21lbI4RmW52dHZZ1H2MLOalxlvUnwUN+mJdyV0dU4XH8boCnchgbWQ7FJmpe8EkcMuzSIOcp0VEbg9YJeXZ5dX70LoXRYJEfYghdgwWbt0oUXZb/Xanjqy/2HbwYUMRahqg== X-MS-TrafficTypeDiagnostic: DM5PR05MB3273: X-Microsoft-Exchange-Diagnostics: 1; DM5PR05MB3273; 31:xai0DMOPHhyYy5PbMnLTf65URiQICXUBmED9Rijhu99s9J6lLcs6EaiPJYhNlXzrktQT83xtUA+S6nYEPhu/O0HzXfjUBeJG6EPiGGusSc46ciEr7Oo1zGsYQ9QH3weHuFyYG/cAaZV1FenVsjYFA/rq0mc6hBd1rD1FlltuBXyMjsaPZquewX3diSJwFNsWItuQnhk5mV8rjNcDsmO3L4zttTcAF7Uiw41yZhbhOv0=; 20:J4CpnK3j4HEqCPrzkmWiYOPkIjq+a6l+LAUH8o5hEzt2aEAExiBzcU33C5KGOcDpiNWX45cR3NkDa0vf6rCKYu9Jn+GEzcfTEZAVxVWzWesG5pFwwOFz2BAZs+NSc3pv/++q8j8F5q102a6REmpEcIxIRhSV+Ws8zaGJEb94lGcXzDlWpM+afU6letDkWCvwIMdf/rwWxno3qn25DAOCHLbhQ9QordUlAbG9xdjgZgScnymsMlLjpjpgWyX5R2lJLADVj8VaSWZapqn2Ns0fYOer9N7CHhT2QVO8ydTdIMdGDO86NLWrnUHw2dcGRq1XjX4QVxRAAeHCa+oIjmmG5iToJrxAfeIImPIyspi5NB5t5BgCCccPEdLNJb+UXB2dUxJAFo3z41t1lkl0l1mgO8xBRxuxVCZ/QDC9/gZn+rZwepIuowNJgFfX2S6NTbRTjRQ5ZtTZQhkGD6wScsMKVPNyGOMriz64OU7VPe8Z9UN3E77thKjqGKwTWarmZIQs X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(3230017)(999002)(6040522)(2401047)(5005006)(8121501046)(3231472)(944501520)(52105112)(93006095)(93003095)(10201501046)(3002001)(6055026)(148016)(149066)(150057)(6041310)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:DM5PR05MB3273; BCL:0; PCL:0; RULEID:; SRVR:DM5PR05MB3273; X-Microsoft-Exchange-Diagnostics: 1; DM5PR05MB3273; 4:IjPhE6ASGMGN1qGrGryS7AkRHxR9ISkVWjgL9MztsHsqk0LtRUCSH8l84JnKykIZY98ya/KmVyCjiHkYgQdTn6AxLwPBB4YLBxuC6yP0Z15CK40fMpj1xmkGLch+it0MIbhQgw1ND12STU9qMYJGWn4jTjRKGm0IiGe/EC0HGSIxyXqNvUlj9kJMCFJpDDaDWGTww/PP55mjh04A+iz7BB1cCDD2T3gzM6LyV+oQEg6UN5BypLH2jj6HI0LV7pB2Zh4MqcIiqdtm5qDB2wgdGg== X-Forefront-PRVS: 0884AAA693 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR05MB3273; 23:0yJH0SqdJzl2Qm3AE0UjrRlW0k28agyqe+UXOPxrS?= =?us-ascii?Q?D176dMU/VZ1aBFcty5cqBSD84G8EAmqTX+P1XFmUiDT7um2Ew2wQJlPPgu3T?= =?us-ascii?Q?1FoiTHySPdfACf2MW5qO2VoebNEyldWrwYVaIGUPFtLpRsEN41oP+VTB+TvI?= =?us-ascii?Q?H+i4aovSCb0n147Cq3D+ky3k2xtZ6ru6fKwXELyk97Fb1S8nidVBSvO/N0+K?= =?us-ascii?Q?LTBrlklfKX80TWjMcEQdjua9xpKwjj4jd2z/LxuarTMth1183cJnThtgRBoh?= =?us-ascii?Q?xYfj62P0POM1fYA9uaJ2lRf0WrejNtN/MR9mQKgK3mVIznN60tZEystEt3ap?= =?us-ascii?Q?jr03uulvrL6mxtkUuPoijxFt8l/bmvYlDr7MUqdUlAoD+pwERYCu4d0piUIG?= =?us-ascii?Q?4WLKOSBf5tEU9uLnPho8sUMU2f+0yzSgJk5Z3Tw2fNjOQqApd7oep9wQmvI9?= =?us-ascii?Q?5dglJkmKORPMpKXdY7OuLZ4fxnQut63Ikgjy30ShpAgSqhzTxkY/iW3I1Wlf?= =?us-ascii?Q?mKXk1ZcJC0Vcpd4DDWTRWU42CAqisb5k2JoZSh0bPeGEeZydGmKFlSllE862?= =?us-ascii?Q?LAdNhhV4wjGSJ199+gYIirivUc7hxIkJmnKac+Z5wXVNx0bBy0EpuNZFFwmb?= =?us-ascii?Q?cmu9M9CWIMyqypx0X5Y6DONH9puRL3VPmozK2JNxaTQSiCw3eWXIkqcWpRTX?= =?us-ascii?Q?QiX4rYfl4+v5TyWkpBL/m05tCysXukKV5pJ34F4FT4M1b9lFa7drjmZP+kYs?= =?us-ascii?Q?1VCbM2BC8WaS8+4rGDu9om7FN0ZqQc+Kk76rwYJBKm361/A/0O7ZgEGl+GsD?= =?us-ascii?Q?w+O3ZB9ADVxfg++wOwMhj8RlMO4OQCQoTfT9wCUMo0gaVX4ZepoO9UWcGyKN?= =?us-ascii?Q?JDwoxSunchaIlEbiPEK3EZKWAOSYSvHDb8wFpU5/owlDQuueLJJ3aGFht9M7?= =?us-ascii?Q?wNxISKUrkDPJWpfiZ/gdePdbxfNTX74Btm110z2K63gyDH3K/gC08oGKsvti?= =?us-ascii?Q?33TqreR2PO92pRogdb4x26XBCd8tHj1EkRGhId+KQnqf9paf4FfxvWzGoFzq?= =?us-ascii?Q?04mIb5WlPFppr4Z8FxhuQkpz13BvInGFp6j3sET0HvIKFz0hcWQGki/0/Sp9?= =?us-ascii?Q?NCjgAdx6zs0gTIKnqinJVN6+dOJWbRbduIhJ1HTMvcfsfZG+1xl8SH7qLZx1?= =?us-ascii?Q?fIvj+8Jel2qBCSSvvkCRZIr7iVLvH+RzavZNxDYZyn/QjlKtHwyhY8Un88l/?= =?us-ascii?Q?nrDsxl7KbEdiWweSNVBV/EINpGVL8GohqoFdV6AeNBNMOgSFYC8iEZYxVBiz?= =?us-ascii?Q?qSz1seEm+kGTYe/ijEQ75NtQBV3v+KZJd/N3Jwdx1VuqGRD+m2Cz1LPVSqze?= =?us-ascii?Q?PEryX1YkIa+drEmVHec/SrJDpNgPaIBDy8bjGwfsErdaRvV6xHSb9P58S9Na?= =?us-ascii?Q?jJCwePguUm8emUHsb8FAD5m6ZEKoJQ=3D?= X-Microsoft-Antispam-Message-Info: Gif/JTc4RnjlMt6HNJt1MwT5xZ56luGRyXAzk8okGtWhzqq+ebpY5vttFCvlAiJT1xnGzpaR8aDSCzNxJ8SyoslVnSKIuDB+VFC+KUsXUKudk9fiihDNAkBebCfPjwQJ4S4B5Etjxkfj0Rme1qHm+9VkJTDyTFVv1QyQ/df0Ilzrcjc/RFIqcv8oG8/rITQV6FsYK63aQQyhEvOFO+eCQQCR3dKuKry8mUywOl+uxGpq/E2JGbD3xNXM1SbOXMC49o459E/bGI/ijaJCajRfYIN1o2ZA3M3eQH+zTjbjjuYD1gce6ofPzIj5BoJj01Qv X-Microsoft-Exchange-Diagnostics: 1; DM5PR05MB3273; 6:qQ7zcH7H3qZXaXr/uYrhowZnNyEKw0nSFMy9xK9MfWXzIQ1y5RC56spa3orZVs+1e1QX5obo+Vme95wRWyZy487M4NzgjrcDUt78rUoijbPuy0kRjYytQq198zakKecyPGmN0qKozGG+hV10p+WPsi8b1WEFWi92vs4cd3VbwRoYAGRzgSs1ihDH9/6o/F/IQjt/CP1GyIAE5glC04lFSQcnFOyzS14vPA6HA5YoRNtAdTBzpEhee4/B+VWSVvmIvMhsmkTV5OuFI2Ju/NjD0kx2M1sAxpbeQT5eoNVW4GFVAc0b7foGL+bnQkACfC+JTLKDh+mIZSQRv3FpXbSIY/JV8pYsc+LP830uCaLswj0HAilkw+JVYkeD3gMfVy7aKU1ywV6Eozwd86RWWpVFR0o04OdL2P4ZRmJwD3X7CFUWrekvZZofp9cD6QBb2PpI97A93VIioltxt6KdMMBL1w==; 5:GLs3EmberyCaWpq+/cFyOKi4cpr84yYI7FStEMEYHk9MzWyXyv4NoSJGOSX2kPVgtsmvvob2jRGDnKHq3udOGmEsagQMo3Us00PlSqcWmyZ2kRycFVhtPjacopfGQFGXvYZuhRzLIUz0FAg+ikO5VF96j8TSacZzDu2O9JuELUY=; 7:tbv5LLVqDw+zw3SF0Obi1DajGDzaw3oez590cNMYFNdY+jTLMelqhYNCalYO1khLRUuaiitQSMYGyW22xee036xa/VNf2WDZutIECf9/NLeVUOJsMRYiT4CW3yOgIAoQzHHP8D2Rhk9osXCMKx3sCw== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2018 02:07:28.8229 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb944139-0081-45d7-b303-08d65fd691af X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.12]; Helo=[P-EXFEND-EQX-01.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB3273 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-12-11_09:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=716 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1812120014 X-Rspamd-Queue-Id: 9C9526C5F9 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.94 / 15.00]; NEURAL_HAM_SHORT(-0.94)[-0.945,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 02:07:39 -0000 Just caught the tail of this thread so sorry for chiming in from the peanut gallery... blah | while read x; do ...; done behaves very differently to the for loop variant in that the body of the loop runs in a sub-shell and thus cannot affect the outer scope. In many cases that's exactly what you want. Sometimes though, it isn't. Conrad Meyer wrote: > On Tue, Dec 11, 2018 at 2:42 PM Devin Teske wrote: > > In that case, would it be appropriate to say that: > > > > blah | while read x; do ...; done > > > > Is always more efficiently written as: > > > > IFS=$'\n' > > for x in $( blah ); do ...; done > > I don't know. The suggestion came from jilles@, who is much more > familiar with sh(1) than I am. > > My understanding is that it's important that 'set -o noglob' is set, > or else 'blah' lines that include globs may be evaluated against the > filesystem. There is also a caveat if 'blah' is the 'set' command, or > similar, in that IFS' own value itself will be split across multiple > for loop iteration 'x' values ("IFS='", "'"). > > I would hesitate to say "always" given my limited understanding of the > shell, but it might be true. From owner-svn-src-head@freebsd.org Wed Dec 12 02:33:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 285461327EE6; Wed, 12 Dec 2018 02:33:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9371C6D4A1; Wed, 12 Dec 2018 02:33:01 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 894601704; Wed, 12 Dec 2018 02:33:01 +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 wBC2X17D066615; Wed, 12 Dec 2018 02:33:01 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBC2X1pP066614; Wed, 12 Dec 2018 02:33:01 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812120233.wBC2X1pP066614@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 12 Dec 2018 02:33:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341837 - head/sbin/ping X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sbin/ping X-SVN-Commit-Revision: 341837 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9371C6D4A1 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.77 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.77)[-0.770,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 02:33:02 -0000 Author: markj Date: Wed Dec 12 02:33:01 2018 New Revision: 341837 URL: https://svnweb.freebsd.org/changeset/base/341837 Log: Use Capsicum helpers in ping(8). Also use caph_cache_catpages() to ensure that strerror() works when run with kern.trap_enotcap=1. Reviewed by: oshogbo MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18514 Modified: head/sbin/ping/ping.c Modified: head/sbin/ping/ping.c ============================================================================== --- head/sbin/ping/ping.c Tue Dec 11 22:14:37 2018 (r341836) +++ head/sbin/ping/ping.c Wed Dec 12 02:33:01 2018 (r341837) @@ -85,6 +85,7 @@ __FBSDID("$FreeBSD$"); #include #endif /*IPSEC*/ +#include #include #include #include @@ -258,7 +259,6 @@ main(int argc, char *const *argv) policy_in = policy_out = NULL; #endif cap_rights_t rights; - bool cansandbox; /* * Do the stuff that we need root priv's for *first*, and @@ -702,27 +702,20 @@ main(int argc, char *const *argv) ip->ip_dst = to->sin_addr; } - if (options & F_NUMERIC) - cansandbox = true; - else if (capdns != NULL) - cansandbox = CASPER_SUPPORT; - else - cansandbox = false; - /* * Here we enter capability mode. Further down access to global * namespaces (e.g filesystem) is restricted (see capsicum(4)). * We must connect(2) our socket before this point. */ - if (cansandbox && cap_enter() < 0 && errno != ENOSYS) + caph_cache_catpages(); + if (caph_enter() < 0) err(1, "cap_enter"); cap_rights_init(&rights, CAP_RECV, CAP_EVENT, CAP_SETSOCKOPT); - if (cap_rights_limit(srecv, &rights) < 0 && errno != ENOSYS) + if (caph_rights_limit(srecv, &rights) < 0) err(1, "cap_rights_limit srecv"); - cap_rights_init(&rights, CAP_SEND, CAP_SETSOCKOPT); - if (cap_rights_limit(ssend, &rights) < 0 && errno != ENOSYS) + if (caph_rights_limit(ssend, &rights) < 0) err(1, "cap_rights_limit ssend"); /* record route option */ @@ -807,14 +800,14 @@ main(int argc, char *const *argv) sizeof(hold)); /* CAP_SETSOCKOPT removed */ cap_rights_init(&rights, CAP_RECV, CAP_EVENT); - if (cap_rights_limit(srecv, &rights) < 0 && errno != ENOSYS) + if (caph_rights_limit(srecv, &rights) < 0) err(1, "cap_rights_limit srecv setsockopt"); if (uid == 0) (void)setsockopt(ssend, SOL_SOCKET, SO_SNDBUF, (char *)&hold, sizeof(hold)); /* CAP_SETSOCKOPT removed */ cap_rights_init(&rights, CAP_SEND); - if (cap_rights_limit(ssend, &rights) < 0 && errno != ENOSYS) + if (caph_rights_limit(ssend, &rights) < 0) err(1, "cap_rights_limit ssend setsockopt"); if (to->sin_family == AF_INET) { From owner-svn-src-head@freebsd.org Wed Dec 12 04:23:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54ACA132B29E; Wed, 12 Dec 2018 04:23:02 +0000 (UTC) (envelope-from yuripv@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EA51F70D60; Wed, 12 Dec 2018 04:23:01 +0000 (UTC) (envelope-from yuripv@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF6BF2A58; Wed, 12 Dec 2018 04:23:01 +0000 (UTC) (envelope-from yuripv@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBC4N1fZ024489; Wed, 12 Dec 2018 04:23:01 GMT (envelope-from yuripv@FreeBSD.org) Received: (from yuripv@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBC4N10E024486; Wed, 12 Dec 2018 04:23:01 GMT (envelope-from yuripv@FreeBSD.org) Message-Id: <201812120423.wBC4N10E024486@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: yuripv set sender to yuripv@FreeBSD.org using -f From: Yuri Pankov Date: Wed, 12 Dec 2018 04:23:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341838 - in head/lib/libc: regex tests/regex X-SVN-Group: head X-SVN-Commit-Author: yuripv X-SVN-Commit-Paths: in head/lib/libc: regex tests/regex X-SVN-Commit-Revision: 341838 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: EA51F70D60 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.82 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.82)[-0.819,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 04:23:02 -0000 Author: yuripv Date: Wed Dec 12 04:23:00 2018 New Revision: 341838 URL: https://svnweb.freebsd.org/changeset/base/341838 Log: regcomp: reduce size of bitmap for multibyte locales This fixes the obscure endless loop seen with case-insensitive patterns containing characters in 128-255 range; originally found running GNU grep test suite. Our regex implementation being kludgy translates the characters in case-insensitive pattern to bracket expression containing both cases for the character and doesn't correctly handle the case when original character is in bitmap and the other case is not, falling into the endless loop going through in p_bracket(), ordinary(), and bothcases(). Reducing the bitmap to 0-127 range for multibyte locales solves this as none of these characters have other case mapping outside of bitmap. We are also safe in the case when the original character outside of bitmap has other case mapping in the bitmap (there are several of those in our current ctype maps having unidirectional mapping into bitmap). Reviewed by: bapt, kevans, pfg Differential revision: https://reviews.freebsd.org/D18302 Modified: head/lib/libc/regex/regcomp.c head/lib/libc/regex/regex2.h head/lib/libc/regex/utils.h head/lib/libc/tests/regex/multibyte.sh Modified: head/lib/libc/regex/regcomp.c ============================================================================== --- head/lib/libc/regex/regcomp.c Wed Dec 12 02:33:01 2018 (r341837) +++ head/lib/libc/regex/regcomp.c Wed Dec 12 04:23:00 2018 (r341838) @@ -1841,21 +1841,29 @@ computejumps(struct parse *p, struct re_guts *g) { int ch; int mindex; + int cmin, cmax; + /* + * For UTF-8 we process only the first 128 characters corresponding to + * the POSIX locale. + */ + cmin = MB_CUR_MAX == 1 ? CHAR_MIN : 0; + cmax = MB_CUR_MAX == 1 ? CHAR_MAX : 127; + /* Avoid making errors worse */ if (p->error != 0) return; - g->charjump = (int*) malloc((NC + 1) * sizeof(int)); + g->charjump = (int *)malloc((cmax - cmin + 1) * sizeof(int)); if (g->charjump == NULL) /* Not a fatal error */ return; /* Adjust for signed chars, if necessary */ - g->charjump = &g->charjump[-(CHAR_MIN)]; + g->charjump = &g->charjump[-(cmin)]; /* If the character does not exist in the pattern, the jump * is equal to the number of characters in the pattern. */ - for (ch = CHAR_MIN; ch < (CHAR_MAX + 1); ch++) + for (ch = cmin; ch < cmax + 1; ch++) g->charjump[ch] = g->mlen; /* If the character does exist, compute the jump that would Modified: head/lib/libc/regex/regex2.h ============================================================================== --- head/lib/libc/regex/regex2.h Wed Dec 12 02:33:01 2018 (r341837) +++ head/lib/libc/regex/regex2.h Wed Dec 12 04:23:00 2018 (r341838) @@ -113,7 +113,7 @@ typedef struct { wint_t max; } crange; typedef struct { - unsigned char bmp[NC / 8]; + unsigned char bmp[NC_MAX / 8]; wctype_t *types; unsigned int ntypes; wint_t *wides; @@ -133,9 +133,14 @@ CHIN1(cset *cs, wint_t ch) if (ch < NC) return (((cs->bmp[ch >> 3] & (1 << (ch & 7))) != 0) ^ cs->invert); - for (i = 0; i < cs->nwides; i++) - if (ch == cs->wides[i]) + for (i = 0; i < cs->nwides; i++) { + if (cs->icase) { + if (ch == towlower(cs->wides[i]) || + ch == towupper(cs->wides[i])) + return (!cs->invert); + } else if (ch == cs->wides[i]) return (!cs->invert); + } for (i = 0; i < cs->nranges; i++) if (cs->ranges[i].min <= ch && ch <= cs->ranges[i].max) return (!cs->invert); Modified: head/lib/libc/regex/utils.h ============================================================================== --- head/lib/libc/regex/utils.h Wed Dec 12 02:33:01 2018 (r341837) +++ head/lib/libc/regex/utils.h Wed Dec 12 04:23:00 2018 (r341838) @@ -39,7 +39,9 @@ /* utility definitions */ #define DUPMAX _POSIX2_RE_DUP_MAX /* xxx is this right? */ #define INFINITY (DUPMAX + 1) -#define NC (CHAR_MAX - CHAR_MIN + 1) + +#define NC_MAX (CHAR_MAX - CHAR_MIN + 1) +#define NC ((MB_CUR_MAX) == 1 ? (NC_MAX) : (128)) typedef unsigned char uch; /* switch off assertions (if not already off) if no REDEBUG */ Modified: head/lib/libc/tests/regex/multibyte.sh ============================================================================== --- head/lib/libc/tests/regex/multibyte.sh Wed Dec 12 02:33:01 2018 (r341837) +++ head/lib/libc/tests/regex/multibyte.sh Wed Dec 12 04:23:00 2018 (r341838) @@ -1,11 +1,11 @@ # $FreeBSD$ -atf_test_case multibyte -multibyte_head() +atf_test_case bmpat +bmpat_head() { atf_set "descr" "Check matching multibyte characters (PR153502)" } -multibyte_body() +bmpat_body() { export LC_CTYPE="C.UTF-8" @@ -29,7 +29,25 @@ multibyte_body() sed -ne '/.a./p' } +atf_test_case icase +icase_head() +{ + atf_set "descr" "Check case-insensitive matching for characters 128-255" +} +icase_body() +{ + export LC_CTYPE="C.UTF-8" + + a=$(printf '\302\265\n') # U+00B5 + b=$(printf '\316\234\n') # U+039C + c=$(printf '\316\274\n') # U+03BC + + echo $b | atf_check -o "inline:$b\n" sed -ne "/$a/Ip" + echo $c | atf_check -o "inline:$c\n" sed -ne "/$a/Ip" +} + atf_init_test_cases() { - atf_add_test_case multibyte + atf_add_test_case bmpat + atf_add_test_case icase } From owner-svn-src-head@freebsd.org Wed Dec 12 05:09:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 973E4132C512; Wed, 12 Dec 2018 05:09:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3A10C71EED; Wed, 12 Dec 2018 05:09:50 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id F205C2107; Wed, 12 Dec 2018 05:09:49 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812090645.wB96jnso066329@repo.freebsd.org> From: Jung-uk Kim Openpgp: preference=signencrypt Autocrypt: addr=jkim@FreeBSD.org; prefer-encrypt=mutual; keydata= xsBNBFJBztUBCAChqNyGqmFuNo0U7MBzsD+q/G6Cv0l7LGVrOAsgh34M8wIWhD+tztDWMVfn AhxNDd0ceCj2bYOe67sTQxAScEcbt2FfvPOLp9MEXb9qohZj172Gwkk7dnhOhZZKhVGVZKM4 NcsuBDUzgf4f3Vdzj4wg6WlqplnTZo8lPE4hZWvZHoFIyunPTJWenybeV1xnxK7JkUdSvQR0 fA59RfTTECMwTrSEfYGUnxIDBraxJ7Ecs/0hGQ7sljIj8WBvlRDU5fU1xfF35aw56T8POQRq F4E6RVJW3YGuTpSwgtGZOTfygcLRhAiq3dFC3JNLaTVTpM8PjOinJyt9AU6RoITGOKwDABEB AAHNHkp1bmctdWsgS2ltIDxqa2ltQEZyZWVCU0Qub3JnPsLAfQQTAQoAJwUCUkHO1QIbAwUJ E0/POwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRB8n5Ym/NvxRqyzB/wL7QtsIpeGfGIA ZPMtgXMucM3NWzomyQMln2j2efUkDKthzh9jBxgF53TjOr7imwIt0PT2k1bqctPrq5IRqnu9 mGroqaCLE3LG2/E3jEaao4k9PO6efwlioyivUo5NrqIQOQ4k3EAXw7d2y0Dk1VpTgdMrnUAB hj7lGlLqS4ydcrf24DdbCRGdEQwqd9DBeBgbWynxAJMgbZBhYVEyIHuQKkJ8qY0ibIPXXuF0 KYDeH0qUHtWV2K3srNyPtymUkBQD84Pl1GWRYx05XdUHDmnX0JV3lg0BfYJZgZv0ehPQrMfY Fd9abTkf9FHQYz1JtsC8wUuRgqElRd6+YAGf8Tt9zsBNBFJBztUBCADLtSrP44El2VoJmH14 OFrlOgxzZnbn+Y/Gf1k12mJBiR+A+pBeRLD50p7AiTrjHRxO3cHcl9Dh0uf1VSbXgp8Or0ye iP/86fZPd4k5HXNmDTLL0HecPE08SCqGZ0W8vllQrokB1QxxRUB+fFMPJyMCjDAZ7P9fFTOS dTw1bJSTtOD8Sx8MpZUa9ti06bXFlVYDlaqSdgk181SSx+ZbSKkQR8CIMARlHwiLsa3Z9q9O EJr20HPyxe0AlTvwvFndH61hg7ds63eRvglwRnNON28VXO/lvKXq7Br/CiiyhFdKfINIx2Z5 htYq22tgGTW7mBURbIKoECFBTX9Lv6BXz6w9ABEBAAHCwGUEGAEKAA8FAlJBztUCGwwFCRNP zzsACgkQfJ+WJvzb8UZcJQf+IsTCxUEqY7W/pT84sMg5/QD3s6ufTRncvq14fEOxCNq1Rf4Q 9P+tOFa8GZfKDGB2BFGIrW7uT5mlmKdK1vO6ZIA930y5kUsnCmBUEBJkE2ciSQk01aB/1o62 Q3Gk/F6BwtNY9OXiqF7AcAo+K/BMIaqb26QKeh+IIgK1NN9dQiq3ByTbl4zpGZa6MmsnnRTu mzGKt2nkz7vBzH6+hZp1OzGZikgjjhYWVFoJo1dvf/rv4obs0ZJEqFPQs/1Qa1dbkKBv6odB XJpPH0ssOluTY24d1XxTiKTwmWvHeQkOKRAIfD7VTtF4TesoZYkf7hsh3e3VwXhptSLFnEOi WwYofg== Message-ID: Date: Wed, 12 Dec 2018 00:09:37 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <201812090645.wB96jnso066329@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="1WzVlQChcwPiBmKooCiYuMNrbS28KVujs" X-Rspamd-Queue-Id: 3A10C71EED X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.34 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.34)[-0.335,0]; ASN(0.00)[asn:11403, ipnet:96.47.64.0/20, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 05:09:50 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --1WzVlQChcwPiBmKooCiYuMNrbS28KVujs Content-Type: multipart/mixed; boundary="mK5ijTqRdq36SSbJEKLOKtLDhMyjY2IRB"; protected-headers="v1" From: Jung-uk Kim To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... References: <201812090645.wB96jnso066329@repo.freebsd.org> In-Reply-To: <201812090645.wB96jnso066329@repo.freebsd.org> --mK5ijTqRdq36SSbJEKLOKtLDhMyjY2IRB Content-Type: multipart/mixed; boundary="------------875BC694AF1AFD327ADF2704" Content-Language: en-US This is a multi-part message in MIME format. --------------875BC694AF1AFD327ADF2704 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 18. 12. 9., Cy Schubert wrote: > Author: cy > Date: Sun Dec 9 06:45:49 2018 > New Revision: 341759 > URL: https://svnweb.freebsd.org/changeset/base/341759 >=20 > Log: > MFV r341618: > =20 > Update wpa 2.6 --> 2.7. =2E.. This broke my network configuration and I found the following messages from /dev/log/message. =2E.. bge0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=3D0 method=3D25 =2E.. bge0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected =2E.. SSL: SSL3 alert: write (local SSL3 detected an error):fatal:interna= l error =2E.. OpenSSL: openssl_handshake - SSL_connect error:141A90B5:SSL routines:ssl_cipher_list_to_bytes:no ciphers available =2E.. bge0: CTRL-EVENT-EAP-FAILURE EAP authentication failed I tracked it down and found default ciphers were not set because usr.sbin/wpa/Makefile.inc added an empty string, i.e., -DTLS_DEFAULT_CIPHERS=3D\"\". With the attached patch, I got my connection back. Jung-uk Kim --------------875BC694AF1AFD327ADF2704 Content-Type: text/x-patch; name="wpa.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="wpa.diff" Index: usr.sbin/wpa/Makefile.inc =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- usr.sbin/wpa/Makefile.inc (revision 341826) +++ usr.sbin/wpa/Makefile.inc (working copy) @@ -32,6 +32,6 @@ CFLAGS+=3D-I${WPA_DISTDIR}/src/wps CFLAGS+=3D -DCONFIG_CTRL_IFACE CFLAGS+=3D -DCONFIG_CTRL_IFACE_UNIX CFLAGS+=3D -DNEED_AP_MLME -CFLAGS+=3D -DTLS_DEFAULT_CIPHERS=3D\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" +CFLAGS+=3D -DTLS_DEFAULT_CIPHERS=3D\"DEFAULT:!EXP:!LOW\" =20 .include --------------875BC694AF1AFD327ADF2704-- --mK5ijTqRdq36SSbJEKLOKtLDhMyjY2IRB-- --1WzVlQChcwPiBmKooCiYuMNrbS28KVujs Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlwQmB0ACgkQfJ+WJvzb 8UZPCQf/fGCa42t3K+WY98wae6F1bhEVVnSqV7/VgsvT35JjiOYD5HsTHRYIauXq Bwi3LSLT7fOgJVGP4qSpNNUuHYY2u+wEYMkDuZhY9MQWg7dCx0B7L/or6ChECMQ0 qybutZ8YcHSEVavpmg8V8n1nT09ja4pe7/GDm9+tsjHBwbl1myOL5kqkALXS9sZl FwCsUKsfOGnishvFydn6Yanlum23NZQ3a+cr4XkJGjtxR8ouI6cgLS5IlgdbcUb2 mzLNkK/MHtxVvQPDw26Y6H2ca0UOy++D0o4nJb7wnj/v1Fan1XczfhqerDA/+Pnr S5IBKd+F0jqi8tV+DlCj3b4hJqfi4A== =3nnk -----END PGP SIGNATURE----- --1WzVlQChcwPiBmKooCiYuMNrbS28KVujs-- From owner-svn-src-head@freebsd.org Wed Dec 12 05:11:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B55DE132C5D2; Wed, 12 Dec 2018 05:11:05 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 542AC720B8; Wed, 12 Dec 2018 05:11:05 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 2D8812108; Wed, 12 Dec 2018 05:11:05 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812090645.wB96jnso066329@repo.freebsd.org> From: Jung-uk Kim Openpgp: preference=signencrypt Autocrypt: addr=jkim@FreeBSD.org; prefer-encrypt=mutual; keydata= xsBNBFJBztUBCAChqNyGqmFuNo0U7MBzsD+q/G6Cv0l7LGVrOAsgh34M8wIWhD+tztDWMVfn AhxNDd0ceCj2bYOe67sTQxAScEcbt2FfvPOLp9MEXb9qohZj172Gwkk7dnhOhZZKhVGVZKM4 NcsuBDUzgf4f3Vdzj4wg6WlqplnTZo8lPE4hZWvZHoFIyunPTJWenybeV1xnxK7JkUdSvQR0 fA59RfTTECMwTrSEfYGUnxIDBraxJ7Ecs/0hGQ7sljIj8WBvlRDU5fU1xfF35aw56T8POQRq F4E6RVJW3YGuTpSwgtGZOTfygcLRhAiq3dFC3JNLaTVTpM8PjOinJyt9AU6RoITGOKwDABEB AAHNHkp1bmctdWsgS2ltIDxqa2ltQEZyZWVCU0Qub3JnPsLAfQQTAQoAJwUCUkHO1QIbAwUJ E0/POwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRB8n5Ym/NvxRqyzB/wL7QtsIpeGfGIA ZPMtgXMucM3NWzomyQMln2j2efUkDKthzh9jBxgF53TjOr7imwIt0PT2k1bqctPrq5IRqnu9 mGroqaCLE3LG2/E3jEaao4k9PO6efwlioyivUo5NrqIQOQ4k3EAXw7d2y0Dk1VpTgdMrnUAB hj7lGlLqS4ydcrf24DdbCRGdEQwqd9DBeBgbWynxAJMgbZBhYVEyIHuQKkJ8qY0ibIPXXuF0 KYDeH0qUHtWV2K3srNyPtymUkBQD84Pl1GWRYx05XdUHDmnX0JV3lg0BfYJZgZv0ehPQrMfY Fd9abTkf9FHQYz1JtsC8wUuRgqElRd6+YAGf8Tt9zsBNBFJBztUBCADLtSrP44El2VoJmH14 OFrlOgxzZnbn+Y/Gf1k12mJBiR+A+pBeRLD50p7AiTrjHRxO3cHcl9Dh0uf1VSbXgp8Or0ye iP/86fZPd4k5HXNmDTLL0HecPE08SCqGZ0W8vllQrokB1QxxRUB+fFMPJyMCjDAZ7P9fFTOS dTw1bJSTtOD8Sx8MpZUa9ti06bXFlVYDlaqSdgk181SSx+ZbSKkQR8CIMARlHwiLsa3Z9q9O EJr20HPyxe0AlTvwvFndH61hg7ds63eRvglwRnNON28VXO/lvKXq7Br/CiiyhFdKfINIx2Z5 htYq22tgGTW7mBURbIKoECFBTX9Lv6BXz6w9ABEBAAHCwGUEGAEKAA8FAlJBztUCGwwFCRNP zzsACgkQfJ+WJvzb8UZcJQf+IsTCxUEqY7W/pT84sMg5/QD3s6ufTRncvq14fEOxCNq1Rf4Q 9P+tOFa8GZfKDGB2BFGIrW7uT5mlmKdK1vO6ZIA930y5kUsnCmBUEBJkE2ciSQk01aB/1o62 Q3Gk/F6BwtNY9OXiqF7AcAo+K/BMIaqb26QKeh+IIgK1NN9dQiq3ByTbl4zpGZa6MmsnnRTu mzGKt2nkz7vBzH6+hZp1OzGZikgjjhYWVFoJo1dvf/rv4obs0ZJEqFPQs/1Qa1dbkKBv6odB XJpPH0ssOluTY24d1XxTiKTwmWvHeQkOKRAIfD7VTtF4TesoZYkf7hsh3e3VwXhptSLFnEOi WwYofg== Message-ID: <18c04666-81ac-8610-3373-fac54099f0a0@FreeBSD.org> Date: Wed, 12 Dec 2018 00:11:03 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="lsj0ptc2ERzT1TWqrUnhcJ5Dre2luyvj4" X-Rspamd-Queue-Id: 542AC720B8 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.89 / 15.00]; NEURAL_HAM_SHORT(-0.89)[-0.894,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 05:11:06 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --lsj0ptc2ERzT1TWqrUnhcJ5Dre2luyvj4 Content-Type: multipart/mixed; boundary="RMFooCOwR8dcSwbC7v9JK1JtTqVdrYEyc"; protected-headers="v1" From: Jung-uk Kim To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <18c04666-81ac-8610-3373-fac54099f0a0@FreeBSD.org> Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... References: <201812090645.wB96jnso066329@repo.freebsd.org> In-Reply-To: --RMFooCOwR8dcSwbC7v9JK1JtTqVdrYEyc Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 18. 12. 12., Jung-uk Kim wrote: > On 18. 12. 9., Cy Schubert wrote: >> Author: cy >> Date: Sun Dec 9 06:45:49 2018 >> New Revision: 341759 >> URL: https://svnweb.freebsd.org/changeset/base/341759 >> >> Log: >> MFV r341618: >> =20 >> Update wpa 2.6 --> 2.7. >=20 > ... >=20 > This broke my network configuration and I found the following messages > from /dev/log/message. =2E.. I meant /var/log/message, of course. :-( Jung-uk Kim > ... bge0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=3D0 method=3D25 > ... bge0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected > ... SSL: SSL3 alert: write (local SSL3 detected an error):fatal:interna= l > error > ... OpenSSL: openssl_handshake - SSL_connect error:141A90B5:SSL > routines:ssl_cipher_list_to_bytes:no ciphers available > ... bge0: CTRL-EVENT-EAP-FAILURE EAP authentication failed >=20 > I tracked it down and found default ciphers were not set because > usr.sbin/wpa/Makefile.inc added an empty string, i.e., > -DTLS_DEFAULT_CIPHERS=3D\"\". >=20 > With the attached patch, I got my connection back. >=20 > Jung-uk Kim >=20 --RMFooCOwR8dcSwbC7v9JK1JtTqVdrYEyc-- --lsj0ptc2ERzT1TWqrUnhcJ5Dre2luyvj4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlwQmGcACgkQfJ+WJvzb 8UaC5Af+Igll/CkDktavLJqthBQR4VEXXYtF40tzxNheclfVet9YaOTaVKkJXGrt IuFS9S0zGDnqN86GgOIL+pXFU11KHNj2zrAGXP0zdJOoJ02dzbMtvvdcb5ZDKe6J fH/iQo/5J6oRLidrD0JW4v/LIQUnSsJ2OrNJlNjbfh+iQomv942JnxWCLZAbab5R WO0tHOhi9a0Tm3kluwNBUoumwm+GpsGK1SyKJpF99zi3L1FIDfAttLUdbC2k4zuA HQxec7tu7mgd+kI/WttRSCF9PrvTowQwa5D4or1B28K7Uctq98kmE/hEBOAnIVt6 fy7a11tNx1ZjiCeCvEzVpVjjgRCXnQ== =M4Ig -----END PGP SIGNATURE----- --lsj0ptc2ERzT1TWqrUnhcJ5Dre2luyvj4-- From owner-svn-src-head@freebsd.org Wed Dec 12 05:18:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B430D132C99E; Wed, 12 Dec 2018 05:18:54 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5590772518; Wed, 12 Dec 2018 05:18:54 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 44A5D32E9; Wed, 12 Dec 2018 05:18:54 +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 wBC5IslX050511; Wed, 12 Dec 2018 05:18:54 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBC5IstG050510; Wed, 12 Dec 2018 05:18:54 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201812120518.wBC5IstG050510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Wed, 12 Dec 2018 05:18:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341839 - head/usr.sbin/wpa X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/usr.sbin/wpa X-SVN-Commit-Revision: 341839 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5590772518 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.81 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 05:18:54 -0000 Author: cy Date: Wed Dec 12 05:18:53 2018 New Revision: 341839 URL: https://svnweb.freebsd.org/changeset/base/341839 Log: Set default ciphers. Submitted by: jkim@ Modified: head/usr.sbin/wpa/Makefile.inc Modified: head/usr.sbin/wpa/Makefile.inc ============================================================================== --- head/usr.sbin/wpa/Makefile.inc Wed Dec 12 04:23:00 2018 (r341838) +++ head/usr.sbin/wpa/Makefile.inc Wed Dec 12 05:18:53 2018 (r341839) @@ -32,6 +32,6 @@ CFLAGS+=-I${WPA_DISTDIR}/src/wps CFLAGS+= -DCONFIG_CTRL_IFACE CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX CFLAGS+= -DNEED_AP_MLME -CFLAGS+= -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" +CFLAGS+= -DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\" .include From owner-svn-src-head@freebsd.org Wed Dec 12 05:19:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98604132CA0E; Wed, 12 Dec 2018 05:19:52 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-no.shaw.ca (smtp-out-no.shaw.ca [64.59.134.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 6704A7266E; Wed, 12 Dec 2018 05:19:51 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id WwvsgrZZOjQc4Wwvugbun0; Tue, 11 Dec 2018 22:19:43 -0700 X-Authority-Analysis: v=2.3 cv=bOrH382Z c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=kj9zAlcOel0A:10 a=2ur7OfE09M0A:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=fRmYTVWRwOMxQfEAvpAA:9 a=3eARA4lSvbWh3vOy:21 a=xjCUlXF-SKpJWqBw:21 a=CjuIK1q_8ugA:10 a=c-ay3Q83pGQA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id CFBFA1BE3; Tue, 11 Dec 2018 21:19:39 -0800 (PST) Received: from slippy.cwsent.com (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id wBC5JdNA013207; Tue, 11 Dec 2018 21:19:39 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Received: from slippy (cy@localhost) by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id wBC5Jdd4013204; Tue, 11 Dec 2018 21:19:39 -0800 (PST) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201812120519.wBC5Jdd4013204@slippy.cwsent.com> X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7.1 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Jung-uk Kim cc: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... In-Reply-To: Message from Jung-uk Kim of "Wed, 12 Dec 2018 00:09:37 -0500." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 11 Dec 2018 21:19:39 -0800 X-CMAE-Envelope: MS4wfOmbAkKDM/gKMYjGH+TqaJ73AMIusn6F3aholjUZYyStcd2R+vZPZmPUrnSxLiKbsumQS5t14qgngcvQntPRZAiY9mxOz4Vx8A8qElexIy0QI1wCXz4I QNFflDcIYTma1DMUXodqfEu6RCv/GG6eZ2wGv1xu3c9b9jnzqPmi7YgnZoC582/Dc1QLL7QKYRI2LS+jfKTn0Lh0nVRlm0VeYS61NKBAsKxgRoj09MyX/aD4 SGNJA63QW65z76jnql8uYX54Pq8RLD+Unpko+uyV+15bfXnn4HkSpLxHehwjatP82svdvDk5uFm1paMbV8kI8Q== X-Rspamd-Queue-Id: 6704A7266E X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.44 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_COUNT_FIVE(0.00)[5]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; LONG_SUBJ(1.52)[203]; RCVD_TLS_LAST(0.00)[]; MX_GOOD(-0.01)[cached: spqr.komquats.com]; REPLYTO_EQ_FROM(0.00)[]; NEURAL_HAM_SHORT(-0.95)[-0.949,0]; R_SPF_NA(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[17.125.67.70.zen.spamhaus.org : 127.0.0.11]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:6327, ipnet:64.59.128.0/20, country:CA]; MIME_TRACE(0.00)[0:+]; IP_SCORE(-2.31)[ip: (-6.34), ipnet: 64.59.128.0/20(-2.84), asn: 6327(-2.27), country: CA(-0.09)]; RCVD_IN_DNSWL_LOW(-0.10)[12.134.59.64.list.dnswl.org : 127.0.5.1] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 05:19:52 -0000 In message , Jung-uk Kim writ es: > This is an OpenPGP/MIME signed message (RFC 4880 and 3156) > --1WzVlQChcwPiBmKooCiYuMNrbS28KVujs > Content-Type: multipart/mixed; boundary="mK5ijTqRdq36SSbJEKLOKtLDhMyjY2IRB"; > protected-headers="v1" > From: Jung-uk Kim > To: Cy Schubert , src-committers@freebsd.org, > svn-src-all@freebsd.org, svn-src-head@freebsd.org > Message-ID: > Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd > contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common > contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... > References: <201812090645.wB96jnso066329@repo.freebsd.org> > In-Reply-To: <201812090645.wB96jnso066329@repo.freebsd.org> > > --mK5ijTqRdq36SSbJEKLOKtLDhMyjY2IRB > Content-Type: multipart/mixed; > boundary="------------875BC694AF1AFD327ADF2704" > Content-Language: en-US > > This is a multi-part message in MIME format. > --------------875BC694AF1AFD327ADF2704 > Content-Type: text/plain; charset=utf-8 > Content-Transfer-Encoding: quoted-printable > > On 18. 12. 9., Cy Schubert wrote: > > Author: cy > > Date: Sun Dec 9 06:45:49 2018 > > New Revision: 341759 > > URL: https://svnweb.freebsd.org/changeset/base/341759 > >=20 > > Log: > > MFV r341618: > > =20 > > Update wpa 2.6 --> 2.7. > > =2E.. > > This broke my network configuration and I found the following messages > from /dev/log/message. > > =2E.. bge0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=3D0 method=3D25 > =2E.. bge0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected > =2E.. SSL: SSL3 alert: write (local SSL3 detected an error):fatal:interna= > l > error > =2E.. OpenSSL: openssl_handshake - SSL_connect error:141A90B5:SSL > routines:ssl_cipher_list_to_bytes:no ciphers available > =2E.. bge0: CTRL-EVENT-EAP-FAILURE EAP authentication failed > > I tracked it down and found default ciphers were not set because > usr.sbin/wpa/Makefile.inc added an empty string, i.e., > -DTLS_DEFAULT_CIPHERS=3D\"\". > > With the attached patch, I got my connection back. > > Jung-uk Kim Thanks for that jkim@. It's in r341839 now. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few. From owner-svn-src-head@freebsd.org Wed Dec 12 05:22:07 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3363132CC5F; Wed, 12 Dec 2018 05:22:07 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 78D3772A0A; Wed, 12 Dec 2018 05:22:07 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 6317D2339; Wed, 12 Dec 2018 05:22:07 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r341759 - in head: contrib/wpa contrib/wpa/hostapd contrib/wpa/hs20/client contrib/wpa/src/ap contrib/wpa/src/common contrib/wpa/src/crypto contrib/wpa/src/drivers contrib/wpa/src/eap_c... From: Jung-uk Kim To: Cy Schubert , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812090645.wB96jnso066329@repo.freebsd.org> <18c04666-81ac-8610-3373-fac54099f0a0@FreeBSD.org> Message-ID: Date: Wed, 12 Dec 2018 00:22:06 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <18c04666-81ac-8610-3373-fac54099f0a0@FreeBSD.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 78D3772A0A X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-4.87 / 15.00]; NEURAL_HAM_SHORT(-0.87)[-0.865,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 05:22:08 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 18. 12. 12., Jung-uk Kim wrote: > On 18. 12. 12., Jung-uk Kim wrote: >> On 18. 12. 9., Cy Schubert wrote: >>> Author: cy Date: Sun Dec 9 06:45:49 2018 New Revision: 341759 >>> URL: https://svnweb.freebsd.org/changeset/base/341759 >>> >>> Log: MFV r341618: >>> >>> Update wpa 2.6 --> 2.7. >> >> ... >> >> This broke my network configuration and I found the following >> messages from /dev/log/message. > > ... > > I meant /var/log/message, of course. :-( ... Doh! /var/log/messages Sorry for typos. I guess I need some sleep... Jung-uk Kim -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlwQmvEACgkQfJ+WJvzb 8UaOQgf/YDXVqV7m7EZKISsL0E/2DKsmzoe9vSjZJE5WE2fNEmPwpbt0QU/MexGY F8HrClLDJhQqsvbQB3fjLPDB+v+Qg64eIJ1YwGHPu7qvbRGvsKCYWYT79Eiejh0f 68tAkLj5GKCBb53awug+Jn79sBzfeUC7BPLRPbkfoF4vp7/gWBsEpU8zbIMgPjuk 5r6PM4exKN1mYM9950WSDlkpcJbUku6B3RLneRZKMDJYi68B/POb88KEGtaEkMfQ 2Kv7vi+IBLlceTmUYa8Mm2A5Rtf6g3UuG7hg+YAQZeIR/SPxraVIosUONrz5NIHd e8Baav1oi7sFPnY2VwdtnuOmX18saA== =Am+x -----END PGP SIGNATURE----- From owner-svn-src-head@freebsd.org Wed Dec 12 05:48:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9C12A132EB39; Wed, 12 Dec 2018 05:48:28 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3F3B47363D; Wed, 12 Dec 2018 05:48:28 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E6E439E6; Wed, 12 Dec 2018 05:48:28 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBC5mRc7066448; Wed, 12 Dec 2018 05:48:27 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBC5mRZ8066447; Wed, 12 Dec 2018 05:48:27 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201812120548.wBC5mRZ8066447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Wed, 12 Dec 2018 05:48:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341840 - head/sys/geom/mirror X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/geom/mirror X-SVN-Commit-Revision: 341840 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3F3B47363D X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.66 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.66)[-0.660,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 05:48:28 -0000 Author: cem Date: Wed Dec 12 05:48:27 2018 New Revision: 341840 URL: https://svnweb.freebsd.org/changeset/base/341840 Log: gmirror: Fix a bug introduced in r341674 r341674 inadvertently introduced a bug where newer mirror components being tasted would clear the high sc_flags that are not controlled by component metadata, such as G_MIRROR_DEVICE_FLAG_TASTING. This could plausibly expose a small window of time during STARTING where device destruction might race with mirror component addition, probably resulting in a crash. Reviewed by: markj X-MFC-With: r341674 Differential Revision: https://reviews.freebsd.org/D18521 Modified: head/sys/geom/mirror/g_mirror.c Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Wed Dec 12 05:18:53 2018 (r341839) +++ head/sys/geom/mirror/g_mirror.c Wed Dec 12 05:48:27 2018 (r341840) @@ -3061,6 +3061,8 @@ g_mirror_reinit_from_metadata(struct g_mirror_softc *s const struct g_mirror_metadata *md) { + sx_assert(&sc->sc_lock, SX_XLOCKED); + sc->sc_genid = md->md_genid; sc->sc_syncid = md->md_syncid; @@ -3068,7 +3070,8 @@ g_mirror_reinit_from_metadata(struct g_mirror_softc *s sc->sc_balance = md->md_balance; sc->sc_mediasize = md->md_mediasize; sc->sc_ndisks = md->md_all; - sc->sc_flags = md->md_mflags; + sc->sc_flags &= ~G_MIRROR_DEVICE_FLAG_MASK; + sc->sc_flags |= (md->md_mflags & G_MIRROR_DEVICE_FLAG_MASK); } struct g_geom * From owner-svn-src-head@freebsd.org Wed Dec 12 09:51:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0CD3E1335923; Wed, 12 Dec 2018 09:51:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A7439831B2; Wed, 12 Dec 2018 09:51: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C4036366; Wed, 12 Dec 2018 09:51:10 +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 wBC9pAIM092590; Wed, 12 Dec 2018 09:51:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBC9pAqx092589; Wed, 12 Dec 2018 09:51:10 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201812120951.wBC9pAqx092589@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Wed, 12 Dec 2018 09:51:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341844 - head/contrib/tcpdump X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/contrib/tcpdump X-SVN-Commit-Revision: 341844 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A7439831B2 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.67 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.67)[-0.669,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 09:51:11 -0000 Author: hselasky Date: Wed Dec 12 09:51:10 2018 New Revision: 341844 URL: https://svnweb.freebsd.org/changeset/base/341844 Log: Don't register IOCTLs with capsicum when there is no valid file descriptor. This fixes tcpdump when using mlx5_X devices. Differential Revision: https://reviews.freebsd.org/D18499 Reviewed by: kib@, slavash@, oshogbo@ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/contrib/tcpdump/tcpdump.c Modified: head/contrib/tcpdump/tcpdump.c ============================================================================== --- head/contrib/tcpdump/tcpdump.c Wed Dec 12 09:03:10 2018 (r341843) +++ head/contrib/tcpdump/tcpdump.c Wed Dec 12 09:51:10 2018 (r341844) @@ -1915,7 +1915,7 @@ main(int argc, char **argv) if (pcap_setfilter(pd, &fcode) < 0) error("%s", pcap_geterr(pd)); #ifdef HAVE_CAPSICUM - if (RFileName == NULL && VFileName == NULL) { + if (RFileName == NULL && VFileName == NULL && pcap_fileno(pd) != -1) { static const unsigned long cmds[] = { BIOCGSTATS, BIOCROTZBUF }; /* From owner-svn-src-head@freebsd.org Wed Dec 12 13:43:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 739F2130FC97; Wed, 12 Dec 2018 13:43:56 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1A5D695B5A; Wed, 12 Dec 2018 13:43:56 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 10D3A8C31; Wed, 12 Dec 2018 13:43:56 +0000 (UTC) (envelope-from dab@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCDhtqo029789; Wed, 12 Dec 2018 13:43:55 GMT (envelope-from dab@FreeBSD.org) Received: (from dab@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCDht3c029786; Wed, 12 Dec 2018 13:43:55 GMT (envelope-from dab@FreeBSD.org) Message-Id: <201812121343.wBCDht3c029786@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dab set sender to dab@FreeBSD.org using -f From: David Bright Date: Wed, 12 Dec 2018 13:43:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341988 - head/sys/dev/asmc X-SVN-Group: head X-SVN-Commit-Author: dab X-SVN-Commit-Paths: head/sys/dev/asmc X-SVN-Commit-Revision: 341988 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1A5D695B5A X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.62 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.62)[-0.622,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 13:43:56 -0000 Author: dab Date: Wed Dec 12 13:43:55 2018 New Revision: 341988 URL: https://svnweb.freebsd.org/changeset/base/341988 Log: asmc: Add Support for Macbook Pro 8,1 PR: 217505 Submitted by: John O. Brickley , updated by Maciej Pasternacki Reported by: John O. Brickley MFC after: 1 week Modified: head/sys/dev/asmc/asmc.c head/sys/dev/asmc/asmcvar.h Modified: head/sys/dev/asmc/asmc.c ============================================================================== --- head/sys/dev/asmc/asmc.c Wed Dec 12 13:17:51 2018 (r341987) +++ head/sys/dev/asmc/asmc.c Wed Dec 12 13:43:55 2018 (r341988) @@ -219,9 +219,15 @@ struct asmc_model asmc_models[] = { }, { + "MacBookPro8,1", "Apple SMC MacBook Pro (early 2011, 13-inch)", + ASMC_SMS_FUNCS_DISABLED, ASMC_FAN_FUNCS2, ASMC_LIGHT_FUNCS, + ASMC_MBP81_TEMPS, ASMC_MBP81_TEMPNAMES, ASMC_MBP81_TEMPDESCS + }, + + { "MacBookPro8,2", "Apple SMC MacBook Pro (early 2011)", ASMC_SMS_FUNCS, ASMC_FAN_FUNCS, ASMC_LIGHT_FUNCS, - ASMC_MBP8_TEMPS, ASMC_MBP8_TEMPNAMES, ASMC_MBP8_TEMPDESCS + ASMC_MBP82_TEMPS, ASMC_MBP82_TEMPNAMES, ASMC_MBP82_TEMPDESCS }, { Modified: head/sys/dev/asmc/asmcvar.h ============================================================================== --- head/sys/dev/asmc/asmcvar.h Wed Dec 12 13:17:51 2018 (r341987) +++ head/sys/dev/asmc/asmcvar.h Wed Dec 12 13:43:55 2018 (r341988) @@ -218,21 +218,39 @@ struct asmc_softc { "Heatsink 2", "Memory Controller", \ "PCI Express Slot Pin", "PCI Express Slot (unk)" } -#define ASMC_MBP8_TEMPS { "TB0T", "TB1T", "TB2T", "TC0C", "TC0D", \ +#define ASMC_MBP81_TEMPS { "TB0T", "TB1T", "TB2T", "TC0C", "TC0D", \ "TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \ + "TCFC", "TCGC", "TCSA", "TM0S", "TMBS", \ + "TP0P", "TPCD", "TW0P", "Th1H", "Ts0P", \ + "Ts0S", NULL } + +#define ASMC_MBP81_TEMPNAMES { "enclosure", "TB1T", "TB2T", "TC0C", "TC0D", \ + "TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \ + "TCFC", "TCGC", "TCSA", "TM0S", "TMBS", \ + "TP0P", "TPCD", "wireless", "Th1H", "Ts0P", \ + "Ts0S" } + +#define ASMC_MBP81_TEMPDESCS { "Enclosure Bottomside", "TB1T", "TB2T", "TC0C", "TC0D", \ + "TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \ + "TCFC", "TCGC", "TCSA", "TM0S", "TMBS", \ + "TP0P", "TPCD", "TW0P", "Th1H", "Ts0P", \ + "Ts0S" } + +#define ASMC_MBP82_TEMPS { "TB0T", "TB1T", "TB2T", "TC0C", "TC0D", \ + "TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \ "TC3C", "TC4C", "TCFC", "TCGC", "TCSA", \ "TCTD", "TG0D", "TG0P", "THSP", "TM0S", \ "TMBS", "TP0P", "TPCD", "TW0P", "Th1H", \ "Th2H", "Tm0P", "Ts0P", "Ts0S", NULL } -#define ASMC_MBP8_TEMPNAMES { "enclosure", "TB1T", "TB2T", "TC0C", "TC0D", \ +#define ASMC_MBP82_TEMPNAMES { "enclosure", "TB1T", "TB2T", "TC0C", "TC0D", \ "TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \ "TC3C", "TC4C", "TCFC", "TCGC", "TCSA", \ "TCTD", "graphics", "TG0P", "THSP", "TM0S", \ "TMBS", "TP0P", "TPCD", "wireless", "Th1H", \ "Th2H", "memory", "Ts0P", "Ts0S" } -#define ASMC_MBP8_TEMPDESCS { "Enclosure Bottomside", "TB1T", "TB2T", "TC0C", "TC0D", \ +#define ASMC_MBP82_TEMPDESCS { "Enclosure Bottomside", "TB1T", "TB2T", "TC0C", "TC0D", \ "TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \ "TC3C", "TC4C", "TCFC", "TCGC", "TCSA", \ "TCTD", "TG0D", "TG0P", "THSP", "TM0S", \ From owner-svn-src-head@freebsd.org Wed Dec 12 15:23:41 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47AFC131247A; Wed, 12 Dec 2018 15:23:41 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E39586A0D1; Wed, 12 Dec 2018 15:23:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D8B119D44; Wed, 12 Dec 2018 15:23:40 +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 wBCFNe8R092448; Wed, 12 Dec 2018 15:23:40 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCFNeXe092447; Wed, 12 Dec 2018 15:23:40 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201812121523.wBCFNeXe092447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 12 Dec 2018 15:23:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341989 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 341989 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E39586A0D1 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.63 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.63)[-0.629,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 15:23:41 -0000 Author: emaste Date: Wed Dec 12 15:23:40 2018 New Revision: 341989 URL: https://svnweb.freebsd.org/changeset/base/341989 Log: Makefile.inc1: update stale wpa dependency removal statement Only stale .depend files are removed; do not mention object files. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Wed Dec 12 13:43:55 2018 (r341988) +++ head/Makefile.inc1 Wed Dec 12 15:23:40 2018 (r341989) @@ -981,7 +981,7 @@ _cleanobj_fast_depend_hack: .PHONY @if [ -e "${OBJTOP}/usr.sbin/wpa/wpa_supplicant/.depend.rrm.o" ] && \ egrep -q 'src/ap/rrm.c' \ ${OBJTOP}/usr.sbin/wpa/wpa_supplicant/.depend.rrm.o; then \ - echo "Removing stale wpa dependencies and objects"; \ + echo "Removing stale wpa dependencies"; \ rm -f ${OBJTOP}/usr.sbin/wpa/*/.depend*; \ fi From owner-svn-src-head@freebsd.org Wed Dec 12 15:49:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 133FE1313236; Wed, 12 Dec 2018 15:49:15 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A9C866B130; Wed, 12 Dec 2018 15:49:14 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9F362A0CC; Wed, 12 Dec 2018 15:49:14 +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 wBCFnESG005878; Wed, 12 Dec 2018 15:49:14 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCFnEmM005877; Wed, 12 Dec 2018 15:49:14 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812121549.wBCFnEmM005877@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 12 Dec 2018 15:49:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341990 - head/sys/dev/bwn X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/bwn X-SVN-Commit-Revision: 341990 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A9C866B130 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.64)[-0.643,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 15:49:15 -0000 Author: markj Date: Wed Dec 12 15:49:14 2018 New Revision: 341990 URL: https://svnweb.freebsd.org/changeset/base/341990 Log: Fix a possible mbuf double free in bwn_dma_tx_start(). If bus_dmamap_load_mbuf() fails following a defrag, the caller of bwn_dma_tx_start() would free the original mbuf after m_defrag() had already done so. Fix this by returning the defragged mbuf to the caller instead. Update bwn_pio_tx_start() similarly for consistency. Reported by: Ilja Van Sprundel Reviewed by: landonf Tested by: landonf MFC after: 3 days admbug: 820 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18342 Modified: head/sys/dev/bwn/if_bwn.c Modified: head/sys/dev/bwn/if_bwn.c ============================================================================== --- head/sys/dev/bwn/if_bwn.c Wed Dec 12 15:23:40 2018 (r341989) +++ head/sys/dev/bwn/if_bwn.c Wed Dec 12 15:49:14 2018 (r341990) @@ -209,7 +209,7 @@ static void bwn_pio_rx_write_2(struct bwn_pio_rxqueue static void bwn_pio_rx_write_4(struct bwn_pio_rxqueue *, uint16_t, uint32_t); static int bwn_pio_tx_start(struct bwn_mac *, struct ieee80211_node *, - struct mbuf *); + struct mbuf **); static struct bwn_pio_txqueue *bwn_pio_select(struct bwn_mac *, uint8_t); static uint32_t bwn_pio_write_multi_4(struct bwn_mac *, struct bwn_pio_txqueue *, uint32_t, const void *, int); @@ -273,7 +273,7 @@ static void bwn_ratectl_tx_complete(const struct ieee8 static void bwn_dma_handle_txeof(struct bwn_mac *, const struct bwn_txstatus *); static int bwn_dma_tx_start(struct bwn_mac *, struct ieee80211_node *, - struct mbuf *); + struct mbuf **); static int bwn_dma_getslot(struct bwn_dma_ring *); static struct bwn_dma_ring *bwn_dma_select(struct bwn_mac *, uint8_t); @@ -1068,7 +1068,7 @@ bwn_tx_start(struct bwn_softc *sc, struct ieee80211_no } error = (mac->mac_flags & BWN_MAC_FLAG_DMA) ? - bwn_dma_tx_start(mac, ni, m) : bwn_pio_tx_start(mac, ni, m); + bwn_dma_tx_start(mac, ni, &m) : bwn_pio_tx_start(mac, ni, &m); if (error) { m_freem(m); return (error); @@ -1077,13 +1077,14 @@ bwn_tx_start(struct bwn_softc *sc, struct ieee80211_no } static int -bwn_pio_tx_start(struct bwn_mac *mac, struct ieee80211_node *ni, struct mbuf *m) +bwn_pio_tx_start(struct bwn_mac *mac, struct ieee80211_node *ni, + struct mbuf **mp) { struct bwn_pio_txpkt *tp; - struct bwn_pio_txqueue *tq = bwn_pio_select(mac, M_WME_GETAC(m)); + struct bwn_pio_txqueue *tq; struct bwn_softc *sc = mac->mac_sc; struct bwn_txhdr txhdr; - struct mbuf *m_new; + struct mbuf *m, *m_new; uint32_t ctl32; int error; uint16_t ctl16; @@ -1092,6 +1093,8 @@ bwn_pio_tx_start(struct bwn_mac *mac, struct ieee80211 /* XXX TODO send packets after DTIM */ + m = *mp; + tq = bwn_pio_select(mac, M_WME_GETAC(m)); KASSERT(!TAILQ_EMPTY(&tq->tq_pktlist), ("%s: fail", __func__)); tp = TAILQ_FIRST(&tq->tq_pktlist); tp->tp_ni = ni; @@ -1111,13 +1114,14 @@ bwn_pio_tx_start(struct bwn_mac *mac, struct ieee80211 /* * XXX please removes m_defrag(9) */ - m_new = m_defrag(m, M_NOWAIT); + m_new = m_defrag(*mp, M_NOWAIT); if (m_new == NULL) { device_printf(sc->sc_dev, "%s: can't defrag TX buffer\n", __func__); return (ENOBUFS); } + *mp = m_new; if (m_new->m_next != NULL) device_printf(sc->sc_dev, "TODO: fragmented packets for PIO\n"); @@ -1168,15 +1172,17 @@ bwn_pio_select(struct bwn_mac *mac, uint8_t prio) } static int -bwn_dma_tx_start(struct bwn_mac *mac, struct ieee80211_node *ni, struct mbuf *m) +bwn_dma_tx_start(struct bwn_mac *mac, struct ieee80211_node *ni, + struct mbuf **mp) { #define BWN_GET_TXHDRCACHE(slot) \ &(txhdr_cache[(slot / BWN_TX_SLOTS_PER_FRAME) * BWN_HDRSIZE(mac)]) struct bwn_dma *dma = &mac->mac_method.dma; - struct bwn_dma_ring *dr = bwn_dma_select(mac, M_WME_GETAC(m)); + struct bwn_dma_ring *dr = bwn_dma_select(mac, M_WME_GETAC(*mp)); struct bwn_dmadesc_generic *desc; struct bwn_dmadesc_meta *mt; struct bwn_softc *sc = mac->mac_sc; + struct mbuf *m; uint8_t *txhdr_cache = (uint8_t *)dr->dr_txhdr_cache; int error, slot, backup[2] = { dr->dr_curslot, dr->dr_usedslot }; @@ -1185,6 +1191,7 @@ bwn_dma_tx_start(struct bwn_mac *mac, struct ieee80211 /* XXX send after DTIM */ + m = *mp; slot = bwn_dma_getslot(dr); dr->getdesc(dr, slot, &desc, &mt); KASSERT(mt->mt_txtype == BWN_DMADESC_METATYPE_HEADER, @@ -1233,9 +1240,8 @@ bwn_dma_tx_start(struct bwn_mac *mac, struct ieee80211 __func__); error = ENOBUFS; goto fail; - } else { - m = m_new; } + *mp = m = m_new; mt->mt_m = m; error = bus_dmamap_load_mbuf(dma->txbuf_dtag, mt->mt_dmap, From owner-svn-src-head@freebsd.org Wed Dec 12 16:32:16 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D0F21314371; Wed, 12 Dec 2018 16:32:16 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B5BD76CAE4; Wed, 12 Dec 2018 16:32:15 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AADD2A9AE; Wed, 12 Dec 2018 16:32:15 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCGWFWx035163; Wed, 12 Dec 2018 16:32:15 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCGWFY7035162; Wed, 12 Dec 2018 16:32:15 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <201812121632.wBCGWFY7035162@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Wed, 12 Dec 2018 16:32:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341992 - head/sys/dev/netmap X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/sys/dev/netmap X-SVN-Commit-Revision: 341992 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B5BD76CAE4 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.62 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.62)[-0.625,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 16:32:16 -0000 Author: vmaffione Date: Wed Dec 12 16:32:15 2018 New Revision: 341992 URL: https://svnweb.freebsd.org/changeset/base/341992 Log: netmap: fix warning in netmap_kloop.c Reported by: markj MFC after: 3 days Modified: head/sys/dev/netmap/netmap_kloop.c Modified: head/sys/dev/netmap/netmap_kloop.c ============================================================================== --- head/sys/dev/netmap/netmap_kloop.c Wed Dec 12 16:25:30 2018 (r341991) +++ head/sys/dev/netmap/netmap_kloop.c Wed Dec 12 16:32:15 2018 (r341992) @@ -111,6 +111,7 @@ csb_ktoa_kick_enable(struct nm_csb_ktoa __user *csb_kt CSB_WRITE(csb_ktoa, kern_need_kick, val); } +#ifdef SYNC_KLOOP_POLL /* Are application interrupt enabled or disabled? */ static inline uint32_t csb_atok_intr_enabled(struct nm_csb_atok __user *csb_atok) @@ -121,6 +122,7 @@ csb_atok_intr_enabled(struct nm_csb_atok __user *csb_a return v; } +#endif /* SYNC_KLOOP_POLL */ static inline void sync_kloop_kring_dump(const char *title, const struct netmap_kring *kring) From owner-svn-src-head@freebsd.org Wed Dec 12 17:05:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33B871315BD2; Wed, 12 Dec 2018 17:05:48 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CED686E758; Wed, 12 Dec 2018 17:05:47 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C4CF2AEF3; Wed, 12 Dec 2018 17:05:47 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCH5luq051262; Wed, 12 Dec 2018 17:05:47 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCH5lOB051261; Wed, 12 Dec 2018 17:05:47 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <201812121705.wBCH5lOB051261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Wed, 12 Dec 2018 17:05:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341993 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 341993 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CED686E758 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.42 / 15.00]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.42)[-0.420,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 17:05:48 -0000 Author: vmaffione Date: Wed Dec 12 17:05:47 2018 New Revision: 341993 URL: https://svnweb.freebsd.org/changeset/base/341993 Log: netmap: add man page for ptnet Add a man page for ptnet(4), describing the guest driver for netmap passthrough. Reviewed by: bcr MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D18518 Added: head/share/man/man4/ptnet.4 (contents, props changed) Added: head/share/man/man4/ptnet.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/ptnet.4 Wed Dec 12 17:05:47 2018 (r341993) @@ -0,0 +1,140 @@ +.\" Copyright (c) 2018 Vincenzo Maffione +.\" 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 December 11, 2018 +.Dt PTNET 4 +.Os +.Sh NAME +.Nm ptnet +.Nd Ethernet driver for passed-through netmap ports +.Sh SYNOPSIS +This network driver is included in +.Xr netmap 4 , +and it can be compiled into the kernel by adding the following +line in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device netmap" +.Ed +.Sh DESCRIPTION +The +.Nm +device driver provides direct access to host netmap ports, +from within a Virtual Machine (VM). +Applications running inside +the VM can access the TX/RX rings and buffers of a netmap port +that the hypervisor has passed-through to the VM. +Hypervisor support for +.Nm +is currently available for QEMU/KVM. +Any +.Xr netmap 4 +port can be passed-through, including physical NICs, +.Xr vale 4 +ports, netmap pipes, etc. +.Pp +The main use-case for netmap passthrough is Network Function +Virtualization (NFV), where middlebox applications running within +VMs may want to process very high packet rates (e.g., 1-10 millions +packets per second or more). +Note, however, that those applications +must use the device in netmap mode in order to achieve such rates. +In addition to the general advantages of netmap, the improved +performance of +.Nm +when compared to hypervisor device emulation or paravirtualization (e.g., +.Xr vtnet 4 , +.Xr vmx 4 ) +comes from the hypervisor being completely bypassed in the data-path. +For example, when using +.Xr vtnet 4 +the VM has to convert each +.Xr mbuf 9 +to a VirtIO-specific packet representation +and publish that to a VirtIO queue; on the hypervisor side, the +packet is extracted from the VirtIO queue and converted to a +hypervisor-specific packet representation. +The overhead of format conversions (and packet copies, in same cases) is not +incured by +.Nm +in netmap mode, because mbufs are not used at all, and the packet format +is the one defined by netmap (e.g., +.Ar struct netmap_slot ) +along the whole data-path. +No format conversions or copies happen. +.Pp +It is also possible to use a +.Nm +device like a regular network interface, which interacts with the +.Fx +network stack (i.e., not in netmap mode). +However, in that case it is necessary to pay the cost of data copies +between mbufs and netmap buffers, which generally results in lower +TCP/UDP performance than +.Xr vtnet 4 +or other paravirtualized network devices. +If the passed-through netmap port supports the VirtIO network header, +.Nm +is able to use it, and support TCP/UDP checksum offload (for both transmit +and receive), TCP segmentation offload (TSO) and TCP large receive offload +(LRO). +Currently, +.Xr vale 4 +ports support the header. +Note that the VirtIO network header is generally not used in NFV +use-cases, because middleboxes are not endpoints of TCP/UDP connections. +.Sh TUNABLES +Tunables can be set at the +.Xr loader 8 +prompt before booting the kernel or stored in +.Xr loader.conf 5 . +.Bl -tag -width "xxxxxx" +.It Va dev.netmap.ptnet_vnet_hdr +This tunable enables (1) or disables (0) the VirtIO network header. +If enabled, +.Nm +uses the same header used by +.Xr vtnet 4 +to exchange offload metadata with the hypervisor. +If disabled, no header is prepended to transmitted and received +packets. +The metadata is necessary to support TCP/UDP checksum offloads, +TSO, and LRO. +The default value is 1. +.El +.Sh SEE ALSO +.Xr netintro 4 , +.Xr netmap 4 , +.Xr vale 4 , +.Xr virtio 4 , +.Xr vmx 4 , +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +driver was written by +.An Vincenzo Maffione Aq Mt vmaffione@FreeBSD.org . +It first appeared in +.Fx 12.0 . From owner-svn-src-head@freebsd.org Wed Dec 12 18:13:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D48241317933; Wed, 12 Dec 2018 18:13:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 77D1F70D2E; Wed, 12 Dec 2018 18:13:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6AA98BAA8; Wed, 12 Dec 2018 18:13:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCIDv46088023; Wed, 12 Dec 2018 18:13:57 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCIDvjH088022; Wed, 12 Dec 2018 18:13:57 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201812121813.wBCIDvjH088022@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Wed, 12 Dec 2018 18:13:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341994 - head/sys/geom/mirror X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/geom/mirror X-SVN-Commit-Revision: 341994 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 77D1F70D2E X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-0.41 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.41)[-0.414,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 18:13:58 -0000 Author: cem Date: Wed Dec 12 18:13:56 2018 New Revision: 341994 URL: https://svnweb.freebsd.org/changeset/base/341994 Log: gmirror: Remove a last-minute INVARIANTS breakage in r341840 I mistakenly added a lock assertion to this routine at the last minute without confirming it was held during g_mirror_create. It isn't (it isn't even initialized yet). Mea culpa. Access is exclusive in both callers, just not always by that particular lock. Reported by: lwhsu X-MFC-With: r341840, r341674 Modified: head/sys/geom/mirror/g_mirror.c Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Wed Dec 12 17:05:47 2018 (r341993) +++ head/sys/geom/mirror/g_mirror.c Wed Dec 12 18:13:56 2018 (r341994) @@ -3061,8 +3061,6 @@ g_mirror_reinit_from_metadata(struct g_mirror_softc *s const struct g_mirror_metadata *md) { - sx_assert(&sc->sc_lock, SX_XLOCKED); - sc->sc_genid = md->md_genid; sc->sc_syncid = md->md_syncid; From owner-svn-src-head@freebsd.org Wed Dec 12 19:02:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2371F1321EFD; Wed, 12 Dec 2018 19:02:38 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B9E4B73921; Wed, 12 Dec 2018 19:02:37 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A953BC4B7; Wed, 12 Dec 2018 19:02:37 +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 wBCJ2bBC014777; Wed, 12 Dec 2018 19:02:37 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCJ2b2e014776; Wed, 12 Dec 2018 19:02:37 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201812121902.wBCJ2b2e014776@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Wed, 12 Dec 2018 19:02:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341996 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: sobomax X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 341996 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B9E4B73921 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.63 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.80)[-0.797,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 19:02:38 -0000 Author: sobomax Date: Wed Dec 12 19:02:37 2018 New Revision: 341996 URL: https://svnweb.freebsd.org/changeset/base/341996 Log: Add NETGRAPH_CHECKSUM. MFC after: 1 week Modified: head/sys/conf/NOTES head/sys/conf/files Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Wed Dec 12 18:18:34 2018 (r341995) +++ head/sys/conf/NOTES Wed Dec 12 19:02:37 2018 (r341996) @@ -767,6 +767,7 @@ options NETGRAPH_BLUETOOTH_UBTBCMFW # ubtbcmfw(4) options NETGRAPH_BPF options NETGRAPH_BRIDGE options NETGRAPH_CAR +options NETGRAPH_CHECKSUM options NETGRAPH_CISCO options NETGRAPH_DEFLATE options NETGRAPH_DEVICE Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Dec 12 18:18:34 2018 (r341995) +++ head/sys/conf/files Wed Dec 12 19:02:37 2018 (r341996) @@ -4212,6 +4212,7 @@ netgraph/ng_base.c optional netgraph netgraph/ng_bpf.c optional netgraph_bpf netgraph/ng_bridge.c optional netgraph_bridge netgraph/ng_car.c optional netgraph_car +netgraph/ng_checksum.c optional netgraph_checksum netgraph/ng_cisco.c optional netgraph_cisco netgraph/ng_deflate.c optional netgraph_deflate netgraph/ng_device.c optional netgraph_device From owner-svn-src-head@freebsd.org Wed Dec 12 19:58:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91DF3132382A; Wed, 12 Dec 2018 19:58:55 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3A14E76034; Wed, 12 Dec 2018 19:58:55 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2C55FCD68; Wed, 12 Dec 2018 19:58:55 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCJwtaf041382; Wed, 12 Dec 2018 19:58:55 GMT (envelope-from syrinx@FreeBSD.org) Received: (from syrinx@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCJwtXB041381; Wed, 12 Dec 2018 19:58:55 GMT (envelope-from syrinx@FreeBSD.org) Message-Id: <201812121958.wBCJwtXB041381@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: syrinx set sender to syrinx@FreeBSD.org using -f From: Shteryana Shopova Date: Wed, 12 Dec 2018 19:58:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341997 - head/usr.bin/calendar/calendars X-SVN-Group: head X-SVN-Commit-Author: syrinx X-SVN-Commit-Paths: head/usr.bin/calendar/calendars X-SVN-Commit-Revision: 341997 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3A14E76034 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 19:58:55 -0000 Author: syrinx Date: Wed Dec 12 19:58:54 2018 New Revision: 341997 URL: https://svnweb.freebsd.org/changeset/base/341997 Log: Add myself to the calendar Modified: head/usr.bin/calendar/calendars/calendar.freebsd Modified: head/usr.bin/calendar/calendars/calendar.freebsd ============================================================================== --- head/usr.bin/calendar/calendars/calendar.freebsd Wed Dec 12 19:02:37 2018 (r341996) +++ head/usr.bin/calendar/calendars/calendar.freebsd Wed Dec 12 19:58:54 2018 (r341997) @@ -425,6 +425,7 @@ 11/19 Konstantin Belousov born in Kiev, USSR, 1972 11/20 Dmitry Morozovsky born in Moscow, USSR, 1968 11/20 Gavin Atkinson born in Middlesbrough, United Kingdom, 1979 +11/21 Shteryana Shopova born in Petrich, Bulgaria, 1982 11/21 Mark Johnston born in Toronto, Ontario, Canada, 1989 11/22 Frederic Culot born in Saint-Germain-En-Laye, France, 1976 11/23 Josef Lawrence Karthauser born in Pembury, Kent, United Kingdom, 1972 From owner-svn-src-head@freebsd.org Wed Dec 12 20:15:07 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28C4D132421B; Wed, 12 Dec 2018 20:15:07 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BF4EB76B47; Wed, 12 Dec 2018 20:15:06 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ADB2ED105; Wed, 12 Dec 2018 20:15:06 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCKF66R051985; Wed, 12 Dec 2018 20:15:06 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKF6C6051983; Wed, 12 Dec 2018 20:15:06 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201812122015.wBCKF6C6051983@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Wed, 12 Dec 2018 20:15:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341998 - head/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/sys/netpfil/pf X-SVN-Commit-Revision: 341998 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BF4EB76B47 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:15:07 -0000 Author: kp Date: Wed Dec 12 20:15:06 2018 New Revision: 341998 URL: https://svnweb.freebsd.org/changeset/base/341998 Log: pf: Fix endless loop on NAT exhaustion with sticky-address When we try to find a source port in pf_get_sport() it's possible that all available source ports will be in use. In that case we call pf_map_addr() to try to find a new source IP to try from. If there are no more available source IPs pf_map_addr() will return 1 and we stop trying. However, if sticky-address is set we'll always return the same IP address, even if we've already tried that one. We need to check the supplied address, because if that's the one we'd set it means pf_get_sport() has already tried it, and we should error out rather than keep trying. PR: 233867 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D18483 Modified: head/sys/netpfil/pf/pf.c head/sys/netpfil/pf/pf_lb.c Modified: head/sys/netpfil/pf/pf.c ============================================================================== --- head/sys/netpfil/pf/pf.c Wed Dec 12 19:58:54 2018 (r341997) +++ head/sys/netpfil/pf/pf.c Wed Dec 12 20:15:06 2018 (r341998) @@ -5513,6 +5513,8 @@ pf_route(struct mbuf **m, struct pf_rule *r, int dir, dst.sin_len = sizeof(dst); dst.sin_addr = ip->ip_dst; + bzero(&naddr, sizeof(naddr)); + if (TAILQ_EMPTY(&r->rpool.list)) { DPFPRINTF(PF_DEBUG_URGENT, ("%s: TAILQ_EMPTY(&r->rpool.list)\n", __func__)); @@ -5671,6 +5673,8 @@ pf_route6(struct mbuf **m, struct pf_rule *r, int dir, dst.sin6_family = AF_INET6; dst.sin6_len = sizeof(dst); dst.sin6_addr = ip6->ip6_dst; + + bzero(&naddr, sizeof(naddr)); if (TAILQ_EMPTY(&r->rpool.list)) { DPFPRINTF(PF_DEBUG_URGENT, Modified: head/sys/netpfil/pf/pf_lb.c ============================================================================== --- head/sys/netpfil/pf/pf_lb.c Wed Dec 12 19:58:54 2018 (r341997) +++ head/sys/netpfil/pf/pf_lb.c Wed Dec 12 20:15:06 2018 (r341998) @@ -328,6 +328,12 @@ pf_map_addr(sa_family_t af, struct pf_rule *r, struct src node was created just a moment ago in pf_create_state and it needs to be filled in with routing decision calculated here. */ if (*sn != NULL && !PF_AZERO(&(*sn)->raddr, af)) { + /* If the supplied address is the same as the current one we've + * been asked before, so tell the caller that there's no other + * address to be had. */ + if (PF_AEQ(naddr, &(*sn)->raddr, af)) + return (1); + PF_ACPY(naddr, &(*sn)->raddr, af); if (V_pf_status.debug >= PF_DEBUG_MISC) { printf("pf_map_addr: src tracking maps "); From owner-svn-src-head@freebsd.org Wed Dec 12 20:19:20 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E32821324458; Wed, 12 Dec 2018 20:19:19 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8655E76DFC; Wed, 12 Dec 2018 20:19:19 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7C74DD129; Wed, 12 Dec 2018 20:19:19 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCKJJKM052207; Wed, 12 Dec 2018 20:19:19 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKJJp9052205; Wed, 12 Dec 2018 20:19:19 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201812122019.wBCKJJp9052205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Wed, 12 Dec 2018 20:19:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r341999 - head/tests/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/pf X-SVN-Commit-Revision: 341999 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8655E76DFC X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.65 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.82)[-0.823,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:19:20 -0000 Author: kp Date: Wed Dec 12 20:19:18 2018 New Revision: 341999 URL: https://svnweb.freebsd.org/changeset/base/341999 Log: pf tests: NAT exhaustion test It's been reported that pf doesn't handle running out of available ports for NAT correctly. It freezes until a state expires and it can find a free port. Test for this, by setting up a situation where only two ports are available for NAT and then attempting to create three connections. If successful the third connection will fail immediately. In an incorrect case the connection attempt will freeze, also freezing all interaction with pf through pfctl and trigger timeout. PR: 233867 MFC after: 2 weeks Added: head/tests/sys/netpfil/pf/nat.sh (contents, props changed) Modified: head/tests/sys/netpfil/pf/Makefile Modified: head/tests/sys/netpfil/pf/Makefile ============================================================================== --- head/tests/sys/netpfil/pf/Makefile Wed Dec 12 20:15:06 2018 (r341998) +++ head/tests/sys/netpfil/pf/Makefile Wed Dec 12 20:19:18 2018 (r341999) @@ -10,6 +10,7 @@ ATF_TESTS_SH+= anchor \ forward \ fragmentation \ names \ + nat \ set_tos \ route_to \ synproxy \ Added: head/tests/sys/netpfil/pf/nat.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/pf/nat.sh Wed Dec 12 20:19:18 2018 (r341999) @@ -0,0 +1,64 @@ +# $FreeBSD$ + +. $(atf_get_srcdir)/utils.subr + +atf_test_case "exhaust" "cleanup" +exhaust_head() +{ + atf_set descr 'Test exhausting the NAT pool' + atf_set require.user root +} + +exhaust_body() +{ + pft_init + + epair_nat=$(pft_mkepair) + epair_echo=$(pft_mkepair) + + pft_mkjail nat ${epair_nat}b ${epair_echo}a + pft_mkjail echo ${epair_echo}b + + ifconfig ${epair_nat}a 192.0.2.2/24 up + route add -net 198.51.100.0/24 192.0.2.1 + + jexec nat ifconfig ${epair_nat}b 192.0.2.1/24 up + jexec nat ifconfig ${epair_echo}a 198.51.100.1/24 up + jexec nat sysctl net.inet.ip.forwarding=1 + + jexec echo ifconfig ${epair_echo}b 198.51.100.2/24 up + jexec echo /usr/sbin/inetd $(atf_get_srcdir)/echo_inetd.conf + + # Enable pf! + jexec nat pfctl -e + pft_set_rules nat \ + "nat pass on ${epair_echo}a inet from 192.0.2.0/24 to any -> (${epair_echo}a) port 30000:30001 sticky-address" + + # Sanity check + atf_check -s exit:0 -o ignore ping -c 3 198.51.100.2 + + echo "foo" | nc -N 198.51.100.2 7 + echo "foo" | nc -N 198.51.100.2 7 + + # This one will fail, but that's expected + echo "foo" | nc -N 198.51.100.2 7 & + + sleep 1 + + # If the kernel is stuck in pf_get_sport() this will not succeed either. + timeout 2 jexec nat pfctl -sa + if [ $? -eq 124 ]; then + # Timed out + atf_fail "pfctl timeout" + fi +} + +exhaust_cleanup() +{ + pft_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "exhaust" +} From owner-svn-src-head@freebsd.org Wed Dec 12 20:19:57 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4270B13244BC; Wed, 12 Dec 2018 20:19:57 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BEF6D76F4C; Wed, 12 Dec 2018 20:19:56 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4178D12B; Wed, 12 Dec 2018 20:19:56 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCKJuPN052289; Wed, 12 Dec 2018 20:19:56 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKJuQq052288; Wed, 12 Dec 2018 20:19:56 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201812122019.wBCKJuQq052288@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Wed, 12 Dec 2018 20:19:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342000 - head/tests/sys/netpfil/pf X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/tests/sys/netpfil/pf X-SVN-Commit-Revision: 342000 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BEF6D76F4C X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:19:57 -0000 Author: kp Date: Wed Dec 12 20:19:56 2018 New Revision: 342000 URL: https://svnweb.freebsd.org/changeset/base/342000 Log: pf tests: Basic rdr test MFC after: 2 weeks Added: head/tests/sys/netpfil/pf/rdr.sh (contents, props changed) Modified: head/tests/sys/netpfil/pf/Makefile Modified: head/tests/sys/netpfil/pf/Makefile ============================================================================== --- head/tests/sys/netpfil/pf/Makefile Wed Dec 12 20:19:18 2018 (r341999) +++ head/tests/sys/netpfil/pf/Makefile Wed Dec 12 20:19:56 2018 (r342000) @@ -12,6 +12,7 @@ ATF_TESTS_SH+= anchor \ names \ nat \ set_tos \ + rdr \ route_to \ synproxy \ set_skip \ Added: head/tests/sys/netpfil/pf/rdr.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tests/sys/netpfil/pf/rdr.sh Wed Dec 12 20:19:56 2018 (r342000) @@ -0,0 +1,48 @@ +# $FreeBSD$ + +. $(atf_get_srcdir)/utils.subr + +atf_test_case "basic" "cleanup" +basic_head() +{ + atf_set descr 'Basic rdr test' + atf_set require.user root +} + +basic_body() +{ + pft_init + + epair=$(pft_mkepair) + + pft_mkjail alcatraz ${epair}b + + ifconfig ${epair}a 192.0.2.2/24 up + route add -net 198.51.100.0/24 192.0.2.1 + + jexec alcatraz ifconfig ${epair}b 192.0.2.1/24 up + jexec alcatraz sysctl net.inet.ip.forwarding=1 + + # Enable pf! + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "rdr pass on ${epair}b proto tcp from any to 198.51.100.0/24 port 1234 -> 192.0.2.1 port 4321" + + echo "foo" | jexec alcatraz nc -N -l 4321 & + sleep 1 + + result=$(nc -N -w 3 198.51.100.2 1234) + if [ "$result" != "foo" ]; then + atf_fail "Redirect failed" + fi +} + +basic_cleanup() +{ + pft_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "basic" +} From owner-svn-src-head@freebsd.org Wed Dec 12 20:32:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3DBA31324BED; Wed, 12 Dec 2018 20:32:18 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D8645778CC; Wed, 12 Dec 2018 20:32:17 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C5074D48A; Wed, 12 Dec 2018 20:32:17 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCKWHaa059601; Wed, 12 Dec 2018 20:32:17 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKWHLm059600; Wed, 12 Dec 2018 20:32:17 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <201812122032.wBCKWHLm059600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Wed, 12 Dec 2018 20:32:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342001 - head/lib/libcapsicum X-SVN-Group: head X-SVN-Commit-Author: oshogbo X-SVN-Commit-Paths: head/lib/libcapsicum X-SVN-Commit-Revision: 342001 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D8645778CC X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:32:18 -0000 Author: oshogbo Date: Wed Dec 12 20:32:17 2018 New Revision: 342001 URL: https://svnweb.freebsd.org/changeset/base/342001 Log: libcapsicum: add missing links Reported by: manu Modified: head/lib/libcapsicum/Makefile Modified: head/lib/libcapsicum/Makefile ============================================================================== --- head/lib/libcapsicum/Makefile Wed Dec 12 20:19:56 2018 (r342000) +++ head/lib/libcapsicum/Makefile Wed Dec 12 20:32:17 2018 (r342001) @@ -9,6 +9,8 @@ MAN+= capsicum_helpers.3 MLINKS+=capsicum_helpers.3 caph_enter.3 MLINKS+=capsicum_helpers.3 caph_enter_casper.3 MLINKS+=capsicum_helpers.3 caph_rights_limit.3 +MLINKS+=capsicum_helpers.3 caph_fcntls_limit.3 +MLINKS+=capsicum_helpers.3 caph_ioctls_limit.3 MLINKS+=capsicum_helpers.3 caph_limit_stream.3 MLINKS+=capsicum_helpers.3 caph_limit_stdin.3 MLINKS+=capsicum_helpers.3 caph_limit_stderr.3 From owner-svn-src-head@freebsd.org Wed Dec 12 20:40:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7B691324EE8; Wed, 12 Dec 2018 20:40:02 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F54377D18; Wed, 12 Dec 2018 20:40:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6074BD4BD; Wed, 12 Dec 2018 20:40:02 +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 wBCKe2Pk062445; Wed, 12 Dec 2018 20:40:02 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKe2sI062444; Wed, 12 Dec 2018 20:40:02 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201812122040.wBCKe2sI062444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Wed, 12 Dec 2018 20:40:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342002 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: sobomax X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 342002 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6F54377D18 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:40:03 -0000 Author: sobomax Date: Wed Dec 12 20:40:01 2018 New Revision: 342002 URL: https://svnweb.freebsd.org/changeset/base/342002 Log: Add NETGRAPH_CHECKSUM. MFC after: 1 week Modified: head/sys/conf/options Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Wed Dec 12 20:32:17 2018 (r342001) +++ head/sys/conf/options Wed Dec 12 20:40:01 2018 (r342002) @@ -504,6 +504,7 @@ NETGRAPH_BLUETOOTH_UBTBCMFW opt_netgraph.h NETGRAPH_BPF opt_netgraph.h NETGRAPH_BRIDGE opt_netgraph.h NETGRAPH_CAR opt_netgraph.h +NETGRAPH_CHECKSUM opt_netgraph.h NETGRAPH_CISCO opt_netgraph.h NETGRAPH_DEFLATE opt_netgraph.h NETGRAPH_DEVICE opt_netgraph.h From owner-svn-src-head@freebsd.org Wed Dec 12 20:57:00 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 630DF1325775; Wed, 12 Dec 2018 20:57:00 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A60E6808AA; Wed, 12 Dec 2018 20:56:59 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32DFFD887; Wed, 12 Dec 2018 20:56:59 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCKux8V073116; Wed, 12 Dec 2018 20:56:59 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKuvkH073105; Wed, 12 Dec 2018 20:56:57 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122056.wBCKuvkH073105@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 20:56:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342003 - in head: share/man/man9 sys/conf sys/dev/pwm sys/sys usr.sbin usr.sbin/pwm X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head: share/man/man9 sys/conf sys/dev/pwm sys/sys usr.sbin usr.sbin/pwm X-SVN-Commit-Revision: 342003 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A60E6808AA X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.66 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.81)[-0.814,0]; NEURAL_HAM_SHORT(-0.85)[-0.849,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:57:00 -0000 Author: manu Date: Wed Dec 12 20:56:56 2018 New Revision: 342003 URL: https://svnweb.freebsd.org/changeset/base/342003 Log: Add a pwm subsystem so we can configure pwm controller from kernel and userland. The pwm subsystem consist of API for PWM controllers, pwmbus to register them and a pwm(8) utility to talk to them from userland. Reviewed by: oshgobo (capsicum), bcr (manpage), 0mp (manpage) Differential Revision: https://reviews.freebsd.org/D17938 Added: head/share/man/man9/pwm.9 (contents, props changed) head/share/man/man9/pwmbus.9 (contents, props changed) head/sys/dev/pwm/ head/sys/dev/pwm/ofw_pwm.c (contents, props changed) head/sys/dev/pwm/pwm_if.m (contents, props changed) head/sys/dev/pwm/pwmbus.c (contents, props changed) head/sys/dev/pwm/pwmbus.h (contents, props changed) head/sys/dev/pwm/pwmbus_if.m (contents, props changed) head/sys/dev/pwm/pwmc.c (contents, props changed) head/sys/sys/pwm.h (contents, props changed) head/usr.sbin/pwm/ head/usr.sbin/pwm/Makefile (contents, props changed) head/usr.sbin/pwm/pwm.8 (contents, props changed) head/usr.sbin/pwm/pwm.c (contents, props changed) Modified: head/share/man/man9/Makefile head/sys/conf/files head/usr.sbin/Makefile Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Wed Dec 12 20:40:01 2018 (r342002) +++ head/share/man/man9/Makefile Wed Dec 12 20:56:56 2018 (r342003) @@ -269,6 +269,8 @@ MAN= accept_filter.9 \ proc_rwmem.9 \ pseudofs.9 \ psignal.9 \ + pwm.9 \ + pwmbus.9 \ random.9 \ random_harvest.9 \ ratecheck.9 \ Added: head/share/man/man9/pwm.9 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man9/pwm.9 Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,93 @@ +.\" Copyright (c) 2018 Emmanuel Vadot +.\" +.\" 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 DEVELOPERS ``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 DEVELOPERS 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 November 12, 2018 +.Dt PWM 9 +.Os +.Sh NAME +.Nm pwm , +.Nm PWM_GET_BUS , +.Nm PWM_CHANNEL_CONFIG , +.Nm PWM_CHANNEL_GET_CONFIG , +.Nm PWM_CHANNEL_SET_FLAGS , +.Nm PWM_CHANNEL_GET_FLAGS , +.Nm PWM_CHANNEL_ENABLE , +.Nm PWM_CHANNEL_IS_ENABLED , +.Nm PWM_CHANNEL_MAX +.Nd PWM methods +.Sh SYNOPSIS +.Cd "device pwm" +.In "pwm_if.h" +.Ft device_t +.Fn PWM_GET_BUS "device_t dev" +.Ft int +.Fn PWM_CHANNEL_CONFIG "device_t dev" "int channel" "uint64_t period" "uint64_t duty" +.Ft int +.Fn PWM_CHANNEL_GET_CONFIG "device_t dev" "int channel" "uint64_t *period" "uint64_t *duty" +.Ft int +.Fn PWM_CHANNEL_SET_FLAGS "device_t dev" "int channel" "uint32_t flags" +.Ft int +.Fn PWM_CHANNEL_GET_FLAGS "device_t dev" "int channel" "uint32_t *flags" +.Ft int +.Fn PWM_CHANNEL_ENABLE "device_t dev" "int channel" "bool enable" +.Ft int +.Fn PWM_CHANNEL_IS_ENABLED "device_t dev" "int channel" "bool *enabled" +.Ft int +.Fn PWM_CHANNEL_MAX "device_t dev" "int channel" "int *nchannel" +.Sh DESCRIPTION +The PWM (Pulse-Width Modulation) interface allows the device driver to register to a global +bus so other devices in the kernel can use them in a generic way. +.Sh INTERFACE +.Bl -tag -width indent +.It Fn PWM_GET_BUS "device_t dev" +Return the bus device. +.It Fn PWM_CHANNEL_CONFIG "device_t dev" "int channel" "uint64_t period" "uint64_t duty" +Configure the period and duty (in nanoseconds) in the PWM controller for the specified channel. +Returns 0 on success or +.Er EINVAL +if the values are not supported by the controller or +.Er EBUSY +is the PWM controller is in use and does not support changing the value on the fly. +.It Fn PWM_CHANNEL_GET_CONFIG "device_t dev" "int channel" "uint64_t *period" "uint64_t *duty" +Get the current configuration of the period and duty for the specified channel. +.It Fn PWM_CHANNEL_SET_FLAGS "device_t dev" "int channel" "uint32_t flags" +Set the flags of the channel (like inverted polarity). +.It Fn PWM_CHANNEL_GET_FLAGS "device_t dev" "int channel" "uint32_t *flags" +Get the current flags for the channel. +.It Fn PWM_CHANNEL_ENABLE "device_t dev" "int channel" "bool enable" +Enable the PWM channel. +.It Fn PWM_CHANNEL_ISENABLED "device_t dev" "int channel" "bool *enable" +Test if the PWM channel is enabled. +.It PWM_CHANNEL_MAX "device_t dev" "int channel" "int *nchannel" +Get the maximum number of channels supported by the controller. +.El +.Sh HISTORY +The +.Nm pwm +interface first appeared in +.Fx 13.0 . +The +.Nm pwm +interface and manual page was written by +.An Emmanuel Vadot Aq Mt manu@FreeBSD.org . Added: head/share/man/man9/pwmbus.9 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man9/pwmbus.9 Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,98 @@ +.\" Copyright (c) 2018 Emmanuel Vadot +.\" +.\" 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 DEVELOPERS ``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 DEVELOPERS 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 November 12, 2018 +.Dt PWMBUS 9 +.Os +.Sh NAME +.Nm pwmbus , +.Nm pwmbus_attach_bus , +.Nm PWMBUS_GET_BUS , +.Nm PWMBUS_CHANNEL_CONFIG , +.Nm PWMBUS_CHANNEL_GET_CONFIG , +.Nm PWMBUS_CHANNEL_SET_FLAGS , +.Nm PWMBUS_CHANNEL_GET_FLAGS , +.Nm PWMBUS_CHANNEL_ENABLE , +.Nm PWMBUS_CHANNEL_IS_ENABLED , +.Nm PWMBUS_CHANNEL_MAX +.Nd PWMBUS methods +.Sh SYNOPSIS +.Cd "device pwm" +.In "pwmbus_if.h" +.Ft device_t +.Fn pwmbus_attach_bus "device_t dev" +.Ft int +.Fn PWMBUS_CHANNEL_CONFIG "device_t bus" "int channel" "uint64_t period" "uint64_t duty" +.Ft int +.Fn PWMBUS_CHANNEL_GET_CONFIG "device_t bus" "int channel" "uint64_t *period" "uint64_t *duty" +.Ft int +.Fn PWMBUS_CHANNEL_SET_FLAGS "device_t bus" "int channel" "uint32_t flags" +.Ft int +.Fn PWMBUS_CHANNEL_GET_FLAGS "device_t bus" "int channel" "uint32_t *flags" +.Ft int +.Fn PWMBUS_CHANNEL_ENABLE "device_t bus" "int channel" "bool enable" +.Ft int +.Fn PWMBUS_CHANNEL_IS_ENABLED "device_t bus" "int channel" "bool *enabled" +.Ft int +.Fn PWMBUS_CHANNEL_MAX "device_t bus" "int channel" "int *nchannel" +.Sh DESCRIPTION +The PWMBUS (Pulse-Width Modulation) interface allows the device driver to register to a global +bus so other devices in the kernel can use them in a generic way +.Sh INTERFACE +.Bl -tag -width indent +.It Fn pwmbus_attach_bus "device_t dev" +Attach the +.Nm pwmbus +to the device driver +.It Fn PWMBUS_CHANNEL_CONFIG "device_t bus" "int channel" "uint64_t period" "uint64_t duty" +Configure the period and duty (in nanoseconds) in the PWM controller on the bus for the specified channel. +Returns 0 on success or +.Er EINVAL +is the values are not supported by the controller or +.Er EBUSY +is the PWMBUS controller is in use and doesn't support changing the value on the fly. +.It Fn PWMBUS_CHANNEL_GET_CONFIG "device_t bus" "int channel" "uint64_t *period" "uint64_t *duty" +Get the current configuration of the period and duty for the specified channel. +.It Fn PWMBUS_CHANNEL_SET_FLAGS "device_t bus" "int channel" "uint32_t flags" +Set the flags of the channel (like inverted polarity), if the driver or controller +doesn't support this a default method is used. +.It Fn PWMBUS_CHANNEL_GET_FLAGS "device_t bus" "int channel" "uint32_t *flags" +Get the current flags for the channel, if the driver or controller +doesn't support this, a default method is used. +.It Fn PWMBUS_CHANNEL_ENABLE "device_t bus" "int channel" "bool enable" +Enable the PWM channel. +.It Fn PWMBUS_CHANNEL_ISENABLED "device_t bus" "int channel" "bool *enable" +Test if the PWM channel is enabled. +.It PWMBUS_CHANNEL_MAX "device_t bus" "int channel" "int *nchannel" +Get the maximum number of channel supported by the controller. +.El +.Sh HISTORY +The +.Nm pwmbus +interface first appear in +.Fx 13.0 . +The +.Nm pwmbus +interface and manual page was written by +.An Emmanuel Vadot Aq Mt manu@FreeBSD.org . Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Dec 12 20:40:01 2018 (r342002) +++ head/sys/conf/files Wed Dec 12 20:56:56 2018 (r342003) @@ -2746,6 +2746,11 @@ dev/puc/puc.c optional puc dev/puc/puc_cfg.c optional puc dev/puc/puc_pccard.c optional puc pccard dev/puc/puc_pci.c optional puc pci +dev/pwm/pwmc.c optional pwm +dev/pwm/pwmbus.c optional pwm +dev/pwm/pwm_if.m optional pwm +dev/pwm/pwmbus_if.m optional pwm +dev/pwm/ofw_pwm.c optional pwm fdt dev/quicc/quicc_core.c optional quicc dev/ral/rt2560.c optional ral dev/ral/rt2661.c optional ral Added: head/sys/dev/pwm/ofw_pwm.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/pwm/ofw_pwm.c Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,109 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Emmanuel Vadot + * 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 "pwm_if.h" + +int +pwm_get_by_ofw_propidx(device_t consumer, phandle_t node, + const char *prop_name, int idx, pwm_channel_t *out_channel) +{ + phandle_t xref; + pcell_t *cells; + struct pwm_channel channel; + int ncells, rv; + + rv = ofw_bus_parse_xref_list_alloc(node, prop_name, "#pwm-cells", + idx, &xref, &ncells, &cells); + if (rv != 0) + return (rv); + + channel.dev = OF_device_from_xref(xref); + if (channel.dev == NULL) { + OF_prop_free(cells); + return (ENODEV); + } + + channel.busdev = PWM_GET_BUS(channel.dev); + if (channel.busdev == NULL) { + OF_prop_free(cells); + return (ENODEV); + } + + channel.channel = cells[0]; + channel.period = cells[1]; + + if (ncells >= 3) + channel.flags = cells[2]; + + *out_channel = malloc(sizeof(struct pwm_channel), M_DEVBUF, M_WAITOK | M_ZERO); + **out_channel = channel; + return (0); +} + +int +pwm_get_by_ofw_idx(device_t consumer, phandle_t node, int idx, + pwm_channel_t *out_channel) +{ + + return (pwm_get_by_ofw_propidx(consumer, node, "pwms", idx, out_channel)); +} + +int +pwm_get_by_ofw_property(device_t consumer, phandle_t node, + const char *prop_name, pwm_channel_t *out_channel) +{ + + return (pwm_get_by_ofw_propidx(consumer, node, prop_name, 0, out_channel)); +} + +int +pwm_get_by_ofw_name(device_t consumer, phandle_t node, const char *name, + pwm_channel_t *out_channel) +{ + int rv, idx; + + rv = ofw_bus_find_string_index(node, "pwm-names", name, &idx); + if (rv != 0) + return (rv); + + return (pwm_get_by_ofw_idx(consumer, node, idx, out_channel)); +} Added: head/sys/dev/pwm/pwm_if.m ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/pwm/pwm_if.m Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,106 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2018 Emmanuel Vadot +# +# 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 + +INTERFACE pwm; + +# +# Get the bus +# + +METHOD device_t get_bus { + device_t dev; +}; + +# +# Config the period (Total number of cycle in ns) and +# the duty (active number of cycle in ns) +# +METHOD int channel_config { + device_t dev; + int channel; + uint64_t period; + uint64_t duty; +}; + +# +# Get the period (Total number of cycle in ns) and +# the duty (active number of cycle in ns) +# +METHOD int channel_get_config { + device_t dev; + int channel; + uint64_t *period; + uint64_t *duty; +}; + +# +# Set the flags +# +METHOD int channel_set_flags { + device_t dev; + int channel; + uint32_t flags; +}; + +# +# Get the flags +# +METHOD int channel_get_flags { + device_t dev; + int channel; + uint32_t *flags; +}; + +# +# Enable the pwm output +# +METHOD int channel_enable { + device_t dev; + int channel; + bool enable; +}; + +# +# Is the pwm output enabled +# +METHOD int channel_is_enabled { + device_t dev; + int channel; + bool *enabled; +}; + +# +# Get the number of channels +# +METHOD int channel_max { + device_t dev; + int *nchannel; +}; Added: head/sys/dev/pwm/pwmbus.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/pwm/pwmbus.c Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,244 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Emmanuel Vadot + * 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 "pwmbus_if.h" +#include "pwm_if.h" + +struct pwmbus_channel_data { + int reserved; + char *name; +}; + +struct pwmbus_softc { + device_t busdev; + device_t dev; + + int nchannels; +}; + +device_t +pwmbus_attach_bus(device_t dev) +{ + device_t busdev; +#ifdef FDT + phandle_t node; +#endif + + busdev = device_add_child(dev, "pwmbus", -1); + if (busdev == NULL) { + device_printf(dev, "Cannot add child pwmbus\n"); + return (NULL); + } + if (device_add_child(dev, "pwmc", -1) == NULL) { + device_printf(dev, "Cannot add pwmc\n"); + device_delete_child(dev, busdev); + return (NULL); + } + +#ifdef FDT + node = ofw_bus_get_node(dev); + OF_device_register_xref(OF_xref_from_node(node), dev); +#endif + + bus_generic_attach(dev); + + return (busdev); +} + +static int +pwmbus_probe(device_t dev) +{ + + device_set_desc(dev, "PWM bus"); + return (BUS_PROBE_GENERIC); +} + +static int +pwmbus_attach(device_t dev) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(dev); + sc->busdev = dev; + sc->dev = device_get_parent(dev); + + if (PWM_CHANNEL_MAX(sc->dev, &sc->nchannels) != 0 || + sc->nchannels == 0) + return (ENXIO); + + if (bootverbose) + device_printf(dev, "Registering %d channel(s)\n", sc->nchannels); + bus_generic_probe(dev); + + return (bus_generic_attach(dev)); +} + +static int +pwmbus_detach(device_t dev) +{ + device_t *devlist; + int i, rv, ndevs; + + rv = bus_generic_detach(dev); + if (rv != 0) + return (rv); + + rv = device_get_children(dev, &devlist, &ndevs); + if (rv != 0) + return (rv); + for (i = 0; i < ndevs; i++) + device_delete_child(dev, devlist[i]); + + return (0); +} + +static int +pwmbus_channel_config(device_t bus, int channel, uint64_t period, uint64_t duty) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(bus); + + if (channel > sc->nchannels) + return (EINVAL); + + return (PWM_CHANNEL_CONFIG(sc->dev, channel, period, duty)); +} + +static int +pwmbus_channel_get_config(device_t bus, int channel, uint64_t *period, uint64_t *duty) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(bus); + + if (channel > sc->nchannels) + return (EINVAL); + + return (PWM_CHANNEL_GET_CONFIG(sc->dev, channel, period, duty)); +} + +static int +pwmbus_channel_set_flags(device_t bus, int channel, uint32_t flags) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(bus); + + if (channel > sc->nchannels) + return (EINVAL); + + return (PWM_CHANNEL_SET_FLAGS(sc->dev, channel, flags)); +} + +static int +pwmbus_channel_get_flags(device_t bus, int channel, uint32_t *flags) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(bus); + + if (channel > sc->nchannels) + return (EINVAL); + + return (PWM_CHANNEL_GET_FLAGS(sc->dev, channel, flags)); +} + +static int +pwmbus_channel_enable(device_t bus, int channel, bool enable) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(bus); + + if (channel > sc->nchannels) + return (EINVAL); + + return (PWM_CHANNEL_ENABLE(sc->dev, channel, enable)); +} + +static int +pwmbus_channel_is_enabled(device_t bus, int channel, bool *enable) +{ + struct pwmbus_softc *sc; + + sc = device_get_softc(bus); + + if (channel > sc->nchannels) + return (EINVAL); + + return (PWM_CHANNEL_IS_ENABLED(sc->dev, channel, enable)); +} + +static device_method_t pwmbus_methods[] = { + /* device_if */ + DEVMETHOD(device_probe, pwmbus_probe), + DEVMETHOD(device_attach, pwmbus_attach), + DEVMETHOD(device_detach, pwmbus_detach), + + /* pwm interface */ + DEVMETHOD(pwmbus_channel_config, pwmbus_channel_config), + DEVMETHOD(pwmbus_channel_get_config, pwmbus_channel_get_config), + DEVMETHOD(pwmbus_channel_set_flags, pwmbus_channel_set_flags), + DEVMETHOD(pwmbus_channel_get_flags, pwmbus_channel_get_flags), + DEVMETHOD(pwmbus_channel_enable, pwmbus_channel_enable), + DEVMETHOD(pwmbus_channel_is_enabled, pwmbus_channel_is_enabled), + + DEVMETHOD_END +}; + +driver_t pwmbus_driver = { + "pwmbus", + pwmbus_methods, + sizeof(struct pwmbus_softc), +}; +devclass_t pwmbus_devclass; + +EARLY_DRIVER_MODULE(pwmbus, pwm, pwmbus_driver, pwmbus_devclass, 0, 0, + BUS_PASS_SUPPORTDEV + BUS_PASS_ORDER_MIDDLE); +MODULE_VERSION(pwmbus, 1); Added: head/sys/dev/pwm/pwmbus.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/pwm/pwmbus.h Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,64 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Emmanuel Vadot + * 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 _PWMBUS_H_ + +#include +#include + +struct pwm_channel { + device_t dev; + device_t busdev; + int channel; + uint64_t period; + uint64_t duty; + uint32_t flags; + bool enabled; +}; +typedef struct pwm_channel *pwm_channel_t; + +device_t pwmbus_attach_bus(device_t dev); +int pwmbus_acquire_channel(device_t bus, int channel); +int pwmbus_release_channel(device_t bus, int channel); + +int +pwm_get_by_ofw_propidx(device_t consumer, phandle_t node, + const char *prop_name, int idx, pwm_channel_t *channel); +int +pwm_get_by_ofw_idx(device_t consumer, phandle_t node, int idx, + pwm_channel_t *out_channel); +int +pwm_get_by_ofw_property(device_t consumer, phandle_t node, + const char *prop_name, pwm_channel_t *out_channel); +int +pwm_get_by_ofw_name(device_t consumer, phandle_t node, const char *name, + pwm_channel_t *out_channel); + +#endif /* _PWMBUS_H_ */ Added: head/sys/dev/pwm/pwmbus_if.m ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/pwm/pwmbus_if.m Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,111 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause-FreeBSD +# +# Copyright (c) 2018 Emmanuel Vadot +# +# 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 + +INTERFACE pwmbus; + +CODE { + static int + pwm_default_set_flags(device_t dev, int channel, uint32_t flags) + { + + return (EOPNOTSUPP); + } + + static int + pwm_default_get_flags(device_t dev, int channel, uint32_t *flags) + { + + *flags = 0; + return (0); + } +}; + +HEADER { + #include +}; + +# +# Config the period (Total number of cycle in ns) and +# the duty (active number of cycle in ns) +# +METHOD int channel_config { + device_t bus; + int channel; + uint64_t period; + uint64_t duty; +}; + +# +# Get the period (Total number of cycle in ns) and +# the duty (active number of cycle in ns) +# +METHOD int channel_get_config { + device_t bus; + int channel; + uint64_t *period; + uint64_t *duty; +}; + +# +# Set the flags +# +METHOD int channel_set_flags { + device_t bus; + int channel; + uint32_t flags; +} DEFAULT pwm_default_set_flags; + +# +# Get the flags +# +METHOD int channel_get_flags { + device_t dev; + int channel; + uint32_t *flags; +} DEFAULT pwm_default_get_flags; + +# +# Enable the pwm output +# +METHOD int channel_enable { + device_t bus; + int channel; + bool enable; +}; + +# +# Is the pwm output enabled +# +METHOD int channel_is_enabled { + device_t bus; + int channel; + bool *enabled; +}; Added: head/sys/dev/pwm/pwmc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/pwm/pwmc.c Wed Dec 12 20:56:56 2018 (r342003) @@ -0,0 +1,161 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Emmanuel Vadot + * 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 "pwmbus_if.h" +#include "pwm_if.h" + +struct pwmc_softc { + device_t dev; + device_t pdev; + struct cdev *pwm_dev; + char name[32]; +}; + +static int +pwm_ioctl(struct cdev *dev, u_long cmd, caddr_t data, + int fflag, struct thread *td) +{ + struct pwmc_softc *sc; + struct pwm_state state; + device_t bus; + int nchannel; + int rv = 0; + + sc = dev->si_drv1; + bus = PWM_GET_BUS(sc->pdev); + if (bus == NULL) + return (EINVAL); + + switch (cmd) { + case PWMMAXCHANNEL: + nchannel = -1; + rv = PWM_CHANNEL_MAX(sc->pdev, &nchannel); + bcopy(&nchannel, data, sizeof(nchannel)); + break; + case PWMSETSTATE: + bcopy(data, &state, sizeof(state)); + rv = PWMBUS_CHANNEL_CONFIG(bus, state.channel, + state.period, state.duty); + if (rv == 0) + rv = PWMBUS_CHANNEL_ENABLE(bus, state.channel, + state.enable); + break; + case PWMGETSTATE: + bcopy(data, &state, sizeof(state)); + rv = PWMBUS_CHANNEL_GET_CONFIG(bus, state.channel, + &state.period, &state.duty); + if (rv != 0) + return (rv); + rv = PWMBUS_CHANNEL_IS_ENABLED(bus, state.channel, + &state.enable); + if (rv != 0) + return (rv); + bcopy(&state, data, sizeof(state)); + break; + } + + return (rv); +} + +static struct cdevsw pwm_cdevsw = { + .d_version = D_VERSION, + .d_name = "pwm", + .d_ioctl = pwm_ioctl +}; + +static int +pwmc_probe(device_t dev) +{ + + device_set_desc(dev, "PWM Controller"); + return (0); +} + +static int +pwmc_attach(device_t dev) +{ + struct pwmc_softc *sc; + struct make_dev_args args; + + sc = device_get_softc(dev); + sc->dev = dev; + sc->pdev = device_get_parent(dev); + + snprintf(sc->name, sizeof(sc->name), "pwmc%d", device_get_unit(dev)); + make_dev_args_init(&args); + args.mda_flags = MAKEDEV_CHECKNAME | MAKEDEV_WAITOK; + args.mda_devsw = &pwm_cdevsw; + args.mda_uid = UID_ROOT; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Wed Dec 12 20:58:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3C48132588A; Wed, 12 Dec 2018 20:58:44 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5BC4B80AE5; Wed, 12 Dec 2018 20:58:44 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4FD32D889; Wed, 12 Dec 2018 20:58:44 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCKwi2Q073230; Wed, 12 Dec 2018 20:58:44 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCKwhk4073227; Wed, 12 Dec 2018 20:58:43 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122058.wBCKwhk4073227@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 20:58:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342004 - in head/sys: arm/allwinner arm64/conf conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/allwinner arm64/conf conf X-SVN-Commit-Revision: 342004 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5BC4B80AE5 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.65 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.83)[-0.832,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 20:58:44 -0000 Author: manu Date: Wed Dec 12 20:58:43 2018 New Revision: 342004 URL: https://svnweb.freebsd.org/changeset/base/342004 Log: arm64: allwinner: Add pwm driver Add a pwm driver for Allwinner PWM Add pwm and aw_pwm to the GENERIC kernel Added: head/sys/arm/allwinner/aw_pwm.c (contents, props changed) Modified: head/sys/arm64/conf/GENERIC head/sys/conf/files.arm64 Added: head/sys/arm/allwinner/aw_pwm.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/allwinner/aw_pwm.c Wed Dec 12 20:58:43 2018 (r342004) @@ -0,0 +1,340 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Emmanuel Vadot + * + * 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$ + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include + +#include "pwm_if.h" + +#define AW_PWM_CTRL 0x00 +#define AW_PWM_CTRL_PRESCALE_MASK 0xF +#define AW_PWM_CTRL_EN (1 << 4) +#define AW_PWM_CTRL_ACTIVE_LEVEL_HIGH (1 << 5) +#define AW_PWM_CTRL_GATE (1 << 6) +#define AW_PWM_CTRL_MODE_MASK 0x80 +#define AW_PWM_CTRL_PULSE_MODE (1 << 7) +#define AW_PWM_CTRL_CYCLE_MODE (0 << 7) +#define AW_PWM_CTRL_PULSE_START (1 << 8) +#define AW_PWM_CTRL_CLK_BYPASS (1 << 9) +#define AW_PWM_CTRL_PERIOD_BUSY (1 << 28) + +#define AW_PWM_PERIOD 0x04 +#define AW_PWM_PERIOD_TOTAL_MASK 0xFFFF +#define AW_PWM_PERIOD_TOTAL_SHIFT 16 +#define AW_PWM_PERIOD_ACTIVE_MASK 0xFFFF +#define AW_PWM_PERIOD_ACTIVE_SHIFT 0 + +#define AW_PWM_MAX_FREQ 24000000 + +#define NS_PER_SEC 1000000000 + +static struct ofw_compat_data compat_data[] = { + { "allwinner,sun5i-a13-pwm", 1 }, + { NULL, 0 } +}; + +static struct resource_spec aw_pwm_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { -1, 0 } +}; + +struct aw_pwm_softc { + device_t dev; + device_t busdev; + clk_t clk; + struct resource *res; + + uint64_t clk_freq; + uint64_t period; + uint64_t duty; + uint32_t flags; + bool enabled; +}; + +static uint32_t aw_pwm_clk_prescaler[] = { + 120, + 180, + 240, + 360, + 480, + 0, + 0, + 0, + 12000, + 24000, + 36000, + 48000, + 72000, + 0, + 0, + 1, +}; + +#define AW_PWM_READ(sc, reg) bus_read_4((sc)->res, (reg)) +#define AW_PWM_WRITE(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static int aw_pwm_probe(device_t dev); +static int aw_pwm_attach(device_t dev); +static int aw_pwm_detach(device_t dev); + +static int +aw_pwm_probe(device_t dev) +{ + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) + return (ENXIO); + + device_set_desc(dev, "Allwinner PWM"); + return (BUS_PROBE_DEFAULT); +} + +static int +aw_pwm_attach(device_t dev) +{ + struct aw_pwm_softc *sc; + /* uint32_t reg; */ + int error; + + sc = device_get_softc(dev); + sc->dev = dev; + + error = clk_get_by_ofw_index(dev, 0, 0, &sc->clk); + if (error != 0) { + device_printf(dev, "cannot get clock\n"); + goto fail; + } + error = clk_enable(sc->clk); + + error = clk_get_freq(sc->clk, &sc->clk_freq); + + if (bus_alloc_resources(dev, aw_pwm_spec, &sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + error = ENXIO; + goto fail; + } + + if ((sc->busdev = pwmbus_attach_bus(dev)) == NULL) + device_printf(dev, "Cannot attach pwm bus\n"); + + return (0); + +fail: + aw_pwm_detach(dev); + return (error); +} + +static int +aw_pwm_detach(device_t dev) +{ + struct aw_pwm_softc *sc; + + sc = device_get_softc(dev); + + bus_generic_detach(sc->dev); + + bus_release_resources(dev, aw_pwm_spec, &sc->res); + + return (0); +} + +static int +aw_pwm_channel_max(device_t dev, int *nchannel) +{ + + *nchannel = 1; + + return (0); +} + +static int +aw_pwm_channel_config(device_t dev, int channel, uint64_t period, uint64_t duty) +{ + struct aw_pwm_softc *sc; + uint64_t period_freq, duty_freq; + uint64_t clk_rate, div; + uint32_t reg; + int prescaler; + int i; + + sc = device_get_softc(dev); + + period_freq = NS_PER_SEC / period; + if (period_freq > AW_PWM_MAX_FREQ) + return (EINVAL); + duty_freq = NS_PER_SEC / duty; + if (duty_freq < period_freq) { + device_printf(sc->dev, "duty < period\n"); + return (EINVAL); + } + + /* First test without prescaler */ + clk_rate = AW_PWM_MAX_FREQ; + prescaler = AW_PWM_CTRL_PRESCALE_MASK; + div = AW_PWM_MAX_FREQ / period_freq; + if ((div - 1) > AW_PWM_PERIOD_TOTAL_MASK) { + /* Test all prescaler */ + for (i = 0; i < nitems(aw_pwm_clk_prescaler); i++) { + if (aw_pwm_clk_prescaler[i] == 0) + continue; + div = (AW_PWM_MAX_FREQ * aw_pwm_clk_prescaler[i]) / period_freq; + if ((div - 1) < AW_PWM_PERIOD_TOTAL_MASK ) { + prescaler = i; + clk_rate = AW_PWM_MAX_FREQ / aw_pwm_clk_prescaler[i]; + break; + } + } + if (prescaler == AW_PWM_CTRL_PRESCALE_MASK) + return (EINVAL); + } + + reg = AW_PWM_READ(sc, AW_PWM_CTRL); + if (reg & AW_PWM_CTRL_PERIOD_BUSY) { + device_printf(sc->dev, "pwm busy\n"); + return (EBUSY); + } + + /* Write the prescalar */ + reg &= ~AW_PWM_CTRL_PRESCALE_MASK; + reg |= prescaler; + AW_PWM_WRITE(sc, AW_PWM_CTRL, reg); + + /* Write the total/active cycles */ + reg = ((clk_rate / period_freq) << AW_PWM_PERIOD_TOTAL_SHIFT) | + ((clk_rate / duty_freq) << AW_PWM_PERIOD_ACTIVE_SHIFT); + AW_PWM_WRITE(sc, AW_PWM_PERIOD, reg); + + sc->period = period; + sc->duty = duty; + + return (0); +} + +static int +aw_pwm_channel_get_config(device_t dev, int channel, uint64_t *period, uint64_t *duty) +{ + struct aw_pwm_softc *sc; + + sc = device_get_softc(dev); + + *period = sc->period; + *duty = sc->duty; + + return (0); +} + +static int +aw_pwm_channel_enable(device_t dev, int channel, bool enable) +{ + struct aw_pwm_softc *sc; + uint32_t reg; + + sc = device_get_softc(dev); + + if (enable && sc->enabled) + return (0); + + reg = AW_PWM_READ(sc, AW_PWM_CTRL); + if (enable) + reg |= AW_PWM_CTRL_GATE | AW_PWM_CTRL_EN; + else + reg &= ~(AW_PWM_CTRL_GATE | AW_PWM_CTRL_EN); + + AW_PWM_WRITE(sc, AW_PWM_CTRL, reg); + + sc->enabled = enable; + + return (0); +} + +static int +aw_pwm_channel_is_enabled(device_t dev, int channel, bool *enabled) +{ + struct aw_pwm_softc *sc; + + sc = device_get_softc(dev); + + *enabled = sc->enabled; + + return (0); +} + +static device_t +aw_pwm_get_bus(device_t dev) +{ + struct aw_pwm_softc *sc; + + sc = device_get_softc(dev); + + return (sc->busdev); +} +static device_method_t aw_pwm_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, aw_pwm_probe), + DEVMETHOD(device_attach, aw_pwm_attach), + DEVMETHOD(device_detach, aw_pwm_detach), + + /* pwm interface */ + DEVMETHOD(pwm_get_bus, aw_pwm_get_bus), + DEVMETHOD(pwm_channel_max, aw_pwm_channel_max), + DEVMETHOD(pwm_channel_config, aw_pwm_channel_config), + DEVMETHOD(pwm_channel_get_config, aw_pwm_channel_get_config), + DEVMETHOD(pwm_channel_enable, aw_pwm_channel_enable), + DEVMETHOD(pwm_channel_is_enabled, aw_pwm_channel_is_enabled), + + DEVMETHOD_END +}; + +static driver_t aw_pwm_driver = { + "pwm", + aw_pwm_methods, + sizeof(struct aw_pwm_softc), +}; + +static devclass_t aw_pwm_devclass; + +DRIVER_MODULE(aw_pwm, simplebus, aw_pwm_driver, aw_pwm_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Wed Dec 12 20:56:56 2018 (r342003) +++ head/sys/arm64/conf/GENERIC Wed Dec 12 20:58:43 2018 (r342004) @@ -240,6 +240,10 @@ device aw_thermal # Allwinner Thermal Sensor Controll device spibus device bcm2835_spi # Broadcom BCM283x SPI bus +# PWM +device pwm +device aw_pwm + # Console device vt device kbdmux Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 20:56:56 2018 (r342003) +++ head/sys/conf/files.arm64 Wed Dec 12 20:58:43 2018 (r342004) @@ -31,6 +31,7 @@ arm/allwinner/aw_gpio.c optional gpio aw_gpio fdt arm/allwinner/aw_mmc.c optional mmc aw_mmc fdt | mmccam aw_mmc fdt arm/allwinner/aw_nmi.c optional aw_nmi fdt \ compile-with "${NORMAL_C} -I$S/gnu/dts/include" +arm/allwinner/aw_pwm.c optional aw_pwm fdt arm/allwinner/aw_rsb.c optional aw_rsb fdt arm/allwinner/aw_rtc.c optional aw_rtc fdt arm/allwinner/aw_sid.c optional aw_sid nvmem fdt From owner-svn-src-head@freebsd.org Wed Dec 12 21:02:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D3671325C98; Wed, 12 Dec 2018 21:02:23 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 408AE810CF; Wed, 12 Dec 2018 21:02:23 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30AECDA5A; Wed, 12 Dec 2018 21:02:23 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCL2NC2078133; Wed, 12 Dec 2018 21:02:23 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCL2MGt078130; Wed, 12 Dec 2018 21:02:22 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122102.wBCL2MGt078130@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 21:02:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342005 - in head/sys: dts/arm64/overlays modules/dtb/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: dts/arm64/overlays modules/dtb/allwinner X-SVN-Commit-Revision: 342005 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 408AE810CF X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.65 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.82)[-0.823,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 21:02:23 -0000 Author: manu Date: Wed Dec 12 21:02:22 2018 New Revision: 342005 URL: https://svnweb.freebsd.org/changeset/base/342005 Log: arm64: allwinner: Add DTSO for pwm and r_pwm Those are both dtso (overlays) for the two pwm controllers found on the A64. Added: head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso (contents, props changed) head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso (contents, props changed) Modified: head/sys/modules/dtb/allwinner/Makefile Added: head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso Wed Dec 12 21:02:22 2018 (r342005) @@ -0,0 +1,52 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "allwinner,sun50i-a64"; +}; + +&{/soc} { + pwm: pwm@1c21400 { + compatible = "allwinner,sun50i-a64-pwm", + "allwinner,sun5i-a13-pwm"; + reg = <0x01c21400 0x400>; + clocks = <&osc24M>; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_pin>; + #pwm-cells = <3>; + status = "disabled"; + }; +}; + +&{/soc/pinctrl@1c20800} { + pwm_pin: pwm_pin { + pins = "PD22"; + function = "pwm"; + }; +}; +/dts-v1/; +/plugin/; + +/ { + compatible = "allwinner,sun50i-a64"; +}; + +&{/soc} { + pwm: pwm@1c21400 { + compatible = "allwinner,sun50i-a64-pwm", + "allwinner,sun5i-a13-pwm"; + reg = <0x01c21400 0x400>; + clocks = <&osc24M>; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_pin>; + #pwm-cells = <3>; + status = "disabled"; + }; +}; + +&{/soc/pinctrl@1c20800} { + pwm_pin: pwm_pin { + pins = "PD22"; + function = "pwm"; + }; +}; Added: head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso Wed Dec 12 21:02:22 2018 (r342005) @@ -0,0 +1,52 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "allwinner,sun50i-a64"; +}; + +&{/soc} { + r_pwm: pwm@1f03800 { + compatible = "allwinner,sun50i-a64-pwm", + "allwinner,sun5i-a13-pwm"; + reg = <0x01f03800 0x400>; + clocks = <&osc24M>; + pinctrl-names = "default"; + pinctrl-0 = <&r_pwm_pin>; + #pwm-cells = <3>; + status = "okay"; + }; +}; + +&{/soc/pinctrl@1f02c00} { + r_pwm_pin: pwm { + pins = "PL10"; + function = "s_pwm"; + }; +}; +/dts-v1/; +/plugin/; + +/ { + compatible = "allwinner,sun50i-a64"; +}; + +&{/soc} { + r_pwm: pwm@1f03800 { + compatible = "allwinner,sun50i-a64-pwm", + "allwinner,sun5i-a13-pwm"; + reg = <0x01f03800 0x400>; + clocks = <&osc24M>; + pinctrl-names = "default"; + pinctrl-0 = <&r_pwm_pin>; + #pwm-cells = <3>; + status = "okay"; + }; +}; + +&{/soc/pinctrl@1f02c00} { + r_pwm_pin: pwm { + pins = "PL10"; + function = "s_pwm"; + }; +}; Modified: head/sys/modules/dtb/allwinner/Makefile ============================================================================== --- head/sys/modules/dtb/allwinner/Makefile Wed Dec 12 20:58:43 2018 (r342004) +++ head/sys/modules/dtb/allwinner/Makefile Wed Dec 12 21:02:22 2018 (r342005) @@ -45,6 +45,8 @@ DTS= \ allwinner/sun50i-h5-orangepi-pc2.dts DTSO= sun50i-a64-opp.dtso \ + sun50i-a64-pwm.dtso \ + sun50i-a64-rpwm.dtso \ sun50i-a64-sid.dtso \ sun50i-a64-ths.dtso \ sun50i-a64-timer.dtso From owner-svn-src-head@freebsd.org Wed Dec 12 21:10:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E150A1325F34; Wed, 12 Dec 2018 21:10:35 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8138981468; Wed, 12 Dec 2018 21:10:35 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 657AEDA86; Wed, 12 Dec 2018 21:10:35 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCLAZdj078521; Wed, 12 Dec 2018 21:10:35 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCLAZrX078519; Wed, 12 Dec 2018 21:10:35 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122110.wBCLAZrX078519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 21:10:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342006 - head/sys/dts/arm64/overlays X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dts/arm64/overlays X-SVN-Commit-Revision: 342006 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8138981468 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 21:10:36 -0000 Author: manu Date: Wed Dec 12 21:10:34 2018 New Revision: 342006 URL: https://svnweb.freebsd.org/changeset/base/342006 Log: arm64: allwinner: Fix pwm dtso Double patched files ended up in the tree Reported by: kevans Modified: head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso Modified: head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso ============================================================================== --- head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso Wed Dec 12 21:02:22 2018 (r342005) +++ head/sys/dts/arm64/overlays/sun50i-a64-pwm.dtso Wed Dec 12 21:10:34 2018 (r342006) @@ -24,29 +24,3 @@ function = "pwm"; }; }; -/dts-v1/; -/plugin/; - -/ { - compatible = "allwinner,sun50i-a64"; -}; - -&{/soc} { - pwm: pwm@1c21400 { - compatible = "allwinner,sun50i-a64-pwm", - "allwinner,sun5i-a13-pwm"; - reg = <0x01c21400 0x400>; - clocks = <&osc24M>; - pinctrl-names = "default"; - pinctrl-0 = <&pwm_pin>; - #pwm-cells = <3>; - status = "disabled"; - }; -}; - -&{/soc/pinctrl@1c20800} { - pwm_pin: pwm_pin { - pins = "PD22"; - function = "pwm"; - }; -}; Modified: head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso ============================================================================== --- head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso Wed Dec 12 21:02:22 2018 (r342005) +++ head/sys/dts/arm64/overlays/sun50i-a64-rpwm.dtso Wed Dec 12 21:10:34 2018 (r342006) @@ -24,29 +24,3 @@ function = "s_pwm"; }; }; -/dts-v1/; -/plugin/; - -/ { - compatible = "allwinner,sun50i-a64"; -}; - -&{/soc} { - r_pwm: pwm@1f03800 { - compatible = "allwinner,sun50i-a64-pwm", - "allwinner,sun5i-a13-pwm"; - reg = <0x01f03800 0x400>; - clocks = <&osc24M>; - pinctrl-names = "default"; - pinctrl-0 = <&r_pwm_pin>; - #pwm-cells = <3>; - status = "okay"; - }; -}; - -&{/soc/pinctrl@1f02c00} { - r_pwm_pin: pwm { - pins = "PL10"; - function = "s_pwm"; - }; -}; From owner-svn-src-head@freebsd.org Wed Dec 12 21:25:53 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 039C913267C7; Wed, 12 Dec 2018 21:25:53 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9ED6B82001; Wed, 12 Dec 2018 21:25:52 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 928A7DDFE; Wed, 12 Dec 2018 21:25:52 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCLPq7o088628; Wed, 12 Dec 2018 21:25:52 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCLPq5R088627; Wed, 12 Dec 2018 21:25:52 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122125.wBCLPq5R088627@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 21:25:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342007 - head/usr.sbin/pwm X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/usr.sbin/pwm X-SVN-Commit-Revision: 342007 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9ED6B82001 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.64 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.81)[-0.812,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 21:25:53 -0000 Author: manu Date: Wed Dec 12 21:25:52 2018 New Revision: 342007 URL: https://svnweb.freebsd.org/changeset/base/342007 Log: pwm: Fix some arches by using %ju and casting to uintmax_t Reported by: ci.freebsd.org Modified: head/usr.sbin/pwm/pwm.c Modified: head/usr.sbin/pwm/pwm.c ============================================================================== --- head/usr.sbin/pwm/pwm.c Wed Dec 12 21:10:34 2018 (r342006) +++ head/usr.sbin/pwm/pwm.c Wed Dec 12 21:25:52 2018 (r342007) @@ -190,9 +190,9 @@ main(int argc, char *argv[]) } break; case PWM_SHOW_CONFIG: - printf("period: %lu\nduty: %lu\nenabled:%d\n", - state.period, - state.duty, + printf("period: %ju\nduty: %ju\nenabled:%d\n", + (uintmax_t) state.period, + (uintmax_t) state.duty, state.enable); break; case PWM_PERIOD: From owner-svn-src-head@freebsd.org Wed Dec 12 21:56:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6DBD1327265; Wed, 12 Dec 2018 21:56:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5E72282F0E; Wed, 12 Dec 2018 21:56: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 54C9CE2ED; Wed, 12 Dec 2018 21:56: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 wBCLumu7004451; Wed, 12 Dec 2018 21:56:48 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCLum13004450; Wed, 12 Dec 2018 21:56:48 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201812122156.wBCLum13004450@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Wed, 12 Dec 2018 21:56:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342009 - head/secure/lib/libcrypto X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: head/secure/lib/libcrypto X-SVN-Commit-Revision: 342009 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5E72282F0E X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.50)[-0.500,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 21:56:49 -0000 Author: jkim Date: Wed Dec 12 21:56:47 2018 New Revision: 342009 URL: https://svnweb.freebsd.org/changeset/base/342009 Log: Enable devcryptoeng for OpenSSL. Since OpenSSL 1.1.1, the good old BSD-specific cryptodev engine has been deprecated in favor of this new engine. However, this engine is not throughly tested on FreeBSD because it was originally written for Linux. http://cryptodev-linux.org/ Also, the author actually meant to enable it by default on BSD platforms but he failed to do so because there was a bug in the Configure script. https://github.com/openssl/openssl/pull/7882 Now they found that it was more generic issue. https://github.com/openssl/openssl/pull/7885 Therefore, we need to enable this engine on head to give it more exposure. Modified: head/secure/lib/libcrypto/Makefile head/secure/lib/libcrypto/opensslconf.h.in Modified: head/secure/lib/libcrypto/Makefile ============================================================================== --- head/secure/lib/libcrypto/Makefile Wed Dec 12 21:56:45 2018 (r342008) +++ head/secure/lib/libcrypto/Makefile Wed Dec 12 21:56:47 2018 (r342009) @@ -192,8 +192,8 @@ SRCS+= ecp_nistz256-x86.S ecp_nistz256.c .endif # engine -SRCS+= eng_all.c eng_cnf.c eng_ctrl.c eng_dyn.c eng_err.c eng_fat.c -SRCS+= eng_init.c eng_lib.c eng_list.c eng_openssl.c eng_pkey.c +SRCS+= eng_all.c eng_cnf.c eng_ctrl.c eng_devcrypto.c eng_dyn.c eng_err.c +SRCS+= eng_fat.c eng_init.c eng_lib.c eng_list.c eng_openssl.c eng_pkey.c SRCS+= eng_rdrand.c eng_table.c tb_asnmth.c tb_cipher.c tb_dh.c tb_digest.c SRCS+= tb_dsa.c tb_eckey.c tb_pkmeth.c tb_rand.c tb_rsa.c Modified: head/secure/lib/libcrypto/opensslconf.h.in ============================================================================== --- head/secure/lib/libcrypto/opensslconf.h.in Wed Dec 12 21:56:45 2018 (r342008) +++ head/secure/lib/libcrypto/opensslconf.h.in Wed Dec 12 21:56:47 2018 (r342009) @@ -46,9 +46,6 @@ extern "C" { #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE #endif -#ifndef OPENSSL_NO_DEVCRYPTOENG -# define OPENSSL_NO_DEVCRYPTOENG -#endif #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 #endif From owner-svn-src-head@freebsd.org Wed Dec 12 21:56:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA3541327257; Wed, 12 Dec 2018 21:56:46 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5301E82F04; Wed, 12 Dec 2018 21:56:46 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 428F8E2EC; Wed, 12 Dec 2018 21:56:46 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCLuk5l004405; Wed, 12 Dec 2018 21:56:46 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCLujCU004401; Wed, 12 Dec 2018 21:56:45 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122156.wBCLujCU004401@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 21:56:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342008 - in head/sys: conf dev/fdt X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: conf dev/fdt X-SVN-Commit-Revision: 342008 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5301E82F04 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.51)[-0.506,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 21:56:47 -0000 Author: manu Date: Wed Dec 12 21:56:45 2018 New Revision: 342008 URL: https://svnweb.freebsd.org/changeset/base/342008 Log: fdt: Add support for simple-mfd bus Quoting the binding Documentation : "These devices comprise a nexus for heterogeneous hardware blocks containing more than one non-unique yet varying hardware functionality." Reviewed by: loos Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D17751 Added: head/sys/dev/fdt/simple_mfd.c (contents, props changed) Modified: head/sys/conf/files head/sys/dev/fdt/simplebus.c head/sys/dev/fdt/simplebus.h Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Dec 12 21:25:52 2018 (r342007) +++ head/sys/conf/files Wed Dec 12 21:56:45 2018 (r342008) @@ -1762,6 +1762,7 @@ dev/fdt/fdt_slicer.c optional fdt cfi | fdt nand | fd dev/fdt/fdt_static_dtb.S optional fdt fdt_dtb_static \ dependency "fdt_dtb_file" dev/fdt/simplebus.c optional fdt +dev/fdt/simple_mfd.c optional fdt dev/fe/if_fe.c optional fe dev/fe/if_fe_pccard.c optional fe pccard dev/filemon/filemon.c optional filemon Added: head/sys/dev/fdt/simple_mfd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/fdt/simple_mfd.c Wed Dec 12 21:56:45 2018 (r342008) @@ -0,0 +1,176 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 + +struct simple_mfd_softc { + struct simplebus_softc sc; +}; + +device_t simple_mfd_add_device(device_t dev, phandle_t node, u_int order, + const char *name, int unit, struct simplebus_devinfo *di); +struct simplebus_devinfo *simple_mfd_setup_dinfo(device_t dev, phandle_t node, struct simplebus_devinfo *di); + +static int +simple_mfd_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + if (!ofw_bus_is_compatible(dev, "simple-mfd")) + return (ENXIO); + + device_set_desc(dev, "Simple MFD (Multi-Functions Device)"); + + return (BUS_PROBE_GENERIC); +} + +static int +simple_mfd_attach(device_t dev) +{ + struct simple_mfd_softc *sc; + phandle_t node, child; + device_t cdev; + + sc = device_get_softc(dev); + node = ofw_bus_get_node(dev); + + /* Parse address-cells and size-cells from the parent node as a fallback */ + if (OF_getencprop(node, "#address-cells", &sc->sc.acells, + sizeof(sc->sc.acells)) == -1) { + if (OF_getencprop(OF_parent(node), "#address-cells", &sc->sc.acells, + sizeof(sc->sc.acells)) == -1) { + sc->sc.acells = 2; + } + } + if (OF_getencprop(node, "#size-cells", &sc->sc.scells, + sizeof(sc->sc.scells)) == -1) { + if (OF_getencprop(OF_parent(node), "#size-cells", &sc->sc.scells, + sizeof(sc->sc.scells)) == -1) { + sc->sc.scells = 1; + } + } + + /* If the node has a ranges prop, parse it so children mapping will be done correctly */ + if (OF_hasprop(node, "ranges")) { + if (simplebus_fill_ranges(node, &sc->sc) < 0) { + device_printf(dev, "could not get ranges\n"); + return (ENXIO); + } + } + + /* Attach child devices */ + for (child = OF_child(node); child > 0; child = OF_peer(child)) { + cdev = simple_mfd_add_device(dev, child, 0, NULL, -1, NULL); + if (cdev != NULL) + device_probe_and_attach(cdev); + } + + return (bus_generic_attach(dev)); +} + +struct simplebus_devinfo * +simple_mfd_setup_dinfo(device_t dev, phandle_t node, + struct simplebus_devinfo *di) +{ + struct simplebus_softc *sc; + struct simplebus_devinfo *ndi; + + sc = device_get_softc(dev); + if (di == NULL) + ndi = malloc(sizeof(*ndi), M_DEVBUF, M_WAITOK | M_ZERO); + else + ndi = di; + if (ofw_bus_gen_setup_devinfo(&ndi->obdinfo, node) != 0) { + if (di == NULL) + free(ndi, M_DEVBUF); + return (NULL); + } + + /* reg resources is from the parent but interrupts is on the node itself */ + resource_list_init(&ndi->rl); + ofw_bus_reg_to_rl(dev, OF_parent(node), sc->acells, sc->scells, &ndi->rl); + ofw_bus_intr_to_rl(dev, node, &ndi->rl, NULL); + + return (ndi); +} + +device_t +simple_mfd_add_device(device_t dev, phandle_t node, u_int order, + const char *name, int unit, struct simplebus_devinfo *di) +{ + struct simplebus_devinfo *ndi; + device_t cdev; + + if ((ndi = simple_mfd_setup_dinfo(dev, node, di)) == NULL) + return (NULL); + cdev = device_add_child_ordered(dev, order, name, unit); + if (cdev == NULL) { + device_printf(dev, "<%s>: device_add_child failed\n", + ndi->obdinfo.obd_name); + resource_list_free(&ndi->rl); + ofw_bus_gen_destroy_devinfo(&ndi->obdinfo); + if (di == NULL) + free(ndi, M_DEVBUF); + return (NULL); + } + device_set_ivars(cdev, ndi); + + return(cdev); +} + +static device_method_t simple_mfd_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, simple_mfd_probe), + DEVMETHOD(device_attach, simple_mfd_attach), + + DEVMETHOD_END +}; + +DEFINE_CLASS_1(simple_mfd, simple_mfd_driver, simple_mfd_methods, + sizeof(struct simple_mfd_softc), simplebus_driver); + +static devclass_t simple_mfd_devclass; + +EARLY_DRIVER_MODULE(simple_mfd, simplebus, simple_mfd_driver, + simple_mfd_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_LATE); +MODULE_VERSION(simple_mfd, 1); Modified: head/sys/dev/fdt/simplebus.c ============================================================================== --- head/sys/dev/fdt/simplebus.c Wed Dec 12 21:25:52 2018 (r342007) +++ head/sys/dev/fdt/simplebus.c Wed Dec 12 21:56:45 2018 (r342008) @@ -62,13 +62,6 @@ static const struct ofw_bus_devinfo *simplebus_get_dev device_t child); /* - * local methods - */ - -static int simplebus_fill_ranges(phandle_t node, - struct simplebus_softc *sc); - -/* * Driver methods. */ static device_method_t simplebus_methods[] = { @@ -184,7 +177,7 @@ simplebus_init(device_t dev, phandle_t node) OF_getencprop(node, "#size-cells", &sc->scells, sizeof(sc->scells)); } -static int +int simplebus_fill_ranges(phandle_t node, struct simplebus_softc *sc) { int host_address_cells; Modified: head/sys/dev/fdt/simplebus.h ============================================================================== --- head/sys/dev/fdt/simplebus.h Wed Dec 12 21:25:52 2018 (r342007) +++ head/sys/dev/fdt/simplebus.h Wed Dec 12 21:56:45 2018 (r342008) @@ -61,4 +61,6 @@ device_t simplebus_add_device(device_t dev, phandle_t const char *name, int unit, struct simplebus_devinfo *di); struct simplebus_devinfo *simplebus_setup_dinfo(device_t dev, phandle_t node, struct simplebus_devinfo *di); +int simplebus_fill_ranges(phandle_t node, + struct simplebus_softc *sc); #endif /* _FDT_SIMPLEBUS_H */ From owner-svn-src-head@freebsd.org Wed Dec 12 21:58:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E1A713273C1; Wed, 12 Dec 2018 21:58:31 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 12B9C832F6; Wed, 12 Dec 2018 21:58:31 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 08FE2E2FC; Wed, 12 Dec 2018 21:58:31 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCLwUp7004699; Wed, 12 Dec 2018 21:58:30 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCLwUYD004697; Wed, 12 Dec 2018 21:58:30 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122158.wBCLwUYD004697@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 21:58:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342010 - in head/sys: arm64/conf conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm64/conf conf X-SVN-Commit-Revision: 342010 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 12B9C832F6 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.50)[-0.500,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 21:58:31 -0000 Author: manu Date: Wed Dec 12 21:58:30 2018 New Revision: 342010 URL: https://svnweb.freebsd.org/changeset/base/342010 Log: arm64: Add new SoC type MARVELL_8K Sponsored by: Rubicon Communications, LLC ("Netgate") Modified: head/sys/arm64/conf/GENERIC head/sys/conf/options.arm64 Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Wed Dec 12 21:56:47 2018 (r342009) +++ head/sys/arm64/conf/GENERIC Wed Dec 12 21:58:30 2018 (r342010) @@ -107,6 +107,7 @@ options SOC_ALLWINNER_H5 options SOC_CAVM_THUNDERX options SOC_HISI_HI6220 options SOC_BRCM_BCM2837 +options SOC_MARVELL_8K options SOC_ROCKCHIP_RK3328 options SOC_ROCKCHIP_RK3399 options SOC_XILINX_ZYNQ Modified: head/sys/conf/options.arm64 ============================================================================== --- head/sys/conf/options.arm64 Wed Dec 12 21:56:47 2018 (r342009) +++ head/sys/conf/options.arm64 Wed Dec 12 21:58:30 2018 (r342010) @@ -19,6 +19,7 @@ SOC_ALLWINNER_H5 opt_soc.h SOC_BRCM_BCM2837 opt_soc.h SOC_CAVM_THUNDERX opt_soc.h SOC_HISI_HI6220 opt_soc.h +SOC_MARVELL_8K opt_soc.h SOC_ROCKCHIP_RK3328 opt_soc.h SOC_ROCKCHIP_RK3399 opt_soc.h SOC_XILINX_ZYNQ opt_soc.h From owner-svn-src-head@freebsd.org Wed Dec 12 22:00:06 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 739CA13274E9; Wed, 12 Dec 2018 22:00:06 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3D334834BB; Wed, 12 Dec 2018 22:00:06 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3265FE302; Wed, 12 Dec 2018 22:00:06 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM067b004861; Wed, 12 Dec 2018 22:00:06 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM05kK004858; Wed, 12 Dec 2018 22:00:05 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122200.wBCM05kK004858@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:00:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342011 - in head/sys: arm/mv arm64/conf conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/mv arm64/conf conf X-SVN-Commit-Revision: 342011 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3D334834BB X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.51)[-0.513,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:00:06 -0000 Author: manu Date: Wed Dec 12 22:00:05 2018 New Revision: 342011 URL: https://svnweb.freebsd.org/changeset/base/342011 Log: arm64: mvebu_pinctrl: Add driver for Marvell Pinmux Controller Add a driver compatible with Marvell mvebu-pinctrl and add ap806-pinctrl support. Sponsored by: Rubicon Communications, LCC ("Netgate") Added: head/sys/arm/mv/mvebu_pinctrl.c (contents, props changed) Modified: head/sys/arm64/conf/GENERIC head/sys/conf/files.arm64 Added: head/sys/arm/mv/mvebu_pinctrl.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mvebu_pinctrl.c Wed Dec 12 22:00:05 2018 (r342011) @@ -0,0 +1,246 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include + +#include "opt_soc.h" + +#define PINS_PER_REG 8 +#define BITS_PER_PIN 4 +#define PINS_MASK 0xf +#define MAX_PIN_FUNC 5 + +struct mv_pins { + const char *name; + const char *functions[MAX_PIN_FUNC]; +}; + +struct mv_padconf { + const struct mv_pins *pins; + size_t npins; +}; + +#ifdef SOC_MARVELL_8K +const static struct mv_pins ap806_pins[] = { + {"mpp0", {"gpio", "sdio", NULL, "spi0"}}, + {"mpp1", {"gpio", "sdio", NULL, "spi0"}}, + {"mpp2", {"gpio", "sdio", NULL, "spi0"}}, + {"mpp3", {"gpio", "sdio", NULL, "spi0"}}, + {"mpp4", {"gpio", "sdio", NULL, "i2c0"}}, + {"mpp5", {"gpio", "sdio", NULL, "i2c0"}}, + {"mpp6", {"gpio", "sdio", NULL, NULL}}, + {"mpp7", {"gpio", "sdio", NULL, "uart1"}}, + {"mpp8", {"gpio", "sdio", NULL, "uart1"}}, + {"mpp9", {"gpio", "sdio", NULL, "spi0"}}, + {"mpp10", {"gpio", "sdio", NULL, NULL}}, + {"mpp11", {"gpio", NULL, NULL, "uart0"}}, + {"mpp12", {"gpio", "sdio", "sdio", NULL}}, + {"mpp13", {"gpio", NULL, NULL}}, + {"mpp14", {"gpio", NULL, NULL}}, + {"mpp15", {"gpio", NULL, NULL}}, + {"mpp16", {"gpio", NULL, NULL}}, + {"mpp17", {"gpio", NULL, NULL}}, + {"mpp18", {"gpio", NULL, NULL}}, + {"mpp19", {"gpio", NULL, NULL, "uart0", "sdio"}}, +}; + +const struct mv_padconf ap806_padconf = { + .npins = nitems(ap806_pins), + .pins = ap806_pins, +}; +#endif + +struct mv_pinctrl_softc { + device_t dev; + struct resource *res; + + struct mv_padconf *padconf; +}; + +static struct resource_spec mv_pinctrl_res_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE | RF_SHAREABLE }, + { -1, 0 } +}; + +static struct ofw_compat_data compat_data[] = { +#ifdef SOC_MARVELL_8K + {"marvell,ap806-pinctrl", (uintptr_t)&ap806_padconf}, +#endif + {NULL, 0} +}; + +#define RD4(sc, reg) bus_read_4((sc)->res, (reg)) +#define WR4(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static void +mv_pinctrl_configure_pin(struct mv_pinctrl_softc *sc, uint32_t pin, + uint32_t function) +{ + uint32_t offset, shift, reg; + + offset = (pin / PINS_PER_REG) * BITS_PER_PIN; + shift = (pin % PINS_PER_REG) * BITS_PER_PIN; + reg = RD4(sc, offset); + reg &= ~(PINS_MASK << shift); + reg |= function << shift; + WR4(sc, offset, reg); +} + +static int +mv_pinctrl_configure_pins(device_t dev, phandle_t cfgxref) +{ + struct mv_pinctrl_softc *sc; + phandle_t node; + char *function; + const char **pins; + int i, pin_num, pin_func, npins; + + sc = device_get_softc(dev); + node = OF_node_from_xref(cfgxref); + + if (OF_getprop_alloc(node, "marvell,function", + (void **)&function) == -1) + return (ENOMEM); + + npins = ofw_bus_string_list_to_array(node, "marvell,pins", &pins); + if (npins == -1) + return (ENOMEM); + + for (i = 0; i < npins; i++) { + for (pin_num = 0; pin_num < sc->padconf->npins; pin_num++) { + if (strcmp(pins[i], sc->padconf->pins[pin_num].name) == 0) + break; + } + if (pin_num == sc->padconf->npins) + continue; + + for (pin_func = 0; pin_func < MAX_PIN_FUNC; pin_func++) + if (sc->padconf->pins[pin_num].functions[pin_func] && + strcmp(function, sc->padconf->pins[pin_num].functions[pin_func]) == 0) + break; + + if (pin_func == MAX_PIN_FUNC) + continue; + + mv_pinctrl_configure_pin(sc, pin_num, pin_func); + } + + OF_prop_free(pins); + + return (0); +} + +static int +mv_pinctrl_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Marvell Pinctrl controller"); + return (BUS_PROBE_DEFAULT); +} + +static int +mv_pinctrl_attach(device_t dev) +{ + struct mv_pinctrl_softc *sc; + phandle_t node; + + sc = device_get_softc(dev); + sc->dev = dev; + sc->padconf = (struct mv_padconf *)ofw_bus_search_compatible(dev, compat_data)->ocd_data; + + if (bus_alloc_resources(dev, mv_pinctrl_res_spec, &sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + return (ENXIO); + } + + node = ofw_bus_get_node(dev); + + fdt_pinctrl_register(dev, "marvell,pins"); + fdt_pinctrl_configure_tree(dev); + + return (0); +} + +static int +mv_pinctrl_detach(device_t dev) +{ + + return (EBUSY); +} + +static device_method_t mv_pinctrl_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mv_pinctrl_probe), + DEVMETHOD(device_attach, mv_pinctrl_attach), + DEVMETHOD(device_detach, mv_pinctrl_detach), + + /* fdt_pinctrl interface */ + DEVMETHOD(fdt_pinctrl_configure,mv_pinctrl_configure_pins), + + DEVMETHOD_END +}; + +static devclass_t mv_pinctrl_devclass; + +static driver_t mv_pinctrl_driver = { + "mv_pinctrl", + mv_pinctrl_methods, + sizeof(struct mv_pinctrl_softc), +}; + +EARLY_DRIVER_MODULE(mv_pinctrl, simplebus, mv_pinctrl_driver, + mv_pinctrl_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Wed Dec 12 21:58:30 2018 (r342010) +++ head/sys/arm64/conf/GENERIC Wed Dec 12 22:00:05 2018 (r342011) @@ -199,11 +199,12 @@ device muge device smcphy device smsc -# GPIO +# GPIO / PINCTRL device aw_gpio # Allwinner GPIO controller device gpio device gpioled device fdt_pinctrl +device mvebu_pinctrl # Marvell Pinmux Controller # I2C device aw_rsb # Allwinner Reduced Serial Bus Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 21:58:30 2018 (r342010) +++ head/sys/conf/files.arm64 Wed Dec 12 22:00:05 2018 (r342011) @@ -89,6 +89,7 @@ arm/broadcom/bcm2835/bcm2835_vcio.c optional soc_brcm arm/broadcom/bcm2835/bcm2835_wdog.c optional soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2836.c optional soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm283x_dwc_fdt.c optional dwcotg fdt soc_brcm_bcm2837 +arm/mv/mvebu_pinctrl.c optional mvebu_pinctrl fdt arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt arm/xilinx/uart_dev_cdnc.c optional uart soc_xilinx_zynq arm64/acpica/acpi_machdep.c optional acpi From owner-svn-src-head@freebsd.org Wed Dec 12 22:01:07 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C2FEF1327753; Wed, 12 Dec 2018 22:01:07 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6B5C9836FD; Wed, 12 Dec 2018 22:01:07 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61D4CE448; Wed, 12 Dec 2018 22:01:07 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM17nR006472; Wed, 12 Dec 2018 22:01:07 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM17xl006471; Wed, 12 Dec 2018 22:01:07 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122201.wBCM17xl006471@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:01:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342012 - in head/sys: arm/mv conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/mv conf X-SVN-Commit-Revision: 342012 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6B5C9836FD X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.51)[-0.506,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:01:08 -0000 Author: manu Date: Wed Dec 12 22:01:06 2018 New Revision: 342012 URL: https://svnweb.freebsd.org/changeset/base/342012 Log: arm64: marvell: Add driver for Marvell Ap806 System Controller The first two clocks are for the clusters and their frequencies can be found reading a register. Then a fixed 1200Mhz clock is present and two fixed clocks, 'mss' which is 1200 / 6 and 'sdio' which is 1200 / 3. Sponsored by: Rubicon Communications, LLC ("Netgate") Added: head/sys/arm/mv/mv_ap806_clock.c (contents, props changed) Modified: head/sys/conf/files.arm64 Added: head/sys/arm/mv/mv_ap806_clock.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mv_ap806_clock.c Wed Dec 12 22:01:06 2018 (r342012) @@ -0,0 +1,210 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include + +static struct clk_fixed_def ap806_clk_cluster_0 = { + .clkdef.id = 0, + .clkdef.name = "ap806-cpu-cluster-0", + .freq = 0, +}; + +static struct clk_fixed_def ap806_clk_cluster_1 = { + .clkdef.id = 1, + .clkdef.name = "ap806-cpu-cluster-1", + .freq = 0, +}; + +static struct clk_fixed_def ap806_clk_fixed = { + .clkdef.id = 2, + .clkdef.name = "ap806-fixed", + .freq = 1200000000, +}; + +/* Thoses are the only exported clocks AFAICT */ + +static const char *mss_parents[] = {"ap806-fixed"}; +static struct clk_fixed_def ap806_clk_mss = { + .clkdef.id = 3, + .clkdef.name = "ap806-mss", + .clkdef.parent_names = mss_parents, + .clkdef.parent_cnt = 1, + .mult = 1, + .div = 6, +}; + +static const char *sdio_parents[] = {"ap806-fixed"}; +static struct clk_fixed_def ap806_clk_sdio = { + .clkdef.id = 4, + .clkdef.name = "ap806-sdio", + .clkdef.parent_names = sdio_parents, + .clkdef.parent_cnt = 1, + .mult = 1, + .div = 3, +}; + +struct mv_ap806_clock_softc { + struct simplebus_softc simplebus_sc; + device_t dev; + struct resource *res; +}; + +static struct resource_spec mv_ap806_clock_res_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE | RF_SHAREABLE }, + { -1, 0 } +}; + +static struct ofw_compat_data compat_data[] = { + {"marvell,ap806-clock", 1}, + {NULL, 0} +}; + +#define RD4(sc, reg) bus_read_4((sc)->res, (reg)) +#define WR4(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static int +mv_ap806_clock_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Marvell AP806 Clock Controller"); + return (BUS_PROBE_DEFAULT); +} + +static int +mv_ap806_clock_attach(device_t dev) +{ + struct mv_ap806_clock_softc *sc; + struct clkdom *clkdom; + uint64_t clock_freq; + uint32_t reg; + + sc = device_get_softc(dev); + sc->dev = dev; + + if (bus_alloc_resources(dev, mv_ap806_clock_res_spec, &sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + return (ENXIO); + } + + /* + * We might miss some combinations + * Those are the only possible ones on the mcbin + */ + reg = RD4(sc, 0x400); + switch (reg & 0x1f) { + case 0x0: + case 0x1: + clock_freq = 2000000000; + break; + case 0x6: + clock_freq = 1800000000; + break; + case 0xd: + clock_freq = 1600000000; + break; + case 0x14: + clock_freq = 1333000000; + break; + default: + device_printf(dev, "Cannot guess clock freq with reg %x\n", reg & 0x1f); + return (ENXIO); + break; + }; + + ap806_clk_cluster_0.freq = clock_freq; + ap806_clk_cluster_1.freq = clock_freq; + clkdom = clkdom_create(dev); + + clknode_fixed_register(clkdom, &ap806_clk_cluster_0); + clknode_fixed_register(clkdom, &ap806_clk_cluster_1); + clknode_fixed_register(clkdom, &ap806_clk_fixed); + clknode_fixed_register(clkdom, &ap806_clk_mss); + clknode_fixed_register(clkdom, &ap806_clk_sdio); + + clkdom_finit(clkdom); + + if (bootverbose) + clkdom_dump(clkdom); + return (0); +} + +static int +mv_ap806_clock_detach(device_t dev) +{ + + return (EBUSY); +} + +static device_method_t mv_ap806_clock_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mv_ap806_clock_probe), + DEVMETHOD(device_attach, mv_ap806_clock_attach), + DEVMETHOD(device_detach, mv_ap806_clock_detach), + + DEVMETHOD_END +}; + +static devclass_t mv_ap806_clock_devclass; + +static driver_t mv_ap806_clock_driver = { + "mv_ap806_clock", + mv_ap806_clock_methods, + sizeof(struct mv_ap806_clock_softc), +}; + +EARLY_DRIVER_MODULE(mv_ap806_clock, simplebus, mv_ap806_clock_driver, + mv_ap806_clock_devclass, 0, 0, BUS_PASS_RESOURCE + BUS_PASS_ORDER_LATE); Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 22:00:05 2018 (r342011) +++ head/sys/conf/files.arm64 Wed Dec 12 22:01:06 2018 (r342012) @@ -90,6 +90,7 @@ arm/broadcom/bcm2835/bcm2835_wdog.c optional soc_brcm arm/broadcom/bcm2835/bcm2836.c optional soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm283x_dwc_fdt.c optional dwcotg fdt soc_brcm_bcm2837 arm/mv/mvebu_pinctrl.c optional mvebu_pinctrl fdt +arm/mv/mv_ap806_clock.c optional SOC_MARVELL_8K fdt arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt arm/xilinx/uart_dev_cdnc.c optional uart soc_xilinx_zynq arm64/acpica/acpi_machdep.c optional acpi From owner-svn-src-head@freebsd.org Wed Dec 12 22:02:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A604A13278A0; Wed, 12 Dec 2018 22:02:58 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4D71883B3A; Wed, 12 Dec 2018 22:02:58 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 39778E4B6; Wed, 12 Dec 2018 22:02:58 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM2wTj009771; Wed, 12 Dec 2018 22:02:58 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM2vV2009769; Wed, 12 Dec 2018 22:02:57 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122202.wBCM2vV2009769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:02:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342013 - in head/sys: arm/mv arm64/conf conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/mv arm64/conf conf X-SVN-Commit-Revision: 342013 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4D71883B3A X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.51)[-0.513,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:02:58 -0000 Author: manu Date: Wed Dec 12 22:02:57 2018 New Revision: 342013 URL: https://svnweb.freebsd.org/changeset/base/342013 Log: arm64: mv_gpio: Add Marvell 8K support While here put the interrupts setup in it's own function Sponsored by: Rubicon Communications, LCC ("Netgate") Modified: head/sys/arm/mv/gpio.c head/sys/arm64/conf/GENERIC head/sys/conf/files.arm64 Modified: head/sys/arm/mv/gpio.c ============================================================================== --- head/sys/arm/mv/gpio.c Wed Dec 12 22:01:06 2018 (r342012) +++ head/sys/arm/mv/gpio.c Wed Dec 12 22:02:57 2018 (r342013) @@ -60,6 +60,10 @@ __FBSDID("$FreeBSD$"); #include "gpio_if.h" +#ifdef __aarch64__ +#include "opt_soc.h" +#endif + #define GPIO_MAX_INTR_COUNT 8 #define GPIO_PINS_PER_REG 32 #define GPIO_GENERIC_CAP (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT | \ @@ -74,6 +78,7 @@ __FBSDID("$FreeBSD$"); #define DEBOUNCE_CHECK_TICKS ((hz / 1000) * DEBOUNCE_CHECK_MS) struct mv_gpio_softc { + device_t dev; device_t sc_busdev; struct resource * mem_res; int mem_rid; @@ -83,6 +88,7 @@ struct mv_gpio_softc { void *ih_cookie[GPIO_MAX_INTR_COUNT]; bus_space_tag_t bst; bus_space_handle_t bsh; + uint32_t offset; struct mtx mutex; uint8_t pin_num; /* number of GPIO pins */ uint8_t irq_num; /* number of real IRQs occupied by GPIO controller */ @@ -189,9 +195,12 @@ static devclass_t mv_gpio_devclass; DRIVER_MODULE(mv_gpio, simplebus, mv_gpio_driver, mv_gpio_devclass, 0, 0); -struct ofw_compat_data gpio_controllers[] = { - { "mrvl,gpio", (uintptr_t)true }, - { "marvell,orion-gpio", (uintptr_t)true }, +struct ofw_compat_data compat_data[] = { + { "mrvl,gpio", 1 }, + { "marvell,orion-gpio", 1 }, +#ifdef SOC_MARVELL_8K + { "marvell,armada-8k-gpio", 1 }, +#endif { NULL, 0 } }; @@ -201,7 +210,7 @@ mv_gpio_probe(device_t dev) if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (ofw_bus_search_compatible(dev, gpio_controllers)->ocd_data == 0) + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) return (ENXIO); device_set_desc(dev, "Marvell Integrated GPIO Controller"); @@ -209,61 +218,75 @@ mv_gpio_probe(device_t dev) } static int -mv_gpio_attach(device_t dev) +mv_gpio_setup_interrupts(struct mv_gpio_softc *sc, phandle_t node) { - int i, size; - struct mv_gpio_softc *sc; - pcell_t pincnt = 0; - pcell_t irq_cells = 0; phandle_t iparent; + pcell_t irq_cells; + int i, size; - sc = (struct mv_gpio_softc *)device_get_softc(dev); - if (sc == NULL) - return (ENXIO); - - if (OF_getencprop(ofw_bus_get_node(dev), "pin-count", &pincnt, - sizeof(pcell_t)) >= 0 || - OF_getencprop(ofw_bus_get_node(dev), "ngpios", &pincnt, - sizeof(pcell_t)) >= 0) { - sc->pin_num = MIN(pincnt, MV_GPIO_MAX_NPINS); - if (bootverbose) - device_printf(dev, "%d pins available\n", sc->pin_num); - } else { - device_printf(dev, "ERROR: no pin-count or ngpios entry found!\n"); - return (ENXIO); - } - - /* Assign generic capabilities to every gpio pin */ - for(i = 0; i < sc->pin_num; i++) - sc->gpio_setup[i].gp_caps = GPIO_GENERIC_CAP; - /* Find root interrupt controller */ - iparent = ofw_bus_find_iparent(ofw_bus_get_node(dev)); + iparent = ofw_bus_find_iparent(node); if (iparent == 0) { - device_printf(dev, "No interrupt-parrent found. " + device_printf(sc->dev, "No interrupt-parrent found. " "Error in DTB\n"); return (ENXIO); } else { /* While at parent - store interrupt cells prop */ if (OF_searchencprop(OF_node_from_xref(iparent), "#interrupt-cells", &irq_cells, sizeof(irq_cells)) == -1) { - device_printf(dev, "DTB: Missing #interrupt-cells " + device_printf(sc->dev, "DTB: Missing #interrupt-cells " "property in interrupt parent node\n"); return (ENXIO); } } - size = OF_getproplen(ofw_bus_get_node(dev), "interrupts"); + size = OF_getproplen(node, "interrupts"); if (size != -1) { size = size / sizeof(pcell_t); size = size / irq_cells; sc->irq_num = size; - device_printf(dev, "%d IRQs available\n", sc->irq_num); + device_printf(sc->dev, "%d IRQs available\n", sc->irq_num); } else { - device_printf(dev, "ERROR: no interrupts entry found!\n"); + device_printf(sc->dev, "ERROR: no interrupts entry found!\n"); return (ENXIO); } + for (i = 0; i < sc->irq_num; i++) { + sc->irq_rid[i] = i; + sc->irq_res[i] = bus_alloc_resource_any(sc->dev, SYS_RES_IRQ, + &sc->irq_rid[i], RF_ACTIVE); + if (!sc->irq_res[i]) { + mtx_destroy(&sc->mutex); + device_printf(sc->dev, + "could not allocate gpio%d interrupt\n", i+1); + return (ENXIO); + } + } + + device_printf(sc->dev, "Disable interrupts (offset = %x + EDGE(0x18)\n", sc->offset); + /* Disable all interrupts */ + bus_space_write_4(sc->bst, sc->bsh, sc->offset + GPIO_INT_EDGE_MASK, 0); + device_printf(sc->dev, "Disable interrupts (offset = %x + LEV(0x1C))\n", sc->offset); + bus_space_write_4(sc->bst, sc->bsh, sc->offset + GPIO_INT_LEV_MASK, 0); + + for (i = 0; i < sc->irq_num; i++) { + device_printf(sc->dev, "Setup intr %d\n", i); + if (bus_setup_intr(sc->dev, sc->irq_res[i], + INTR_TYPE_MISC, + (driver_filter_t *)mv_gpio_intr, NULL, + sc, &sc->ih_cookie[i]) != 0) { + mtx_destroy(&sc->mutex); + bus_release_resource(sc->dev, SYS_RES_IRQ, + sc->irq_rid[i], sc->irq_res[i]); + device_printf(sc->dev, "could not set up intr %d\n", i); + return (ENXIO); + } + } + + /* Clear interrupt status. */ + device_printf(sc->dev, "Clear int status (offset = %x)\n", sc->offset); + bus_space_write_4(sc->bst, sc->bsh, sc->offset + GPIO_INT_CAUSE, 0); + sc->debounce_callouts = (struct callout **)malloc(sc->pin_num * sizeof(struct callout *), M_DEVBUF, M_WAITOK | M_ZERO); if (sc->debounce_callouts == NULL) @@ -274,11 +297,46 @@ mv_gpio_attach(device_t dev) if (sc->debounce_counters == NULL) return (ENOMEM); + return (0); +} + +static int +mv_gpio_attach(device_t dev) +{ + int i, rv; + struct mv_gpio_softc *sc; + phandle_t node; + pcell_t pincnt = 0; + + sc = (struct mv_gpio_softc *)device_get_softc(dev); + if (sc == NULL) + return (ENXIO); + + node = ofw_bus_get_node(dev); + sc->dev = dev; + + if (OF_getencprop(node, "pin-count", &pincnt, sizeof(pcell_t)) >= 0 || + OF_getencprop(node, "ngpios", &pincnt, sizeof(pcell_t)) >= 0) { + sc->pin_num = MIN(pincnt, MV_GPIO_MAX_NPINS); + if (bootverbose) + device_printf(dev, "%d pins available\n", sc->pin_num); + } else { + device_printf(dev, "ERROR: no pin-count or ngpios entry found!\n"); + return (ENXIO); + } + + if (OF_getencprop(node, "offset", &sc->offset, sizeof(sc->offset)) == -1) + sc->offset = 0; + + /* Assign generic capabilities to every gpio pin */ + for(i = 0; i < sc->pin_num; i++) + sc->gpio_setup[i].gp_caps = GPIO_GENERIC_CAP; + mtx_init(&sc->mutex, device_get_nameunit(dev), NULL, MTX_SPIN); sc->mem_rid = 0; sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->mem_rid, - RF_ACTIVE); + RF_ACTIVE | RF_SHAREABLE ); if (!sc->mem_res) { mtx_destroy(&sc->mutex); @@ -289,38 +347,10 @@ mv_gpio_attach(device_t dev) sc->bst = rman_get_bustag(sc->mem_res); sc->bsh = rman_get_bushandle(sc->mem_res); - for (i = 0; i < sc->irq_num; i++) { - sc->irq_rid[i] = i; - sc->irq_res[i] = bus_alloc_resource_any(dev, SYS_RES_IRQ, - &sc->irq_rid[i], RF_ACTIVE); - if (!sc->irq_res[i]) { - mtx_destroy(&sc->mutex); - device_printf(dev, - "could not allocate gpio%d interrupt\n", i+1); - return (ENXIO); - } - } + rv = mv_gpio_setup_interrupts(sc, node); + if (rv != 0) + return (rv); - /* Disable all interrupts */ - bus_space_write_4(sc->bst, sc->bsh, GPIO_INT_EDGE_MASK, 0); - bus_space_write_4(sc->bst, sc->bsh, GPIO_INT_LEV_MASK, 0); - - for (i = 0; i < sc->irq_num; i++) { - if (bus_setup_intr(dev, sc->irq_res[i], - INTR_TYPE_MISC, - (driver_filter_t *)mv_gpio_intr, NULL, - sc, &sc->ih_cookie[i]) != 0) { - mtx_destroy(&sc->mutex); - bus_release_resource(dev, SYS_RES_IRQ, - sc->irq_rid[i], sc->irq_res[i]); - device_printf(dev, "could not set up intr %d\n", i); - return (ENXIO); - } - } - - /* Clear interrupt status. */ - bus_space_write_4(sc->bst, sc->bsh, GPIO_INT_CAUSE, 0); - sc->sc_busdev = gpiobus_attach_bus(dev); if (sc->sc_busdev == NULL) { mtx_destroy(&sc->mutex); @@ -540,6 +570,8 @@ mv_gpio_configure(device_t dev, uint32_t pin, uint32_t return (EINVAL); if (mask & MV_GPIO_IN_DEBOUNCE) { + if (sc->irq_num == 0) + return (EINVAL); error = mv_gpio_debounce_prepare(dev, pin); if (error != 0) return (error); @@ -845,7 +877,7 @@ mv_gpio_reg_read(device_t dev, uint32_t reg) struct mv_gpio_softc *sc; sc = (struct mv_gpio_softc *)device_get_softc(dev); - return (bus_space_read_4(sc->bst, sc->bsh, reg)); + return (bus_space_read_4(sc->bst, sc->bsh, sc->offset + reg)); } static void @@ -854,7 +886,7 @@ mv_gpio_reg_write(device_t dev, uint32_t reg, uint32_t struct mv_gpio_softc *sc; sc = (struct mv_gpio_softc *)device_get_softc(dev); - bus_space_write_4(sc->bst, sc->bsh, reg, val); + bus_space_write_4(sc->bst, sc->bsh, sc->offset + reg, val); } static void Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Wed Dec 12 22:01:06 2018 (r342012) +++ head/sys/arm64/conf/GENERIC Wed Dec 12 22:02:57 2018 (r342013) @@ -204,6 +204,7 @@ device aw_gpio # Allwinner GPIO controller device gpio device gpioled device fdt_pinctrl +device mv_gpio # Marvell GPIO controller device mvebu_pinctrl # Marvell Pinmux Controller # I2C Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 22:01:06 2018 (r342012) +++ head/sys/conf/files.arm64 Wed Dec 12 22:02:57 2018 (r342013) @@ -89,6 +89,7 @@ arm/broadcom/bcm2835/bcm2835_vcio.c optional soc_brcm arm/broadcom/bcm2835/bcm2835_wdog.c optional soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2836.c optional soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm283x_dwc_fdt.c optional dwcotg fdt soc_brcm_bcm2837 +arm/mv/gpio.c optional mv_gpio fdt arm/mv/mvebu_pinctrl.c optional mvebu_pinctrl fdt arm/mv/mv_ap806_clock.c optional SOC_MARVELL_8K fdt arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt From owner-svn-src-head@freebsd.org Wed Dec 12 22:04:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1B661327A02; Wed, 12 Dec 2018 22:04:22 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7298F83D73; Wed, 12 Dec 2018 22:04:22 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61C78E4B7; Wed, 12 Dec 2018 22:04:22 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM4MEo009870; Wed, 12 Dec 2018 22:04:22 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM4L4F009867; Wed, 12 Dec 2018 22:04:21 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122204.wBCM4L4F009867@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:04:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342014 - in head/sys: arm/mv conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/mv conf X-SVN-Commit-Revision: 342014 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7298F83D73 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.51)[-0.513,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:04:23 -0000 Author: manu Date: Wed Dec 12 22:04:21 2018 New Revision: 342014 URL: https://svnweb.freebsd.org/changeset/base/342014 Log: arm64: marvell: Add cp110 clock controller support The cp110 clock controller controls the clocks and gate of the CP110 hardware block. Every clock/gate are implemented except the NAND clock. Sponsored by: Rubicon Communications, LLC ("Netgate") Added: head/sys/arm/mv/mv_cp110_clock.c (contents, props changed) head/sys/arm/mv/mv_cp110_clock.h (contents, props changed) Modified: head/sys/conf/files.arm64 Added: head/sys/arm/mv/mv_cp110_clock.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mv_cp110_clock.c Wed Dec 12 22:04:21 2018 (r342014) @@ -0,0 +1,375 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include +#include + +#include + +#include "clkdev_if.h" + +/* Clocks */ +static struct clk_fixed_def cp110_clk_pll_0 = { + .clkdef.id = CP110_PLL_0, + .freq = 1000000000, +}; + +static const char *clk_parents_0[] = {"cp110-pll0-0"}; +static const char *clk_parents_1[] = {"cp110-pll0-1"}; + +static struct clk_fixed_def cp110_clk_ppv2_core = { + .clkdef.id = CP110_PPV2_CORE, + .clkdef.parent_cnt = 1, + .mult = 1, + .div = 3, +}; + +static struct clk_fixed_def cp110_clk_x2core = { + .clkdef.id = CP110_X2CORE, + .clkdef.parent_cnt = 1, + .mult = 1, + .div = 2, +}; + +static const char *core_parents_0[] = {"cp110-x2core-0"}; +static const char *core_parents_1[] = {"cp110-x2core-1"}; + +static struct clk_fixed_def cp110_clk_core = { + .clkdef.id = CP110_CORE, + .clkdef.parent_cnt = 1, + .mult = 1, + .div = 2, +}; + +static struct clk_fixed_def cp110_clk_sdio = { + .clkdef.id = CP110_SDIO, + .clkdef.parent_cnt = 1, + .mult = 2, + .div = 5, +}; + +/* Gates */ + +static struct cp110_gate cp110_gates[] = { + CCU_GATE(CP110_GATE_AUDIO, "cp110-gate-audio", 0) + CCU_GATE(CP110_GATE_COMM_UNIT, "cp110-gate-comm_unit", 1) + /* CCU_GATE(CP110_GATE_NAND, "cp110-gate-nand", 2) */ + CCU_GATE(CP110_GATE_PPV2, "cp110-gate-ppv2", 3) + CCU_GATE(CP110_GATE_SDIO, "cp110-gate-sdio", 4) + CCU_GATE(CP110_GATE_MG, "cp110-gate-mg", 5) + CCU_GATE(CP110_GATE_MG_CORE, "cp110-gate-mg_core", 6) + CCU_GATE(CP110_GATE_XOR1, "cp110-gate-xor1", 7) + CCU_GATE(CP110_GATE_XOR0, "cp110-gate-xor0", 8) + CCU_GATE(CP110_GATE_GOP_DP, "cp110-gate-gop_dp", 9) + CCU_GATE(CP110_GATE_PCIE_X1_0, "cp110-gate-pcie_x10", 11) + CCU_GATE(CP110_GATE_PCIE_X1_1, "cp110-gate-pcie_x11", 12) + CCU_GATE(CP110_GATE_PCIE_X4, "cp110-gate-pcie_x4", 13) + CCU_GATE(CP110_GATE_PCIE_XOR, "cp110-gate-pcie_xor", 14) + CCU_GATE(CP110_GATE_SATA, "cp110-gate-sata", 15) + CCU_GATE(CP110_GATE_SATA_USB, "cp110-gate-sata_usb", 16) + CCU_GATE(CP110_GATE_MAIN, "cp110-gate-main", 17) + CCU_GATE(CP110_GATE_SDMMC_GOP, "cp110-gate-sdmmc_gop", 18) + CCU_GATE(CP110_GATE_SLOW_IO, "cp110-gate-slow_io", 21) + CCU_GATE(CP110_GATE_USB3H0, "cp110-gate-usb3h0", 22) + CCU_GATE(CP110_GATE_USB3H1, "cp110-gate-usb3h1", 23) + CCU_GATE(CP110_GATE_USB3DEV, "cp110-gate-usb3dev", 24) + CCU_GATE(CP110_GATE_EIP150, "cp110-gate-eip150", 25) + CCU_GATE(CP110_GATE_EIP197, "cp110-gate-eip197", 26) +}; + +struct mv_cp110_clock_softc { + struct simplebus_softc simplebus_sc; + device_t dev; + struct resource *res; + struct mtx mtx; +}; + +static struct resource_spec mv_cp110_clock_res_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE | RF_SHAREABLE }, + { -1, 0 } +}; + +static struct ofw_compat_data compat_data[] = { + {"marvell,cp110-clock", 1}, + {NULL, 0} +}; + +#define RD4(sc, reg) bus_read_4((sc)->res, (reg)) +#define WR4(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static char * +mv_cp110_clock_name(device_t dev, const char *name) +{ + char *clkname = NULL; + int unit; + + unit = device_get_unit(dev); + if (asprintf(&clkname, M_DEVBUF, "%s-%d", name, unit) <= 0) + panic("Cannot generate unique clock name for %s\n", name); + return (clkname); +} + +static int +mv_cp110_clock_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Marvell CP110 Clock Controller"); + return (BUS_PROBE_DEFAULT); +} + +static int +cp110_ofw_map(struct clkdom *clkdom, uint32_t ncells, + phandle_t *cells, struct clknode **clk) +{ + int id = 0; + + if (ncells != 2) + return (ENXIO); + + id = cells[1]; + if (cells[0] == 1) + id += CP110_MAX_CLOCK; + + *clk = clknode_find_by_id(clkdom, id); + + return (0); +} + +static int +mv_cp110_clock_attach(device_t dev) +{ + struct mv_cp110_clock_softc *sc; + struct clkdom *clkdom; + struct clk_gate_def def; + char *pll0_name; + int unit, i; + + sc = device_get_softc(dev); + sc->dev = dev; + + if (bus_alloc_resources(dev, mv_cp110_clock_res_spec, &sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + return (ENXIO); + } + + unit = device_get_unit(dev); + if (unit > 1) { + device_printf(dev, "Bogus cp110-system-controller unit %d\n", unit); + return (ENXIO); + } + + mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); + + clkdom = clkdom_create(dev); + clkdom_set_ofw_mapper(clkdom, cp110_ofw_map); + + pll0_name = mv_cp110_clock_name(dev, "cp110-pll0"); + cp110_clk_pll_0.clkdef.name = pll0_name; + clknode_fixed_register(clkdom, &cp110_clk_pll_0); + + cp110_clk_ppv2_core.clkdef.name = mv_cp110_clock_name(dev, "cp110-ppv2"); + cp110_clk_ppv2_core.clkdef.parent_names = (unit == 0) ? clk_parents_0 : clk_parents_1; + clknode_fixed_register(clkdom, &cp110_clk_ppv2_core); + + cp110_clk_x2core.clkdef.name = mv_cp110_clock_name(dev, "cp110-x2core"); + cp110_clk_x2core.clkdef.parent_names = (unit == 0) ? clk_parents_0 : clk_parents_1; + clknode_fixed_register(clkdom, &cp110_clk_x2core); + + cp110_clk_core.clkdef.name = mv_cp110_clock_name(dev, "cp110-core"); + cp110_clk_core.clkdef.parent_names = (unit == 0) ? core_parents_0 : core_parents_1; + clknode_fixed_register(clkdom, &cp110_clk_core); + + /* NAND missing */ + + cp110_clk_sdio.clkdef.name = mv_cp110_clock_name(dev, "cp110-sdio"); + cp110_clk_sdio.clkdef.parent_names = (unit == 0) ? clk_parents_0 : clk_parents_1; + clknode_fixed_register(clkdom, &cp110_clk_sdio); + + for (i = 0; i < nitems(cp110_gates); i++) { + if (cp110_gates[i].name == NULL) + continue; + + memset(&def, 0, sizeof(def)); + def.clkdef.id = CP110_MAX_CLOCK + i; + def.clkdef.name = mv_cp110_clock_name(dev, cp110_gates[i].name); + def.clkdef.parent_cnt = 1; + def.offset = CP110_CLOCK_GATING_OFFSET; + def.shift = cp110_gates[i].shift; + def.mask = 1; + def.on_value = 1; + def.off_value = 0; + + switch (i) { + case CP110_GATE_MG: + case CP110_GATE_GOP_DP: + case CP110_GATE_PPV2: + def.clkdef.parent_names = &cp110_clk_ppv2_core.clkdef.name; + break; + case CP110_GATE_SDIO: + def.clkdef.parent_names = &cp110_clk_sdio.clkdef.name; + break; + case CP110_GATE_MAIN: + case CP110_GATE_PCIE_XOR: + case CP110_GATE_PCIE_X4: + case CP110_GATE_EIP150: + case CP110_GATE_EIP197: + def.clkdef.parent_names = &cp110_clk_x2core.clkdef.name; + break; + default: + def.clkdef.parent_names = &cp110_clk_core.clkdef.name; + break; + } + + clknode_gate_register(clkdom, &def); + } + + clkdom_finit(clkdom); + + if (bootverbose) + clkdom_dump(clkdom); + + return (0); +} + +static int +mv_cp110_clock_detach(device_t dev) +{ + + return (EBUSY); +} + +static int +mv_cp110_clock_write_4(device_t dev, bus_addr_t addr, uint32_t val) +{ + struct mv_cp110_clock_softc *sc; + + sc = device_get_softc(dev); + WR4(sc, addr, val); + return (0); +} + +static int +mv_cp110_clock_read_4(device_t dev, bus_addr_t addr, uint32_t *val) +{ + struct mv_cp110_clock_softc *sc; + + sc = device_get_softc(dev); + + *val = RD4(sc, addr); + return (0); +} + +static int +mv_cp110_clock_modify_4(device_t dev, bus_addr_t addr, uint32_t clr, uint32_t set) +{ + struct mv_cp110_clock_softc *sc; + uint32_t reg; + + sc = device_get_softc(dev); + + reg = RD4(sc, addr); + reg &= ~clr; + reg |= set; + WR4(sc, addr, reg); + + return (0); +} + +static void +mv_cp110_clock_device_lock(device_t dev) +{ + struct mv_cp110_clock_softc *sc; + + sc = device_get_softc(dev); + mtx_lock(&sc->mtx); +} + +static void +mv_cp110_clock_device_unlock(device_t dev) +{ + struct mv_cp110_clock_softc *sc; + + sc = device_get_softc(dev); + mtx_unlock(&sc->mtx); +} + +static device_method_t mv_cp110_clock_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mv_cp110_clock_probe), + DEVMETHOD(device_attach, mv_cp110_clock_attach), + DEVMETHOD(device_detach, mv_cp110_clock_detach), + + /* clkdev interface */ + DEVMETHOD(clkdev_write_4, mv_cp110_clock_write_4), + DEVMETHOD(clkdev_read_4, mv_cp110_clock_read_4), + DEVMETHOD(clkdev_modify_4, mv_cp110_clock_modify_4), + DEVMETHOD(clkdev_device_lock, mv_cp110_clock_device_lock), + DEVMETHOD(clkdev_device_unlock, mv_cp110_clock_device_unlock), + + DEVMETHOD_END +}; + +static devclass_t mv_cp110_clock_devclass; + +static driver_t mv_cp110_clock_driver = { + "mv_cp110_clock", + mv_cp110_clock_methods, + sizeof(struct mv_cp110_clock_softc), +}; + +EARLY_DRIVER_MODULE(mv_cp110_clock, simplebus, mv_cp110_clock_driver, + mv_cp110_clock_devclass, 0, 0, BUS_PASS_RESOURCE + BUS_PASS_ORDER_LATE); Added: head/sys/arm/mv/mv_cp110_clock.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mv_cp110_clock.h Wed Dec 12 22:04:21 2018 (r342014) @@ -0,0 +1,82 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 _MV_CP110_SYSCON_H_ +#define _MV_CP110_SYSCON_H_ + +enum mv_cp110_clk_id { + CP110_PLL_0 = 0, + CP110_PPV2_CORE, + CP110_X2CORE, + CP110_CORE, + CP110_NAND, + CP110_SDIO, + CP110_MAX_CLOCK +}; + +/* Gates */ +#define CP110_CLOCK_GATING_OFFSET 0x220 + +struct cp110_gate { + const char *name; + uint32_t shift; +}; + +#define CCU_GATE(idx, clkname, s) \ + [idx] = { \ + .name = clkname, \ + .shift = s, \ + }, + +#define CP110_GATE_AUDIO 0 +#define CP110_GATE_COMM_UNIT 1 +#define CP110_GATE_NAND 2 +#define CP110_GATE_PPV2 3 +#define CP110_GATE_SDIO 4 +#define CP110_GATE_MG 5 +#define CP110_GATE_MG_CORE 6 +#define CP110_GATE_XOR1 7 +#define CP110_GATE_XOR0 8 +#define CP110_GATE_GOP_DP 9 +#define CP110_GATE_PCIE_X1_0 11 +#define CP110_GATE_PCIE_X1_1 12 +#define CP110_GATE_PCIE_X4 13 +#define CP110_GATE_PCIE_XOR 14 +#define CP110_GATE_SATA 15 +#define CP110_GATE_SATA_USB 16 +#define CP110_GATE_MAIN 17 +#define CP110_GATE_SDMMC_GOP 18 +#define CP110_GATE_SLOW_IO 21 +#define CP110_GATE_USB3H0 22 +#define CP110_GATE_USB3H1 23 +#define CP110_GATE_USB3DEV 24 +#define CP110_GATE_EIP150 25 +#define CP110_GATE_EIP197 26 + +#endif Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 22:02:57 2018 (r342013) +++ head/sys/conf/files.arm64 Wed Dec 12 22:04:21 2018 (r342014) @@ -92,6 +92,7 @@ arm/broadcom/bcm2835/bcm283x_dwc_fdt.c optional dwcot arm/mv/gpio.c optional mv_gpio fdt arm/mv/mvebu_pinctrl.c optional mvebu_pinctrl fdt arm/mv/mv_ap806_clock.c optional SOC_MARVELL_8K fdt +arm/mv/mv_cp110_clock.c optional SOC_MARVELL_8K fdt arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt arm/xilinx/uart_dev_cdnc.c optional uart soc_xilinx_zynq arm64/acpica/acpi_machdep.c optional acpi From owner-svn-src-head@freebsd.org Wed Dec 12 22:05:09 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D23FD1327AD9; Wed, 12 Dec 2018 22:05:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 75D0E83F21; Wed, 12 Dec 2018 22:05:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 56A97E4B8; Wed, 12 Dec 2018 22:05:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM58Iu009956; Wed, 12 Dec 2018 22:05:08 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM57lG009952; Wed, 12 Dec 2018 22:05:07 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122205.wBCM57lG009952@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:05:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342015 - in head/sys: conf dev/iicbus/twsi X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: conf dev/iicbus/twsi X-SVN-Commit-Revision: 342015 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 75D0E83F21 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.51)[-0.506,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:05:09 -0000 Author: manu Date: Wed Dec 12 22:05:07 2018 New Revision: 342015 URL: https://svnweb.freebsd.org/changeset/base/342015 Log: twsi: Clean up marvell part and add support for Marvell 7k/8k Sponsored by: Rubicon Communications, LLC ("Netgate") Modified: head/sys/conf/files.arm64 head/sys/dev/iicbus/twsi/mv_twsi.c head/sys/dev/iicbus/twsi/twsi.c head/sys/dev/iicbus/twsi/twsi.h Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 22:04:21 2018 (r342014) +++ head/sys/conf/files.arm64 Wed Dec 12 22:05:07 2018 (r342015) @@ -201,6 +201,7 @@ dev/axgbe/xgbe-dev.c optional axgbe dev/axgbe/xgbe-drv.c optional axgbe dev/axgbe/xgbe-mdio.c optional axgbe dev/cpufreq/cpufreq_dt.c optional cpufreq fdt +dev/iicbus/twsi/mv_twsi.c optional twsi fdt dev/iicbus/twsi/a10_twsi.c optional twsi fdt dev/iicbus/twsi/twsi.c optional twsi fdt dev/hwpmc/hwpmc_arm64.c optional hwpmc Modified: head/sys/dev/iicbus/twsi/mv_twsi.c ============================================================================== --- head/sys/dev/iicbus/twsi/mv_twsi.c Wed Dec 12 22:04:21 2018 (r342014) +++ head/sys/dev/iicbus/twsi/mv_twsi.c Wed Dec 12 22:05:07 2018 (r342015) @@ -61,6 +61,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include #include @@ -98,6 +100,7 @@ static int mv_twsi_attach(device_t); static struct ofw_compat_data compat_data[] = { { "mrvl,twsi", true }, { "marvell,mv64xxx-i2c", true }, + { "marvell,mv78230-i2c", true }, { NULL, false } }; @@ -141,29 +144,27 @@ mv_twsi_probe(device_t dev) if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) return (ENXIO); - sc->reg_data = TWSI_DATA; - sc->reg_slave_addr = TWSI_ADDR; - sc->reg_slave_ext_addr = TWSI_XADDR; - sc->reg_control = TWSI_CNTR; - sc->reg_status = TWSI_STAT; - sc->reg_baud_rate = TWSI_BAUD_RATE; - sc->reg_soft_reset = TWSI_SRST; - device_set_desc(dev, "Marvell Integrated I2C Bus Controller"); return (BUS_PROBE_DEFAULT); } #define ABSSUB(a,b) (((a) > (b)) ? (a) - (b) : (b) - (a)) static void -mv_twsi_cal_baud_rate(const uint32_t target, struct twsi_baud_rate *rate) +mv_twsi_cal_baud_rate(struct twsi_softc *sc, const uint32_t target, + struct twsi_baud_rate *rate) { - uint32_t clk, cur, diff, diff0; + uint64_t clk; + uint32_t cur, diff, diff0; int m, n, m0, n0; /* Calculate baud rate. */ m0 = n0 = 4; /* Default values on reset */ diff0 = 0xffffffff; +#ifdef __aarch64__ + clk_get_freq(sc->clk_core, &clk); +#else clk = get_tclk(); +#endif for (n = 0; n < 8; n++) { for (m = 0; m < 16; m++) { @@ -186,17 +187,37 @@ static int mv_twsi_attach(device_t dev) { struct twsi_softc *sc; - phandle_t child, iicbusnode; - device_t childdev; - struct iicbus_ivar *devi; - char dname[32]; /* 32 is taken from struct u_device */ - uint32_t paddr; - int len, error, ret; +#ifdef __aarch64__ + int error; +#endif sc = device_get_softc(dev); + sc->dev = dev; - mv_twsi_cal_baud_rate(TWSI_BAUD_RATE_SLOW, &sc->baud_rate[IIC_SLOW]); - mv_twsi_cal_baud_rate(TWSI_BAUD_RATE_FAST, &sc->baud_rate[IIC_FAST]); +#ifdef __aarch64__ + /* Activate clock */ + error = clk_get_by_ofw_index(dev, 0, 0, &sc->clk_core); + if (error != 0) { + device_printf(dev, "could not find core clock\n"); + return (error); + } + error = clk_enable(sc->clk_core); + if (error != 0) { + device_printf(dev, "could not enable core clock\n"); + return (error); + } + + if (clk_get_by_ofw_index(dev, 0, 1, &sc->clk_reg) == 0) { + error = clk_enable(sc->clk_reg); + if (error != 0) { + device_printf(dev, "could not enable core clock\n"); + return (error); + } + } +#endif + + mv_twsi_cal_baud_rate(sc, TWSI_BAUD_RATE_SLOW, &sc->baud_rate[IIC_SLOW]); + mv_twsi_cal_baud_rate(sc, TWSI_BAUD_RATE_FAST, &sc->baud_rate[IIC_FAST]); if (bootverbose) device_printf(dev, "calculated baud rates are:\n" " %" PRIu32 " kHz (M=%d, N=%d) for slow,\n" @@ -208,56 +229,13 @@ mv_twsi_attach(device_t dev) sc->baud_rate[IIC_FAST].m, sc->baud_rate[IIC_FAST].n); + sc->reg_data = TWSI_DATA; + sc->reg_slave_addr = TWSI_ADDR; + sc->reg_slave_ext_addr = TWSI_XADDR; + sc->reg_control = TWSI_CNTR; + sc->reg_status = TWSI_STAT; + sc->reg_baud_rate = TWSI_BAUD_RATE; + sc->reg_soft_reset = TWSI_SRST; - ret = twsi_attach(dev); - if (ret != 0) - return (ret); - - iicbusnode = 0; - /* Find iicbus as the child devices in the device tree. */ - for (child = OF_child(ofw_bus_get_node(dev)); child != 0; - child = OF_peer(child)) { - len = OF_getproplen(child, "model"); - if (len <= 0 || len > sizeof(dname)) - continue; - error = OF_getprop(child, "model", &dname, len); - if (error == -1) - continue; - len = strlen(dname); - if (len == strlen(IICBUS_DEVNAME) && - strncasecmp(dname, IICBUS_DEVNAME, len) == 0) { - iicbusnode = child; - break; - } - } - if (iicbusnode == 0) - goto attach_end; - - /* Attach child devices onto iicbus. */ - for (child = OF_child(iicbusnode); child != 0; child = OF_peer(child)) { - /* Get slave address. */ - error = OF_getencprop(child, "i2c-address", &paddr, sizeof(paddr)); - if (error == -1) - error = OF_getencprop(child, "reg", &paddr, sizeof(paddr)); - if (error == -1) - continue; - - /* Get device driver name. */ - len = OF_getproplen(child, "model"); - if (len <= 0 || len > sizeof(dname)) - continue; - OF_getprop(child, "model", &dname, len); - - if (bootverbose) - device_printf(dev, "adding a device %s at %d.\n", - dname, paddr); - childdev = BUS_ADD_CHILD(sc->iicbus, 0, dname, -1); - devi = IICBUS_IVAR(childdev); - devi->addr = paddr; - } - -attach_end: - bus_generic_attach(sc->iicbus); - - return (0); + return (twsi_attach(dev)); } Modified: head/sys/dev/iicbus/twsi/twsi.c ============================================================================== --- head/sys/dev/iicbus/twsi/twsi.c Wed Dec 12 22:04:21 2018 (r342014) +++ head/sys/dev/iicbus/twsi/twsi.c Wed Dec 12 22:05:07 2018 (r342015) @@ -440,6 +440,7 @@ twsi_detach(device_t dev) int rv; sc = device_get_softc(dev); + debugf(""); if ((rv = bus_generic_detach(dev)) != 0) return (rv); Modified: head/sys/dev/iicbus/twsi/twsi.h ============================================================================== --- head/sys/dev/iicbus/twsi/twsi.h Wed Dec 12 22:04:21 2018 (r342014) +++ head/sys/dev/iicbus/twsi/twsi.h Wed Dec 12 22:05:07 2018 (r342015) @@ -34,6 +34,8 @@ #ifndef _TWSI_H_ #define _TWSI_H_ +#include + struct twsi_baud_rate { uint32_t raw; int param; @@ -46,6 +48,8 @@ struct twsi_softc { struct resource *res[1]; /* SYS_RES_MEMORY */ struct mtx mutex; device_t iicbus; + clk_t clk_core; + clk_t clk_reg; bus_size_t reg_data; bus_size_t reg_slave_addr; From owner-svn-src-head@freebsd.org Wed Dec 12 22:08:45 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27E011327C84; Wed, 12 Dec 2018 22:08:45 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CC04484145; Wed, 12 Dec 2018 22:08:44 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C14C9E4BA; Wed, 12 Dec 2018 22:08:44 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM8iqD010133; Wed, 12 Dec 2018 22:08:44 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM8iKs010129; Wed, 12 Dec 2018 22:08:44 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122208.wBCM8iKs010129@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:08:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342016 - in head/sys: arm/mv arm64/conf conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/mv arm64/conf conf X-SVN-Commit-Revision: 342016 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CC04484145 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.34 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.52)[-0.519,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-0.82)[-0.818,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:08:45 -0000 Author: manu Date: Wed Dec 12 22:08:43 2018 New Revision: 342016 URL: https://svnweb.freebsd.org/changeset/base/342016 Log: arm64: Add mv_cp110_icu and mv_cp110_gicp icu is a interrupt concentrator in the CP110 block and gicp is a gic extension to allow interrupts in the CP block to be turned into GIC SPI interrupts Sponsored by: Rubicon Communications, LLC ("Netgate") Added: head/sys/arm/mv/mv_ap806_gicp.c (contents, props changed) head/sys/arm/mv/mv_cp110_icu.c (contents, props changed) Modified: head/sys/arm64/conf/GENERIC head/sys/conf/files.arm64 Added: head/sys/arm/mv/mv_ap806_gicp.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mv_ap806_gicp.c Wed Dec 12 22:08:43 2018 (r342016) @@ -0,0 +1,289 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include "pic_if.h" + +#define MV_AP806_GICP_MAX_NIRQS 207 + +struct mv_ap806_gicp_softc { + device_t dev; + device_t parent; + struct resource *res; + + ssize_t spi_ranges_cnt; + uint32_t *spi_ranges; +}; + +static struct ofw_compat_data compat_data[] = { + {"marvell,ap806-gicp", 1}, + {NULL, 0} +}; + +#define RD4(sc, reg) bus_read_4((sc)->res, (reg)) +#define WR4(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static int +mv_ap806_gicp_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Marvell GICP"); + return (BUS_PROBE_DEFAULT); +} + +static int +mv_ap806_gicp_attach(device_t dev) +{ + struct mv_ap806_gicp_softc *sc; + phandle_t node, xref, intr_parent; + + sc = device_get_softc(dev); + sc->dev = dev; + node = ofw_bus_get_node(dev); + + /* Look for our parent */ + if ((intr_parent = ofw_bus_find_iparent(node)) == 0) { + device_printf(dev, "Cannot find our parent interrupt controller\n"); + return (ENXIO); + } + if ((sc->parent = OF_device_from_xref(intr_parent)) == NULL) { + device_printf(dev, "cannot find parent interrupt controller device\n"); + return (ENXIO); + } + + sc->spi_ranges_cnt = OF_getencprop_alloc(node, "marvell,spi-ranges", + (void **)&sc->spi_ranges); + + xref = OF_xref_from_node(node); + if (intr_pic_register(dev, xref) == NULL) { + device_printf(dev, "Cannot register GICP\n"); + return (ENXIO); + } + + OF_device_register_xref(xref, dev); + + return (0); +} + +static int +mv_ap806_gicp_detach(device_t dev) +{ + + return (EBUSY); +} + +static int +mv_ap806_gicp_activate_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_ACTIVATE_INTR(sc->parent, isrc, res, data)); +} + +static void +mv_ap806_gicp_enable_intr(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + PIC_ENABLE_INTR(sc->parent, isrc); +} + +static void +mv_ap806_gicp_disable_intr(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + PIC_DISABLE_INTR(sc->parent, isrc); +} + +static int +mv_ap806_gicp_map_intr(device_t dev, struct intr_map_data *data, + struct intr_irqsrc **isrcp) +{ + struct mv_ap806_gicp_softc *sc; + struct intr_map_data_fdt *daf; + uint32_t group, irq_num, irq_type; + int i; + + sc = device_get_softc(dev); + + if (data->type != INTR_MAP_DATA_FDT) + return (ENOTSUP); + + daf = (struct intr_map_data_fdt *)data; + if (daf->ncells != 3 || daf->cells[0] >= MV_AP806_GICP_MAX_NIRQS) + return (EINVAL); + + group = daf->cells[0]; + irq_num = daf->cells[1]; + irq_type = daf->cells[2]; + + /* Map the interrupt number to spi number */ + for (i = 0; i < sc->spi_ranges_cnt / 2; i += 2) { + if (irq_num < sc->spi_ranges[i + 1]) { + irq_num += sc->spi_ranges[i]; + break; + } + + irq_num -= sc->spi_ranges[i]; + } + + daf->cells[1] = irq_num - 32; + + return (PIC_MAP_INTR(sc->parent, data, isrcp)); +} + +static int +mv_ap806_gicp_deactivate_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_DEACTIVATE_INTR(sc->parent, isrc, res, data)); +} + +static int +mv_ap806_gicp_setup_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_SETUP_INTR(sc->parent, isrc, res, data)); +} + +static int +mv_ap806_gicp_teardown_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_TEARDOWN_INTR(sc->parent, isrc, res, data)); +} + +static void +mv_ap806_gicp_pre_ithread(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + PIC_PRE_ITHREAD(sc->parent, isrc); +} + +static void +mv_ap806_gicp_post_ithread(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + PIC_POST_ITHREAD(sc->parent, isrc); +} + +static void +mv_ap806_gicp_post_filter(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_ap806_gicp_softc *sc; + + sc = device_get_softc(dev); + + PIC_POST_FILTER(sc->parent, isrc); +} + +static device_method_t mv_ap806_gicp_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mv_ap806_gicp_probe), + DEVMETHOD(device_attach, mv_ap806_gicp_attach), + DEVMETHOD(device_detach, mv_ap806_gicp_detach), + + /* Interrupt controller interface */ + DEVMETHOD(pic_activate_intr, mv_ap806_gicp_activate_intr), + DEVMETHOD(pic_disable_intr, mv_ap806_gicp_disable_intr), + DEVMETHOD(pic_enable_intr, mv_ap806_gicp_enable_intr), + DEVMETHOD(pic_map_intr, mv_ap806_gicp_map_intr), + DEVMETHOD(pic_deactivate_intr, mv_ap806_gicp_deactivate_intr), + DEVMETHOD(pic_setup_intr, mv_ap806_gicp_setup_intr), + DEVMETHOD(pic_teardown_intr, mv_ap806_gicp_teardown_intr), + DEVMETHOD(pic_post_filter, mv_ap806_gicp_post_filter), + DEVMETHOD(pic_post_ithread, mv_ap806_gicp_post_ithread), + DEVMETHOD(pic_pre_ithread, mv_ap806_gicp_pre_ithread), + + DEVMETHOD_END +}; + +static devclass_t mv_ap806_gicp_devclass; + +static driver_t mv_ap806_gicp_driver = { + "mv_ap806_gicp", + mv_ap806_gicp_methods, + sizeof(struct mv_ap806_gicp_softc), +}; + +EARLY_DRIVER_MODULE(mv_ap806_gicp, simplebus, mv_ap806_gicp_driver, + mv_ap806_gicp_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); Added: head/sys/arm/mv/mv_cp110_icu.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mv_cp110_icu.c Wed Dec 12 22:08:43 2018 (r342016) @@ -0,0 +1,299 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include "pic_if.h" + +#define ICU_GRP_NSR 0x0 +#define ICU_GRP_SR 0x1 +#define ICU_GRP_SEI 0x4 +#define ICU_GRP_REI 0x5 + +#define ICU_SETSPI_NSR_AL 0x10 +#define ICU_SETSPI_NSR_AH 0x14 +#define ICU_CLRSPI_NSR_AL 0x18 +#define ICU_CLRSPI_NSR_AH 0x1c +#define ICU_INT_CFG(x) (0x100 + (x) * 4) +#define ICU_INT_ENABLE (1 << 24) +#define ICU_INT_EDGE (1 << 28) +#define ICU_INT_GROUP_SHIFT 29 +#define ICU_INT_MASK 0x3ff + +#define MV_CP110_ICU_MAX_NIRQS 207 + +struct mv_cp110_icu_softc { + device_t dev; + device_t parent; + struct resource *res; +}; + +static struct resource_spec mv_cp110_icu_res_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE | RF_SHAREABLE }, + { -1, 0 } +}; + +static struct ofw_compat_data compat_data[] = { + {"marvell,cp110-icu", 1}, + {NULL, 0} +}; + +#define RD4(sc, reg) bus_read_4((sc)->res, (reg)) +#define WR4(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static int +mv_cp110_icu_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Marvell Interrupt Consolidation Unit"); + return (BUS_PROBE_DEFAULT); +} + +static int +mv_cp110_icu_attach(device_t dev) +{ + struct mv_cp110_icu_softc *sc; + phandle_t node, msi_parent; + + sc = device_get_softc(dev); + sc->dev = dev; + node = ofw_bus_get_node(dev); + + if (OF_getencprop(node, "msi-parent", &msi_parent, + sizeof(phandle_t)) <= 0) { + device_printf(dev, "cannot find msi-parent property\n"); + return (ENXIO); + } + + if ((sc->parent = OF_device_from_xref(msi_parent)) == NULL) { + device_printf(dev, "cannot find msi-parent device\n"); + return (ENXIO); + } + if (bus_alloc_resources(dev, mv_cp110_icu_res_spec, &sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + return (ENXIO); + } + + if (intr_pic_register(dev, OF_xref_from_node(node)) == NULL) { + device_printf(dev, "Cannot register ICU\n"); + goto fail; + } + return (0); + +fail: + bus_release_resources(dev, mv_cp110_icu_res_spec, &sc->res); + return (ENXIO); +} + +static int +mv_cp110_icu_detach(device_t dev) +{ + + return (EBUSY); +} + +static int +mv_cp110_icu_activate_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_ACTIVATE_INTR(sc->parent, isrc, res, data)); +} + +static void +mv_cp110_icu_enable_intr(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + PIC_ENABLE_INTR(sc->parent, isrc); +} + +static void +mv_cp110_icu_disable_intr(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + PIC_DISABLE_INTR(sc->parent, isrc); +} + +static int +mv_cp110_icu_map_intr(device_t dev, struct intr_map_data *data, + struct intr_irqsrc **isrcp) +{ + struct mv_cp110_icu_softc *sc; + struct intr_map_data_fdt *daf; + uint32_t reg; + + sc = device_get_softc(dev); + + if (data->type != INTR_MAP_DATA_FDT) + return (ENOTSUP); + + daf = (struct intr_map_data_fdt *)data; + if (daf->ncells != 3 || daf->cells[0] >= MV_CP110_ICU_MAX_NIRQS) + return (EINVAL); + + reg = RD4(sc, ICU_INT_CFG(daf->cells[1])); + + if ((reg & ICU_INT_ENABLE) == 0) { + reg |= ICU_INT_ENABLE; + WR4(sc, ICU_INT_CFG(daf->cells[1], reg)); + } + + daf->cells[1] = reg & ICU_INT_MASK; + return (PIC_MAP_INTR(sc->parent, data, isrcp)); +} + +static int +mv_cp110_icu_deactivate_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_DEACTIVATE_INTR(sc->parent, isrc, res, data)); +} + +static int +mv_cp110_icu_setup_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_SETUP_INTR(sc->parent, isrc, res, data)); +} + +static int +mv_cp110_icu_teardown_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + return (PIC_TEARDOWN_INTR(sc->parent, isrc, res, data)); +} + +static void +mv_cp110_icu_pre_ithread(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + PIC_PRE_ITHREAD(sc->parent, isrc); +} + +static void +mv_cp110_icu_post_ithread(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + PIC_POST_ITHREAD(sc->parent, isrc); +} + +static void +mv_cp110_icu_post_filter(device_t dev, struct intr_irqsrc *isrc) +{ + struct mv_cp110_icu_softc *sc; + + sc = device_get_softc(dev); + + PIC_POST_FILTER(sc->parent, isrc); +} + +static device_method_t mv_cp110_icu_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mv_cp110_icu_probe), + DEVMETHOD(device_attach, mv_cp110_icu_attach), + DEVMETHOD(device_detach, mv_cp110_icu_detach), + + /* Interrupt controller interface */ + DEVMETHOD(pic_activate_intr, mv_cp110_icu_activate_intr), + DEVMETHOD(pic_disable_intr, mv_cp110_icu_disable_intr), + DEVMETHOD(pic_enable_intr, mv_cp110_icu_enable_intr), + DEVMETHOD(pic_map_intr, mv_cp110_icu_map_intr), + DEVMETHOD(pic_deactivate_intr, mv_cp110_icu_deactivate_intr), + DEVMETHOD(pic_setup_intr, mv_cp110_icu_setup_intr), + DEVMETHOD(pic_teardown_intr, mv_cp110_icu_teardown_intr), + DEVMETHOD(pic_post_filter, mv_cp110_icu_post_filter), + DEVMETHOD(pic_post_ithread, mv_cp110_icu_post_ithread), + DEVMETHOD(pic_pre_ithread, mv_cp110_icu_pre_ithread), + + DEVMETHOD_END +}; + +static devclass_t mv_cp110_icu_devclass; + +static driver_t mv_cp110_icu_driver = { + "mv_cp110_icu", + mv_cp110_icu_methods, + sizeof(struct mv_cp110_icu_softc), +}; + +EARLY_DRIVER_MODULE(mv_cp110_icu, simplebus, mv_cp110_icu_driver, + mv_cp110_icu_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Wed Dec 12 22:05:07 2018 (r342015) +++ head/sys/arm64/conf/GENERIC Wed Dec 12 22:08:43 2018 (r342016) @@ -221,6 +221,8 @@ device aw_ccu # Allwinner clock controller # Interrupt controllers device aw_nmi # Allwinner NMI support +device mv_cp110_icu # Marvell CP110 ICU +device mv_ap806_gicp # Marvell AP806 GICP # Real-time clock support device aw_rtc # Allwinner Real-time Clock Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 22:05:07 2018 (r342015) +++ head/sys/conf/files.arm64 Wed Dec 12 22:08:43 2018 (r342016) @@ -91,6 +91,8 @@ arm/broadcom/bcm2835/bcm2836.c optional soc_brcm_bcm arm/broadcom/bcm2835/bcm283x_dwc_fdt.c optional dwcotg fdt soc_brcm_bcm2837 arm/mv/gpio.c optional mv_gpio fdt arm/mv/mvebu_pinctrl.c optional mvebu_pinctrl fdt +arm/mv/mv_cp110_icu.c optional mv_cp110_icu fdt +arm/mv/mv_ap806_gicp.c optional mv_ap806_gicp fdt arm/mv/mv_ap806_clock.c optional SOC_MARVELL_8K fdt arm/mv/mv_cp110_clock.c optional SOC_MARVELL_8K fdt arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt From owner-svn-src-head@freebsd.org Wed Dec 12 22:09:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF3E21327D45; Wed, 12 Dec 2018 22:09:36 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 777BF842B8; Wed, 12 Dec 2018 22:09:36 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6AF7FE4BB; Wed, 12 Dec 2018 22:09:36 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCM9aRD010212; Wed, 12 Dec 2018 22:09:36 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCM9aC8010211; Wed, 12 Dec 2018 22:09:36 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122209.wBCM9aC8010211@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:09:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342017 - head/sys/dev/sdhci X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/sdhci X-SVN-Commit-Revision: 342017 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 777BF842B8 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.50)[-0.500,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:09:37 -0000 Author: manu Date: Wed Dec 12 22:09:35 2018 New Revision: 342017 URL: https://svnweb.freebsd.org/changeset/base/342017 Log: sdhci_xenon: Add Marvell 8k compatible string Sponsored by: Rubicon Communications, LLC ("Netgate") Modified: head/sys/dev/sdhci/sdhci_xenon.c Modified: head/sys/dev/sdhci/sdhci_xenon.c ============================================================================== --- head/sys/dev/sdhci/sdhci_xenon.c Wed Dec 12 22:08:43 2018 (r342016) +++ head/sys/dev/sdhci/sdhci_xenon.c Wed Dec 12 22:09:35 2018 (r342017) @@ -62,11 +62,16 @@ __FBSDID("$FreeBSD$"); #include "sdhci_if.h" #include "opt_mmccam.h" +#include "opt_soc.h" #define MAX_SLOTS 6 static struct ofw_compat_data compat_data[] = { { "marvell,armada-3700-sdhci", 1 }, +#ifdef SOC_MARVELL_8K + { "marvell,armada-cp110-sdhci", 1 }, + { "marvell,armada-ap806-sdhci", 1 }, +#endif { NULL, 0 } }; From owner-svn-src-head@freebsd.org Wed Dec 12 22:10:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A82FE1327DED; Wed, 12 Dec 2018 22:10:12 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4F9B68441D; Wed, 12 Dec 2018 22:10:12 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 44784E4C0; Wed, 12 Dec 2018 22:10:12 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCMACig010309; Wed, 12 Dec 2018 22:10:12 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCMAChH010308; Wed, 12 Dec 2018 22:10:12 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122210.wBCMAChH010308@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:10:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342018 - head/sys/arm/mv X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/mv X-SVN-Commit-Revision: 342018 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4F9B68441D X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.50)[-0.500,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:10:12 -0000 Author: manu Date: Wed Dec 12 22:10:11 2018 New Revision: 342018 URL: https://svnweb.freebsd.org/changeset/base/342018 Log: mv_gpio: Since it's also an interrupt controller, attach sooner Sponsored by: Rubicon Communications, LLC ("Netgate") Modified: head/sys/arm/mv/gpio.c Modified: head/sys/arm/mv/gpio.c ============================================================================== --- head/sys/arm/mv/gpio.c Wed Dec 12 22:09:35 2018 (r342017) +++ head/sys/arm/mv/gpio.c Wed Dec 12 22:10:11 2018 (r342018) @@ -193,7 +193,8 @@ static driver_t mv_gpio_driver = { static devclass_t mv_gpio_devclass; -DRIVER_MODULE(mv_gpio, simplebus, mv_gpio_driver, mv_gpio_devclass, 0, 0); +EARLY_DRIVER_MODULE(mv_gpio, simplebus, mv_gpio_driver, mv_gpio_devclass, 0, 0, + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); struct ofw_compat_data compat_data[] = { { "mrvl,gpio", 1 }, From owner-svn-src-head@freebsd.org Wed Dec 12 22:24:32 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F14FC1328569; Wed, 12 Dec 2018 22:24:31 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8BCC184EB5; Wed, 12 Dec 2018 22:24:31 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7CFF8E803; Wed, 12 Dec 2018 22:24:31 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCMOVlM020141; Wed, 12 Dec 2018 22:24:31 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCMOV5w020140; Wed, 12 Dec 2018 22:24:31 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122224.wBCMOV5w020140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:24:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342019 - head/sys/arm/mv X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/mv X-SVN-Commit-Revision: 342019 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8BCC184EB5 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.50)[-0.500,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:24:32 -0000 Author: manu Date: Wed Dec 12 22:24:30 2018 New Revision: 342019 URL: https://svnweb.freebsd.org/changeset/base/342019 Log: arm64: mv_cp110_icu: Fix build Modified: head/sys/arm/mv/mv_cp110_icu.c Modified: head/sys/arm/mv/mv_cp110_icu.c ============================================================================== --- head/sys/arm/mv/mv_cp110_icu.c Wed Dec 12 22:10:11 2018 (r342018) +++ head/sys/arm/mv/mv_cp110_icu.c Wed Dec 12 22:24:30 2018 (r342019) @@ -196,7 +196,7 @@ mv_cp110_icu_map_intr(device_t dev, struct intr_map_da if ((reg & ICU_INT_ENABLE) == 0) { reg |= ICU_INT_ENABLE; - WR4(sc, ICU_INT_CFG(daf->cells[1], reg)); + WR4(sc, ICU_INT_CFG(daf->cells[1]), reg); } daf->cells[1] = reg & ICU_INT_MASK; From owner-svn-src-head@freebsd.org Wed Dec 12 22:33:06 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B26751328B42; Wed, 12 Dec 2018 22:33:06 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5A81F8556D; Wed, 12 Dec 2018 22:33:06 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 50C91E9AC; Wed, 12 Dec 2018 22:33:06 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBCMX6Qf025510; Wed, 12 Dec 2018 22:33:06 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBCMX5hg025508; Wed, 12 Dec 2018 22:33:05 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812122233.wBCMX5hg025508@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 12 Dec 2018 22:33:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342020 - in head/sys: arm/mv arm64/conf conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm/mv arm64/conf conf X-SVN-Commit-Revision: 342020 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5A81F8556D X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.51)[-0.513,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Dec 2018 22:33:06 -0000 Author: manu Date: Wed Dec 12 22:33:05 2018 New Revision: 342020 URL: https://svnweb.freebsd.org/changeset/base/342020 Log: mv_thermal: Add thermal driver for AP806 and CP110 thermal sensor Sponsored by: Rubicon Communications, LLC ("Netgate") Added: head/sys/arm/mv/mv_thermal.c (contents, props changed) Modified: head/sys/arm64/conf/GENERIC head/sys/conf/files.arm64 Added: head/sys/arm/mv/mv_thermal.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/mv/mv_thermal.c Wed Dec 12 22:33:05 2018 (r342020) @@ -0,0 +1,381 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) + * + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#define CONTROL0 0x00 +#define CONTROL0_TSEN_START (1 << 0) +#define CONTROL0_TSEN_RESET (1 << 1) +#define CONTROL0_TSEN_EN (1 << 2) +#define CONTROL0_CHANNEL_SHIFT 13 +#define CONTROL0_CHANNEL_MASK 0xF +#define CONTROL0_OSR_SHIFT 24 +#define CONTROL0_OSR_MAX 3 /* OSR = 512 * 4uS = ~2mS */ +#define CONTROL0_MODE_SHIFT 30 +#define CONTROL0_MODE_EXTERNAL 0x2 +#define CONTROL0_MODE_MASK 0x3 + +#define CONTROL1 0x04 +/* This doesn't seems to work */ +#define CONTROL1_TSEN_SENS_SHIFT 21 +#define CONTROL1_TSEN_SENS_MASK 0x7 + +#define STATUS 0x00 +#define STATUS_TEMP_MASK 0x3FF + +enum mv_thermal_type { + MV_AP806 = 1, + MV_CP110, +}; + +struct mv_thermal_config { + enum mv_thermal_type type; + int ncpus; + int64_t calib_mul; + int64_t calib_add; + int64_t calib_div; + uint32_t valid_mask; + bool signed_value; +}; + +struct mv_thermal_softc { + device_t dev; + struct resource *res[2]; + struct mtx mtx; + + struct mv_thermal_config *config; + int cur_sensor; +}; + +static struct mv_thermal_config mv_ap806_config = { + .type = MV_AP806, + .ncpus = 4, + .calib_mul = 423, + .calib_add = -150000, + .calib_div = 100, + .valid_mask = (1 << 16), + .signed_value = true, +}; + +static struct mv_thermal_config mv_cp110_config = { + .type = MV_CP110, + .calib_mul = 2000096, + .calib_add = 1172499100, + .calib_div = 420100, + .valid_mask = (1 << 10), + .signed_value = false, +}; + +static struct resource_spec mv_thermal_res_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { SYS_RES_MEMORY, 1, RF_ACTIVE }, + { -1, 0 } +}; + +static struct ofw_compat_data compat_data[] = { + {"marvell,armada-ap806-thermal", (uintptr_t) &mv_ap806_config}, + {"marvell,armada-cp110-thermal", (uintptr_t) &mv_cp110_config}, + {NULL, 0} +}; + +#define RD_STA(sc, reg) bus_read_4((sc)->res[0], (reg)) +#define WR_STA(sc, reg, val) bus_write_4((sc)->res[0], (reg), (val)) +#define RD_CON(sc, reg) bus_read_4((sc)->res[1], (reg)) +#define WR_CON(sc, reg, val) bus_write_4((sc)->res[1], (reg), (val)) + +static inline int32_t sign_extend(uint32_t value, int index) +{ + uint8_t shift; + + shift = 31 - index; + return ((int32_t)(value << shift) >> shift); +} + +static int +mv_thermal_wait_sensor(struct mv_thermal_softc *sc) +{ + uint32_t reg; + uint32_t timeout; + + timeout = 100000; + while (--timeout > 0) { + reg = RD_STA(sc, STATUS); + if ((reg & sc->config->valid_mask) == sc->config->valid_mask) + break; + DELAY(100); + } + if (timeout == 0) { + return (ETIMEDOUT); + } + + return (0); +} + +static int +mv_thermal_select_sensor(struct mv_thermal_softc *sc, int sensor) +{ + uint32_t reg; + + if (sc->cur_sensor == sensor) + return (0); + + /* Stop the current reading and reset the module */ + reg = RD_CON(sc, CONTROL0); + reg &= ~(CONTROL0_TSEN_START | CONTROL0_TSEN_EN); + WR_CON(sc, CONTROL0, reg); + + /* Switch to the selected sensor */ + /* + * NOTE : Datasheet says to use CONTROL1 for selecting + * but when doing so the sensors >0 are never ready + * Do what Linux does using undocumented bits in CONTROL0 + */ + /* This reset automatically to the sensor 0 */ + reg &= ~(CONTROL0_MODE_MASK << CONTROL0_MODE_SHIFT); + if (sensor) { + /* Select external sensor */ + reg |= CONTROL0_MODE_EXTERNAL << CONTROL0_MODE_SHIFT; + reg &= ~(CONTROL0_CHANNEL_MASK << CONTROL0_CHANNEL_SHIFT); + reg |= (sensor - 1) << CONTROL0_CHANNEL_SHIFT; + } + WR_CON(sc, CONTROL0, reg); + sc->cur_sensor = sensor; + + /* Start the reading */ + reg = RD_CON(sc, CONTROL0); + reg |= CONTROL0_TSEN_START | CONTROL0_TSEN_EN; + WR_CON(sc, CONTROL0, reg); + + return (mv_thermal_wait_sensor(sc)); +} + +static int +mv_thermal_read_sensor(struct mv_thermal_softc *sc, int sensor, int *temp) +{ + uint32_t reg; + int64_t sample, rv; + + rv = mv_thermal_select_sensor(sc, sensor); + if (rv != 0) + return (rv); + + reg = RD_STA(sc, STATUS) & STATUS_TEMP_MASK; + + if (sc->config->signed_value) + sample = sign_extend(reg, fls(STATUS_TEMP_MASK) - 1); + else + sample = reg; + + *temp = ((sample * sc->config->calib_mul) - sc->config->calib_add) / + sc->config->calib_div; + + return (0); +} + +static int +ap806_init(struct mv_thermal_softc *sc) +{ + uint32_t reg; + + /* Start the temp capture/conversion */ + reg = RD_CON(sc, CONTROL0); + reg &= ~CONTROL0_TSEN_RESET; + reg |= CONTROL0_TSEN_START | CONTROL0_TSEN_EN; + + /* Sample every ~2ms */ + reg |= CONTROL0_OSR_MAX << CONTROL0_OSR_SHIFT; + + WR_CON(sc, CONTROL0, reg); + + /* Since we just started the module wait for the sensor to be ready */ + mv_thermal_wait_sensor(sc); + + return (0); +} + +static int +cp110_init(struct mv_thermal_softc *sc) +{ + uint32_t reg; + + reg = RD_CON(sc, CONTROL1); + reg &= (1 << 7); + reg |= (1 << 8); + WR_CON(sc, CONTROL1, reg); + + /* Sample every ~2ms */ + reg = RD_CON(sc, CONTROL0); + reg |= CONTROL0_OSR_MAX << CONTROL0_OSR_SHIFT; + WR_CON(sc, CONTROL0, reg); + + return (0); +} + +static int +mv_thermal_sysctl(SYSCTL_HANDLER_ARGS) +{ + struct mv_thermal_softc *sc; + device_t dev = arg1; + int sensor = arg2; + int val = 0; + + sc = device_get_softc(dev); + mtx_lock(&(sc)->mtx); + + if (mv_thermal_read_sensor(sc, sensor, &val) == 0) { + /* Convert to Kelvin */ + val = val + 2732; + } else { + device_printf(dev, "Timeout waiting for sensor\n"); + } + + mtx_unlock(&(sc)->mtx); + return sysctl_handle_opaque(oidp, &val, sizeof(val), req); +} + +static int +mv_thermal_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) + return (ENXIO); + + device_set_desc(dev, "Marvell Thermal Sensor Controller"); + return (BUS_PROBE_DEFAULT); +} + +static int +mv_thermal_attach(device_t dev) +{ + struct mv_thermal_softc *sc; + struct sysctl_ctx_list *ctx; + struct sysctl_oid_list *oid; + char name[255]; + char desc[255]; + int i; + + sc = device_get_softc(dev); + sc->dev = dev; + + sc->config = (struct mv_thermal_config *)ofw_bus_search_compatible(dev, compat_data)->ocd_data; + + mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); + + if (bus_alloc_resources(dev, mv_thermal_res_spec, sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + return (ENXIO); + } + + sc->cur_sensor = -1; + switch (sc->config->type) { + case MV_AP806: + ap806_init(sc); + break; + case MV_CP110: + cp110_init(sc); + break; + } + + ctx = device_get_sysctl_ctx(dev); + oid = SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); + /* There is always at least one sensor */ + SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, "internal", + CTLTYPE_INT | CTLFLAG_RD, + dev, 0, mv_thermal_sysctl, + "IK", + "Internal Temperature"); + + for (i = 0; i < sc->config->ncpus; i++) { + snprintf(name, sizeof(name), "cpu%d", i); + snprintf(desc, sizeof(desc), "CPU%d Temperature", i); + SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, name, + CTLTYPE_INT | CTLFLAG_RD, + dev, i + 1, mv_thermal_sysctl, + "IK", + desc); + } + + return (0); +} + +static int +mv_thermal_detach(device_t dev) +{ + struct mv_thermal_softc *sc; + + sc = device_get_softc(dev); + + bus_release_resources(dev, mv_thermal_res_spec, sc->res); + + return (0); +} + +static device_method_t mv_thermal_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, mv_thermal_probe), + DEVMETHOD(device_attach, mv_thermal_attach), + DEVMETHOD(device_detach, mv_thermal_detach), + + DEVMETHOD_END +}; + +static devclass_t mv_thermal_devclass; + +static driver_t mv_thermal_driver = { + "mv_thermal", + mv_thermal_methods, + sizeof(struct mv_thermal_softc), +}; + +DRIVER_MODULE(mv_thermal, simplebus, mv_thermal_driver, + mv_thermal_devclass, 0, 0); Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Wed Dec 12 22:24:30 2018 (r342019) +++ head/sys/arm64/conf/GENERIC Wed Dec 12 22:33:05 2018 (r342020) @@ -240,6 +240,7 @@ device aw_sid # Allwinner Secure ID EFUSE # Thermal sensors device aw_thermal # Allwinner Thermal Sensor Controller +device mv_thermal # Marvell Thermal Sensor Controller # SPI device spibus Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Dec 12 22:24:30 2018 (r342019) +++ head/sys/conf/files.arm64 Wed Dec 12 22:33:05 2018 (r342020) @@ -95,6 +95,7 @@ arm/mv/mv_cp110_icu.c optional mv_cp110_icu fdt arm/mv/mv_ap806_gicp.c optional mv_ap806_gicp fdt arm/mv/mv_ap806_clock.c optional SOC_MARVELL_8K fdt arm/mv/mv_cp110_clock.c optional SOC_MARVELL_8K fdt +arm/mv/mv_thermal.c optional SOC_MARVELL_8K mv_thermal fdt arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt arm/xilinx/uart_dev_cdnc.c optional uart soc_xilinx_zynq arm64/acpica/acpi_machdep.c optional acpi From owner-svn-src-head@freebsd.org Thu Dec 13 00:42:27 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D058132BB8F; Thu, 13 Dec 2018 00:42:27 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0238C895B2; Thu, 13 Dec 2018 00:42:27 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC4431800D; Thu, 13 Dec 2018 00:42:26 +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 wBD0gQu1093052; Thu, 13 Dec 2018 00:42:26 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBD0gQjq093051; Thu, 13 Dec 2018 00:42:26 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201812130042.wBD0gQjq093051@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 13 Dec 2018 00:42:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342022 - head/sys/mips/include X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/mips/include X-SVN-Commit-Revision: 342022 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0238C895B2 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.33 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.50)[-0.500,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 00:42:27 -0000 Author: imp Date: Thu Dec 13 00:42:26 2018 New Revision: 342022 URL: https://svnweb.freebsd.org/changeset/base/342022 Log: Correctly implemenet atomic_swap_long for mips64. MIPS64 has 64-bit longs, so use uint64_t for it, otherwise uint32_t. sizeof(long) == sizeof(ptr) for all platforms, so define atomic_swap_ptr in terms of atomic_swap_long. Submitted by: hps@ Modified: head/sys/mips/include/atomic.h Modified: head/sys/mips/include/atomic.h ============================================================================== --- head/sys/mips/include/atomic.h Wed Dec 12 22:39:17 2018 (r342021) +++ head/sys/mips/include/atomic.h Thu Dec 13 00:42:26 2018 (r342022) @@ -793,6 +793,7 @@ atomic_swap_64(volatile uint64_t *ptr, const uint64_t } #endif +#ifdef __mips_n64 static __inline unsigned long atomic_swap_long(volatile unsigned long *ptr, const unsigned long value) { @@ -800,16 +801,16 @@ atomic_swap_long(volatile unsigned long *ptr, const un retval = *ptr; - while (!atomic_fcmpset_32((volatile uint32_t *)ptr, - (uint32_t *)&retval, value)) + while (!atomic_fcmpset_64((volatile uint64_t *)ptr, + (uint64_t *)&retval, value)) ; return (retval); } - -static __inline uintptr_t -atomic_swap_ptr(volatile uintptr_t *ptr, const uintptr_t value) +#else +static __inline unsigned long +atomic_swap_long(volatile unsigned long *ptr, const unsigned long value) { - uintptr_t retval; + unsigned long retval; retval = *ptr; @@ -818,5 +819,7 @@ atomic_swap_ptr(volatile uintptr_t *ptr, const uintptr ; return (retval); } +#endif +#define atomic_swap_ptr(ptr, value) atomic_swap_long((unsigned long *)(ptr), value) #endif /* ! _MACHINE_ATOMIC_H_ */ From owner-svn-src-head@freebsd.org Thu Dec 13 04:40:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B1D61338773; Thu, 13 Dec 2018 04:40:54 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 30EDB6CA07; Thu, 13 Dec 2018 04:40:54 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2304A1AAE2; Thu, 13 Dec 2018 04:40:54 +0000 (UTC) (envelope-from mmacy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBD4esUd014213; Thu, 13 Dec 2018 04:40:54 GMT (envelope-from mmacy@FreeBSD.org) Received: (from mmacy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBD4erR3014211; Thu, 13 Dec 2018 04:40:53 GMT (envelope-from mmacy@FreeBSD.org) Message-Id: <201812130440.wBD4erR3014211@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmacy set sender to mmacy@FreeBSD.org using -f From: Matt Macy Date: Thu, 13 Dec 2018 04:40:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342024 - in head/sys: crypto/aesni opencrypto X-SVN-Group: head X-SVN-Commit-Author: mmacy X-SVN-Commit-Paths: in head/sys: crypto/aesni opencrypto X-SVN-Commit-Revision: 342024 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 30EDB6CA07 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.43 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.61)[-0.605,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 04:40:54 -0000 Author: mmacy Date: Thu Dec 13 04:40:53 2018 New Revision: 342024 URL: https://svnweb.freebsd.org/changeset/base/342024 Log: Generalize AES iov optimization Right now, aesni_cipher_alloc does a bit of special-casing for CRYPTO_F_IOV, to not do any allocation if the first uio is large enough for the requested size. While working on ZFS crypto port, I ran into horrible performance because the code uses scatter-gather, and many of the times the data to encrypt was in the second entry. This code looks through the list, and tries to see if there is a single uio that can contain the requested data, and, if so, uses that. This has a slight impact on the current consumers, in that the check is a little more complicated for the ones that use CRYPTO_F_IOV -- but none of them meet the criteria for testing more than one. Submitted by: sef at ixsystems.com Reviewed by: cem@ MFC after: 3 days Sponsored by: iX Systems Differential Revision: https://reviews.freebsd.org/D18522 Modified: head/sys/crypto/aesni/aesni.c head/sys/opencrypto/criov.c head/sys/opencrypto/cryptodev.h Modified: head/sys/crypto/aesni/aesni.c ============================================================================== --- head/sys/crypto/aesni/aesni.c Thu Dec 13 03:12:15 2018 (r342023) +++ head/sys/crypto/aesni/aesni.c Thu Dec 13 04:40:53 2018 (r342024) @@ -403,29 +403,14 @@ static uint8_t * aesni_cipher_alloc(struct cryptodesc *enccrd, struct cryptop *crp, bool *allocated) { - struct mbuf *m; - struct uio *uio; - struct iovec *iov; uint8_t *addr; - if (crp->crp_flags & CRYPTO_F_IMBUF) { - m = (struct mbuf *)crp->crp_buf; - if (m->m_next != NULL) - goto alloc; - addr = mtod(m, uint8_t *); - } else if (crp->crp_flags & CRYPTO_F_IOV) { - uio = (struct uio *)crp->crp_buf; - if (uio->uio_iovcnt != 1) - goto alloc; - iov = uio->uio_iov; - addr = (uint8_t *)iov->iov_base; - } else - addr = (uint8_t *)crp->crp_buf; - *allocated = false; - addr += enccrd->crd_skip; - return (addr); - -alloc: + addr = crypto_contiguous_subsegment(crp->crp_flags, + crp->crp_buf, enccrd->crd_skip, enccrd->crd_len); + if (addr != NULL) { + *allocated = false; + return (addr); + } addr = malloc(enccrd->crd_len, M_AESNI, M_NOWAIT); if (addr != NULL) { *allocated = true; Modified: head/sys/opencrypto/criov.c ============================================================================== --- head/sys/opencrypto/criov.c Thu Dec 13 03:12:15 2018 (r342023) +++ head/sys/opencrypto/criov.c Thu Dec 13 04:40:53 2018 (r342024) @@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include @@ -239,3 +241,55 @@ crypto_mbuftoiov(struct mbuf *mbuf, struct iovec **iov *cnt = i; return 0; } + +static inline void * +m_contiguous_subsegment(struct mbuf *m, size_t skip, size_t len) +{ + int rel_off; + + MPASS(skip <= INT_MAX); + + m = m_getptr(m, (int)skip, &rel_off); + if (m == NULL) + return (NULL); + + MPASS(rel_off >= 0); + skip = rel_off; + if (skip + len > m->m_len) + return (NULL); + + return (mtod(m, char*) + skip); +} + +static inline void * +cuio_contiguous_segment(struct uio *uio, size_t skip, size_t len) +{ + int rel_off, idx; + + MPASS(skip <= INT_MAX); + idx = cuio_getptr(uio, (int)skip, &rel_off); + if (idx < 0) + return (NULL); + + MPASS(rel_off >= 0); + skip = rel_off; + if (skip + len > uio->uio_iov[idx].iov_len) + return (NULL); + return ((char *)uio->uio_iov[idx].iov_base + skip); +} + +void * +crypto_contiguous_subsegment(int crp_flags, void *crpbuf, + size_t skip, size_t len) +{ + if ((crp_flags & CRYPTO_F_IMBUF) != 0) + return (m_contiguous_subsegment(crpbuf, skip, len)); + else if ((crp_flags & CRYPTO_F_IOV) != 0) + return (cuio_contiguous_segment(crpbuf, skip, len)); + else { + MPASS((crp_flags & (CRYPTO_F_IMBUF | CRYPTO_F_IOV)) != + (CRYPTO_F_IMBUF | CRYPTO_F_IOV)); + return ((char*)crpbuf + skip); + } +} + Modified: head/sys/opencrypto/cryptodev.h ============================================================================== --- head/sys/opencrypto/cryptodev.h Thu Dec 13 03:12:15 2018 (r342023) +++ head/sys/opencrypto/cryptodev.h Thu Dec 13 04:40:53 2018 (r342024) @@ -564,5 +564,7 @@ extern void crypto_copydata(int flags, caddr_t buf, in extern int crypto_apply(int flags, caddr_t buf, int off, int len, int (*f)(void *, void *, u_int), void *arg); +extern void *crypto_contiguous_subsegment(int, void *, size_t, size_t); + #endif /* _KERNEL */ #endif /* _CRYPTO_CRYPTO_H_ */ From owner-svn-src-head@freebsd.org Thu Dec 13 04:48:30 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82B3C133898B; Thu, 13 Dec 2018 04:48:30 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F09376CDAC; Thu, 13 Dec 2018 04:48:28 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DE4B51AC89; Thu, 13 Dec 2018 04:48:28 +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 wBD4mSXB018583; Thu, 13 Dec 2018 04:48:28 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBD4mSNL018582; Thu, 13 Dec 2018 04:48:28 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812130448.wBD4mSNL018582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 13 Dec 2018 04:48:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342025 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 342025 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F09376CDAC X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.43 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.61)[-0.605,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 04:48:30 -0000 Author: jhibbits Date: Thu Dec 13 04:48:28 2018 New Revision: 342025 URL: https://svnweb.freebsd.org/changeset/base/342025 Log: powerpcspe: Fix GPR handling in SPE exception handler Optimize the exception handler to only save and load the upper word of the GPRs used in the emulating instruction. This reduces the save/load overhead, and as a side effect does not overwrite the upper word of any temporary register. With this commit I am now able to run editors/abiword and math/gnumeric on a e500-based system. MFC after: 1 week MFC With: r341752,r341751 Modified: head/sys/powerpc/booke/spe.c Modified: head/sys/powerpc/booke/spe.c ============================================================================== --- head/sys/powerpc/booke/spe.c Thu Dec 13 04:40:53 2018 (r342024) +++ head/sys/powerpc/booke/spe.c Thu Dec 13 04:48:28 2018 (r342025) @@ -66,7 +66,6 @@ save_vec_int(struct thread *td) */ msr = mfmsr(); mtmsr(msr | PSL_VEC); - isync(); /* * Save the vector registers and SPEFSCR to the PCB @@ -419,6 +418,52 @@ spe_explode(struct fpemu *fe, struct fpn *fp, uint32_t return (0); } +/* + * Save the high word of a 64-bit GPR for manipulation in the exception handler. + */ +static uint32_t +spe_save_reg_high(int reg) +{ + uint32_t vec[2]; +#define EVSTDW(n) case n: __asm ("evstdw %1,0(%0)" \ + :: "b"(vec), "n"(n)); break; + switch (reg) { + EVSTDW(0); EVSTDW(1); EVSTDW(2); EVSTDW(3); + EVSTDW(4); EVSTDW(5); EVSTDW(6); EVSTDW(7); + EVSTDW(8); EVSTDW(9); EVSTDW(10); EVSTDW(11); + EVSTDW(12); EVSTDW(13); EVSTDW(14); EVSTDW(15); + EVSTDW(16); EVSTDW(17); EVSTDW(18); EVSTDW(19); + EVSTDW(20); EVSTDW(21); EVSTDW(22); EVSTDW(23); + EVSTDW(24); EVSTDW(25); EVSTDW(26); EVSTDW(27); + EVSTDW(28); EVSTDW(29); EVSTDW(30); EVSTDW(31); + } +#undef EVSTDW + + return (vec[0]); +} + +/* + * Load the given value into the high word of the requested register. + */ +static void +spe_load_reg_high(int reg, uint32_t val) +{ +#define EVLDW(n) case n: __asm __volatile("evmergelo "#n",%0,0," \ + :: "r"(val)); break; + switch (reg) { + EVLDW(1); EVLDW(2); EVLDW(3); EVLDW(4); + EVLDW(5); EVLDW(6); EVLDW(7); EVLDW(8); + EVLDW(9); EVLDW(10); EVLDW(11); EVLDW(12); + EVLDW(13); EVLDW(14); EVLDW(15); EVLDW(16); + EVLDW(17); EVLDW(18); EVLDW(19); EVLDW(20); + EVLDW(21); EVLDW(22); EVLDW(23); EVLDW(24); + EVLDW(25); EVLDW(26); EVLDW(27); EVLDW(28); + EVLDW(29); EVLDW(30); EVLDW(31); EVLDW(0); + } +#undef EVLDW + +} + void spe_handle_fpdata(struct trapframe *frame) { @@ -426,11 +471,12 @@ spe_handle_fpdata(struct trapframe *frame) struct fpn *result; uint32_t instr, instr_sec_op; uint32_t cr_shift, ra, rb, rd, src; - uint32_t high, low, res; /* For vector operations. */ + uint32_t high, low, res, tmp; /* For vector operations. */ uint32_t spefscr = 0; uint32_t ftod_res[2]; int width; /* Single, Double, Vector, Integer */ int err; + uint32_t msr; err = fueword32((void *)frame->srr0, &instr); @@ -441,6 +487,7 @@ spe_handle_fpdata(struct trapframe *frame) if ((instr >> OPC_SHIFT) != SPE_OPC) return; + msr = mfmsr(); /* * 'cr' field is the upper 3 bits of rd. Magically, since a) rd is 5 * bits, b) each 'cr' field is 4 bits, and c) Only the 'GT' bit is @@ -460,32 +507,35 @@ spe_handle_fpdata(struct trapframe *frame) width = NONE; switch (src) { case SPE: - save_vec_nodrop(curthread); + mtmsr(msr | PSL_VEC); switch (instr_sec_op) { case EVFSABS: - curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); + high = spe_save_reg_high(ra) & ~(1U << 31); frame->fixreg[rd] = frame->fixreg[ra] & ~(1U << 31); + spe_load_reg_high(rd, high); break; case EVFSNABS: - curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); + high = spe_save_reg_high(ra) | (1U << 31); frame->fixreg[rd] = frame->fixreg[ra] | (1U << 31); + spe_load_reg_high(rd, high); break; case EVFSNEG: - curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); + high = spe_save_reg_high(ra) ^ (1U << 31); frame->fixreg[rd] = frame->fixreg[ra] ^ (1U << 31); + spe_load_reg_high(rd, high); break; default: /* High word */ spe_explode(&fpemu, &fpemu.fe_f1, SINGLE, - curthread->td_pcb->pcb_vec.vr[ra][0], 0); + spe_save_reg_high(ra), 0); spe_explode(&fpemu, &fpemu.fe_f2, SINGLE, - curthread->td_pcb->pcb_vec.vr[rb][0], 0); + spe_save_reg_high(rb), 0); high = spe_emu_instr(instr_sec_op, &fpemu, &result, - &curthread->td_pcb->pcb_vec.vr[rd][0]); + &tmp); + if (high < 0) + spe_load_reg_high(rd, tmp); + spefscr = fpscr_to_spefscr(fpemu.fe_cx) << 16; /* Clear the fpemu to start over on the lower bits. */ memset(&fpemu, 0, sizeof(fpemu)); @@ -508,7 +558,6 @@ spe_handle_fpdata(struct trapframe *frame) width = VECTOR; break; } - enable_vec(curthread); goto end; case SPFP: @@ -524,8 +573,7 @@ spe_handle_fpdata(struct trapframe *frame) break; case EFSCFD: spe_explode(&fpemu, &fpemu.fe_f3, DOUBLE, - curthread->td_pcb->pcb_vec.vr[rb][0], - frame->fixreg[rb]); + spe_save_reg_high(rb), frame->fixreg[rb]); result = &fpemu.fe_f3; width = SINGLE; break; @@ -538,25 +586,22 @@ spe_handle_fpdata(struct trapframe *frame) } break; case DPFP: - save_vec_nodrop(curthread); + mtmsr(msr | PSL_VEC); switch (instr_sec_op) { case EFDABS: - curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] & ~(1U << 31); + high = spe_save_reg_high(ra) & ~(1U << 31); frame->fixreg[rd] = frame->fixreg[ra]; - enable_vec(curthread); + spe_load_reg_high(rd, high); break; case EFDNABS: - curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] | (1U << 31); + high = spe_save_reg_high(ra) | (1U << 31); frame->fixreg[rd] = frame->fixreg[ra]; - enable_vec(curthread); + spe_load_reg_high(rd, high); break; case EFDNEG: - curthread->td_pcb->pcb_vec.vr[rd][0] = - curthread->td_pcb->pcb_vec.vr[ra][0] ^ (1U << 31); + high = spe_save_reg_high(ra) ^ (1U << 31); frame->fixreg[rd] = frame->fixreg[ra]; - enable_vec(curthread); + spe_load_reg_high(rd, high); break; case EFDCFS: spe_explode(&fpemu, &fpemu.fe_f3, SINGLE, @@ -566,11 +611,9 @@ spe_handle_fpdata(struct trapframe *frame) break; default: spe_explode(&fpemu, &fpemu.fe_f1, DOUBLE, - curthread->td_pcb->pcb_vec.vr[ra][0], - frame->fixreg[ra]); + spe_save_reg_high(ra), frame->fixreg[ra]); spe_explode(&fpemu, &fpemu.fe_f2, DOUBLE, - curthread->td_pcb->pcb_vec.vr[rb][0], - frame->fixreg[rb]); + spe_save_reg_high(rb), frame->fixreg[rb]); width = DOUBLE; } break; @@ -609,10 +652,8 @@ spe_handle_fpdata(struct trapframe *frame) frame->fixreg[rd] = fpu_ftos(&fpemu, result); break; case DOUBLE: - curthread->td_pcb->pcb_vec.vr[rd][0] = - fpu_ftod(&fpemu, result, ftod_res); + spe_load_reg_high(rd, fpu_ftod(&fpemu, result, ftod_res)); frame->fixreg[rd] = ftod_res[1]; - enable_vec(curthread); break; default: panic("Unknown storage width %d", width); @@ -624,6 +665,7 @@ end: spefscr |= (mfspr(SPR_SPEFSCR) & ~SPEFSCR_FINVS); mtspr(SPR_SPEFSCR, spefscr); frame->srr0 += 4; + mtmsr(msr); return; } From owner-svn-src-head@freebsd.org Thu Dec 13 05:07:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 66F4D1338F8C; Thu, 13 Dec 2018 05:07:40 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 06F5F6D7E5; Thu, 13 Dec 2018 05:07:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E3AF51AFE8; Thu, 13 Dec 2018 05:07:39 +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 wBD57dLQ029094; Thu, 13 Dec 2018 05:07:39 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBD57d4E029093; Thu, 13 Dec 2018 05:07:39 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812130507.wBD57d4E029093@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Thu, 13 Dec 2018 05:07:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342026 - head/sys/powerpc/include X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/include X-SVN-Commit-Revision: 342026 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 06F5F6D7E5 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.44 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.61)[-0.612,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 05:07:40 -0000 Author: jhibbits Date: Thu Dec 13 05:07:39 2018 New Revision: 342026 URL: https://svnweb.freebsd.org/changeset/base/342026 Log: powerpc/booke: Change KERNBASE to be physical load address Previous commits have made VM_MIN_KERNEL_ADDRESS its own separate entity, and rebased the kernel around that address instead of KERNBASE. This commit pulls the trigger to rebase KERNBASE to a physical load address. The eventual goal is to align the address with the AIM KERNBASE, but at this time that's not an option. Currently a Book-E kernel must be loaded on a 64MB boundary, due to size issues. The common load address is at the 64MB mark (0x04000000), so simply make that the default KERNBASE. As of this commit, Book-E kernels can be loaded and booted with ubldr. MFC after: 3 weeks Modified: head/sys/powerpc/include/vmparam.h Modified: head/sys/powerpc/include/vmparam.h ============================================================================== --- head/sys/powerpc/include/vmparam.h Thu Dec 13 04:48:28 2018 (r342025) +++ head/sys/powerpc/include/vmparam.h Thu Dec 13 05:07:39 2018 (r342026) @@ -133,16 +133,9 @@ #else /* Book-E */ -#ifdef __powerpc64__ -#ifndef LOCORE -#define KERNBASE 0xe000000000000100UL /* start of kernel virtual */ -#else -#define KERNBASE 0xe000000000000100 /* start of kernel virtual */ -#endif -#else -#define KERNBASE 0xc0000000 /* start of kernel virtual */ - -#define VM_MIN_KERNEL_ADDRESS KERNBASE +#define KERNBASE 0x04000100 /* start of kernel physical */ +#ifndef __powerpc64__ +#define VM_MIN_KERNEL_ADDRESS 0xc0000000 #define VM_MAX_KERNEL_ADDRESS 0xffffefff #define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS #endif From owner-svn-src-head@freebsd.org Thu Dec 13 06:07:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDE23130AC4F; Thu, 13 Dec 2018 06:07:50 +0000 (UTC) (envelope-from yuripv@yuripv.net) Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 644116FA67; Thu, 13 Dec 2018 06:07:50 +0000 (UTC) (envelope-from yuripv@yuripv.net) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id B270421F51; Thu, 13 Dec 2018 01:07:49 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Thu, 13 Dec 2018 01:07:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yuripv.net; h= subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type:content-transfer-encoding; s=fm3; bh=g yRlVeE7ZYZ3MXc7caIWlBSdzcp+2+IX5kSpekFwDOo=; b=VYVq5wDk/e7xm0lmK vDXQMx306qAAVqEp8vVnfPKHh2efyeiTJibMW2PplRrVIpjF2w/1Rdqqy/KszbSK laJEmx0qm2TxqCJkpTB/Xcn6j1mjltmXptCNTD/07vyOpbkmULi42aSU6phTm0XZ BoyTaTG0iCasIONwmeAu+ZaDB0PVgIhJQqfBv0LbTgmNxNBAVL3xvS8Y7WJi9y4F dWt3SnR0AC7uQtjgt2fGZgnEx6zmAcvsuEpYOU33b+qzc6lxnuh+PZp8b6URzgzJ UjYofarxXxRSW07uFqRSSXoi00P4TCgxmpsfm1+G/i5Pjyt2WlH+4Jym/18jrQzh sO3Mg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=gyRlVeE7ZYZ3MXc7caIWlBSdzcp+2+IX5kSpekFwD Oo=; b=vKGjqsSdlPqcAb102Zrv/tijIAMAvtAX24D7nEJS4dHMhjxhUTw1OXT3Y 4gIXH/4MwbyFzUlJExNa1lC1DEEYeaAwHyFgxOC7Ivt36PxJEma8fIPE19cr/4dV vbohuMH0QuJ/bEstg2OYuseSlk2NdHt09A8ynO/XbMi/F4gM4kI9XsEyIiOmHdRi Ok/ppUi+RB3Eea7PAfKMidvS5EHZe6W1i7YnMnpPXg4tP2abI4DKoTWpH6+X/a8I ygFU3GTDyL1mOWK5nJbNrM55saMNmlpLOsjLIxiSDwmcCThb2WLnNlF0hIxKiC2q fpTWCjoxq62O57KTSlQdCEmpxmXTg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtkedrudehuddgledvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefuvfhfhffkff gfgggjtgfgsehtjeertddtfeejnecuhfhrohhmpegjuhhrihcurfgrnhhkohhvuceohihu rhhiphhvseihuhhrihhpvhdrnhgvtheqnecuffhomhgrihhnpehfrhgvvggsshgurdhorh hgpdgtrhihphhtohguvghvqdhlihhnuhigrdhorhhgpdhgihhthhhusgdrtghomhenucfk phepkeefrddvfeelrdegfedrudeinecurfgrrhgrmhepmhgrihhlfhhrohhmpeihuhhrih hpvheshihurhhiphhvrdhnvghtnecuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Received: from odin.yuripv.net (unknown [83.239.43.16]) by mail.messagingengine.com (Postfix) with ESMTPA id 69F21E4122; Thu, 13 Dec 2018 01:07:48 -0500 (EST) Subject: Re: svn commit: r342009 - head/secure/lib/libcrypto To: Jung-uk Kim , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812122156.wBCLum13004450@repo.freebsd.org> From: Yuri Pankov Message-ID: <859a37f9-504d-0f31-86f9-5083d16306b1@yuripv.net> Date: Thu, 13 Dec 2018 09:07:46 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <201812122156.wBCLum13004450@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 644116FA67 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-5.96 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.96)[-0.965,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 06:07:51 -0000 Jung-uk Kim wrote: > Author: jkim > Date: Wed Dec 12 21:56:47 2018 > New Revision: 342009 > URL: https://svnweb.freebsd.org/changeset/base/342009 > > Log: > Enable devcryptoeng for OpenSSL. > > Since OpenSSL 1.1.1, the good old BSD-specific cryptodev engine has been > deprecated in favor of this new engine. However, this engine is not > throughly tested on FreeBSD because it was originally written for Linux. > > http://cryptodev-linux.org/ > > Also, the author actually meant to enable it by default on BSD platforms but > he failed to do so because there was a bug in the Configure script. > > https://github.com/openssl/openssl/pull/7882 > > Now they found that it was more generic issue. > > https://github.com/openssl/openssl/pull/7885 > > Therefore, we need to enable this engine on head to give it more exposure. > > Modified: > head/secure/lib/libcrypto/Makefile > head/secure/lib/libcrypto/opensslconf.h.in > > Modified: head/secure/lib/libcrypto/Makefile > ============================================================================== > --- head/secure/lib/libcrypto/Makefile Wed Dec 12 21:56:45 2018 (r342008) > +++ head/secure/lib/libcrypto/Makefile Wed Dec 12 21:56:47 2018 (r342009) > @@ -192,8 +192,8 @@ SRCS+= ecp_nistz256-x86.S ecp_nistz256.c > .endif > > # engine > -SRCS+= eng_all.c eng_cnf.c eng_ctrl.c eng_dyn.c eng_err.c eng_fat.c > -SRCS+= eng_init.c eng_lib.c eng_list.c eng_openssl.c eng_pkey.c > +SRCS+= eng_all.c eng_cnf.c eng_ctrl.c eng_devcrypto.c eng_dyn.c eng_err.c > +SRCS+= eng_fat.c eng_init.c eng_lib.c eng_list.c eng_openssl.c eng_pkey.c > SRCS+= eng_rdrand.c eng_table.c tb_asnmth.c tb_cipher.c tb_dh.c tb_digest.c > SRCS+= tb_dsa.c tb_eckey.c tb_pkmeth.c tb_rand.c tb_rsa.c > > > Modified: head/secure/lib/libcrypto/opensslconf.h.in > ============================================================================== > --- head/secure/lib/libcrypto/opensslconf.h.in Wed Dec 12 21:56:45 2018 (r342008) > +++ head/secure/lib/libcrypto/opensslconf.h.in Wed Dec 12 21:56:47 2018 (r342009) > @@ -46,9 +46,6 @@ extern "C" { > #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE > # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE > #endif > -#ifndef OPENSSL_NO_DEVCRYPTOENG > -# define OPENSSL_NO_DEVCRYPTOENG > -#endif > #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 > # define OPENSSL_NO_EC_NISTP_64_GCC_128 > #endif I'm now getting "Could not open /dev/crypto: No such file or directory" from every other utility unless cryptodev is loaded; given that it's not in GENERIC, this is somewhat unexpected change in behavior. From owner-svn-src-head@freebsd.org Thu Dec 13 06:59:56 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 475DA130C527; Thu, 13 Dec 2018 06:59:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E159F716D5; Thu, 13 Dec 2018 06:59:55 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D493E1C2A9; Thu, 13 Dec 2018 06:59:55 +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 wBD6xtw4087798; Thu, 13 Dec 2018 06:59:55 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBD6xthE087796; Thu, 13 Dec 2018 06:59:55 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812130659.wBD6xthE087796@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 13 Dec 2018 06:59:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342029 - head X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 342029 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E159F716D5 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.44 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.61)[-0.612,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 06:59:56 -0000 Author: dim Date: Thu Dec 13 06:59:55 2018 New Revision: 342029 URL: https://svnweb.freebsd.org/changeset/base/342029 Log: Fix dates that I set into the future incorrectly. Noticed by: ler Modified: head/ObsoleteFiles.inc head/UPDATING Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Thu Dec 13 06:51:20 2018 (r342028) +++ head/ObsoleteFiles.inc Thu Dec 13 06:59:55 2018 (r342029) @@ -38,7 +38,7 @@ # xargs -n1 | sort | uniq -d; # done -# 20181218: new clang import which bumps version from 6.0.1 to 7.0.1. +# 20181211: new clang import which bumps version from 6.0.1 to 7.0.1. OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/common_interface_defs.h Modified: head/UPDATING ============================================================================== --- head/UPDATING Thu Dec 13 06:51:20 2018 (r342028) +++ head/UPDATING Thu Dec 13 06:59:55 2018 (r342029) @@ -31,7 +31,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) -20181218: +20181211: Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 7.0.1. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 From owner-svn-src-head@freebsd.org Thu Dec 13 08:59:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1071B1310BC1; Thu, 13 Dec 2018 08:59:52 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A554275111; Thu, 13 Dec 2018 08:59:51 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 94B711D739; Thu, 13 Dec 2018 08:59:51 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBD8xpIP050857; Thu, 13 Dec 2018 08:59:51 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBD8xp1X050856; Thu, 13 Dec 2018 08:59:51 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201812130859.wBD8xp1X050856@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 13 Dec 2018 08:59:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342030 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: ae X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 342030 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A554275111 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.30 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.48)[-0.475,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 08:59:52 -0000 Author: ae Date: Thu Dec 13 08:59:51 2018 New Revision: 342030 URL: https://svnweb.freebsd.org/changeset/base/342030 Log: Plug memory leak for AES_*_NIST_GMAC algorithms. swcr_newsession() allocates sw_ictx for these algorithms, thus we need to free() it in swcr_freesession(). PR: 233907 MFC after: 1 week Modified: head/sys/opencrypto/cryptosoft.c Modified: head/sys/opencrypto/cryptosoft.c ============================================================================== --- head/sys/opencrypto/cryptosoft.c Thu Dec 13 06:59:55 2018 (r342029) +++ head/sys/opencrypto/cryptosoft.c Thu Dec 13 08:59:51 2018 (r342030) @@ -1091,6 +1091,9 @@ swcr_freesession(device_t dev, crypto_session_t cses) case CRYPTO_SHA2_256: case CRYPTO_SHA2_384: case CRYPTO_SHA2_512: + case CRYPTO_AES_128_NIST_GMAC: + case CRYPTO_AES_192_NIST_GMAC: + case CRYPTO_AES_256_NIST_GMAC: axf = swd->sw_axf; if (swd->sw_ictx) { From owner-svn-src-head@freebsd.org Thu Dec 13 11:18:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCF701317AAE; Thu, 13 Dec 2018 11:18:47 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F3AD83459; Thu, 13 Dec 2018 11:18:47 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5E8A31EFE1; Thu, 13 Dec 2018 11:18:47 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBDBIlGJ024816; Thu, 13 Dec 2018 11:18:47 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBDBIkjp024811; Thu, 13 Dec 2018 11:18:46 GMT (envelope-from mm@FreeBSD.org) Message-Id: <201812131118.wBDBIkjp024811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Thu, 13 Dec 2018 11:18:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342042 - in head/contrib/libarchive/libarchive: . test X-SVN-Group: head X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in head/contrib/libarchive/libarchive: . test X-SVN-Commit-Revision: 342042 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6F3AD83459 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.35 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.53)[-0.531,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 11:18:48 -0000 Author: mm Date: Thu Dec 13 11:18:45 2018 New Revision: 342042 URL: https://svnweb.freebsd.org/changeset/base/342042 Log: MFV r341771,342040,342041: Sync libarchive with vendor. Relevant vendor changes: PR #1102: RAR5 reader - fix big-endian problems PR #1105: Fix various crash, memory corruption and infinite loop conditions PR #1107: RAR5 reader: removed an unused function: bf_is_last_block MFC after: 1 week Modified: head/contrib/libarchive/libarchive/archive_acl.c head/contrib/libarchive/libarchive/archive_read_support_format_rar.c head/contrib/libarchive/libarchive/archive_read_support_format_rar5.c head/contrib/libarchive/libarchive/archive_read_support_format_warc.c head/contrib/libarchive/libarchive/test/test_read_format_rar5.c Directory Properties: head/contrib/libarchive/ (props changed) Modified: head/contrib/libarchive/libarchive/archive_acl.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_acl.c Thu Dec 13 11:15:14 2018 (r342041) +++ head/contrib/libarchive/libarchive/archive_acl.c Thu Dec 13 11:18:45 2018 (r342042) @@ -1723,6 +1723,11 @@ archive_acl_from_text_l(struct archive_acl *acl, const st = field[n].start + 1; len = field[n].end - field[n].start; + if (len == 0) { + ret = ARCHIVE_WARN; + continue; + } + switch (*s) { case 'u': if (len == 1 || (len == 4 Modified: head/contrib/libarchive/libarchive/archive_read_support_format_rar.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_read_support_format_rar.c Thu Dec 13 11:15:14 2018 (r342041) +++ head/contrib/libarchive/libarchive/archive_read_support_format_rar.c Thu Dec 13 11:18:45 2018 (r342042) @@ -258,6 +258,7 @@ struct rar struct data_block_offsets *dbo; unsigned int cursor; unsigned int nodes; + char filename_must_match; /* LZSS members */ struct huffman_code maincode; @@ -1560,6 +1561,12 @@ read_header(struct archive_read *a, struct archive_ent } return ret; } + else if (rar->filename_must_match) + { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Mismatch of file parts split across multi-volume archive"); + return (ARCHIVE_FATAL); + } rar->filename_save = (char*)realloc(rar->filename_save, filename_size + 1); @@ -2300,6 +2307,11 @@ parse_codes(struct archive_read *a) new_size = DICTIONARY_MAX_SIZE; else new_size = rar_fls((unsigned int)rar->unp_size) << 1; + if (new_size == 0) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Zero window size is invalid."); + return (ARCHIVE_FATAL); + } new_window = realloc(rar->lzss.window, new_size); if (new_window == NULL) { archive_set_error(&a->archive, ENOMEM, @@ -2928,12 +2940,14 @@ rar_read_ahead(struct archive_read *a, size_t min, ssi else if (*avail == 0 && rar->main_flags & MHD_VOLUME && rar->file_flags & FHD_SPLIT_AFTER) { + rar->filename_must_match = 1; ret = archive_read_format_rar_read_header(a, a->entry); if (ret == (ARCHIVE_EOF)) { rar->has_endarc_header = 1; ret = archive_read_format_rar_read_header(a, a->entry); } + rar->filename_must_match = 0; if (ret != (ARCHIVE_OK)) return NULL; return rar_read_ahead(a, min, avail); Modified: head/contrib/libarchive/libarchive/archive_read_support_format_rar5.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Thu Dec 13 11:15:14 2018 (r342041) +++ head/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Thu Dec 13 11:18:45 2018 (r342042) @@ -24,6 +24,7 @@ */ #include "archive_platform.h" +#include "archive_endian.h" #ifdef HAVE_ERRNO_H #include @@ -225,18 +226,17 @@ struct bit_reader { int in_addr; /* Current byte pointer. */ }; -/* RARv5 block header structure. */ +/* RARv5 block header structure. Use bf_* functions to get values from + * block_flags_u8 field. I.e. bf_byte_count, etc. */ struct compressed_block_header { - union { - struct { - uint8_t bit_size : 3; - uint8_t byte_count : 3; - uint8_t is_last_block : 1; - uint8_t is_table_present : 1; - } block_flags; - uint8_t block_flags_u8; - }; - + /* block_flags_u8 contain fields encoded in little-endian bitfield: + * + * - table present flag (shr 7, and 1), + * - last block flag (shr 6, and 1), + * - byte_count (shr 3, and 7), + * - bit_size (shr 0, and 7). + */ + uint8_t block_flags_u8; uint8_t block_cksum; }; @@ -429,26 +429,35 @@ static void cdeque_free(struct cdeque* d) { d->cap_mask = 0; } +static inline +uint8_t bf_bit_size(const struct compressed_block_header* hdr) { + return hdr->block_flags_u8 & 7; +} + +static inline +uint8_t bf_byte_count(const struct compressed_block_header* hdr) { + return (hdr->block_flags_u8 >> 3) & 7; +} + +static inline +uint8_t bf_is_table_present(const struct compressed_block_header* hdr) { + return (hdr->block_flags_u8 >> 7) & 1; +} + static inline struct rar5* get_context(struct archive_read* a) { return (struct rar5*) a->format->data; } -// TODO: make sure these functions return a little endian number - /* Convenience functions used by filter implementations. */ static uint32_t read_filter_data(struct rar5* rar, uint32_t offset) { - uint32_t* dptr = (uint32_t*) &rar->cstate.window_buf[offset]; - // TODO: bswap if big endian - return *dptr; + return archive_le32dec(&rar->cstate.window_buf[offset]); } static void write_filter_data(struct rar5* rar, uint32_t offset, uint32_t value) { - uint32_t* dptr = (uint32_t*) &rar->cstate.filtered_buf[offset]; - // TODO: bswap if big endian - *dptr = value; + archive_le32enc(&rar->cstate.filtered_buf[offset], value); } static void circular_memcpy(uint8_t* dst, uint8_t* window, const int mask, @@ -995,8 +1004,7 @@ static int read_u32(struct archive_read* a, uint32_t* if(!read_ahead(a, 4, &p)) return 0; - *pvalue = *(const uint32_t*)p; - + *pvalue = archive_le32dec(p); return ARCHIVE_OK == consume(a, 4) ? 1 : 0; } @@ -1005,8 +1013,7 @@ static int read_u64(struct archive_read* a, uint64_t* if(!read_ahead(a, 8, &p)) return 0; - *pvalue = *(const uint64_t*)p; - + *pvalue = archive_le64dec(p); return ARCHIVE_OK == consume(a, 8) ? 1 : 0; } @@ -1936,7 +1943,7 @@ static int create_decode_tables(uint8_t* bit_length, dist = bit_field - table->decode_len[cur_len - 1]; dist >>= (16 - cur_len); - pos = table->decode_pos[cur_len] + dist; + pos = table->decode_pos[cur_len & 15] + dist; if(cur_len < rar5_countof(table->decode_pos) && pos < size) { table->quick_num[code] = table->decode_num[pos]; } else { @@ -2159,17 +2166,17 @@ static int parse_block_header(struct archive_read* a, { memcpy(hdr, p, sizeof(struct compressed_block_header)); - if(hdr->block_flags.byte_count > 2) { + if(bf_byte_count(hdr) > 2) { archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Unsupported block header size (was %d, max is 2)", - hdr->block_flags.byte_count); + bf_byte_count(hdr)); return ARCHIVE_FATAL; } /* This should probably use bit reader interface in order to be more * future-proof. */ *block_size = 0; - switch(hdr->block_flags.byte_count) { + switch(bf_byte_count(hdr)) { /* 1-byte block size */ case 0: *block_size = *(const uint8_t*) &p[2]; @@ -2177,12 +2184,12 @@ static int parse_block_header(struct archive_read* a, /* 2-byte block size */ case 1: - *block_size = *(const uint16_t*) &p[2]; + *block_size = archive_le16dec(&p[2]); break; /* 3-byte block size */ case 2: - *block_size = *(const uint32_t*) &p[2]; + *block_size = archive_le32dec(&p[2]); *block_size &= 0x00FFFFFF; break; @@ -2379,7 +2386,7 @@ static int do_uncompress_block(struct archive_read* a, const int cmask = rar->cstate.window_mask; const struct compressed_block_header* hdr = &rar->last_block_hdr; - const uint8_t bit_size = 1 + hdr->block_flags.bit_size; + const uint8_t bit_size = 1 + bf_bit_size(hdr); while(1) { if(rar->cstate.write_ptr - rar->cstate.last_write_ptr > @@ -2777,7 +2784,7 @@ static int process_block(struct archive_read* a) { /* Skip block header. Next data is huffman tables, if present. */ ssize_t to_skip = sizeof(struct compressed_block_header) + - rar->last_block_hdr.block_flags.byte_count + 1; + bf_byte_count(&rar->last_block_hdr) + 1; if(ARCHIVE_OK != consume(a, to_skip)) return ARCHIVE_EOF; @@ -2833,7 +2840,7 @@ static int process_block(struct archive_read* a) { rar->bits.in_addr = 0; rar->bits.bit_addr = 0; - if(rar->last_block_hdr.block_flags.is_table_present) { + if(bf_is_table_present(&rar->last_block_hdr)) { /* Load Huffman tables. */ ret = parse_tables(a, rar, p); if(ret != ARCHIVE_OK) { Modified: head/contrib/libarchive/libarchive/archive_read_support_format_warc.c ============================================================================== --- head/contrib/libarchive/libarchive/archive_read_support_format_warc.c Thu Dec 13 11:15:14 2018 (r342041) +++ head/contrib/libarchive/libarchive/archive_read_support_format_warc.c Thu Dec 13 11:18:45 2018 (r342042) @@ -386,6 +386,11 @@ _warc_read(struct archive_read *a, const void **buf, s return (ARCHIVE_EOF); } + if (w->unconsumed) { + __archive_read_consume(a, w->unconsumed); + w->unconsumed = 0U; + } + rab = __archive_read_ahead(a, 1U, &nrd); if (nrd < 0) { *bsz = 0U; Modified: head/contrib/libarchive/libarchive/test/test_read_format_rar5.c ============================================================================== --- head/contrib/libarchive/libarchive/test/test_read_format_rar5.c Thu Dec 13 11:15:14 2018 (r342041) +++ head/contrib/libarchive/libarchive/test/test_read_format_rar5.c Thu Dec 13 11:18:45 2018 (r342042) @@ -28,6 +28,7 @@ * help. */ #define __LIBARCHIVE_BUILD #include +#include #define PROLOGUE(reffile) \ struct archive_entry *ae; \ @@ -81,7 +82,7 @@ int verify_data(const uint8_t* data_ptr, int magic, in /* *lptr is a value inside unpacked test file, val is the * value that should be in the unpacked test file. */ - if(*lptr != val) + if(archive_le32dec(lptr) != (uint32_t) val) return 0; } From owner-svn-src-head@freebsd.org Thu Dec 13 12:58:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E3A1D13233DF; Thu, 13 Dec 2018 12:58:42 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8ABE58687C; Thu, 13 Dec 2018 12:58:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7AC7020099; Thu, 13 Dec 2018 12:58:42 +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 wBDCwgcO075968; Thu, 13 Dec 2018 12:58:42 GMT (envelope-from des@FreeBSD.org) Received: (from des@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBDCwgrY075967; Thu, 13 Dec 2018 12:58:42 GMT (envelope-from des@FreeBSD.org) Message-Id: <201812131258.wBDCwgrY075967@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: Thu, 13 Dec 2018 12:58:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342045 - head/etc/mtree X-SVN-Group: head X-SVN-Commit-Author: des X-SVN-Commit-Paths: head/etc/mtree X-SVN-Commit-Revision: 342045 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8ABE58687C X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.11 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.832,0]; NEURAL_HAM_SHORT(-0.28)[-0.280,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 12:58:43 -0000 Author: des Date: Thu Dec 13 12:58:42 2018 New Revision: 342045 URL: https://svnweb.freebsd.org/changeset/base/342045 Log: Create /etc/authpf, used by authpf(8) and authpf-noip(8). MFC after: 1 week Modified: head/etc/mtree/BSD.root.dist Modified: head/etc/mtree/BSD.root.dist ============================================================================== --- head/etc/mtree/BSD.root.dist Thu Dec 13 11:55:18 2018 (r342044) +++ head/etc/mtree/BSD.root.dist Thu Dec 13 12:58:42 2018 (r342045) @@ -30,6 +30,8 @@ etc X11 .. + authpf + .. autofs .. bluetooth From owner-svn-src-head@freebsd.org Thu Dec 13 13:25:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FDD01324830; Thu, 13 Dec 2018 13:25:39 +0000 (UTC) (envelope-from chuck@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CB4C287F65; Thu, 13 Dec 2018 13:25:38 +0000 (UTC) (envelope-from chuck@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BEAC0205AF; Thu, 13 Dec 2018 13:25:38 +0000 (UTC) (envelope-from chuck@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBDDPc9d091767; Thu, 13 Dec 2018 13:25:38 GMT (envelope-from chuck@FreeBSD.org) Received: (from chuck@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBDDPcRu091765; Thu, 13 Dec 2018 13:25:38 GMT (envelope-from chuck@FreeBSD.org) Message-Id: <201812131325.wBDDPcRu091765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: chuck set sender to chuck@FreeBSD.org using -f From: Chuck Tuffli Date: Thu, 13 Dec 2018 13:25:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342046 - in head/sys: cam/nvme dev/nvme X-SVN-Group: head X-SVN-Commit-Author: chuck X-SVN-Commit-Paths: in head/sys: cam/nvme dev/nvme X-SVN-Commit-Revision: 342046 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CB4C287F65 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.14 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.32)[-0.320,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 13:25:39 -0000 Author: chuck Date: Thu Dec 13 13:25:37 2018 New Revision: 342046 URL: https://svnweb.freebsd.org/changeset/base/342046 Log: nda(4) fix check for Dataset Management support In the nda(4) driver, only set DISKFLAG_CANDELETE (a.k.a. can support BIO_DELETE) if the drive supports Dataset Management. There are reports that without this check, VMWare Workstation does not work reliably. Fix is to check the ONCS field in the NVMe Controller Data structure for support. This check previously existed but did not survive the big-endian changes. Reported by: yuripv@yuripv.net Reviewed by: imp, mav, jimharris Approved by: imp (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D18493 Modified: head/sys/cam/nvme/nvme_da.c head/sys/dev/nvme/nvme.h head/sys/dev/nvme/nvme_ns.c Modified: head/sys/cam/nvme/nvme_da.c ============================================================================== --- head/sys/cam/nvme/nvme_da.c Thu Dec 13 12:58:42 2018 (r342045) +++ head/sys/cam/nvme/nvme_da.c Thu Dec 13 13:25:37 2018 (r342046) @@ -798,7 +798,7 @@ ndaregister(struct cam_periph *periph, void *arg) disk->d_mediasize = (off_t)(disk->d_sectorsize * nsd->nsze); disk->d_delmaxsize = disk->d_mediasize; disk->d_flags = DISKFLAG_DIRECT_COMPLETION; -// if (cd->oncs.dsm) // XXX broken? + if (nvme_ctrlr_has_dataset_mgmt(cd)) disk->d_flags |= DISKFLAG_CANDELETE; vwc_present = (cd->vwc >> NVME_CTRLR_DATA_VWC_PRESENT_SHIFT) & NVME_CTRLR_DATA_VWC_PRESENT_MASK; Modified: head/sys/dev/nvme/nvme.h ============================================================================== --- head/sys/dev/nvme/nvme.h Thu Dec 13 12:58:42 2018 (r342045) +++ head/sys/dev/nvme/nvme.h Thu Dec 13 13:25:37 2018 (r342046) @@ -1259,6 +1259,13 @@ void nvme_unregister_consumer(struct nvme_consumer *c device_t nvme_ctrlr_get_device(struct nvme_controller *ctrlr); const struct nvme_controller_data * nvme_ctrlr_get_data(struct nvme_controller *ctrlr); +static inline bool +nvme_ctrlr_has_dataset_mgmt(const struct nvme_controller_data *cd) +{ + /* Assumes cd was byte swapped by nvme_controller_data_swapbytes() */ + return ((cd->oncs >> NVME_CTRLR_DATA_ONCS_DSM_SHIFT) & + NVME_CTRLR_DATA_ONCS_DSM_MASK); +} /* Namespace helper functions */ uint32_t nvme_ns_get_max_io_xfer_size(struct nvme_namespace *ns); Modified: head/sys/dev/nvme/nvme_ns.c ============================================================================== --- head/sys/dev/nvme/nvme_ns.c Thu Dec 13 12:58:42 2018 (r342045) +++ head/sys/dev/nvme/nvme_ns.c Thu Dec 13 13:25:37 2018 (r342046) @@ -498,8 +498,6 @@ nvme_ns_construct(struct nvme_namespace *ns, uint32_t struct nvme_completion_poll_status status; int res; int unit; - uint16_t oncs; - uint8_t dsm; uint8_t flbas_fmt; uint8_t vwc_present; @@ -569,9 +567,7 @@ nvme_ns_construct(struct nvme_namespace *ns, uint32_t return (ENXIO); } - oncs = ctrlr->cdata.oncs; - dsm = (oncs >> NVME_CTRLR_DATA_ONCS_DSM_SHIFT) & NVME_CTRLR_DATA_ONCS_DSM_MASK; - if (dsm) + if (nvme_ctrlr_has_dataset_mgmt(&ctrlr->cdata)) ns->flags |= NVME_NS_DEALLOCATE_SUPPORTED; vwc_present = (ctrlr->cdata.vwc >> NVME_CTRLR_DATA_VWC_PRESENT_SHIFT) & From owner-svn-src-head@freebsd.org Thu Dec 13 20:09:39 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 982F61332C47; Thu, 13 Dec 2018 20:09:39 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2E35A70052; Thu, 13 Dec 2018 20:09:39 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1C8AD24AB5; Thu, 13 Dec 2018 20:09:39 +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 wBDK9cNX099559; Thu, 13 Dec 2018 20:09:38 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBDK9c3l099558; Thu, 13 Dec 2018 20:09:38 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812132009.wBDK9c3l099558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 13 Dec 2018 20:09:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342053 - head/sys/cddl/dev/dtrace/amd64 X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/cddl/dev/dtrace/amd64 X-SVN-Commit-Revision: 342053 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2E35A70052 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.25 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.43)[-0.425,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 20:09:39 -0000 Author: mjg Date: Thu Dec 13 20:09:38 2018 New Revision: 342053 URL: https://svnweb.freebsd.org/changeset/base/342053 Log: dtrace: fix userspace access on boxes with SMAP dtrace has its own routines which were not updated after SMAP support got implemented. Use ifunc just like for other routines. This in particular fixes ustack(). Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18542 Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_asm.S head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_asm.S ============================================================================== --- head/sys/cddl/dev/dtrace/amd64/dtrace_asm.S Thu Dec 13 20:00:16 2018 (r342052) +++ head/sys/cddl/dev/dtrace/amd64/dtrace_asm.S Thu Dec 13 20:09:38 2018 (r342053) @@ -208,7 +208,7 @@ dtrace_caller(int aframes) void dtrace_copy(uintptr_t src, uintptr_t dest, size_t size) */ - ENTRY(dtrace_copy) + ENTRY(dtrace_copy_nosmap) pushq %rbp movq %rsp, %rbp @@ -218,14 +218,28 @@ dtrace_copy(uintptr_t src, uintptr_t dest, size_t size smovb /* move from %ds:rsi to %ed:rdi */ leave ret - END(dtrace_copy) + END(dtrace_copy_nosmap) + ENTRY(dtrace_copy_smap) + pushq %rbp + movq %rsp, %rbp + + xchgq %rdi, %rsi /* make %rsi source, %rdi dest */ + movq %rdx, %rcx /* load count */ + stac + repz /* repeat for count ... */ + smovb /* move from %ds:rsi to %ed:rdi */ + clac + leave + ret + END(dtrace_copy_smap) + /* void dtrace_copystr(uintptr_t uaddr, uintptr_t kaddr, size_t size, volatile uint16_t *flags) */ - ENTRY(dtrace_copystr) + ENTRY(dtrace_copystr_nosmap) pushq %rbp movq %rsp, %rbp @@ -248,55 +262,120 @@ dtrace_copystr(uintptr_t uaddr, uintptr_t kaddr, size_ leave ret - END(dtrace_copystr) + END(dtrace_copystr_nosmap) + ENTRY(dtrace_copystr_smap) + pushq %rbp + movq %rsp, %rbp + + stac +0: + movb (%rdi), %al /* load from source */ + movb %al, (%rsi) /* store to destination */ + addq $1, %rdi /* increment source pointer */ + addq $1, %rsi /* increment destination pointer */ + subq $1, %rdx /* decrement remaining count */ + cmpb $0, %al + je 2f + testq $0xfff, %rdx /* test if count is 4k-aligned */ + jnz 1f /* if not, continue with copying */ + testq $CPU_DTRACE_BADADDR, (%rcx) /* load and test dtrace flags */ + jnz 2f +1: + cmpq $0, %rdx + jne 0b +2: + clac + leave + ret + + END(dtrace_copystr_smap) + /* uintptr_t dtrace_fulword(void *addr) */ - ENTRY(dtrace_fulword) + ENTRY(dtrace_fulword_nosmap) movq (%rdi), %rax ret - END(dtrace_fulword) + END(dtrace_fulword_nosmap) + ENTRY(dtrace_fulword_smap) + stac + movq (%rdi), %rax + clac + ret + END(dtrace_fulword_smap) + /* uint8_t dtrace_fuword8_nocheck(void *addr) */ - ENTRY(dtrace_fuword8_nocheck) + ENTRY(dtrace_fuword8_nocheck_nosmap) xorq %rax, %rax movb (%rdi), %al ret - END(dtrace_fuword8_nocheck) + END(dtrace_fuword8_nocheck_nosmap) + ENTRY(dtrace_fuword8_nocheck_smap) + stac + xorq %rax, %rax + movb (%rdi), %al + clac + ret + END(dtrace_fuword8_nocheck_smap) + /* uint16_t dtrace_fuword16_nocheck(void *addr) */ - ENTRY(dtrace_fuword16_nocheck) + ENTRY(dtrace_fuword16_nocheck_nosmap) xorq %rax, %rax movw (%rdi), %ax ret - END(dtrace_fuword16_nocheck) + END(dtrace_fuword16_nocheck_nosmap) + ENTRY(dtrace_fuword16_nocheck_smap) + stac + xorq %rax, %rax + movw (%rdi), %ax + clac + ret + END(dtrace_fuword16_nocheck_smap) + /* uint32_t dtrace_fuword32_nocheck(void *addr) */ - ENTRY(dtrace_fuword32_nocheck) + ENTRY(dtrace_fuword32_nocheck_nosmap) xorq %rax, %rax movl (%rdi), %eax ret - END(dtrace_fuword32_nocheck) + END(dtrace_fuword32_nocheck_nosmap) + ENTRY(dtrace_fuword32_nocheck_smap) + stac + xorq %rax, %rax + movl (%rdi), %eax + clac + ret + END(dtrace_fuword32_nocheck_smap) + /* uint64_t dtrace_fuword64_nocheck(void *addr) */ - ENTRY(dtrace_fuword64_nocheck) + ENTRY(dtrace_fuword64_nocheck_nosmap) movq (%rdi), %rax ret - END(dtrace_fuword64_nocheck) + END(dtrace_fuword64_nocheck_nosmap) + + ENTRY(dtrace_fuword64_nocheck_smap) + stac + movq (%rdi), %rax + clac + ret + END(dtrace_fuword64_nocheck_smap) /* void Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c ============================================================================== --- head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c Thu Dec 13 20:00:16 2018 (r342052) +++ head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c Thu Dec 13 20:09:38 2018 (r342053) @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -663,4 +664,71 @@ dtrace_fuword64(void *uaddr) return (0); } return (dtrace_fuword64_nocheck(uaddr)); +} + +/* + * ifunc resolvers for SMAP support + */ +void dtrace_copy_nosmap(uintptr_t, uintptr_t, size_t); +void dtrace_copy_smap(uintptr_t, uintptr_t, size_t); +DEFINE_IFUNC(, void, dtrace_copy, (uintptr_t, uintptr_t, size_t), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_copy_smap : dtrace_copy_nosmap); +} + +void dtrace_copystr_nosmap(uintptr_t, uintptr_t, size_t, volatile uint16_t *); +void dtrace_copystr_smap(uintptr_t, uintptr_t, size_t, volatile uint16_t *); +DEFINE_IFUNC(, void, dtrace_copystr, (uintptr_t, uintptr_t, size_t, + volatile uint16_t *), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_copystr_smap : dtrace_copystr_nosmap); +} + +uintptr_t dtrace_fulword_nosmap(void *); +uintptr_t dtrace_fulword_smap(void *); +DEFINE_IFUNC(, uintptr_t, dtrace_fulword, (void *), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_fulword_smap : dtrace_fulword_nosmap); +} + +uint8_t dtrace_fuword8_nocheck_nosmap(void *); +uint8_t dtrace_fuword8_nocheck_smap(void *); +DEFINE_IFUNC(, uint8_t, dtrace_fuword8_nocheck, (void *), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_fuword8_nocheck_smap : dtrace_fuword8_nocheck_nosmap); +} + +uint16_t dtrace_fuword16_nocheck_nosmap(void *); +uint16_t dtrace_fuword16_nocheck_smap(void *); +DEFINE_IFUNC(, uint16_t, dtrace_fuword16_nocheck, (void *), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_fuword16_nocheck_smap : dtrace_fuword16_nocheck_nosmap); +} + +uint32_t dtrace_fuword32_nocheck_nosmap(void *); +uint32_t dtrace_fuword32_nocheck_smap(void *); +DEFINE_IFUNC(, uint32_t, dtrace_fuword32_nocheck, (void *), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_fuword32_nocheck_smap : dtrace_fuword32_nocheck_nosmap); +} + +uint64_t dtrace_fuword64_nocheck_nosmap(void *); +uint64_t dtrace_fuword64_nocheck_smap(void *); +DEFINE_IFUNC(, uint64_t, dtrace_fuword64_nocheck, (void *), static) +{ + + return ((cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0 ? + dtrace_fuword64_nocheck_smap : dtrace_fuword64_nocheck_nosmap); } From owner-svn-src-head@freebsd.org Thu Dec 13 23:20:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7480B1337F49; Thu, 13 Dec 2018 23:20:59 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 121B776F25; Thu, 13 Dec 2018 23:20:59 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F100C26C9F; Thu, 13 Dec 2018 23:20:58 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBDNKw13000648; Thu, 13 Dec 2018 23:20:58 GMT (envelope-from bcran@FreeBSD.org) Received: (from bcran@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBDNKwQ7000647; Thu, 13 Dec 2018 23:20:58 GMT (envelope-from bcran@FreeBSD.org) Message-Id: <201812132320.wBDNKwQ7000647@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcran set sender to bcran@FreeBSD.org using -f From: Rebecca Cran Date: Thu, 13 Dec 2018 23:20:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342054 - head/stand/efi/loader X-SVN-Group: head X-SVN-Commit-Author: bcran X-SVN-Commit-Paths: head/stand/efi/loader X-SVN-Commit-Revision: 342054 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 121B776F25 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.29 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.46)[-0.458,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 23:20:59 -0000 Author: bcran Date: Thu Dec 13 23:20:58 2018 New Revision: 342054 URL: https://svnweb.freebsd.org/changeset/base/342054 Log: Print an error message in efi_main.c if we can't allocate memory for the heap With the default Qemu parameters, only 128MB RAM gets given to a VM. This causes the loader to be unable to allocate the 64MB it needs for the heap. This change makes the cause of the error more obvious. Differential Revision: https://reviews.freebsd.org/D17958 Modified: head/stand/efi/loader/efi_main.c Modified: head/stand/efi/loader/efi_main.c ============================================================================== --- head/stand/efi/loader/efi_main.c Thu Dec 13 20:09:38 2018 (r342053) +++ head/stand/efi/loader/efi_main.c Thu Dec 13 23:20:58 2018 (r342054) @@ -94,8 +94,10 @@ efi_main(EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *sy heapsize = 64 * 1024 * 1024; status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData, EFI_SIZE_TO_PAGES(heapsize), &heap); - if (status != EFI_SUCCESS) + if (status != EFI_SUCCESS) { + ST->ConOut->OutputString(ST->ConOut, L"Failed to allocate memory for heap.\r\n"); BS->Exit(IH, status, 0, NULL); + } setheap((void *)(uintptr_t)heap, (void *)(uintptr_t)(heap + heapsize)); From owner-svn-src-head@freebsd.org Thu Dec 13 23:49:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4103F13388BA; Thu, 13 Dec 2018 23:49:21 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D598577B4C; Thu, 13 Dec 2018 23:49:20 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C3E412709B; Thu, 13 Dec 2018 23:49:20 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBDNnK4E015393; Thu, 13 Dec 2018 23:49:20 GMT (envelope-from bcran@FreeBSD.org) Received: (from bcran@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBDNnKAo015392; Thu, 13 Dec 2018 23:49:20 GMT (envelope-from bcran@FreeBSD.org) Message-Id: <201812132349.wBDNnKAo015392@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcran set sender to bcran@FreeBSD.org using -f From: Rebecca Cran Date: Thu, 13 Dec 2018 23:49:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342055 - head/stand/efi/loader X-SVN-Group: head X-SVN-Commit-Author: bcran X-SVN-Commit-Paths: head/stand/efi/loader X-SVN-Commit-Revision: 342055 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D598577B4C X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.29 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.46)[-0.458,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2018 23:49:21 -0000 Author: bcran Date: Thu Dec 13 23:49:20 2018 New Revision: 342055 URL: https://svnweb.freebsd.org/changeset/base/342055 Log: Cast error message in efi_main.c to CHAR16* to avoid build error Modified: head/stand/efi/loader/efi_main.c Modified: head/stand/efi/loader/efi_main.c ============================================================================== --- head/stand/efi/loader/efi_main.c Thu Dec 13 23:20:58 2018 (r342054) +++ head/stand/efi/loader/efi_main.c Thu Dec 13 23:49:20 2018 (r342055) @@ -95,7 +95,7 @@ efi_main(EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *sy status = BS->AllocatePages(AllocateAnyPages, EfiLoaderData, EFI_SIZE_TO_PAGES(heapsize), &heap); if (status != EFI_SUCCESS) { - ST->ConOut->OutputString(ST->ConOut, L"Failed to allocate memory for heap.\r\n"); + ST->ConOut->OutputString(ST->ConOut, (CHAR16 *)L"Failed to allocate memory for heap.\r\n"); BS->Exit(IH, status, 0, NULL); } From owner-svn-src-head@freebsd.org Fri Dec 14 00:40:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 810D3133A311; Fri, 14 Dec 2018 00:40:44 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2F05981952; Fri, 14 Dec 2018 00:40:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2140827941; Fri, 14 Dec 2018 00:40:44 +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 wBE0eilK042606; Fri, 14 Dec 2018 00:40:44 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE0ecHY042576; Fri, 14 Dec 2018 00:40:38 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201812140040.wBE0ecHY042576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 14 Dec 2018 00:40:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342056 - in head/sys/contrib/dev/acpica: . common compiler components/dispatcher components/executer components/namespace components/parser components/utilities include X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in head/sys/contrib/dev/acpica: . common compiler components/dispatcher components/executer components/namespace components/parser components/utilities include X-SVN-Commit-Revision: 342056 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2F05981952 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.34 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.81)[-0.814,0]; NEURAL_HAM_SHORT(-0.52)[-0.522,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 00:40:45 -0000 Author: jkim Date: Fri Dec 14 00:40:38 2018 New Revision: 342056 URL: https://svnweb.freebsd.org/changeset/base/342056 Log: MFV: r342049 Merge ACPICA 20181213. Modified: head/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/common/ahpredef.c head/sys/contrib/dev/acpica/common/dmswitch.c head/sys/contrib/dev/acpica/compiler/aslcodegen.c head/sys/contrib/dev/acpica/compiler/aslcompile.c head/sys/contrib/dev/acpica/compiler/aslcompiler.h head/sys/contrib/dev/acpica/compiler/aslerror.c head/sys/contrib/dev/acpica/compiler/aslglobal.h head/sys/contrib/dev/acpica/compiler/aslhelp.c head/sys/contrib/dev/acpica/compiler/asllength.c head/sys/contrib/dev/acpica/compiler/aslopcodes.c head/sys/contrib/dev/acpica/compiler/asloptions.c head/sys/contrib/dev/acpica/compiler/asltransform.c head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c head/sys/contrib/dev/acpica/components/dispatcher/dswload.c head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c head/sys/contrib/dev/acpica/components/executer/exconvrt.c head/sys/contrib/dev/acpica/components/executer/excreate.c head/sys/contrib/dev/acpica/components/executer/exoparg2.c head/sys/contrib/dev/acpica/components/executer/exserial.c head/sys/contrib/dev/acpica/components/executer/exutils.c head/sys/contrib/dev/acpica/components/namespace/nseval.c head/sys/contrib/dev/acpica/components/namespace/nsload.c head/sys/contrib/dev/acpica/components/namespace/nsparse.c head/sys/contrib/dev/acpica/components/parser/psloop.c head/sys/contrib/dev/acpica/components/parser/psparse.c head/sys/contrib/dev/acpica/components/parser/psxface.c head/sys/contrib/dev/acpica/components/utilities/utglobal.c head/sys/contrib/dev/acpica/components/utilities/utmisc.c head/sys/contrib/dev/acpica/components/utilities/utosi.c head/sys/contrib/dev/acpica/include/acglobal.h head/sys/contrib/dev/acpica/include/acoutput.h head/sys/contrib/dev/acpica/include/acpixf.h head/sys/contrib/dev/acpica/include/acstruct.h head/sys/contrib/dev/acpica/include/actbl.h head/sys/contrib/dev/acpica/include/actypes.h Directory Properties: head/sys/contrib/dev/acpica/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/changes.txt Fri Dec 14 00:40:38 2018 (r342056) @@ -1,7 +1,68 @@ ---------------------------------------- -31 October 2018. Summary of changes for version 20181031: +13 December 2018. Summary of changes for version 20181213: -This release is available at https://acpica.org/downloads + +1) ACPICA Kernel-resident Subsystem: + +Fixed some buffer length issues with the GenericSerialBus, related to two +of the bidirectional protocols: AttribRawProcessBytes and AttribRawBytes, +which are rarely seen in the field. For these, the LEN field of the ASL +buffer is now ignored. Hans de Goede + +Implemented a new object evaluation trace mechanism for control methods +and data objects. This includes nested control methods. It is +particularly useful for examining the ACPI execution during system +initialization since the output is relatively terse. The flag below +enables the output of the trace via the ACPI_DEBUG_PRINT_RAW interface: + #define ACPI_LV_EVALUATION 0x00080000 + +Examples: + Enter evaluation : _SB.PCI0._INI (Method) + Exit evaluation : _SB.PCI0._INI + Enter evaluation : _OSI (Method) + Exit evaluation : _OSI + Enter evaluation : _SB.PCI0.TEST (Method) + Nested method call : _SB.PCI0.NST1 + Exit nested method : _SB.PCI0.NST1 + Exit evaluation : _SB.PCI0.TEST + +Added two recently-defined _OSI strings. See +https://docs.microsoft.com/en-us/windows-hardware/drivers/acpi/winacpi- +osi. + "Windows 2018" + "Windows 2018.2" + +Update for buffer-to-string conversions via the ToHexString ASL operator. +A "0x" is now prepended to each of the hex values in the output string. +This provides compatibility with other ACPI implementations. The ACPI +specification is somewhat vague on this issue. + Example output string after conversion: +"0x01,0x02,0x03,0x04,0x05,0x06" + +Return a run-time error for TermArg expressions within individual package +elements. Although this is technically supported by the ASL grammar, +other ACPI implementations do not support this either. Also, this fixes a +fault if this type of construct is ever encountered (it never has been). + + +2) iASL Compiler/Disassembler and Tools: + +iASL: Implemented a new compile option (-ww) that will promote individual +warnings and remarks to errors. This is intended to enhance the firmware +build process. + +AcpiExec: Implemented a new command-line option (-eo) to support the new +object evaluation trace mechanism described above. + +Disassembler: Added support to disassemble OEMx tables as AML/ASL tables +instead of a "unknown table" message. + +AcpiHelp: Improved support for the "special" predefined names such as +_Lxx, _Exx, _EJx, _T_x, etc. For these, any legal hex value can now be +used for "xx" and "x". + +---------------------------------------- +31 October 2018. Summary of changes for version 20181031: An Operation Region regression was fixed by properly adding address Modified: head/sys/contrib/dev/acpica/common/ahpredef.c ============================================================================== --- head/sys/contrib/dev/acpica/common/ahpredef.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/common/ahpredef.c Fri Dec 14 00:40:38 2018 (r342056) @@ -171,7 +171,7 @@ */ const AH_PREDEFINED_NAME AslPredefinedInfo[] = { - AH_PREDEF ("_ACx", "Active Cooling", "Returns the active cooling policy threshold values"), + AH_PREDEF ("_ACx", "Active Cooling, x=0-9", "Returns the active cooling policy threshold values"), AH_PREDEF ("_ADR", "Address", "Returns address of a device on parent bus, and resource field"), AH_PREDEF ("_AEI", "ACPI Event Interrupts", "Returns a list of GPIO events to be used as ACPI events"), AH_PREDEF ("_ALC", "Ambient Light Chromaticity", "Returns the ambient light color chromaticity"), @@ -180,7 +180,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_ALP", "Ambient Light Polling", "Returns the ambient light sensor polling frequency"), AH_PREDEF ("_ALR", "Ambient Light Response", "Returns the ambient light brightness to display brightness mappings"), AH_PREDEF ("_ALT", "Ambient Light Temperature", "Returns the ambient light color temperature"), - AH_PREDEF ("_ALx", "Active List", "Returns a list of active cooling device objects"), + AH_PREDEF ("_ALx", "Active List, x=0-9", "Returns a list of active cooling device objects"), AH_PREDEF ("_ART", "Active Cooling Relationship Table", "Returns thermal relationship information between platform devices and fan devices"), AH_PREDEF ("_ASI", "Address Space Id", "Resource Descriptor field"), AH_PREDEF ("_ASZ", "Access Size", "Resource Descriptor field"), @@ -237,11 +237,11 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_DSS", "Device Set State", "Sets the display device state"), AH_PREDEF ("_DSW", "Device Sleep Wake", "Sets the sleep and wake transition states for a device"), AH_PREDEF ("_DTI", "Device Temperature Indication", "Conveys native device temperature to the platform"), - AH_PREDEF ("_Exx", "Edge-Triggered GPE", "Method executed as a result of a general-purpose event"), + AH_PREDEF ("_Exx", "Edge-Triggered GPE, xx=0x00-0xFF", "Method executed as a result of a general-purpose event"), AH_PREDEF ("_EC_", "Embedded Controller", "returns EC offset and query information"), AH_PREDEF ("_EDL", "Eject Device List", "Returns a list of devices that are dependent on a device (docking)"), AH_PREDEF ("_EJD", "Ejection Dependent Device", "Returns the name of dependent (parent) device (docking)"), - AH_PREDEF ("_EJx", "Eject Device", "Begin or cancel a device ejection request (docking)"), + AH_PREDEF ("_EJx", "Eject Device, x=0-9", "Begin or cancel a device ejection request (docking)"), AH_PREDEF ("_END", "Endianness", "Endian orientation, Resource Descriptor field"), AH_PREDEF ("_EVT", "Event", "Event method for GPIO events"), AH_PREDEF ("_FDE", "Floppy Disk Enumerate", "Returns floppy disk configuration information"), @@ -281,7 +281,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_INT", "Interrupts", "Interrupt mask bits, Resource Descriptor field"), AH_PREDEF ("_IOR", "I/O Restriction", "Restriction type, Resource Descriptor field"), AH_PREDEF ("_IRC", "Inrush Current", "Presence indicates that a device has a significant inrush current draw"), - AH_PREDEF ("_Lxx", "Level-Triggered GPE", "Control method executed as a result of a general-purpose event"), + AH_PREDEF ("_Lxx", "Level-Triggered GPE, xx=0x00-0xFF", "Control method executed as a result of a general-purpose event"), AH_PREDEF ("_LCK", "Lock Device", "Locks or unlocks a device (docking)"), AH_PREDEF ("_LEN", "Length", "Range length, Resource Descriptor field"), AH_PREDEF ("_LID", "Lid Status", "Returns the open/closed status of the lid on a mobile system"), @@ -358,7 +358,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_PTS", "Prepare To Sleep", "Inform the platform of an impending sleep transition"), AH_PREDEF ("_PUR", "Processor Utilization Request", "Returns the number of processors that the platform would like to idle"), AH_PREDEF ("_PXM", "Device Proximity", "Returns a device's proximity domain identifier"), - AH_PREDEF ("_Qxx", "EC Query", "Embedded Controller query and SMBus Alarm control method"), + AH_PREDEF ("_Qxx", "EC Query, xx=0x00-0xFF", "Embedded Controller query and SMBus Alarm control method"), AH_PREDEF ("_RBO", "Register Bit Offset", "Resource Descriptor field"), AH_PREDEF ("_RBW", "Register Bit Width", "Resource Descriptor field"), AH_PREDEF ("_RDI", "Resource Dependencies for Idle", "Returns a list of dependencies for idle states"), @@ -413,7 +413,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_SUB", "Subsystem ID", "Returns the subsystem ID for a device"), AH_PREDEF ("_SUN", "Slot User Number", "Returns the slot unique ID number"), AH_PREDEF ("_SWS", "System Wake Source", "Returns the source event that caused the system to wake"), - AH_PREDEF ("_T_x", "Emitted by ASL Compiler", "Reserved for use by ASL compilers"), + AH_PREDEF ("_T_x", "Emitted by ASL Compiler, x=0-9, A-Z", "Reserved for use by ASL compilers"), AH_PREDEF ("_TC1", "Thermal Constant 1", "Returns TC1 for the passive cooling formula"), AH_PREDEF ("_TC2", "Thermal Constant 2", "Returns TC2 for the passive cooling formula"), AH_PREDEF ("_TDL", "T-State Depth Limit", "Returns the _TSS entry number of the lowest power throttling state"), @@ -447,7 +447,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] = AH_PREDEF ("_VAL", "Pin Configuration Value", "Resource Descriptor field"), AH_PREDEF ("_VEN", "Vendor Data", "Resource Descriptor field"), AH_PREDEF ("_VPO", "Video Post Options", "Returns the implemented video post options"), - AH_PREDEF ("_Wxx", "Wake Event", "Method executed as a result of a wake event"), + AH_PREDEF ("_Wxx", "Wake Event, xx=0x00-0xFF", "Method executed as a result of a wake event"), AH_PREDEF ("_WAK", "Wake", "Inform AML that the system has just awakened"), AH_PREDEF ("_WPC", "Wireless Power Calibration", "Calibrate power and notify wireless device"), AH_PREDEF ("_WPP", "Wireless Power Polling", "Get recommended polling interval"), Modified: head/sys/contrib/dev/acpica/common/dmswitch.c ============================================================================== --- head/sys/contrib/dev/acpica/common/dmswitch.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/common/dmswitch.c Fri Dec 14 00:40:38 2018 (r342056) @@ -325,6 +325,8 @@ AcpiDmClearTempList ( * FUNCTION: AcpiDmIsSwitchBlock * * PARAMETERS: Op - While Object + * Temp - Where the compiler temp name is returned + * (_T_x) * * RETURN: TRUE if While block can be converted to a Switch/Case block * @@ -550,6 +552,10 @@ AcpiDmIsSwitchBlock ( if (CurrentOp->Common.AmlOpcode == AML_ELSE_OP) { CurrentOp = CurrentOp->Common.Next; + if (!CurrentOp) + { + return (FALSE); + } } /* Ignore the Break Op */ Modified: head/sys/contrib/dev/acpica/compiler/aslcodegen.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcodegen.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslcodegen.c Fri Dec 14 00:40:38 2018 (r342056) @@ -773,12 +773,6 @@ CgWriteNode ( return; } - if ((Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) && - AslGbl_DoExternals == FALSE) - { - return; - } - Op->Asl.FinalAmlLength = 0; switch (Op->Asl.AmlOpcode) Modified: head/sys/contrib/dev/acpica/compiler/aslcompile.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompile.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslcompile.c Fri Dec 14 00:40:38 2018 (r342056) @@ -388,23 +388,20 @@ CmDoCompile ( /* Resolve External Declarations */ - if (AslGbl_DoExternals) - { - Event = UtBeginEvent ("Resolve all Externals"); - DbgPrint (ASL_DEBUG_OUTPUT, "\nResolve Externals\n\n"); + Event = UtBeginEvent ("Resolve all Externals"); + DbgPrint (ASL_DEBUG_OUTPUT, "\nResolve Externals\n\n"); - if (AslGbl_DoExternalsInPlace) - { - TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD, - ExAmlExternalWalkBegin, NULL, NULL); - } - else - { - TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE, - ExAmlExternalWalkBegin, ExAmlExternalWalkEnd, NULL); - } - UtEndEvent (Event); + if (AslGbl_DoExternalsInPlace) + { + TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD, + ExAmlExternalWalkBegin, NULL, NULL); } + else + { + TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE, + ExAmlExternalWalkBegin, ExAmlExternalWalkEnd, NULL); + } + UtEndEvent (Event); /* * Semantic analysis. This can happen only after the Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompiler.h Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslcompiler.h Fri Dec 14 00:40:38 2018 (r342056) @@ -475,6 +475,10 @@ AslExpectException ( char *MessageIdString); ACPI_STATUS +AslElevateException ( + char *MessageIdString); + +ACPI_STATUS AslDisableException ( char *MessageIdString); Modified: head/sys/contrib/dev/acpica/compiler/aslerror.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslerror.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslerror.c Fri Dec 14 00:40:38 2018 (r342056) @@ -201,7 +201,12 @@ AePrintSubError ( FILE *OutputFile, ASL_ERROR_MSG *Enode); +static UINT8 +GetModifiedLevel ( + UINT8 Level, + UINT16 MessageId); + /******************************************************************************* * * FUNCTION: AslAbort @@ -968,11 +973,12 @@ AslLogNewError ( ASL_ERROR_MSG *SubError) { ASL_ERROR_MSG *Enode = NULL; + UINT8 ModifiedLevel = GetModifiedLevel (Level, MessageId); - AslInitEnode (&Enode, Level, MessageId, LineNumber, LogicalLineNumber, - LogicalByteOffset, Column, Filename, Message, SourceLine, - SubError); + AslInitEnode (&Enode, ModifiedLevel, MessageId, LineNumber, + LogicalLineNumber, LogicalByteOffset, Column, Filename, Message, + SourceLine, SubError); /* Add the new node to the error node list */ @@ -985,7 +991,7 @@ AslLogNewError ( AePrintException (ASL_FILE_STDERR, Enode, NULL); } - AslGbl_ExceptionCount[Level]++; + AslGbl_ExceptionCount[ModifiedLevel]++; if (AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT) { printf ("\nMaximum error count (%u) exceeded\n", ASL_MAX_ERROR_COUNT); @@ -999,8 +1005,46 @@ AslLogNewError ( return; } + /******************************************************************************* * + * FUNCTION: GetModifiedLevel + * + * PARAMETERS: Level - Seriousness (Warning/error, etc.) + * MessageId - Index into global message buffer + * + * RETURN: UINT8 - modified level + * + * DESCRIPTION: Get the modified level of exception codes that are reported as + * errors from the -ww option. + * + ******************************************************************************/ + +static UINT8 +GetModifiedLevel ( + UINT8 Level, + UINT16 MessageId) +{ + UINT16 i; + UINT16 ExceptionCode; + + + ExceptionCode = AeBuildFullExceptionCode (Level, MessageId); + + for (i = 0; i < AslGbl_ElevatedMessagesIndex; i++) + { + if (ExceptionCode == AslGbl_ElevatedMessages[i]) + { + return (ASL_ERROR); + } + } + + return (Level); +} + + +/******************************************************************************* + * * FUNCTION: AslIsExceptionIgnored * * PARAMETERS: Level - Seriousness (Warning/error, etc.) @@ -1154,6 +1198,51 @@ AslDisableException ( return (AE_OK); } + +/******************************************************************************* + * + * FUNCTION: AslElevateException + * + * PARAMETERS: MessageIdString - ID of excepted exception during compile + * + * RETURN: Status + * + * DESCRIPTION: Enter a message ID into the global elevated exceptions table. + * These messages will be considered as compilation errors. + * + ******************************************************************************/ + +ACPI_STATUS +AslElevateException ( + char *MessageIdString) +{ + UINT32 MessageId; + + + /* Convert argument to an integer and validate it */ + + MessageId = (UINT32) strtoul (MessageIdString, NULL, 0); + + if (MessageId > 6999) + { + printf ("\"%s\" is not a valid warning/remark/erro ID\n", + MessageIdString); + return (AE_BAD_PARAMETER); + } + + /* Insert value into the global expected message array */ + + if (AslGbl_ElevatedMessagesIndex >= ASL_MAX_ELEVATED_MESSAGES) + { + printf ("Too many messages have been registered as elevated (max %d)\n", + ASL_MAX_DISABLED_MESSAGES); + return (AE_LIMIT); + } + + AslGbl_ElevatedMessages[AslGbl_ExpectedMessagesIndex] = MessageId; + AslGbl_ElevatedMessagesIndex++; + return (AE_OK); +} /******************************************************************************* * Modified: head/sys/contrib/dev/acpica/compiler/aslglobal.h ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslglobal.h Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslglobal.h Fri Dec 14 00:40:38 2018 (r342056) @@ -255,6 +255,7 @@ extern int AslCompilerdebug; #define ASL_STRING_BUFFER_SIZE (1024 * 32) /* 32k */ #define ASL_MAX_DISABLED_MESSAGES 32 #define ASL_MAX_EXPECTED_MESSAGES 32 +#define ASL_MAX_ELEVATED_MESSAGES 32 #define HEX_TABLE_LINE_SIZE 8 #define HEX_LISTING_LINE_SIZE 8 @@ -319,7 +320,6 @@ ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (A ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_PruneParseTree, FALSE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoTypechecking, TRUE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_EnableReferenceTypechecking, FALSE); -ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoExternals, TRUE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoExternalsInPlace, FALSE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DoAslConversion, FALSE); ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_OptimizeTrivialParseNodes, TRUE); @@ -394,6 +394,7 @@ ASL_EXTERN UINT32 ASL_INIT_GLOBAL (A ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_CurrentLine, 0); ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_DisabledMessagesIndex, 0); ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_ExpectedMessagesIndex, 0); +ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_ElevatedMessagesIndex, 0); ASL_EXTERN UINT8 ASL_INIT_GLOBAL (AslGbl_HexBytesWereWritten, FALSE); ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_NumNamespaceObjects, 0); ASL_EXTERN UINT32 ASL_INIT_GLOBAL (AslGbl_ReservedMethods, 0); @@ -435,6 +436,7 @@ ASL_EXTERN char AslGbl_StringBuffe ASL_EXTERN char AslGbl_StringBuffer2[ASL_STRING_BUFFER_SIZE]; ASL_EXTERN UINT32 AslGbl_DisabledMessages[ASL_MAX_DISABLED_MESSAGES]; ASL_EXTERN ASL_EXPECTED_MESSAGE AslGbl_ExpectedMessages[ASL_MAX_EXPECTED_MESSAGES]; +ASL_EXTERN UINT32 AslGbl_ElevatedMessages[ASL_MAX_ELEVATED_MESSAGES]; #endif /* __ASLGLOBAL_H */ Modified: head/sys/contrib/dev/acpica/compiler/aslhelp.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslhelp.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslhelp.c Fri Dec 14 00:40:38 2018 (r342056) @@ -208,6 +208,7 @@ Usage ( ACPI_OPTION ("-vx ", "Expect a specific warning, remark, or error"); ACPI_OPTION ("-w <1|2|3>", "Set warning reporting level"); ACPI_OPTION ("-we", "Report warnings as errors"); + ACPI_OPTION ("-ww ", "Report specific warning or remark as error"); printf ("\nAML Bytecode Generation (*.aml):\n"); ACPI_OPTION ("-oa", "Disable all optimizations (compatibility mode)"); Modified: head/sys/contrib/dev/acpica/compiler/asllength.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asllength.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/asllength.c Fri Dec 14 00:40:38 2018 (r342056) @@ -519,10 +519,7 @@ CgGenerateAmlLengths ( case PARSEOP_EXTERNAL: - if (AslGbl_DoExternals == TRUE) - { - CgGenerateAmlOpcodeLength (Op); - } + CgGenerateAmlOpcodeLength (Op); break; default: Modified: head/sys/contrib/dev/acpica/compiler/aslopcodes.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslopcodes.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/aslopcodes.c Fri Dec 14 00:40:38 2018 (r342056) @@ -927,15 +927,6 @@ OpcGenerateAmlOpcode ( AslGbl_HasIncludeFiles = TRUE; break; - case PARSEOP_EXTERNAL: - - if (AslGbl_DoExternals == FALSE) - { - Op->Asl.Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; - Op->Asl.Child->Asl.Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; - } - break; - case PARSEOP_TIMER: if (AcpiGbl_IntegerBitWidth == 32) Modified: head/sys/contrib/dev/acpica/compiler/asloptions.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asloptions.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/asloptions.c Fri Dec 14 00:40:38 2018 (r342056) @@ -976,6 +976,23 @@ AslDoOptions ( AslGbl_WarningsAsErrors = TRUE; break; + case 'w': + + /* Get the required argument */ + + if (AcpiGetoptArgument (argc, argv)) + { + return (-1); + } + + Status = AslElevateException (AcpiGbl_Optarg); + if (ACPI_FAILURE (Status)) + { + return (-1); + } + break; + + default: printf ("Unknown option: -w%s\n", AcpiGbl_Optarg); Modified: head/sys/contrib/dev/acpica/compiler/asltransform.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asltransform.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/compiler/asltransform.c Fri Dec 14 00:40:38 2018 (r342056) @@ -460,11 +460,7 @@ TrTransformSubtree ( case PARSEOP_EXTERNAL: - if (AslGbl_DoExternals == TRUE) - { - ExDoExternal (Op); - } - + ExDoExternal (Op); break; case PARSEOP___METHOD__: Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c Fri Dec 14 00:40:38 2018 (r342056) @@ -720,6 +720,8 @@ AcpiDsCallControlMethod ( goto Cleanup; } + NextWalkState->MethodNestingDepth = ThisWalkState->MethodNestingDepth + 1; + /* * Delete the operands on the previous walkstate operand stack * (they were copied to new objects) @@ -737,6 +739,16 @@ AcpiDsCallControlMethod ( ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "**** Begin nested execution of [%4.4s] **** WalkState=%p\n", MethodNode->Name.Ascii, NextWalkState)); + + ThisWalkState->MethodPathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); + ThisWalkState->MethodIsNested = TRUE; + + /* Optional object evaluation log */ + + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION, + "%-26s: %*s%s\n", " Nested method call", + NextWalkState->MethodNestingDepth * 3, " ", + &ThisWalkState->MethodPathname[1])); /* Invoke an internal method if necessary */ Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dsobject.c Fri Dec 14 00:40:38 2018 (r342056) @@ -161,7 +161,6 @@ ACPI_MODULE_NAME ("dsobject") -#ifndef ACPI_NO_METHOD_EXECUTION /******************************************************************************* * * FUNCTION: AcpiDsBuildInternalObject @@ -460,7 +459,6 @@ AcpiDsCreateNode ( return_ACPI_STATUS (Status); } -#endif /* ACPI_NO_METHOD_EXECUTION */ /******************************************************************************* @@ -571,9 +569,7 @@ AcpiDsInitObjectFromOp ( /* Truncate value if we are executing from a 32-bit ACPI table */ -#ifndef ACPI_NO_METHOD_EXECUTION (void) AcpiExTruncateFor32bitTable (ObjDesc); -#endif break; case AML_REVISION_OP: @@ -594,7 +590,6 @@ AcpiDsInitObjectFromOp ( ObjDesc->Integer.Value = Op->Common.Value.Integer; -#ifndef ACPI_NO_METHOD_EXECUTION if (AcpiExTruncateFor32bitTable (ObjDesc)) { /* Warn if we found a 64-bit constant in a 32-bit table */ @@ -604,7 +599,6 @@ AcpiDsInitObjectFromOp ( ACPI_FORMAT_UINT64 (Op->Common.Value.Integer), (UINT32) ObjDesc->Integer.Value)); } -#endif break; default: @@ -642,12 +636,10 @@ AcpiDsInitObjectFromOp ( ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_FIRST_LOCAL_OP; ObjDesc->Reference.Class = ACPI_REFCLASS_LOCAL; -#ifndef ACPI_NO_METHOD_EXECUTION Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL, ObjDesc->Reference.Value, WalkState, ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc->Reference.Object)); -#endif break; case AML_TYPE_METHOD_ARGUMENT: @@ -657,12 +649,10 @@ AcpiDsInitObjectFromOp ( ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_FIRST_ARG_OP; ObjDesc->Reference.Class = ACPI_REFCLASS_ARG; -#ifndef ACPI_NO_METHOD_EXECUTION Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG, ObjDesc->Reference.Value, WalkState, ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc->Reference.Object)); -#endif break; default: /* Object name or Debug object */ Modified: head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c Fri Dec 14 00:40:38 2018 (r342056) @@ -308,6 +308,32 @@ AcpiDsBuildInternalPackageObj ( { if (Arg->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) { + if (!Arg->Common.Node) + { + /* + * This is the case where an expression has returned a value. + * The use of expressions (TermArgs) within individual + * package elements is not supported by the AML interpreter, + * even though the ASL grammar supports it. Example: + * + * Name (INT1, 0x1234) + * + * Name (PKG3, Package () { + * Add (INT1, 0xAAAA0000) + * }) + * + * 1) No known AML interpreter supports this type of construct + * 2) This fixes a fault if the construct is encountered + */ + ACPI_EXCEPTION ((AE_INFO, AE_SUPPORT, + "Expressions within package elements are not supported")); + + /* Cleanup the return object, it is not needed */ + + AcpiUtRemoveReference (WalkState->Results->Results.ObjDesc[0]); + return_ACPI_STATUS (AE_SUPPORT); + } + if (Arg->Common.Node->Type == ACPI_TYPE_METHOD) { /* Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dsutils.c Fri Dec 14 00:40:38 2018 (r342056) @@ -209,7 +209,6 @@ AcpiDsClearImplicitReturn ( } -#ifndef ACPI_NO_METHOD_EXECUTION /******************************************************************************* * * FUNCTION: AcpiDsDoImplicitReturn @@ -583,7 +582,6 @@ AcpiDsClearOperands ( WalkState->NumOperands = 0; return_VOID; } -#endif /******************************************************************************* Modified: head/sys/contrib/dev/acpica/components/dispatcher/dswload.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dswload.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dswload.c Fri Dec 14 00:40:38 2018 (r342056) @@ -221,12 +221,10 @@ AcpiDsInitCallbacks ( /* Execution pass */ -#ifndef ACPI_NO_METHOD_EXECUTION WalkState->ParseFlags |= ACPI_PARSE_EXECUTE | ACPI_PARSE_DELETE_TREE; WalkState->DescendingCallback = AcpiDsExecBeginOp; WalkState->AscendingCallback = AcpiDsExecEndOp; -#endif break; default: @@ -517,7 +515,7 @@ AcpiDsLoad1BeginOp ( /* Initialize the op */ -#if (defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)) +#ifdef ACPI_CONSTANT_EVAL_ONLY Op->Named.Path = Path; #endif @@ -580,7 +578,6 @@ AcpiDsLoad1EndOp ( ObjectType = WalkState->OpInfo->ObjectType; -#ifndef ACPI_NO_METHOD_EXECUTION if (WalkState->OpInfo->Flags & AML_FIELD) { /* @@ -626,7 +623,6 @@ AcpiDsLoad1EndOp ( } } } -#endif if (Op->Common.AmlOpcode == AML_NAME_OP) { Modified: head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c Fri Dec 14 00:40:38 2018 (r342056) @@ -529,10 +529,8 @@ AcpiDsLoad2EndOp ( ACPI_NAMESPACE_NODE *Node; ACPI_PARSE_OBJECT *Arg; ACPI_NAMESPACE_NODE *NewNode; -#ifndef ACPI_NO_METHOD_EXECUTION UINT32 i; UINT8 RegionSpace; -#endif ACPI_FUNCTION_TRACE (DsLoad2EndOp); @@ -622,7 +620,6 @@ AcpiDsLoad2EndOp ( switch (WalkState->OpInfo->Type) { -#ifndef ACPI_NO_METHOD_EXECUTION case AML_TYPE_CREATE_FIELD: /* @@ -718,13 +715,11 @@ AcpiDsLoad2EndOp ( } break; -#endif /* ACPI_NO_METHOD_EXECUTION */ case AML_TYPE_NAMED_COMPLEX: switch (Op->Common.AmlOpcode) { -#ifndef ACPI_NO_METHOD_EXECUTION case AML_REGION_OP: case AML_DATA_REGION_OP: @@ -809,7 +804,6 @@ AcpiDsLoad2EndOp ( } break; -#endif /* ACPI_NO_METHOD_EXECUTION */ default: Modified: head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c ============================================================================== --- head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/dispatcher/dswstate.c Fri Dec 14 00:40:38 2018 (r342056) @@ -733,7 +733,7 @@ AcpiDsCreateWalkState ( /* Init the method args/local */ -#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY)) +#ifndef ACPI_CONSTANT_EVAL_ONLY AcpiDsMethodDataInit (WalkState); #endif Modified: head/sys/contrib/dev/acpica/components/executer/exconvrt.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exconvrt.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/executer/exconvrt.c Fri Dec 14 00:40:38 2018 (r342056) @@ -496,7 +496,7 @@ AcpiExConvertToAscii ( /* HexLength: 2 ascii hex chars per data byte */ - HexLength = ACPI_MUL_2 (DataWidth); + HexLength = (DataWidth * 2); for (i = 0, j = (HexLength-1); i < HexLength; i++, j--) { /* Get one hex digit, most significant digits first */ @@ -539,7 +539,8 @@ AcpiExConvertToAscii ( * * RETURN: Status * - * DESCRIPTION: Convert an ACPI Object to a string + * DESCRIPTION: Convert an ACPI Object to a string. Supports both implicit + * and explicit conversions and related rules. * ******************************************************************************/ @@ -574,9 +575,11 @@ AcpiExConvertToString ( switch (Type) { case ACPI_EXPLICIT_CONVERT_DECIMAL: - - /* Make room for maximum decimal number */ - + /* + * From ToDecimalString, integer source. + * + * Make room for the maximum decimal number size + */ StringLength = ACPI_MAX_DECIMAL_DIGITS; Base = 10; break; @@ -620,8 +623,10 @@ AcpiExConvertToString ( { case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by ToDecimalString */ /* - * From ACPI: "If Data is a buffer, it is converted to a string of - * decimal values separated by commas." + * Explicit conversion from the ToDecimalString ASL operator. + * + * From ACPI: "If the input is a buffer, it is converted to a + * a string of decimal values separated by commas." */ Base = 10; @@ -648,20 +653,29 @@ AcpiExConvertToString ( case ACPI_IMPLICIT_CONVERT_HEX: /* + * Implicit buffer-to-string conversion + * * From the ACPI spec: - *"The entire contents of the buffer are converted to a string of + * "The entire contents of the buffer are converted to a string of * two-character hexadecimal numbers, each separated by a space." + * + * Each hex number is prefixed with 0x (11/2018) */ Separator = ' '; - StringLength = (ObjDesc->Buffer.Length * 3); + StringLength = (ObjDesc->Buffer.Length * 5); break; - case ACPI_EXPLICIT_CONVERT_HEX: /* Used by ToHexString */ + case ACPI_EXPLICIT_CONVERT_HEX: /* + * Explicit conversion from the ToHexString ASL operator. + * * From ACPI: "If Data is a buffer, it is converted to a string of * hexadecimal values separated by commas." + * + * Each hex number is prefixed with 0x (11/2018) */ - StringLength = (ObjDesc->Buffer.Length * 3); + Separator = ','; + StringLength = (ObjDesc->Buffer.Length * 5); break; default: @@ -692,9 +706,20 @@ AcpiExConvertToString ( */ for (i = 0; i < ObjDesc->Buffer.Length; i++) { + if (Base == 16) + { + /* Emit 0x prefix for explict/implicit hex conversion */ + + *NewBuf++ = '0'; + *NewBuf++ = 'x'; + } + NewBuf += AcpiExConvertToAscii ( (UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1); - *NewBuf++ = Separator; /* each separated by a comma or space */ + + /* Each digit is separated by either a comma or space */ + + *NewBuf++ = Separator; } /* Modified: head/sys/contrib/dev/acpica/components/executer/excreate.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/excreate.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/executer/excreate.c Fri Dec 14 00:40:38 2018 (r342056) @@ -161,7 +161,6 @@ ACPI_MODULE_NAME ("excreate") -#ifndef ACPI_NO_METHOD_EXECUTION /******************************************************************************* * * FUNCTION: AcpiExCreateAlias @@ -573,7 +572,6 @@ AcpiExCreatePowerResource ( AcpiUtRemoveReference (ObjDesc); return_ACPI_STATUS (Status); } -#endif /******************************************************************************* Modified: head/sys/contrib/dev/acpica/components/executer/exoparg2.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exoparg2.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/executer/exoparg2.c Fri Dec 14 00:40:38 2018 (r342056) @@ -460,9 +460,9 @@ AcpiExOpcode_2A_1T_1R ( * NOTE: A length of zero is ok, and will create a zero-length, null * terminated string. */ - while ((Length < Operand[0]->Buffer.Length) && - (Length < Operand[1]->Integer.Value) && - (Operand[0]->Buffer.Pointer[Length])) + while ((Length < Operand[0]->Buffer.Length) && /* Length of input buffer */ + (Length < Operand[1]->Integer.Value) && /* Length operand */ + (Operand[0]->Buffer.Pointer[Length])) /* Null terminator */ { Length++; } Modified: head/sys/contrib/dev/acpica/components/executer/exserial.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exserial.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/executer/exserial.c Fri Dec 14 00:40:38 2018 (r342056) @@ -445,14 +445,12 @@ AcpiExWriteSerialBus ( case ACPI_ADR_SPACE_SMBUS: BufferLength = ACPI_SMBUS_BUFFER_SIZE; - DataLength = ACPI_SMBUS_DATA_SIZE; Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16); break; case ACPI_ADR_SPACE_IPMI: BufferLength = ACPI_IPMI_BUFFER_SIZE; - DataLength = ACPI_IPMI_DATA_SIZE; Function = ACPI_WRITE; break; @@ -471,7 +469,6 @@ AcpiExWriteSerialBus ( /* Add header length to get the full size of the buffer */ BufferLength += ACPI_SERIAL_HEADER_SIZE; - DataLength = SourceDesc->Buffer.Pointer[1]; Function = ACPI_WRITE | (AccessorType << 16); break; @@ -479,21 +476,6 @@ AcpiExWriteSerialBus ( return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID); } -#if 0 -OBSOLETE? - /* Check for possible buffer overflow */ - - if (DataLength > SourceDesc->Buffer.Length) - { - ACPI_ERROR ((AE_INFO, - "Length in buffer header (%u)(%u) is greater than " - "the physical buffer length (%u) and will overflow", - DataLength, BufferLength, SourceDesc->Buffer.Length)); - - return_ACPI_STATUS (AE_AML_BUFFER_LIMIT); - } -#endif - /* Create the transfer/bidirectional/return buffer */ BufferDesc = AcpiUtCreateBufferObject (BufferLength); @@ -505,6 +487,8 @@ OBSOLETE? /* Copy the input buffer data to the transfer buffer */ Buffer = BufferDesc->Buffer.Pointer; + DataLength = (BufferLength < SourceDesc->Buffer.Length ? + BufferLength : SourceDesc->Buffer.Length); memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength); /* Lock entire transaction if requested */ Modified: head/sys/contrib/dev/acpica/components/executer/exutils.c ============================================================================== --- head/sys/contrib/dev/acpica/components/executer/exutils.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/executer/exutils.c Fri Dec 14 00:40:38 2018 (r342056) @@ -181,7 +181,6 @@ AcpiExDigitsNeeded ( UINT32 Base); -#ifndef ACPI_NO_METHOD_EXECUTION /******************************************************************************* * * FUNCTION: AcpiExEnterInterpreter @@ -615,4 +614,3 @@ AcpiIsValidSpaceId ( return (TRUE); } -#endif Modified: head/sys/contrib/dev/acpica/components/namespace/nseval.c ============================================================================== --- head/sys/contrib/dev/acpica/components/namespace/nseval.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/namespace/nseval.c Fri Dec 14 00:40:38 2018 (r342056) @@ -259,6 +259,12 @@ AcpiNsEvaluate ( return_ACPI_STATUS (AE_NO_MEMORY); } + /* Optional object evaluation log */ + + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION, + "%-26s: %s (%s)\n", " Enter evaluation", + &Info->FullPathname[1], AcpiUtGetTypeName (Info->Node->Type))); + /* Count the number of arguments being passed in */ Info->ParamCount = 0; @@ -445,6 +451,12 @@ AcpiNsEvaluate ( Info->RelativePathname)); Cleanup: + /* Optional object evaluation log */ + + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION, + "%-26s: %s\n", " Exit evaluation", + &Info->FullPathname[1])); + /* * Namespace was unlocked by the handling AcpiNs* function, so we * just free the pathname and return Modified: head/sys/contrib/dev/acpica/components/namespace/nsload.c ============================================================================== --- head/sys/contrib/dev/acpica/components/namespace/nsload.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/namespace/nsload.c Fri Dec 14 00:40:38 2018 (r342056) @@ -173,7 +173,6 @@ AcpiNsDeleteSubtree ( #endif -#ifndef ACPI_NO_METHOD_EXECUTION /******************************************************************************* * * FUNCTION: AcpiNsLoadTable @@ -476,5 +475,4 @@ AcpiNsUnloadNamespace ( Status = AcpiNsDeleteSubtree (Handle); return_ACPI_STATUS (Status); } -#endif #endif Modified: head/sys/contrib/dev/acpica/components/namespace/nsparse.c ============================================================================== --- head/sys/contrib/dev/acpica/components/namespace/nsparse.c Thu Dec 13 23:49:20 2018 (r342055) +++ head/sys/contrib/dev/acpica/components/namespace/nsparse.c Fri Dec 14 00:40:38 2018 (r342056) @@ -261,7 +261,17 @@ AcpiNsExecuteTable ( goto Cleanup; } + /* Optional object evaluation log */ + + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION, + "%-26s: (Definition Block level)\n", "Module-level evaluation")); + Status = AcpiPsExecuteTable (Info); + + /* Optional object evaluation log */ + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri Dec 14 01:06:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2EF8133AA7C; Fri, 14 Dec 2018 01:06:35 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8664E82916; Fri, 14 Dec 2018 01:06:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A44327E44; Fri, 14 Dec 2018 01:06:35 +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 wBE16Zvn058500; Fri, 14 Dec 2018 01:06:35 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE16Zgr058499; Fri, 14 Dec 2018 01:06:35 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201812140106.wBE16Zgr058499@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Fri, 14 Dec 2018 01:06:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342057 - head/crypto/openssl/crypto/engine X-SVN-Group: head X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: head/crypto/openssl/crypto/engine X-SVN-Commit-Revision: 342057 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8664E82916 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.29 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.46)[-0.458,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 01:06:36 -0000 Author: jkim Date: Fri Dec 14 01:06:34 2018 New Revision: 342057 URL: https://svnweb.freebsd.org/changeset/base/342057 Log: Do not complain when /dev/crypto does not exist. Now the new devcrypto engine is enabled since r342009, many users started seeing "Could not open /dev/crypto: No such file or directory". Disable the annoying error message as it is not very useful anyway. Note the patch was submitted upstream. https://github.com/openssl/openssl/pull/7896 Modified: head/crypto/openssl/crypto/engine/eng_devcrypto.c Modified: head/crypto/openssl/crypto/engine/eng_devcrypto.c ============================================================================== --- head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 00:40:38 2018 (r342056) +++ head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 01:06:34 2018 (r342057) @@ -24,6 +24,8 @@ #include "internal/engine.h" +/* #define ENGINE_DEVCRYPTO_DEBUG */ + #ifdef CRYPTO_ALGORITHM_MIN # define CHECK_BSD_STYLE_MACROS #endif @@ -615,6 +617,9 @@ void engine_load_devcrypto_int() ENGINE *e = NULL; if ((cfd = open("/dev/crypto", O_RDWR, 0)) < 0) { +#ifndef ENGINE_DEVCRYPTO_DEBUG + if (errno != ENOENT) +#endif fprintf(stderr, "Could not open /dev/crypto: %s\n", strerror(errno)); return; } From owner-svn-src-head@freebsd.org Fri Dec 14 02:39:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 46778130B663; Fri, 14 Dec 2018 02:39:11 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B868486464; Fri, 14 Dec 2018 02:39:10 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: by mail-pg1-x531.google.com with SMTP id w7so1957018pgp.13; Thu, 13 Dec 2018 18:39:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:reply-to:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=jSmbOrSr3PJSjoNC88DfiDE6RYuzC4fzA1Ue3BJ6a0U=; b=TpR9PSsbAxCipu1uGw1g70zg9k+Q5iZmdgEHF120XlL6QUB3MTKeK/yW42wbx/ma1r YvOQXkaXxRCr28JsxoSXR5J+DA2d04R23kLeZ0zLZjkZqD67ukpnSOilAhT18AQbR8H9 kWxrxrgNA6EwfwEfpQ6KjdnFOsCA1za1sHmV3pc91/0GIsdjsjFbkCkZlplukedLnjl0 m0zm5j70y4zGHaesx5CetZa8dB6etONrZPwO2agywblrMlU6KEvh6+a84RKi3oUaf+5C PL4qtSwaK3OPJkFLTwerA3Ohko/PTUx3IwKpPMnBL03cvaubLb6Hi+aDR+49+4UOthO+ 4v/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:reply-to:subject:to:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=jSmbOrSr3PJSjoNC88DfiDE6RYuzC4fzA1Ue3BJ6a0U=; b=mSI/KeoM51bDm42jiViyiYoQLMn5pYlkD8MQIalvFV3AM/QLuRUL4ugrAuJs3M5iXc DtbvvNjZNRM0JZHFxlY3PMSDuCoRW0hz1gvJLS2jWgtEEnMLZ/T9KNVHH2LMu3y0r0UD mWinpfGLEXQoWCkrBoS78TZoqvCfXst4B1A1jcp0Xz6TAcdrvEuCYDm5cQjqQAedscba G6FoIdQaaizWV9O3YaFQiN5+KZB6JfzeRhjiPJ4Xthqayzfvy+GfN970/famosZsHNOg 8bUYiHv98A6eGVnqonktjxViV3DYRZELfjMmVXeq97dijn+J1zTvi47RksLurGZSr0p8 iCTg== X-Gm-Message-State: AA+aEWbP4lHfQ3AyawXBluMSqGIn1PaBDyKhKXEcfFX4ojPxDV1LKF0n BJE0KBv6smhg5dYM5Z7qQ9u4NFDj X-Google-Smtp-Source: AFSGD/V9pGuA/ZkRL9qBPpEiMSwLGAPQpcuSTci0jSvSZjLcuHRkDY44ptv3jmxp7EC7AzY9382/Jg== X-Received: by 2002:a63:f515:: with SMTP id w21mr1184769pgh.220.1544755149525; Thu, 13 Dec 2018 18:39:09 -0800 (PST) Received: from ?IPv6:2403:5800:7100:5d01:41fd:8f07:9f95:2994? (2403-5800-7100-5d01-41fd-8f07-9f95-2994.ip6.aussiebb.net. [2403:5800:7100:5d01:41fd:8f07:9f95:2994]) by smtp.gmail.com with ESMTPSA id m19sm9863432pgn.35.2018.12.13.18.39.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 18:39:09 -0800 (PST) Sender: Kubilay Kocak Reply-To: koobs@FreeBSD.org Subject: Re: svn commit: r342057 - head/crypto/openssl/crypto/engine To: Jung-uk Kim , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812140106.wBE16Zgr058499@repo.freebsd.org> From: Kubilay Kocak Message-ID: <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> Date: Fri, 14 Dec 2018 13:39:03 +1100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Thunderbird/64.0 MIME-Version: 1.0 In-Reply-To: <201812140106.wBE16Zgr058499@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B868486464 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-5.89 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; NEURAL_HAM_SHORT(-0.90)[-0.897,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 02:39:11 -0000 On 14/12/2018 12:06 pm, Jung-uk Kim wrote: > Author: jkim > Date: Fri Dec 14 01:06:34 2018 > New Revision: 342057 > URL: https://svnweb.freebsd.org/changeset/base/342057 > > Log: > Do not complain when /dev/crypto does not exist. > > Now the new devcrypto engine is enabled since r342009, many users started > seeing "Could not open /dev/crypto: No such file or directory". Disable > the annoying error message as it is not very useful anyway. > > Note the patch was submitted upstream. > > https://github.com/openssl/openssl/pull/7896 > > Modified: > head/crypto/openssl/crypto/engine/eng_devcrypto.c > > Modified: head/crypto/openssl/crypto/engine/eng_devcrypto.c > ============================================================================== > --- head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 00:40:38 2018 (r342056) > +++ head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 01:06:34 2018 (r342057) > @@ -24,6 +24,8 @@ > > #include "internal/engine.h" > > +/* #define ENGINE_DEVCRYPTO_DEBUG */ > + > #ifdef CRYPTO_ALGORITHM_MIN > # define CHECK_BSD_STYLE_MACROS > #endif > @@ -615,6 +617,9 @@ void engine_load_devcrypto_int() > ENGINE *e = NULL; > > if ((cfd = open("/dev/crypto", O_RDWR, 0)) < 0) { > +#ifndef ENGINE_DEVCRYPTO_DEBUG > + if (errno != ENOENT) > +#endif > fprintf(stderr, "Could not open /dev/crypto: %s\n", strerror(errno)); > return; > } How trivially could devcrypto_debug be modified to be a runtime configuration (say sysctl) setting? From owner-svn-src-head@freebsd.org Fri Dec 14 03:30:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36A1E130CF7B for ; Fri, 14 Dec 2018 03:30:02 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: from mail-it1-x130.google.com (mail-it1-x130.google.com [IPv6:2607:f8b0:4864:20::130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BDD1188349 for ; Fri, 14 Dec 2018 03:30:01 +0000 (UTC) (envelope-from kevin.bowling@kev009.com) Received: by mail-it1-x130.google.com with SMTP id i145so7039853ita.4 for ; Thu, 13 Dec 2018 19:30:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kev009.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YvB3iCKfzsRo29xoyUN+pcGywxzI3xMUgq8vlfwS+vU=; b=oycWiqNQiAeaL8O6sPAEeQJTSJaoM3pPr535ihfEGeHgH7RuJUepU2QEIoGxgzt6/z Y1ky54IkQbVHMtZewMN0jpqdKB814TfDWVK7c14+me5igewX88mUEK398ztWg0lYcpMm qM9XoYYXB7JfFwsVZsyQ7v5JLf7C+6IPqcsgg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YvB3iCKfzsRo29xoyUN+pcGywxzI3xMUgq8vlfwS+vU=; b=qg777MQjsGN+VaHIZldjWnZR8ndiLABs/RL9A2M+nR6+X+ppfqw27r0wPHCkzI5ICF YQ+zILaSZEf9qnnKAp0aYj5ZhdZOeWj/u+X7QIUtNE0iDPpQVXbYwKj6bQJClWKWqIpP WEde3ew7XtIweHzWbsNbY6a5YFqzlw0vdBSDd1bFkYosWQ0OM8SJcNYUQuUUR5h/0sWX pS0km68oUKSHzzt60nf9h8/JQU1q++rjl4s0UC20sZ5ZSdWRCqcXpy+EAfdZkgqVFl3z ZuEEXBScAX5ivPciFQRlFyXduokXFXSWal4bbL5E1pgve0j/XGx5CsuPWwNZ3P/i8wqr n9mA== X-Gm-Message-State: AA+aEWbfZUUiSvjdGhaM3VyV54ad6V0JH7JvNkaQdPqPx9UnM7Kn4Hz/ aRudKGR2RmOu65FkFHL0a52QP0yZJxoSq4h8RNTkFg== X-Google-Smtp-Source: AFSGD/VD71d+NHycgCegKm6in6mgIC0A3+RXuQvUVKX+lmg5iPDLdZtza/uVTQUwTEo79ZF32rrv/b8qxrKL4ffanX0= X-Received: by 2002:a24:b50a:: with SMTP id v10mr1925271ite.21.1544758201105; Thu, 13 Dec 2018 19:30:01 -0800 (PST) MIME-Version: 1.0 References: <201812140106.wBE16Zgr058499@repo.freebsd.org> <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> In-Reply-To: <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> From: Kevin Bowling Date: Thu, 13 Dec 2018 20:29:50 -0700 Message-ID: Subject: Re: svn commit: r342057 - head/crypto/openssl/crypto/engine To: koobs@freebsd.org Cc: Jung-uk Kim , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: BDD1188349 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-5.87 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_SHORT(-0.88)[-0.877,0]; REPLY(-4.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 03:30:02 -0000 But why, you can trivially see the open() call with truss or more advanced tracers if you are debugging this On Thu, Dec 13, 2018 at 6:39 PM Kubilay Kocak wrote: > On 14/12/2018 12:06 pm, Jung-uk Kim wrote: > > Author: jkim > > Date: Fri Dec 14 01:06:34 2018 > > New Revision: 342057 > > URL: https://svnweb.freebsd.org/changeset/base/342057 > > > > Log: > > Do not complain when /dev/crypto does not exist. > > > > Now the new devcrypto engine is enabled since r342009, many users > started > > seeing "Could not open /dev/crypto: No such file or directory". > Disable > > the annoying error message as it is not very useful anyway. > > > > Note the patch was submitted upstream. > > > > https://github.com/openssl/openssl/pull/7896 > > > > Modified: > > head/crypto/openssl/crypto/engine/eng_devcrypto.c > > > > Modified: head/crypto/openssl/crypto/engine/eng_devcrypto.c > > > ============================================================================== > > --- head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 > 00:40:38 2018 (r342056) > > +++ head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 > 01:06:34 2018 (r342057) > > @@ -24,6 +24,8 @@ > > > > #include "internal/engine.h" > > > > +/* #define ENGINE_DEVCRYPTO_DEBUG */ > > + > > #ifdef CRYPTO_ALGORITHM_MIN > > # define CHECK_BSD_STYLE_MACROS > > #endif > > @@ -615,6 +617,9 @@ void engine_load_devcrypto_int() > > ENGINE *e = NULL; > > > > if ((cfd = open("/dev/crypto", O_RDWR, 0)) < 0) { > > +#ifndef ENGINE_DEVCRYPTO_DEBUG > > + if (errno != ENOENT) > > +#endif > > fprintf(stderr, "Could not open /dev/crypto: %s\n", > strerror(errno)); > > return; > > } > > How trivially could devcrypto_debug be modified to be a runtime > configuration (say sysctl) setting? > _______________________________________________ > 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-head@freebsd.org Fri Dec 14 03:55:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36626130DD77; Fri, 14 Dec 2018 03:55:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CD7D4892D8; Fri, 14 Dec 2018 03:55:09 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C0E8429C62; Fri, 14 Dec 2018 03:55:09 +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 wBE3t9eG047807; Fri, 14 Dec 2018 03:55:09 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE3t9aj047804; Fri, 14 Dec 2018 03:55:09 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201812140355.wBE3t9aj047804@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 14 Dec 2018 03:55:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342058 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 342058 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CD7D4892D8 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.44 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.61)[-0.608,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 03:55:10 -0000 Author: mjg Date: Fri Dec 14 03:55:08 2018 New Revision: 342058 URL: https://svnweb.freebsd.org/changeset/base/342058 Log: vfs: mostly depessimize NDINIT_ALL 1) filecaps_init was unnecesarily a function call 2) an asignment at the end was preventing tail calling of cap_rights_init Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_descrip.c head/sys/kern/vfs_lookup.c head/sys/sys/filedesc.h Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Fri Dec 14 01:06:34 2018 (r342057) +++ head/sys/kern/kern_descrip.c Fri Dec 14 03:55:08 2018 (r342058) @@ -1465,17 +1465,6 @@ out: } /* - * Initialize filecaps structure. - */ -void -filecaps_init(struct filecaps *fcaps) -{ - - bzero(fcaps, sizeof(*fcaps)); - fcaps->fc_nioctls = -1; -} - -/* * Copy filecaps structure allocating memory for ioctls array if needed. * * The last parameter indicates whether the fdtable is locked. If it is not and Modified: head/sys/kern/vfs_lookup.c ============================================================================== --- head/sys/kern/vfs_lookup.c Fri Dec 14 01:06:34 2018 (r342057) +++ head/sys/kern/vfs_lookup.c Fri Dec 14 03:55:08 2018 (r342058) @@ -1302,12 +1302,12 @@ NDINIT_ALL(struct nameidata *ndp, u_long op, u_long fl ndp->ni_dirp = namep; ndp->ni_dirfd = dirfd; ndp->ni_startdir = startdir; + filecaps_init(&ndp->ni_filecaps); + ndp->ni_cnd.cn_thread = td; if (rightsp != NULL) ndp->ni_rightsneeded = *rightsp; else cap_rights_init(&ndp->ni_rightsneeded); - filecaps_init(&ndp->ni_filecaps); - ndp->ni_cnd.cn_thread = td; } /* Modified: head/sys/sys/filedesc.h ============================================================================== --- head/sys/sys/filedesc.h Fri Dec 14 01:06:34 2018 (r342057) +++ head/sys/sys/filedesc.h Fri Dec 14 03:55:08 2018 (r342058) @@ -154,7 +154,13 @@ enum { struct thread; -void filecaps_init(struct filecaps *fcaps); +static __inline void +filecaps_init(struct filecaps *fcaps) +{ + + bzero(fcaps, sizeof(*fcaps)); + fcaps->fc_nioctls = -1; +} bool filecaps_copy(const struct filecaps *src, struct filecaps *dst, bool locked); void filecaps_move(struct filecaps *src, struct filecaps *dst); From owner-svn-src-head@freebsd.org Fri Dec 14 07:57:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51F8813239FB; Fri, 14 Dec 2018 07:57:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EB1F990D18; Fri, 14 Dec 2018 07:57:01 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DEDE12C52E; Fri, 14 Dec 2018 07:57:01 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE7v1Um082622; Fri, 14 Dec 2018 07:57:01 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE7v1o8082618; Fri, 14 Dec 2018 07:57:01 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140757.wBE7v1o8082618@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 07:57:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342059 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342059 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: EB1F990D18 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.72)[-0.722,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 07:57:02 -0000 Author: kadesai Date: Fri Dec 14 07:57:00 2018 New Revision: 342059 URL: https://svnweb.freebsd.org/changeset/base/342059 Log: This patch will add support for next generation(SAS3.5) of Tri mode(SAS, SATA, NVMe) MegaRAID adapters. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_cam.c head/sys/dev/mrsas/mrsas_fp.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 03:55:08 2018 (r342058) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 07:57:00 2018 (r342059) @@ -190,6 +190,12 @@ MRSAS_CTLR_ID device_table[] = { {0x1000, MRSAS_INTRUDER_24, 0xffff, 0xffff, "AVAGO Intruder_24 SAS Controller"}, {0x1000, MRSAS_CUTLASS_52, 0xffff, 0xffff, "AVAGO Cutlass_52 SAS Controller"}, {0x1000, MRSAS_CUTLASS_53, 0xffff, 0xffff, "AVAGO Cutlass_53 SAS Controller"}, + {0x1000, MRSAS_VENTURA, 0xffff, 0xffff, "AVAGO Ventura SAS Controller"}, + {0x1000, MRSAS_CRUSADER, 0xffff, 0xffff, "AVAGO Crusader SAS Controller"}, + {0x1000, MRSAS_HARPOON, 0xffff, 0xffff, "AVAGO Harpoon SAS Controller"}, + {0x1000, MRSAS_TOMCAT, 0xffff, 0xffff, "AVAGO Tomcat SAS Controller"}, + {0x1000, MRSAS_VENTURA_4PORT, 0xffff, 0xffff, "AVAGO Ventura_4Port SAS Controller"}, + {0x1000, MRSAS_CRUSADER_4PORT, 0xffff, 0xffff, "AVAGO Crusader_4Port SAS Controller"}, {0, 0, 0, 0, NULL} }; @@ -815,7 +821,7 @@ static int mrsas_attach(device_t dev) { struct mrsas_softc *sc = device_get_softc(dev); - uint32_t cmd, bar, error; + uint32_t cmd, error; memset(sc, 0, sizeof(struct mrsas_softc)); @@ -830,7 +836,14 @@ mrsas_attach(device_t dev) (sc->device_id == MRSAS_CUTLASS_52) || (sc->device_id == MRSAS_CUTLASS_53)) { sc->mrsas_gen3_ctrl = 1; - } + } else if ((sc->device_id == MRSAS_VENTURA) || + (sc->device_id == MRSAS_CRUSADER) || + (sc->device_id == MRSAS_HARPOON) || + (sc->device_id == MRSAS_TOMCAT) || + (sc->device_id == MRSAS_VENTURA_4PORT) || + (sc->device_id == MRSAS_CRUSADER_4PORT)) { + sc->is_ventura = true; + } mrsas_get_tunables(sc); @@ -845,9 +858,12 @@ mrsas_attach(device_t dev) cmd |= PCIM_CMD_BUSMASTEREN; pci_write_config(dev, PCIR_COMMAND, cmd, 2); - bar = pci_read_config(dev, MRSAS_PCI_BAR1, 4); + /* For Ventura system registers are mapped to BAR0 */ + if (sc->is_ventura) + sc->reg_res_id = PCIR_BAR(0); /* BAR0 offset */ + else + sc->reg_res_id = PCIR_BAR(1); /* BAR1 offset */ - sc->reg_res_id = MRSAS_PCI_BAR1;/* BAR1 offset */ if ((sc->reg_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &(sc->reg_res_id), RF_ACTIVE)) == NULL) { @@ -1648,7 +1664,7 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M */ if (threshold_reply_count >= THRESHOLD_REPLY_COUNT) { if (sc->msix_enable) { - if (sc->mrsas_gen3_ctrl) + if (sc->msix_combined) mrsas_write_reg(sc, sc->msix_reg_offset[MSIxIndex / 8], ((MSIxIndex & 0x7) << 24) | sc->last_reply_idx[MSIxIndex]); @@ -1669,7 +1685,7 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M /* Clear response interrupt */ if (sc->msix_enable) { - if (sc->mrsas_gen3_ctrl) { + if (sc->msix_combined) { mrsas_write_reg(sc, sc->msix_reg_offset[MSIxIndex / 8], ((MSIxIndex & 0x7) << 24) | sc->last_reply_idx[MSIxIndex]); @@ -2177,6 +2193,15 @@ mrsas_init_fw(struct mrsas_softc *sc) >> MR_MAX_REPLY_QUEUES_EXT_OFFSET_SHIFT) + 1; fw_msix_count = sc->msix_vectors; + if ((sc->mrsas_gen3_ctrl && (sc->msix_vectors > 8)) || + (sc->is_ventura && (sc->msix_vectors > 16))) + sc->msix_combined = true; + /* + * Save 1-15 reply post index + * address to local memory Index 0 + * is already saved from reg offset + * MPI2_REPLY_POST_HOST_INDEX_OFFSET + */ for (loop = 1; loop < MR_MAX_MSIX_REG_ARRAY; loop++) { sc->msix_reg_offset[loop] = @@ -2199,6 +2224,14 @@ mrsas_init_fw(struct mrsas_softc *sc) "Online CPU %d Current MSIX <%d>\n", fw_msix_count, mp_ncpus, sc->msix_vectors); } + /* + * MSI-X host index 0 is common for all adapter. + * It is used for all MPT based Adapters. + */ + if (sc->msix_combined) { + sc->msix_reg_offset[0] = + MPI2_SUP_REPLY_POST_HOST_INDEX_OFFSET; + } if (mrsas_init_adapter(sc) != SUCCESS) { device_printf(sc->mrsas_dev, "Adapter initialize Fail.\n"); return (1); @@ -2476,7 +2509,7 @@ mrsas_ioc_init(struct mrsas_softc *sc) init_frame->flags |= MFI_FRAME_DONT_POST_IN_REPLY_QUEUE; /* driver support Extended MSIX */ - if (sc->mrsas_gen3_ctrl) { + if (sc->mrsas_gen3_ctrl || sc->is_ventura) { init_frame->driver_operations. mfi_capabilities.support_additional_msix = 1; } @@ -3591,7 +3624,7 @@ mrsas_build_mptmfi_passthru(struct mrsas_softc *sc, st io_req = mpt_cmd->io_request; - if (sc->mrsas_gen3_ctrl) { + if (sc->mrsas_gen3_ctrl || sc->is_ventura) { pMpi25IeeeSgeChain64_t sgl_ptr_end = (pMpi25IeeeSgeChain64_t)&io_req->SGL; sgl_ptr_end += sc->max_sge_in_main_msg - 1; Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 03:55:08 2018 (r342058) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 07:57:00 2018 (r342059) @@ -84,9 +84,13 @@ __FBSDID("$FreeBSD$"); #define MRSAS_INTRUDER_24 0x00cf #define MRSAS_CUTLASS_52 0x0052 #define MRSAS_CUTLASS_53 0x0053 -#define MRSAS_PCI_BAR0 0x10 -#define MRSAS_PCI_BAR1 0x14 -#define MRSAS_PCI_BAR2 0x1C +/* Gen3.5 Conroller */ +#define MRSAS_VENTURA 0x0014 +#define MRSAS_CRUSADER 0x0015 +#define MRSAS_HARPOON 0x0016 +#define MRSAS_TOMCAT 0x0017 +#define MRSAS_VENTURA_4PORT 0x001B +#define MRSAS_CRUSADER_4PORT 0x001C /* * Firmware State Defines @@ -2912,6 +2916,9 @@ struct mrsas_softc { u_int32_t old_map_sz; u_int32_t new_map_sz; u_int32_t drv_map_sz; + + boolean_t is_ventura; + boolean_t msix_combined; /* Non dma-able memory. Driver local copy. */ MR_DRV_RAID_MAP_ALL *ld_drv_map[2]; Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 03:55:08 2018 (r342058) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 07:57:00 2018 (r342059) @@ -1103,7 +1103,8 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs * Because the NON RW cmds will now go via FW Queue * and not the Exception queue */ - io_request->IoFlags |= MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH; + if (sc->mrsas_gen3_ctrl || sc->is_ventura) + io_request->IoFlags |= MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH; cmd->request_desc->SCSIIO.RequestFlags = (MPI2_REQ_DESCRIPT_FLAGS_FP_IO << @@ -1233,7 +1234,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, io_request = cmd->io_request; sgl_ptr = (pMpi25IeeeSgeChain64_t)&io_request->SGL; - if (sc->mrsas_gen3_ctrl) { + if (sc->mrsas_gen3_ctrl || sc->is_ventura) { pMpi25IeeeSgeChain64_t sgl_ptr_end = sgl_ptr; sgl_ptr_end += sc->max_sge_in_main_msg - 1; @@ -1244,7 +1245,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, sgl_ptr->Address = segs[i].ds_addr; sgl_ptr->Length = segs[i].ds_len; sgl_ptr->Flags = 0; - if (sc->mrsas_gen3_ctrl) { + if (sc->mrsas_gen3_ctrl || sc->is_ventura) { if (i == nseg - 1) sgl_ptr->Flags = IEEE_SGE_FLAGS_END_OF_LIST; } @@ -1254,7 +1255,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, (nseg > sc->max_sge_in_main_msg)) { pMpi25IeeeSgeChain64_t sg_chain; - if (sc->mrsas_gen3_ctrl) { + if (sc->mrsas_gen3_ctrl || sc->is_ventura) { if ((cmd->io_request->IoFlags & MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) != MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) cmd->io_request->ChainOffset = sc->chain_offset_io_request; @@ -1263,7 +1264,7 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, } else cmd->io_request->ChainOffset = sc->chain_offset_io_request; sg_chain = sgl_ptr; - if (sc->mrsas_gen3_ctrl) + if (sc->mrsas_gen3_ctrl || sc->is_ventura) sg_chain->Flags = IEEE_SGE_FLAGS_CHAIN_ELEMENT; else sg_chain->Flags = (IEEE_SGE_FLAGS_CHAIN_ELEMENT | MPI2_IEEE_SGE_FLAGS_IOCPLBNTA_ADDR); Modified: head/sys/dev/mrsas/mrsas_fp.c ============================================================================== --- head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 03:55:08 2018 (r342058) +++ head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 07:57:00 2018 (r342059) @@ -773,8 +773,9 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in *pDevHandle = MR_PdDevHandleGet(pd, map); else { *pDevHandle = MR_PD_INVALID; - if ((raid->level >= 5) && ((!sc->mrsas_gen3_ctrl) || (sc->mrsas_gen3_ctrl && - raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) + if ((raid->level >= 5) && ((sc->device_id == MRSAS_TBOLT) || + (sc->mrsas_gen3_ctrl && + raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE; else if (raid->level == 1) { pd = MR_ArPdGet(arRef, physArm + 1, map); @@ -958,7 +959,7 @@ MR_BuildRaidContext(struct mrsas_softc *sc, struct IO_ pRAID_Context->timeoutValue = map->raidMap.fpPdIoTimeoutSec; if (sc->mrsas_gen3_ctrl) pRAID_Context->regLockFlags = (isRead) ? raid->regTypeReqOnRead : raid->regTypeReqOnWrite; - else + else if (sc->device_id == MRSAS_TBOLT) pRAID_Context->regLockFlags = (isRead) ? REGION_TYPE_SHARED_READ : raid->regTypeReqOnWrite; pRAID_Context->VirtualDiskTgtId = raid->targetId; pRAID_Context->regLockRowLBA = regStart; @@ -1478,8 +1479,9 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, *pDevHandle = MR_PdDevHandleGet(pd, map); else { *pDevHandle = MR_PD_INVALID; /* set dev handle as invalid. */ - if ((raid->level >= 5) && ((!sc->mrsas_gen3_ctrl) || (sc->mrsas_gen3_ctrl && - raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) + if ((raid->level >= 5) && ((sc->device_id == MRSAS_TBOLT) || + (sc->mrsas_gen3_ctrl && + raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE; else if (raid->level == 1) { /* Get Alternate Pd. */ From owner-svn-src-head@freebsd.org Fri Dec 14 07:59:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A89491323B59; Fri, 14 Dec 2018 07:59:10 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 56DD590EE2; Fri, 14 Dec 2018 07:59:10 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B8362C536; Fri, 14 Dec 2018 07:59:10 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE7xAMU082759; Fri, 14 Dec 2018 07:59:10 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE7x9cn082757; Fri, 14 Dec 2018 07:59:09 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140759.wBE7x9cn082757@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 07:59:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342060 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342060 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 56DD590EE2 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.818,0]; NEURAL_HAM_SHORT(-0.73)[-0.725,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 07:59:11 -0000 Author: kadesai Date: Fri Dec 14 07:59:09 2018 New Revision: 342060 URL: https://svnweb.freebsd.org/changeset/base/342060 Log: This patch will add support for new Dynamic RaidMap to have different sizes for different number of supported VDs for SAS3.5 MegaRAID adapters. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_fp.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 07:57:00 2018 (r342059) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 07:59:09 2018 (r342060) @@ -1757,8 +1757,8 @@ mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, u_ static int mrsas_alloc_mem(struct mrsas_softc *sc) { - u_int32_t verbuf_size, io_req_size, reply_desc_size, sense_size, - chain_frame_size, evt_detail_size, count; + u_int32_t verbuf_size, io_req_size, reply_desc_size, sense_size, chain_frame_size, + evt_detail_size, count; /* * Allocate parent DMA tag @@ -2163,7 +2163,7 @@ mrsas_init_fw(struct mrsas_softc *sc) u_int32_t max_sectors_1; u_int32_t max_sectors_2; u_int32_t tmp_sectors; - u_int32_t scratch_pad_2; + u_int32_t scratch_pad_2, scratch_pad_3; int msix_enable = 0; int fw_msix_count = 0; @@ -2172,6 +2172,15 @@ mrsas_init_fw(struct mrsas_softc *sc) if (ret != SUCCESS) { return (ret); } + if (sc->is_ventura) { + scratch_pad_3 = mrsas_read_reg(sc, offsetof(mrsas_reg_set, outbound_scratch_pad_3)); +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, "scratch_pad_3 0x%x\n", scratch_pad_3); +#endif + sc->maxRaidMapSize = ((scratch_pad_3 >> + MR_MAX_RAID_MAP_SIZE_OFFSET_SHIFT) & + MR_MAX_RAID_MAP_SIZE_MASK); + } /* MSI-x index 0- reply post host index register */ sc->msix_reg_offset[0] = MPI2_REPLY_POST_HOST_INDEX_OFFSET; /* Check if MSI-X is supported while in ready state */ @@ -3395,8 +3404,10 @@ dcmd_timeout: static void mrsas_update_ext_vd_details(struct mrsas_softc *sc) { + u_int32_t ventura_map_sz = 0; sc->max256vdSupport = - sc->ctrl_info->adapterOperations3.supportMaxExtLDs; + sc->ctrl_info->adapterOperations3.supportMaxExtLDs; + /* Below is additional check to address future FW enhancement */ if (sc->ctrl_info->max_lds > 64) sc->max256vdSupport = 1; @@ -3413,20 +3424,33 @@ mrsas_update_ext_vd_details(struct mrsas_softc *sc) sc->fw_supported_pd_count = MAX_PHYSICAL_DEVICES; } - sc->old_map_sz = sizeof(MR_FW_RAID_MAP) + - (sizeof(MR_LD_SPAN_MAP) * - (sc->fw_supported_vd_count - 1)); - sc->new_map_sz = sizeof(MR_FW_RAID_MAP_EXT); - sc->drv_map_sz = sizeof(MR_DRV_RAID_MAP) + - (sizeof(MR_LD_SPAN_MAP) * - (sc->drv_supported_vd_count - 1)); + if (sc->maxRaidMapSize) { + ventura_map_sz = sc->maxRaidMapSize * + MR_MIN_MAP_SIZE; + sc->current_map_sz = ventura_map_sz; + sc->max_map_sz = ventura_map_sz; + } else { + sc->old_map_sz = sizeof(MR_FW_RAID_MAP) + + (sizeof(MR_LD_SPAN_MAP) * (sc->fw_supported_vd_count - 1)); + sc->new_map_sz = sizeof(MR_FW_RAID_MAP_EXT); + sc->max_map_sz = max(sc->old_map_sz, sc->new_map_sz); + if (sc->max256vdSupport) + sc->current_map_sz = sc->new_map_sz; + else + sc->current_map_sz = sc->old_map_sz; + } - sc->max_map_sz = max(sc->old_map_sz, sc->new_map_sz); - - if (sc->max256vdSupport) - sc->current_map_sz = sc->new_map_sz; - else - sc->current_map_sz = sc->old_map_sz; + sc->drv_map_sz = sizeof(MR_DRV_RAID_MAP_ALL); +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, "sc->maxRaidMapSize 0x%x \n", + sc->maxRaidMapSize); + device_printf(sc->mrsas_dev, + "new_map_sz = 0x%x, old_map_sz = 0x%x, " + "ventura_map_sz = 0x%x, current_map_sz = 0x%x " + "fusion->drv_map_sz =0x%x, size of driver raid map 0x%lx \n", + sc->new_map_sz, sc->old_map_sz, ventura_map_sz, + sc->current_map_sz, sc->drv_map_sz, sizeof(MR_DRV_RAID_MAP_ALL)); +#endif } /* Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 07:57:00 2018 (r342059) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 07:59:09 2018 (r342060) @@ -661,6 +661,7 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest #define MAX_RAIDMAP_ROW_SIZE (MAX_ROW_SIZE) #define MAX_LOGICAL_DRIVES 64 #define MAX_LOGICAL_DRIVES_EXT 256 +#define MAX_LOGICAL_DRIVES_DYN 512 #define MAX_RAIDMAP_LOGICAL_DRIVES (MAX_LOGICAL_DRIVES) #define MAX_RAIDMAP_VIEWS (MAX_LOGICAL_DRIVES) @@ -670,9 +671,11 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest #define MAX_ARRAYS_EXT 256 #define MAX_API_ARRAYS_EXT MAX_ARRAYS_EXT +#define MAX_API_ARRAYS_DYN 512 #define MAX_PHYSICAL_DEVICES 256 #define MAX_RAIDMAP_PHYSICAL_DEVICES (MAX_PHYSICAL_DEVICES) +#define MAX_RAIDMAP_PHYSICAL_DEVICES_DYN 512 #define MR_DCMD_LD_MAP_GET_INFO 0x0300e101 #define MR_DCMD_SYSTEM_PD_MAP_GET_INFO 0x0200e102 #define MR_DCMD_PD_MFI_TASK_MGMT 0x0200e100 @@ -889,9 +892,9 @@ typedef struct _MR_DRV_RAID_MAP { u_int16_t spanCount; u_int16_t reserve3; - MR_DEV_HANDLE_INFO devHndlInfo[MAX_RAIDMAP_PHYSICAL_DEVICES]; - u_int8_t ldTgtIdToLd[MAX_LOGICAL_DRIVES_EXT]; - MR_ARRAY_INFO arMapInfo[MAX_API_ARRAYS_EXT]; + MR_DEV_HANDLE_INFO devHndlInfo[MAX_RAIDMAP_PHYSICAL_DEVICES_DYN]; + u_int16_t ldTgtIdToLd[MAX_LOGICAL_DRIVES_DYN]; + MR_ARRAY_INFO arMapInfo[MAX_API_ARRAYS_DYN]; MR_LD_SPAN_MAP ldSpanMap[1]; } MR_DRV_RAID_MAP; @@ -905,7 +908,7 @@ typedef struct _MR_DRV_RAID_MAP { typedef struct _MR_DRV_RAID_MAP_ALL { MR_DRV_RAID_MAP raidMap; - MR_LD_SPAN_MAP ldSpanMap[MAX_LOGICAL_DRIVES_EXT - 1]; + MR_LD_SPAN_MAP ldSpanMap[MAX_LOGICAL_DRIVES_DYN - 1]; } MR_DRV_RAID_MAP_ALL; #pragma pack() @@ -988,6 +991,82 @@ typedef struct _MR_LD_TARGET_SYNC { u_int16_t seqNum; } MR_LD_TARGET_SYNC; + +/* + * RAID Map descriptor Types. + * Each element should uniquely idetify one data structure in the RAID map + */ +typedef enum _MR_RAID_MAP_DESC_TYPE { + RAID_MAP_DESC_TYPE_DEVHDL_INFO = 0, /* MR_DEV_HANDLE_INFO data */ + RAID_MAP_DESC_TYPE_TGTID_INFO = 1, /* target to Ld num Index map */ + RAID_MAP_DESC_TYPE_ARRAY_INFO = 2, /* MR_ARRAY_INFO data */ + RAID_MAP_DESC_TYPE_SPAN_INFO = 3, /* MR_LD_SPAN_MAP data */ + RAID_MAP_DESC_TYPE_COUNT, +} MR_RAID_MAP_DESC_TYPE; + +/* + * This table defines the offset, size and num elements of each descriptor + * type in the RAID Map buffer + */ +typedef struct _MR_RAID_MAP_DESC_TABLE { + /* Raid map descriptor type */ + u_int32_t raidMapDescType; + /* Offset into the RAID map buffer where descriptor data is saved */ + u_int32_t raidMapDescOffset; + /* total size of the descriptor buffer */ + u_int32_t raidMapDescBufferSize; + /* Number of elements contained in the descriptor buffer */ + u_int32_t raidMapDescElements; +} MR_RAID_MAP_DESC_TABLE; + +/* + * Dynamic Raid Map Structure. + */ +typedef struct _MR_FW_RAID_MAP_DYNAMIC { + u_int32_t raidMapSize; + u_int32_t descTableOffset; + u_int32_t descTableSize; + u_int32_t descTableNumElements; + u_int64_t PCIThresholdBandwidth; + u_int32_t reserved2[3]; + + u_int8_t fpPdIoTimeoutSec; + u_int8_t reserved3[3]; + u_int32_t rmwFPSeqNum; + u_int16_t ldCount; + u_int16_t arCount; + u_int16_t spanCount; + u_int16_t reserved4[3]; + + /* + * The below structure of pointers is only to be used by the driver. + * This is added in the API to reduce the amount of code changes needed in + * the driver to support dynamic RAID map. + * Firmware should not update these pointers while preparing the raid map + */ + union { + struct { + MR_DEV_HANDLE_INFO *devHndlInfo; + u_int16_t *ldTgtIdToLd; + MR_ARRAY_INFO *arMapInfo; + MR_LD_SPAN_MAP *ldSpanMap; + } ptrStruct; + u_int64_t ptrStructureSize[RAID_MAP_DESC_TYPE_COUNT]; + } RaidMapDescPtrs; + + /* + * RAID Map descriptor table defines the layout of data in the RAID Map. + * The size of the descriptor table itself could change. + */ + + /* Variable Size descriptor Table. */ + MR_RAID_MAP_DESC_TABLE raidMapDescTable[RAID_MAP_DESC_TYPE_COUNT]; + /* Variable Size buffer containing all data */ + u_int32_t raidMapDescData[1]; + +} MR_FW_RAID_MAP_DYNAMIC; + + #define IEEE_SGE_FLAGS_ADDR_MASK (0x03) #define IEEE_SGE_FLAGS_SYSTEM_ADDR (0x00) #define IEEE_SGE_FLAGS_IOCDDR_ADDR (0x01) @@ -1014,6 +1093,11 @@ struct mrsas_tmp_dcmd { bus_addr_t tmp_dcmd_phys_addr; }; +#define MR_MAX_RAID_MAP_SIZE_OFFSET_SHIFT 16 +#define MR_MAX_RAID_MAP_SIZE_MASK 0x1FF +#define MR_MIN_MAP_SIZE 0x10000 + + /******************************************************************* * Register set, included legacy controllers 1068 and 1078, * structure extended for 1078 registers @@ -1053,8 +1137,9 @@ typedef struct _mrsas_register_set { u_int32_t outbound_scratch_pad; /* 00B0h */ u_int32_t outbound_scratch_pad_2; /* 00B4h */ + u_int32_t outbound_scratch_pad_3; /* 00B8h */ - u_int32_t reserved_4[2]; /* 00B8h */ + u_int32_t reserved_4; /* 00BCh */ u_int32_t inbound_low_queue_port; /* 00C0h */ @@ -2919,6 +3004,7 @@ struct mrsas_softc { boolean_t is_ventura; boolean_t msix_combined; + u_int16_t maxRaidMapSize; /* Non dma-able memory. Driver local copy. */ MR_DRV_RAID_MAP_ALL *ld_drv_map[2]; Modified: head/sys/dev/mrsas/mrsas_fp.c ============================================================================== --- head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 07:57:00 2018 (r342059) +++ head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 07:59:09 2018 (r342060) @@ -67,7 +67,7 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, u_int64_t stripRow, u_int16_t stripRef, struct IO_REQUEST_INFO *io_info, RAID_CONTEXT * pRAID_Context, MR_DRV_RAID_MAP_ALL * map); -u_int16_t MR_TargetIdToLdGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL * map); +u_int8_t MR_TargetIdToLdGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL *map); u_int32_t MR_LdBlockSizeGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL * map); u_int16_t MR_GetLDTgtId(u_int32_t ld, MR_DRV_RAID_MAP_ALL * map); u_int16_t @@ -103,7 +103,7 @@ static MR_SPAN_BLOCK_INFO * MR_LdSpanInfoGet(u_int32_t ld, MR_DRV_RAID_MAP_ALL * map); MR_LD_RAID *MR_LdRaidGet(u_int32_t ld, MR_DRV_RAID_MAP_ALL * map); -void MR_PopulateDrvRaidMap(struct mrsas_softc *sc); +static int MR_PopulateDrvRaidMap(struct mrsas_softc *sc); /* @@ -237,7 +237,7 @@ MR_LdSpanInfoGet(u_int32_t ld, MR_DRV_RAID_MAP_ALL * m return &map->raidMap.ldSpanMap[ld].spanBlock[0]; } -u_int16_t +u_int8_t MR_TargetIdToLdGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL * map) { return map->raidMap.ldTgtIdToLd[ldTgtId]; @@ -266,26 +266,203 @@ MR_LdBlockSizeGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_A } /* + * This function will Populate Driver Map using Dynamic firmware raid map + */ +static int +MR_PopulateDrvRaidMapVentura(struct mrsas_softc *sc) +{ + unsigned int i, j; + u_int16_t ld_count; + + MR_FW_RAID_MAP_DYNAMIC *fw_map_dyn; + MR_RAID_MAP_DESC_TABLE *desc_table; + MR_DRV_RAID_MAP_ALL *drv_map = sc->ld_drv_map[(sc->map_id & 1)]; + MR_DRV_RAID_MAP *pDrvRaidMap = &drv_map->raidMap; + void *raid_map_data = NULL; + + fw_map_dyn = (MR_FW_RAID_MAP_DYNAMIC *) sc->raidmap_mem[(sc->map_id & 1)]; + + if (fw_map_dyn == NULL) { + device_printf(sc->mrsas_dev, + "from %s %d map0 %p map1 %p map size %d \n", __func__, __LINE__, + sc->raidmap_mem[0], sc->raidmap_mem[1], sc->maxRaidMapSize); + return 1; + } +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, + " raidMapSize 0x%x, descTableOffset 0x%x, " + " descTableSize 0x%x, descTableNumElements 0x%x \n", + fw_map_dyn->raidMapSize, fw_map_dyn->descTableOffset, + fw_map_dyn->descTableSize, fw_map_dyn->descTableNumElements); +#endif + desc_table = (MR_RAID_MAP_DESC_TABLE *) ((char *)fw_map_dyn + + fw_map_dyn->descTableOffset); + if (desc_table != fw_map_dyn->raidMapDescTable) { + device_printf(sc->mrsas_dev, + "offsets of desc table are not matching returning " + " FW raid map has been changed: desc %p original %p\n", + desc_table, fw_map_dyn->raidMapDescTable); + } + memset(drv_map, 0, sc->drv_map_sz); + ld_count = fw_map_dyn->ldCount; + pDrvRaidMap->ldCount = ld_count; + pDrvRaidMap->fpPdIoTimeoutSec = fw_map_dyn->fpPdIoTimeoutSec; + pDrvRaidMap->totalSize = sizeof(MR_DRV_RAID_MAP_ALL); + /* point to actual data starting point */ + raid_map_data = (char *)fw_map_dyn + + fw_map_dyn->descTableOffset + fw_map_dyn->descTableSize; + + for (i = 0; i < fw_map_dyn->descTableNumElements; ++i) { + if (!desc_table) { + device_printf(sc->mrsas_dev, + "desc table is null, coming out %p \n", desc_table); + return 1; + } +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, "raid_map_data %p \n", raid_map_data); + device_printf(sc->mrsas_dev, + "desc table %p \n", desc_table); + device_printf(sc->mrsas_dev, + "raidmap type %d, raidmapOffset 0x%x, " + " raid map number of elements 0%x, raidmapsize 0x%x\n", + desc_table->raidMapDescType, desc_table->raidMapDescOffset, + desc_table->raidMapDescElements, desc_table->raidMapDescBufferSize); +#endif + switch (desc_table->raidMapDescType) { + case RAID_MAP_DESC_TYPE_DEVHDL_INFO: + fw_map_dyn->RaidMapDescPtrs.ptrStruct.devHndlInfo = (MR_DEV_HANDLE_INFO *) + ((char *)raid_map_data + desc_table->raidMapDescOffset); +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, + "devHndlInfo address %p\n", fw_map_dyn->RaidMapDescPtrs.ptrStruct.devHndlInfo); +#endif + memcpy(pDrvRaidMap->devHndlInfo, fw_map_dyn->RaidMapDescPtrs.ptrStruct.devHndlInfo, + sizeof(MR_DEV_HANDLE_INFO) * desc_table->raidMapDescElements); + break; + case RAID_MAP_DESC_TYPE_TGTID_INFO: + fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldTgtIdToLd = (u_int16_t *) + ((char *)raid_map_data + desc_table->raidMapDescOffset); +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, + "ldTgtIdToLd address %p\n", fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldTgtIdToLd); +#endif + for (j = 0; j < desc_table->raidMapDescElements; j++) { + pDrvRaidMap->ldTgtIdToLd[j] = fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldTgtIdToLd[j]; +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, + " %d drv ldTgtIdToLd %d\n", j, pDrvRaidMap->ldTgtIdToLd[j]); +#endif + } + break; + case RAID_MAP_DESC_TYPE_ARRAY_INFO: + fw_map_dyn->RaidMapDescPtrs.ptrStruct.arMapInfo = (MR_ARRAY_INFO *) ((char *)raid_map_data + + desc_table->raidMapDescOffset); +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, + "arMapInfo address %p\n", fw_map_dyn->RaidMapDescPtrs.ptrStruct.arMapInfo); +#endif + memcpy(pDrvRaidMap->arMapInfo, fw_map_dyn->RaidMapDescPtrs.ptrStruct.arMapInfo, + sizeof(MR_ARRAY_INFO) * desc_table->raidMapDescElements); + break; + case RAID_MAP_DESC_TYPE_SPAN_INFO: + fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap = (MR_LD_SPAN_MAP *) ((char *)raid_map_data + + desc_table->raidMapDescOffset); + memcpy(pDrvRaidMap->ldSpanMap, fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap, + sizeof(MR_LD_SPAN_MAP) * desc_table->raidMapDescElements); +#if VD_EXT_DEBUG + device_printf(sc->mrsas_dev, + "ldSpanMap address %p\n", fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap); + device_printf(sc->mrsas_dev, + "MR_LD_SPAN_MAP size 0x%lx\n", sizeof(MR_LD_SPAN_MAP)); + for (j = 0; j < ld_count; j++) { + printf("mrsas(%d) : fw_map_dyn->ldSpanMap[%d].ldRaid.targetId 0x%x " + "fw_map_dyn->ldSpanMap[%d].ldRaid.seqNum 0x%x size 0x%x\n", + j, j, fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap[j].ldRaid.targetId, j, + fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap[j].ldRaid.seqNum, + (u_int32_t)fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap[j].ldRaid.rowSize); + printf("mrsas(%d) : pDrvRaidMap->ldSpanMap[%d].ldRaid.targetId 0x%x " + "pDrvRaidMap->ldSpanMap[%d].ldRaid.seqNum 0x%x size 0x%x\n", + j, j, pDrvRaidMap->ldSpanMap[j].ldRaid.targetId, j, + pDrvRaidMap->ldSpanMap[j].ldRaid.seqNum, + (u_int32_t)pDrvRaidMap->ldSpanMap[j].ldRaid.rowSize); + printf("mrsas : drv raid map all %p raid map %p LD RAID MAP %p/%p\n", + drv_map, pDrvRaidMap, &fw_map_dyn->RaidMapDescPtrs.ptrStruct.ldSpanMap[j].ldRaid, + &pDrvRaidMap->ldSpanMap[j].ldRaid); + } +#endif + break; + default: + device_printf(sc->mrsas_dev, + "wrong number of desctableElements %d\n", + fw_map_dyn->descTableNumElements); + } + ++desc_table; + } + return 0; +} + +/* * This function will Populate Driver Map using firmware raid map */ -void +static int MR_PopulateDrvRaidMap(struct mrsas_softc *sc) { MR_FW_RAID_MAP_ALL *fw_map_old = NULL; + MR_FW_RAID_MAP_EXT *fw_map_ext; MR_FW_RAID_MAP *pFwRaidMap = NULL; unsigned int i; + u_int16_t ld_count; MR_DRV_RAID_MAP_ALL *drv_map = sc->ld_drv_map[(sc->map_id & 1)]; MR_DRV_RAID_MAP *pDrvRaidMap = &drv_map->raidMap; - if (sc->max256vdSupport) { - memcpy(sc->ld_drv_map[sc->map_id & 1], - sc->raidmap_mem[sc->map_id & 1], - sc->current_map_sz); - /* - * New Raid map will not set totalSize, so keep expected - * value for legacy code in ValidateMapInfo - */ + if (sc->maxRaidMapSize) { + return MR_PopulateDrvRaidMapVentura(sc); + } else if (sc->max256vdSupport) { + fw_map_ext = (MR_FW_RAID_MAP_EXT *) sc->raidmap_mem[(sc->map_id & 1)]; + ld_count = (u_int16_t)(fw_map_ext->ldCount); + if (ld_count > MAX_LOGICAL_DRIVES_EXT) { + device_printf(sc->mrsas_dev, + "mrsas: LD count exposed in RAID map in not valid\n"); + return 1; + } +#if VD_EXT_DEBUG + for (i = 0; i < ld_count; i++) { + printf("mrsas : Index 0x%x Target Id 0x%x Seq Num 0x%x Size 0/%lx\n", + i, fw_map_ext->ldSpanMap[i].ldRaid.targetId, + fw_map_ext->ldSpanMap[i].ldRaid.seqNum, + fw_map_ext->ldSpanMap[i].ldRaid.size); + } +#endif + memset(drv_map, 0, sc->drv_map_sz); + pDrvRaidMap->ldCount = ld_count; + pDrvRaidMap->fpPdIoTimeoutSec = fw_map_ext->fpPdIoTimeoutSec; + for (i = 0; i < (MAX_LOGICAL_DRIVES_EXT); i++) { + pDrvRaidMap->ldTgtIdToLd[i] = (u_int16_t)fw_map_ext->ldTgtIdToLd[i]; + } + memcpy(pDrvRaidMap->ldSpanMap, fw_map_ext->ldSpanMap, sizeof(MR_LD_SPAN_MAP) * ld_count); +#if VD_EXT_DEBUG + for (i = 0; i < ld_count; i++) { + printf("mrsas(%d) : fw_map_ext->ldSpanMap[%d].ldRaid.targetId 0x%x " + "fw_map_ext->ldSpanMap[%d].ldRaid.seqNum 0x%x size 0x%x\n", + i, i, fw_map_ext->ldSpanMap[i].ldRaid.targetId, i, + fw_map_ext->ldSpanMap[i].ldRaid.seqNum, + (u_int32_t)fw_map_ext->ldSpanMap[i].ldRaid.rowSize); + printf("mrsas(%d) : pDrvRaidMap->ldSpanMap[%d].ldRaid.targetId 0x%x" + "pDrvRaidMap->ldSpanMap[%d].ldRaid.seqNum 0x%x size 0x%x\n", i, i, + pDrvRaidMap->ldSpanMap[i].ldRaid.targetId, i, + pDrvRaidMap->ldSpanMap[i].ldRaid.seqNum, + (u_int32_t)pDrvRaidMap->ldSpanMap[i].ldRaid.rowSize); + printf("mrsas : drv raid map all %p raid map %p LD RAID MAP %p/%p\n", + drv_map, pDrvRaidMap, &fw_map_ext->ldSpanMap[i].ldRaid, + &pDrvRaidMap->ldSpanMap[i].ldRaid); + } +#endif + memcpy(pDrvRaidMap->arMapInfo, fw_map_ext->arMapInfo, + sizeof(MR_ARRAY_INFO) * MAX_API_ARRAYS_EXT); + memcpy(pDrvRaidMap->devHndlInfo, fw_map_ext->devHndlInfo, + sizeof(MR_DEV_HANDLE_INFO) * MAX_RAIDMAP_PHYSICAL_DEVICES); + pDrvRaidMap->totalSize = sizeof(MR_FW_RAID_MAP_EXT); } else { fw_map_old = (MR_FW_RAID_MAP_ALL *) sc->raidmap_mem[(sc->map_id & 1)]; @@ -339,6 +516,7 @@ MR_PopulateDrvRaidMap(struct mrsas_softc *sc) sizeof(MR_DEV_HANDLE_INFO) * MAX_RAIDMAP_PHYSICAL_DEVICES); } + return 0; } /* @@ -354,7 +532,8 @@ MR_ValidateMapInfo(struct mrsas_softc *sc) if (!sc) { return 1; } - MR_PopulateDrvRaidMap(sc); + if (MR_PopulateDrvRaidMap(sc)) + return 0; MR_DRV_RAID_MAP_ALL *drv_map = sc->ld_drv_map[(sc->map_id & 1)]; MR_DRV_RAID_MAP *pDrvRaidMap = &drv_map->raidMap; @@ -365,7 +544,9 @@ MR_ValidateMapInfo(struct mrsas_softc *sc) pDrvRaidMap = &drv_map->raidMap; PLD_SPAN_INFO ldSpanInfo = (PLD_SPAN_INFO) & sc->log_to_span; - if (sc->max256vdSupport) + if (sc->maxRaidMapSize) + expected_map_size = sizeof(MR_DRV_RAID_MAP_ALL); + else if (sc->max256vdSupport) expected_map_size = sizeof(MR_FW_RAID_MAP_EXT); else expected_map_size = From owner-svn-src-head@freebsd.org Fri Dec 14 08:00:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C11541323DB2; Fri, 14 Dec 2018 08:00:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7107491055; Fri, 14 Dec 2018 08:00:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 641432C53C; Fri, 14 Dec 2018 08:00:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE802uf082895; Fri, 14 Dec 2018 08:00:02 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE801vi082890; Fri, 14 Dec 2018 08:00:01 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140800.wBE801vi082890@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:00:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342061 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342061 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7107491055 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.818,0]; NEURAL_HAM_SHORT(-0.73)[-0.725,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:00:03 -0000 Author: kadesai Date: Fri Dec 14 08:00:01 2018 New Revision: 342061 URL: https://svnweb.freebsd.org/changeset/base/342061 Log: This patch will add support for divert bitmap in RAID map. Divert bitmap is supported for SAS3.5 adapters only. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_cam.c head/sys/dev/mrsas/mrsas_fp.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 07:59:09 2018 (r342060) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:00:01 2018 (r342061) @@ -1589,8 +1589,8 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M cmd_mpt = sc->mpt_cmd_list[smid - 1]; scsi_io_req = (MRSAS_RAID_SCSI_IO_REQUEST *) cmd_mpt->io_request; - status = scsi_io_req->RaidContext.status; - extStatus = scsi_io_req->RaidContext.exStatus; + status = scsi_io_req->RaidContext.raid_context.status; + extStatus = scsi_io_req->RaidContext.raid_context.exStatus; switch (scsi_io_req->Function) { case MPI2_FUNCTION_SCSI_TASK_MGMT: @@ -1614,8 +1614,8 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M case MRSAS_MPI2_FUNCTION_LD_IO_REQUEST: mrsas_map_mpt_cmd_status(cmd_mpt, status, extStatus); mrsas_cmd_done(sc, cmd_mpt); - scsi_io_req->RaidContext.status = 0; - scsi_io_req->RaidContext.exStatus = 0; + scsi_io_req->RaidContext.raid_context.status = 0; + scsi_io_req->RaidContext.raid_context.exStatus = 0; mrsas_atomic_dec(&sc->fw_outstanding); break; case MRSAS_MPI2_FUNCTION_PASSTHRU_IO_REQUEST: /* MFI command */ @@ -3214,7 +3214,7 @@ mrsas_complete_outstanding_ioctls(struct mrsas_softc * if (cmd_mfi->sync_cmd && cmd_mfi->frame->hdr.cmd != MFI_CMD_ABORT) { for (MSIxIndex = 0; MSIxIndex < count; MSIxIndex++) mrsas_complete_mptmfi_passthru(sc, cmd_mfi, - cmd_mpt->io_request->RaidContext.status); + cmd_mpt->io_request->RaidContext.raid_context.status); } } } Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 07:59:09 2018 (r342060) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:00:01 2018 (r342061) @@ -179,7 +179,54 @@ typedef struct _RAID_CONTEXT { u_int8_t resvd2; /* 0x1F */ } RAID_CONTEXT; +/* + * Raid Context structure which describes ventura MegaRAID specific IO Paramenters + * This resides at offset 0x60 where the SGL normally starts in MPT IO Frames + */ +typedef struct _RAID_CONTEXT_G35 { + u_int16_t Type:4; + u_int16_t nseg:4; + u_int16_t resvd0:8; + u_int16_t timeoutValue; + union { + struct { + u_int16_t reserved:1; + u_int16_t sld:1; + u_int16_t c2f:1; + u_int16_t fwn:1; + u_int16_t sqn:1; + u_int16_t sbs:1; + u_int16_t rw:1; + u_int16_t log:1; + u_int16_t cpuSel:4; + u_int16_t setDivert:4; + } bits; + u_int16_t s; + } routingFlags; + u_int16_t VirtualDiskTgtId; + u_int64_t regLockRowLBA; + u_int32_t regLockLength; + union { + u_int16_t nextLMId; + u_int16_t peerSMID; + } smid; + u_int8_t exStatus; + u_int8_t status; + u_int8_t RAIDFlags; + u_int8_t spanArm; + u_int16_t configSeqNum; + u_int16_t numSGE:12; + u_int16_t reserved:3; + u_int16_t streamDetected:1; + u_int8_t resvd2[2]; +} RAID_CONTEXT_G35; +typedef union _RAID_CONTEXT_UNION { + RAID_CONTEXT raid_context; + RAID_CONTEXT_G35 raid_context_g35; +} RAID_CONTEXT_UNION, *PRAID_CONTEXT_UNION; + + /************************************************************************* * MPI2 Defines ************************************************************************/ @@ -439,7 +486,7 @@ typedef struct _MPI2_RAID_SCSI_IO_REQUEST { u_int8_t LUN[8]; /* 0x34 */ u_int32_t Control; /* 0x3C */ MPI2_SCSI_IO_CDB_UNION CDB; /* 0x40 */ - RAID_CONTEXT RaidContext; /* 0x60 */ + RAID_CONTEXT_UNION RaidContext; /* 0x60 */ MPI2_SGE_IO_UNION SGL; /* 0x80 */ } MRSAS_RAID_SCSI_IO_REQUEST, MPI2_POINTER PTR_MRSAS_RAID_SCSI_IO_REQUEST, MRSASRaidSCSIIORequest_t, MPI2_POINTER pMRSASRaidSCSIIORequest_t; @@ -754,7 +801,8 @@ typedef struct _MR_LD_RAID { u_int32_t fpReadAcrossStripe:1; u_int32_t fpNonRWCapable:1; u_int32_t tmCapable:1; - u_int32_t reserved4:6; + u_int32_t fpCacheBypassCapable:1; + u_int32_t reserved4:5; } capability; u_int32_t reserved6; u_int64_t size; @@ -1448,6 +1496,7 @@ enum MR_EVT_ARGS { #define MR_RL_FLAGS_GRANT_DESTINATION_CPU1 0x10 #define MR_RL_FLAGS_GRANT_DESTINATION_CUDA 0x80 #define MR_RL_FLAGS_SEQ_NUM_ENABLE 0x8 +#define MR_RL_WRITE_BACK_MODE 0x01 /* * T10 PI defines @@ -1469,8 +1518,12 @@ enum MR_EVT_ARGS { typedef enum MR_RAID_FLAGS_IO_SUB_TYPE { MR_RAID_FLAGS_IO_SUB_TYPE_NONE = 0, MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD = 1, -} MR_RAID_FLAGS_IO_SUB_TYPE; - + MR_RAID_FLAGS_IO_SUB_TYPE_RMW_DATA = 2, + MR_RAID_FLAGS_IO_SUB_TYPE_RMW_P = 3, + MR_RAID_FLAGS_IO_SUB_TYPE_RMW_Q = 4, + MR_RAID_FLAGS_IO_SUB_TYPE_CACHE_BYPASS = 6, + MR_RAID_FLAGS_IO_SUB_TYPE_LDIO_BW_LIMIT = 7 +} MR_RAID_FLAGS_IO_SUB_TYPE; /* * Request descriptor types */ Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 07:59:09 2018 (r342060) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:00:01 2018 (r342061) @@ -765,9 +765,9 @@ mrsas_build_ldio_rw(struct mrsas_softc *sc, struct mrs device_id = ccb_h->target_id; io_request = cmd->io_request; - io_request->RaidContext.VirtualDiskTgtId = device_id; - io_request->RaidContext.status = 0; - io_request->RaidContext.exStatus = 0; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; + io_request->RaidContext.raid_context.status = 0; + io_request->RaidContext.raid_context.exStatus = 0; /* just the cdb len, other flags zero, and ORed-in later for FP */ io_request->IoFlags = csio->cdb_len; @@ -783,12 +783,16 @@ mrsas_build_ldio_rw(struct mrsas_softc *sc, struct mrs "max (0x%x) allowed\n", cmd->sge_count, sc->max_num_sge); return (FAIL); } - /* - * numSGE store lower 8 bit of sge_count. numSGEExt store - * higher 8 bit of sge_count - */ - io_request->RaidContext.numSGE = cmd->sge_count; - io_request->RaidContext.numSGEExt = (uint8_t)(cmd->sge_count >> 8); + if (sc->is_ventura) + io_request->RaidContext.raid_context_g35.numSGE = cmd->sge_count; + else { + /* + * numSGE store lower 8 bit of sge_count. numSGEExt store + * higher 8 bit of sge_count + */ + io_request->RaidContext.raid_context.numSGE = cmd->sge_count; + io_request->RaidContext.raid_context.numSGEExt = (uint8_t)(cmd->sge_count >> 8); + } } else { device_printf(sc->mrsas_dev, "Data map/load failed.\n"); @@ -898,10 +902,10 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp ld = MR_TargetIdToLdGet(device_id, map_ptr); if ((ld >= MAX_LOGICAL_DRIVES_EXT) || (!sc->fast_path_io)) { - io_request->RaidContext.regLockFlags = 0; + io_request->RaidContext.raid_context.regLockFlags = 0; fp_possible = 0; } else { - if (MR_BuildRaidContext(sc, &io_info, &io_request->RaidContext, map_ptr)) + if (MR_BuildRaidContext(sc, &io_info, &io_request->RaidContext.raid_context, map_ptr)) fp_possible = io_info.fpOkForIo; } @@ -921,16 +925,26 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp (MPI2_REQ_DESCRIPT_FLAGS_FP_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); if (sc->mrsas_gen3_ctrl) { - if (io_request->RaidContext.regLockFlags == REGION_TYPE_UNUSED) + if (io_request->RaidContext.raid_context.regLockFlags == REGION_TYPE_UNUSED) cmd->request_desc->SCSIIO.RequestFlags = (MRSAS_REQ_DESCRIPT_FLAGS_NO_LOCK << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - io_request->RaidContext.Type = MPI2_TYPE_CUDA; - io_request->RaidContext.nseg = 0x1; + io_request->RaidContext.raid_context.Type = MPI2_TYPE_CUDA; + io_request->RaidContext.raid_context.nseg = 0x1; io_request->IoFlags |= MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH; - io_request->RaidContext.regLockFlags |= + io_request->RaidContext.raid_context.regLockFlags |= (MR_RL_FLAGS_GRANT_DESTINATION_CUDA | MR_RL_FLAGS_SEQ_NUM_ENABLE); + } else if (sc->is_ventura) { + io_request->RaidContext.raid_context_g35.Type = MPI2_TYPE_CUDA; + io_request->RaidContext.raid_context_g35.nseg = 0x1; + io_request->RaidContext.raid_context_g35.routingFlags.bits.sqn = 1; + io_request->IoFlags |= MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH; + if (io_request->RaidContext.raid_context_g35.routingFlags.bits.sld) { + io_request->RaidContext.raid_context_g35.RAIDFlags = + (MR_RAID_FLAGS_IO_SUB_TYPE_CACHE_BYPASS + << MR_RAID_CTX_RAID_FLAGS_IO_SUB_TYPE_SHIFT); + } } if ((sc->load_balance_info[device_id].loadBalanceFlag) && (io_info.isRead)) { @@ -939,26 +953,34 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp &sc->load_balance_info[device_id], &io_info); cmd->load_balance = MRSAS_LOAD_BALANCE_FLAG; cmd->pd_r1_lb = io_info.pd_after_lb; + if (sc->is_ventura) + io_request->RaidContext.raid_context_g35.spanArm = io_info.span_arm; + else + io_request->RaidContext.raid_context.spanArm = io_info.span_arm; } else cmd->load_balance = 0; cmd->request_desc->SCSIIO.DevHandle = io_info.devHandle; io_request->DevHandle = io_info.devHandle; } else { /* Not FP IO */ - io_request->RaidContext.timeoutValue = map_ptr->raidMap.fpPdIoTimeoutSec; + io_request->RaidContext.raid_context.timeoutValue = map_ptr->raidMap.fpPdIoTimeoutSec; cmd->request_desc->SCSIIO.RequestFlags = (MRSAS_REQ_DESCRIPT_FLAGS_LD_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); if (sc->mrsas_gen3_ctrl) { - if (io_request->RaidContext.regLockFlags == REGION_TYPE_UNUSED) + if (io_request->RaidContext.raid_context.regLockFlags == REGION_TYPE_UNUSED) cmd->request_desc->SCSIIO.RequestFlags = (MRSAS_REQ_DESCRIPT_FLAGS_NO_LOCK << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - io_request->RaidContext.Type = MPI2_TYPE_CUDA; - io_request->RaidContext.regLockFlags |= + io_request->RaidContext.raid_context.Type = MPI2_TYPE_CUDA; + io_request->RaidContext.raid_context.regLockFlags |= (MR_RL_FLAGS_GRANT_DESTINATION_CPU0 | MR_RL_FLAGS_SEQ_NUM_ENABLE); - io_request->RaidContext.nseg = 0x1; + io_request->RaidContext.raid_context.nseg = 0x1; + } else if (sc->is_ventura) { + io_request->RaidContext.raid_context_g35.Type = MPI2_TYPE_CUDA; + io_request->RaidContext.raid_context_g35.routingFlags.bits.sqn = 1; + io_request->RaidContext.raid_context_g35.nseg = 0x1; } io_request->Function = MRSAS_MPI2_FUNCTION_LD_IO_REQUEST; io_request->DevHandle = device_id; @@ -1001,7 +1023,7 @@ mrsas_build_ldio_nonrw(struct mrsas_softc *sc, struct (MPI2_REQ_DESCRIPT_FLAGS_SCSI_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - io_request->RaidContext.VirtualDiskTgtId = device_id; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; io_request->LUN[1] = ccb_h->target_lun & 0xF; io_request->DataLength = cmd->length; @@ -1011,12 +1033,16 @@ mrsas_build_ldio_nonrw(struct mrsas_softc *sc, struct "max (0x%x) allowed\n", cmd->sge_count, sc->max_num_sge); return (1); } - /* - * numSGE store lower 8 bit of sge_count. numSGEExt store - * higher 8 bit of sge_count - */ - io_request->RaidContext.numSGE = cmd->sge_count; - io_request->RaidContext.numSGEExt = (uint8_t)(cmd->sge_count >> 8); + if (sc->is_ventura) + io_request->RaidContext.raid_context_g35.numSGE = cmd->sge_count; + else { + /* + * numSGE store lower 8 bit of sge_count. numSGEExt store + * higher 8 bit of sge_count + */ + io_request->RaidContext.raid_context.numSGE = cmd->sge_count; + io_request->RaidContext.raid_context.numSGEExt = (uint8_t)(cmd->sge_count >> 8); + } } else { device_printf(sc->mrsas_dev, "Data map/load failed.\n"); return (1); @@ -1046,11 +1072,11 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs io_request = cmd->io_request; device_id = ccb_h->target_id; local_map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; - io_request->RaidContext.RAIDFlags = MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD + io_request->RaidContext.raid_context.RAIDFlags = MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD << MR_RAID_CTX_RAID_FLAGS_IO_SUB_TYPE_SHIFT; - io_request->RaidContext.regLockFlags = 0; - io_request->RaidContext.regLockRowLBA = 0; - io_request->RaidContext.regLockLength = 0; + io_request->RaidContext.raid_context.regLockFlags = 0; + io_request->RaidContext.raid_context.regLockRowLBA = 0; + io_request->RaidContext.raid_context.regLockLength = 0; /* If FW supports PD sequence number */ if (sc->use_seqnum_jbod_fp && @@ -1058,25 +1084,28 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs //printf("Using Drv seq num\n"); pd_sync = (void *)sc->jbodmap_mem[(sc->pd_seq_map_id - 1) & 1]; cmd->tmCapable = pd_sync->seq[device_id].capability.tmCapable; - io_request->RaidContext.VirtualDiskTgtId = device_id + 255; - io_request->RaidContext.configSeqNum = pd_sync->seq[device_id].seqNum; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id + 255; + io_request->RaidContext.raid_context.configSeqNum = pd_sync->seq[device_id].seqNum; io_request->DevHandle = pd_sync->seq[device_id].devHandle; - io_request->RaidContext.regLockFlags |= - (MR_RL_FLAGS_SEQ_NUM_ENABLE | MR_RL_FLAGS_GRANT_DESTINATION_CUDA); - io_request->RaidContext.Type = MPI2_TYPE_CUDA; - io_request->RaidContext.nseg = 0x1; + if (sc->is_ventura) + io_request->RaidContext.raid_context_g35.routingFlags.bits.sqn = 1; + else + io_request->RaidContext.raid_context.regLockFlags |= + (MR_RL_FLAGS_SEQ_NUM_ENABLE | MR_RL_FLAGS_GRANT_DESTINATION_CUDA); + io_request->RaidContext.raid_context.Type = MPI2_TYPE_CUDA; + io_request->RaidContext.raid_context.nseg = 0x1; } else if (sc->fast_path_io) { //printf("Using LD RAID map\n"); - io_request->RaidContext.VirtualDiskTgtId = device_id; - io_request->RaidContext.configSeqNum = 0; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; + io_request->RaidContext.raid_context.configSeqNum = 0; local_map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; io_request->DevHandle = local_map_ptr->raidMap.devHndlInfo[device_id].curDevHdl; } else { //printf("Using FW PATH\n"); /* Want to send all IO via FW path */ - io_request->RaidContext.VirtualDiskTgtId = device_id; - io_request->RaidContext.configSeqNum = 0; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; + io_request->RaidContext.raid_context.configSeqNum = 0; io_request->DevHandle = 0xFFFF; } @@ -1090,13 +1119,13 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs cmd->request_desc->SCSIIO.RequestFlags = (MPI2_REQ_DESCRIPT_FLAGS_SCSI_IO << MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - io_request->RaidContext.timeoutValue = + io_request->RaidContext.raid_context.timeoutValue = local_map_ptr->raidMap.fpPdIoTimeoutSec; - io_request->RaidContext.VirtualDiskTgtId = device_id; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; } else { /* system pd fast path */ io_request->Function = MPI2_FUNCTION_SCSI_IO_REQUEST; - io_request->RaidContext.timeoutValue = local_map_ptr->raidMap.fpPdIoTimeoutSec; + io_request->RaidContext.raid_context.timeoutValue = local_map_ptr->raidMap.fpPdIoTimeoutSec; /* * NOTE - For system pd RW cmds only IoFlags will be FAST_PATH @@ -1120,12 +1149,16 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs "max (0x%x) allowed\n", cmd->sge_count, sc->max_num_sge); return (1); } - /* - * numSGE store lower 8 bit of sge_count. numSGEExt store - * higher 8 bit of sge_count - */ - io_request->RaidContext.numSGE = cmd->sge_count; - io_request->RaidContext.numSGEExt = (uint8_t)(cmd->sge_count >> 8); + if (sc->is_ventura) + io_request->RaidContext.raid_context_g35.numSGE = cmd->sge_count; + else { + /* + * numSGE store lower 8 bit of sge_count. numSGEExt store + * higher 8 bit of sge_count + */ + io_request->RaidContext.raid_context.numSGE = cmd->sge_count; + io_request->RaidContext.raid_context.numSGEExt = (uint8_t)(cmd->sge_count >> 8); + } } else { device_printf(sc->mrsas_dev, "Data map/load failed.\n"); return (1); Modified: head/sys/dev/mrsas/mrsas_fp.c ============================================================================== --- head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 07:59:09 2018 (r342060) +++ head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:00:01 2018 (r342061) @@ -966,8 +966,14 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in } *pdBlock += stripRef + MR_LdSpanPtrGet(ld, span, map)->startBlk; - pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; - io_info->span_arm = pRAID_Context->spanArm; + if (sc->is_ventura) { + ((RAID_CONTEXT_G35 *) pRAID_Context)->spanArm = + (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; + io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; + } else { + pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; + io_info->span_arm = pRAID_Context->spanArm; + } return retval; } @@ -1160,6 +1166,15 @@ MR_BuildRaidContext(struct mrsas_softc *sc, struct IO_ /* If IO on an invalid Pd, then FP is not possible */ if (io_info->devHandle == MR_PD_INVALID) io_info->fpOkForIo = FALSE; + /* + * if FP possible, set the SLUD bit in regLockFlags for + * ventura + */ + else if ((sc->is_ventura) && !isRead && + (raid->writeMode == MR_RL_WRITE_BACK_MODE) && (raid->level <= 1) && + raid->capability.fpCacheBypassCapable) { + ((RAID_CONTEXT_G35 *) pRAID_Context)->routingFlags.bits.sld = 1; + } return retval; } else if (isRead) { for (stripIdx = 0; stripIdx < num_strips; stripIdx++) { @@ -1674,8 +1689,14 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, } *pdBlock += stripRef + MR_LdSpanPtrGet(ld, span, map)->startBlk; - pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; - io_info->span_arm = pRAID_Context->spanArm; + if (sc->is_ventura) { + ((RAID_CONTEXT_G35 *) pRAID_Context)->spanArm = + (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; + io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; + } else { + pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm; + io_info->span_arm = pRAID_Context->spanArm; + } return retval; } From owner-svn-src-head@freebsd.org Fri Dec 14 08:00:47 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2A621323EDD; Fri, 14 Dec 2018 08:00:46 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 980EA91205; Fri, 14 Dec 2018 08:00:46 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 87F842C552; Fri, 14 Dec 2018 08:00:46 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE80kW6085958; Fri, 14 Dec 2018 08:00:46 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE80kig085955; Fri, 14 Dec 2018 08:00:46 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140800.wBE80kig085955@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:00:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342062 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342062 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 980EA91205 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.825,0]; NEURAL_HAM_SHORT(-0.72)[-0.719,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:00:47 -0000 Author: kadesai Date: Fri Dec 14 08:00:45 2018 New Revision: 342062 URL: https://svnweb.freebsd.org/changeset/base/342062 Log: This patch will add new interface to support more than 256 JBODs. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_cam.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:00:01 2018 (r342061) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:00:45 2018 (r342062) @@ -2272,6 +2272,9 @@ mrsas_init_fw(struct mrsas_softc *sc) if (sc->use_seqnum_jbod_fp) device_printf(sc->mrsas_dev, "FW supports JBOD Map \n"); + if (sc->support_morethan256jbod) + device_printf(sc->mrsas_dev, "FW supports JBOD Map Ext \n"); + if (mrsas_setup_raidmap(sc) != SUCCESS) { device_printf(sc->mrsas_dev, "Error: RAID map setup FAILED !!! " "There seems to be some problem in the controller\n" @@ -3381,6 +3384,9 @@ mrsas_get_ctrl_info(struct mrsas_softc *sc) sc->use_seqnum_jbod_fp = sc->ctrl_info->adapterOperations3.useSeqNumJbodFP; + sc->support_morethan256jbod = + sc->ctrl_info->adapterOperations4.supportPdMapTargetId; + sc->disableOnlineCtrlReset = sc->ctrl_info->properties.OnOffProperties.disableOnlineCtrlReset; Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:00:01 2018 (r342061) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:00:45 2018 (r342062) @@ -1023,7 +1023,8 @@ struct MR_PD_CFG_SEQ { u_int8_t tmCapable:1; u_int8_t reserved:7; } capability; - u_int8_t reserved[3]; + u_int8_t reserved; + u_int16_t pdTargetId; } __packed; struct MR_PD_CFG_SEQ_NUM_SYNC { @@ -2197,7 +2198,21 @@ struct mrsas_ctrl_info { u_int32_t reserved:7; } adapterOperations3; - u_int8_t pad[0x800 - 0x7EC]; /* 0x7EC */ + u_int8_t pad_cpld[16]; + + struct { + u_int16_t ctrlInfoExtSupported:1; + u_int16_t supportIbuttonLess:1; + u_int16_t supportedEncAlgo:1; + u_int16_t supportEncryptedMfc:1; + u_int16_t imageUploadSupported:1; + u_int16_t supportSESCtrlInMultipathCfg:1; + u_int16_t supportPdMapTargetId:1; + u_int16_t FWSwapsBBUVPDInfo:1; + u_int16_t reserved:8; + } adapterOperations4; + + u_int8_t pad[0x800 - 0x7FE]; /* 0x7FE */ } __packed; /* @@ -3042,6 +3057,8 @@ struct mrsas_softc { u_int8_t mrsas_gen3_ctrl; u_int8_t secure_jbod_support; u_int8_t use_seqnum_jbod_fp; + /* FW suport for more than 256 PD/JBOD */ + u_int32_t support_morethan256jbod; u_int8_t max256vdSupport; u_int16_t fw_supported_vd_count; u_int16_t fw_supported_pd_count; Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:00:01 2018 (r342061) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:00:45 2018 (r342062) @@ -1084,7 +1084,13 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs //printf("Using Drv seq num\n"); pd_sync = (void *)sc->jbodmap_mem[(sc->pd_seq_map_id - 1) & 1]; cmd->tmCapable = pd_sync->seq[device_id].capability.tmCapable; - io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id + 255; + /* More than 256 PD/JBOD support for Ventura */ + if (sc->support_morethan256jbod) + io_request->RaidContext.raid_context.VirtualDiskTgtId = + pd_sync->seq[device_id].pdTargetId; + else + io_request->RaidContext.raid_context.VirtualDiskTgtId = + device_id + 255; io_request->RaidContext.raid_context.configSeqNum = pd_sync->seq[device_id].seqNum; io_request->DevHandle = pd_sync->seq[device_id].devHandle; if (sc->is_ventura) From owner-svn-src-head@freebsd.org Fri Dec 14 08:01:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81849132417E; Fri, 14 Dec 2018 08:01:51 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 23D4191552; Fri, 14 Dec 2018 08:01:51 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0FBE42C597; Fri, 14 Dec 2018 08:01:51 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE81o6Z086045; Fri, 14 Dec 2018 08:01:50 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE81o1H086042; Fri, 14 Dec 2018 08:01:50 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140801.wBE81o1H086042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:01:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342063 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342063 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 23D4191552 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.72)[-0.722,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:01:51 -0000 Author: kadesai Date: Fri Dec 14 08:01:49 2018 New Revision: 342063 URL: https://svnweb.freebsd.org/changeset/base/342063 Log: Detect sequential Write IOs and pass the hint that it is part of sequential stream to help HBA Firmware do the Full Stripe Writes. For read IOs on certain RAID volumes like Read Ahead volumes,this will help driver to send it to Firmware even if the IOs can potentially be sent to hardware directly (called fast path) bypassing firmware. Design: 8 streams are maintained per RAID volume as per the combined firmware/driver design. When there is no stream detected the LRU stream is used for next potential stream and LRU/MRU map is updated to make this as MRU stream. Every time a stream is detected the MRU map is updated to make the current stream as MRU stream. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_cam.c head/sys/dev/mrsas/mrsas_fp.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:00:45 2018 (r342062) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:01:49 2018 (r342063) @@ -442,7 +442,10 @@ mrsas_setup_sysctl(struct mrsas_softc *sc) OID_AUTO, "block_sync_cache", CTLFLAG_RW, &sc->block_sync_cache, 0, "Block SYNC CACHE at driver. "); - + SYSCTL_ADD_UINT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "stream detection", CTLFLAG_RW, + &sc->drv_stream_detection, 0, + "Disable/Enable Stream detection. "); } /* @@ -463,6 +466,7 @@ mrsas_get_tunables(struct mrsas_softc *sc) sc->reset_count = 0; sc->reset_in_progress = 0; sc->block_sync_cache = 0; + sc->drv_stream_detection = 1; /* * Grab the global variables. @@ -882,6 +886,7 @@ mrsas_attach(device_t dev) mtx_init(&sc->mpt_cmd_pool_lock, "mrsas_mpt_cmd_pool_lock", NULL, MTX_DEF); mtx_init(&sc->mfi_cmd_pool_lock, "mrsas_mfi_cmd_pool_lock", NULL, MTX_DEF); mtx_init(&sc->raidmap_lock, "mrsas_raidmap_lock", NULL, MTX_DEF); + mtx_init(&sc->stream_lock, "mrsas_stream_lock", NULL, MTX_DEF); /* Intialize linked list */ TAILQ_INIT(&sc->mrsas_mpt_cmd_list_head); @@ -948,6 +953,7 @@ attach_fail_fw: mtx_destroy(&sc->mpt_cmd_pool_lock); mtx_destroy(&sc->mfi_cmd_pool_lock); mtx_destroy(&sc->raidmap_lock); + mtx_destroy(&sc->stream_lock); attach_fail: if (sc->reg_res) { bus_release_resource(sc->mrsas_dev, SYS_RES_MEMORY, @@ -1070,6 +1076,14 @@ mrsas_detach(device_t dev) mrsas_flush_cache(sc); mrsas_shutdown_ctlr(sc, MR_DCMD_CTRL_SHUTDOWN); mrsas_disable_intr(sc); + + if (sc->is_ventura && sc->streamDetectByLD) { + for (i = 0; i < MAX_LOGICAL_DRIVES_EXT; ++i) + free(sc->streamDetectByLD[i], M_MRSAS); + free(sc->streamDetectByLD, M_MRSAS); + sc->streamDetectByLD = NULL; + } + mrsas_cam_detach(sc); mrsas_teardown_intr(sc); mrsas_free_mem(sc); @@ -1081,6 +1095,7 @@ mrsas_detach(device_t dev) mtx_destroy(&sc->mpt_cmd_pool_lock); mtx_destroy(&sc->mfi_cmd_pool_lock); mtx_destroy(&sc->raidmap_lock); + mtx_destroy(&sc->stream_lock); /* Wait for all the semaphores to be released */ while (sema_value(&sc->ioctl_count_sema) != MRSAS_MAX_IOCTL_CMDS) @@ -2166,6 +2181,7 @@ mrsas_init_fw(struct mrsas_softc *sc) u_int32_t scratch_pad_2, scratch_pad_3; int msix_enable = 0; int fw_msix_count = 0; + int i, j; /* Make sure Firmware is ready */ ret = mrsas_transition_to_ready(sc, ocr); @@ -2294,6 +2310,30 @@ mrsas_init_fw(struct mrsas_softc *sc) device_printf(sc->mrsas_dev, "Get LD lsit failed.\n"); return (1); } + + if (sc->is_ventura && sc->drv_stream_detection) { + sc->streamDetectByLD = malloc(sizeof(PTR_LD_STREAM_DETECT) * + MAX_LOGICAL_DRIVES_EXT, M_MRSAS, M_NOWAIT); + if (!sc->streamDetectByLD) { + device_printf(sc->mrsas_dev, + "unable to allocate stream detection for pool of LDs\n"); + return (1); + } + for (i = 0; i < MAX_LOGICAL_DRIVES_EXT; ++i) { + sc->streamDetectByLD[i] = malloc(sizeof(LD_STREAM_DETECT), M_MRSAS, M_NOWAIT); + if (!sc->streamDetectByLD[i]) { + device_printf(sc->mrsas_dev, "unable to allocate stream detect by LD\n"); + for (j = 0; j < i; ++j) + free(sc->streamDetectByLD[j], M_MRSAS); + free(sc->streamDetectByLD, M_MRSAS); + sc->streamDetectByLD = NULL; + return (1); + } + memset(sc->streamDetectByLD[i], 0, sizeof(LD_STREAM_DETECT)); + sc->streamDetectByLD[i]->mruBitMap = MR_STREAM_BITMAP; + } + } + /* * Compute the max allowed sectors per IO: The controller info has * two limits on max sectors. Driver should use the minimum of these @@ -3132,6 +3172,13 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t rese mrsas_sync_map_info(sc); megasas_setup_jbod_map(sc); + + if (sc->is_ventura && sc->streamDetectByLD) { + for (j = 0; j < MAX_LOGICAL_DRIVES_EXT; ++j) { + memset(sc->streamDetectByLD[i], 0, sizeof(LD_STREAM_DETECT)); + sc->streamDetectByLD[i]->mruBitMap = MR_STREAM_BITMAP; + } + } mrsas_clear_bit(MRSAS_FUSION_IN_RESET, &sc->reset_flags); mrsas_enable_intr(sc); Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:00:45 2018 (r342062) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:01:49 2018 (r342063) @@ -121,6 +121,12 @@ __FBSDID("$FreeBSD$"); #define THRESHOLD_REPLY_COUNT 50 #define MAX_MSIX_COUNT 128 +#define MAX_STREAMS_TRACKED 8 +#define MR_STREAM_BITMAP 0x76543210 +#define BITS_PER_INDEX_STREAM 4 /* number of bits per index in U32 TrackStream */ +#define STREAM_MASK ((1 << BITS_PER_INDEX_STREAM) - 1) +#define ZERO_LAST_STREAM 0x0fffffff + /* * Boolean types */ @@ -791,7 +797,8 @@ typedef struct _MR_SPAN_BLOCK_INFO { typedef struct _MR_LD_RAID { struct { u_int32_t fpCapable:1; - u_int32_t reserved5:3; + u_int32_t raCapable:1; + u_int32_t reserved5:2; u_int32_t ldPiMode:4; u_int32_t pdPiMode:4; u_int32_t encryptionType:8; @@ -1011,6 +1018,7 @@ struct IO_REQUEST_INFO { /* span[7:5], arm[4:0] */ u_int8_t span_arm; u_int8_t pd_after_lb; + boolean_t raCapable; }; /* @@ -1033,7 +1041,30 @@ struct MR_PD_CFG_SEQ_NUM_SYNC { struct MR_PD_CFG_SEQ seq[1]; } __packed; +typedef struct _STREAM_DETECT { + u_int64_t nextSeqLBA; + struct megasas_cmd_fusion *first_cmd_fusion; + struct megasas_cmd_fusion *last_cmd_fusion; + u_int32_t countCmdsInStream; + u_int16_t numSGEsInGroup; + u_int8_t isRead; + u_int8_t groupDepth; + boolean_t groupFlush; + u_int8_t reserved[7]; +} STREAM_DETECT, *PTR_STREAM_DETECT; +typedef struct _LD_STREAM_DETECT { + boolean_t writeBack; + boolean_t FPWriteEnabled; + boolean_t membersSSDs; + boolean_t fpCacheBypassCapable; + u_int32_t mruBitMap; + volatile long iosToFware; + volatile long writeBytesOutstanding; + STREAM_DETECT streamTrack[MAX_STREAMS_TRACKED]; +} LD_STREAM_DETECT, *PTR_LD_STREAM_DETECT; + + typedef struct _MR_LD_TARGET_SYNC { u_int8_t targetId; u_int8_t reserved; @@ -2950,6 +2981,7 @@ struct mrsas_softc { struct mtx mfi_cmd_pool_lock; struct mtx raidmap_lock; struct mtx aen_lock; + struct mtx stream_lock; struct selinfo mrsas_select; uint32_t mrsas_aen_triggered; uint32_t mrsas_poll_waiting; @@ -3002,6 +3034,7 @@ struct mrsas_softc { u_int32_t reset_in_progress; u_int32_t reset_count; u_int32_t block_sync_cache; + u_int32_t drv_stream_detection; u_int8_t fw_sync_cache_support; mrsas_atomic_t target_reset_outstanding; #define MRSAS_MAX_TM_TARGETS (MRSAS_MAX_PD + MRSAS_MAX_LD_IDS) @@ -3078,6 +3111,7 @@ struct mrsas_softc { /* Non dma-able memory. Driver local copy. */ MR_DRV_RAID_MAP_ALL *ld_drv_map[2]; + PTR_LD_STREAM_DETECT *streamDetectByLD; }; /* Compatibility shims for different OS versions */ Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:00:45 2018 (r342062) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:01:49 2018 (r342063) @@ -801,6 +801,70 @@ mrsas_build_ldio_rw(struct mrsas_softc *sc, struct mrs return (0); } +/* stream detection on read and and write IOs */ +static void +mrsas_stream_detect(struct mrsas_softc *sc, struct mrsas_mpt_cmd *cmd, + struct IO_REQUEST_INFO *io_info) +{ + u_int32_t device_id = io_info->ldTgtId; + LD_STREAM_DETECT *current_ld_SD = sc->streamDetectByLD[device_id]; + u_int32_t *track_stream = ¤t_ld_SD->mruBitMap; + u_int32_t streamNum, shiftedValues, unshiftedValues; + u_int32_t indexValueMask, shiftedValuesMask; + int i; + boolean_t isReadAhead = false; + STREAM_DETECT *current_SD; + + /* find possible stream */ + for (i = 0; i < MAX_STREAMS_TRACKED; ++i) { + streamNum = (*track_stream >> (i * BITS_PER_INDEX_STREAM)) & + STREAM_MASK; + current_SD = ¤t_ld_SD->streamTrack[streamNum]; + /* + * if we found a stream, update the raid context and + * also update the mruBitMap + */ + if (current_SD->nextSeqLBA && + io_info->ldStartBlock >= current_SD->nextSeqLBA && + (io_info->ldStartBlock <= (current_SD->nextSeqLBA+32)) && + (current_SD->isRead == io_info->isRead)) { + if (io_info->ldStartBlock != current_SD->nextSeqLBA && + (!io_info->isRead || !isReadAhead)) { + /* + * Once the API availible we need to change this. + * At this point we are not allowing any gap + */ + continue; + } + cmd->io_request->RaidContext.raid_context_g35.streamDetected = TRUE; + current_SD->nextSeqLBA = io_info->ldStartBlock + io_info->numBlocks; + /* + * update the mruBitMap LRU + */ + shiftedValuesMask = (1 << i * BITS_PER_INDEX_STREAM) - 1 ; + shiftedValues = ((*track_stream & shiftedValuesMask) << + BITS_PER_INDEX_STREAM); + indexValueMask = STREAM_MASK << i * BITS_PER_INDEX_STREAM; + unshiftedValues = (*track_stream) & + (~(shiftedValuesMask | indexValueMask)); + *track_stream = + (unshiftedValues | shiftedValues | streamNum); + return; + } + } + /* + * if we did not find any stream, create a new one from the least recently used + */ + streamNum = (*track_stream >> + ((MAX_STREAMS_TRACKED - 1) * BITS_PER_INDEX_STREAM)) & STREAM_MASK; + current_SD = ¤t_ld_SD->streamTrack[streamNum]; + current_SD->isRead = io_info->isRead; + current_SD->nextSeqLBA = io_info->ldStartBlock + io_info->numBlocks; + *track_stream = (((*track_stream & ZERO_LAST_STREAM) << 4) | streamNum); + return; +} + + /* * mrsas_setup_io: Set up data including Fast Path I/O * input: Adapter instance soft state @@ -916,6 +980,15 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp cmd->request_desc->SCSIIO.MSIxIndex = sc->msix_vectors ? smp_processor_id() % sc->msix_vectors : 0; + if (sc->is_ventura && sc->streamDetectByLD) { + mtx_lock(&sc->stream_lock); + mrsas_stream_detect(sc, cmd, &io_info); + mtx_unlock(&sc->stream_lock); + /* In ventura if stream detected for a read and it is read ahead capable make this IO as LDIO */ + if (io_request->RaidContext.raid_context_g35.streamDetected && + io_info.isRead && io_info.raCapable) + fp_possible = FALSE; + } if (fp_possible) { mrsas_set_pd_lba(io_request, csio->cdb_len, &io_info, ccb, map_ptr, Modified: head/sys/dev/mrsas/mrsas_fp.c ============================================================================== --- head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:00:45 2018 (r342062) +++ head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:01:49 2018 (r342063) @@ -1014,6 +1014,9 @@ MR_BuildRaidContext(struct mrsas_softc *sc, struct IO_ ld = MR_TargetIdToLdGet(ldTgtId, map); raid = MR_LdRaidGet(ld, map); + /* check read ahead bit */ + io_info->raCapable = raid->capability.raCapable; + if (raid->rowDataSize == 0) { if (MR_LdSpanPtrGet(ld, 0, map)->spanRowDataSize == 0) return FALSE; From owner-svn-src-head@freebsd.org Fri Dec 14 08:02:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA884132424A; Fri, 14 Dec 2018 08:02:45 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6FB2691746; Fri, 14 Dec 2018 08:02:45 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30A7A2C6DE; Fri, 14 Dec 2018 08:02:45 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE82jl3087650; Fri, 14 Dec 2018 08:02:45 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE82ip3087646; Fri, 14 Dec 2018 08:02:44 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140802.wBE82ip3087646@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:02:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342064 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342064 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 6FB2691746 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.81)[-0.814,0]; NEURAL_HAM_SHORT(-0.73)[-0.728,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:02:46 -0000 Author: kadesai Date: Fri Dec 14 08:02:44 2018 New Revision: 342064 URL: https://svnweb.freebsd.org/changeset/base/342064 Log: To improve RAID 1/10 Write performance, OS drivers need to issue the required Write IOs as Fast Path IOs (after the appropriate checks allowing Fast Path to be used) to the appropriate physical drives (translated from the OS logical IO) and wait for all Write IOs to complete. Design: A write IO on RAID volume will be examined if it can be sent in Fast Path based on IO size and starting LBA and ending LBA falling on to a Physical Drive boundary. If the underlying RAID volume is a RAID 1/10, driver issues two fast path write IOs one for each corresponding physical drive after computing the corresponding start LBA for each physical drive. Both write IOs will have the same payload and are posted to HW such that replies land in the same reply queue. If there are no resources available for sending two IOs, driver will send the original IO from upper layer to RAID volume through the Firmware. When both IOs are completed by HW, the resources will be released and SCSI IO completion handler will be called. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_cam.c head/sys/dev/mrsas/mrsas_fp.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:01:49 2018 (r342063) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:02:44 2018 (r342064) @@ -141,9 +141,6 @@ void mrsas_free_ctlr_info_cmd(struct mrsas_softc *sc); void mrsas_complete_mptmfi_passthru(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd, u_int8_t status); -void -mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, u_int8_t status, - u_int8_t extStatus); struct mrsas_mfi_cmd *mrsas_get_mfi_cmd(struct mrsas_softc *sc); MRSAS_REQUEST_DESCRIPTOR_UNION *mrsas_build_mpt_cmd @@ -167,7 +164,13 @@ mrsas_get_request_desc(struct mrsas_softc *sc, extern int mrsas_bus_scan_sim(struct mrsas_softc *sc, struct cam_sim *sim); static int mrsas_alloc_evt_log_info_cmd(struct mrsas_softc *sc); static void mrsas_free_evt_log_info_cmd(struct mrsas_softc *sc); +void mrsas_release_mpt_cmd(struct mrsas_mpt_cmd *cmd); +void mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, + union ccb *ccb_ptr, u_int8_t status, u_int8_t extStatus, + u_int32_t data_length, u_int8_t *sense); + + SYSCTL_NODE(_hw, OID_AUTO, mrsas, CTLFLAG_RD, 0, "MRSAS Driver Parameters"); /* @@ -1125,7 +1128,7 @@ void mrsas_free_mem(struct mrsas_softc *sc) { int i; - u_int32_t max_cmd; + u_int32_t max_fw_cmds; struct mrsas_mfi_cmd *mfi_cmd; struct mrsas_mpt_cmd *mpt_cmd; @@ -1227,9 +1230,9 @@ mrsas_free_mem(struct mrsas_softc *sc) /* * Free MPT internal command list */ - max_cmd = sc->max_fw_cmds; + max_fw_cmds = sc->max_fw_cmds; if (sc->mpt_cmd_list) { - for (i = 0; i < max_cmd; i++) { + for (i = 0; i < max_fw_cmds; i++) { mpt_cmd = sc->mpt_cmd_list[i]; bus_dmamap_destroy(sc->data_tag, mpt_cmd->data_dmamap); free(sc->mpt_cmd_list[i], M_MRSAS); @@ -1569,14 +1572,14 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M Mpi2ReplyDescriptorsUnion_t *desc; MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR *reply_desc; MRSAS_RAID_SCSI_IO_REQUEST *scsi_io_req; - struct mrsas_mpt_cmd *cmd_mpt; + struct mrsas_mpt_cmd *cmd_mpt, *r1_cmd = NULL; struct mrsas_mfi_cmd *cmd_mfi; - u_int8_t reply_descript_type; + u_int8_t reply_descript_type, *sense; u_int16_t smid, num_completed; u_int8_t status, extStatus; union desc_value desc_val; PLD_LOAD_BALANCE_INFO lbinfo; - u_int32_t device_id; + u_int32_t device_id, data_length; int threshold_reply_count = 0; #if TM_DEBUG MR_TASK_MANAGE_REQUEST *mr_tm_req; @@ -1606,6 +1609,8 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M status = scsi_io_req->RaidContext.raid_context.status; extStatus = scsi_io_req->RaidContext.raid_context.exStatus; + sense = cmd_mpt->sense; + data_length = scsi_io_req->DataLength; switch (scsi_io_req->Function) { case MPI2_FUNCTION_SCSI_TASK_MGMT: @@ -1621,16 +1626,45 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M case MPI2_FUNCTION_SCSI_IO_REQUEST: /* Fast Path IO. */ device_id = cmd_mpt->ccb_ptr->ccb_h.target_id; lbinfo = &sc->load_balance_info[device_id]; + /* R1 load balancing for READ */ if (cmd_mpt->load_balance == MRSAS_LOAD_BALANCE_FLAG) { mrsas_atomic_dec(&lbinfo->scsi_pending_cmds[cmd_mpt->pd_r1_lb]); cmd_mpt->load_balance &= ~MRSAS_LOAD_BALANCE_FLAG; } /* Fall thru and complete IO */ case MRSAS_MPI2_FUNCTION_LD_IO_REQUEST: - mrsas_map_mpt_cmd_status(cmd_mpt, status, extStatus); - mrsas_cmd_done(sc, cmd_mpt); - scsi_io_req->RaidContext.raid_context.status = 0; - scsi_io_req->RaidContext.raid_context.exStatus = 0; + if (cmd_mpt->r1_alt_dev_handle == MR_DEVHANDLE_INVALID) { + mrsas_map_mpt_cmd_status(cmd_mpt, cmd_mpt->ccb_ptr, status, + extStatus, data_length, sense); + mrsas_cmd_done(sc, cmd_mpt); + } else { + /* + * If the peer Raid 1/10 fast path failed, + * mark IO as failed to the scsi layer. + * Overwrite the current status by the failed status + * and make sure that if any command fails, + * driver returns fail status to CAM. + */ + cmd_mpt->cmd_completed = 1; + r1_cmd = cmd_mpt->peer_cmd; + if (r1_cmd->cmd_completed) { + if (r1_cmd->io_request->RaidContext.raid_context.status != MFI_STAT_OK) { + status = r1_cmd->io_request->RaidContext.raid_context.status; + extStatus = r1_cmd->io_request->RaidContext.raid_context.exStatus; + data_length = r1_cmd->io_request->DataLength; + sense = r1_cmd->sense; + } + r1_cmd->ccb_ptr = NULL; + if (r1_cmd->callout_owner) { + callout_stop(&r1_cmd->cm_callout); + r1_cmd->callout_owner = false; + } + mrsas_release_mpt_cmd(r1_cmd); + mrsas_map_mpt_cmd_status(cmd_mpt, cmd_mpt->ccb_ptr, status, + extStatus, data_length, sense); + mrsas_cmd_done(sc, cmd_mpt); + } + } mrsas_atomic_dec(&sc->fw_outstanding); break; case MRSAS_MPI2_FUNCTION_PASSTHRU_IO_REQUEST: /* MFI command */ @@ -1723,40 +1757,41 @@ mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t M * CCB. */ void -mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, u_int8_t status, u_int8_t extStatus) +mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, union ccb *ccb_ptr, u_int8_t status, + u_int8_t extStatus, u_int32_t data_length, u_int8_t *sense) { struct mrsas_softc *sc = cmd->sc; u_int8_t *sense_data; switch (status) { case MFI_STAT_OK: - cmd->ccb_ptr->ccb_h.status = CAM_REQ_CMP; + ccb_ptr->ccb_h.status = CAM_REQ_CMP; break; case MFI_STAT_SCSI_IO_FAILED: case MFI_STAT_SCSI_DONE_WITH_ERROR: - cmd->ccb_ptr->ccb_h.status = CAM_SCSI_STATUS_ERROR; - sense_data = (u_int8_t *)&cmd->ccb_ptr->csio.sense_data; + ccb_ptr->ccb_h.status = CAM_SCSI_STATUS_ERROR; + sense_data = (u_int8_t *)&ccb_ptr->csio.sense_data; if (sense_data) { /* For now just copy 18 bytes back */ - memcpy(sense_data, cmd->sense, 18); - cmd->ccb_ptr->csio.sense_len = 18; - cmd->ccb_ptr->ccb_h.status |= CAM_AUTOSNS_VALID; + memcpy(sense_data, sense, 18); + ccb_ptr->csio.sense_len = 18; + ccb_ptr->ccb_h.status |= CAM_AUTOSNS_VALID; } break; case MFI_STAT_LD_OFFLINE: case MFI_STAT_DEVICE_NOT_FOUND: - if (cmd->ccb_ptr->ccb_h.target_lun) - cmd->ccb_ptr->ccb_h.status |= CAM_LUN_INVALID; + if (ccb_ptr->ccb_h.target_lun) + ccb_ptr->ccb_h.status |= CAM_LUN_INVALID; else - cmd->ccb_ptr->ccb_h.status |= CAM_DEV_NOT_THERE; + ccb_ptr->ccb_h.status |= CAM_DEV_NOT_THERE; break; case MFI_STAT_CONFIG_SEQ_MISMATCH: - cmd->ccb_ptr->ccb_h.status |= CAM_REQUEUE_REQ; + ccb_ptr->ccb_h.status |= CAM_REQUEUE_REQ; break; default: device_printf(sc->mrsas_dev, "FW cmd complete status %x\n", status); - cmd->ccb_ptr->ccb_h.status = CAM_REQ_CMP_ERR; - cmd->ccb_ptr->csio.scsi_status = status; + ccb_ptr->ccb_h.status = CAM_REQ_CMP_ERR; + ccb_ptr->csio.scsi_status = status; } return; } @@ -1943,6 +1978,7 @@ mrsas_alloc_mem(struct mrsas_softc *sc) device_printf(sc->mrsas_dev, "Cannot load sense buf memory\n"); return (ENOMEM); } + /* * Allocate for Event detail structure */ @@ -2383,25 +2419,26 @@ int mrsas_init_adapter(struct mrsas_softc *sc) { uint32_t status; - u_int32_t max_cmd, scratch_pad_2; + u_int32_t scratch_pad_2; int ret; int i = 0; /* Read FW status register */ status = mrsas_read_reg(sc, offsetof(mrsas_reg_set, outbound_scratch_pad)); - /* Get operational params from status register */ sc->max_fw_cmds = status & MRSAS_FWSTATE_MAXCMD_MASK; /* Decrement the max supported by 1, to correlate with FW */ sc->max_fw_cmds = sc->max_fw_cmds - 1; - max_cmd = sc->max_fw_cmds; + sc->max_scsi_cmds = sc->max_fw_cmds - + (MRSAS_FUSION_INT_CMDS + MRSAS_MAX_IOCTL_CMDS); /* Determine allocation size of command frames */ - sc->reply_q_depth = ((max_cmd + 1 + 15) / 16 * 16) * 2; - sc->request_alloc_sz = sizeof(MRSAS_REQUEST_DESCRIPTOR_UNION) * max_cmd; + sc->reply_q_depth = ((sc->max_fw_cmds + 1 + 15) / 16 * 16) * 2; + sc->request_alloc_sz = sizeof(MRSAS_REQUEST_DESCRIPTOR_UNION) * sc->max_fw_cmds; sc->reply_alloc_sz = sizeof(MPI2_REPLY_DESCRIPTORS_UNION) * (sc->reply_q_depth); - sc->io_frames_alloc_sz = MRSAS_MPI2_RAID_DEFAULT_IO_FRAME_SIZE + (MRSAS_MPI2_RAID_DEFAULT_IO_FRAME_SIZE * (max_cmd + 1)); + sc->io_frames_alloc_sz = MRSAS_MPI2_RAID_DEFAULT_IO_FRAME_SIZE + + (MRSAS_MPI2_RAID_DEFAULT_IO_FRAME_SIZE * (sc->max_fw_cmds + 1)); scratch_pad_2 = mrsas_read_reg(sc, offsetof(mrsas_reg_set, outbound_scratch_pad_2)); /* @@ -2419,15 +2456,17 @@ mrsas_init_adapter(struct mrsas_softc *sc) ((scratch_pad_2 & MEGASAS_MAX_CHAIN_SIZE_MASK) >> 5) * MEGASAS_256K_IO; - sc->chain_frames_alloc_sz = sc->max_chain_frame_sz * max_cmd; + sc->chain_frames_alloc_sz = sc->max_chain_frame_sz * sc->max_fw_cmds; sc->max_sge_in_main_msg = (MRSAS_MPI2_RAID_DEFAULT_IO_FRAME_SIZE - offsetof(MRSAS_RAID_SCSI_IO_REQUEST, SGL)) / 16; sc->max_sge_in_chain = sc->max_chain_frame_sz / sizeof(MPI2_SGE_IO_UNION); sc->max_num_sge = sc->max_sge_in_main_msg + sc->max_sge_in_chain - 2; - mrsas_dprint(sc, MRSAS_INFO, "Avago Debug: MAX sge 0x%X MAX chain frame size 0x%X \n", - sc->max_num_sge, sc->max_chain_frame_sz); + mrsas_dprint(sc, MRSAS_INFO, + "max sge: 0x%x, max chain frame size: 0x%x, " + "max fw cmd: 0x%x\n", sc->max_num_sge, + sc->max_chain_frame_sz, sc->max_fw_cmds); /* Used for pass thru MFI frame (DCMD) */ sc->chain_offset_mfi_pthru = offsetof(MRSAS_RAID_SCSI_IO_REQUEST, SGL) / 16; @@ -2630,14 +2669,14 @@ int mrsas_alloc_mpt_cmds(struct mrsas_softc *sc) { int i, j; - u_int32_t max_cmd, count; + u_int32_t max_fw_cmds, count; struct mrsas_mpt_cmd *cmd; pMpi2ReplyDescriptorsUnion_t reply_desc; u_int32_t offset, chain_offset, sense_offset; bus_addr_t io_req_base_phys, chain_frame_base_phys, sense_base_phys; u_int8_t *io_req_base, *chain_frame_base, *sense_base; - max_cmd = sc->max_fw_cmds; + max_fw_cmds = sc->max_fw_cmds; sc->req_desc = malloc(sc->request_alloc_sz, M_MRSAS, M_NOWAIT); if (!sc->req_desc) { @@ -2651,13 +2690,14 @@ mrsas_alloc_mpt_cmds(struct mrsas_softc *sc) * Allocate the dynamic array first and then allocate individual * commands. */ - sc->mpt_cmd_list = malloc(sizeof(struct mrsas_mpt_cmd *) * max_cmd, M_MRSAS, M_NOWAIT); + sc->mpt_cmd_list = malloc(sizeof(struct mrsas_mpt_cmd *) * max_fw_cmds, + M_MRSAS, M_NOWAIT); if (!sc->mpt_cmd_list) { device_printf(sc->mrsas_dev, "Cannot alloc memory for mpt_cmd_list.\n"); return (ENOMEM); } - memset(sc->mpt_cmd_list, 0, sizeof(struct mrsas_mpt_cmd *) * max_cmd); - for (i = 0; i < max_cmd; i++) { + memset(sc->mpt_cmd_list, 0, sizeof(struct mrsas_mpt_cmd *) * max_fw_cmds); + for (i = 0; i < max_fw_cmds; i++) { sc->mpt_cmd_list[i] = malloc(sizeof(struct mrsas_mpt_cmd), M_MRSAS, M_NOWAIT); if (!sc->mpt_cmd_list[i]) { @@ -2675,7 +2715,7 @@ mrsas_alloc_mpt_cmds(struct mrsas_softc *sc) chain_frame_base_phys = (bus_addr_t)sc->chain_frame_phys_addr; sense_base = (u_int8_t *)sc->sense_mem; sense_base_phys = (bus_addr_t)sc->sense_phys_addr; - for (i = 0; i < max_cmd; i++) { + for (i = 0; i < max_fw_cmds; i++) { cmd = sc->mpt_cmd_list[i]; offset = MRSAS_MPI2_RAID_DEFAULT_IO_FRAME_SIZE * i; chain_offset = sc->max_chain_frame_sz * i; @@ -2683,6 +2723,7 @@ mrsas_alloc_mpt_cmds(struct mrsas_softc *sc) memset(cmd, 0, sizeof(struct mrsas_mpt_cmd)); cmd->index = i + 1; cmd->ccb_ptr = NULL; + cmd->r1_alt_dev_handle = MR_DEVHANDLE_INVALID; callout_init_mtx(&cmd->cm_callout, &sc->sim_lock, 0); cmd->sync_cmd_idx = (u_int32_t)MRSAS_ULONG_MAX; cmd->sc = sc; @@ -3034,13 +3075,27 @@ mrsas_reset_ctrl(struct mrsas_softc *sc, u_int8_t rese mtx_unlock(&sc->sim_lock); for (i = 0; i < sc->max_fw_cmds; i++) { mpt_cmd = sc->mpt_cmd_list[i]; + + if (mpt_cmd->peer_cmd) { + mrsas_dprint(sc, MRSAS_OCR, + "R1 FP command [%d] - (mpt_cmd) %p, (peer_cmd) %p\n", + i, mpt_cmd, mpt_cmd->peer_cmd); + } + if (mpt_cmd->ccb_ptr) { - ccb = (union ccb *)(mpt_cmd->ccb_ptr); - ccb->ccb_h.status = CAM_SCSI_BUS_RESET; - mrsas_cmd_done(sc, mpt_cmd); - mrsas_atomic_dec(&sc->fw_outstanding); + if (mpt_cmd->callout_owner) { + ccb = (union ccb *)(mpt_cmd->ccb_ptr); + ccb->ccb_h.status = CAM_SCSI_BUS_RESET; + mrsas_cmd_done(sc, mpt_cmd); + } else { + mpt_cmd->ccb_ptr = NULL; + mrsas_release_mpt_cmd(mpt_cmd); + } } } + + mrsas_atomic_set(&sc->fw_outstanding, 0); + mtx_lock(&sc->sim_lock); status_reg = mrsas_read_reg(sc, offsetof(mrsas_reg_set, Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:01:49 2018 (r342063) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:02:44 2018 (r342064) @@ -672,6 +672,12 @@ typedef union { #define mrsas_atomic_dec(v) atomic_subtract_int(&(v)->val, 1) #define mrsas_atomic_inc(v) atomic_add_int(&(v)->val, 1) +static inline int +mrsas_atomic_inc_return(mrsas_atomic_t *v) +{ + return 1 + atomic_fetchadd_int(&(v)->val, 1); +} + /* IOCInit Request message */ typedef struct _MPI2_IOC_INIT_REQUEST { u_int8_t WhoInit; /* 0x00 */ @@ -707,6 +713,7 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest * MR private defines */ #define MR_PD_INVALID 0xFFFF +#define MR_DEVHANDLE_INVALID 0xFFFF #define MAX_SPAN_DEPTH 8 #define MAX_QUAD_DEPTH MAX_SPAN_DEPTH #define MAX_RAIDMAP_SPAN_DEPTH (MAX_SPAN_DEPTH) @@ -1019,6 +1026,7 @@ struct IO_REQUEST_INFO { u_int8_t span_arm; u_int8_t pd_after_lb; boolean_t raCapable; + u_int16_t r1_alt_dev_handle; }; /* @@ -1528,6 +1536,7 @@ enum MR_EVT_ARGS { #define MR_RL_FLAGS_GRANT_DESTINATION_CPU1 0x10 #define MR_RL_FLAGS_GRANT_DESTINATION_CUDA 0x80 #define MR_RL_FLAGS_SEQ_NUM_ENABLE 0x8 +#define MR_RL_WRITE_THROUGH_MODE 0x00 #define MR_RL_WRITE_BACK_MODE 0x01 /* @@ -1591,6 +1600,7 @@ typedef enum _REGION_TYPE { #define MRSAS_SCSI_MAX_CDB_LEN 16 #define MRSAS_SCSI_SENSE_BUFFERSIZE 96 #define MRSAS_INTERNAL_CMDS 32 +#define MRSAS_FUSION_INT_CMDS 8 #define MEGASAS_MAX_CHAIN_SIZE_UNITS_MASK 0x400000 #define MEGASAS_MAX_CHAIN_SIZE_MASK 0x3E0 @@ -1662,6 +1672,10 @@ struct mrsas_mpt_cmd { struct callout cm_callout; struct mrsas_softc *sc; boolean_t tmCapable; + u_int16_t r1_alt_dev_handle; + boolean_t cmd_completed; + struct mrsas_mpt_cmd *peer_cmd; + bool callout_owner; TAILQ_ENTRY(mrsas_mpt_cmd) next; }; @@ -2988,6 +3002,7 @@ struct mrsas_softc { struct sema ioctl_count_sema; uint32_t max_fw_cmds; + uint16_t max_scsi_cmds; uint32_t max_num_sge; struct resource *mrsas_irq[MAX_MSIX_COUNT]; void *intr_handle[MAX_MSIX_COUNT]; @@ -3063,6 +3078,7 @@ struct mrsas_softc { u_int32_t max_sectors_per_req; u_int32_t disableOnlineCtrlReset; mrsas_atomic_t fw_outstanding; + u_int32_t mrsas_debug; u_int32_t mrsas_io_timeout; u_int32_t mrsas_fw_fault_check_delay; Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:01:49 2018 (r342063) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:02:44 2018 (r342064) @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #include #include - #include /* XXX for pcpu.h */ #include /* XXX for PCPU_GET */ @@ -110,9 +109,6 @@ struct mrsas_mpt_cmd *mrsas_get_mpt_cmd(struct mrsas_s MRSAS_REQUEST_DESCRIPTOR_UNION * mrsas_get_request_desc(struct mrsas_softc *sc, u_int16_t index); -extern void -mrsas_map_mpt_cmd_status(struct mrsas_mpt_cmd *cmd, u_int8_t status, - u_int8_t extStatus); extern int mrsas_reset_targets(struct mrsas_softc *sc); extern u_int16_t MR_TargetIdToLdGet(u_int32_t ldTgtId, MR_DRV_RAID_MAP_ALL * map); extern u_int32_t @@ -129,15 +125,13 @@ MR_LdSpanArrayGet(u_int32_t ld, u_int32_t span, extern u_int16_t mrsas_get_updated_dev_handle(struct mrsas_softc *sc, PLD_LOAD_BALANCE_INFO lbInfo, struct IO_REQUEST_INFO *io_info); -extern u_int8_t -megasas_get_best_arm(PLD_LOAD_BALANCE_INFO lbInfo, u_int8_t arm, - u_int64_t block, u_int32_t count); extern int mrsas_complete_cmd(struct mrsas_softc *sc, u_int32_t MSIxIndex); extern MR_LD_RAID *MR_LdRaidGet(u_int32_t ld, MR_DRV_RAID_MAP_ALL * map); extern void mrsas_disable_intr(struct mrsas_softc *sc); extern void mrsas_enable_intr(struct mrsas_softc *sc); +void mrsas_prepare_secondRaid1_IO(struct mrsas_softc *sc, + struct mrsas_mpt_cmd *cmd); - /* * mrsas_cam_attach: Main entry to CAM subsystem * input: Adapter instance soft state @@ -152,7 +146,7 @@ mrsas_cam_attach(struct mrsas_softc *sc) struct cam_devq *devq; int mrsas_cam_depth; - mrsas_cam_depth = sc->max_fw_cmds - MRSAS_INTERNAL_CMDS; + mrsas_cam_depth = sc->max_scsi_cmds; if ((devq = cam_simq_alloc(mrsas_cam_depth)) == NULL) { device_printf(sc->mrsas_dev, "Cannot allocate SIM queue\n"); @@ -452,7 +446,7 @@ static int32_t mrsas_startio(struct mrsas_softc *sc, struct cam_sim *sim, union ccb *ccb) { - struct mrsas_mpt_cmd *cmd; + struct mrsas_mpt_cmd *cmd, *r1_cmd = NULL; struct ccb_hdr *ccb_h = &(ccb->ccb_h); struct ccb_scsiio *csio = &(ccb->csio); MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc; @@ -472,6 +466,7 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * xpt_done(ccb); return (0); } + if ((ccb_h->flags & CAM_DIR_MASK) != CAM_DIR_NONE) { if (ccb_h->flags & CAM_DIR_IN) cmd->flags |= MRSAS_DIR_IN; @@ -572,6 +567,7 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * if (mrsas_build_ldio_rw(sc, cmd, ccb)) { device_printf(sc->mrsas_dev, "Build RW LDIO failed.\n"); mtx_unlock(&sc->raidmap_lock); + mrsas_release_mpt_cmd(cmd); return (1); } break; @@ -580,6 +576,7 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * if (mrsas_build_ldio_nonrw(sc, cmd, ccb)) { device_printf(sc->mrsas_dev, "Build NON-RW LDIO failed.\n"); mtx_unlock(&sc->raidmap_lock); + mrsas_release_mpt_cmd(cmd); return (1); } break; @@ -592,6 +589,7 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * device_printf(sc->mrsas_dev, "Build SYSPDIO failed.\n"); mtx_unlock(&sc->raidmap_lock); + mrsas_release_mpt_cmd(cmd); return (1); } } else { @@ -600,6 +598,7 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * device_printf(sc->mrsas_dev, "Build SYSPDIO failed.\n"); mtx_unlock(&sc->raidmap_lock); + mrsas_release_mpt_cmd(cmd); return (1); } } @@ -622,6 +621,7 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * /* * Start timer for IO timeout. Default timeout value is 90 second. */ + cmd->callout_owner = true; #if (__FreeBSD_version >= 1000510) callout_reset_sbt(&cmd->cm_callout, SBT_1S * 180, 0, mrsas_scsiio_timeout, cmd, 0); @@ -629,12 +629,34 @@ mrsas_startio(struct mrsas_softc *sc, struct cam_sim * callout_reset(&cmd->cm_callout, (180000 * hz) / 1000, mrsas_scsiio_timeout, cmd); #endif - mrsas_atomic_inc(&sc->fw_outstanding); - if (mrsas_atomic_read(&sc->fw_outstanding) > sc->io_cmds_highwater) + if (mrsas_atomic_inc_return(&sc->fw_outstanding) > sc->io_cmds_highwater) sc->io_cmds_highwater++; - mrsas_fire_cmd(sc, req_desc->addr.u.low, req_desc->addr.u.high); + /* + * if it is raid 1/10 fp write capable. + * try to get second command from pool and construct it. + * From FW, it has confirmed that lba values of two PDs corresponds to + * single R1/10 LD are always same + * + */ + /* + * driver side count always should be less than max_fw_cmds to get + * new command + */ + if (cmd->r1_alt_dev_handle != MR_DEVHANDLE_INVALID) { + mrsas_atomic_inc(&sc->fw_outstanding); + mrsas_prepare_secondRaid1_IO(sc, cmd); + mrsas_fire_cmd(sc, req_desc->addr.u.low, + req_desc->addr.u.high); + r1_cmd = cmd->peer_cmd; + mrsas_fire_cmd(sc, r1_cmd->request_desc->addr.u.low, + r1_cmd->request_desc->addr.u.high); + } else { + mrsas_fire_cmd(sc, req_desc->addr.u.low, + req_desc->addr.u.high); + } + return (0); done: @@ -698,7 +720,6 @@ mrsas_get_mpt_cmd(struct mrsas_softc *sc) cmd->error_code = 0; cmd->load_balance = 0; cmd->ccb_ptr = NULL; - out: mtx_unlock(&sc->mpt_cmd_pool_lock); return cmd; @@ -716,7 +737,12 @@ mrsas_release_mpt_cmd(struct mrsas_mpt_cmd *cmd) struct mrsas_softc *sc = cmd->sc; mtx_lock(&sc->mpt_cmd_pool_lock); + cmd->r1_alt_dev_handle = MR_DEVHANDLE_INVALID; cmd->sync_cmd_idx = (u_int32_t)MRSAS_ULONG_MAX; + cmd->peer_cmd = NULL; + cmd->cmd_completed = 0; + memset((uint8_t *)cmd->io_request, 0, + sizeof(MRSAS_RAID_SCSI_IO_REQUEST)); TAILQ_INSERT_HEAD(&(sc->mrsas_mpt_cmd_list_head), cmd, next); mtx_unlock(&sc->mpt_cmd_pool_lock); @@ -735,15 +761,65 @@ mrsas_get_request_desc(struct mrsas_softc *sc, u_int16 { u_int8_t *p; - if (index >= sc->max_fw_cmds) { - device_printf(sc->mrsas_dev, "Invalid SMID (0x%x)request for desc\n", index); - return NULL; - } + KASSERT(index < sc->max_fw_cmds, ("req_desc is out of range")); p = sc->req_desc + sizeof(MRSAS_REQUEST_DESCRIPTOR_UNION) * index; return (MRSAS_REQUEST_DESCRIPTOR_UNION *) p; } + + + +/* mrsas_prepare_secondRaid1_IO + * It prepares the raid 1 second IO + */ +void +mrsas_prepare_secondRaid1_IO(struct mrsas_softc *sc, + struct mrsas_mpt_cmd *cmd) +{ + MRSAS_REQUEST_DESCRIPTOR_UNION *req_desc, *req_desc2 = NULL; + struct mrsas_mpt_cmd *r1_cmd; + + r1_cmd = cmd->peer_cmd; + req_desc = cmd->request_desc; + + /* + * copy the io request frame as well as 8 SGEs data for r1 + * command + */ + memcpy(r1_cmd->io_request, cmd->io_request, + (sizeof(MRSAS_RAID_SCSI_IO_REQUEST))); + memcpy(&r1_cmd->io_request->SGL, &cmd->io_request->SGL, + (sc->max_sge_in_main_msg * sizeof(MPI2_SGE_IO_UNION))); + + /* sense buffer is different for r1 command */ + r1_cmd->io_request->SenseBufferLowAddress = r1_cmd->sense_phys_addr; + r1_cmd->ccb_ptr = cmd->ccb_ptr; + + req_desc2 = mrsas_get_request_desc(sc, r1_cmd->index - 1); + req_desc2->addr.Words = 0; + r1_cmd->request_desc = req_desc2; + req_desc2->SCSIIO.SMID = r1_cmd->index; + req_desc2->SCSIIO.RequestFlags = req_desc->SCSIIO.RequestFlags; + r1_cmd->request_desc->SCSIIO.DevHandle = cmd->r1_alt_dev_handle; + r1_cmd->r1_alt_dev_handle = cmd->io_request->DevHandle; + r1_cmd->io_request->DevHandle = cmd->r1_alt_dev_handle; + cmd->io_request->RaidContext.raid_context_g35.smid.peerSMID = + r1_cmd->index; + r1_cmd->io_request->RaidContext.raid_context_g35.smid.peerSMID = + cmd->index; + /* + * MSIxIndex of both commands request descriptors + * should be same + */ + r1_cmd->request_desc->SCSIIO.MSIxIndex = cmd->request_desc->SCSIIO.MSIxIndex; + /* span arm is different for r1 cmd */ + r1_cmd->io_request->RaidContext.raid_context_g35.spanArm = + cmd->io_request->RaidContext.raid_context_g35.spanArm + 1; + +} + + /* * mrsas_build_ldio_rw: Builds an LDIO command * input: Adapter instance soft state @@ -883,11 +959,15 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp struct ccb_scsiio *csio = &(ccb->csio); struct IO_REQUEST_INFO io_info; MR_DRV_RAID_MAP_ALL *map_ptr; + struct mrsas_mpt_cmd *r1_cmd = NULL; + MR_LD_RAID *raid; u_int8_t fp_possible; u_int32_t start_lba_hi, start_lba_lo, ld_block_size, ld; u_int32_t datalength = 0; + io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; + start_lba_lo = 0; start_lba_hi = 0; fp_possible = 0; @@ -947,7 +1027,10 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp io_info.ldStartBlock = ((u_int64_t)start_lba_hi << 32) | start_lba_lo; io_info.numBlocks = datalength; io_info.ldTgtId = device_id; + io_info.r1_alt_dev_handle = MR_DEVHANDLE_INVALID; + io_request->DataLength = cmd->length; + switch (ccb_h->flags & CAM_DIR_MASK) { case CAM_DIR_IN: io_info.isRead = 1; @@ -980,14 +1063,36 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp cmd->request_desc->SCSIIO.MSIxIndex = sc->msix_vectors ? smp_processor_id() % sc->msix_vectors : 0; - if (sc->is_ventura && sc->streamDetectByLD) { - mtx_lock(&sc->stream_lock); - mrsas_stream_detect(sc, cmd, &io_info); - mtx_unlock(&sc->stream_lock); - /* In ventura if stream detected for a read and it is read ahead capable make this IO as LDIO */ - if (io_request->RaidContext.raid_context_g35.streamDetected && - io_info.isRead && io_info.raCapable) - fp_possible = FALSE; + if (sc->is_ventura) { + if (sc->streamDetectByLD) { + mtx_lock(&sc->stream_lock); + mrsas_stream_detect(sc, cmd, &io_info); + mtx_unlock(&sc->stream_lock); + /* In ventura if stream detected for a read and + * it is read ahead capable make this IO as LDIO */ + if (io_request->RaidContext.raid_context_g35.streamDetected && + io_info.isRead && io_info.raCapable) + fp_possible = FALSE; + } + + /* Set raid 1/10 fast path write capable bit in io_info. + * Note - reset peer_cmd and r1_alt_dev_handle if fp_possible + * disabled after this point. Try not to add more check for + * fp_possible toggle after this. + */ + if (fp_possible && + (io_info.r1_alt_dev_handle != MR_DEVHANDLE_INVALID) && + (raid->level == 1) && !io_info.isRead) { + r1_cmd = mrsas_get_mpt_cmd(sc); + if (!r1_cmd) { + fp_possible = FALSE; + printf("Avago debug fp disable from %s %d \n", + __func__, __LINE__); + } else { + cmd->peer_cmd = r1_cmd; + r1_cmd->peer_cmd = cmd; + } + } } if (fp_possible) { @@ -1032,6 +1137,12 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp io_request->RaidContext.raid_context.spanArm = io_info.span_arm; } else cmd->load_balance = 0; + + if (sc->is_ventura) + cmd->r1_alt_dev_handle = io_info.r1_alt_dev_handle; + else + cmd->r1_alt_dev_handle = MR_DEVHANDLE_INVALID; + cmd->request_desc->SCSIIO.DevHandle = io_info.devHandle; io_request->DevHandle = io_info.devHandle; } else { @@ -1078,6 +1189,7 @@ mrsas_build_ldio_nonrw(struct mrsas_softc *sc, struct u_int32_t device_id, ld; MR_DRV_RAID_MAP_ALL *map_ptr; MR_LD_RAID *raid; + RAID_CONTEXT *pRAID_Context; MRSAS_RAID_SCSI_IO_REQUEST *io_request; io_request = cmd->io_request; @@ -1086,6 +1198,8 @@ mrsas_build_ldio_nonrw(struct mrsas_softc *sc, struct map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; ld = MR_TargetIdToLdGet(device_id, map_ptr); raid = MR_LdRaidGet(ld, map_ptr); + /* get RAID_Context pointer */ + pRAID_Context = &io_request->RaidContext.raid_context; /* Store the TM capability value in cmd */ cmd->tmCapable = raid->capability.tmCapable; @@ -1140,9 +1254,12 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs u_int32_t device_id; MR_DRV_RAID_MAP_ALL *local_map_ptr; MRSAS_RAID_SCSI_IO_REQUEST *io_request; + RAID_CONTEXT *pRAID_Context; struct MR_PD_CFG_SEQ_NUM_SYNC *pd_sync; io_request = cmd->io_request; + /* get RAID_Context pointer */ + pRAID_Context = &io_request->RaidContext.raid_context; device_id = ccb_h->target_id; local_map_ptr = sc->ld_drv_map[(sc->map_id & 1)]; io_request->RaidContext.raid_context.RAIDFlags = MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD @@ -1171,6 +1288,9 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs else io_request->RaidContext.raid_context.regLockFlags |= (MR_RL_FLAGS_SEQ_NUM_ENABLE | MR_RL_FLAGS_GRANT_DESTINATION_CUDA); + /* raid_context.Type = MPI2_TYPE_CUDA is valid only, + * if FW support Jbod Sequence number + */ io_request->RaidContext.raid_context.Type = MPI2_TYPE_CUDA; io_request->RaidContext.raid_context.nseg = 0x1; } else if (sc->fast_path_io) { @@ -1185,7 +1305,7 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs /* Want to send all IO via FW path */ io_request->RaidContext.raid_context.VirtualDiskTgtId = device_id; io_request->RaidContext.raid_context.configSeqNum = 0; - io_request->DevHandle = 0xFFFF; + io_request->DevHandle = MR_DEVHANDLE_INVALID; } cmd->request_desc->SCSIIO.DevHandle = io_request->DevHandle; @@ -1432,7 +1552,10 @@ mrsas_cmd_done(struct mrsas_softc *sc, struct mrsas_mp mrsas_unmap_request(sc, cmd); mtx_lock(&sc->sim_lock); - callout_stop(&cmd->cm_callout); + if (cmd->callout_owner) { + callout_stop(&cmd->cm_callout); + cmd->callout_owner = false; + } xpt_done(cmd->ccb_ptr); cmd->ccb_ptr = NULL; mtx_unlock(&sc->sim_lock); Modified: head/sys/dev/mrsas/mrsas_fp.c ============================================================================== --- head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:01:49 2018 (r342063) +++ head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:02:44 2018 (r342064) @@ -921,7 +921,7 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in RAID_CONTEXT * pRAID_Context, MR_DRV_RAID_MAP_ALL * map) { MR_LD_RAID *raid = MR_LdRaidGet(ld, map); - u_int32_t pd, arRef; + u_int32_t pd, arRef, r1_alt_pd; u_int8_t physArm, span; u_int64_t row; u_int8_t retval = TRUE; @@ -950,10 +950,16 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in arRef = MR_LdSpanArrayGet(ld, span, map); pd = MR_ArPdGet(arRef, physArm, map); - if (pd != MR_PD_INVALID) + if (pd != MR_PD_INVALID) { *pDevHandle = MR_PdDevHandleGet(pd, map); - else { - *pDevHandle = MR_PD_INVALID; + /* get second pd also for raid 1/10 fast path writes */ + if ((raid->level == 1) && !io_info->isRead) { + r1_alt_pd = MR_ArPdGet(arRef, physArm + 1, map); + if (r1_alt_pd != MR_PD_INVALID) + io_info->r1_alt_dev_handle = MR_PdDevHandleGet(r1_alt_pd, map); + } + } else { + *pDevHandle = MR_DEVHANDLE_INVALID; if ((raid->level >= 5) && ((sc->device_id == MRSAS_TBOLT) || (sc->mrsas_gen3_ctrl && raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) @@ -1167,7 +1173,7 @@ MR_BuildRaidContext(struct mrsas_softc *sc, struct IO_ MR_GetPhyParams(sc, ld, start_strip, ref_in_start_stripe, io_info, pRAID_Context, map); /* If IO on an invalid Pd, then FP is not possible */ - if (io_info->devHandle == MR_PD_INVALID) + if (io_info->devHandle == MR_DEVHANDLE_INVALID) io_info->fpOkForIo = FALSE; /* * if FP possible, set the SLUD bit in regLockFlags for @@ -1178,6 +1184,7 @@ MR_BuildRaidContext(struct mrsas_softc *sc, struct IO_ raid->capability.fpCacheBypassCapable) { ((RAID_CONTEXT_G35 *) pRAID_Context)->routingFlags.bits.sld = 1; } + return retval; } else if (isRead) { for (stripIdx = 0; stripIdx < num_strips; stripIdx++) { @@ -1535,6 +1542,7 @@ mrsas_get_best_arm_pd(struct mrsas_softc *sc, { MR_LD_RAID *raid; MR_DRV_RAID_MAP_ALL *drv_map; + u_int16_t pd1_devHandle; u_int16_t pend0, pend1, ld; u_int64_t diff0, diff1; u_int8_t bestArm, pd0, pd1, span, arm; @@ -1558,23 +1566,30 @@ mrsas_get_best_arm_pd(struct mrsas_softc *sc, pd1 = MR_ArPdGet(arRef, (arm + 1) >= span_row_size ? (arm + 1 - span_row_size) : arm + 1, drv_map); - /* get the pending cmds for the data and mirror arms */ - pend0 = mrsas_atomic_read(&lbInfo->scsi_pending_cmds[pd0]); - pend1 = mrsas_atomic_read(&lbInfo->scsi_pending_cmds[pd1]); + /* Get PD1 Dev Handle */ + pd1_devHandle = MR_PdDevHandleGet(pd1, drv_map); + if (pd1_devHandle == MR_DEVHANDLE_INVALID) { + bestArm = arm; + } else { + /* get the pending cmds for the data and mirror arms */ + pend0 = mrsas_atomic_read(&lbInfo->scsi_pending_cmds[pd0]); + pend1 = mrsas_atomic_read(&lbInfo->scsi_pending_cmds[pd1]); - /* Determine the disk whose head is nearer to the req. block */ - diff0 = ABS_DIFF(block, lbInfo->last_accessed_block[pd0]); - diff1 = ABS_DIFF(block, lbInfo->last_accessed_block[pd1]); - bestArm = (diff0 <= diff1 ? arm : arm ^ 1); + /* Determine the disk whose head is nearer to the req. block */ + diff0 = ABS_DIFF(block, lbInfo->last_accessed_block[pd0]); + diff1 = ABS_DIFF(block, lbInfo->last_accessed_block[pd1]); + bestArm = (diff0 <= diff1 ? arm : arm ^ 1); - if ((bestArm == arm && pend0 > pend1 + sc->lb_pending_cmds) || - (bestArm != arm && pend1 > pend0 + sc->lb_pending_cmds)) - bestArm ^= 1; + if ((bestArm == arm && pend0 > pend1 + sc->lb_pending_cmds) || + (bestArm != arm && pend1 > pend0 + sc->lb_pending_cmds)) + bestArm ^= 1; - /* Update the last accessed block on the correct pd */ + /* Update the last accessed block on the correct pd */ + io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | bestArm; + io_info->pd_after_lb = (bestArm == arm) ? pd0 : pd1; + } + lbInfo->last_accessed_block[bestArm == arm ? pd0 : pd1] = block + count - 1; - io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | bestArm; - io_info->pd_after_lb = (bestArm == arm) ? pd0 : pd1; #if SPAN_DEBUG if (arm != bestArm) printf("AVAGO Debug R1 Load balance occur - span 0x%x arm 0x%x bestArm 0x%x " @@ -1631,7 +1646,7 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, RAID_CONTEXT * pRAID_Context, MR_DRV_RAID_MAP_ALL * map) { MR_LD_RAID *raid = MR_LdRaidGet(ld, map); - u_int32_t pd, arRef; + u_int32_t pd, arRef, r1_alt_pd; u_int8_t physArm, span; u_int64_t row; u_int8_t retval = TRUE; @@ -1673,11 +1688,17 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, pd = MR_ArPdGet(arRef, physArm, map); /* Get the Pd. */ - if (pd != MR_PD_INVALID) + if (pd != MR_PD_INVALID) { /* Get dev handle from Pd */ *pDevHandle = MR_PdDevHandleGet(pd, map); - else { - *pDevHandle = MR_PD_INVALID; /* set dev handle as invalid. */ + /* get second pd also for raid 1/10 fast path writes */ + if ((raid->level == 1) && !io_info->isRead) { + r1_alt_pd = MR_ArPdGet(arRef, physArm + 1, map); + if (r1_alt_pd != MR_PD_INVALID) + io_info->r1_alt_dev_handle = MR_PdDevHandleGet(r1_alt_pd, map); + } + } else { + *pDevHandle = MR_DEVHANDLE_INVALID; /* set dev handle as invalid. */ if ((raid->level >= 5) && ((sc->device_id == MRSAS_TBOLT) || (sc->mrsas_gen3_ctrl && raid->regTypeReqOnRead != REGION_TYPE_UNUSED))) From owner-svn-src-head@freebsd.org Fri Dec 14 08:03:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 877951324329; Fri, 14 Dec 2018 08:03:29 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 36665918AB; Fri, 14 Dec 2018 08:03:29 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 29F112C6E0; Fri, 14 Dec 2018 08:03:29 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE83TAn087740; Fri, 14 Dec 2018 08:03:29 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE83SKw087738; Fri, 14 Dec 2018 08:03:28 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140803.wBE83SKw087738@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:03:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342065 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342065 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 36665918AB X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.821,0]; NEURAL_HAM_SHORT(-0.72)[-0.722,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:03:29 -0000 Author: kadesai Date: Fri Dec 14 08:03:28 2018 New Revision: 342065 URL: https://svnweb.freebsd.org/changeset/base/342065 Log: This patch will add support for new DCMD to get PD information and a single data structure to specify LD and JBOD. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:02:44 2018 (r342064) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:03:28 2018 (r342065) @@ -90,6 +90,8 @@ static void mrsas_update_ext_vd_details(struct mrsas_s static int mrsas_issue_blocked_abort_cmd(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd_to_abort); +static void +mrsas_get_pd_info(struct mrsas_softc *sc, u_int16_t device_id); static struct mrsas_softc * mrsas_get_softc_instance(struct cdev *dev, u_long cmd, caddr_t arg); @@ -971,6 +973,7 @@ attach_fail: static void mrsas_ich_startup(void *arg) { + int i = 0; struct mrsas_softc *sc = (struct mrsas_softc *)arg; /* @@ -1006,6 +1009,13 @@ mrsas_ich_startup(void *arg) /* Enable Interrupts */ mrsas_enable_intr(sc); + /* Call DCMD get_pd_info for all system PDs */ + for (i = 0; i < MRSAS_MAX_PD; i++) { + if ((sc->target_list[i].target_id != 0xffff) && + sc->pd_info_mem) + mrsas_get_pd_info(sc, sc->target_list[i].target_id); + } + /* Initiate AEN (Asynchronous Event Notification) */ if (mrsas_start_aen(sc)) { device_printf(sc->mrsas_dev, "Error: AEN registration FAILED !!! " @@ -1216,6 +1226,16 @@ mrsas_free_mem(struct mrsas_softc *sc) bus_dma_tag_destroy(sc->evt_detail_tag); /* + * Free PD info memory + */ + if (sc->pd_info_phys_addr) + bus_dmamap_unload(sc->pd_info_tag, sc->pd_info_dmamap); + if (sc->pd_info_mem != NULL) + bus_dmamem_free(sc->pd_info_tag, sc->pd_info_mem, sc->pd_info_dmamap); + if (sc->pd_info_tag != NULL) + bus_dma_tag_destroy(sc->pd_info_tag); + + /* * Free MFI frames */ if (sc->mfi_cmd_list) { @@ -1808,7 +1828,7 @@ static int mrsas_alloc_mem(struct mrsas_softc *sc) { u_int32_t verbuf_size, io_req_size, reply_desc_size, sense_size, chain_frame_size, - evt_detail_size, count; + evt_detail_size, count, pd_info_size; /* * Allocate parent DMA tag @@ -2009,7 +2029,39 @@ mrsas_alloc_mem(struct mrsas_softc *sc) device_printf(sc->mrsas_dev, "Cannot load Event detail buffer memory\n"); return (ENOMEM); } + /* + * Allocate for PD INFO structure + */ + pd_info_size = sizeof(struct mrsas_pd_info); + if (bus_dma_tag_create(sc->mrsas_parent_tag, + 1, 0, + BUS_SPACE_MAXADDR_32BIT, + BUS_SPACE_MAXADDR, + NULL, NULL, + pd_info_size, + 1, + pd_info_size, + BUS_DMA_ALLOCNOW, + NULL, NULL, + &sc->pd_info_tag)) { + device_printf(sc->mrsas_dev, "Cannot create PD INFO tag\n"); + return (ENOMEM); + } + if (bus_dmamem_alloc(sc->pd_info_tag, (void **)&sc->pd_info_mem, + BUS_DMA_NOWAIT, &sc->pd_info_dmamap)) { + device_printf(sc->mrsas_dev, "Cannot alloc PD INFO buffer memory\n"); + return (ENOMEM); + } + bzero(sc->pd_info_mem, pd_info_size); + if (bus_dmamap_load(sc->pd_info_tag, sc->pd_info_dmamap, + sc->pd_info_mem, pd_info_size, mrsas_addr_cb, + &sc->pd_info_phys_addr, BUS_DMA_NOWAIT)) { + device_printf(sc->mrsas_dev, "Cannot load PD INFO buffer memory\n"); + return (ENOMEM); + } + + /* * Create a dma tag for data buffers; size will be the maximum * possible I/O size (280kB). */ @@ -2297,6 +2349,7 @@ mrsas_init_fw(struct mrsas_softc *sc) device_printf(sc->mrsas_dev, "Adapter initialize Fail.\n"); return (1); } + /* Allocate internal commands for pass-thru */ if (mrsas_alloc_mfi_cmds(sc) != SUCCESS) { device_printf(sc->mrsas_dev, "Allocate MFI cmd failed.\n"); @@ -2334,6 +2387,12 @@ mrsas_init_fw(struct mrsas_softc *sc) } megasas_setup_jbod_map(sc); + + memset(sc->target_list, 0, + MRSAS_MAX_TM_TARGETS * sizeof(struct mrsas_target)); + for (i = 0; i < MRSAS_MAX_TM_TARGETS; i++) + sc->target_list[i].target_id = 0xffff; + /* For pass-thru, get PD/LD list and controller info */ memset(sc->pd_list, 0, MRSAS_MAX_PD * sizeof(struct mrsas_pd_list)); @@ -4271,7 +4330,114 @@ mrsas_sync_map_info(struct mrsas_softc *sc) return (retcode); } +/* Input: dcmd.opcode - MR_DCMD_PD_GET_INFO + * dcmd.mbox.s[0] - deviceId for this physical drive + * dcmd.sge IN - ptr to returned MR_PD_INFO structure + * Desc: Firmware return the physical drive info structure + * + */ +static void +mrsas_get_pd_info(struct mrsas_softc *sc, u_int16_t device_id) +{ + int retcode; + u_int8_t do_ocr = 1; + struct mrsas_mfi_cmd *cmd; + struct mrsas_dcmd_frame *dcmd; + + cmd = mrsas_get_mfi_cmd(sc); + + if (!cmd) { + device_printf(sc->mrsas_dev, + "Cannot alloc for get PD info cmd\n"); + return; + } + dcmd = &cmd->frame->dcmd; + + memset(sc->pd_info_mem, 0, sizeof(struct mrsas_pd_info)); + memset(dcmd->mbox.b, 0, MFI_MBOX_SIZE); + + dcmd->mbox.s[0] = device_id; + dcmd->cmd = MFI_CMD_DCMD; + dcmd->cmd_status = 0xFF; + dcmd->sge_count = 1; + dcmd->flags = MFI_FRAME_DIR_READ; + dcmd->timeout = 0; + dcmd->pad_0 = 0; + dcmd->data_xfer_len = sizeof(struct mrsas_pd_info); + dcmd->opcode = MR_DCMD_PD_GET_INFO; + dcmd->sgl.sge32[0].phys_addr = (u_int32_t)sc->pd_info_phys_addr; + dcmd->sgl.sge32[0].length = sizeof(struct mrsas_pd_info); + + if (!sc->mask_interrupts) + retcode = mrsas_issue_blocked_cmd(sc, cmd); + else + retcode = mrsas_issue_polled(sc, cmd); + + if (retcode == ETIMEDOUT) + goto dcmd_timeout; + + sc->target_list[device_id].interface_type = + sc->pd_info_mem->state.ddf.pdType.intf; + + do_ocr = 0; + +dcmd_timeout: + + if (do_ocr) + sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR; + + if (!sc->mask_interrupts) + mrsas_release_mfi_cmd(cmd); +} + /* + * mrsas_add_target: Add target ID of system PD/VD to driver's data structure. + * sc: Adapter's soft state + * target_id: Unique target id per controller(managed by driver) + * for system PDs- target ID ranges from 0 to (MRSAS_MAX_PD - 1) + * for VDs- target ID ranges from MRSAS_MAX_PD to MRSAS_MAX_TM_TARGETS + * return: void + * Descripton: This function will be called whenever system PD or VD is created. + */ +static void mrsas_add_target(struct mrsas_softc *sc, + u_int16_t target_id) +{ + sc->target_list[target_id].target_id = target_id; + + device_printf(sc->mrsas_dev, + "%s created target ID: 0x%x\n", + (target_id < MRSAS_MAX_PD ? "System PD" : "VD"), + (target_id < MRSAS_MAX_PD ? target_id : (target_id - MRSAS_MAX_PD))); + /* + * If interrupts are enabled, then only fire DCMD to get pd_info + * for system PDs + */ + if (!sc->mask_interrupts && sc->pd_info_mem && + (target_id < MRSAS_MAX_PD)) + mrsas_get_pd_info(sc, target_id); + +} + +/* + * mrsas_remove_target: Remove target ID of system PD/VD from driver's data structure. + * sc: Adapter's soft state + * target_id: Unique target id per controller(managed by driver) + * for system PDs- target ID ranges from 0 to (MRSAS_MAX_PD - 1) + * for VDs- target ID ranges from MRSAS_MAX_PD to MRSAS_MAX_TM_TARGETS + * return: void + * Descripton: This function will be called whenever system PD or VD is deleted + */ +static void mrsas_remove_target(struct mrsas_softc *sc, + u_int16_t target_id) +{ + sc->target_list[target_id].target_id = 0xffff; + device_printf(sc->mrsas_dev, + "%s deleted target ID: 0x%x\n", + (target_id < MRSAS_MAX_PD ? "System PD" : "VD"), + (target_id < MRSAS_MAX_PD ? target_id : (target_id - MRSAS_MAX_PD))); +} + +/* * mrsas_get_pd_list: Returns FW's PD list structure input: * Adapter soft state * @@ -4347,8 +4513,18 @@ mrsas_get_pd_list(struct mrsas_softc *sc) pd_addr->scsiDevType; sc->local_pd_list[pd_addr->deviceId].driveState = MR_PD_STATE_SYSTEM; + if (sc->target_list[pd_addr->deviceId].target_id == 0xffff) + mrsas_add_target(sc, pd_addr->deviceId); pd_addr++; } + for (pd_index = 0; pd_index < MRSAS_MAX_PD; pd_index++) { + if ((sc->local_pd_list[pd_index].driveState != + MR_PD_STATE_SYSTEM) && + (sc->target_list[pd_index].target_id != + 0xffff)) { + mrsas_remove_target(sc, pd_index); + } + } /* * Use mutext/spinlock if pd_list component size increase more than * 32 bit. @@ -4380,7 +4556,7 @@ dcmd_timeout: static int mrsas_get_ld_list(struct mrsas_softc *sc) { - int ld_list_size, retcode = 0, ld_index = 0, ids = 0; + int ld_list_size, retcode = 0, ld_index = 0, ids = 0, drv_tgt_id; u_int8_t do_ocr = 1; struct mrsas_mfi_cmd *cmd; struct mrsas_dcmd_frame *dcmd; @@ -4442,11 +4618,21 @@ mrsas_get_ld_list(struct mrsas_softc *sc) sc->CurLdCount = ld_list_mem->ldCount; memset(sc->ld_ids, 0xff, MAX_LOGICAL_DRIVES_EXT); for (ld_index = 0; ld_index < ld_list_mem->ldCount; ld_index++) { + ids = ld_list_mem->ldList[ld_index].ref.ld_context.targetId; + drv_tgt_id = ids + MRSAS_MAX_PD; if (ld_list_mem->ldList[ld_index].state != 0) { - ids = ld_list_mem->ldList[ld_index].ref.ld_context.targetId; sc->ld_ids[ids] = ld_list_mem->ldList[ld_index].ref.ld_context.targetId; + if (sc->target_list[drv_tgt_id].target_id == + 0xffff) + mrsas_add_target(sc, drv_tgt_id); + } else { + if (sc->target_list[drv_tgt_id].target_id != + 0xffff) + mrsas_remove_target(sc, + drv_tgt_id); } } + do_ocr = 0; } dcmd_timeout: Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:02:44 2018 (r342064) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:03:28 2018 (r342065) @@ -740,6 +740,7 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest #define MR_DCMD_SYSTEM_PD_MAP_GET_INFO 0x0200e102 #define MR_DCMD_PD_MFI_TASK_MGMT 0x0200e100 +#define MR_DCMD_PD_GET_INFO 0x02020000 #define MRSAS_MAX_PD_CHANNELS 1 #define MRSAS_MAX_LD_CHANNELS 1 #define MRSAS_MAX_DEV_PER_CHANNEL 256 @@ -2944,6 +2945,210 @@ typedef struct _MRSAS_DRV_PCI_INFORMATION { u_int8_t reserved2[28]; } MRSAS_DRV_PCI_INFORMATION, *PMRSAS_DRV_PCI_INFORMATION; +typedef enum _MR_PD_TYPE { + UNKNOWN_DRIVE = 0, + PARALLEL_SCSI = 1, + SAS_PD = 2, + SATA_PD = 3, + FC_PD = 4, + NVME_PD = 5, +} MR_PD_TYPE; + +typedef union _MR_PD_REF { + struct { + u_int16_t deviceId; + u_int16_t seqNum; + } mrPdRef; + u_int32_t ref; +} MR_PD_REF; + +/* + * define the DDF Type bit structure + */ +union MR_PD_DDF_TYPE { + struct { + union { + struct { + u_int16_t forcedPDGUID:1; + u_int16_t inVD:1; + u_int16_t isGlobalSpare:1; + u_int16_t isSpare:1; + u_int16_t isForeign:1; + u_int16_t reserved:7; + u_int16_t intf:4; + } pdType; + u_int16_t type; + }; + u_int16_t reserved; + } ddf; + struct { + u_int32_t reserved; + } nonDisk; + u_int32_t type; +} __packed; + +/* + * defines the progress structure + */ +union MR_PROGRESS { + struct { + u_int16_t progress; + union { + u_int16_t elapsedSecs; + u_int16_t elapsedSecsForLastPercent; + }; + } mrProgress; + u_int32_t w; +} __packed; + +/* + * defines the physical drive progress structure + */ +struct MR_PD_PROGRESS { + struct { + u_int32_t rbld:1; + u_int32_t patrol:1; + u_int32_t clear:1; + u_int32_t copyBack:1; + u_int32_t erase:1; + u_int32_t locate:1; + u_int32_t reserved:26; + } active; + union MR_PROGRESS rbld; + union MR_PROGRESS patrol; + union { + union MR_PROGRESS clear; + union MR_PROGRESS erase; + }; + + struct { + u_int32_t rbld:1; + u_int32_t patrol:1; + u_int32_t clear:1; + u_int32_t copyBack:1; + u_int32_t erase:1; + u_int32_t reserved:27; + } pause; + + union MR_PROGRESS reserved[3]; +} __packed; + + +struct mrsas_pd_info { + MR_PD_REF ref; + u_int8_t inquiryData[96]; + u_int8_t vpdPage83[64]; + + u_int8_t notSupported; + u_int8_t scsiDevType; + + union { + u_int8_t connectedPortBitmap; + u_int8_t connectedPortNumbers; + }; + + u_int8_t deviceSpeed; + u_int32_t mediaErrCount; + u_int32_t otherErrCount; + u_int32_t predFailCount; + u_int32_t lastPredFailEventSeqNum; + + u_int16_t fwState; + u_int8_t disabledForRemoval; + u_int8_t linkSpeed; + union MR_PD_DDF_TYPE state; + + struct { + u_int8_t count; + u_int8_t isPathBroken:4; + u_int8_t reserved3:3; + u_int8_t widePortCapable:1; + + u_int8_t connectorIndex[2]; + u_int8_t reserved[4]; + u_int64_t sasAddr[2]; + u_int8_t reserved2[16]; + } pathInfo; + + u_int64_t rawSize; + u_int64_t nonCoercedSize; + u_int64_t coercedSize; + u_int16_t enclDeviceId; + u_int8_t enclIndex; + + union { + u_int8_t slotNumber; + u_int8_t enclConnectorIndex; + }; + + struct MR_PD_PROGRESS progInfo; + u_int8_t badBlockTableFull; + u_int8_t unusableInCurrentConfig; + u_int8_t vpdPage83Ext[64]; + u_int8_t powerState; + u_int8_t enclPosition; + u_int32_t allowedOps; + u_int16_t copyBackPartnerId; + u_int16_t enclPartnerDeviceId; + struct { + u_int16_t fdeCapable:1; + u_int16_t fdeEnabled:1; + u_int16_t secured:1; + u_int16_t locked:1; + u_int16_t foreign:1; + u_int16_t needsEKM:1; + u_int16_t reserved:10; + } security; + u_int8_t mediaType; + u_int8_t notCertified; + u_int8_t bridgeVendor[8]; + u_int8_t bridgeProductIdentification[16]; + u_int8_t bridgeProductRevisionLevel[4]; + u_int8_t satBridgeExists; + + u_int8_t interfaceType; + u_int8_t temperature; + u_int8_t emulatedBlockSize; + u_int16_t userDataBlockSize; + u_int16_t reserved2; + + struct { + u_int32_t piType:3; + u_int32_t piFormatted:1; + u_int32_t piEligible:1; + u_int32_t NCQ:1; + u_int32_t WCE:1; + u_int32_t commissionedSpare:1; + u_int32_t emergencySpare:1; + u_int32_t ineligibleForSSCD:1; + u_int32_t ineligibleForLd:1; + u_int32_t useSSEraseType:1; + u_int32_t wceUnchanged:1; + u_int32_t supportScsiUnmap:1; + u_int32_t reserved:18; + } properties; + + u_int64_t shieldDiagCompletionTime; + u_int8_t shieldCounter; + + u_int8_t linkSpeedOther; + u_int8_t reserved4[2]; + + struct { + u_int32_t bbmErrCountSupported:1; + u_int32_t bbmErrCount:31; + } bbmErr; + + u_int8_t reserved1[512-428]; +} __packed; + +struct mrsas_target { + u_int16_t target_id; + u_int32_t queue_depth; + u_int8_t interface_type; + u_int32_t max_io_size_kb; +} __packed; + /******************************************************************* * per-instance data ********************************************************************/ @@ -3066,10 +3271,14 @@ struct mrsas_softc { bus_addr_t raidmap_phys_addr[2]; bus_dma_tag_t mficmd_frame_tag; bus_dma_tag_t mficmd_sense_tag; + bus_addr_t evt_detail_phys_addr; bus_dma_tag_t evt_detail_tag; bus_dmamap_t evt_detail_dmamap; struct mrsas_evt_detail *evt_detail_mem; - bus_addr_t evt_detail_phys_addr; + bus_addr_t pd_info_phys_addr; + bus_dma_tag_t pd_info_tag; + bus_dmamap_t pd_info_dmamap; + struct mrsas_pd_info *pd_info_mem; struct mrsas_ctrl_info *ctrl_info; bus_dma_tag_t ctlr_info_tag; bus_dmamap_t ctlr_info_dmamap; @@ -3094,6 +3303,7 @@ struct mrsas_softc { bus_addr_t el_info_phys_addr; struct mrsas_pd_list pd_list[MRSAS_MAX_PD]; struct mrsas_pd_list local_pd_list[MRSAS_MAX_PD]; + struct mrsas_target target_list[MRSAS_MAX_TM_TARGETS]; u_int8_t ld_ids[MRSAS_MAX_LD_IDS]; struct taskqueue *ev_tq; struct task ev_task; From owner-svn-src-head@freebsd.org Fri Dec 14 08:04:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08762132443A; Fri, 14 Dec 2018 08:04:18 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AF0F591AEB; Fri, 14 Dec 2018 08:04:17 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 829F52C6E5; Fri, 14 Dec 2018 08:04:17 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE84HUm087960; Fri, 14 Dec 2018 08:04:17 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE84Gis087956; Fri, 14 Dec 2018 08:04:16 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140804.wBE84Gis087956@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:04:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342066 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342066 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AF0F591AEB X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.82)[-0.818,0]; NEURAL_HAM_SHORT(-0.73)[-0.725,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:04:18 -0000 Author: kadesai Date: Fri Dec 14 08:04:16 2018 New Revision: 342066 URL: https://svnweb.freebsd.org/changeset/base/342066 Log: This patch will add support for NVME PRPs creation by driver for fastpath capable IOs. NVME specification supports specific type of scatter gather list called as PRP (Physical Region Page) for IO data buffers. Since NVME drive is connected behind SAS3.5 tri-mode adapter, MegaRAID driver/firmware has to convert OS SGLs in native NVMe PRP format. For IOs sent to firmware, MegaRAID firmware does this job of OS SGLs to PRP translation and send PRPs to backend NVME device. For fastpath IOs, driver will do this OS SGLs to PRP translation. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h head/sys/dev/mrsas/mrsas_cam.c head/sys/dev/mrsas/mrsas_fp.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:03:28 2018 (r342065) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:04:16 2018 (r342066) @@ -451,6 +451,12 @@ mrsas_setup_sysctl(struct mrsas_softc *sc) OID_AUTO, "stream detection", CTLFLAG_RW, &sc->drv_stream_detection, 0, "Disable/Enable Stream detection. "); + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "prp_count", CTLFLAG_RD, + &sc->prp_count.val_rdonly, 0, "Number of IOs for which PRPs are built"); + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "SGE holes", CTLFLAG_RD, + &sc->sge_holes.val_rdonly, 0, "Number of IOs with holes in SGEs"); } /* @@ -899,6 +905,8 @@ mrsas_attach(device_t dev) mrsas_atomic_set(&sc->fw_outstanding, 0); mrsas_atomic_set(&sc->target_reset_outstanding, 0); + mrsas_atomic_set(&sc->prp_count, 0); + mrsas_atomic_set(&sc->sge_holes, 0); sc->io_cmds_highwater = 0; @@ -2266,7 +2274,7 @@ mrsas_init_fw(struct mrsas_softc *sc) u_int32_t max_sectors_1; u_int32_t max_sectors_2; u_int32_t tmp_sectors; - u_int32_t scratch_pad_2, scratch_pad_3; + u_int32_t scratch_pad_2, scratch_pad_3, scratch_pad_4; int msix_enable = 0; int fw_msix_count = 0; int i, j; @@ -2350,6 +2358,15 @@ mrsas_init_fw(struct mrsas_softc *sc) return (1); } + if (sc->is_ventura) { + scratch_pad_4 = mrsas_read_reg(sc, offsetof(mrsas_reg_set, + outbound_scratch_pad_4)); + if ((scratch_pad_4 & MR_NVME_PAGE_SIZE_MASK) >= MR_DEFAULT_NVME_PAGE_SHIFT) + sc->nvme_page_size = 1 << (scratch_pad_4 & MR_NVME_PAGE_SIZE_MASK); + + device_printf(sc->mrsas_dev, "NVME page size\t: (%d)\n", sc->nvme_page_size); + } + /* Allocate internal commands for pass-thru */ if (mrsas_alloc_mfi_cmds(sc) != SUCCESS) { device_printf(sc->mrsas_dev, "Allocate MFI cmd failed.\n"); @@ -2652,6 +2669,7 @@ mrsas_ioc_init(struct mrsas_softc *sc) IOCInitMsg->ReplyDescriptorPostQueueAddress = sc->reply_desc_phys_addr; IOCInitMsg->SystemRequestFrameBaseAddress = sc->io_request_phys_addr; IOCInitMsg->HostMSIxVectors = (sc->msix_vectors > 0 ? sc->msix_vectors : 0); + IOCInitMsg->HostPageSize = MR_DEFAULT_NVME_PAGE_SHIFT; init_frame = (struct mrsas_init_frame *)sc->ioc_init_mem; init_frame->cmd = MFI_CMD_INIT; Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:03:28 2018 (r342065) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:04:16 2018 (r342066) @@ -694,7 +694,7 @@ typedef struct _MPI2_IOC_INIT_REQUEST { u_int16_t HeaderVersion; /* 0x0E */ u_int32_t Reserved5; /* 0x10 */ u_int16_t Reserved6; /* 0x14 */ - u_int8_t Reserved7; /* 0x16 */ + u_int8_t HostPageSize; /* 0x16 */ u_int8_t HostMSIxVectors; /* 0x17 */ u_int16_t Reserved8; /* 0x18 */ u_int16_t SystemRequestFrameSize; /* 0x1A */ @@ -763,7 +763,7 @@ Mpi2IOCInitRequest_t, MPI2_POINTER pMpi2IOCInitRequest typedef struct _MR_DEV_HANDLE_INFO { u_int16_t curDevHdl; u_int8_t validHandles; - u_int8_t reserved; + u_int8_t interfaceType; u_int16_t devHandle[2]; } MR_DEV_HANDLE_INFO; @@ -1017,6 +1017,7 @@ struct IO_REQUEST_INFO { u_int16_t ldTgtId; u_int8_t isRead; u_int16_t devHandle; + u_int8_t pdInterface; u_int64_t pdBlock; u_int8_t fpOkForIo; u_int8_t IoforUnevenSpan; @@ -1164,6 +1165,22 @@ typedef struct _MR_FW_RAID_MAP_DYNAMIC { #define IEEE_SGE_FLAGS_CHAIN_ELEMENT (0x80) #define IEEE_SGE_FLAGS_END_OF_LIST (0x40) +/* Few NVME flags defines*/ +#define MPI2_SGE_FLAGS_SHIFT (0x02) +#define IEEE_SGE_FLAGS_FORMAT_MASK (0xC0) +#define IEEE_SGE_FLAGS_FORMAT_IEEE (0x00) +#define IEEE_SGE_FLAGS_FORMAT_PQI (0x01) +#define IEEE_SGE_FLAGS_FORMAT_NVME (0x02) +#define IEEE_SGE_FLAGS_FORMAT_AHCI (0x03) + + +#define MPI26_IEEE_SGE_FLAGS_NSF_MASK (0x1C) +#define MPI26_IEEE_SGE_FLAGS_NSF_MPI_IEEE (0x00) +#define MPI26_IEEE_SGE_FLAGS_NSF_PQI (0x04) +#define MPI26_IEEE_SGE_FLAGS_NSF_NVME_PRP (0x08) +#define MPI26_IEEE_SGE_FLAGS_NSF_AHCI_PRDT (0x0C) +#define MPI26_IEEE_SGE_FLAGS_NSF_NVME_SGL (0x10) + union desc_value { u_int64_t word; struct { @@ -1227,9 +1244,8 @@ typedef struct _mrsas_register_set { u_int32_t outbound_scratch_pad; /* 00B0h */ u_int32_t outbound_scratch_pad_2; /* 00B4h */ u_int32_t outbound_scratch_pad_3; /* 00B8h */ + u_int32_t outbound_scratch_pad_4; /* 00BCh */ - u_int32_t reserved_4; /* 00BCh */ - u_int32_t inbound_low_queue_port; /* 00C0h */ u_int32_t inbound_high_queue_port; /* 00C4h */ @@ -1678,6 +1694,7 @@ struct mrsas_mpt_cmd { struct mrsas_mpt_cmd *peer_cmd; bool callout_owner; TAILQ_ENTRY(mrsas_mpt_cmd) next; + u_int8_t pdInterface; }; /* @@ -3149,6 +3166,10 @@ struct mrsas_target { u_int32_t max_io_size_kb; } __packed; +#define MR_NVME_PAGE_SIZE_MASK 0x000000FF +#define MR_DEFAULT_NVME_PAGE_SIZE 4096 +#define MR_DEFAULT_NVME_PAGE_SHIFT 12 + /******************************************************************* * per-instance data ********************************************************************/ @@ -3287,6 +3308,8 @@ struct mrsas_softc { u_int32_t max_sectors_per_req; u_int32_t disableOnlineCtrlReset; mrsas_atomic_t fw_outstanding; + mrsas_atomic_t prp_count; + mrsas_atomic_t sge_holes; u_int32_t mrsas_debug; u_int32_t mrsas_io_timeout; @@ -3331,6 +3354,7 @@ struct mrsas_softc { u_int32_t new_map_sz; u_int32_t drv_map_sz; + u_int32_t nvme_page_size; boolean_t is_ventura; boolean_t msix_combined; u_int16_t maxRaidMapSize; Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:03:28 2018 (r342065) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 08:04:16 2018 (r342066) @@ -105,6 +105,14 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, static int32_t mrsas_startio(struct mrsas_softc *sc, struct cam_sim *sim, union ccb *ccb); + +static boolean_t mrsas_is_prp_possible(struct mrsas_mpt_cmd *cmd, + bus_dma_segment_t *segs, int nsegs); +static void mrsas_build_ieee_sgl(struct mrsas_mpt_cmd *cmd, + bus_dma_segment_t *segs, int nseg); +static void mrsas_build_prp_nvme(struct mrsas_mpt_cmd *cmd, + bus_dma_segment_t *segs, int nseg); + struct mrsas_mpt_cmd *mrsas_get_mpt_cmd(struct mrsas_softc *sc); MRSAS_REQUEST_DESCRIPTOR_UNION * mrsas_get_request_desc(struct mrsas_softc *sc, u_int16_t index); @@ -1145,6 +1153,7 @@ mrsas_setup_io(struct mrsas_softc *sc, struct mrsas_mp cmd->request_desc->SCSIIO.DevHandle = io_info.devHandle; io_request->DevHandle = io_info.devHandle; + cmd->pdInterface = io_info.pdInterface; } else { /* Not FP IO */ io_request->RaidContext.raid_context.timeoutValue = map_ptr->raidMap.fpPdIoTimeoutSec; @@ -1268,6 +1277,8 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs io_request->RaidContext.raid_context.regLockRowLBA = 0; io_request->RaidContext.raid_context.regLockLength = 0; + cmd->pdInterface = sc->target_list[device_id].interface_type; + /* If FW supports PD sequence number */ if (sc->use_seqnum_jbod_fp && sc->pd_list[device_id].driveType == 0x00) { @@ -1366,6 +1377,72 @@ mrsas_build_syspdio(struct mrsas_softc *sc, struct mrs } /* + * mrsas_is_prp_possible: This function will tell whether PRPs should be built or not + * sc: Adapter instance soft state + * cmd: MPT command frame pointer + * nsesg: Number of OS SGEs + * + * This function will check whether IO is qualified to build PRPs + * return: true: if PRP should be built + * false: if IEEE SGLs should be built + */ +static boolean_t mrsas_is_prp_possible(struct mrsas_mpt_cmd *cmd, + bus_dma_segment_t *segs, int nsegs) +{ + struct mrsas_softc *sc = cmd->sc; + int i; + u_int32_t data_length = 0; + bool build_prp = false; + u_int32_t mr_nvme_pg_size; + + mr_nvme_pg_size = max(sc->nvme_page_size, MR_DEFAULT_NVME_PAGE_SIZE); + data_length = cmd->length; + + if (data_length > (mr_nvme_pg_size * 5)) + build_prp = true; + else if ((data_length > (mr_nvme_pg_size * 4)) && + (data_length <= (mr_nvme_pg_size * 5))) { + /* check if 1st SG entry size is < residual beyond 4 pages */ + if ((segs[0].ds_len) < (data_length - (mr_nvme_pg_size * 4))) + build_prp = true; + } + + /*check for SGE holes here*/ + for (i = 0; i < nsegs; i++) { + /* check for mid SGEs */ + if ((i != 0) && (i != (nsegs - 1))) { + if ((segs[i].ds_addr % mr_nvme_pg_size) || + (segs[i].ds_len % mr_nvme_pg_size)) { + build_prp = false; + mrsas_atomic_inc(&sc->sge_holes); + break; + } + } + + /* check for first SGE*/ + if ((nsegs > 1) && (i == 0)) { + if ((segs[i].ds_addr + segs[i].ds_len) % mr_nvme_pg_size) { + build_prp = false; + mrsas_atomic_inc(&sc->sge_holes); + break; + } + } + + /* check for Last SGE*/ + if ((nsegs > 1) && (i == (nsegs - 1))) { + if (segs[i].ds_addr % mr_nvme_pg_size) { + build_prp = false; + mrsas_atomic_inc(&sc->sge_holes); + break; + } + } + + } + + return build_prp; +} + +/* * mrsas_map_request: Map and load data * input: Adapter instance soft state * Pointer to command packet @@ -1427,42 +1504,21 @@ mrsas_unmap_request(struct mrsas_softc *sc, struct mrs } } -/* - * mrsas_data_load_cb: Callback entry point - * input: Pointer to command packet as argument - * Pointer to segment - * Number of segments Error - * - * This is the callback function of the bus dma map load. It builds the SG - * list. +/** + * mrsas_build_ieee_sgl - Prepare IEEE SGLs + * @sc: Adapter soft state + * @segs: OS SGEs pointers + * @nseg: Number of OS SGEs + * @cmd: Fusion command frame + * return: void */ -static void -mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) +static void mrsas_build_ieee_sgl(struct mrsas_mpt_cmd *cmd, bus_dma_segment_t *segs, int nseg) { - struct mrsas_mpt_cmd *cmd = (struct mrsas_mpt_cmd *)arg; struct mrsas_softc *sc = cmd->sc; MRSAS_RAID_SCSI_IO_REQUEST *io_request; pMpi25IeeeSgeChain64_t sgl_ptr; int i = 0, sg_processed = 0; - if (error) { - cmd->error_code = error; - device_printf(sc->mrsas_dev, "mrsas_data_load_cb: error=%d\n", error); - if (error == EFBIG) { - cmd->ccb_ptr->ccb_h.status = CAM_REQ_TOO_BIG; - return; - } - } - if (cmd->flags & MRSAS_DIR_IN) - bus_dmamap_sync(cmd->sc->data_tag, cmd->data_dmamap, - BUS_DMASYNC_PREREAD); - if (cmd->flags & MRSAS_DIR_OUT) - bus_dmamap_sync(cmd->sc->data_tag, cmd->data_dmamap, - BUS_DMASYNC_PREWRITE); - if (nseg > sc->max_num_sge) { - device_printf(sc->mrsas_dev, "SGE count is too large or 0.\n"); - return; - } io_request = cmd->io_request; sgl_ptr = (pMpi25IeeeSgeChain64_t)&io_request->SGL; @@ -1484,12 +1540,12 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, sgl_ptr++; sg_processed = i + 1; if ((sg_processed == (sc->max_sge_in_main_msg - 1)) && - (nseg > sc->max_sge_in_main_msg)) { + (nseg > sc->max_sge_in_main_msg)) { pMpi25IeeeSgeChain64_t sg_chain; if (sc->mrsas_gen3_ctrl || sc->is_ventura) { if ((cmd->io_request->IoFlags & MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) - != MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) + != MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) cmd->io_request->ChainOffset = sc->chain_offset_io_request; else cmd->io_request->ChainOffset = 0; @@ -1506,6 +1562,166 @@ mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, } } } +} + +/** + * mrsas_build_prp_nvme - Prepare PRPs(Physical Region Page)- SGLs specific to NVMe drives only + * @sc: Adapter soft state + * @segs: OS SGEs pointers + * @nseg: Number of OS SGEs + * @cmd: Fusion command frame + * return: void + */ +static void mrsas_build_prp_nvme(struct mrsas_mpt_cmd *cmd, bus_dma_segment_t *segs, int nseg) +{ + struct mrsas_softc *sc = cmd->sc; + int sge_len, offset, num_prp_in_chain = 0; + pMpi25IeeeSgeChain64_t main_chain_element, ptr_first_sgl, sgl_ptr; + u_int64_t *ptr_sgl, *ptr_sgl_phys; + u_int64_t sge_addr; + u_int32_t page_mask, page_mask_result, i = 0; + u_int32_t first_prp_len; + int data_len = cmd->length; + u_int32_t mr_nvme_pg_size = max(sc->nvme_page_size, + MR_DEFAULT_NVME_PAGE_SIZE); + + sgl_ptr = (pMpi25IeeeSgeChain64_t) &cmd->io_request->SGL; + /* + * NVMe has a very convoluted PRP format. One PRP is required + * for each page or partial page. We need to split up OS SG + * entries if they are longer than one page or cross a page + * boundary. We also have to insert a PRP list pointer entry as + * the last entry in each physical page of the PRP list. + * + * NOTE: The first PRP "entry" is actually placed in the first + * SGL entry in the main message in IEEE 64 format. The 2nd + * entry in the main message is the chain element, and the rest + * of the PRP entries are built in the contiguous PCIe buffer. + */ + page_mask = mr_nvme_pg_size - 1; + ptr_sgl = (u_int64_t *) cmd->chain_frame; + ptr_sgl_phys = (u_int64_t *) cmd->chain_frame_phys_addr;; + + /* Build chain frame element which holds all PRPs except first*/ + main_chain_element = (pMpi25IeeeSgeChain64_t) + ((u_int8_t *)sgl_ptr + sizeof(MPI25_IEEE_SGE_CHAIN64)); + + + main_chain_element->Address = (u_int64_t) ptr_sgl_phys; + main_chain_element->NextChainOffset = 0; + main_chain_element->Flags = IEEE_SGE_FLAGS_CHAIN_ELEMENT | + IEEE_SGE_FLAGS_SYSTEM_ADDR | + MPI26_IEEE_SGE_FLAGS_NSF_NVME_PRP; + + + /* Build first PRP, SGE need not to be PAGE aligned*/ + ptr_first_sgl = sgl_ptr; + sge_addr = segs[i].ds_addr; + sge_len = segs[i].ds_len; + i++; + + offset = (u_int32_t) (sge_addr & page_mask); + first_prp_len = mr_nvme_pg_size - offset; + + ptr_first_sgl->Address = sge_addr; + ptr_first_sgl->Length = first_prp_len; + + data_len -= first_prp_len; + + if (sge_len > first_prp_len) { + sge_addr += first_prp_len; + sge_len -= first_prp_len; + } else if (sge_len == first_prp_len) { + sge_addr = segs[i].ds_addr; + sge_len = segs[i].ds_len; + i++; + } + + for (;;) { + + offset = (u_int32_t) (sge_addr & page_mask); + + /* Put PRP pointer due to page boundary*/ + page_mask_result = (uintptr_t)(ptr_sgl + 1) & page_mask; + if (!page_mask_result) { + device_printf(sc->mrsas_dev, "BRCM: Put prp pointer as we are at page boundary" + " ptr_sgl: 0x%p\n", ptr_sgl); + ptr_sgl_phys++; + *ptr_sgl = (uintptr_t)ptr_sgl_phys; + ptr_sgl++; + num_prp_in_chain++; + } + + *ptr_sgl = sge_addr; + ptr_sgl++; + ptr_sgl_phys++; + num_prp_in_chain++; + + + sge_addr += mr_nvme_pg_size; + sge_len -= mr_nvme_pg_size; + data_len -= mr_nvme_pg_size; + + if (data_len <= 0) + break; + + if (sge_len > 0) + continue; + + sge_addr = segs[i].ds_addr; + sge_len = segs[i].ds_len; + i++; + } + + main_chain_element->Length = num_prp_in_chain * sizeof(u_int64_t); + mrsas_atomic_inc(&sc->prp_count); + +} + +/* + * mrsas_data_load_cb: Callback entry point to build SGLs + * input: Pointer to command packet as argument + * Pointer to segment + * Number of segments Error + * + * This is the callback function of the bus dma map load. It builds SG list + */ +static void +mrsas_data_load_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) +{ + struct mrsas_mpt_cmd *cmd = (struct mrsas_mpt_cmd *)arg; + struct mrsas_softc *sc = cmd->sc; + boolean_t build_prp = false; + + if (error) { + cmd->error_code = error; + device_printf(sc->mrsas_dev, "mrsas_data_load_cb_prp: error=%d\n", error); + if (error == EFBIG) { + cmd->ccb_ptr->ccb_h.status = CAM_REQ_TOO_BIG; + return; + } + } + if (cmd->flags & MRSAS_DIR_IN) + bus_dmamap_sync(cmd->sc->data_tag, cmd->data_dmamap, + BUS_DMASYNC_PREREAD); + if (cmd->flags & MRSAS_DIR_OUT) + bus_dmamap_sync(cmd->sc->data_tag, cmd->data_dmamap, + BUS_DMASYNC_PREWRITE); + if (nseg > sc->max_num_sge) { + device_printf(sc->mrsas_dev, "SGE count is too large or 0.\n"); + return; + } + + /* Check for whether PRPs should be built or IEEE SGLs*/ + if ((cmd->io_request->IoFlags & MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) && + (cmd->pdInterface == NVME_PD)) + build_prp = mrsas_is_prp_possible(cmd, segs, nseg); + + if (build_prp == true) + mrsas_build_prp_nvme(cmd, segs, nseg); + else + mrsas_build_ieee_sgl(cmd, segs, nseg); + cmd->sge_count = nseg; } Modified: head/sys/dev/mrsas/mrsas_fp.c ============================================================================== --- head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:03:28 2018 (r342065) +++ head/sys/dev/mrsas/mrsas_fp.c Fri Dec 14 08:04:16 2018 (r342066) @@ -219,6 +219,12 @@ MR_PdDevHandleGet(u_int32_t pd, MR_DRV_RAID_MAP_ALL * return map->raidMap.devHndlInfo[pd].curDevHdl; } +static u_int8_t MR_PdInterfaceTypeGet(u_int32_t pd, MR_DRV_RAID_MAP_ALL *map) +{ + return map->raidMap.devHndlInfo[pd].interfaceType; +} + + static u_int16_t MR_ArPdGet(u_int32_t ar, u_int32_t arm, MR_DRV_RAID_MAP_ALL * map) { @@ -927,6 +933,8 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in u_int8_t retval = TRUE; u_int64_t *pdBlock = &io_info->pdBlock; u_int16_t *pDevHandle = &io_info->devHandle; + u_int8_t *pPdInterface = &io_info->pdInterface; + u_int32_t logArm, rowMod, armQ, arm; /* Get row and span from io_info for Uneven Span IO. */ @@ -952,6 +960,7 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in if (pd != MR_PD_INVALID) { *pDevHandle = MR_PdDevHandleGet(pd, map); + *pPdInterface = MR_PdInterfaceTypeGet(pd, map); /* get second pd also for raid 1/10 fast path writes */ if ((raid->level == 1) && !io_info->isRead) { r1_alt_pd = MR_ArPdGet(arRef, physArm + 1, map); @@ -966,8 +975,10 @@ mr_spanset_get_phy_params(struct mrsas_softc *sc, u_in pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE; else if (raid->level == 1) { pd = MR_ArPdGet(arRef, physArm + 1, map); - if (pd != MR_PD_INVALID) + if (pd != MR_PD_INVALID) { *pDevHandle = MR_PdDevHandleGet(pd, map); + *pPdInterface = MR_PdInterfaceTypeGet(pd, map); + } } } @@ -1622,6 +1633,7 @@ mrsas_get_updated_dev_handle(struct mrsas_softc *sc, /* get best new arm */ arm_pd = mrsas_get_best_arm_pd(sc, lbInfo, io_info); devHandle = MR_PdDevHandleGet(arm_pd, drv_map); + io_info->pdInterface = MR_PdInterfaceTypeGet(arm_pd, drv_map); mrsas_atomic_inc(&lbInfo->scsi_pending_cmds[arm_pd]); return devHandle; @@ -1653,6 +1665,7 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, int error_code = 0; u_int64_t *pdBlock = &io_info->pdBlock; u_int16_t *pDevHandle = &io_info->devHandle; + u_int8_t *pPdInterface = &io_info->pdInterface; u_int32_t rowMod, armQ, arm, logArm; row = mega_div64_32(stripRow, raid->rowDataSize); @@ -1691,6 +1704,7 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, if (pd != MR_PD_INVALID) { /* Get dev handle from Pd */ *pDevHandle = MR_PdDevHandleGet(pd, map); + *pPdInterface = MR_PdInterfaceTypeGet(pd, map); /* get second pd also for raid 1/10 fast path writes */ if ((raid->level == 1) && !io_info->isRead) { r1_alt_pd = MR_ArPdGet(arRef, physArm + 1, map); @@ -1706,9 +1720,11 @@ MR_GetPhyParams(struct mrsas_softc *sc, u_int32_t ld, else if (raid->level == 1) { /* Get Alternate Pd. */ pd = MR_ArPdGet(arRef, physArm + 1, map); - if (pd != MR_PD_INVALID) + if (pd != MR_PD_INVALID) { /* Get dev handle from Pd. */ *pDevHandle = MR_PdDevHandleGet(pd, map); + *pPdInterface = MR_PdInterfaceTypeGet(pd, map); + } } } From owner-svn-src-head@freebsd.org Fri Dec 14 08:05:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCA57132450B; Fri, 14 Dec 2018 08:05:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7353591C75; Fri, 14 Dec 2018 08:05:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 660332C6E6; Fri, 14 Dec 2018 08:05:02 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE852ai088044; Fri, 14 Dec 2018 08:05:02 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE851lf088042; Fri, 14 Dec 2018 08:05:01 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140805.wBE851lf088042@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:05:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342067 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342067 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7353591C75 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.72)[-0.715,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:05:03 -0000 Author: kadesai Date: Fri Dec 14 08:05:01 2018 New Revision: 342067 URL: https://svnweb.freebsd.org/changeset/base/342067 Log: Change IOC INIT wait time to 180 secs to keep it inline with timeout used by internal DCMDs. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c head/sys/dev/mrsas/mrsas.h Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:04:16 2018 (r342066) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:05:01 2018 (r342067) @@ -2641,7 +2641,7 @@ mrsas_ioc_init(struct mrsas_softc *sc) struct mrsas_init_frame *init_frame; pMpi2IOCInitRequest_t IOCInitMsg; MRSAS_REQUEST_DESCRIPTOR_UNION req_desc; - u_int8_t max_wait = MRSAS_IOC_INIT_WAIT_TIME; + u_int8_t max_wait = MRSAS_INTERNAL_CMD_WAIT_TIME; bus_addr_t phys_addr; int i, retcode = 0; u_int32_t scratch_pad_2; Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:04:16 2018 (r342066) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:05:01 2018 (r342067) @@ -2287,7 +2287,6 @@ struct mrsas_ctrl_info { */ #define MRSAS_RESET_WAIT_TIME 180 #define MRSAS_INTERNAL_CMD_WAIT_TIME 180 -#define MRSAS_IOC_INIT_WAIT_TIME 60 #define MRSAS_RESET_NOTICE_INTERVAL 5 #define MRSAS_IOCTL_CMD 0 #define MRSAS_DEFAULT_CMD_TIMEOUT 90 From owner-svn-src-head@freebsd.org Fri Dec 14 08:05:50 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78BBE13245E2; Fri, 14 Dec 2018 08:05:50 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1ED2591DFE; Fri, 14 Dec 2018 08:05:50 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04C4D2C6EA; Fri, 14 Dec 2018 08:05:50 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE85n1p088123; Fri, 14 Dec 2018 08:05:49 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE85nEo088122; Fri, 14 Dec 2018 08:05:49 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140805.wBE85nEo088122@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:05:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342068 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342068 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1ED2591DFE X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.72)[-0.715,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:05:50 -0000 Author: kadesai Date: Fri Dec 14 08:05:49 2018 New Revision: 342068 URL: https://svnweb.freebsd.org/changeset/base/342068 Log: This patch will increase debug level as current logging level has very minimal prints and even few important messages will not get logged. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.c Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:05:01 2018 (r342067) +++ head/sys/dev/mrsas/mrsas.c Fri Dec 14 08:05:49 2018 (r342068) @@ -471,7 +471,8 @@ mrsas_get_tunables(struct mrsas_softc *sc) char tmpstr[80]; /* XXX default to some debugging for now */ - sc->mrsas_debug = MRSAS_FAULT; + sc->mrsas_debug = + (MRSAS_FAULT | MRSAS_OCR | MRSAS_INFO | MRSAS_TRACE | MRSAS_AEN); sc->mrsas_io_timeout = MRSAS_IO_TIMEOUT; sc->mrsas_fw_fault_check_delay = 1; sc->reset_count = 0; From owner-svn-src-head@freebsd.org Fri Dec 14 08:06:40 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20F2F13246AD; Fri, 14 Dec 2018 08:06:40 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BD22391F5A; Fri, 14 Dec 2018 08:06:39 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AFA002C6EC; Fri, 14 Dec 2018 08:06:39 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE86ddd088198; Fri, 14 Dec 2018 08:06:39 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE86dqC088197; Fri, 14 Dec 2018 08:06:39 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812140806.wBE86dqC088197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 08:06:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342069 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342069 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BD22391F5A X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.54 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.83)[-0.828,0]; NEURAL_HAM_SHORT(-0.72)[-0.715,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:06:40 -0000 Author: kadesai Date: Fri Dec 14 08:06:39 2018 New Revision: 342069 URL: https://svnweb.freebsd.org/changeset/base/342069 Log: Driver version upgrade 07.708.02.00-fbsd Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas.h Modified: head/sys/dev/mrsas/mrsas.h ============================================================================== --- head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:05:49 2018 (r342068) +++ head/sys/dev/mrsas/mrsas.h Fri Dec 14 08:06:39 2018 (r342069) @@ -110,7 +110,7 @@ __FBSDID("$FreeBSD$"); */ #define BYTE_ALIGNMENT 1 #define MRSAS_MAX_NAME_LENGTH 32 -#define MRSAS_VERSION "06.712.04.00-fbsd" +#define MRSAS_VERSION "07.708.02.00-fbsd" #define MRSAS_ULONG_MAX 0xFFFFFFFFFFFFFFFF #define MRSAS_DEFAULT_TIMEOUT 0x14 /* Temporarily set */ #define DONE 0 From owner-svn-src-head@freebsd.org Fri Dec 14 08:44:04 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C48C413257AE for ; Fri, 14 Dec 2018 08:44:03 +0000 (UTC) (envelope-from mw@semihalf.com) Received: from mail-it1-x12b.google.com (mail-it1-x12b.google.com [IPv6:2607:f8b0:4864:20::12b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8FB88933BC for ; Fri, 14 Dec 2018 08:44:02 +0000 (UTC) (envelope-from mw@semihalf.com) Received: by mail-it1-x12b.google.com with SMTP id h193so8176645ita.5 for ; Fri, 14 Dec 2018 00:44:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=aaE2yZ6Pj+MW6RclUYAS+Yze8gVMNSwgNIT8CI/ksvk=; b=plv3AQ6qu9/oG4TBPZojd8mhcD8FF89cSG7b0sA+pP1kY+/n7JHSx77OhZUSHVlAG7 y8RmlIoQylPYZ9zIpxOMC+g6ye0qTvLtXpaI6O1tEVb4fVH/dKnIFfToTsTyik9maLmN Dh/FfAMSFLQHtIO6moVb0rcWQ0wJkcYJ5Iwg3J1gVcZWgEpY2OTlmvQ51LlNHG8/znUs 8S6Viz8MbFUyWZ/5sS95wsLhjPzETfA2XE+reUkU2g4BjObCB9USYiNj2BNtbuiVLv1o DbviEd8jNaK7mvwTz2S9cLRrU2xn12gNRwFyDOgCg796L1LKT98v/xSN/9/DomUyRde+ dezw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=aaE2yZ6Pj+MW6RclUYAS+Yze8gVMNSwgNIT8CI/ksvk=; b=gXhq50nks30+Dt5EMD1i7qCJ7rurup63uOLU/fnCSUbWK0F9XZ6AuOn8BbEx9qtcLu hy/NPL0p7I2W93TSnBDkPPsXbE2T8p0SqX8k2XlTtdFM5NNUryGVioLpbmamVaRSetBP cdei6vd/jltQmekklp8orMCdHuyyCM1OBDn5e9d0aHSvJ/v3gtiyG6U8kobKp8K1m1/y YWT1p/zOw+mrfxEDkmidhMg8wqjRJs3yYXncJW5Fopbw1xRBj92W9lWQjfpV+PyUdu6k qgCkmQByg+rDKrR6pNvc3ji/Ivqc8uQ0BITmyzHC8btP2W9TeExuSmFowuq8nczA1B9d 9R0w== X-Gm-Message-State: AA+aEWYVFlR5MtgWPekvXB2gMVttSlilaMZtiATx77OLw2Ge1GoSrS3O LXAO4C0YhW4vzbvk+AUtxS3XxjNfUdPulhcbIzUqwKLj X-Google-Smtp-Source: AFSGD/UGFWCaSY5ZgZmhcRglWGYR6Gc7fsdXA51eXq2A2k+XWXnzvcs/4iSmlHUD/7D6PL8EvpETlCr5r8MqKtgrnrQ= X-Received: by 2002:a02:5ec9:: with SMTP id h192mr1835025jab.112.1544777041763; Fri, 14 Dec 2018 00:44:01 -0800 (PST) MIME-Version: 1.0 References: <201812122233.wBCMX5hg025508@repo.freebsd.org> In-Reply-To: <201812122233.wBCMX5hg025508@repo.freebsd.org> From: Marcin Wojtas Date: Fri, 14 Dec 2018 09:43:49 +0100 Message-ID: Subject: Re: svn commit: r342020 - in head/sys: arm/mv arm64/conf conf To: manu@freebsd.org Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 8FB88933BC X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=plv3AQ6q X-Spamd-Result: default: False [-4.14 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; R_DKIM_ALLOW(-0.20)[semihalf-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[semihalf.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[semihalf-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[ASPMX2.GOOGLEMAIL.com,ALT2.ASPMX.L.GOOGLE.com,ASPMX.L.GOOGLE.com,ALT1.ASPMX.L.GOOGLE.com,ASPMX3.GOOGLEMAIL.com]; RCVD_IN_DNSWL_NONE(0.00)[b.2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; IP_SCORE(-1.90)[ip: (-6.51), ipnet: 2607:f8b0::/32(-1.60), asn: 15169(-1.32), country: US(-0.09)] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 08:44:04 -0000 Hi Manu, Imo the new driver is adding code duplication - please check sys/arm/mv/armada/thermal.c. It contains support for armada38x (which has BTW exactly same coefficients as CP110). Basically it would be enough to add 2 structures for ap806 and cp110. Best regards, Marcin=C5=9Br., 12 gru 2018 o 23:33 Emmanuel Vadot napis= a=C5=82(a): > > Author: manu > Date: Wed Dec 12 22:33:05 2018 > New Revision: 342020 > URL: https://svnweb.freebsd.org/changeset/base/342020 > > Log: > mv_thermal: Add thermal driver for AP806 and CP110 thermal sensor > > Sponsored by: Rubicon Communications, LLC ("Netgate") > > Added: > head/sys/arm/mv/mv_thermal.c (contents, props changed) > Modified: > head/sys/arm64/conf/GENERIC > head/sys/conf/files.arm64 > > Added: head/sys/arm/mv/mv_thermal.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 > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/sys/arm/mv/mv_thermal.c Wed Dec 12 22:33:05 2018 (= r342020) > @@ -0,0 +1,381 @@ > +/*- > + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD > + * > + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) > + * > + * 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 th= e > + * documentation and/or other materials provided with the distributio= n. > + * > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AN= D > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PU= RPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIAB= LE > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUE= NTIAL > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOO= DS > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, S= TRICT > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY= WAY > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O= F > + * SUCH DAMAGE. > + * > + * $FreeBSD$ > + */ > + > +#include > +__FBSDID("$FreeBSD$"); > + > +#include > +#include > +#include > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > +#include > +#include > + > +#include > + > +#include > +#include > + > +#define CONTROL0 0x00 > +#define CONTROL0_TSEN_START (1 << 0) > +#define CONTROL0_TSEN_RESET (1 << 1) > +#define CONTROL0_TSEN_EN (1 << 2) > +#define CONTROL0_CHANNEL_SHIFT 13 > +#define CONTROL0_CHANNEL_MASK 0xF > +#define CONTROL0_OSR_SHIFT 24 > +#define CONTROL0_OSR_MAX 3 /* OSR =3D 512 * 4uS =3D = ~2mS */ > +#define CONTROL0_MODE_SHIFT 30 > +#define CONTROL0_MODE_EXTERNAL 0x2 > +#define CONTROL0_MODE_MASK 0x3 > + > +#define CONTROL1 0x04 > +/* This doesn't seems to work */ > +#define CONTROL1_TSEN_SENS_SHIFT 21 > +#define CONTROL1_TSEN_SENS_MASK 0x7 > + > +#define STATUS 0x00 > +#define STATUS_TEMP_MASK 0x3FF > + > +enum mv_thermal_type { > + MV_AP806 =3D 1, > + MV_CP110, > +}; > + > +struct mv_thermal_config { > + enum mv_thermal_type type; > + int ncpus; > + int64_t calib_mul; > + int64_t calib_add; > + int64_t calib_div; > + uint32_t valid_mask; > + bool signed_value; > +}; > + > +struct mv_thermal_softc { > + device_t dev; > + struct resource *res[2]; > + struct mtx mtx; > + > + struct mv_thermal_config *config; > + int cur_sensor; > +}; > + > +static struct mv_thermal_config mv_ap806_config =3D { > + .type =3D MV_AP806, > + .ncpus =3D 4, > + .calib_mul =3D 423, > + .calib_add =3D -150000, > + .calib_div =3D 100, > + .valid_mask =3D (1 << 16), > + .signed_value =3D true, > +}; > + > +static struct mv_thermal_config mv_cp110_config =3D { > + .type =3D MV_CP110, > + .calib_mul =3D 2000096, > + .calib_add =3D 1172499100, > + .calib_div =3D 420100, > + .valid_mask =3D (1 << 10), > + .signed_value =3D false, > +}; > + > +static struct resource_spec mv_thermal_res_spec[] =3D { > + { SYS_RES_MEMORY, 0, RF_ACTIVE }, > + { SYS_RES_MEMORY, 1, RF_ACTIVE }, > + { -1, 0 } > +}; > + > +static struct ofw_compat_data compat_data[] =3D { > + {"marvell,armada-ap806-thermal", (uintptr_t) &mv_ap806_config}, > + {"marvell,armada-cp110-thermal", (uintptr_t) &mv_cp110_config}, > + {NULL, 0} > +}; > + > +#define RD_STA(sc, reg) bus_read_4((sc)->res[0], (reg)) > +#define WR_STA(sc, reg, val) bus_write_4((sc)->res[0], (reg), = (val)) > +#define RD_CON(sc, reg) bus_read_4((sc)->res[1], (reg)) > +#define WR_CON(sc, reg, val) bus_write_4((sc)->res[1], (reg), = (val)) > + > +static inline int32_t sign_extend(uint32_t value, int index) > +{ > + uint8_t shift; > + > + shift =3D 31 - index; > + return ((int32_t)(value << shift) >> shift); > +} > + > +static int > +mv_thermal_wait_sensor(struct mv_thermal_softc *sc) > +{ > + uint32_t reg; > + uint32_t timeout; > + > + timeout =3D 100000; > + while (--timeout > 0) { > + reg =3D RD_STA(sc, STATUS); > + if ((reg & sc->config->valid_mask) =3D=3D sc->config->val= id_mask) > + break; > + DELAY(100); > + } > + if (timeout =3D=3D 0) { > + return (ETIMEDOUT); > + } > + > + return (0); > +} > + > +static int > +mv_thermal_select_sensor(struct mv_thermal_softc *sc, int sensor) > +{ > + uint32_t reg; > + > + if (sc->cur_sensor =3D=3D sensor) > + return (0); > + > + /* Stop the current reading and reset the module */ > + reg =3D RD_CON(sc, CONTROL0); > + reg &=3D ~(CONTROL0_TSEN_START | CONTROL0_TSEN_EN); > + WR_CON(sc, CONTROL0, reg); > + > + /* Switch to the selected sensor */ > + /* > + * NOTE : Datasheet says to use CONTROL1 for selecting > + * but when doing so the sensors >0 are never ready > + * Do what Linux does using undocumented bits in CONTROL0 > + */ > + /* This reset automatically to the sensor 0 */ > + reg &=3D ~(CONTROL0_MODE_MASK << CONTROL0_MODE_SHIFT); > + if (sensor) { > + /* Select external sensor */ > + reg |=3D CONTROL0_MODE_EXTERNAL << CONTROL0_MODE_SHIFT; > + reg &=3D ~(CONTROL0_CHANNEL_MASK << CONTROL0_CHANNEL_SHIF= T); > + reg |=3D (sensor - 1) << CONTROL0_CHANNEL_SHIFT; > + } > + WR_CON(sc, CONTROL0, reg); > + sc->cur_sensor =3D sensor; > + > + /* Start the reading */ > + reg =3D RD_CON(sc, CONTROL0); > + reg |=3D CONTROL0_TSEN_START | CONTROL0_TSEN_EN; > + WR_CON(sc, CONTROL0, reg); > + > + return (mv_thermal_wait_sensor(sc)); > +} > + > +static int > +mv_thermal_read_sensor(struct mv_thermal_softc *sc, int sensor, int *tem= p) > +{ > + uint32_t reg; > + int64_t sample, rv; > + > + rv =3D mv_thermal_select_sensor(sc, sensor); > + if (rv !=3D 0) > + return (rv); > + > + reg =3D RD_STA(sc, STATUS) & STATUS_TEMP_MASK; > + > + if (sc->config->signed_value) > + sample =3D sign_extend(reg, fls(STATUS_TEMP_MASK) - 1); > + else > + sample =3D reg; > + > + *temp =3D ((sample * sc->config->calib_mul) - sc->config->calib_a= dd) / > + sc->config->calib_div; > + > + return (0); > +} > + > +static int > +ap806_init(struct mv_thermal_softc *sc) > +{ > + uint32_t reg; > + > + /* Start the temp capture/conversion */ > + reg =3D RD_CON(sc, CONTROL0); > + reg &=3D ~CONTROL0_TSEN_RESET; > + reg |=3D CONTROL0_TSEN_START | CONTROL0_TSEN_EN; > + > + /* Sample every ~2ms */ > + reg |=3D CONTROL0_OSR_MAX << CONTROL0_OSR_SHIFT; > + > + WR_CON(sc, CONTROL0, reg); > + > + /* Since we just started the module wait for the sensor to be rea= dy */ > + mv_thermal_wait_sensor(sc); > + > + return (0); > +} > + > +static int > +cp110_init(struct mv_thermal_softc *sc) > +{ > + uint32_t reg; > + > + reg =3D RD_CON(sc, CONTROL1); > + reg &=3D (1 << 7); > + reg |=3D (1 << 8); > + WR_CON(sc, CONTROL1, reg); > + > + /* Sample every ~2ms */ > + reg =3D RD_CON(sc, CONTROL0); > + reg |=3D CONTROL0_OSR_MAX << CONTROL0_OSR_SHIFT; > + WR_CON(sc, CONTROL0, reg); > + > + return (0); > +} > + > +static int > +mv_thermal_sysctl(SYSCTL_HANDLER_ARGS) > +{ > + struct mv_thermal_softc *sc; > + device_t dev =3D arg1; > + int sensor =3D arg2; > + int val =3D 0; > + > + sc =3D device_get_softc(dev); > + mtx_lock(&(sc)->mtx); > + > + if (mv_thermal_read_sensor(sc, sensor, &val) =3D=3D 0) { > + /* Convert to Kelvin */ > + val =3D val + 2732; > + } else { > + device_printf(dev, "Timeout waiting for sensor\n"); > + } > + > + mtx_unlock(&(sc)->mtx); > + return sysctl_handle_opaque(oidp, &val, sizeof(val), req); > +} > + > +static int > +mv_thermal_probe(device_t dev) > +{ > + > + if (!ofw_bus_status_okay(dev)) > + return (ENXIO); > + > + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data =3D=3D = 0) > + return (ENXIO); > + > + device_set_desc(dev, "Marvell Thermal Sensor Controller"); > + return (BUS_PROBE_DEFAULT); > +} > + > +static int > +mv_thermal_attach(device_t dev) > +{ > + struct mv_thermal_softc *sc; > + struct sysctl_ctx_list *ctx; > + struct sysctl_oid_list *oid; > + char name[255]; > + char desc[255]; > + int i; > + > + sc =3D device_get_softc(dev); > + sc->dev =3D dev; > + > + sc->config =3D (struct mv_thermal_config *)ofw_bus_search_compati= ble(dev, compat_data)->ocd_data; > + > + mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); > + > + if (bus_alloc_resources(dev, mv_thermal_res_spec, sc->res) !=3D 0= ) { > + device_printf(dev, "cannot allocate resources for device\= n"); > + return (ENXIO); > + } > + > + sc->cur_sensor =3D -1; > + switch (sc->config->type) { > + case MV_AP806: > + ap806_init(sc); > + break; > + case MV_CP110: > + cp110_init(sc); > + break; > + } > + > + ctx =3D device_get_sysctl_ctx(dev); > + oid =3D SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); > + /* There is always at least one sensor */ > + SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, "internal", > + CTLTYPE_INT | CTLFLAG_RD, > + dev, 0, mv_thermal_sysctl, > + "IK", > + "Internal Temperature"); > + > + for (i =3D 0; i < sc->config->ncpus; i++) { > + snprintf(name, sizeof(name), "cpu%d", i); > + snprintf(desc, sizeof(desc), "CPU%d Temperature", i); > + SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, name, > + CTLTYPE_INT | CTLFLAG_RD, > + dev, i + 1, mv_thermal_sysctl, > + "IK", > + desc); > + } > + > + return (0); > +} > + > +static int > +mv_thermal_detach(device_t dev) > +{ > + struct mv_thermal_softc *sc; > + > + sc =3D device_get_softc(dev); > + > + bus_release_resources(dev, mv_thermal_res_spec, sc->res); > + > + return (0); > +} > + > +static device_method_t mv_thermal_methods[] =3D { > + /* Device interface */ > + DEVMETHOD(device_probe, mv_thermal_probe), > + DEVMETHOD(device_attach, mv_thermal_attach), > + DEVMETHOD(device_detach, mv_thermal_detach), > + > + DEVMETHOD_END > +}; > + > +static devclass_t mv_thermal_devclass; > + > +static driver_t mv_thermal_driver =3D { > + "mv_thermal", > + mv_thermal_methods, > + sizeof(struct mv_thermal_softc), > +}; > + > +DRIVER_MODULE(mv_thermal, simplebus, mv_thermal_driver, > + mv_thermal_devclass, 0, 0); > > Modified: head/sys/arm64/conf/GENERIC > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=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/arm64/conf/GENERIC Wed Dec 12 22:24:30 2018 (r342019) > +++ head/sys/arm64/conf/GENERIC Wed Dec 12 22:33:05 2018 (r342020) > @@ -240,6 +240,7 @@ device aw_sid # Allwinner Secur= e ID EFUSE > > # Thermal sensors > device aw_thermal # Allwinner Thermal Sensor Controller > +device mv_thermal # Marvell Thermal Sensor Controller > > # SPI > device spibus > > Modified: head/sys/conf/files.arm64 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=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/files.arm64 Wed Dec 12 22:24:30 2018 (r342019) > +++ head/sys/conf/files.arm64 Wed Dec 12 22:33:05 2018 (r342020) > @@ -95,6 +95,7 @@ arm/mv/mv_cp110_icu.c optional = mv_cp110_icu fdt > arm/mv/mv_ap806_gicp.c optional mv_ap806_gicp fd= t > arm/mv/mv_ap806_clock.c optional SOC_MARV= ELL_8K fdt > arm/mv/mv_cp110_clock.c optional SOC_MARV= ELL_8K fdt > +arm/mv/mv_thermal.c optional SOC_MARVELL_8K m= v_thermal fdt > arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt > arm/xilinx/uart_dev_cdnc.c optional uart soc_xilinx_= zynq > arm64/acpica/acpi_machdep.c optional acpi > From owner-svn-src-head@freebsd.org Fri Dec 14 09:24:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9452213279AD; Fri, 14 Dec 2018 09:24:15 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E6E3E94EA0; Fri, 14 Dec 2018 09:24:14 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9CDB2D4B1; Fri, 14 Dec 2018 09:24:14 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE9OEtr030196; Fri, 14 Dec 2018 09:24:14 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE9OE0Q030195; Fri, 14 Dec 2018 09:24:14 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201812140924.wBE9OE0Q030195@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Fri, 14 Dec 2018 09:24:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342071 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 342071 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E6E3E94EA0 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.55 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.69)[-0.692,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 09:24:15 -0000 Author: eugen Date: Fri Dec 14 09:24:14 2018 New Revision: 342071 URL: https://svnweb.freebsd.org/changeset/base/342071 Log: ng_bpf.4: fix EXAMPLES: do not activate promiscuous mode PR: 102719 MFC after: 3 days Modified: head/share/man/man4/ng_bpf.4 Modified: head/share/man/man4/ng_bpf.4 ============================================================================== --- head/share/man/man4/ng_bpf.4 Fri Dec 14 09:06:56 2018 (r342070) +++ head/share/man/man4/ng_bpf.4 Fri Dec 14 09:24:14 2018 (r342071) @@ -156,7 +156,7 @@ INHOOK="hook1" MATCHHOOK="hook2" NOTMATCHHOOK="hook3" -BPFPROG=$( tcpdump -s 8192 -ddd ${PATTERN} | \\ +BPFPROG=$( tcpdump -s 8192 -p -ddd ${PATTERN} | \\ ( read len ; \\ echo -n "bpf_prog_len=$len" ; \\ echo -n "bpf_prog=[" ; \\ From owner-svn-src-head@freebsd.org Fri Dec 14 09:28:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 520451327C00; Fri, 14 Dec 2018 09:28:21 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E867D950A1; Fri, 14 Dec 2018 09:28:20 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC4942D4B8; Fri, 14 Dec 2018 09:28:20 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE9SKkm030417; Fri, 14 Dec 2018 09:28:20 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE9SKeQ030414; Fri, 14 Dec 2018 09:28:20 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201812140928.wBE9SKeQ030414@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 14 Dec 2018 09:28:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342072 - head/sys/dev/ichwd X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/dev/ichwd X-SVN-Commit-Revision: 342072 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E867D950A1 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.55 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.85)[-0.853,0]; NEURAL_HAM_SHORT(-0.70)[-0.700,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 09:28:21 -0000 Author: avg Date: Fri Dec 14 09:28:20 2018 New Revision: 342072 URL: https://svnweb.freebsd.org/changeset/base/342072 Log: ichwd: add support for clearing No Reboot bit in TCOv4 This is based on a patch developed by Tetsuya Uemura . Many thanks! Submitted by: Tetsuya Uemura (earlier version) Tested by: Tetsuya Uemura MFC after: 2 weeks Modified: head/sys/dev/ichwd/ichwd.c head/sys/dev/ichwd/ichwd.h Modified: head/sys/dev/ichwd/ichwd.c ============================================================================== --- head/sys/dev/ichwd/ichwd.c Fri Dec 14 09:24:14 2018 (r342071) +++ head/sys/dev/ichwd/ichwd.c Fri Dec 14 09:28:20 2018 (r342072) @@ -76,6 +76,10 @@ __FBSDID("$FreeBSD$"); #include +#include +#include +#include + static struct ichwd_device ichwd_devices[] = { { DEVICEID_82801AA, "Intel 82801AA watchdog timer", 1, 1 }, { DEVICEID_82801AB, "Intel 82801AB watchdog timer", 1, 1 }, @@ -309,6 +313,8 @@ static devclass_t ichwd_devclass; /* NB: TCO version 3 devices use the gcs_res resource for the PMC register. */ #define ichwd_read_pmc_4(sc, off) \ bus_read_4((sc)->gcs_res, (off)) +#define ichwd_read_gc_4(sc, off) \ + bus_read_4((sc)->gc_res, (off)) #define ichwd_write_tco_1(sc, off, val) \ bus_write_1((sc)->tco_res, (off), (val)) @@ -323,6 +329,8 @@ static devclass_t ichwd_devclass; /* NB: TCO version 3 devices use the gcs_res resource for the PMC register. */ #define ichwd_write_pmc_4(sc, off, val) \ bus_write_4((sc)->gcs_res, (off), (val)) +#define ichwd_write_gc_4(sc, off, val) \ + bus_write_4((sc)->gc_res, (off), (val)) #define ichwd_verbose_printf(dev, ...) \ do { \ @@ -495,9 +503,12 @@ ichwd_clear_noreboot(struct ichwd_softc *sc) rc = EIO; break; case 4: - /* - * TODO. This needs access to a hidden PCI device at 31:1. - */ + status = ichwd_read_gc_4(sc, 0); + status &= ~SMB_GC_NO_REBOOT; + ichwd_write_gc_4(sc, 0, status); + status = ichwd_read_gc_4(sc, 0); + if (status & SMB_GC_NO_REBOOT) + rc = EIO; break; default: ichwd_verbose_printf(sc->device, @@ -611,6 +622,7 @@ ichwd_identify(driver_t *driver, device_t parent) struct ichwd_device *id_p; device_t ich, smb; device_t dev; + uint64_t base_address64; uint32_t base_address; uint32_t ctl; int rc; @@ -671,6 +683,33 @@ ichwd_identify(driver_t *driver, device_t parent) "Can not set TCO v%d I/O resource (err = %d)\n", id_p->tco_version, rc); } + + /* + * Unhide Primary to Sideband Bridge (P2SB) PCI device, so that + * we can discover the base address of Private Configuration + * Space via the bridge's BAR. + * Then hide back the bridge. + */ + pci_cfgregwrite(0, 31, 1, 0xe1, 0, 1); + base_address64 = pci_cfgregread(0, 31, 1, SBREG_BAR + 4, 4); + base_address64 <<= 32; + base_address64 |= pci_cfgregread(0, 31, 1, SBREG_BAR, 4); + base_address64 &= ~0xfull; + pci_cfgregwrite(0, 31, 1, 0xe1, 1, 1); + + /* + * No Reboot bit is in General Control register, offset 0xc, + * within the SMBus target port, ID 0xc6. + */ + base_address64 += PCR_REG_OFF(SMB_PORT_ID, SMB_GC_REG); + rc = bus_set_resource(dev, SYS_RES_MEMORY, 1, base_address64, + SMB_GC_SIZE); + if (rc != 0) { + ichwd_verbose_printf(dev, + "Can not set TCO v%d PCR I/O resource (err = %d)\n", + id_p->tco_version, rc); + } + break; default: ichwd_verbose_printf(dev, @@ -723,6 +762,18 @@ ichwd_smb_attach(device_t dev) return (ENXIO); } + /* + * Allocate General Control I/O register in PCH + * Private Configuration Space (PCR). + */ + sc->gc_rid = 1; + sc->gc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->gc_rid, + RF_ACTIVE | RF_SHAREABLE); + if (sc->gc_res == NULL) { + device_printf(dev, "unable to reserve hidden P2SB registers\n"); + return (ENXIO); + } + /* Get ACPI base address. */ isab = device_get_parent(device_get_parent(dev)); pmdev = pci_find_dbsf(pci_get_domain(isab), pci_get_bus(isab), 31, 2); @@ -737,7 +788,7 @@ ichwd_smb_attach(device_t dev) } /* Allocate SMI control I/O register space. */ - sc->smi_rid = 1; + sc->smi_rid = 2; sc->smi_res = bus_alloc_resource(dev, SYS_RES_IOPORT, &sc->smi_rid, acpi_base + SMI_BASE, acpi_base + SMI_BASE + SMI_LEN - 1, SMI_LEN, RF_ACTIVE | RF_SHAREABLE); @@ -854,6 +905,9 @@ ichwd_attach(device_t dev) if (sc->gcs_res != NULL) bus_release_resource(sc->ich, SYS_RES_MEMORY, sc->gcs_rid, sc->gcs_res); + if (sc->gc_res != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, + sc->gc_rid, sc->gc_res); return (ENXIO); } @@ -889,6 +943,9 @@ ichwd_detach(device_t dev) if (sc->gcs_res) bus_release_resource(sc->ich, SYS_RES_MEMORY, sc->gcs_rid, sc->gcs_res); + if (sc->gc_res) + bus_release_resource(dev, SYS_RES_MEMORY, sc->gc_rid, + sc->gc_res); return (0); } Modified: head/sys/dev/ichwd/ichwd.h ============================================================================== --- head/sys/dev/ichwd/ichwd.h Fri Dec 14 09:24:14 2018 (r342071) +++ head/sys/dev/ichwd/ichwd.h Fri Dec 14 09:28:20 2018 (r342072) @@ -59,6 +59,9 @@ struct ichwd_softc { int gcs_rid; struct resource *gcs_res; + int gc_rid; + struct resource *gc_res; + eventhandler_tag ev_tag; }; @@ -299,6 +302,18 @@ struct ichwd_softc { #define ICH_TCOCTL 0x54 /* TCO Control */ #define ICH_TCOCTL_TCO_BASE_EN 0x0100 /* TCO Base decoding enabled */ #define ICH_TCOCTL_TCO_BASE_LOCK 0x0001 /* TCOBASE is locked */ + +/* + * Configuration registers in Sunrise Point and Lewisburg PCH Sideband Interface + * and Private Configuration Space. + */ +#define SBREG_BAR 0x10 +#define SMB_GC_REG 0xc +#define SMB_GC_SIZE 4 +#define SMB_GC_NO_REBOOT 0x2 +#define SMB_PORT_ID 0xc6 +#define PCR_PORTID_SHIFT 16 +#define PCR_REG_OFF(pid, reg) (((pid) << PCR_PORTID_SHIFT) | (reg)) /* register names and locations (relative to PMBASE) */ #define SMI_BASE 0x30 /* base address for SMI registers */ From owner-svn-src-head@freebsd.org Fri Dec 14 09:30:44 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 122C41327E0C; Fri, 14 Dec 2018 09:30:44 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ACAF59554F; Fri, 14 Dec 2018 09:30:43 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9F4D02D4C8; Fri, 14 Dec 2018 09:30:43 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBE9Uh2q030676; Fri, 14 Dec 2018 09:30:43 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBE9UhIt030673; Fri, 14 Dec 2018 09:30:43 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201812140930.wBE9UhIt030673@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 14 Dec 2018 09:30:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342073 - head/sys/dev/ichwd X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/dev/ichwd X-SVN-Commit-Revision: 342073 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: ACAF59554F X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.55 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.69)[-0.692,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 09:30:44 -0000 Author: avg Date: Fri Dec 14 09:30:43 2018 New Revision: 342073 URL: https://svnweb.freebsd.org/changeset/base/342073 Log: ichwd: add Sunrise Point-LP ID Submitted by: Tetsuya Uemura Tested by: Tetsuya Uemura MFC after: 2 weeks Relnotes: maybe Modified: head/sys/dev/ichwd/ichwd.c head/sys/dev/ichwd/ichwd.h Modified: head/sys/dev/ichwd/ichwd.c ============================================================================== --- head/sys/dev/ichwd/ichwd.c Fri Dec 14 09:28:20 2018 (r342072) +++ head/sys/dev/ichwd/ichwd.c Fri Dec 14 09:30:43 2018 (r342073) @@ -295,6 +295,7 @@ static struct ichwd_device ichwd_devices[] = { static struct ichwd_device ichwd_smb_devices[] = { { DEVICEID_LEWISBURG_SMB, "Lewisburg watchdog timer", 10, 4 }, + { DEVICEID_SRPTLP_SMB, "Sunrise Point-LP watchdog timer", 10, 4 }, { 0, NULL, 0, 0 }, }; Modified: head/sys/dev/ichwd/ichwd.h ============================================================================== --- head/sys/dev/ichwd/ichwd.h Fri Dec 14 09:28:20 2018 (r342072) +++ head/sys/dev/ichwd/ichwd.h Fri Dec 14 09:30:43 2018 (r342073) @@ -276,6 +276,7 @@ struct ichwd_softc { #define DEVICEID_WCPT_LP7 0x9cc7 #define DEVICEID_WCPT_LP9 0x9cc9 #define DEVICEID_LEWISBURG_SMB 0xa1a3 +#define DEVICEID_SRPTLP_SMB 0x9d23 /* ICH LPC Interface Bridge Registers (ICH5 and older) */ #define ICH_GEN_STA 0xd4 From owner-svn-src-head@freebsd.org Fri Dec 14 10:26:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA3F91329DC0; Fri, 14 Dec 2018 10:26:18 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5AFFB979AF; Fri, 14 Dec 2018 10:26:18 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4C0BF2DEF6; Fri, 14 Dec 2018 10:26:18 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEAQIRO062581; Fri, 14 Dec 2018 10:26:18 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEAQI0H062580; Fri, 14 Dec 2018 10:26:18 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812141026.wBEAQI0H062580@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 14 Dec 2018 10:26:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342076 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 342076 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5AFFB979AF X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.55 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.69)[-0.692,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 10:26:18 -0000 Author: manu Date: Fri Dec 14 10:26:17 2018 New Revision: 342076 URL: https://svnweb.freebsd.org/changeset/base/342076 Log: arm64: allwinner: axp81x: Fix double invertion for FLDO1 This fix booting on A64 boards when disabling the unused regulators at boot. We did disable all the regulator handled by register 0x13 which of course contain mandatory regulators for the board to be up. Reported by: Mark Millard X-MFC-With: r340848 Modified: head/sys/arm/allwinner/axp81x.c Modified: head/sys/arm/allwinner/axp81x.c ============================================================================== --- head/sys/arm/allwinner/axp81x.c Fri Dec 14 10:25:22 2018 (r342075) +++ head/sys/arm/allwinner/axp81x.c Fri Dec 14 10:26:17 2018 (r342076) @@ -437,7 +437,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .id = AXP8XX_REG_ID_FLDO1, .name = "fldo1", .enable_reg = AXP_POWERCTL3, - .enable_mask = (uint8_t) ~AXP_POWERCTL3_FLDO1, + .enable_mask = (uint8_t) AXP_POWERCTL3_FLDO1, .enable_value = AXP_POWERCTL3_FLDO1, .voltage_min = 700, .voltage_max = 1450, From owner-svn-src-head@freebsd.org Fri Dec 14 10:27:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C77D1329F5E; Fri, 14 Dec 2018 10:27:49 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.blih.net", Issuer "mail.blih.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 999FC97BCF; Fri, 14 Dec 2018 10:27:48 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) by mail.blih.net (OpenSMTPD) with ESMTP id 14231876; Fri, 14 Dec 2018 11:27:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=mail; bh=Ho+LrKzC36Bvt3mNF39nL84tVx8=; b=XlyC/UN303P5JilpgMHR5Z7pWHb4 nWbwq37L/qqUMEbgP3r7TyFNElMfujBoMbiQ5JKmzINjufp5B3ZLo6vCjWsIKXeN X5ICH6allxoVSatFTpbXq4F6SP8UvM5OnEKTYEiAkpapDU4iM7m2WNOWxKqiFvxw CgPJ/b1grRBqJsA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= mail; b=fluThiYP3+EsyzeAFiBPvvu3/DliFWQs4mVMmIshmsAKRbtSU7HE06eY 056Jv3U0u6fIDYGaj165J6Y9YPlFoFpo/KuMzZ7VL6kTsuhwH6TUaKbe72FaIj5S 7duoROSz0+1m7xcwfJ1TKING47D6YZqkcrj0KRuZfk+6ftiFuVw= Received: from skull.home.blih.net (ip-9.net-89-3-105.rev.numericable.fr [89.3.105.9]) by mail.blih.net (OpenSMTPD) with ESMTPSA id 5daeb2ed TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Fri, 14 Dec 2018 11:27:40 +0100 (CET) Date: Fri, 14 Dec 2018 11:27:40 +0100 From: Emmanuel Vadot To: Marcin Wojtas Cc: manu@freebsd.org, src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r342020 - in head/sys: arm/mv arm64/conf conf Message-Id: <20181214112740.a1b7899f964500fae8c6a6fe@bidouilliste.com> In-Reply-To: References: <201812122233.wBCMX5hg025508@repo.freebsd.org> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; amd64-portbld-freebsd13.0) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 999FC97BCF X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.99)[-0.989,0]; REPLY(-4.00)[] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 10:27:49 -0000 Hi Marcin, On Fri, 14 Dec 2018 09:43:49 +0100 Marcin Wojtas wrote: > Hi Manu, >=20 > Imo the new driver is adding code duplication - please check > sys/arm/mv/armada/thermal.c. It contains support for armada38x (which > has BTW exactly same coefficients as CP110). Basically it would be > enough to add 2 structures for ap806 and cp110. >=20 > Best regards, Oops, I somehow miss this driver when I added this one, I'll make the AP806 and CP110 work with this one and revert mine soon. Thanks for reporting. > Marcin?r., 12 gru 2018 o 23:33 Emmanuel Vadot napisa?(= a): > > > > Author: manu > > Date: Wed Dec 12 22:33:05 2018 > > New Revision: 342020 > > URL: https://svnweb.freebsd.org/changeset/base/342020 > > > > Log: > > mv_thermal: Add thermal driver for AP806 and CP110 thermal sensor > > > > Sponsored by: Rubicon Communications, LLC ("Netgate") > > > > Added: > > head/sys/arm/mv/mv_thermal.c (contents, props changed) > > Modified: > > head/sys/arm64/conf/GENERIC > > head/sys/conf/files.arm64 > > > > Added: head/sys/arm/mv/mv_thermal.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 > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/sys/arm/mv/mv_thermal.c Wed Dec 12 22:33:05 2018 = (r342020) > > @@ -0,0 +1,381 @@ > > +/*- > > + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD > > + * > > + * Copyright (c) 2018 Rubicon Communications, LLC (Netgate) > > + * > > + * 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 distribut= ion. > > + * > > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' = AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, T= HE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LI= ABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQ= UENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE G= OODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTIO= N) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,= STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN A= NY WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY= OF > > + * SUCH DAMAGE. > > + * > > + * $FreeBSD$ > > + */ > > + > > +#include > > +__FBSDID("$FreeBSD$"); > > + > > +#include > > +#include > > +#include > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#include > > +#include > > +#include > > + > > +#include > > + > > +#include > > +#include > > + > > +#define CONTROL0 0x00 > > +#define CONTROL0_TSEN_START (1 << 0) > > +#define CONTROL0_TSEN_RESET (1 << 1) > > +#define CONTROL0_TSEN_EN (1 << 2) > > +#define CONTROL0_CHANNEL_SHIFT 13 > > +#define CONTROL0_CHANNEL_MASK 0xF > > +#define CONTROL0_OSR_SHIFT 24 > > +#define CONTROL0_OSR_MAX 3 /* OSR =3D 512 * 4uS = =3D ~2mS */ > > +#define CONTROL0_MODE_SHIFT 30 > > +#define CONTROL0_MODE_EXTERNAL 0x2 > > +#define CONTROL0_MODE_MASK 0x3 > > + > > +#define CONTROL1 0x04 > > +/* This doesn't seems to work */ > > +#define CONTROL1_TSEN_SENS_SHIFT 21 > > +#define CONTROL1_TSEN_SENS_MASK 0x7 > > + > > +#define STATUS 0x00 > > +#define STATUS_TEMP_MASK 0x3FF > > + > > +enum mv_thermal_type { > > + MV_AP806 =3D 1, > > + MV_CP110, > > +}; > > + > > +struct mv_thermal_config { > > + enum mv_thermal_type type; > > + int ncpus; > > + int64_t calib_mul; > > + int64_t calib_add; > > + int64_t calib_div; > > + uint32_t valid_mask; > > + bool signed_value; > > +}; > > + > > +struct mv_thermal_softc { > > + device_t dev; > > + struct resource *res[2]; > > + struct mtx mtx; > > + > > + struct mv_thermal_config *config; > > + int cur_sensor; > > +}; > > + > > +static struct mv_thermal_config mv_ap806_config =3D { > > + .type =3D MV_AP806, > > + .ncpus =3D 4, > > + .calib_mul =3D 423, > > + .calib_add =3D -150000, > > + .calib_div =3D 100, > > + .valid_mask =3D (1 << 16), > > + .signed_value =3D true, > > +}; > > + > > +static struct mv_thermal_config mv_cp110_config =3D { > > + .type =3D MV_CP110, > > + .calib_mul =3D 2000096, > > + .calib_add =3D 1172499100, > > + .calib_div =3D 420100, > > + .valid_mask =3D (1 << 10), > > + .signed_value =3D false, > > +}; > > + > > +static struct resource_spec mv_thermal_res_spec[] =3D { > > + { SYS_RES_MEMORY, 0, RF_ACTIVE }, > > + { SYS_RES_MEMORY, 1, RF_ACTIVE }, > > + { -1, 0 } > > +}; > > + > > +static struct ofw_compat_data compat_data[] =3D { > > + {"marvell,armada-ap806-thermal", (uintptr_t) &mv_ap806_config}, > > + {"marvell,armada-cp110-thermal", (uintptr_t) &mv_cp110_config}, > > + {NULL, 0} > > +}; > > + > > +#define RD_STA(sc, reg) bus_read_4((sc)->res[0], (reg)) > > +#define WR_STA(sc, reg, val) bus_write_4((sc)->res[0], (reg)= , (val)) > > +#define RD_CON(sc, reg) bus_read_4((sc)->res[1], (reg)) > > +#define WR_CON(sc, reg, val) bus_write_4((sc)->res[1], (reg)= , (val)) > > + > > +static inline int32_t sign_extend(uint32_t value, int index) > > +{ > > + uint8_t shift; > > + > > + shift =3D 31 - index; > > + return ((int32_t)(value << shift) >> shift); > > +} > > + > > +static int > > +mv_thermal_wait_sensor(struct mv_thermal_softc *sc) > > +{ > > + uint32_t reg; > > + uint32_t timeout; > > + > > + timeout =3D 100000; > > + while (--timeout > 0) { > > + reg =3D RD_STA(sc, STATUS); > > + if ((reg & sc->config->valid_mask) =3D=3D sc->config->v= alid_mask) > > + break; > > + DELAY(100); > > + } > > + if (timeout =3D=3D 0) { > > + return (ETIMEDOUT); > > + } > > + > > + return (0); > > +} > > + > > +static int > > +mv_thermal_select_sensor(struct mv_thermal_softc *sc, int sensor) > > +{ > > + uint32_t reg; > > + > > + if (sc->cur_sensor =3D=3D sensor) > > + return (0); > > + > > + /* Stop the current reading and reset the module */ > > + reg =3D RD_CON(sc, CONTROL0); > > + reg &=3D ~(CONTROL0_TSEN_START | CONTROL0_TSEN_EN); > > + WR_CON(sc, CONTROL0, reg); > > + > > + /* Switch to the selected sensor */ > > + /* > > + * NOTE : Datasheet says to use CONTROL1 for selecting > > + * but when doing so the sensors >0 are never ready > > + * Do what Linux does using undocumented bits in CONTROL0 > > + */ > > + /* This reset automatically to the sensor 0 */ > > + reg &=3D ~(CONTROL0_MODE_MASK << CONTROL0_MODE_SHIFT); > > + if (sensor) { > > + /* Select external sensor */ > > + reg |=3D CONTROL0_MODE_EXTERNAL << CONTROL0_MODE_SHIFT; > > + reg &=3D ~(CONTROL0_CHANNEL_MASK << CONTROL0_CHANNEL_SH= IFT); > > + reg |=3D (sensor - 1) << CONTROL0_CHANNEL_SHIFT; > > + } > > + WR_CON(sc, CONTROL0, reg); > > + sc->cur_sensor =3D sensor; > > + > > + /* Start the reading */ > > + reg =3D RD_CON(sc, CONTROL0); > > + reg |=3D CONTROL0_TSEN_START | CONTROL0_TSEN_EN; > > + WR_CON(sc, CONTROL0, reg); > > + > > + return (mv_thermal_wait_sensor(sc)); > > +} > > + > > +static int > > +mv_thermal_read_sensor(struct mv_thermal_softc *sc, int sensor, int *t= emp) > > +{ > > + uint32_t reg; > > + int64_t sample, rv; > > + > > + rv =3D mv_thermal_select_sensor(sc, sensor); > > + if (rv !=3D 0) > > + return (rv); > > + > > + reg =3D RD_STA(sc, STATUS) & STATUS_TEMP_MASK; > > + > > + if (sc->config->signed_value) > > + sample =3D sign_extend(reg, fls(STATUS_TEMP_MASK) - 1); > > + else > > + sample =3D reg; > > + > > + *temp =3D ((sample * sc->config->calib_mul) - sc->config->calib= _add) / > > + sc->config->calib_div; > > + > > + return (0); > > +} > > + > > +static int > > +ap806_init(struct mv_thermal_softc *sc) > > +{ > > + uint32_t reg; > > + > > + /* Start the temp capture/conversion */ > > + reg =3D RD_CON(sc, CONTROL0); > > + reg &=3D ~CONTROL0_TSEN_RESET; > > + reg |=3D CONTROL0_TSEN_START | CONTROL0_TSEN_EN; > > + > > + /* Sample every ~2ms */ > > + reg |=3D CONTROL0_OSR_MAX << CONTROL0_OSR_SHIFT; > > + > > + WR_CON(sc, CONTROL0, reg); > > + > > + /* Since we just started the module wait for the sensor to be r= eady */ > > + mv_thermal_wait_sensor(sc); > > + > > + return (0); > > +} > > + > > +static int > > +cp110_init(struct mv_thermal_softc *sc) > > +{ > > + uint32_t reg; > > + > > + reg =3D RD_CON(sc, CONTROL1); > > + reg &=3D (1 << 7); > > + reg |=3D (1 << 8); > > + WR_CON(sc, CONTROL1, reg); > > + > > + /* Sample every ~2ms */ > > + reg =3D RD_CON(sc, CONTROL0); > > + reg |=3D CONTROL0_OSR_MAX << CONTROL0_OSR_SHIFT; > > + WR_CON(sc, CONTROL0, reg); > > + > > + return (0); > > +} > > + > > +static int > > +mv_thermal_sysctl(SYSCTL_HANDLER_ARGS) > > +{ > > + struct mv_thermal_softc *sc; > > + device_t dev =3D arg1; > > + int sensor =3D arg2; > > + int val =3D 0; > > + > > + sc =3D device_get_softc(dev); > > + mtx_lock(&(sc)->mtx); > > + > > + if (mv_thermal_read_sensor(sc, sensor, &val) =3D=3D 0) { > > + /* Convert to Kelvin */ > > + val =3D val + 2732; > > + } else { > > + device_printf(dev, "Timeout waiting for sensor\n"); > > + } > > + > > + mtx_unlock(&(sc)->mtx); > > + return sysctl_handle_opaque(oidp, &val, sizeof(val), req); > > +} > > + > > +static int > > +mv_thermal_probe(device_t dev) > > +{ > > + > > + if (!ofw_bus_status_okay(dev)) > > + return (ENXIO); > > + > > + if (ofw_bus_search_compatible(dev, compat_data)->ocd_data =3D= =3D 0) > > + return (ENXIO); > > + > > + device_set_desc(dev, "Marvell Thermal Sensor Controller"); > > + return (BUS_PROBE_DEFAULT); > > +} > > + > > +static int > > +mv_thermal_attach(device_t dev) > > +{ > > + struct mv_thermal_softc *sc; > > + struct sysctl_ctx_list *ctx; > > + struct sysctl_oid_list *oid; > > + char name[255]; > > + char desc[255]; > > + int i; > > + > > + sc =3D device_get_softc(dev); > > + sc->dev =3D dev; > > + > > + sc->config =3D (struct mv_thermal_config *)ofw_bus_search_compa= tible(dev, compat_data)->ocd_data; > > + > > + mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); > > + > > + if (bus_alloc_resources(dev, mv_thermal_res_spec, sc->res) !=3D= 0) { > > + device_printf(dev, "cannot allocate resources for devic= e\n"); > > + return (ENXIO); > > + } > > + > > + sc->cur_sensor =3D -1; > > + switch (sc->config->type) { > > + case MV_AP806: > > + ap806_init(sc); > > + break; > > + case MV_CP110: > > + cp110_init(sc); > > + break; > > + } > > + > > + ctx =3D device_get_sysctl_ctx(dev); > > + oid =3D SYSCTL_CHILDREN(device_get_sysctl_tree(dev)); > > + /* There is always at least one sensor */ > > + SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, "internal", > > + CTLTYPE_INT | CTLFLAG_RD, > > + dev, 0, mv_thermal_sysctl, > > + "IK", > > + "Internal Temperature"); > > + > > + for (i =3D 0; i < sc->config->ncpus; i++) { > > + snprintf(name, sizeof(name), "cpu%d", i); > > + snprintf(desc, sizeof(desc), "CPU%d Temperature", i); > > + SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, name, > > + CTLTYPE_INT | CTLFLAG_RD, > > + dev, i + 1, mv_thermal_sysctl, > > + "IK", > > + desc); > > + } > > + > > + return (0); > > +} > > + > > +static int > > +mv_thermal_detach(device_t dev) > > +{ > > + struct mv_thermal_softc *sc; > > + > > + sc =3D device_get_softc(dev); > > + > > + bus_release_resources(dev, mv_thermal_res_spec, sc->res); > > + > > + return (0); > > +} > > + > > +static device_method_t mv_thermal_methods[] =3D { > > + /* Device interface */ > > + DEVMETHOD(device_probe, mv_thermal_probe), > > + DEVMETHOD(device_attach, mv_thermal_attach), > > + DEVMETHOD(device_detach, mv_thermal_detach), > > + > > + DEVMETHOD_END > > +}; > > + > > +static devclass_t mv_thermal_devclass; > > + > > +static driver_t mv_thermal_driver =3D { > > + "mv_thermal", > > + mv_thermal_methods, > > + sizeof(struct mv_thermal_softc), > > +}; > > + > > +DRIVER_MODULE(mv_thermal, simplebus, mv_thermal_driver, > > + mv_thermal_devclass, 0, 0); > > > > Modified: head/sys/arm64/conf/GENERIC > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=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/arm64/conf/GENERIC Wed Dec 12 22:24:30 2018 (r34201= 9) > > +++ head/sys/arm64/conf/GENERIC Wed Dec 12 22:33:05 2018 (r34202= 0) > > @@ -240,6 +240,7 @@ device aw_sid # Allwinner Sec= ure ID EFUSE > > > > # Thermal sensors > > device aw_thermal # Allwinner Thermal Sensor Controller > > +device mv_thermal # Marvell Thermal Sensor Controller > > > > # SPI > > device spibus > > > > Modified: head/sys/conf/files.arm64 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=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/files.arm64 Wed Dec 12 22:24:30 2018 (r34201= 9) > > +++ head/sys/conf/files.arm64 Wed Dec 12 22:33:05 2018 (r34202= 0) > > @@ -95,6 +95,7 @@ arm/mv/mv_cp110_icu.c optiona= l mv_cp110_icu fdt > > arm/mv/mv_ap806_gicp.c optional mv_ap806_gicp = fdt > > arm/mv/mv_ap806_clock.c optional SOC_MA= RVELL_8K fdt > > arm/mv/mv_cp110_clock.c optional SOC_MA= RVELL_8K fdt > > +arm/mv/mv_thermal.c optional SOC_MARVELL_8K= mv_thermal fdt > > arm/mv/armada38x/armada38x_rtc.c optional mv_rtc fdt > > arm/xilinx/uart_dev_cdnc.c optional uart soc_xilin= x_zynq > > arm64/acpica/acpi_machdep.c optional acpi > > --=20 Emmanuel Vadot From owner-svn-src-head@freebsd.org Fri Dec 14 10:49:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49791132B2C0; Fri, 14 Dec 2018 10:49:49 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E349C6A572; Fri, 14 Dec 2018 10:49:48 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D7F382E251; Fri, 14 Dec 2018 10:49:48 +0000 (UTC) (envelope-from kadesai@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEAnmvn073051; Fri, 14 Dec 2018 10:49:48 GMT (envelope-from kadesai@FreeBSD.org) Received: (from kadesai@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEAnmOQ073050; Fri, 14 Dec 2018 10:49:48 GMT (envelope-from kadesai@FreeBSD.org) Message-Id: <201812141049.wBEAnmOQ073050@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kadesai set sender to kadesai@FreeBSD.org using -f From: Kashyap D Desai Date: Fri, 14 Dec 2018 10:49:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342079 - head/sys/dev/mrsas X-SVN-Group: head X-SVN-Commit-Author: kadesai X-SVN-Commit-Paths: head/sys/dev/mrsas X-SVN-Commit-Revision: 342079 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E349C6A572 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.55 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.69)[-0.692,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 10:49:49 -0000 Author: kadesai Date: Fri Dec 14 10:49:48 2018 New Revision: 342079 URL: https://svnweb.freebsd.org/changeset/base/342079 Log: Compilation failure on ppc and mips due to Revision 342066. Adding extra memset on chain frame. Submitted by: Sumit Saxena Reviewed by: Kashyap Desai Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc Modified: head/sys/dev/mrsas/mrsas_cam.c Modified: head/sys/dev/mrsas/mrsas_cam.c ============================================================================== --- head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 10:45:46 2018 (r342078) +++ head/sys/dev/mrsas/mrsas_cam.c Fri Dec 14 10:49:48 2018 (r342079) @@ -1577,7 +1577,8 @@ static void mrsas_build_prp_nvme(struct mrsas_mpt_cmd struct mrsas_softc *sc = cmd->sc; int sge_len, offset, num_prp_in_chain = 0; pMpi25IeeeSgeChain64_t main_chain_element, ptr_first_sgl, sgl_ptr; - u_int64_t *ptr_sgl, *ptr_sgl_phys; + u_int64_t *ptr_sgl; + bus_addr_t ptr_sgl_phys; u_int64_t sge_addr; u_int32_t page_mask, page_mask_result, i = 0; u_int32_t first_prp_len; @@ -1600,14 +1601,15 @@ static void mrsas_build_prp_nvme(struct mrsas_mpt_cmd */ page_mask = mr_nvme_pg_size - 1; ptr_sgl = (u_int64_t *) cmd->chain_frame; - ptr_sgl_phys = (u_int64_t *) cmd->chain_frame_phys_addr;; + ptr_sgl_phys = cmd->chain_frame_phys_addr; + memset(ptr_sgl, 0, sc->max_chain_frame_sz); /* Build chain frame element which holds all PRPs except first*/ main_chain_element = (pMpi25IeeeSgeChain64_t) ((u_int8_t *)sgl_ptr + sizeof(MPI25_IEEE_SGE_CHAIN64)); - main_chain_element->Address = (u_int64_t) ptr_sgl_phys; + main_chain_element->Address = cmd->chain_frame_phys_addr; main_chain_element->NextChainOffset = 0; main_chain_element->Flags = IEEE_SGE_FLAGS_CHAIN_ELEMENT | IEEE_SGE_FLAGS_SYSTEM_ADDR | From owner-svn-src-head@freebsd.org Fri Dec 14 16:14:38 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 31AA9133A6F2; Fri, 14 Dec 2018 16:14:38 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D8435847BE; Fri, 14 Dec 2018 16:14:37 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C8CAA1C34; Fri, 14 Dec 2018 16:14:37 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEGEbkZ048439; Fri, 14 Dec 2018 16:14:37 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEGEaFO048433; Fri, 14 Dec 2018 16:14:36 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201812141614.wBEGEaFO048433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Fri, 14 Dec 2018 16:14:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342084 - in head/sys: conf dev/tpm X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: in head/sys: conf dev/tpm X-SVN-Commit-Revision: 342084 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D8435847BE X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-1.52 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.85)[-0.846,0]; NEURAL_HAM_SHORT(-0.68)[-0.677,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 16:14:38 -0000 Author: mw Date: Fri Dec 14 16:14:36 2018 New Revision: 342084 URL: https://svnweb.freebsd.org/changeset/base/342084 Log: Introduce driver for TPM 2.0 in CRB and FIFO (TIS) modes It was written basing on: TCG PC Client Platform TPM Profile (PTP) Specification Version 22, Revision 1.03. It only supports Locality 0. Interrupts are only supported in FIFO mode. The driver in FIFO mode was tested on x86 with Infineon SLB9665 discrete TPM chip. Driver in both modes was also tested on qemu with swtpm running on host. Submitted by: Kornel Duleba Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D18048 Added: head/sys/dev/tpm/tpm20.c (contents, props changed) head/sys/dev/tpm/tpm20.h (contents, props changed) head/sys/dev/tpm/tpm_crb.c (contents, props changed) head/sys/dev/tpm/tpm_tis.c (contents, props changed) Modified: head/sys/conf/files.amd64 Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Fri Dec 14 14:49:04 2018 (r342083) +++ head/sys/conf/files.amd64 Fri Dec 14 16:14:36 2018 (r342084) @@ -491,6 +491,9 @@ dev/syscons/scvesactl.c optional sc vga vesa dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/tpm/tpm.c optional tpm +dev/tpm/tpm20.c optional tpm +dev/tpm/tpm_crb.c optional tpm acpi +dev/tpm/tpm_tis.c optional tpm acpi dev/tpm/tpm_acpi.c optional tpm acpi dev/tpm/tpm_isa.c optional tpm isa dev/uart/uart_cpu_x86.c optional uart Added: head/sys/dev/tpm/tpm20.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/tpm/tpm20.c Fri Dec 14 16:14:36 2018 (r342084) @@ -0,0 +1,260 @@ +/*- + * Copyright (c) 2018 Stormshield. + * Copyright (c) 2018 Semihalf. + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "tpm20.h" + +MALLOC_DECLARE(M_TPM20); +MALLOC_DEFINE(M_TPM20, "tpm_buffer", "buffer for tpm 2.0 driver"); + +static void tpm20_discard_buffer(void *arg); +static int tpm20_save_state(device_t dev, bool suspend); + +int +tpm20_read(struct cdev *dev, struct uio *uio, int flags) +{ + struct tpm_sc *sc; + size_t bytes_to_transfer; + int result = 0; + + sc = (struct tpm_sc *)dev->si_drv1; + + callout_stop(&sc->discard_buffer_callout); + sx_xlock(&sc->dev_lock); + + bytes_to_transfer = MIN(sc->pending_data_length, uio->uio_resid); + if (bytes_to_transfer > 0) { + result = uiomove((caddr_t) sc->buf, bytes_to_transfer, uio); + memset(sc->buf, 0, TPM_BUFSIZE); + sc->pending_data_length = 0; + cv_signal(&sc->buf_cv); + } else { + result = ETIMEDOUT; + } + + sx_xunlock(&sc->dev_lock); + + return (result); +} + +int +tpm20_write(struct cdev *dev, struct uio *uio, int flags) +{ + struct tpm_sc *sc; + size_t byte_count; + int result = 0; + + sc = (struct tpm_sc *)dev->si_drv1; + + byte_count = uio->uio_resid; + if (byte_count < TPM_HEADER_SIZE) { + device_printf(sc->dev, + "Requested transfer is too small\n"); + return (EINVAL); + } + + if (byte_count > TPM_BUFSIZE) { + device_printf(sc->dev, + "Requested transfer is too large\n"); + return (E2BIG); + } + + sx_xlock(&sc->dev_lock); + + while (sc->pending_data_length != 0) + cv_wait(&sc->buf_cv, &sc->dev_lock); + + result = uiomove(sc->buf, byte_count, uio); + if (result != 0) { + sx_xunlock(&sc->dev_lock); + return (result); + } + + result = sc->transmit(sc, byte_count); + + if (result == 0) + callout_reset(&sc->discard_buffer_callout, + TPM_READ_TIMEOUT / tick, tpm20_discard_buffer, sc); + + sx_xunlock(&sc->dev_lock); + return (result); +} + +static void tpm20_discard_buffer(void *arg) +{ + struct tpm_sc *sc; + + sc = (struct tpm_sc *)arg; + if (callout_pending(&sc->discard_buffer_callout)) + return; + + sx_xlock(&sc->dev_lock); + + memset(sc->buf, 0, TPM_BUFSIZE); + sc->pending_data_length = 0; + + cv_signal(&sc->buf_cv); + sx_xunlock(&sc->dev_lock); + + device_printf(sc->dev, + "User failed to read buffer in time\n"); +} + +int +tpm20_open(struct cdev *dev, int flag, int mode, struct thread *td) +{ + + return (0); +} + +int +tpm20_close(struct cdev *dev, int flag, int mode, struct thread *td) +{ + + return (0); +} + + +int +tpm20_ioctl(struct cdev *dev, u_long cmd, caddr_t data, + int flags, struct thread *td) +{ + + return (ENOTTY); +} + +int +tpm20_init(struct tpm_sc *sc) +{ + struct make_dev_args args; + int result; + + sc->buf = malloc(TPM_BUFSIZE, M_TPM20, M_WAITOK); + sx_init(&sc->dev_lock, "TPM driver lock"); + cv_init(&sc->buf_cv, "TPM buffer cv"); + callout_init(&sc->discard_buffer_callout, 1); + sc->pending_data_length = 0; + + make_dev_args_init(&args); + args.mda_devsw = &tpm_cdevsw; + args.mda_uid = UID_ROOT; + args.mda_gid = GID_WHEEL; + args.mda_mode = TPM_CDEV_PERM_FLAG; + args.mda_si_drv1 = sc; + result = make_dev_s(&args, &sc->sc_cdev, TPM_CDEV_NAME); + if (result != 0) + tpm20_release(sc); + + return (result); + +} + +void +tpm20_release(struct tpm_sc *sc) +{ + + if (sc->buf != NULL) + free(sc->buf, M_TPM20); + + sx_destroy(&sc->dev_lock); + cv_destroy(&sc->buf_cv); + if (sc->sc_cdev != NULL) + destroy_dev(sc->sc_cdev); +} + + +int +tpm20_suspend(device_t dev) +{ + return (tpm20_save_state(dev, true)); +} + +int +tpm20_shutdown(device_t dev) +{ + return (tpm20_save_state(dev, false)); +} + +static int +tpm20_save_state(device_t dev, bool suspend) +{ + struct tpm_sc *sc; + uint8_t save_cmd[] = { + 0x80, 0x01, /* TPM_ST_NO_SESSIONS tag*/ + 0x00, 0x00, 0x00, 0x0C, /* cmd length */ + 0x00, 0x00, 0x01, 0x45, 0x00, 0x00 /* cmd TPM_CC_Shutdown */ + }; + + sc = device_get_softc(dev); + + /* + * Inform the TPM whether we are going to suspend or reboot/shutdown. + */ + if (suspend) + save_cmd[11] = 1; /* TPM_SU_STATE */ + + if (sc == NULL || sc->buf == NULL) + return (0); + + sx_xlock(&sc->dev_lock); + + memcpy(sc->buf, save_cmd, sizeof(save_cmd)); + sc->transmit(sc, sizeof(save_cmd)); + + sx_xunlock(&sc->dev_lock); + + return (0); +} + +int32_t +tpm20_get_timeout(uint32_t command) +{ + int32_t timeout; + + switch (command) { + case TPM_CC_CreatePrimary: + case TPM_CC_Create: + case TPM_CC_CreateLoaded: + timeout = TPM_TIMEOUT_LONG; + break; + case TPM_CC_SequenceComplete: + case TPM_CC_Startup: + case TPM_CC_SequenceUpdate: + case TPM_CC_GetCapability: + case TPM_CC_PCR_Extend: + case TPM_CC_EventSequenceComplete: + case TPM_CC_HashSequenceStart: + timeout = TPM_TIMEOUT_C; + break; + default: + timeout = TPM_TIMEOUT_B; + break; + } + return timeout; +} Added: head/sys/dev/tpm/tpm20.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/tpm/tpm20.h Fri Dec 14 16:14:36 2018 (r342084) @@ -0,0 +1,192 @@ +/*- + * Copyright (c) 2018 Stormshield. + * Copyright (c) 2018 Semihalf. + * 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. + */ + +#ifndef _TPM20_H_ +#define _TPM20_H_ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include "opt_acpi.h" + +#define BIT(x) (1 << (x)) + +/* Timeouts in us */ +#define TPM_TIMEOUT_A 750000 +#define TPM_TIMEOUT_B 2000000 +#define TPM_TIMEOUT_C 200000 +#define TPM_TIMEOUT_D 30000 + +/* + * Generating RSA key pair takes ~(10-20s), which is significantly longer than + * any timeout defined in spec. Because of that we need a new one. + */ +#define TPM_TIMEOUT_LONG 40000000 + +/* List of commands that require TPM_TIMEOUT_LONG time to complete */ +#define TPM_CC_CreatePrimary 0x00000131 +#define TPM_CC_Create 0x00000153 +#define TPM_CC_CreateLoaded 0x00000191 + +/* List of commands that require only TPM_TIMEOUT_C time to complete */ +#define TPM_CC_SequenceComplete 0x0000013e +#define TPM_CC_Startup 0x00000144 +#define TPM_CC_SequenceUpdate 0x0000015c +#define TPM_CC_GetCapability 0x0000017a +#define TPM_CC_PCR_Extend 0x00000182 +#define TPM_CC_EventSequenceComplete 0x00000185 +#define TPM_CC_HashSequenceStart 0x00000186 + +/* Timeout before data in read buffer is discarded */ +#define TPM_READ_TIMEOUT 500000 + +#define TPM_BUFSIZE 0x1000 + +#define TPM_HEADER_SIZE 10 + +#define TPM_CDEV_NAME "tpm0" +#define TPM_CDEV_PERM_FLAG 0600 + +struct tpm_sc { + device_t dev; + + struct resource *mem_res; + struct resource *irq_res; + int mem_rid; + int irq_rid; + + struct cdev *sc_cdev; + + struct sx dev_lock; + struct cv buf_cv; + + void *intr_cookie; + int intr_type; /* Current event type */ + bool interrupts; + + uint8_t *buf; + size_t pending_data_length; + + struct callout discard_buffer_callout; + + int (*transmit)(struct tpm_sc *, size_t); +}; + +int tpm20_suspend(device_t dev); +int tpm20_shutdown(device_t dev); +int32_t tpm20_get_timeout(uint32_t command); +int tpm20_init(struct tpm_sc *sc); +void tpm20_release(struct tpm_sc *sc); + +d_open_t tpm20_open; +d_close_t tpm20_close; +d_read_t tpm20_read; +d_write_t tpm20_write; +d_ioctl_t tpm20_ioctl; + +static struct cdevsw tpm_cdevsw = { + .d_version = D_VERSION, + .d_open = tpm20_open, + .d_close = tpm20_close, + .d_read = tpm20_read, + .d_write = tpm20_write, + .d_ioctl = tpm20_ioctl, + .d_name = "tpm20", +}; + +/* Small helper routines for io ops */ +static inline uint8_t +RD1(struct tpm_sc *sc, bus_size_t off) +{ + + return (bus_read_1(sc->mem_res, off)); +} +static inline uint32_t +RD4(struct tpm_sc *sc, bus_size_t off) +{ + + return (bus_read_4(sc->mem_res, off)); +} +static inline uint64_t +RD8(struct tpm_sc *sc, bus_size_t off) +{ + + return (bus_read_8(sc->mem_res, off)); +} +static inline void +WR1(struct tpm_sc *sc, bus_size_t off, uint8_t val) +{ + + bus_write_1(sc->mem_res, off, val); +} +static inline void +WR4(struct tpm_sc *sc, bus_size_t off, uint32_t val) +{ + + bus_write_4(sc->mem_res, off, val); +} +static inline void +AND4(struct tpm_sc *sc, bus_size_t off, uint32_t val) +{ + + WR4(sc, off, RD4(sc, off) & val); +} +static inline void +OR1(struct tpm_sc *sc, bus_size_t off, uint8_t val) +{ + + WR1(sc, off, RD1(sc, off) | val); +} +static inline void +OR4(struct tpm_sc *sc, bus_size_t off, uint32_t val) +{ + + WR4(sc, off, RD4(sc, off) | val); +} +#endif /* _TPM20_H_ */ Added: head/sys/dev/tpm/tpm_crb.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/tpm/tpm_crb.c Fri Dec 14 16:14:36 2018 (r342084) @@ -0,0 +1,419 @@ +/*- + * Copyright (c) 2018 Stormshield. + * Copyright (c) 2018 Semihalf. + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "tpm20.h" + +/* + * CRB register space as defined in + * TCG_PC_Client_Platform_TPM_Profile_PTP_2.0_r1.03_v22 + */ +#define TPM_LOC_STATE 0x0 +#define TPM_LOC_CTRL 0x8 +#define TPM_LOC_STS 0xC +#define TPM_CRB_INTF_ID 0x30 +#define TPM_CRB_CTRL_EXT 0x38 +#define TPM_CRB_CTRL_REQ 0x40 +#define TPM_CRB_CTRL_STS 0x44 +#define TPM_CRB_CTRL_CANCEL 0x48 +#define TPM_CRB_CTRL_START 0x4C +#define TPM_CRB_INT_ENABLE 0x50 +#define TPM_CRB_INT_STS 0x54 +#define TPM_CRB_CTRL_CMD_SIZE 0x58 +#define TPM_CRB_CTRL_CMD_LADDR 0x5C +#define TPM_CRB_CTRL_CMD_HADDR 0x60 +#define TPM_CRB_CTRL_RSP_SIZE 0x64 +#define TPM_CRB_CTRL_RSP_ADDR 0x68 +#define TPM_CRB_DATA_BUFFER 0x80 + +#define TPM_LOC_STATE_ESTB BIT(0) +#define TPM_LOC_STATE_ASSIGNED BIT(1) +#define TPM_LOC_STATE_ACTIVE_MASK 0x9C +#define TPM_LOC_STATE_VALID BIT(7) + +#define TPM_CRB_INTF_ID_TYPE_CRB 0x1 +#define TPM_CRB_INTF_ID_TYPE 0x7 + +#define TPM_LOC_CTRL_REQUEST BIT(0) +#define TPM_LOC_CTRL_RELINQUISH BIT(1) + +#define TPM_CRB_CTRL_REQ_GO_READY BIT(0) +#define TPM_CRB_CTRL_REQ_GO_IDLE BIT(1) + +#define TPM_CRB_CTRL_STS_ERR_BIT BIT(0) +#define TPM_CRB_CTRL_STS_IDLE_BIT BIT(1) + +#define TPM_CRB_CTRL_CANCEL_CMD BIT(0) + +#define TPM_CRB_CTRL_START_CMD BIT(0) + +#define TPM_CRB_INT_ENABLE_BIT BIT(31) + +struct tpmcrb_sc { + struct tpm_sc base; + bus_size_t cmd_off; + bus_size_t rsp_off; + size_t cmd_buf_size; + size_t rsp_buf_size; +}; + + +int tpmcrb_transmit(struct tpm_sc *sc, size_t size); + +static int tpmcrb_acpi_probe(device_t dev); +static int tpmcrb_attach(device_t dev); +static int tpmcrb_detach(device_t dev); + +static ACPI_STATUS tpmcrb_fix_buff_offsets(ACPI_RESOURCE *res, void *arg); + +static bool tpm_wait_for_u32(struct tpm_sc *sc, bus_size_t off, + uint32_t mask, uint32_t val, int32_t timeout); +static bool tpmcrb_request_locality(struct tpm_sc *sc, int locality); +static void tpmcrb_relinquish_locality(struct tpm_sc *sc); +static bool tpmcrb_cancel_cmd(struct tpm_sc *sc); + +char *tpmcrb_ids[] = {"MSFT0101", NULL}; + +static int +tpmcrb_acpi_probe(device_t dev) +{ + struct resource *res; + int rid = 0; + uint32_t caps; + + if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids) == NULL) + return (ENXIO); + + /* Check if device is in CRB mode */ + res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); + if (res == NULL) + return (ENXIO); + + caps = bus_read_4(res, TPM_CRB_INTF_ID); + bus_release_resource(dev, SYS_RES_MEMORY, rid, res); + + if ((caps & TPM_CRB_INTF_ID_TYPE) != TPM_CRB_INTF_ID_TYPE_CRB) + return (ENXIO); + + device_set_desc(dev, "Trusted Platform Module 2.0, CRB mode"); + return (BUS_PROBE_DEFAULT); +} + +static ACPI_STATUS +tpmcrb_fix_buff_offsets(ACPI_RESOURCE *res, void *arg) +{ + struct tpmcrb_sc *crb_sc; + size_t length; + uint32_t base_addr; + + crb_sc = (struct tpmcrb_sc *)arg; + + if (res->Type != ACPI_RESOURCE_TYPE_FIXED_MEMORY32) + return (AE_OK); + + base_addr = res->Data.FixedMemory32.Address; + length = res->Data.FixedMemory32.AddressLength; + + if (crb_sc->cmd_off > base_addr && crb_sc->cmd_off < base_addr + length) + crb_sc->cmd_off -= base_addr; + if (crb_sc->rsp_off > base_addr && crb_sc->rsp_off < base_addr + length) + crb_sc->rsp_off -= base_addr; + + return (AE_OK); +} + +static int +tpmcrb_attach(device_t dev) +{ + struct tpmcrb_sc *crb_sc; + struct tpm_sc *sc; + ACPI_HANDLE handle; + ACPI_STATUS status; + int result; + + crb_sc = device_get_softc(dev); + sc = &crb_sc->base; + handle = acpi_get_handle(dev); + + sc->dev = dev; + + sc->mem_rid = 0; + sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->mem_rid, + RF_ACTIVE); + if (sc->mem_res == NULL) + return (ENXIO); + + if(!tpmcrb_request_locality(sc, 0)) { + tpmcrb_detach(dev); + return (ENXIO); + } + + /* + * Disable all interrupts for now, since I don't have a device that + * works in CRB mode and supports them. + */ + AND4(sc, TPM_CRB_INT_ENABLE, ~TPM_CRB_INT_ENABLE_BIT); + sc->interrupts = false; + + /* + * Read addresses of Tx/Rx buffers and their sizes. Note that they + * can be implemented by a single buffer. Also for some reason CMD + * addr is stored in two 4 byte neighboring registers, whereas RSP is + * stored in a single 8 byte one. + */ + crb_sc->rsp_off = RD8(sc, TPM_CRB_CTRL_RSP_ADDR); + crb_sc->cmd_off = RD4(sc, TPM_CRB_CTRL_CMD_LADDR); + crb_sc->cmd_off |= ((uint64_t) RD4(sc, TPM_CRB_CTRL_CMD_HADDR) << 32); + crb_sc->cmd_buf_size = RD4(sc, TPM_CRB_CTRL_CMD_SIZE); + crb_sc->rsp_buf_size = RD4(sc, TPM_CRB_CTRL_RSP_SIZE); + + tpmcrb_relinquish_locality(sc); + + /* Emulator returns address in acpi space instead of an offset */ + status = AcpiWalkResources(handle, "_CRS", tpmcrb_fix_buff_offsets, + (void *)crb_sc); + if (ACPI_FAILURE(status)) { + tpmcrb_detach(dev); + return (ENXIO); + } + + if (crb_sc->rsp_off == crb_sc->cmd_off) { + /* + * If Tx/Rx buffers are implemented as one they have to be of + * same size + */ + if (crb_sc->cmd_buf_size != crb_sc->rsp_buf_size) { + device_printf(sc->dev, + "Overlapping Tx/Rx buffers have different sizes\n"); + tpmcrb_detach(dev); + return (ENXIO); + } + } + + sc->transmit = tpmcrb_transmit; + + result = tpm20_init(sc); + if (result != 0) + tpmcrb_detach(dev); + + return (result); +} + +static int +tpmcrb_detach(device_t dev) +{ + struct tpm_sc *sc; + + sc = device_get_softc(dev); + + if (sc->mem_res != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, + sc->mem_rid, sc->mem_res); + + tpm20_release(sc); + return (0); +} + +static bool +tpm_wait_for_u32(struct tpm_sc *sc, bus_size_t off, uint32_t mask, uint32_t val, + int32_t timeout) +{ + + /* Check for condition */ + if ((RD4(sc, off) & mask) == val) + return (true); + + while (timeout > 0) { + if ((RD4(sc, off) & mask) == val) + return (true); + + pause("TPM in polling mode", 1); + timeout -= tick; + } + return (false); +} + +static bool +tpmcrb_request_locality(struct tpm_sc *sc, int locality) +{ + uint32_t mask; + + /* Currently we only support Locality 0 */ + if (locality != 0) + return (false); + + mask = TPM_LOC_STATE_VALID | TPM_LOC_STATE_ASSIGNED; + + OR4(sc, TPM_LOC_CTRL, TPM_LOC_CTRL_REQUEST); + if (!tpm_wait_for_u32(sc, TPM_LOC_STATE, mask, mask, TPM_TIMEOUT_C)) + return (false); + + return (true); +} + +static void +tpmcrb_relinquish_locality(struct tpm_sc *sc) +{ + + OR4(sc, TPM_LOC_CTRL, TPM_LOC_CTRL_RELINQUISH); +} + +static bool +tpmcrb_cancel_cmd(struct tpm_sc *sc) +{ + uint32_t mask = ~0; + + WR4(sc, TPM_CRB_CTRL_CANCEL, TPM_CRB_CTRL_CANCEL_CMD); + if (!tpm_wait_for_u32(sc, TPM_CRB_CTRL_START, + mask, ~mask, TPM_TIMEOUT_B)) { + device_printf(sc->dev, + "Device failed to cancel command\n"); + return (false); + } + + WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD); + return (true); +} + +int +tpmcrb_transmit(struct tpm_sc *sc, size_t length) +{ + struct tpmcrb_sc *crb_sc; + uint32_t mask, curr_cmd; + int timeout, bytes_available; + + crb_sc = (struct tpmcrb_sc *)sc; + + sx_assert(&sc->dev_lock, SA_XLOCKED); + + if (length > crb_sc->cmd_buf_size) { + device_printf(sc->dev, + "Requested transfer is bigger than buffer size\n"); + return (E2BIG); + } + + if (RD4(sc, TPM_CRB_CTRL_STS) & TPM_CRB_CTRL_STS_ERR_BIT) { + device_printf(sc->dev, + "Device has Error bit set\n"); + return (EIO); + } + if (!tpmcrb_request_locality(sc, 0)) { + device_printf(sc->dev, + "Failed to obtain locality\n"); + return (EIO); + } + /* Clear cancellation bit */ + WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD); + + /* Switch device to idle state if necessary */ + if (!(RD4(sc, TPM_CRB_CTRL_STS) & TPM_CRB_CTRL_STS_IDLE_BIT)) { + OR4(sc, TPM_CRB_CTRL_REQ, TPM_CRB_CTRL_REQ_GO_IDLE); + + mask = TPM_CRB_CTRL_STS_IDLE_BIT; + if (!tpm_wait_for_u32(sc, TPM_CRB_CTRL_STS, + mask, mask, TPM_TIMEOUT_C)) { + device_printf(sc->dev, + "Failed to transition to idle state\n"); + return (EIO); + } + } + /* Switch to ready state */ + OR4(sc, TPM_CRB_CTRL_REQ, TPM_CRB_CTRL_REQ_GO_READY); + + mask = TPM_CRB_CTRL_REQ_GO_READY; + if (!tpm_wait_for_u32(sc, TPM_CRB_CTRL_STS, + mask, !mask, TPM_TIMEOUT_C)) { + device_printf(sc->dev, + "Failed to transition to ready state\n"); + return (EIO); + } + + /* + * Calculate timeout for current command. + * Command code is passed in bytes 6-10. + */ + curr_cmd = be32toh(*(uint32_t *) (&sc->buf[6])); + timeout = tpm20_get_timeout(curr_cmd); + + /* Send command and tell device to process it. */ + bus_write_region_stream_1(sc->mem_res, crb_sc->cmd_off, + sc->buf, length); + bus_barrier(sc->mem_res, crb_sc->cmd_off, + length, BUS_SPACE_BARRIER_WRITE); + + WR4(sc, TPM_CRB_CTRL_START, TPM_CRB_CTRL_START_CMD); + bus_barrier(sc->mem_res, TPM_CRB_CTRL_START, + 4, BUS_SPACE_BARRIER_WRITE); + + mask = ~0; + if (!tpm_wait_for_u32(sc, TPM_CRB_CTRL_START, mask, ~mask, timeout)) { + device_printf(sc->dev, + "Timeout while waiting for device to process cmd\n"); + if (!tpmcrb_cancel_cmd(sc)) + return (EIO); + } + + /* Read response header. Length is passed in bytes 2 - 6. */ + bus_read_region_stream_1(sc->mem_res, crb_sc->rsp_off, + sc->buf, TPM_HEADER_SIZE); + bytes_available = be32toh(*(uint32_t *) (&sc->buf[2])); + + if (bytes_available > TPM_BUFSIZE || bytes_available < TPM_HEADER_SIZE) { + device_printf(sc->dev, + "Incorrect response size: %d\n", + bytes_available); + return (EIO); + } + + bus_read_region_stream_1(sc->mem_res, crb_sc->rsp_off + TPM_HEADER_SIZE, + &sc->buf[TPM_HEADER_SIZE], bytes_available - TPM_HEADER_SIZE); + + OR4(sc, TPM_CRB_CTRL_REQ, TPM_CRB_CTRL_REQ_GO_IDLE); + + tpmcrb_relinquish_locality(sc); + sc->pending_data_length = bytes_available; + + return (0); +} + +/* ACPI Driver */ +static device_method_t tpmcrb_methods[] = { + DEVMETHOD(device_probe, tpmcrb_acpi_probe), + DEVMETHOD(device_attach, tpmcrb_attach), + DEVMETHOD(device_detach, tpmcrb_detach), + DEVMETHOD(device_shutdown, tpm20_shutdown), + DEVMETHOD(device_suspend, tpm20_suspend), + {0, 0} +}; +static driver_t tpmcrb_driver = { + "tpmcrb", tpmcrb_methods, sizeof(struct tpmcrb_sc), +}; + +devclass_t tpmcrb_devclass; +DRIVER_MODULE(tpmcrb, acpi, tpmcrb_driver, tpmcrb_devclass, 0, 0); Added: head/sys/dev/tpm/tpm_tis.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/tpm/tpm_tis.c Fri Dec 14 16:14:36 2018 (r342084) @@ -0,0 +1,510 @@ +/*- + * Copyright (c) 2018 Stormshield. + * Copyright (c) 2018 Semihalf. + * 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "tpm20.h" + +/* + * TIS register space as defined in + * TCG_PC_Client_Platform_TPM_Profile_PTP_2.0_r1.03_v22 + */ +#define TPM_ACCESS 0x0 +#define TPM_INT_ENABLE 0x8 +#define TPM_INT_VECTOR 0xc +#define TPM_INT_STS 0x10 +#define TPM_INTF_CAPS 0x14 +#define TPM_STS 0x18 +#define TPM_DATA_FIFO 0x24 +#define TPM_INTF_ID 0x30 +#define TPM_XDATA_FIFO 0x80 +#define TPM_DID_VID 0xF00 +#define TPM_RID 0xF04 + +#define TPM_ACCESS_LOC_REQ BIT(1) +#define TPM_ACCESS_LOC_Seize BIT(3) +#define TPM_ACCESS_LOC_ACTIVE BIT(5) +#define TPM_ACCESS_LOC_RELINQUISH BIT(5) +#define TPM_ACCESS_VALID BIT(7) + +#define TPM_INT_ENABLE_GLOBAL_ENABLE BIT(31) +#define TPM_INT_ENABLE_CMD_RDY BIT(7) +#define TPM_INT_ENABLE_LOC_CHANGE BIT(2) +#define TPM_INT_ENABLE_STS_VALID BIT(1) +#define TPM_INT_ENABLE_DATA_AVAIL BIT(0) + +#define TPM_INT_STS_CMD_RDY BIT(7) +#define TPM_INT_STS_LOC_CHANGE BIT(2) +#define TPM_INT_STS_VALID BIT(1) +#define TPM_INT_STS_DATA_AVAIL BIT(0) + +#define TPM_INTF_CAPS_VERSION 0x70000000 +#define TPM_INTF_CAPS_TPM20 0x30000000 + +#define TPM_STS_VALID BIT(7) +#define TPM_STS_CMD_RDY BIT(6) +#define TPM_STS_CMD_START BIT(5) +#define TPM_STS_DATA_AVAIL BIT(4) +#define TPM_STS_DATA_EXPECTED BIT(3) +#define TPM_STS_BURST_MASK 0xFFFF00 +#define TPM_STS_BURST_OFFSET 0x8 + +static int tpmtis_transmit(struct tpm_sc *sc, size_t length); + +static int tpmtis_acpi_probe(device_t dev); +static int tpmtis_attach(device_t dev); +static int tpmtis_detach(device_t dev); + +static void tpmtis_intr_handler(void *arg); + +static ACPI_STATUS tpmtis_get_SIRQ_channel(ACPI_RESOURCE *res, void *arg); +static bool tpmtis_setup_intr(struct tpm_sc *sc); + +static bool tpmtis_read_bytes(struct tpm_sc *sc, size_t count, uint8_t *buf); +static bool tpmtis_write_bytes(struct tpm_sc *sc, size_t count, uint8_t *buf); +static bool tpmtis_request_locality(struct tpm_sc *sc, int locality); +static void tpmtis_relinquish_locality(struct tpm_sc *sc); +static bool tpmtis_go_ready(struct tpm_sc *sc); + +static bool tpm_wait_for_u32(struct tpm_sc *sc, bus_size_t off, + uint32_t mask, uint32_t val, int32_t timeout); +static uint16_t tpmtis_wait_for_burst(struct tpm_sc *sc); + +char *tpmtis_ids[] = {"MSFT0101", NULL}; + +static int +tpmtis_acpi_probe(device_t dev) +{ + struct resource *res; + int rid = 0; + uint32_t caps; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@freebsd.org Fri Dec 14 17:43:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 127D6133D20E; Fri, 14 Dec 2018 17:43:36 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AE1F288940; Fri, 14 Dec 2018 17:43:35 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A15DB2BE1; Fri, 14 Dec 2018 17:43:35 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEHhZlF096561; Fri, 14 Dec 2018 17:43:35 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEHhZar096560; Fri, 14 Dec 2018 17:43:35 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201812141743.wBEHhZar096560@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Fri, 14 Dec 2018 17:43:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342085 - head/sys/dev/tpm X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/dev/tpm X-SVN-Commit-Revision: 342085 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: AE1F288940 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.71 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.97)[-0.968,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 17:43:36 -0000 Author: mw Date: Fri Dec 14 17:43:35 2018 New Revision: 342085 URL: https://svnweb.freebsd.org/changeset/base/342085 Log: Fix TPM driver compilation from r342084 Include recent ACPI_ID_PROBE API change. Modified: head/sys/dev/tpm/tpm_crb.c head/sys/dev/tpm/tpm_tis.c Modified: head/sys/dev/tpm/tpm_crb.c ============================================================================== --- head/sys/dev/tpm/tpm_crb.c Fri Dec 14 16:14:36 2018 (r342084) +++ head/sys/dev/tpm/tpm_crb.c Fri Dec 14 17:43:35 2018 (r342085) @@ -107,7 +107,7 @@ tpmcrb_acpi_probe(device_t dev) int rid = 0; uint32_t caps; - if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids) == NULL) + if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids, NULL) == NULL) return (ENXIO); /* Check if device is in CRB mode */ Modified: head/sys/dev/tpm/tpm_tis.c ============================================================================== --- head/sys/dev/tpm/tpm_tis.c Fri Dec 14 16:14:36 2018 (r342084) +++ head/sys/dev/tpm/tpm_tis.c Fri Dec 14 17:43:35 2018 (r342085) @@ -104,7 +104,7 @@ tpmtis_acpi_probe(device_t dev) int rid = 0; uint32_t caps; - if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmtis_ids) == NULL) + if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmtis_ids, NULL) == NULL) return (ENXIO); /* Check if device is in TPM 2.0 TIS mode */ From owner-svn-src-head@freebsd.org Fri Dec 14 17:57:37 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DE98B133D90C; Fri, 14 Dec 2018 17:57:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (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 85B248924A; Fri, 14 Dec 2018 17:57:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-2.local (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id F35F210B429; Fri, 14 Dec 2018 12:57:28 -0500 (EST) Subject: Re: svn commit: r342085 - head/sys/dev/tpm To: Marcin Wojtas , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812141743.wBEHhZar096560@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: Date: Fri, 14 Dec 2018 09:57:28 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <201812141743.wBEHhZar096560@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Fri, 14 Dec 2018 12:57:29 -0500 (EST) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-Rspamd-Queue-Id: 85B248924A X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.98)[-0.979,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 17:57:37 -0000 On 12/14/18 9:43 AM, Marcin Wojtas wrote: > Author: mw > Date: Fri Dec 14 17:43:35 2018 > New Revision: 342085 > URL: https://svnweb.freebsd.org/changeset/base/342085 > > Log: > Fix TPM driver compilation from r342084 > > Include recent ACPI_ID_PROBE API change. > > Modified: > head/sys/dev/tpm/tpm_crb.c > head/sys/dev/tpm/tpm_tis.c > > Modified: head/sys/dev/tpm/tpm_crb.c > ============================================================================== > --- head/sys/dev/tpm/tpm_crb.c Fri Dec 14 16:14:36 2018 (r342084) > +++ head/sys/dev/tpm/tpm_crb.c Fri Dec 14 17:43:35 2018 (r342085) > @@ -107,7 +107,7 @@ tpmcrb_acpi_probe(device_t dev) > int rid = 0; > uint32_t caps; > > - if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids) == NULL) > + if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids, NULL) == NULL) > return (ENXIO); I think it doesn't return a pointer anymore either. I think you want to use its return value as the return value from probe to honor the relative priority of CID vs HID matches, so something like: int error; error = ACPI_ID_PROBE(...); if (error > 0) return (error); ... return (error); Instead of 'return (BUS_GENERIC_PROBE)' or some such. -- John Baldwin                                                                              From owner-svn-src-head@freebsd.org Fri Dec 14 18:16:36 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 573F1133E391; Fri, 14 Dec 2018 18:16:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ED0FC89F90; Fri, 14 Dec 2018 18:16:35 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDD85317B; Fri, 14 Dec 2018 18:16:35 +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 wBEIGZNf012605; Fri, 14 Dec 2018 18:16:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEIGZZw012603; Fri, 14 Dec 2018 18:16:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812141816.wBEIGZZw012603@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 18:16:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342086 - head/sys/dev/nfe X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/dev/nfe X-SVN-Commit-Revision: 342086 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: ED0FC89F90 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.70 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.96)[-0.964,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:16:36 -0000 Author: markj Date: Fri Dec 14 18:16:35 2018 New Revision: 342086 URL: https://svnweb.freebsd.org/changeset/base/342086 Log: Add support for the nForce MCP89 adapter. PR: 234015 Submitted by: Andrejs Bogdanovs MFC after: 1 week Modified: head/sys/dev/nfe/if_nfe.c head/sys/dev/nfe/if_nfereg.h Modified: head/sys/dev/nfe/if_nfe.c ============================================================================== --- head/sys/dev/nfe/if_nfe.c Fri Dec 14 17:43:35 2018 (r342085) +++ head/sys/dev/nfe/if_nfe.c Fri Dec 14 18:16:35 2018 (r342086) @@ -265,6 +265,8 @@ static struct nfe_type nfe_devs[] = { "NVIDIA nForce MCP79 Networking Adapter"}, {PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP79_LAN4, "NVIDIA nForce MCP79 Networking Adapter"}, + {PCI_VENDOR_NVIDIA, PCI_PRODUCT_NVIDIA_MCP89_LAN, + "NVIDIA nForce MCP89 Networking Adapter"}, {0, 0, NULL} }; @@ -531,6 +533,7 @@ nfe_attach(device_t dev) case PCI_PRODUCT_NVIDIA_MCP79_LAN2: case PCI_PRODUCT_NVIDIA_MCP79_LAN3: case PCI_PRODUCT_NVIDIA_MCP79_LAN4: + case PCI_PRODUCT_NVIDIA_MCP89_LAN: /* XXX flow control */ sc->nfe_flags |= NFE_JUMBO_SUP | NFE_40BIT_ADDR | NFE_HW_CSUM | NFE_PWR_MGMT | NFE_CORRECT_MACADDR | NFE_MIB_V3; Modified: head/sys/dev/nfe/if_nfereg.h ============================================================================== --- head/sys/dev/nfe/if_nfereg.h Fri Dec 14 17:43:35 2018 (r342085) +++ head/sys/dev/nfe/if_nfereg.h Fri Dec 14 18:16:35 2018 (r342086) @@ -338,6 +338,7 @@ struct nfe_desc64 { #define PCI_PRODUCT_NVIDIA_MCP79_LAN2 0x0ab1 #define PCI_PRODUCT_NVIDIA_MCP79_LAN3 0x0ab2 #define PCI_PRODUCT_NVIDIA_MCP79_LAN4 0x0ab3 +#define PCI_PRODUCT_NVIDIA_MCP89_LAN 0x0d7d #define PCI_PRODUCT_NVIDIA_NFORCE3_LAN2 PCI_PRODUCT_NVIDIA_NFORCE2_400_LAN1 #define PCI_PRODUCT_NVIDIA_NFORCE3_LAN3 PCI_PRODUCT_NVIDIA_NFORCE2_400_LAN2 From owner-svn-src-head@freebsd.org Fri Dec 14 18:25:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84AD1133E9E4; Fri, 14 Dec 2018 18:25:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 292FA8A89A; Fri, 14 Dec 2018 18:25:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 0A5091B0F3; Fri, 14 Dec 2018 18:25:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r342057 - head/crypto/openssl/crypto/engine To: koobs@FreeBSD.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812140106.wBE16Zgr058499@repo.freebsd.org> <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> From: Jung-uk Kim Openpgp: preference=signencrypt Autocrypt: addr=jkim@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJBztUBCAChqNyGqmFuNo0U7MBzsD+q/G6Cv0l7LGVrOAsgh34M8wIWhD+tztDWMVfn AhxNDd0ceCj2bYOe67sTQxAScEcbt2FfvPOLp9MEXb9qohZj172Gwkk7dnhOhZZKhVGVZKM4 NcsuBDUzgf4f3Vdzj4wg6WlqplnTZo8lPE4hZWvZHoFIyunPTJWenybeV1xnxK7JkUdSvQR0 fA59RfTTECMwTrSEfYGUnxIDBraxJ7Ecs/0hGQ7sljIj8WBvlRDU5fU1xfF35aw56T8POQRq F4E6RVJW3YGuTpSwgtGZOTfygcLRhAiq3dFC3JNLaTVTpM8PjOinJyt9AU6RoITGOKwDABEB AAG0Hkp1bmctdWsgS2ltIDxqa2ltQEZyZWVCU0Qub3JnPokBPQQTAQoAJwUCUkHO1QIbAwUJ E0/POwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRB8n5Ym/NvxRqyzB/wL7QtsIpeGfGIA ZPMtgXMucM3NWzomyQMln2j2efUkDKthzh9jBxgF53TjOr7imwIt0PT2k1bqctPrq5IRqnu9 mGroqaCLE3LG2/E3jEaao4k9PO6efwlioyivUo5NrqIQOQ4k3EAXw7d2y0Dk1VpTgdMrnUAB hj7lGlLqS4ydcrf24DdbCRGdEQwqd9DBeBgbWynxAJMgbZBhYVEyIHuQKkJ8qY0ibIPXXuF0 KYDeH0qUHtWV2K3srNyPtymUkBQD84Pl1GWRYx05XdUHDmnX0JV3lg0BfYJZgZv0ehPQrMfY Fd9abTkf9FHQYz1JtsC8wUuRgqElRd6+YAGf8Tt9uQENBFJBztUBCADLtSrP44El2VoJmH14 OFrlOgxzZnbn+Y/Gf1k12mJBiR+A+pBeRLD50p7AiTrjHRxO3cHcl9Dh0uf1VSbXgp8Or0ye iP/86fZPd4k5HXNmDTLL0HecPE08SCqGZ0W8vllQrokB1QxxRUB+fFMPJyMCjDAZ7P9fFTOS dTw1bJSTtOD8Sx8MpZUa9ti06bXFlVYDlaqSdgk181SSx+ZbSKkQR8CIMARlHwiLsa3Z9q9O EJr20HPyxe0AlTvwvFndH61hg7ds63eRvglwRnNON28VXO/lvKXq7Br/CiiyhFdKfINIx2Z5 htYq22tgGTW7mBURbIKoECFBTX9Lv6BXz6w9ABEBAAGJASUEGAEKAA8FAlJBztUCGwwFCRNP zzsACgkQfJ+WJvzb8UZcJQf+IsTCxUEqY7W/pT84sMg5/QD3s6ufTRncvq14fEOxCNq1Rf4Q 9P+tOFa8GZfKDGB2BFGIrW7uT5mlmKdK1vO6ZIA930y5kUsnCmBUEBJkE2ciSQk01aB/1o62 Q3Gk/F6BwtNY9OXiqF7AcAo+K/BMIaqb26QKeh+IIgK1NN9dQiq3ByTbl4zpGZa6MmsnnRTu mzGKt2nkz7vBzH6+hZp1OzGZikgjjhYWVFoJo1dvf/rv4obs0ZJEqFPQs/1Qa1dbkKBv6odB XJpPH0ssOluTY24d1XxTiKTwmWvHeQkOKRAIfD7VTtF4TesoZYkf7hsh3e3VwXhptSLFnEOi WwYofg== Message-ID: <3f9a0289-4539-368f-0ddd-b9ca9be2ac69@FreeBSD.org> Date: Fri, 14 Dec 2018 13:25:06 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="XhGWniLjE0DGInk1VEfa2XZqOHrFDd7TG" X-Rspamd-Queue-Id: 292FA8A89A X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.99)[-0.988,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:25:15 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --XhGWniLjE0DGInk1VEfa2XZqOHrFDd7TG Content-Type: multipart/mixed; boundary="9UFlAsadM5x6cqJVyckHyAvuhzcdr5230"; protected-headers="v1" From: Jung-uk Kim To: koobs@FreeBSD.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <3f9a0289-4539-368f-0ddd-b9ca9be2ac69@FreeBSD.org> Subject: Re: svn commit: r342057 - head/crypto/openssl/crypto/engine References: <201812140106.wBE16Zgr058499@repo.freebsd.org> <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> In-Reply-To: <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> --9UFlAsadM5x6cqJVyckHyAvuhzcdr5230 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 18. 12. 13., Kubilay Kocak wrote: > On 14/12/2018 12:06 pm, Jung-uk Kim wrote: >> Author: jkim >> Date: Fri Dec 14 01:06:34 2018 >> New Revision: 342057 >> URL: https://svnweb.freebsd.org/changeset/base/342057 >> >> Log: >> =C2=A0=C2=A0 Do not complain when /dev/crypto does not exist. >> =C2=A0=C2=A0 =C2=A0=C2=A0 Now the new devcrypto engine is enabled sinc= e r342009, many >> users started >> =C2=A0=C2=A0 seeing "Could not open /dev/crypto: No such file or direc= tory".=C2=A0 >> Disable >> =C2=A0=C2=A0 the annoying error message as it is not very useful anywa= y. >> =C2=A0=C2=A0 =C2=A0=C2=A0 Note the patch was submitted upstream. >> =C2=A0=C2=A0 =C2=A0=C2=A0 https://github.com/openssl/openssl/pull/7896= >> >> Modified: >> =C2=A0=C2=A0 head/crypto/openssl/crypto/engine/eng_devcrypto.c >> >> Modified: head/crypto/openssl/crypto/engine/eng_devcrypto.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/crypto/openssl/crypto/engine/eng_devcrypto.c=C2=A0=C2=A0=C2=A0= Fri Dec 14 >> 00:40:38 2018=C2=A0=C2=A0=C2=A0 (r342056) >> +++ head/crypto/openssl/crypto/engine/eng_devcrypto.c=C2=A0=C2=A0=C2=A0= Fri Dec 14 >> 01:06:34 2018=C2=A0=C2=A0=C2=A0 (r342057) >> @@ -24,6 +24,8 @@ >> =C2=A0 =C2=A0 #include "internal/engine.h" >> =C2=A0 +/* #define ENGINE_DEVCRYPTO_DEBUG */ >> + >> =C2=A0 #ifdef CRYPTO_ALGORITHM_MIN >> =C2=A0 # define CHECK_BSD_STYLE_MACROS >> =C2=A0 #endif >> @@ -615,6 +617,9 @@ void engine_load_devcrypto_int() >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ENGINE *e =3D NULL; >> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ((cfd =3D open("/dev/crypto",= O_RDWR, 0)) < 0) { >> +#ifndef ENGINE_DEVCRYPTO_DEBUG >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (errno !=3D ENOENT) >> +#endif >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fprintf(stderr,= "Could not open /dev/crypto: %s\n", >> strerror(errno)); >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return; >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } >=20 > How trivially could devcrypto_debug=C2=A0 be modified to be a runtime > configuration (say sysctl) setting? This file came from OpenSSL and we will not implement any FreeBSD-specific code like that. Jung-uk Kim --9UFlAsadM5x6cqJVyckHyAvuhzcdr5230-- --XhGWniLjE0DGInk1VEfa2XZqOHrFDd7TG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlwT9YoACgkQfJ+WJvzb 8UY/fAf/dTgaLXh5IFr1c2gsrDikLb141+D76BZRXtOMMJ9JyYc6gLhasQmOD/0H pdIFAIuNRlAAREzp9qT2b9MVglk9huvUNZ8a/vHOpQ2+JQKrnb5pjKJIn0u3ZQze nKQKN0vUKv/r1ZR4iH7I/36WRUDyz2LtfTct96CZU3O99GQZNsutikjqaufPKJ76 lb0P/bZGOgZuNMGuw4g5vThZfKJw7oRb0qKuu0xzEgrGSmk8cC99PMU3tpojw2Je iKQv0zZwD+nYKerPkAum4zl8oUsOZACAQBEKrQSEVuDo00NP7SNOPB9rVK4PbyS6 HVQct6geW/lqJ9o/DU5fUXotHkZQrA== =Ponw -----END PGP SIGNATURE----- --XhGWniLjE0DGInk1VEfa2XZqOHrFDd7TG-- From owner-svn-src-head@freebsd.org Fri Dec 14 18:27:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 988F6133EB95; Fri, 14 Dec 2018 18:27:46 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 385068AAD5; Fri, 14 Dec 2018 18:27:46 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from freefall.freebsd.org (static-71-168-218-4.cmdnnj.fios.verizon.net [71.168.218.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jkim/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 11A681B0F4; Fri, 14 Dec 2018 18:27:46 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Subject: Re: svn commit: r342057 - head/crypto/openssl/crypto/engine To: Kevin Bowling , koobs@freebsd.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812140106.wBE16Zgr058499@repo.freebsd.org> <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> From: Jung-uk Kim Openpgp: preference=signencrypt Autocrypt: addr=jkim@FreeBSD.org; prefer-encrypt=mutual; keydata= mQENBFJBztUBCAChqNyGqmFuNo0U7MBzsD+q/G6Cv0l7LGVrOAsgh34M8wIWhD+tztDWMVfn AhxNDd0ceCj2bYOe67sTQxAScEcbt2FfvPOLp9MEXb9qohZj172Gwkk7dnhOhZZKhVGVZKM4 NcsuBDUzgf4f3Vdzj4wg6WlqplnTZo8lPE4hZWvZHoFIyunPTJWenybeV1xnxK7JkUdSvQR0 fA59RfTTECMwTrSEfYGUnxIDBraxJ7Ecs/0hGQ7sljIj8WBvlRDU5fU1xfF35aw56T8POQRq F4E6RVJW3YGuTpSwgtGZOTfygcLRhAiq3dFC3JNLaTVTpM8PjOinJyt9AU6RoITGOKwDABEB AAG0Hkp1bmctdWsgS2ltIDxqa2ltQEZyZWVCU0Qub3JnPokBPQQTAQoAJwUCUkHO1QIbAwUJ E0/POwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRB8n5Ym/NvxRqyzB/wL7QtsIpeGfGIA ZPMtgXMucM3NWzomyQMln2j2efUkDKthzh9jBxgF53TjOr7imwIt0PT2k1bqctPrq5IRqnu9 mGroqaCLE3LG2/E3jEaao4k9PO6efwlioyivUo5NrqIQOQ4k3EAXw7d2y0Dk1VpTgdMrnUAB hj7lGlLqS4ydcrf24DdbCRGdEQwqd9DBeBgbWynxAJMgbZBhYVEyIHuQKkJ8qY0ibIPXXuF0 KYDeH0qUHtWV2K3srNyPtymUkBQD84Pl1GWRYx05XdUHDmnX0JV3lg0BfYJZgZv0ehPQrMfY Fd9abTkf9FHQYz1JtsC8wUuRgqElRd6+YAGf8Tt9uQENBFJBztUBCADLtSrP44El2VoJmH14 OFrlOgxzZnbn+Y/Gf1k12mJBiR+A+pBeRLD50p7AiTrjHRxO3cHcl9Dh0uf1VSbXgp8Or0ye iP/86fZPd4k5HXNmDTLL0HecPE08SCqGZ0W8vllQrokB1QxxRUB+fFMPJyMCjDAZ7P9fFTOS dTw1bJSTtOD8Sx8MpZUa9ti06bXFlVYDlaqSdgk181SSx+ZbSKkQR8CIMARlHwiLsa3Z9q9O EJr20HPyxe0AlTvwvFndH61hg7ds63eRvglwRnNON28VXO/lvKXq7Br/CiiyhFdKfINIx2Z5 htYq22tgGTW7mBURbIKoECFBTX9Lv6BXz6w9ABEBAAGJASUEGAEKAA8FAlJBztUCGwwFCRNP zzsACgkQfJ+WJvzb8UZcJQf+IsTCxUEqY7W/pT84sMg5/QD3s6ufTRncvq14fEOxCNq1Rf4Q 9P+tOFa8GZfKDGB2BFGIrW7uT5mlmKdK1vO6ZIA930y5kUsnCmBUEBJkE2ciSQk01aB/1o62 Q3Gk/F6BwtNY9OXiqF7AcAo+K/BMIaqb26QKeh+IIgK1NN9dQiq3ByTbl4zpGZa6MmsnnRTu mzGKt2nkz7vBzH6+hZp1OzGZikgjjhYWVFoJo1dvf/rv4obs0ZJEqFPQs/1Qa1dbkKBv6odB XJpPH0ssOluTY24d1XxTiKTwmWvHeQkOKRAIfD7VTtF4TesoZYkf7hsh3e3VwXhptSLFnEOi WwYofg== Message-ID: Date: Fri, 14 Dec 2018 13:27:44 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="1A1U1JfV4cX6yyHCJfcUXDapDfk0wZpCR" X-Rspamd-Queue-Id: 385068AAD5 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:27:46 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --1A1U1JfV4cX6yyHCJfcUXDapDfk0wZpCR Content-Type: multipart/mixed; boundary="ng2XUQsMXIXKkSe6k1YWneraSWUK6f9qD"; protected-headers="v1" From: Jung-uk Kim To: Kevin Bowling , koobs@freebsd.org Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r342057 - head/crypto/openssl/crypto/engine References: <201812140106.wBE16Zgr058499@repo.freebsd.org> <216fb35b-28d1-faaa-d115-1f4a601212f0@FreeBSD.org> In-Reply-To: --ng2XUQsMXIXKkSe6k1YWneraSWUK6f9qD Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 18. 12. 13., Kevin Bowling wrote: > But why, you can trivially see the open() call with truss or more > advanced tracers if you are debugging this Sure. I just followed OpenSSL coding style. Jung-uk Kim > On Thu, Dec 13, 2018 at 6:39 PM Kubilay Kocak > wrote: >=20 > On 14/12/2018 12:06 pm, Jung-uk Kim wrote: > > Author: jkim > > Date: Fri Dec 14 01:06:34 2018 > > New Revision: 342057 > > URL: https://svnweb.freebsd.org/changeset/base/342057 > > > > Log: > >=C2=A0 =C2=A0 Do not complain when /dev/crypto does not exist. > >=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 Now the new devcrypto engine is enabled since r34200= 9, many > users started > >=C2=A0 =C2=A0 seeing "Could not open /dev/crypto: No such file or > directory".=C2=A0 Disable > >=C2=A0 =C2=A0 the annoying error message as it is not very useful = anyway. > >=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 Note the patch was submitted upstream. > >=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 https://github.com/openssl/openssl/pull/7896 > > > > Modified: > >=C2=A0 =C2=A0 head/crypto/openssl/crypto/engine/eng_devcrypto.c > > > > Modified: head/crypto/openssl/crypto/engine/eng_devcrypto.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/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 > 00:40:38 2018=C2=A0 =C2=A0 =C2=A0 =C2=A0 (r342056) > > +++ head/crypto/openssl/crypto/engine/eng_devcrypto.c Fri Dec 14 > 01:06:34 2018=C2=A0 =C2=A0 =C2=A0 =C2=A0 (r342057) > > @@ -24,6 +24,8 @@ > >=C2=A0 =C2=A0 > >=C2=A0 =C2=A0#include "internal/engine.h" > >=C2=A0 =C2=A0 > > +/* #define ENGINE_DEVCRYPTO_DEBUG */ > > + > >=C2=A0 =C2=A0#ifdef CRYPTO_ALGORITHM_MIN > >=C2=A0 =C2=A0# define CHECK_BSD_STYLE_MACROS > >=C2=A0 =C2=A0#endif > > @@ -615,6 +617,9 @@ void engine_load_devcrypto_int() > >=C2=A0 =C2=A0 =C2=A0 =C2=A0ENGINE *e =3D NULL; > >=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 =C2=A0if ((cfd =3D open("/dev/crypto", O_RDWR= , 0)) < 0) { > > +#ifndef ENGINE_DEVCRYPTO_DEBUG > > +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (errno !=3D ENOENT) > > +#endif > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fprintf(stderr, "Could no= t open /dev/crypto: %s\n", > strerror(errno)); > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return; > >=C2=A0 =C2=A0 =C2=A0 =C2=A0} >=20 > How trivially could devcrypto_debug=C2=A0 be modified to be a runti= me > configuration (say sysctl) setting? --ng2XUQsMXIXKkSe6k1YWneraSWUK6f9qD-- --1A1U1JfV4cX6yyHCJfcUXDapDfk0wZpCR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAlwT9iEACgkQfJ+WJvzb 8UaRCwf/QHaQ/mXYcG/1G9Te4378i4Bw0FX02yXCLyk79oFwr+o/3xsWMZy44Ee+ JLQHc3fd8l+vtGiHEPbjseNESaUTMzxr7AeDHtfg10lvw8JgeERqusrTrjUtz8Ov GryFtSmFcJHcTYIytBfZ/AsAHCVI5tO5f0laaPTZLJaNcKpRLd0N2KqM5aFCdKzG TC9LJwqGPi1CahYQBBLCRtxd9u1ekDnePPanXuDgLI5hqdktMn6oZc1/ZTJMH8Qq lHWo7+vI9RyscBcvIlHMQyWo2uNHSEyj3vQfLMtFTMNdxlJjcvBKul3ETUR5B7bn wIHgW9r43MNUC0ygTpadkY34Tww3Nw== =Ycio -----END PGP SIGNATURE----- --1A1U1JfV4cX6yyHCJfcUXDapDfk0wZpCR-- From owner-svn-src-head@freebsd.org Fri Dec 14 18:37:28 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7836E133F06F; Fri, 14 Dec 2018 18:37:28 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1D60C8B122; Fri, 14 Dec 2018 18:37:28 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0A53436CE; Fri, 14 Dec 2018 18:37:28 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEIbRf2023122; Fri, 14 Dec 2018 18:37:27 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEIbQh7023117; Fri, 14 Dec 2018 18:37:26 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812141837.wBEIbQh7023117@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 14 Dec 2018 18:37:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342087 - in head: sys/arm/allwinner sys/dev/pwm sys/sys usr.sbin/pwm X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head: sys/arm/allwinner sys/dev/pwm sys/sys usr.sbin/pwm X-SVN-Commit-Revision: 342087 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1D60C8B122 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.71 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.85)[-0.853,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.881,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:37:28 -0000 Author: manu Date: Fri Dec 14 18:37:26 2018 New Revision: 342087 URL: https://svnweb.freebsd.org/changeset/base/342087 Log: pwm: Convert period and duty to unsigned int We don't need a 64 bits value to store nanoseconds Discused with: ian, jhibbits Modified: head/sys/arm/allwinner/aw_pwm.c head/sys/dev/pwm/pwm_if.m head/sys/dev/pwm/pwmbus.c head/sys/dev/pwm/pwmbus_if.m head/sys/sys/pwm.h head/usr.sbin/pwm/pwm.c Modified: head/sys/arm/allwinner/aw_pwm.c ============================================================================== --- head/sys/arm/allwinner/aw_pwm.c Fri Dec 14 18:16:35 2018 (r342086) +++ head/sys/arm/allwinner/aw_pwm.c Fri Dec 14 18:37:26 2018 (r342087) @@ -87,8 +87,8 @@ struct aw_pwm_softc { struct resource *res; uint64_t clk_freq; - uint64_t period; - uint64_t duty; + unsigned int period; + unsigned int duty; uint32_t flags; bool enabled; }; @@ -191,7 +191,7 @@ aw_pwm_channel_max(device_t dev, int *nchannel) } static int -aw_pwm_channel_config(device_t dev, int channel, uint64_t period, uint64_t duty) +aw_pwm_channel_config(device_t dev, int channel, unsigned int period, unsigned int duty) { struct aw_pwm_softc *sc; uint64_t period_freq, duty_freq; @@ -254,7 +254,7 @@ aw_pwm_channel_config(device_t dev, int channel, uint6 } static int -aw_pwm_channel_get_config(device_t dev, int channel, uint64_t *period, uint64_t *duty) +aw_pwm_channel_get_config(device_t dev, int channel, unsigned int *period, unsigned int *duty) { struct aw_pwm_softc *sc; Modified: head/sys/dev/pwm/pwm_if.m ============================================================================== --- head/sys/dev/pwm/pwm_if.m Fri Dec 14 18:16:35 2018 (r342086) +++ head/sys/dev/pwm/pwm_if.m Fri Dec 14 18:37:26 2018 (r342087) @@ -46,8 +46,8 @@ METHOD device_t get_bus { METHOD int channel_config { device_t dev; int channel; - uint64_t period; - uint64_t duty; + unsigned int period; + unsigned duty; }; # @@ -57,8 +57,8 @@ METHOD int channel_config { METHOD int channel_get_config { device_t dev; int channel; - uint64_t *period; - uint64_t *duty; + unsigned int *period; + unsigned int *duty; }; # Modified: head/sys/dev/pwm/pwmbus.c ============================================================================== --- head/sys/dev/pwm/pwmbus.c Fri Dec 14 18:16:35 2018 (r342086) +++ head/sys/dev/pwm/pwmbus.c Fri Dec 14 18:37:26 2018 (r342087) @@ -138,7 +138,7 @@ pwmbus_detach(device_t dev) } static int -pwmbus_channel_config(device_t bus, int channel, uint64_t period, uint64_t duty) +pwmbus_channel_config(device_t bus, int channel, unsigned int period, unsigned int duty) { struct pwmbus_softc *sc; @@ -151,7 +151,7 @@ pwmbus_channel_config(device_t bus, int channel, uint6 } static int -pwmbus_channel_get_config(device_t bus, int channel, uint64_t *period, uint64_t *duty) +pwmbus_channel_get_config(device_t bus, int channel, unsigned int *period, unsigned int *duty) { struct pwmbus_softc *sc; Modified: head/sys/dev/pwm/pwmbus_if.m ============================================================================== --- head/sys/dev/pwm/pwmbus_if.m Fri Dec 14 18:16:35 2018 (r342086) +++ head/sys/dev/pwm/pwmbus_if.m Fri Dec 14 18:37:26 2018 (r342087) @@ -59,8 +59,8 @@ HEADER { METHOD int channel_config { device_t bus; int channel; - uint64_t period; - uint64_t duty; + unsigned int period; + unsigned int duty; }; # @@ -70,8 +70,8 @@ METHOD int channel_config { METHOD int channel_get_config { device_t bus; int channel; - uint64_t *period; - uint64_t *duty; + unsigned int *period; + unsigned int *duty; }; # Modified: head/sys/sys/pwm.h ============================================================================== --- head/sys/sys/pwm.h Fri Dec 14 18:16:35 2018 (r342086) +++ head/sys/sys/pwm.h Fri Dec 14 18:37:26 2018 (r342087) @@ -35,8 +35,8 @@ struct pwm_state { int channel; - uint64_t period; - uint64_t duty; + unsigned int period; + unsigned int duty; uint32_t flags; bool enable; }; Modified: head/usr.sbin/pwm/pwm.c ============================================================================== --- head/usr.sbin/pwm/pwm.c Fri Dec 14 18:16:35 2018 (r342086) +++ head/usr.sbin/pwm/pwm.c Fri Dec 14 18:37:26 2018 (r342087) @@ -190,9 +190,9 @@ main(int argc, char *argv[]) } break; case PWM_SHOW_CONFIG: - printf("period: %ju\nduty: %ju\nenabled:%d\n", - (uintmax_t) state.period, - (uintmax_t) state.duty, + printf("period: %u\nduty: %u\nenabled:%d\n", + state.period, + state.duty, state.enable); break; case PWM_PERIOD: From owner-svn-src-head@freebsd.org Fri Dec 14 18:38:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DBD4133F0C5; Fri, 14 Dec 2018 18:38:11 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1CC3B8B284; Fri, 14 Dec 2018 18:38:11 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E58436CF; Fri, 14 Dec 2018 18:38:11 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEIcAVe023242; Fri, 14 Dec 2018 18:38:10 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEIcAaB023238; Fri, 14 Dec 2018 18:38:10 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812141838.wBEIcAaB023238@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 14 Dec 2018 18:38:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342088 - head/usr.sbin/pwm X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/usr.sbin/pwm X-SVN-Commit-Revision: 342088 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1CC3B8B284 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.71 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:38:11 -0000 Author: manu Date: Fri Dec 14 18:38:10 2018 New Revision: 342088 URL: https://svnweb.freebsd.org/changeset/base/342088 Log: pwm(8): Add percentage value support for duty cycle Modified: head/usr.sbin/pwm/pwm.8 head/usr.sbin/pwm/pwm.c Modified: head/usr.sbin/pwm/pwm.8 ============================================================================== --- head/usr.sbin/pwm/pwm.8 Fri Dec 14 18:37:26 2018 (r342087) +++ head/usr.sbin/pwm/pwm.8 Fri Dec 14 18:38:10 2018 (r342088) @@ -67,7 +67,7 @@ Show the configuration of the pwm channel .It Fl p Ar period Configure the period (in nanoseconds) of the pwm channel .It Fl d Ar duty -Configure the duty (in nanoseconds) of the pwm channel +Configure the duty (in nanoseconds or percentage) of the pwm channel .El .Sh EXAMPLES .Bl -bullet @@ -76,9 +76,13 @@ Show the configuration of the pwm channel: .Pp pwm -f /dev/pwmc0 -C .It -Configure a 50000 ns period and a 25000 duty cycles: +Configure a 50000 ns period and a 25000 duty cycle: .Pp pwm -f /dev/pwmc0 -p 50000 -d 25000 +.It +Configure a 50% duty cycle: +.Pp +pwm -f /dev/pwmc0 -d 50% .El .Sh SEE ALSO .Xr pwm 9 , Modified: head/usr.sbin/pwm/pwm.c ============================================================================== --- head/usr.sbin/pwm/pwm.c Fri Dec 14 18:37:26 2018 (r342087) +++ head/usr.sbin/pwm/pwm.c Fri Dec 14 18:38:10 2018 (r342088) @@ -71,6 +71,7 @@ main(int argc, char *argv[]) int action, ch; cap_rights_t right_ioctl; const unsigned long pwm_ioctls[] = {PWMGETSTATE, PWMSETSTATE, PWMMAXCHANNEL}; + char *percent; action = 0; fd = -1; @@ -104,7 +105,9 @@ main(int argc, char *argv[]) if (action & ~(PWM_PERIOD | PWM_DUTY)) usage(); action = PWM_DUTY; - duty = strtol(optarg, NULL, 10); + duty = strtol(optarg, &percent, 10); + if (*percent != '\0' && *percent != '%') + usage(); break; case 'c': if (channel != -1) @@ -199,8 +202,12 @@ main(int argc, char *argv[]) case PWM_DUTY: if (period != -1) state.period = period; - if (duty != -1) - state.duty = duty; + if (duty != -1) { + if (*percent != '\0') + state.duty = state.period * duty / 100; + else + state.duty = duty; + } if (ioctl(fd, PWMSETSTATE, &state) == -1) { fprintf(stderr, "Cannot configure the pwm controller\n"); From owner-svn-src-head@freebsd.org Fri Dec 14 18:39:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5FFD133F1CD; Fri, 14 Dec 2018 18:39:20 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8CBAA8B608; Fri, 14 Dec 2018 18:39:20 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6FC4F36D4; Fri, 14 Dec 2018 18:39:17 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEIdHfT023406; Fri, 14 Dec 2018 18:39:17 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEIdHwS023405; Fri, 14 Dec 2018 18:39:17 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201812141839.wBEIdHwS023405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 14 Dec 2018 18:39:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342091 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 342091 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8CBAA8B608 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.71 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.855,0]; NEURAL_HAM_SHORT(-0.98)[-0.975,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:39:21 -0000 Author: manu Date: Fri Dec 14 18:39:17 2018 New Revision: 342091 URL: https://svnweb.freebsd.org/changeset/base/342091 Log: allwinner: aw_pwm: Read value at attach The booloaded might have configured the pwm controller so read the values. Modified: head/sys/arm/allwinner/aw_pwm.c Modified: head/sys/arm/allwinner/aw_pwm.c ============================================================================== --- head/sys/arm/allwinner/aw_pwm.c Fri Dec 14 18:39:06 2018 (r342090) +++ head/sys/arm/allwinner/aw_pwm.c Fri Dec 14 18:39:17 2018 (r342091) @@ -136,7 +136,8 @@ static int aw_pwm_attach(device_t dev) { struct aw_pwm_softc *sc; - /* uint32_t reg; */ + uint64_t clk_freq; + uint32_t reg; int error; sc = device_get_softc(dev); @@ -160,6 +161,26 @@ aw_pwm_attach(device_t dev) if ((sc->busdev = pwmbus_attach_bus(dev)) == NULL) device_printf(dev, "Cannot attach pwm bus\n"); + /* Read the configuration left by U-Boot */ + reg = AW_PWM_READ(sc, AW_PWM_CTRL); + if (reg & (AW_PWM_CTRL_GATE | AW_PWM_CTRL_EN)) + sc->enabled = true; + + reg = AW_PWM_READ(sc, AW_PWM_CTRL); + reg &= AW_PWM_CTRL_PRESCALE_MASK; + if (reg > nitems(aw_pwm_clk_prescaler)) { + device_printf(dev, "Bad prescaler %x, cannot guess current settings\n", reg); + goto out; + } + clk_freq = sc->clk_freq / aw_pwm_clk_prescaler[reg]; + + reg = AW_PWM_READ(sc, AW_PWM_PERIOD); + sc->period = NS_PER_SEC / + (clk_freq / ((reg >> AW_PWM_PERIOD_TOTAL_SHIFT) & AW_PWM_PERIOD_TOTAL_MASK)); + sc->duty = NS_PER_SEC / + (clk_freq / ((reg >> AW_PWM_PERIOD_ACTIVE_SHIFT) & AW_PWM_PERIOD_ACTIVE_MASK)); + +out: return (0); fail: From owner-svn-src-head@freebsd.org Fri Dec 14 18:50:33 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2705D133F787; Fri, 14 Dec 2018 18:50:33 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BD8FF8BE5D; Fri, 14 Dec 2018 18:50:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AF28B38A1; Fri, 14 Dec 2018 18:50:32 +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 wBEIoWte029121; Fri, 14 Dec 2018 18:50:32 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEIoWN9029120; Fri, 14 Dec 2018 18:50:32 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812141850.wBEIoWN9029120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 18:50:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342093 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 342093 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BD8FF8BE5D X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.71 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.85)[-0.853,0]; NEURAL_HAM_SHORT(-0.98)[-0.977,0]; NEURAL_HAM_LONG(-0.88)[-0.881,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:50:33 -0000 Author: markj Date: Fri Dec 14 18:50:32 2018 New Revision: 342093 URL: https://svnweb.freebsd.org/changeset/base/342093 Log: Clean up the riscv pmap_bootstrap() implementation. - Build up phys_avail[] in a single loop, excluding memory used by the loaded kernel. - Fix an array indexing bug in the aforementioned phys_avail[] initialization.[1] - Remove some unneeded code copied from the arm64 implementation. PR: 231515 [1] Reviewed by: jhb MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18464 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Fri Dec 14 18:40:08 2018 (r342092) +++ head/sys/riscv/riscv/pmap.c Fri Dec 14 18:50:32 2018 (r342093) @@ -211,7 +211,7 @@ __FBSDID("$FreeBSD$"); /* The list of all the user pmaps */ LIST_HEAD(pmaplist, pmap); -static struct pmaplist allpmaps; +static struct pmaplist allpmaps = LIST_HEAD_INITIALIZER(); struct pmap kernel_pmap_store; @@ -508,17 +508,12 @@ pmap_bootstrap_l3(vm_offset_t l1pt, vm_offset_t va, vm void pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, vm_size_t kernlen) { - u_int l1_slot, l2_slot, avail_slot, map_slot, used_map_slot; - uint64_t kern_delta; - pt_entry_t *l2; - vm_offset_t va, freemempos; + u_int l1_slot, l2_slot, avail_slot, map_slot; + vm_offset_t freemempos; vm_offset_t dpcpu, msgbufpv; - vm_paddr_t pa, min_pa, max_pa; + vm_paddr_t end, max_pa, min_pa, pa, start; int i; - kern_delta = KERNBASE - kernstart; - physmem = 0; - printf("pmap_bootstrap %lx %lx %lx\n", l1pt, kernstart, kernlen); printf("%lx\n", l1pt); printf("%lx\n", (KERNBASE >> L1_SHIFT) & Ln_ADDR_MASK); @@ -527,21 +522,16 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, kernel_pmap_store.pm_l1 = (pd_entry_t *)l1pt; PMAP_LOCK_INIT(kernel_pmap); - /* - * Initialize the global pv list lock. - */ rw_init(&pvh_global_lock, "pmap pv global"); - LIST_INIT(&allpmaps); + /* Assume the address we were loaded to is a valid physical address. */ + min_pa = max_pa = kernstart; - /* Assume the address we were loaded to is a valid physical address */ - min_pa = max_pa = KERNBASE - kern_delta; - /* * Find the minimum physical address. physmap is sorted, * but may contain empty ranges. */ - for (i = 0; i < (physmap_idx * 2); i += 2) { + for (i = 0; i < physmap_idx * 2; i += 2) { if (physmap[i] == physmap[i + 1]) continue; if (physmap[i] <= min_pa) @@ -556,67 +546,18 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, /* Create a direct map region early so we can use it for pa -> va */ pmap_bootstrap_dmap(l1pt, min_pa, max_pa); - va = KERNBASE; - pa = KERNBASE - kern_delta; - /* - * Start to initialize phys_avail by copying from physmap - * up to the physical address KERNBASE points at. - */ - map_slot = avail_slot = 0; - for (; map_slot < (physmap_idx * 2); map_slot += 2) { - if (physmap[map_slot] == physmap[map_slot + 1]) - continue; - - if (physmap[map_slot] <= pa && - physmap[map_slot + 1] > pa) - break; - - phys_avail[avail_slot] = physmap[map_slot]; - phys_avail[avail_slot + 1] = physmap[map_slot + 1]; - physmem += (phys_avail[avail_slot + 1] - - phys_avail[avail_slot]) >> PAGE_SHIFT; - avail_slot += 2; - } - - /* Add the memory before the kernel */ - if (physmap[avail_slot] < pa) { - phys_avail[avail_slot] = physmap[map_slot]; - phys_avail[avail_slot + 1] = pa; - physmem += (phys_avail[avail_slot + 1] - - phys_avail[avail_slot]) >> PAGE_SHIFT; - avail_slot += 2; - } - used_map_slot = map_slot; - - /* * Read the page table to find out what is already mapped. * This assumes we have mapped a block of memory from KERNBASE * using a single L1 entry. */ - l2 = pmap_early_page_idx(l1pt, KERNBASE, &l1_slot, &l2_slot); + (void)pmap_early_page_idx(l1pt, KERNBASE, &l1_slot, &l2_slot); /* Sanity check the index, KERNBASE should be the first VA */ KASSERT(l2_slot == 0, ("The L2 index is non-zero")); - /* Find how many pages we have mapped */ - for (; l2_slot < Ln_ENTRIES; l2_slot++) { - if ((l2[l2_slot] & PTE_V) == 0) - break; + freemempos = roundup2(KERNBASE + kernlen, PAGE_SIZE); - /* Check locore used L2 superpages */ - KASSERT((l2[l2_slot] & PTE_RX) != 0, - ("Invalid bootstrap L2 table")); - - va += L2_SIZE; - pa += L2_SIZE; - } - - va = roundup2(va, L2_SIZE); - - freemempos = KERNBASE + kernlen; - freemempos = roundup2(freemempos, PAGE_SIZE); - /* Create the l3 tables for the early devmap */ freemempos = pmap_bootstrap_l3(l1pt, VM_MAX_KERNEL_ADDRESS - L2_SIZE, freemempos); @@ -642,31 +583,32 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, pa = pmap_early_vtophys(l1pt, freemempos); - /* Finish initialising physmap */ - map_slot = used_map_slot; - for (; avail_slot < (PHYS_AVAIL_SIZE - 2) && - map_slot < (physmap_idx * 2); map_slot += 2) { - if (physmap[map_slot] == physmap[map_slot + 1]) { - continue; - } + /* Initialize phys_avail. */ + for (avail_slot = map_slot = physmem = 0; map_slot < physmap_idx * 2; + map_slot += 2) { + start = physmap[map_slot]; + end = physmap[map_slot + 1]; - /* Have we used the current range? */ - if (physmap[map_slot + 1] <= pa) { + if (start == end) continue; - } + if (start >= kernstart && end <= pa) + continue; - /* Do we need to split the entry? */ - if (physmap[map_slot] < pa) { + if (start < kernstart && end > kernstart) + end = kernstart; + else if (start < pa && end > pa) + start = pa; + phys_avail[avail_slot] = start; + phys_avail[avail_slot + 1] = end; + physmem += (end - start) >> PAGE_SHIFT; + avail_slot += 2; + + if (end != physmap[map_slot + 1] && end > pa) { phys_avail[avail_slot] = pa; phys_avail[avail_slot + 1] = physmap[map_slot + 1]; - } else { - phys_avail[avail_slot] = physmap[map_slot]; - phys_avail[avail_slot + 1] = physmap[map_slot + 1]; + physmem += (physmap[map_slot + 1] - pa) >> PAGE_SHIFT; + avail_slot += 2; } - physmem += (phys_avail[avail_slot + 1] - - phys_avail[avail_slot]) >> PAGE_SHIFT; - - avail_slot += 2; } phys_avail[avail_slot] = 0; phys_avail[avail_slot + 1] = 0; From owner-svn-src-head@freebsd.org Fri Dec 14 19:14:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39A93130A0E5; Fri, 14 Dec 2018 19:14:52 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D36458D017; Fri, 14 Dec 2018 19:14:51 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C51543E90; Fri, 14 Dec 2018 19:14:51 +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 wBEJEpnj044241; Fri, 14 Dec 2018 19:14:51 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEJEp3W044240; Fri, 14 Dec 2018 19:14:51 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201812141914.wBEJEp3W044240@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 14 Dec 2018 19:14:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342094 - head/sys/mips/include X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/mips/include X-SVN-Commit-Revision: 342094 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D36458D017 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 19:14:52 -0000 Author: imp Date: Fri Dec 14 19:14:51 2018 New Revision: 342094 URL: https://svnweb.freebsd.org/changeset/base/342094 Log: atomic_fcmpset* return int, not the type of *. fcmpset returns true/false as a int, so make the return types and variables match the int to be consistent with other arch. Reviewed by: cognet@ Differential Revision: https://reviews.freebsd.org/D18557 Modified: head/sys/mips/include/atomic.h Modified: head/sys/mips/include/atomic.h ============================================================================== --- head/sys/mips/include/atomic.h Fri Dec 14 18:50:32 2018 (r342093) +++ head/sys/mips/include/atomic.h Fri Dec 14 19:14:51 2018 (r342094) @@ -392,10 +392,10 @@ atomic_cmpset_rel_32(__volatile uint32_t *p, uint32_t return (atomic_cmpset_32(p, cmpval, newval)); } -static __inline uint32_t +static __inline int atomic_fcmpset_32(__volatile uint32_t *p, uint32_t *cmpval, uint32_t newval) { - uint32_t ret; + int ret; __asm __volatile ( "1:\n\t" @@ -415,7 +415,7 @@ atomic_fcmpset_32(__volatile uint32_t *p, uint32_t *cm return ret; } -static __inline uint32_t +static __inline int atomic_fcmpset_acq_32(__volatile uint32_t *p, uint32_t *cmpval, uint32_t newval) { int retval; @@ -425,7 +425,7 @@ atomic_fcmpset_acq_32(__volatile uint32_t *p, uint32_t return (retval); } -static __inline uint32_t +static __inline int atomic_fcmpset_rel_32(__volatile uint32_t *p, uint32_t *cmpval, uint32_t newval) { mips_sync(); @@ -502,10 +502,10 @@ atomic_cmpset_rel_64(__volatile uint64_t *p, uint64_t return (atomic_cmpset_64(p, cmpval, newval)); } -static __inline uint32_t +static __inline int atomic_fcmpset_64(__volatile uint64_t *p, uint64_t *cmpval, uint64_t newval) { - uint32_t ret; + int ret; __asm __volatile ( "1:\n\t" @@ -526,7 +526,7 @@ atomic_fcmpset_64(__volatile uint64_t *p, uint64_t *cm return ret; } -static __inline uint64_t +static __inline int atomic_fcmpset_acq_64(__volatile uint64_t *p, uint64_t *cmpval, uint64_t newval) { int retval; @@ -536,7 +536,7 @@ atomic_fcmpset_acq_64(__volatile uint64_t *p, uint64_t return (retval); } -static __inline uint64_t +static __inline int atomic_fcmpset_rel_64(__volatile uint64_t *p, uint64_t *cmpval, uint64_t newval) { mips_sync(); From owner-svn-src-head@freebsd.org Fri Dec 14 19:48:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A617F130B50A; Fri, 14 Dec 2018 19:48:43 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 358168E408; Fri, 14 Dec 2018 19:48:43 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 238DE441F; Fri, 14 Dec 2018 19:48:43 +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 wBEJmgr9060301; Fri, 14 Dec 2018 19:48:42 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEJmg4K060300; Fri, 14 Dec 2018 19:48:42 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201812141948.wBEJmg4K060300@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 14 Dec 2018 19:48:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342095 - head/sys/mips/include X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/mips/include X-SVN-Commit-Revision: 342095 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 358168E408 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 19:48:44 -0000 Author: imp Date: Fri Dec 14 19:48:42 2018 New Revision: 342095 URL: https://svnweb.freebsd.org/changeset/base/342095 Log: atomic_cmpset return value is also an int. Modified: head/sys/mips/include/atomic.h Modified: head/sys/mips/include/atomic.h ============================================================================== --- head/sys/mips/include/atomic.h Fri Dec 14 19:14:51 2018 (r342094) +++ head/sys/mips/include/atomic.h Fri Dec 14 19:48:42 2018 (r342095) @@ -348,10 +348,10 @@ ATOMIC_STORE_LOAD(64) * two values are equal, update the value of *p with newval. Returns * zero if the compare failed, nonzero otherwise. */ -static __inline uint32_t +static __inline int atomic_cmpset_32(__volatile uint32_t *p, uint32_t cmpval, uint32_t newval) { - uint32_t ret; + int ret; __asm __volatile ( "1:\tll %0, %4\n\t" /* load old value */ @@ -375,7 +375,7 @@ atomic_cmpset_32(__volatile uint32_t *p, uint32_t cmpv * two values are equal, update the value of *p with newval. Returns * zero if the compare failed, nonzero otherwise. */ -static __inline uint32_t +static __inline int atomic_cmpset_acq_32(__volatile uint32_t *p, uint32_t cmpval, uint32_t newval) { int retval; @@ -385,7 +385,7 @@ atomic_cmpset_acq_32(__volatile uint32_t *p, uint32_t return (retval); } -static __inline uint32_t +static __inline int atomic_cmpset_rel_32(__volatile uint32_t *p, uint32_t cmpval, uint32_t newval) { mips_sync(); @@ -457,10 +457,10 @@ atomic_fetchadd_32(__volatile uint32_t *p, uint32_t v) * two values are equal, update the value of *p with newval. Returns * zero if the compare failed, nonzero otherwise. */ -static __inline uint64_t +static __inline int atomic_cmpset_64(__volatile uint64_t *p, uint64_t cmpval, uint64_t newval) { - uint64_t ret; + int ret; __asm __volatile ( "1:\n\t" @@ -485,7 +485,7 @@ atomic_cmpset_64(__volatile uint64_t *p, uint64_t cmpv * two values are equal, update the value of *p with newval. Returns * zero if the compare failed, nonzero otherwise. */ -static __inline uint64_t +static __inline int atomic_cmpset_acq_64(__volatile uint64_t *p, uint64_t cmpval, uint64_t newval) { int retval; @@ -495,7 +495,7 @@ atomic_cmpset_acq_64(__volatile uint64_t *p, uint64_t return (retval); } -static __inline uint64_t +static __inline int atomic_cmpset_rel_64(__volatile uint64_t *p, uint64_t cmpval, uint64_t newval) { mips_sync(); From owner-svn-src-head@freebsd.org Fri Dec 14 20:57:58 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B1EA31316572; Fri, 14 Dec 2018 20:57:58 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 57F236AD0B; Fri, 14 Dec 2018 20:57:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B7C4511E; Fri, 14 Dec 2018 20:57:58 +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 wBEKvwCm097864; Fri, 14 Dec 2018 20:57:58 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEKvwEQ097863; Fri, 14 Dec 2018 20:57:58 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812142057.wBEKvwEQ097863@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 20:57:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342096 - head/sys/riscv/conf X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/conf X-SVN-Commit-Revision: 342096 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 57F236AD0B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 20:57:58 -0000 Author: markj Date: Fri Dec 14 20:57:57 2018 New Revision: 342096 URL: https://svnweb.freebsd.org/changeset/base/342096 Log: Enable witness(4) in the RISC-V GENERIC config. Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18559 Modified: head/sys/riscv/conf/GENERIC Modified: head/sys/riscv/conf/GENERIC ============================================================================== --- head/sys/riscv/conf/GENERIC Fri Dec 14 19:48:42 2018 (r342095) +++ head/sys/riscv/conf/GENERIC Fri Dec 14 20:57:57 2018 (r342096) @@ -120,7 +120,7 @@ options DDB # Support DDB. options DEADLKRES # Enable the deadlock resolver options INVARIANTS # Enable calls of extra sanity checking options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS -# options WITNESS # Enable checks to detect deadlocks and cycles +options WITNESS # Enable checks to detect deadlocks and cycles # options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones # options EARLY_PRINTF From owner-svn-src-head@freebsd.org Fri Dec 14 21:00:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5C4013166B3; Fri, 14 Dec 2018 21:00:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8AEE16AF12; Fri, 14 Dec 2018 21:00:41 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7C6AA5158; Fri, 14 Dec 2018 21:00:41 +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 wBEL0fTg098828; Fri, 14 Dec 2018 21:00:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEL0fRU098826; Fri, 14 Dec 2018 21:00:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812142100.wBEL0fRU098826@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 21:00:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342097 - head/sys/riscv/conf X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/conf X-SVN-Commit-Revision: 342097 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8AEE16AF12 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 21:00:42 -0000 Author: markj Date: Fri Dec 14 21:00:41 2018 New Revision: 342097 URL: https://svnweb.freebsd.org/changeset/base/342097 Log: Add a QEMU config for RISC-V. Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18560 Added: head/sys/riscv/conf/QEMU (contents, props changed) Added: head/sys/riscv/conf/QEMU ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/riscv/conf/QEMU Fri Dec 14 21:00:41 2018 (r342097) @@ -0,0 +1,9 @@ +# $FreeBSD$ + +#NO_UNIVERSE + +include "GENERIC" + +ident QEMU + +options ROOTDEVNAME=\"ufs:/dev/vtbd0\" From owner-svn-src-head@freebsd.org Fri Dec 14 21:03:02 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73AE81316930; Fri, 14 Dec 2018 21:03:02 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1A8836B36A; Fri, 14 Dec 2018 21:03:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EE74752F0; Fri, 14 Dec 2018 21:03:01 +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 wBEL31px003083; Fri, 14 Dec 2018 21:03:01 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEL31f3003082; Fri, 14 Dec 2018 21:03:01 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812142103.wBEL31f3003082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 21:03:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342098 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 342098 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1A8836B36A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 21:03:02 -0000 Author: markj Date: Fri Dec 14 21:03:01 2018 New Revision: 342098 URL: https://svnweb.freebsd.org/changeset/base/342098 Log: Assume that pmap_l1() will return a PTE. pmaps on RISC-V always have an L1 page table page, so we don't need to check for this when performing lookups. Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18563 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Fri Dec 14 21:00:41 2018 (r342097) +++ head/sys/riscv/riscv/pmap.c Fri Dec 14 21:03:01 2018 (r342098) @@ -316,8 +316,6 @@ pmap_l2(pmap_t pmap, vm_offset_t va) pd_entry_t *l1; l1 = pmap_l1(pmap, va); - if (l1 == NULL) - return (NULL); if ((pmap_load(l1) & PTE_V) == 0) return (NULL); if ((pmap_load(l1) & PTE_RX) != 0) From owner-svn-src-head@freebsd.org Fri Dec 14 21:04:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6239213169DF; Fri, 14 Dec 2018 21:04:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 015246B4F9; Fri, 14 Dec 2018 21:04:31 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DBBCC52F4; Fri, 14 Dec 2018 21:04:30 +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 wBEL4Udu003183; Fri, 14 Dec 2018 21:04:30 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEL4UJI003182; Fri, 14 Dec 2018 21:04:30 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812142104.wBEL4UJI003182@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 21:04:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342099 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 342099 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 015246B4F9 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 21:04:31 -0000 Author: markj Date: Fri Dec 14 21:04:30 2018 New Revision: 342099 URL: https://svnweb.freebsd.org/changeset/base/342099 Log: Avoid needless TLB invalidations in pmap_remove_pages(). pmap_remove_pages() is called during process termination, when it is guaranteed that no other CPU may access the mappings being torn down. In particular, it unnecessary to invalidate each mapping individually since we do a pmap_invalidate_all() at the end of the function. Also don't call pmap_invalidate_all() while holding a PV list lock, the global pvh lock is sufficient. Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18562 Modified: head/sys/riscv/riscv/pmap.c Modified: head/sys/riscv/riscv/pmap.c ============================================================================== --- head/sys/riscv/riscv/pmap.c Fri Dec 14 21:03:01 2018 (r342098) +++ head/sys/riscv/riscv/pmap.c Fri Dec 14 21:04:30 2018 (r342099) @@ -2721,9 +2721,10 @@ pmap_remove_pages(pmap_t pmap) l3 = pmap_l2_to_l3(l2, pv->pv_va); tl3 = pmap_load(l3); -/* - * We cannot remove wired pages from a process' mapping at this time - */ + /* + * We cannot remove wired pages from a + * process' mapping at this time. + */ if (tl3 & PTE_SW_WIRED) { allfree = 0; continue; @@ -2742,7 +2743,6 @@ pmap_remove_pages(pmap_t pmap) (uintmax_t)tl3)); pmap_load_clear(l3); - pmap_invalidate_page(pmap, pv->pv_va); /* * Update the vm_page_t clean/reference bits. @@ -2771,9 +2771,9 @@ pmap_remove_pages(pmap_t pmap) free_pv_chunk(pc); } } - pmap_invalidate_all(pmap); if (lock != NULL) rw_wunlock(lock); + pmap_invalidate_all(pmap); rw_runlock(&pvh_global_lock); PMAP_UNLOCK(pmap); vm_page_free_pages_toq(&free, false); From owner-svn-src-head@freebsd.org Fri Dec 14 21:07:13 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9064A1316B69; Fri, 14 Dec 2018 21:07:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 350F16B6E0; Fri, 14 Dec 2018 21:07:13 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04BC95306; Fri, 14 Dec 2018 21:07:13 +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 wBEL7CsY003347; Fri, 14 Dec 2018 21:07:12 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEL7CxP003346; Fri, 14 Dec 2018 21:07:12 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201812142107.wBEL7CxP003346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 14 Dec 2018 21:07:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342100 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 342100 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 350F16B6E0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_LONG(-0.88)[-0.881,0]; NEURAL_HAM_SHORT(-0.96)[-0.965,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 21:07:13 -0000 Author: markj Date: Fri Dec 14 21:07:12 2018 New Revision: 342100 URL: https://svnweb.freebsd.org/changeset/base/342100 Log: Add some more checking to the RISC-V page fault handler. - Panic immediately if witness says we're holding non-sleepable locks. This helps ensure that we don't recurse on the pmap lock in pmap_fault_fixup(). - Panic if the kernel faults on a user address without setting an onfault handler. - Panic if the fault occurred in a critical section or interrupt handler, like we do on other platforms. - Fix some style issues in trap_pfault(). Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18561 Modified: head/sys/riscv/riscv/trap.c Modified: head/sys/riscv/riscv/trap.c ============================================================================== --- head/sys/riscv/riscv/trap.c Fri Dec 14 21:04:30 2018 (r342099) +++ head/sys/riscv/riscv/trap.c Fri Dec 14 21:07:12 2018 (r342100) @@ -167,7 +167,7 @@ svc_handler(struct trapframe *frame) } static void -data_abort(struct trapframe *frame, int lower) +data_abort(struct trapframe *frame, int usermode) { struct vm_map *map; uint64_t sbadaddr; @@ -176,9 +176,7 @@ data_abort(struct trapframe *frame, int lower) vm_prot_t ftype; vm_offset_t va; struct proc *p; - int ucode; - int error; - int sig; + int error, sig, ucode; #ifdef KDB if (kdb_active) { @@ -188,19 +186,23 @@ data_abort(struct trapframe *frame, int lower) #endif td = curthread; + p = td->td_proc; pcb = td->td_pcb; sbadaddr = frame->tf_sbadaddr; - p = td->td_proc; + if (td->td_critnest != 0 || td->td_intr_nesting_level != 0 || + WITNESS_CHECK(WARN_SLEEPOK | WARN_GIANTOK, NULL, + "Kernel page fault") != 0) + goto fatal; - if (lower) + if (usermode) map = &td->td_proc->p_vmspace->vm_map; + else if (sbadaddr >= VM_MAX_USER_ADDRESS) + map = kernel_map; else { - /* The top bit tells us which range to use */ - if ((sbadaddr >> 63) == 1) - map = kernel_map; - else - map = &td->td_proc->p_vmspace->vm_map; + if (pcb->pcb_onfault == 0) + goto fatal; + map = &td->td_proc->p_vmspace->vm_map; } va = trunc_page(sbadaddr); @@ -241,7 +243,7 @@ data_abort(struct trapframe *frame, int lower) } if (error != KERN_SUCCESS) { - if (lower) { + if (usermode) { sig = SIGSEGV; if (error == KERN_PROTECTION_FAILURE) ucode = SEGV_ACCERR; @@ -249,21 +251,23 @@ data_abort(struct trapframe *frame, int lower) ucode = SEGV_MAPERR; call_trapsignal(td, sig, ucode, (void *)sbadaddr); } else { - if (td->td_intr_nesting_level == 0 && - pcb->pcb_onfault != 0) { + if (pcb->pcb_onfault != 0) { frame->tf_a[0] = error; frame->tf_sepc = pcb->pcb_onfault; return; } - dump_regs(frame); - panic("vm_fault failed: %lx, va 0x%016lx", - frame->tf_sepc, sbadaddr); + goto fatal; } } done: - if (lower) + if (usermode) userret(td, frame); + return; + +fatal: + dump_regs(frame); + panic("Fatal page fault at %#lx: %#016lx", frame->tf_sepc, sbadaddr); } void From owner-svn-src-head@freebsd.org Fri Dec 14 21:16:05 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 213081318062; Fri, 14 Dec 2018 21:16:05 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BBD506BCEC; Fri, 14 Dec 2018 21:16:04 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A860554B6; Fri, 14 Dec 2018 21:16:04 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBELG4Ow008770; Fri, 14 Dec 2018 21:16:04 GMT (envelope-from arichardson@FreeBSD.org) Received: (from arichardson@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBELG4Tn008769; Fri, 14 Dec 2018 21:16:04 GMT (envelope-from arichardson@FreeBSD.org) Message-Id: <201812142116.wBELG4Tn008769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arichardson set sender to arichardson@FreeBSD.org using -f From: Alex Richardson Date: Fri, 14 Dec 2018 21:16:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342101 - head/lib/libnv X-SVN-Group: head X-SVN-Commit-Author: arichardson X-SVN-Commit-Paths: head/lib/libnv X-SVN-Commit-Revision: 342101 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: BBD506BCEC X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 21:16:05 -0000 Author: arichardson Date: Fri Dec 14 21:16:04 2018 New Revision: 342101 URL: https://svnweb.freebsd.org/changeset/base/342101 Log: Allow bootstrapping libnv on macOS and Linux MacOS/Linux do not define struct cmsgcred but we need to bootstrap libnv when building on non-FreeBSD systems. Since they are not used during bootstrap we can just omit these two functions there. Reviewed By: emaste Differential Revision: https://reviews.freebsd.org/D18472 Modified: head/lib/libnv/msgio.c Modified: head/lib/libnv/msgio.c ============================================================================== --- head/lib/libnv/msgio.c Fri Dec 14 21:07:12 2018 (r342100) +++ head/lib/libnv/msgio.c Fri Dec 14 21:16:04 2018 (r342101) @@ -157,6 +157,14 @@ msg_send(int sock, const struct msghdr *msg) return (0); } +/* + * MacOS/Linux do not define struct cmsgcred but we need to bootstrap libnv + * when building on non-FreeBSD systems. Since they are not used during + * bootstrap we can just omit these two functions there. + */ +#ifndef __FreeBSD__ +#warning "cred_send() not supported on non-FreeBSD systems" +#else int cred_send(int sock) { @@ -232,6 +240,7 @@ cred_recv(int sock, struct cmsgcred *cred) return (0); } +#endif static int fd_package_send(int sock, const int *fds, size_t nfds) From owner-svn-src-head@freebsd.org Fri Dec 14 21:17:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD4C71318135; Fri, 14 Dec 2018 21:17:43 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5BB2C6BE89; Fri, 14 Dec 2018 21:17:43 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4866B54C4; Fri, 14 Dec 2018 21:17:43 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBELHhZM008883; Fri, 14 Dec 2018 21:17:43 GMT (envelope-from gonzo@FreeBSD.org) Received: (from gonzo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBELHgDA008881; Fri, 14 Dec 2018 21:17:42 GMT (envelope-from gonzo@FreeBSD.org) Message-Id: <201812142117.wBELHgDA008881@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gonzo set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko Date: Fri, 14 Dec 2018 21:17:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342102 - head/sys/dev/iicbus/twsi X-SVN-Group: head X-SVN-Commit-Author: gonzo X-SVN-Commit-Paths: head/sys/dev/iicbus/twsi X-SVN-Commit-Revision: 342102 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5BB2C6BE89 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 21:17:43 -0000 Author: gonzo Date: Fri Dec 14 21:17:42 2018 New Revision: 342102 URL: https://svnweb.freebsd.org/changeset/base/342102 Log: [twsi] Make extres/clk part conditional based on the EXT_RESOURCES option value This should fix kernel build for ARMADA38X and possibly some other ARM configs Approved by: manu Modified: head/sys/dev/iicbus/twsi/mv_twsi.c head/sys/dev/iicbus/twsi/twsi.h Modified: head/sys/dev/iicbus/twsi/mv_twsi.c ============================================================================== --- head/sys/dev/iicbus/twsi/mv_twsi.c Fri Dec 14 21:16:04 2018 (r342101) +++ head/sys/dev/iicbus/twsi/mv_twsi.c Fri Dec 14 21:17:42 2018 (r342102) @@ -61,7 +61,9 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef EXT_RESOURCES #include +#endif #include #include Modified: head/sys/dev/iicbus/twsi/twsi.h ============================================================================== --- head/sys/dev/iicbus/twsi/twsi.h Fri Dec 14 21:16:04 2018 (r342101) +++ head/sys/dev/iicbus/twsi/twsi.h Fri Dec 14 21:17:42 2018 (r342102) @@ -34,7 +34,9 @@ #ifndef _TWSI_H_ #define _TWSI_H_ +#ifdef EXT_RESOURCES #include +#endif struct twsi_baud_rate { uint32_t raw; @@ -48,8 +50,10 @@ struct twsi_softc { struct resource *res[1]; /* SYS_RES_MEMORY */ struct mtx mutex; device_t iicbus; +#ifdef EXT_RESOURCES clk_t clk_core; clk_t clk_reg; +#endif bus_size_t reg_data; bus_size_t reg_slave_addr; From owner-svn-src-head@freebsd.org Fri Dec 14 22:22:45 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 013B213226A1; Fri, 14 Dec 2018 22:22:45 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 938BF6E33B; Fri, 14 Dec 2018 22:22:44 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8380560C0; Fri, 14 Dec 2018 22:22:44 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBEMMir1044901; Fri, 14 Dec 2018 22:22:44 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBEMMiFa044900; Fri, 14 Dec 2018 22:22:44 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201812142222.wBEMMiFa044900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Fri, 14 Dec 2018 22:22:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342104 - head/sys/dev/tpm X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/dev/tpm X-SVN-Commit-Revision: 342104 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 938BF6E33B X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.97)[-0.974,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 22:22:45 -0000 Author: mw Date: Fri Dec 14 22:22:43 2018 New Revision: 342104 URL: https://svnweb.freebsd.org/changeset/base/342104 Log: Fix error check for ACPI_ID_PROBE in the TPM2.0 driver Updated API does not return pointer, so adjust the TPM2.0 driver accordingly. Reported by: jhb Obtained from: Semihalf Sponsored by: Stormshield Modified: head/sys/dev/tpm/tpm_crb.c head/sys/dev/tpm/tpm_tis.c Modified: head/sys/dev/tpm/tpm_crb.c ============================================================================== --- head/sys/dev/tpm/tpm_crb.c Fri Dec 14 21:30:34 2018 (r342103) +++ head/sys/dev/tpm/tpm_crb.c Fri Dec 14 22:22:43 2018 (r342104) @@ -104,11 +104,12 @@ static int tpmcrb_acpi_probe(device_t dev) { struct resource *res; - int rid = 0; + int err, rid = 0; uint32_t caps; - if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids, NULL) == NULL) - return (ENXIO); + err = ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids, NULL); + if (err > 0) + return (err); /* Check if device is in CRB mode */ res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); Modified: head/sys/dev/tpm/tpm_tis.c ============================================================================== --- head/sys/dev/tpm/tpm_tis.c Fri Dec 14 21:30:34 2018 (r342103) +++ head/sys/dev/tpm/tpm_tis.c Fri Dec 14 22:22:43 2018 (r342104) @@ -101,11 +101,12 @@ static int tpmtis_acpi_probe(device_t dev) { struct resource *res; - int rid = 0; + int err, rid = 0; uint32_t caps; - if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmtis_ids, NULL) == NULL) - return (ENXIO); + err = ACPI_ID_PROBE(device_get_parent(dev), dev, tpmtis_ids, NULL); + if (err > 0) + return (err); /* Check if device is in TPM 2.0 TIS mode */ res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); From owner-svn-src-head@freebsd.org Fri Dec 14 22:23:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A0B8132270C for ; Fri, 14 Dec 2018 22:23:48 +0000 (UTC) (envelope-from mw@semihalf.com) Received: from mail-it1-x12a.google.com (mail-it1-x12a.google.com [IPv6:2607:f8b0:4864:20::12a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E5F566E4AB for ; Fri, 14 Dec 2018 22:23:47 +0000 (UTC) (envelope-from mw@semihalf.com) Received: by mail-it1-x12a.google.com with SMTP id h193so11820853ita.5 for ; Fri, 14 Dec 2018 14:23:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=t8MRFKpim491jiw3+sC1ceE9qZes8VXy0uemyz77Jdg=; b=cyNE6Kj5vEBGmSM6g2jJYxGg3rf1iWxfJ3m6qmOmV4Q759BxaZcLqmEEHU2aDuJLAq /phWi6q5+4QpDvpFwDfdPQmc0+apyzqWoRaDjJggg/tnaeOr2m5bPE+QNXEB9dnNL3s2 t541XzktPqri+iDMcR5wC50Jhp6kLu9Sq5NLgR3ztvUWf8ILLq6YUxGIhLyEqKldv9l/ EhF7mlJW8x3nCRIzcqgVgEvaC/BWi5dVp+4wzLPZ9KD98JKzdrX/Zbntob7fiWhPVFg6 Jw3XpgwpaGG3ARnxw3FLpfAAUwDGyutNNt/eGjjEZeA2vEiNZJ3pFicEOqJA6RvMWpXD HD8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=t8MRFKpim491jiw3+sC1ceE9qZes8VXy0uemyz77Jdg=; b=nqn4FRh9uQ19so+G6xvmJjzaZ5VZbXyzV1eJrHxnImxY3VAJMFdP6om8EPHVWoaOzl VnbqgwTuMTzgqW5Q6gmopuagUBig4UQz3lDhBKyiyGGNXmM2tVlGh/Pmz5h6+P+q4v0v KzRcmFJa5BrE+OcEDZzcBYQIJ5PeAUQvYuooGt0z21fEOmfFzA5gTG/6ZyIjlTItG0gz JlzOP+f/5uT02LSH6JEEJQgi631hxKpOegy/zVYnL5xA+Glnv/Hi4C0GTvKvo7X3wq6z fDhgHMDGP/aJdb219Ex+9grnLonSoB3wVzKFW5q+TFdLN9+DofZCgMjeUiKDQnnKIWM/ PdFA== X-Gm-Message-State: AA+aEWaVmjE4IrrDZhwzA2YZVasmlY/qN1xdDUt1Jb+85DDEC80d047F SOKBJDniTSU/1bGRyMF9cBDfGTMi+h23fxHvAQHcM3Ywm4o= X-Google-Smtp-Source: AFSGD/UR+30MvpEHxqG6RFQAzUwLQFhO9eRTKH/Lqsub34p6SSDR0Ub8Zn5CX/LdnU4X+n2FtBAEjvjKORjpvZdmvy0= X-Received: by 2002:a02:5ec9:: with SMTP id h192mr4383800jab.112.1544826227237; Fri, 14 Dec 2018 14:23:47 -0800 (PST) MIME-Version: 1.0 References: <201812141743.wBEHhZar096560@repo.freebsd.org> In-Reply-To: From: Marcin Wojtas Date: Fri, 14 Dec 2018 23:23:35 +0100 Message-ID: Subject: Re: svn commit: r342085 - head/sys/dev/tpm To: jhb@freebsd.org Cc: Marcin Wojtas , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: E5F566E4AB X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-1.00)[-0.996,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 22:23:48 -0000 Hi John, pt., 14 gru 2018 o 18:57 John Baldwin napisa=C5=82(a): > > On 12/14/18 9:43 AM, Marcin Wojtas wrote: > > Author: mw > > Date: Fri Dec 14 17:43:35 2018 > > New Revision: 342085 > > URL: https://svnweb.freebsd.org/changeset/base/342085 > > > > Log: > > Fix TPM driver compilation from r342084 > > > > Include recent ACPI_ID_PROBE API change. > > > > Modified: > > head/sys/dev/tpm/tpm_crb.c > > head/sys/dev/tpm/tpm_tis.c > > > > Modified: head/sys/dev/tpm/tpm_crb.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/dev/tpm/tpm_crb.c Fri Dec 14 16:14:36 2018 (= r342084) > > +++ head/sys/dev/tpm/tpm_crb.c Fri Dec 14 17:43:35 2018 (= r342085) > > @@ -107,7 +107,7 @@ tpmcrb_acpi_probe(device_t dev) > > int rid =3D 0; > > uint32_t caps; > > > > - if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids) =3D=3D= NULL) > > + if (ACPI_ID_PROBE(device_get_parent(dev), dev, tpmcrb_ids, NULL) = =3D=3D NULL) > > return (ENXIO); > > I think it doesn't return a pointer anymore either. I think you want to = use > its return value as the return value from probe to honor the relative pri= ority > of CID vs HID matches, so something like: > > int error; > > error =3D ACPI_ID_PROBE(...); > if (error > 0) > return (error); > > ... > > return (error); > > Instead of 'return (BUS_GENERIC_PROBE)' or some such. > Thank you for pointing this, I addressed your remark in r342104. Best regards, Marcin From owner-svn-src-head@freebsd.org Fri Dec 14 23:53:29 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82B5D1324DD7; Fri, 14 Dec 2018 23:53:29 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 290F1713BC; Fri, 14 Dec 2018 23:53:29 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 19CA6700F; Fri, 14 Dec 2018 23:53:29 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBENrShw091968; Fri, 14 Dec 2018 23:53:28 GMT (envelope-from arichardson@FreeBSD.org) Received: (from arichardson@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBENrSTr091966; Fri, 14 Dec 2018 23:53:28 GMT (envelope-from arichardson@FreeBSD.org) Message-Id: <201812142353.wBENrSTr091966@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arichardson set sender to arichardson@FreeBSD.org using -f From: Alex Richardson Date: Fri, 14 Dec 2018 23:53:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342105 - head/sys/tools/fdt X-SVN-Group: head X-SVN-Commit-Author: arichardson X-SVN-Commit-Paths: head/sys/tools/fdt X-SVN-Commit-Revision: 342105 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 290F1713BC X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.97)[-0.966,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.881,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 23:53:29 -0000 Author: arichardson Date: Fri Dec 14 23:53:28 2018 New Revision: 342105 URL: https://svnweb.freebsd.org/changeset/base/342105 Log: make_dtb.sh: Use $CPP instead of assuming that cpp is in $PATH This fixes building in CheriBSD with a strict tmp path since we don't bootstrap a cpp but pass the full path to clang-cpp instead. While touching this file also fix all shellcheck warnings in make_dtb.sh. Reviewed By: manu Differential Revision: https://reviews.freebsd.org/D18376 Modified: head/sys/tools/fdt/make_dtb.sh head/sys/tools/fdt/make_dtbo.sh Modified: head/sys/tools/fdt/make_dtb.sh ============================================================================== --- head/sys/tools/fdt/make_dtb.sh Fri Dec 14 22:22:43 2018 (r342104) +++ head/sys/tools/fdt/make_dtb.sh Fri Dec 14 23:53:28 2018 (r342105) @@ -16,12 +16,13 @@ if [ -z "${MACHINE}" ]; then MACHINE=$(uname -m) fi -: ${DTC:=dtc} -: ${ECHO:=echo} +: "${DTC:=dtc}" +: "${ECHO:=echo}" +: "${CPP:=cpp}" for d in ${dts}; do - dtb=${dtb_path}/`basename $d .dts`.dtb + dtb="${dtb_path}/$(basename "$d" .dts).dtb" ${ECHO} "converting $d -> $dtb" - cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I $S/dts/${MACHINE} -I $S/gnu/dts/${MACHINE} -I $S/gnu/dts/ -include $d /dev/null | - ${DTC} -@ -O dtb -o $dtb -b 0 -p 1024 -i $S/dts/${MACHINE} -i $S/gnu/dts/${MACHINE} -i $S/gnu/dts/ + ${CPP} -P -x assembler-with-cpp -I "$S/gnu/dts/include" -I "$S/dts/${MACHINE}" -I "$S/gnu/dts/${MACHINE}" -I "$S/gnu/dts/" -include "$d" /dev/null | + ${DTC} -@ -O dtb -o "$dtb" -b 0 -p 1024 -i "$S/dts/${MACHINE}" -i "$S/gnu/dts/${MACHINE}" -i "$S/gnu/dts/" done Modified: head/sys/tools/fdt/make_dtbo.sh ============================================================================== --- head/sys/tools/fdt/make_dtbo.sh Fri Dec 14 22:22:43 2018 (r342104) +++ head/sys/tools/fdt/make_dtbo.sh Fri Dec 14 23:53:28 2018 (r342105) @@ -16,12 +16,13 @@ if [ -z "${MACHINE}" ]; then MACHINE=$(uname -m) fi -: ${DTC:=dtc} -: ${ECHO:=echo} +: "${DTC:=dtc}" +: "${ECHO:=echo}" +: "${CPP:=cpp}" for d in ${dtso}; do - dtb=${dtbo_path}/`basename $d .dtso`.dtbo + dtb="${dtbo_path}/$(basename "$d" .dtso).dtbo" ${ECHO} "converting $d -> $dtb" - cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I $S/dts/${MACHINE} -I $S/gnu/dts/${MACHINE} -include $d /dev/null | - ${DTC} -@ -O dtb -o $dtb -i $S/dts/${MACHINE} -i $S/gnu/dts/${MACHINE} + ${CPP} -P -x assembler-with-cpp -I "$S/gnu/dts/include" -I "$S/dts/${MACHINE}" -I "$S/gnu/dts/${MACHINE}" -include "$d" /dev/null | + ${DTC} -@ -O dtb -o "$dtb" -i "$S/dts/${MACHINE}" -i "$S/gnu/dts/${MACHINE}" done From owner-svn-src-head@freebsd.org Sat Dec 15 02:49:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D26F1330402; Sat, 15 Dec 2018 02:49:18 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8625C8027B; Sat, 15 Dec 2018 02:49:17 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id wBF2n8Bh051253 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 15 Dec 2018 04:49:11 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua wBF2n8Bh051253 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id wBF2n8Pn051252; Sat, 15 Dec 2018 04:49:08 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 15 Dec 2018 04:49:08 +0200 From: Konstantin Belousov To: Marcin Wojtas Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r342084 - in head/sys: conf dev/tpm Message-ID: <20181215024908.GV60291@kib.kiev.ua> References: <201812141614.wBEGEaFO048433@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201812141614.wBEGEaFO048433@repo.freebsd.org> User-Agent: Mutt/1.11.1 (2018-12-01) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 02:49:18 -0000 On Fri, Dec 14, 2018 at 04:14:36PM +0000, Marcin Wojtas wrote: > Author: mw > Date: Fri Dec 14 16:14:36 2018 > New Revision: 342084 > URL: https://svnweb.freebsd.org/changeset/base/342084 > > Log: > Introduce driver for TPM 2.0 in CRB and FIFO (TIS) modes > > It was written basing on: > TCG PC Client Platform TPM Profile (PTP) Specification Version 22, Revision 1.03. > It only supports Locality 0. Interrupts are only supported in FIFO mode. > > The driver in FIFO mode was tested on x86 with Infineon SLB9665 discrete TPM chip. > Driver in both modes was also tested on qemu with swtpm running on host. > > Submitted by: Kornel Duleba > Obtained from: Semihalf > Sponsored by: Stormshield > Differential Revision: https://reviews.freebsd.org/D18048 > > Added: > head/sys/dev/tpm/tpm20.c (contents, props changed) > head/sys/dev/tpm/tpm20.h (contents, props changed) > head/sys/dev/tpm/tpm_crb.c (contents, props changed) > head/sys/dev/tpm/tpm_tis.c (contents, props changed) > Modified: > head/sys/conf/files.amd64 Don't you need to update sys/modules/tpm/Makefile ? From owner-svn-src-head@freebsd.org Sat Dec 15 02:35:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11E85132CDB2; Sat, 15 Dec 2018 02:35:49 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A840677D21; Sat, 15 Dec 2018 02:35:48 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 946A78EA0; Sat, 15 Dec 2018 02:35:48 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBF2ZmIh075315; Sat, 15 Dec 2018 02:35:48 GMT (envelope-from gonzo@FreeBSD.org) Received: (from gonzo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBF2ZmcO075314; Sat, 15 Dec 2018 02:35:48 GMT (envelope-from gonzo@FreeBSD.org) Message-Id: <201812150235.wBF2ZmcO075314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gonzo set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko Date: Sat, 15 Dec 2018 02:35:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342106 - head/sys/arm/mv X-SVN-Group: head X-SVN-Commit-Author: gonzo X-SVN-Commit-Paths: head/sys/arm/mv X-SVN-Commit-Revision: 342106 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A840677D21 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 02:35:49 -0000 Author: gonzo Date: Sat Dec 15 02:35:48 2018 New Revision: 342106 URL: https://svnweb.freebsd.org/changeset/base/342106 Log: [mv_pci] Do not attempt to attach disabled PCI ports Fail probe for PCI port if the respective FDT node is not enabled Differential Revision: https://reviews.freebsd.org/D18385 Modified: head/sys/arm/mv/mv_pci.c Modified: head/sys/arm/mv/mv_pci.c ============================================================================== --- head/sys/arm/mv/mv_pci.c Fri Dec 14 23:53:28 2018 (r342105) +++ head/sys/arm/mv/mv_pci.c Sat Dec 15 02:35:48 2018 (r342106) @@ -429,6 +429,9 @@ mv_pcib_probe(device_t self) OF_parent(node), "marvell,armada-370-pcie"))) return (ENXIO); + if (!ofw_bus_status_okay(self)) + return (ENXIO); + device_set_desc(self, "Marvell Integrated PCI/PCI-E Controller"); return (BUS_PROBE_DEFAULT); } From owner-svn-src-head@freebsd.org Sat Dec 15 05:47:23 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40912133657B; Sat, 15 Dec 2018 05:47:23 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D7C6A86AE1; Sat, 15 Dec 2018 05:47:22 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C55B5B109; Sat, 15 Dec 2018 05:47:22 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBF5lMl2076109; Sat, 15 Dec 2018 05:47:22 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBF5lM7J076107; Sat, 15 Dec 2018 05:47:22 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201812150547.wBF5lM7J076107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sat, 15 Dec 2018 05:47:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342109 - head/sys/contrib/zstd/lib/compress X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/contrib/zstd/lib/compress X-SVN-Commit-Revision: 342109 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D7C6A86AE1 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.81 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.94)[-0.936,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.881,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 05:47:23 -0000 Author: cem Date: Sat Dec 15 05:47:22 2018 New Revision: 342109 URL: https://svnweb.freebsd.org/changeset/base/342109 Log: Revert accidentally included changes in r342108 If you're curious, please follow along in https://reviews.freebsd.org/D18537 . Sorry for the noise. Modified: head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h head/sys/contrib/zstd/lib/compress/zstd_opt.c Modified: head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h ============================================================================== --- head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h Sat Dec 15 05:46:04 2018 (r342108) +++ head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h Sat Dec 15 05:47:22 2018 (r342109) @@ -691,7 +691,6 @@ MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* windo /* debug functions */ -#if 0 MEM_STATIC double ZSTD_fWeight(U32 rawStat) { U32 const fp_accuracy = 8; @@ -715,7 +714,6 @@ MEM_STATIC void ZSTD_debugTable(const U32* table, U32 u, table[u], ZSTD_fWeight(sum) - ZSTD_fWeight(table[u]) ); } } -#endif #if defined (__cplusplus) } Modified: head/sys/contrib/zstd/lib/compress/zstd_opt.c ============================================================================== --- head/sys/contrib/zstd/lib/compress/zstd_opt.c Sat Dec 15 05:46:04 2018 (r342108) +++ head/sys/contrib/zstd/lib/compress/zstd_opt.c Sat Dec 15 05:47:22 2018 (r342109) @@ -53,12 +53,10 @@ MEM_STATIC U32 ZSTD_fracWeight(U32 rawStat) } /* debugging function, @return price in bytes */ -#if 0 MEM_STATIC double ZSTD_fCost(U32 price) { return (double)price / (BITCOST_MULTIPLIER*8); } -#endif static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel) { @@ -854,10 +852,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, for ( ; pos <= end ; pos++ ) { U32 const matchPrice = ZSTD_getMatchPrice(offset, pos, optStatePtr, optLevel); U32 const sequencePrice = literalsPrice + matchPrice; -#if 0 DEBUGLOG(7, "rPos:%u => set initial price : %.2f", pos, ZSTD_fCost(sequencePrice)); -#endif opt[pos].mlen = pos; opt[pos].off = offset; opt[pos].litlen = litlen; @@ -883,22 +879,18 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, - ZSTD_litLengthPrice(litlen-1, optStatePtr, optLevel); assert(price < 1000000000); /* overflow check */ if (price <= opt[cur].price) { -#if 0 DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)", inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen, opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]); -#endif opt[cur].mlen = 0; opt[cur].off = 0; opt[cur].litlen = litlen; opt[cur].price = price; memcpy(opt[cur].rep, opt[cur-1].rep, sizeof(opt[cur].rep)); } else { -#if 0 DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f) (hist:%u,%u,%u)", inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), opt[cur].rep[0], opt[cur].rep[1], opt[cur].rep[2]); -#endif } } @@ -955,10 +947,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, int const price = basePrice + ZSTD_getMatchPrice(offset, mlen, optStatePtr, optLevel); if ((pos > last_pos) || (price < opt[pos].price)) { -#if 0 DEBUGLOG(7, "rPos:%u (ml=%2u) => new better price (%.2f<%.2f)", pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); -#endif while (last_pos < pos) { opt[last_pos+1].price = ZSTD_MAX_PRICE; last_pos++; } /* fill empty positions */ opt[pos].mlen = mlen; opt[pos].off = offset; @@ -967,10 +957,8 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, ZSTD_STATIC_ASSERT(sizeof(opt[pos].rep) == sizeof(repHistory)); memcpy(opt[pos].rep, &repHistory, sizeof(repHistory)); } else { -#if 0 DEBUGLOG(7, "rPos:%u (ml=%2u) => new price is worse (%.2f>=%.2f)", pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); -#endif if (optLevel==0) break; /* early update abort; gets ~+10% speed for about -0.01 ratio loss */ } } } } From owner-svn-src-head@freebsd.org Sat Dec 15 05:46:06 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 57497133654A; Sat, 15 Dec 2018 05:46:06 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E9468869F2; Sat, 15 Dec 2018 05:46:05 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D5FA5B107; Sat, 15 Dec 2018 05:46:05 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBF5k5jA076009; Sat, 15 Dec 2018 05:46:05 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBF5k4Gk076004; Sat, 15 Dec 2018 05:46:04 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201812150546.wBF5k4Gk076004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sat, 15 Dec 2018 05:46:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342108 - in head: share/man/man9 sys/contrib/zstd/lib/compress sys/dev/efidev sys/dev/ipmi sys/sys X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head: share/man/man9 sys/contrib/zstd/lib/compress sys/dev/efidev sys/dev/ipmi sys/sys X-SVN-Commit-Revision: 342108 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E9468869F2 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.81 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.94)[-0.938,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.878,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 05:46:06 -0000 Author: cem Date: Sat Dec 15 05:46:04 2018 New Revision: 342108 URL: https://svnweb.freebsd.org/changeset/base/342108 Log: efirt: When present, attempt to use EFI runtime services to shutdown PR: maybe related to 233998 (inconclusive at this time) Submitted by: byuu (previous version) Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D18506 Modified: head/share/man/man9/efirt.9 head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h head/sys/contrib/zstd/lib/compress/zstd_opt.c head/sys/dev/efidev/efirt.c head/sys/dev/ipmi/ipmi.c head/sys/sys/efi.h Modified: head/share/man/man9/efirt.9 ============================================================================== --- head/share/man/man9/efirt.9 Sat Dec 15 04:53:02 2018 (r342107) +++ head/share/man/man9/efirt.9 Sat Dec 15 05:46:04 2018 (r342108) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 12, 2018 +.Dd December 11, 2018 .Dt EFIRT 9 .Os .Sh NAME @@ -54,7 +54,7 @@ .Ft int .Fn efi_get_time_capabilities "struct efi_tmcap *tmcap" .Ft int -.Fn efi_reset_system "void" +.Fn efi_reset_system "enum efi_reset type" .Ft int .Fn efi_set_time "struct efi_tm *tm" .Ft int @@ -123,7 +123,20 @@ if the time could not be retrieved due to a hardware e .Pp The .Fn efi_reset_system -function requests a warm reset and reboot of the system. +function requests a reset of the system. +The +.Fa type +argument may be one of the +.Vt enum efi_reset +values: +.Bl -tag -width ".Dv EFI_RESET_SHUTDOWN" +.It Dv EFI_RESET_COLD +Perform a cold reset of the system, and reboot. +.It Dv EFI_RESET_WARM +Perform a warm reset of the system, and reboot. +.It Dv EFI_RESET_SHUTDOWN +Power off the system. +.El .Pp The .Fn efi_set_time @@ -239,7 +252,7 @@ The variable could not be saved due to a hardware erro .It Dv EROFS The variable in question is read-only or may not be deleted. .It Dv EDOOFUS -The varialbe could not be set due to an authentication failure. +The variable could not be set due to an authentication failure. .It Dv ENOENT The variable trying to be updated or deleted was not found. .El Modified: head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h ============================================================================== --- head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h Sat Dec 15 04:53:02 2018 (r342107) +++ head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h Sat Dec 15 05:46:04 2018 (r342108) @@ -691,6 +691,7 @@ MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* windo /* debug functions */ +#if 0 MEM_STATIC double ZSTD_fWeight(U32 rawStat) { U32 const fp_accuracy = 8; @@ -714,6 +715,7 @@ MEM_STATIC void ZSTD_debugTable(const U32* table, U32 u, table[u], ZSTD_fWeight(sum) - ZSTD_fWeight(table[u]) ); } } +#endif #if defined (__cplusplus) } Modified: head/sys/contrib/zstd/lib/compress/zstd_opt.c ============================================================================== --- head/sys/contrib/zstd/lib/compress/zstd_opt.c Sat Dec 15 04:53:02 2018 (r342107) +++ head/sys/contrib/zstd/lib/compress/zstd_opt.c Sat Dec 15 05:46:04 2018 (r342108) @@ -53,10 +53,12 @@ MEM_STATIC U32 ZSTD_fracWeight(U32 rawStat) } /* debugging function, @return price in bytes */ +#if 0 MEM_STATIC double ZSTD_fCost(U32 price) { return (double)price / (BITCOST_MULTIPLIER*8); } +#endif static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel) { @@ -852,8 +854,10 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, for ( ; pos <= end ; pos++ ) { U32 const matchPrice = ZSTD_getMatchPrice(offset, pos, optStatePtr, optLevel); U32 const sequencePrice = literalsPrice + matchPrice; +#if 0 DEBUGLOG(7, "rPos:%u => set initial price : %.2f", pos, ZSTD_fCost(sequencePrice)); +#endif opt[pos].mlen = pos; opt[pos].off = offset; opt[pos].litlen = litlen; @@ -879,18 +883,22 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, - ZSTD_litLengthPrice(litlen-1, optStatePtr, optLevel); assert(price < 1000000000); /* overflow check */ if (price <= opt[cur].price) { +#if 0 DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)", inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen, opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]); +#endif opt[cur].mlen = 0; opt[cur].off = 0; opt[cur].litlen = litlen; opt[cur].price = price; memcpy(opt[cur].rep, opt[cur-1].rep, sizeof(opt[cur].rep)); } else { +#if 0 DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f) (hist:%u,%u,%u)", inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), opt[cur].rep[0], opt[cur].rep[1], opt[cur].rep[2]); +#endif } } @@ -947,8 +955,10 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, int const price = basePrice + ZSTD_getMatchPrice(offset, mlen, optStatePtr, optLevel); if ((pos > last_pos) || (price < opt[pos].price)) { +#if 0 DEBUGLOG(7, "rPos:%u (ml=%2u) => new better price (%.2f<%.2f)", pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); +#endif while (last_pos < pos) { opt[last_pos+1].price = ZSTD_MAX_PRICE; last_pos++; } /* fill empty positions */ opt[pos].mlen = mlen; opt[pos].off = offset; @@ -957,8 +967,10 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, ZSTD_STATIC_ASSERT(sizeof(opt[pos].rep) == sizeof(repHistory)); memcpy(opt[pos].rep, &repHistory, sizeof(repHistory)); } else { +#if 0 DEBUGLOG(7, "rPos:%u (ml=%2u) => new price is worse (%.2f>=%.2f)", pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); +#endif if (optLevel==0) break; /* early update abort; gets ~+10% speed for about -0.01 ratio loss */ } } } } Modified: head/sys/dev/efidev/efirt.c ============================================================================== --- head/sys/dev/efidev/efirt.c Sat Dec 15 04:53:02 2018 (r342107) +++ head/sys/dev/efidev/efirt.c Sat Dec 15 05:46:04 2018 (r342108) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -41,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -57,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include static struct efi_systbl *efi_systbl; +static eventhandler_tag efi_shutdown_tag; /* * The following pointers point to tables in the EFI runtime service data pages. * Care should be taken to make sure that we've properly entered the EFI runtime @@ -106,6 +109,10 @@ efi_status_to_errno(efi_status status) } static struct mtx efi_lock; +static SYSCTL_NODE(_hw, OID_AUTO, efi, CTLFLAG_RWTUN, NULL, "EFI"); +static bool efi_poweroff = true; +SYSCTL_BOOL(_hw_efi, OID_AUTO, poweroff, CTLFLAG_RWTUN, &efi_poweroff, 0, + "If true, use EFI runtime services to power off in preference to ACPI"); static bool efi_is_in_map(struct efi_md *map, int ndesc, int descsz, vm_offset_t addr) @@ -126,6 +133,19 @@ efi_is_in_map(struct efi_md *map, int ndesc, int descs return (false); } +static void +efi_shutdown_final(void *dummy __unused, int howto) +{ + + /* + * On some systems, ACPI S5 is missing or does not function properly. + * When present, shutdown via EFI Runtime Services instead, unless + * disabled. + */ + if ((howto & RB_POWEROFF) != 0 && efi_poweroff) + (void)efi_reset_system(EFI_RESET_SHUTDOWN); +} + static int efi_init(void) { @@ -214,6 +234,12 @@ efi_init(void) } #endif + /* + * We use SHUTDOWN_PRI_LAST - 1 to trigger after IPMI, but before ACPI. + */ + efi_shutdown_tag = EVENTHANDLER_REGISTER(shutdown_final, + efi_shutdown_final, NULL, SHUTDOWN_PRI_LAST - 1); + return (0); } @@ -224,6 +250,8 @@ efi_uninit(void) /* Most likely disabled by tunable */ if (efi_runtime == NULL) return; + if (efi_shutdown_tag != NULL) + EVENTHANDLER_DEREGISTER(shutdown_final, efi_shutdown_tag); efi_destroy_1t1_map(); efi_systbl = NULL; @@ -411,16 +439,24 @@ efi_get_time_capabilities(struct efi_tmcap *tmcap) } int -efi_reset_system(void) +efi_reset_system(enum efi_reset type) { struct efirt_callinfo ec; + switch (type) { + case EFI_RESET_COLD: + case EFI_RESET_WARM: + case EFI_RESET_SHUTDOWN: + break; + default: + return (EINVAL); + } if (efi_runtime == NULL) return (ENXIO); bzero(&ec, sizeof(ec)); ec.ec_name = "rt_reset"; ec.ec_argcnt = 4; - ec.ec_arg1 = (uintptr_t)EFI_RESET_WARM; + ec.ec_arg1 = (uintptr_t)type; ec.ec_arg2 = (uintptr_t)0; ec.ec_arg3 = (uintptr_t)0; ec.ec_arg4 = (uintptr_t)NULL; Modified: head/sys/dev/ipmi/ipmi.c ============================================================================== --- head/sys/dev/ipmi/ipmi.c Sat Dec 15 04:53:02 2018 (r342107) +++ head/sys/dev/ipmi/ipmi.c Sat Dec 15 05:46:04 2018 (r342108) @@ -938,14 +938,14 @@ ipmi_startup(void *arg) } else if (!on) (void)ipmi_set_watchdog(sc, 0); /* - * Power cycle the system off using IPMI. We use last - 1 since we don't + * Power cycle the system off using IPMI. We use last - 2 since we don't * handle all the other kinds of reboots. We'll let others handle them. * We only try to do this if the BMC supports the Chassis device. */ if (sc->ipmi_dev_support & IPMI_ADS_CHASSIS) { device_printf(dev, "Establishing power cycle handler\n"); sc->ipmi_power_cycle_tag = EVENTHANDLER_REGISTER(shutdown_final, - ipmi_power_cycle, sc, SHUTDOWN_PRI_LAST - 1); + ipmi_power_cycle, sc, SHUTDOWN_PRI_LAST - 2); } } Modified: head/sys/sys/efi.h ============================================================================== --- head/sys/sys/efi.h Sat Dec 15 04:53:02 2018 (r342107) +++ head/sys/sys/efi.h Sat Dec 15 05:46:04 2018 (r342108) @@ -42,8 +42,9 @@ {0xeb9d2d32,0x2d88,0x11d3,0x9a,0x16,{0x00,0x90,0x27,0x3f,0xc1,0x4d}} enum efi_reset { - EFI_RESET_COLD, - EFI_RESET_WARM + EFI_RESET_COLD = 0, + EFI_RESET_WARM = 1, + EFI_RESET_SHUTDOWN = 2, }; typedef uint16_t efi_char; @@ -184,7 +185,7 @@ int efi_rt_ok(void); int efi_get_table(struct uuid *uuid, void **ptr); int efi_get_time(struct efi_tm *tm); int efi_get_time_capabilities(struct efi_tmcap *tmcap); -int efi_reset_system(void); +int efi_reset_system(enum efi_reset type); int efi_set_time(struct efi_tm *tm); int efi_var_get(uint16_t *name, struct uuid *vendor, uint32_t *attrib, size_t *datasize, void *data); From owner-svn-src-head@freebsd.org Sat Dec 15 04:53:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28E7513347F7; Sat, 15 Dec 2018 04:53:03 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C2BE584D06; Sat, 15 Dec 2018 04:53:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6011A88D; Sat, 15 Dec 2018 04:53:02 +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 wBF4r2XI049362; Sat, 15 Dec 2018 04:53:02 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBF4r21L049361; Sat, 15 Dec 2018 04:53:02 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201812150453.wBF4r21L049361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 15 Dec 2018 04:53:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342107 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 342107 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: C2BE584D06 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.81 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.93)[-0.934,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 04:53:03 -0000 Author: jhibbits Date: Sat Dec 15 04:53:02 2018 New Revision: 342107 URL: https://svnweb.freebsd.org/changeset/base/342107 Log: powerpcspe: Don't require FPU_EMU for powerpcspe IEEE emulation Build only the necessary fpu_emu files for supporting the SPE IEEE-754 emulation exception handler. MFC after: 1 week Modified: head/sys/conf/files.powerpc Modified: head/sys/conf/files.powerpc ============================================================================== --- head/sys/conf/files.powerpc Sat Dec 15 02:35:48 2018 (r342106) +++ head/sys/conf/files.powerpc Sat Dec 15 04:53:02 2018 (r342107) @@ -126,15 +126,15 @@ powerpc/cpufreq/mpc85xx_jog.c optional cpufreq mpc85xx powerpc/cpufreq/pcr.c optional cpufreq aim powerpc/cpufreq/pmcr.c optional cpufreq aim powerpc64 powerpc/cpufreq/pmufreq.c optional cpufreq aim pmu -powerpc/fpu/fpu_add.c optional fpu_emu -powerpc/fpu/fpu_compare.c optional fpu_emu -powerpc/fpu/fpu_div.c optional fpu_emu +powerpc/fpu/fpu_add.c optional fpu_emu | powerpcspe +powerpc/fpu/fpu_compare.c optional fpu_emu | powerpcspe +powerpc/fpu/fpu_div.c optional fpu_emu | powerpcspe powerpc/fpu/fpu_emu.c optional fpu_emu -powerpc/fpu/fpu_explode.c optional fpu_emu -powerpc/fpu/fpu_implode.c optional fpu_emu -powerpc/fpu/fpu_mul.c optional fpu_emu +powerpc/fpu/fpu_explode.c optional fpu_emu | powerpcspe +powerpc/fpu/fpu_implode.c optional fpu_emu | powerpcspe +powerpc/fpu/fpu_mul.c optional fpu_emu | powerpcspe powerpc/fpu/fpu_sqrt.c optional fpu_emu -powerpc/fpu/fpu_subr.c optional fpu_emu +powerpc/fpu/fpu_subr.c optional fpu_emu | powerpcspe powerpc/mambo/mambocall.S optional mambo powerpc/mambo/mambo.c optional mambo powerpc/mambo/mambo_console.c optional mambo From owner-svn-src-head@freebsd.org Sat Dec 15 10:38:11 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D10911340E68; Sat, 15 Dec 2018 10:38:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7B0C86A37E; Sat, 15 Dec 2018 10:38: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BE86E4A4; Sat, 15 Dec 2018 10:38: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 wBFAcAnR027434; Sat, 15 Dec 2018 10:38:10 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFAc8gk027422; Sat, 15 Dec 2018 10:38:08 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201812151038.wBFAc8gk027422@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sat, 15 Dec 2018 10:38:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342113 - in head/libexec/rtld-elf: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv sparc64 X-SVN-Group: head X-SVN-Commit-Author: mmel X-SVN-Commit-Paths: in head/libexec/rtld-elf: . aarch64 amd64 arm i386 mips powerpc powerpc64 riscv sparc64 X-SVN-Commit-Revision: 342113 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7B0C86A37E X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.82 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.95)[-0.952,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.878,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 10:38:11 -0000 Author: mmel Date: Sat Dec 15 10:38:07 2018 New Revision: 342113 URL: https://svnweb.freebsd.org/changeset/base/342113 Log: Improve R_AARCH64_TLSDESC relocation. The original code did not support dynamically loaded libraries and used suboptimal access to TLS variables. New implementation removes lazy resolving of TLS relocation - due to flaw in TLSDESC design is impossible to switch resolver function at runtime without expensive locking. Due to this, 3 specialized resolvers are implemented: - load time resolver for TLS relocation from libraries loaded with main executable (thus with known TLS offset). - resolver for undefined thread weak symbols. - slower lazy resolver for dynamically loaded libraries with fast path for already resolved symbols. PR: 228892, 232149, 233204, 232311 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D18417 Modified: head/libexec/rtld-elf/aarch64/reloc.c head/libexec/rtld-elf/aarch64/rtld_start.S head/libexec/rtld-elf/amd64/reloc.c head/libexec/rtld-elf/arm/reloc.c head/libexec/rtld-elf/i386/reloc.c head/libexec/rtld-elf/mips/reloc.c head/libexec/rtld-elf/powerpc/reloc.c head/libexec/rtld-elf/powerpc64/reloc.c head/libexec/rtld-elf/riscv/reloc.c head/libexec/rtld-elf/rtld.c head/libexec/rtld-elf/rtld.h head/libexec/rtld-elf/sparc64/reloc.c Modified: head/libexec/rtld-elf/aarch64/reloc.c ============================================================================== --- head/libexec/rtld-elf/aarch64/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/aarch64/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -49,7 +49,8 @@ __FBSDID("$FreeBSD$"); * This is not the correct prototype, but we only need it for * a function pointer to a simple asm function. */ -void *_rtld_tlsdesc(void *); +void *_rtld_tlsdesc_static(void *); +void *_rtld_tlsdesc_undef(void *); void *_rtld_tlsdesc_dynamic(void *); void _exit(int); @@ -122,78 +123,58 @@ do_copy_relocations(Obj_Entry *dstobj) } struct tls_data { - int64_t index; - Obj_Entry *obj; - const Elf_Rela *rela; + Elf_Addr dtv_gen; + int tls_index; + Elf_Addr tls_offs; }; -int64_t rtld_tlsdesc_handle(struct tls_data *tlsdesc, int flags); - -static struct tls_data * -reloc_tlsdesc_alloc(Obj_Entry *obj, const Elf_Rela *rela) +static Elf_Addr +reloc_tlsdesc_alloc(int tlsindex, Elf_Addr tlsoffs) { struct tls_data *tlsdesc; tlsdesc = xmalloc(sizeof(struct tls_data)); - tlsdesc->index = -1; - tlsdesc->obj = obj; - tlsdesc->rela = rela; + tlsdesc->dtv_gen = tls_dtv_generation; + tlsdesc->tls_index = tlsindex; + tlsdesc->tls_offs = tlsoffs; - return (tlsdesc); + return ((Elf_Addr)tlsdesc); } -/* - * Look up the symbol to find its tls index - */ -static int64_t -rtld_tlsdesc_handle_locked(struct tls_data *tlsdesc, int flags, - RtldLockState *lockstate) +static void +reloc_tlsdesc(const Obj_Entry *obj, const Elf_Rela *rela, Elf_Addr *where, + int flags, RtldLockState *lockstate) { - const Elf_Rela *rela; const Elf_Sym *def; const Obj_Entry *defobj; - Obj_Entry *obj; + Elf_Addr offs; - rela = tlsdesc->rela; - obj = tlsdesc->obj; - def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, flags, NULL, - lockstate); - if (def == NULL) - rtld_die(); + offs = 0; + if (ELF_R_SYM(rela->r_info) != 0) { + def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, flags, + NULL, lockstate); + if (def == NULL) + rtld_die(); + offs = def->st_value; + obj = defobj; + if (def->st_shndx == SHN_UNDEF) { + /* Weak undefined thread variable */ + where[0] = (Elf_Addr)_rtld_tlsdesc_undef; + where[1] = rela->r_addend; + return; + } + } + offs += rela->r_addend; - tlsdesc->index = defobj->tlsoffset + def->st_value + rela->r_addend; - - return (tlsdesc->index); -} - -int64_t -rtld_tlsdesc_handle(struct tls_data *tlsdesc, int flags) -{ - RtldLockState lockstate; - - /* We have already found the index, return it */ - if (tlsdesc->index >= 0) - return (tlsdesc->index); - - wlock_acquire(rtld_bind_lock, &lockstate); - /* tlsdesc->index may have been set by another thread */ - if (tlsdesc->index == -1) - rtld_tlsdesc_handle_locked(tlsdesc, flags, &lockstate); - lock_release(rtld_bind_lock, &lockstate); - - return (tlsdesc->index); -} - -static void -reloc_tlsdesc(Obj_Entry *obj, const Elf_Rela *rela, Elf_Addr *where) -{ - if (ELF_R_SYM(rela->r_info) == 0) { - where[0] = (Elf_Addr)_rtld_tlsdesc; - where[1] = obj->tlsoffset + rela->r_addend; + if (obj->tlsoffset != 0) { + /* Variable is in initialy allocated TLS segment */ + where[0] = (Elf_Addr)_rtld_tlsdesc_static; + where[1] = obj->tlsoffset + offs; } else { + /* TLS offest is unknown at load time, use dynamic resolving */ where[0] = (Elf_Addr)_rtld_tlsdesc_dynamic; - where[1] = (Elf_Addr)reloc_tlsdesc_alloc(obj, rela); + where[1] = reloc_tlsdesc_alloc(obj->tlsindex, offs); } } @@ -201,7 +182,7 @@ reloc_tlsdesc(Obj_Entry *obj, const Elf_Rela *rela, El * Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags, RtldLockState *lockstate) { const Elf_Rela *relalim; const Elf_Rela *rela; @@ -218,7 +199,8 @@ reloc_plt(Obj_Entry *obj) *where += (Elf_Addr)obj->relocbase; break; case R_AARCH64_TLSDESC: - reloc_tlsdesc(obj, rela, where); + reloc_tlsdesc(obj, rela, where, SYMLOOK_IN_PLT | flags, + lockstate); break; case R_AARCH64_IRELATIVE: obj->irelative = true; @@ -458,7 +440,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int } break; case R_AARCH64_TLSDESC: - reloc_tlsdesc(obj, rela, where); + reloc_tlsdesc(obj, rela, where, flags, lockstate); break; case R_AARCH64_TLS_TPREL64: /* @@ -478,9 +460,25 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int return (-1); } } - - *where = def->st_value + rela->r_addend + - defobj->tlsoffset; + /* Test weak undefined thread variable */ + if (def->st_shndx != SHN_UNDEF) { + *where = def->st_value + rela->r_addend + + defobj->tlsoffset; + } else { + /* + * XXX We should relocate undefined thread + * weak variable address to NULL, but how? + * Can we return error in this situation? + */ + rtld_printf("%s: Unable to relocate undefined " + "weak TLS variable\n", obj->path); +#if 0 + return (-1); +#else + *where = def->st_value + rela->r_addend + + defobj->tlsoffset; +#endif + } break; /* Modified: head/libexec/rtld-elf/aarch64/rtld_start.S ============================================================================== --- head/libexec/rtld-elf/aarch64/rtld_start.S Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/aarch64/rtld_start.S Sat Dec 15 10:38:07 2018 (r342113) @@ -118,55 +118,145 @@ ENTRY(_rtld_bind_start) END(_rtld_bind_start) /* - * uint64_t _rtld_tlsdesc(struct tlsdesc *); + * struct rel_tlsdesc { + * uint64_t resolver_fnc; + * uint64_t resolver_arg; * - * struct tlsdesc { - * uint64_t ptr; - * uint64_t data; - * }; * - * Returns the data. + * uint64_t _rtld_tlsdesc_static(struct rel_tlsdesc *); + * + * Resolver function for TLS symbols resolved at load time */ -ENTRY(_rtld_tlsdesc) +ENTRY(_rtld_tlsdesc_static) + .cfi_startproc ldr x0, [x0, #8] ret -END(_rtld_tlsdesc) + .cfi_endproc +END(_rtld_tlsdesc_static) /* - * uint64_t _rtld_tlsdesc_dynamic(struct tlsdesc *); + * uint64_t _rtld_tlsdesc_undef(void); * - * TODO: We could lookup the saved index here to skip saving the entire stack. + * Resolver function for weak and undefined TLS symbols */ +ENTRY(_rtld_tlsdesc_undef) + .cfi_startproc + str x1, [sp, #-16]! + .cfi_adjust_cfa_offset 16 + + mrs x1, tpidr_el0 + ldr x0, [x0, #8] + sub x0, x0, x1 + + ldr x1, [sp], #16 + .cfi_adjust_cfa_offset -16 + .cfi_endproc + ret +END(_rtld_tlsdesc_undef) + +/* + * uint64_t _rtld_tlsdesc_dynamic(struct rel_tlsdesc *); + * + * Resolver function for TLS symbols from dlopen() + */ ENTRY(_rtld_tlsdesc_dynamic) - /* Store any registers we may use in rtld_tlsdesc_handle */ - stp x29, x30, [sp, #-(10 * 16)]! + .cfi_startproc + + /* Save registers used in fast path */ + stp x1, x2, [sp, #(-2 * 16)]! + stp x3, x4, [sp, #(1 * 16)] + .cfi_adjust_cfa_offset 2 * 16 + .cfi_rel_offset x1, 0 + .cfi_rel_offset x2, 8 + .cfi_rel_offset x3, 16 + .cfi_rel_offset x4, 24 + + /* Test fastpath - inlined version of tls_get_addr_common(). */ + ldr x1, [x0, #8] /* tlsdesc ptr */ + mrs x4, tpidr_el0 + ldr x0, [x4] /* DTV pointer */ + ldr x2, [x0] /* dtv[0] (generation count) */ + ldr x3, [x1] /* tlsdec->dtv_gen */ + cmp x2, x3 + b.ne 1f /* dtv[0] != tlsdec->dtv_gen */ + + ldr w2, [x1, #8] /* tlsdec->tls_index */ + add w2, w2, #1 + ldr x3, [x0, w2, sxtw #3] /* dtv[tlsdesc->tls_index + 1] */ + cbz x3, 1f + + /* Return (dtv[tlsdesc->tls_index + 1] + tlsdesc->tls_offs - tp) */ + ldr x2, [x1, #16] /* tlsdec->tls_offs */ + add x2, x2, x3 + sub x0, x2, x4 + /* Restore registers and return */ + ldp x3, x4, [sp, #(1 * 16)] + ldp x1, x2, [sp], #(2 * 16) + .cfi_adjust_cfa_offset -2 * 16 + ret + + /* + * Slow path + * return( + * tls_get_addr_common(tp, tlsdesc->tls_index, tlsdesc->tls_offs)); + * + */ +1: + /* Save all interger registers */ + stp x29, x30, [sp, #-(8 * 16)]! + .cfi_adjust_cfa_offset 8 * 16 + .cfi_rel_offset x29, 0 + .cfi_rel_offset x30, 8 + mov x29, sp - stp x1, x2, [sp, #(1 * 16)] - stp x3, x4, [sp, #(2 * 16)] - stp x5, x6, [sp, #(3 * 16)] - stp x7, x8, [sp, #(4 * 16)] - stp x9, x10, [sp, #(5 * 16)] - stp x11, x12, [sp, #(6 * 16)] - stp x13, x14, [sp, #(7 * 16)] - stp x15, x16, [sp, #(8 * 16)] - stp x17, x18, [sp, #(9 * 16)] + stp x5, x6, [sp, #(1 * 16)] + stp x7, x8, [sp, #(2 * 16)] + stp x9, x10, [sp, #(3 * 16)] + stp x11, x12, [sp, #(4 * 16)] + stp x13, x14, [sp, #(5 * 16)] + stp x15, x16, [sp, #(6 * 16)] + stp x17, x18, [sp, #(7 * 16)] + .cfi_rel_offset x5, 16 + .cfi_rel_offset x6, 24 + .cfi_rel_offset x7, 32 + .cfi_rel_offset x8, 40 + .cfi_rel_offset x9, 48 + .cfi_rel_offset x10, 56 + .cfi_rel_offset x11, 64 + .cfi_rel_offset x12, 72 + .cfi_rel_offset x13, 80 + .cfi_rel_offset x14, 88 + .cfi_rel_offset x15, 96 + .cfi_rel_offset x16, 104 + .cfi_rel_offset x17, 112 + .cfi_rel_offset x18, 120 /* Find the tls offset */ - ldr x0, [x0, #8] - mov x1, #1 - bl rtld_tlsdesc_handle + mov x0, x4 /* tp */ + mov x3, x1 /* tlsdesc ptr */ + ldr w1, [x3, #8] /* tlsdec->tls_index */ + ldr x2, [x3, #16] /* tlsdec->tls_offs */ + bl tls_get_addr_common + mrs x1, tpidr_el0 + sub x0, x0, x1 - /* Restore the registers */ - ldp x17, x18, [sp, #(9 * 16)] - ldp x15, x16, [sp, #(8 * 16)] - ldp x13, x14, [sp, #(7 * 16)] - ldp x11, x12, [sp, #(6 * 16)] - ldp x9, x10, [sp, #(5 * 16)] - ldp x7, x8, [sp, #(4 * 16)] - ldp x5, x6, [sp, #(3 * 16)] - ldp x3, x4, [sp, #(2 * 16)] - ldp x1, x2, [sp, #(1 * 16)] - ldp x29, x30, [sp], #(10 * 16) + /* Restore slow patch registers */ + ldp x17, x18, [sp, #(7 * 16)] + ldp x15, x16, [sp, #(6 * 16)] + ldp x13, x14, [sp, #(5 * 16)] + ldp x11, x12, [sp, #(4 * 16)] + ldp x9, x10, [sp, #(3 * 16)] + ldp x7, x8, [sp, #(2 * 16)] + ldp x5, x6, [sp, #(1 * 16)] + ldp x29, x30, [sp], #(8 * 16) + .cfi_adjust_cfa_offset -8 * 16 + .cfi_restore x29 + .cfi_restore x30 + /* Restore fast path registers and return */ + ldp x3, x4, [sp, #16] + ldp x1, x2, [sp], #(2 * 16) + .cfi_adjust_cfa_offset -2 * 16 + .cfi_endproc ret END(_rtld_tlsdesc_dynamic) Modified: head/libexec/rtld-elf/amd64/reloc.c ============================================================================== --- head/libexec/rtld-elf/amd64/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/amd64/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -323,7 +323,7 @@ done: /* Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rela *relalim; const Elf_Rela *rela; Modified: head/libexec/rtld-elf/arm/reloc.c ============================================================================== --- head/libexec/rtld-elf/arm/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/arm/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -389,7 +389,7 @@ done: * * Process the PLT relocations. * */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rel *rellim; const Elf_Rel *rel; Modified: head/libexec/rtld-elf/i386/reloc.c ============================================================================== --- head/libexec/rtld-elf/i386/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/i386/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -274,7 +274,7 @@ done: /* Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rel *rellim; const Elf_Rel *rel; Modified: head/libexec/rtld-elf/mips/reloc.c ============================================================================== --- head/libexec/rtld-elf/mips/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/mips/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -652,7 +652,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int * Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rel *rellim; const Elf_Rel *rel; Modified: head/libexec/rtld-elf/powerpc/reloc.c ============================================================================== --- head/libexec/rtld-elf/powerpc/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/powerpc/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -402,7 +402,7 @@ reloc_plt_object(Obj_Entry *obj, const Elf_Rela *rela) * Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rela *relalim; const Elf_Rela *rela; Modified: head/libexec/rtld-elf/powerpc64/reloc.c ============================================================================== --- head/libexec/rtld-elf/powerpc64/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/powerpc64/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -376,7 +376,7 @@ reloc_plt_object(Obj_Entry *obj, const Elf_Rela *rela) * Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rela *relalim; const Elf_Rela *rela; Modified: head/libexec/rtld-elf/riscv/reloc.c ============================================================================== --- head/libexec/rtld-elf/riscv/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/riscv/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -145,7 +145,7 @@ do_copy_relocations(Obj_Entry *dstobj) * Process the PLT relocations. */ int -reloc_plt(Obj_Entry *obj) +reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) { const Elf_Rela *relalim; const Elf_Rela *rela; Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/rtld.c Sat Dec 15 10:38:07 2018 (r342113) @@ -2890,7 +2890,7 @@ relocate_object(Obj_Entry *obj, bool bind_now, Obj_Ent init_pltgot(obj); /* Process the PLT relocations. */ - if (reloc_plt(obj) == -1) + if (reloc_plt(obj, flags, lockstate) == -1) return (-1); /* Relocate the jump slots if we are doing immediate binding. */ if ((obj->bind_now || bind_now) && reloc_jmpslots(obj, flags, Modified: head/libexec/rtld-elf/rtld.h ============================================================================== --- head/libexec/rtld-elf/rtld.h Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/rtld.h Sat Dec 15 10:38:07 2018 (r342113) @@ -400,7 +400,7 @@ int convert_prot(int elfflags); int do_copy_relocations(Obj_Entry *); int reloc_non_plt(Obj_Entry *, Obj_Entry *, int flags, struct Struct_RtldLockState *); -int reloc_plt(Obj_Entry *); +int reloc_plt(Obj_Entry *, int flags, struct Struct_RtldLockState *); int reloc_jmpslots(Obj_Entry *, int flags, struct Struct_RtldLockState *); int reloc_iresolve(Obj_Entry *, struct Struct_RtldLockState *); int reloc_gnu_ifunc(Obj_Entry *, int flags, struct Struct_RtldLockState *); Modified: head/libexec/rtld-elf/sparc64/reloc.c ============================================================================== --- head/libexec/rtld-elf/sparc64/reloc.c Sat Dec 15 09:12:19 2018 (r342112) +++ head/libexec/rtld-elf/sparc64/reloc.c Sat Dec 15 10:38:07 2018 (r342113) @@ -487,7 +487,8 @@ reloc_nonplt_object(Obj_Entry *obj, const Elf_Rela *re } int -reloc_plt(Obj_Entry *obj __unused) +reloc_plt(Obj_Entry *obj __unused, int flags __unused, + RtldLockState *lockstate __unused) { #if 0 const Obj_Entry *defobj; From owner-svn-src-head@freebsd.org Sat Dec 15 11:32:12 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89AD41342F95; Sat, 15 Dec 2018 11:32:12 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2AF056C19F; Sat, 15 Dec 2018 11:32:12 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1BBA7EF3F; Sat, 15 Dec 2018 11:32:12 +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 wBFBWBIa058002; Sat, 15 Dec 2018 11:32:11 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFBWBeU058001; Sat, 15 Dec 2018 11:32:11 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201812151132.wBFBWBeU058001@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 15 Dec 2018 11:32:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342114 - head/sys/rpc/rpcsec_gss X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/sys/rpc/rpcsec_gss X-SVN-Commit-Revision: 342114 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2AF056C19F X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.82 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.95)[-0.950,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 11:32:12 -0000 Author: trasz Date: Sat Dec 15 11:32:11 2018 New Revision: 342114 URL: https://svnweb.freebsd.org/changeset/base/342114 Log: Add kern.rpc.gss.client_max, to make it possible to bump it easily. This can drastically lower the load on gssd(8) on large NFS servers. Submitted by: Per Andersson Reviewed by: rmacklem@ MFC after: 2 weeks Sponsored by: Chalmers University of Technology Differential Revision: https://reviews.freebsd.org/D18393 Modified: head/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c Modified: head/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c ============================================================================== --- head/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c Sat Dec 15 10:38:07 2018 (r342113) +++ head/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c Sat Dec 15 11:32:11 2018 (r342114) @@ -171,9 +171,22 @@ struct svc_rpc_gss_cookedcred { #define CLIENT_HASH_SIZE 256 #define CLIENT_MAX 128 +u_int svc_rpc_gss_client_max = CLIENT_MAX; + +SYSCTL_NODE(_kern, OID_AUTO, rpc, CTLFLAG_RW, 0, "RPC"); +SYSCTL_NODE(_kern_rpc, OID_AUTO, gss, CTLFLAG_RW, 0, "GSS"); + +SYSCTL_UINT(_kern_rpc_gss, OID_AUTO, client_max, CTLFLAG_RW, + &svc_rpc_gss_client_max, 0, + "Max number of rpc-gss clients"); + +static u_int svc_rpc_gss_client_count; +SYSCTL_UINT(_kern_rpc_gss, OID_AUTO, client_count, CTLFLAG_RD, + &svc_rpc_gss_client_count, 0, + "Number of rpc-gss clients"); + struct svc_rpc_gss_client_list svc_rpc_gss_client_hash[CLIENT_HASH_SIZE]; struct svc_rpc_gss_client_list svc_rpc_gss_clients; -static size_t svc_rpc_gss_client_count; static uint32_t svc_rpc_gss_next_clientid = 1; static void @@ -669,7 +682,7 @@ svc_rpc_gss_timeout_clients(void) */ sx_xlock(&svc_rpc_gss_lock); client = TAILQ_LAST(&svc_rpc_gss_clients, svc_rpc_gss_client_list); - while (svc_rpc_gss_client_count > CLIENT_MAX && client != NULL) { + while (svc_rpc_gss_client_count > svc_rpc_gss_client_max && client != NULL) { svc_rpc_gss_forget_client_locked(client); sx_xunlock(&svc_rpc_gss_lock); svc_rpc_gss_release_client(client); From owner-svn-src-head@freebsd.org Sat Dec 15 11:36:21 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ECE971343352; Sat, 15 Dec 2018 11:36:20 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 89C346C6CC; Sat, 15 Dec 2018 11:36:20 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7B5CDEF62; Sat, 15 Dec 2018 11:36:20 +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 wBFBaKO6058237; Sat, 15 Dec 2018 11:36:20 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFBaKV3058236; Sat, 15 Dec 2018 11:36:20 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201812151136.wBFBaKV3058236@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sat, 15 Dec 2018 11:36:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342115 - head/sbin/fsck_ffs X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/sbin/fsck_ffs X-SVN-Commit-Revision: 342115 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 89C346C6CC X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 11:36:21 -0000 Author: trasz Date: Sat Dec 15 11:36:20 2018 New Revision: 342115 URL: https://svnweb.freebsd.org/changeset/base/342115 Log: Make fsck(8) use pread(2). This cuts the number of syscalls by half. Reviewed by: kib, mckusick MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D17586 Modified: head/sbin/fsck_ffs/fsutil.c Modified: head/sbin/fsck_ffs/fsutil.c ============================================================================== --- head/sbin/fsck_ffs/fsutil.c Sat Dec 15 11:32:11 2018 (r342114) +++ head/sbin/fsck_ffs/fsutil.c Sat Dec 15 11:36:20 2018 (r342115) @@ -576,9 +576,7 @@ blread(int fd, char *buf, ufs2_daddr_t blk, long size) slowio_start(); totalreads++; diskreads++; - if (lseek(fd, offset, 0) < 0) - rwerror("SEEK BLK", blk); - else if (read(fd, buf, (int)size) == size) { + if (pread(fd, buf, (int)size, offset) == size) { if (bkgrdflag) slowio_end(); return (0); @@ -595,14 +593,11 @@ blread(int fd, char *buf, ufs2_daddr_t blk, long size) } else rwerror("READ BLK", blk); - if (lseek(fd, offset, 0) < 0) - rwerror("SEEK BLK", blk); errs = 0; memset(buf, 0, (size_t)size); printf("THE FOLLOWING DISK SECTORS COULD NOT BE READ:"); for (cp = buf, i = 0; i < size; i += secsize, cp += secsize) { - if (read(fd, cp, (int)secsize) != secsize) { - (void)lseek(fd, offset + i + secsize, 0); + if (pread(fd, cp, (int)secsize, offset + i) != secsize) { if (secsize != dev_bsize && dev_bsize != 1) printf(" %jd (%jd),", (intmax_t)(blk * dev_bsize + i) / secsize, @@ -629,22 +624,16 @@ blwrite(int fd, char *buf, ufs2_daddr_t blk, ssize_t s return; offset = blk; offset *= dev_bsize; - if (lseek(fd, offset, 0) < 0) - rwerror("SEEK BLK", blk); - else if (write(fd, buf, size) == size) { + if (pwrite(fd, buf, size, offset) == size) { fsmodified = 1; return; } resolved = 0; rwerror("WRITE BLK", blk); - if (lseek(fd, offset, 0) < 0) - rwerror("SEEK BLK", blk); printf("THE FOLLOWING SECTORS COULD NOT BE WRITTEN:"); for (cp = buf, i = 0; i < size; i += dev_bsize, cp += dev_bsize) - if (write(fd, cp, dev_bsize) != dev_bsize) { - (void)lseek(fd, offset + i + dev_bsize, 0); + if (pwrite(fd, cp, dev_bsize, offset + i) != dev_bsize) printf(" %jd,", (intmax_t)blk + i / dev_bsize); - } printf("\n"); return; } From owner-svn-src-head@freebsd.org Sat Dec 15 14:08:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B6641316371; Sat, 15 Dec 2018 14:08:43 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F199171EA0; Sat, 15 Dec 2018 14:08:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B1A6A189AF; Sat, 15 Dec 2018 14:08:42 +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 wBFE8gk4036809; Sat, 15 Dec 2018 14:08:42 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFE8fHO036805; Sat, 15 Dec 2018 14:08:41 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201812151408.wBFE8fHO036805@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 15 Dec 2018 14:08:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342123 - in head: contrib/llvm/tools/clang/lib/Basic lib/clang/include/clang/Basic lib/clang/include/lld/Common lib/clang/include/llvm/Support X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in head: contrib/llvm/tools/clang/lib/Basic lib/clang/include/clang/Basic lib/clang/include/lld/Common lib/clang/include/llvm/Support X-SVN-Commit-Revision: 342123 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: F199171EA0 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.97)[-0.965,0]; NEURAL_HAM_LONG(-0.88)[-0.881,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 14:08:43 -0000 Author: dim Date: Sat Dec 15 14:08:41 2018 New Revision: 342123 URL: https://svnweb.freebsd.org/changeset/base/342123 Log: Update clang, llvm, lld, lldb, compiler-rt and libc++ version number to 7.0.1 release r349250. There were no functional changes since the 7.0.1 rc3 import. PR: 230240, 230355 Relnotes: yes MFC after: 2 months X-MFC-With: r341825 Modified: head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/lld/Common/Version.inc head/lib/clang/include/llvm/Support/VCSRevision.h Directory Properties: head/contrib/compiler-rt/ (props changed) head/contrib/libc++/ (props changed) head/contrib/llvm/ (props changed) head/contrib/llvm/tools/clang/ (props changed) head/contrib/llvm/tools/lld/ (props changed) head/contrib/llvm/tools/lldb/ (props changed) Modified: head/contrib/llvm/tools/clang/lib/Basic/Version.cpp ============================================================================== --- head/contrib/llvm/tools/clang/lib/Basic/Version.cpp Sat Dec 15 13:52:32 2018 (r342122) +++ head/contrib/llvm/tools/clang/lib/Basic/Version.cpp Sat Dec 15 14:08:41 2018 (r342123) @@ -36,7 +36,7 @@ std::string getClangRepositoryPath() { // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/branches/release_70/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_701/final/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); Modified: head/lib/clang/include/clang/Basic/Version.inc ============================================================================== --- head/lib/clang/include/clang/Basic/Version.inc Sat Dec 15 13:52:32 2018 (r342122) +++ head/lib/clang/include/clang/Basic/Version.inc Sat Dec 15 14:08:41 2018 (r342123) @@ -8,4 +8,4 @@ #define CLANG_VENDOR "FreeBSD " -#define SVN_REVISION "348686" +#define SVN_REVISION "349250" Modified: head/lib/clang/include/lld/Common/Version.inc ============================================================================== --- head/lib/clang/include/lld/Common/Version.inc Sat Dec 15 13:52:32 2018 (r342122) +++ head/lib/clang/include/lld/Common/Version.inc Sat Dec 15 14:08:41 2018 (r342123) @@ -7,4 +7,4 @@ #define LLD_REPOSITORY_STRING "FreeBSD" // - -#define LLD_REVISION_STRING "348686-1300001" +#define LLD_REVISION_STRING "349250-1300001" Modified: head/lib/clang/include/llvm/Support/VCSRevision.h ============================================================================== --- head/lib/clang/include/llvm/Support/VCSRevision.h Sat Dec 15 13:52:32 2018 (r342122) +++ head/lib/clang/include/llvm/Support/VCSRevision.h Sat Dec 15 14:08:41 2018 (r342123) @@ -1,2 +1,2 @@ /* $FreeBSD$ */ -#define LLVM_REVISION "svn-r348686" +#define LLVM_REVISION "svn-r349250" From owner-svn-src-head@freebsd.org Sat Dec 15 14:58:46 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D653C1321FF2; Sat, 15 Dec 2018 14:58:46 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 79AB573BAF; Sat, 15 Dec 2018 14:58:46 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6650B19221; Sat, 15 Dec 2018 14:58:46 +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 wBFEwk9U063952; Sat, 15 Dec 2018 14:58:46 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFEwkbG063950; Sat, 15 Dec 2018 14:58:46 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201812151458.wBFEwkbG063950@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Sat, 15 Dec 2018 14:58:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342124 - in head/sys/dev: rtwn/usb usb X-SVN-Group: head X-SVN-Commit-Author: avos X-SVN-Commit-Paths: in head/sys/dev: rtwn/usb usb X-SVN-Commit-Revision: 342124 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 79AB573BAF X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.98)[-0.978,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 14:58:47 -0000 Author: avos Date: Sat Dec 15 14:58:45 2018 New Revision: 342124 URL: https://svnweb.freebsd.org/changeset/base/342124 Log: Add new USB id in rtwn_usb(4) (RTL8812AU) PR: 234029 Submitted by: MFC after: 4 days Modified: head/sys/dev/rtwn/usb/rtwn_usb_attach.h head/sys/dev/usb/usbdevs Modified: head/sys/dev/rtwn/usb/rtwn_usb_attach.h ============================================================================== --- head/sys/dev/rtwn/usb/rtwn_usb_attach.h Sat Dec 15 14:08:41 2018 (r342123) +++ head/sys/dev/rtwn/usb/rtwn_usb_attach.h Sat Dec 15 14:58:45 2018 (r342124) @@ -140,6 +140,7 @@ static const STRUCT_USB_HOST_ID rtwn_devs[] = { RTWN_RTL8812AU_DEV(SITECOMEU, WLA7100), RTWN_RTL8812AU_DEV(TPLINK, T4U), RTWN_RTL8812AU_DEV(TPLINK, T4UV2), + RTWN_RTL8812AU_DEV(TPLINK, T4UHV1), RTWN_RTL8812AU_DEV(TPLINK, T4UHV2), RTWN_RTL8812AU_DEV(TRENDNET, TEW805UB), RTWN_RTL8812AU_DEV(ZYXEL, NWD6605), Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Sat Dec 15 14:08:41 2018 (r342123) +++ head/sys/dev/usb/usbdevs Sat Dec 15 14:58:45 2018 (r342124) @@ -4614,6 +4614,7 @@ product TPLINK WN822NV4 0x0108 TL-WN822N v4 product TPLINK WN823NV2 0x0109 TL-WN823N v2 product TPLINK WN722N 0x010c TL-WN722N product TPLINK T4UV2 0x010d Archer T4U ver 2 +product TPLINK T4UHV1 0x0103 Archer T4UH ver 1 product TPLINK T4UHV2 0x010e Archer T4UH ver 2 product TPLINK RTL8153 0x0601 RTL8153 USB 10/100/1000 LAN From owner-svn-src-head@freebsd.org Sat Dec 15 15:06:25 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 543CC1322621; Sat, 15 Dec 2018 15:06:25 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D8DE274859; Sat, 15 Dec 2018 15:06:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4D2A193CE; Sat, 15 Dec 2018 15:06:24 +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 wBFF6OeT069244; Sat, 15 Dec 2018 15:06:24 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFF6NNb069236; Sat, 15 Dec 2018 15:06:23 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201812151506.wBFF6NNb069236@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Sat, 15 Dec 2018 15:06:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342125 - in head/sys/netinet: . cc X-SVN-Group: head X-SVN-Commit-Author: brooks X-SVN-Commit-Paths: in head/sys/netinet: . cc X-SVN-Commit-Revision: 342125 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D8DE274859 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.85 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_LONG(-0.88)[-0.878,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 15:06:25 -0000 Author: brooks Date: Sat Dec 15 15:06:22 2018 New Revision: 342125 URL: https://svnweb.freebsd.org/changeset/base/342125 Log: Fix bugs in plugable CC algorithm and siftr sysctls. Use the sysctl_handle_int() handler to write out the old value and read the new value into a temporary variable. Use the temporary variable for any checks of values rather than using the CAST_PTR_INT() macro on req->newptr. The prior usage read directly from userspace memory if the sysctl() was called correctly. This is unsafe and doesn't work at all on some architectures (at least i386.) In some cases, the code could also be tricked into reading from kernel memory and leaking limited information about the contents or crashing the system. This was true for CDG, newreno, and siftr on all platforms and true for i386 in all cases. The impact of this bug is largest in VIMAGE jails which have been configured to allow writing to these sysctls. Per discussion with the security officer, we will not be issuing an advisory for this issue as root access and a non-default config are required to be impacted. Reviewed by: markj, bz Discussed with: gordon (security officer) MFC after: 3 days Security: kernel information leak, local DoS (both require root) Differential Revision: https://reviews.freebsd.org/D18443 Modified: head/sys/netinet/cc/cc_cdg.c head/sys/netinet/cc/cc_chd.c head/sys/netinet/cc/cc_dctcp.c head/sys/netinet/cc/cc_hd.c head/sys/netinet/cc/cc_newreno.c head/sys/netinet/cc/cc_vegas.c head/sys/netinet/siftr.c Modified: head/sys/netinet/cc/cc_cdg.c ============================================================================== --- head/sys/netinet/cc/cc_cdg.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/cc/cc_cdg.c Sat Dec 15 15:06:22 2018 (r342125) @@ -80,8 +80,6 @@ __FBSDID("$FreeBSD$"); #define CDG_VERSION "0.1" -#define CAST_PTR_INT(X) (*((int*)(X))) - /* Private delay-gradient induced congestion control signal. */ #define CC_CDG_DELAY 0x01000000 @@ -358,22 +356,37 @@ cdg_cb_destroy(struct cc_var *ccv) static int cdg_beta_handler(SYSCTL_HANDLER_ARGS) { + int error; + uint32_t new; - if (req->newptr != NULL && - (CAST_PTR_INT(req->newptr) == 0 || CAST_PTR_INT(req->newptr) > 100)) - return (EINVAL); + new = *(uint32_t *)arg1; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error == 0 && req->newptr != NULL) { + if (new == 0 || new > 100) + error = EINVAL; + else + *(uint32_t *)arg1 = new; + } - return (sysctl_handle_int(oidp, arg1, arg2, req)); + return (error); } static int cdg_exp_backoff_scale_handler(SYSCTL_HANDLER_ARGS) { + int error; + uint32_t new; - if (req->newptr != NULL && CAST_PTR_INT(req->newptr) < 1) - return (EINVAL); + new = *(uint32_t *)arg1; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error == 0 && req->newptr != NULL) { + if (new < 1) + error = EINVAL; + else + *(uint32_t *)arg1 = new; + } - return (sysctl_handle_int(oidp, arg1, arg2, req)); + return (error); } static inline uint32_t Modified: head/sys/netinet/cc/cc_chd.c ============================================================================== --- head/sys/netinet/cc/cc_chd.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/cc/cc_chd.c Sat Dec 15 15:06:22 2018 (r342125) @@ -78,8 +78,6 @@ __FBSDID("$FreeBSD$"); #include -#define CAST_PTR_INT(X) (*((int*)(X))) - /* * Private signal type for rate based congestion signal. * See for appropriate bit-range to use for private signals. @@ -421,7 +419,7 @@ chd_loss_fair_handler(SYSCTL_HANDLER_ARGS) new = V_chd_loss_fair; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) > 1) + if (new > 1) error = EINVAL; else V_chd_loss_fair = new; @@ -439,8 +437,7 @@ chd_pmax_handler(SYSCTL_HANDLER_ARGS) new = V_chd_pmax; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) == 0 || - CAST_PTR_INT(req->newptr) > 100) + if (new == 0 || new > 100) error = EINVAL; else V_chd_pmax = new; @@ -458,7 +455,7 @@ chd_qthresh_handler(SYSCTL_HANDLER_ARGS) new = V_chd_qthresh; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) <= V_chd_qmin) + if (new <= V_chd_qmin) error = EINVAL; else V_chd_qthresh = new; Modified: head/sys/netinet/cc/cc_dctcp.c ============================================================================== --- head/sys/netinet/cc/cc_dctcp.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/cc/cc_dctcp.c Sat Dec 15 15:06:22 2018 (r342125) @@ -56,8 +56,6 @@ __FBSDID("$FreeBSD$"); #include #include -#define CAST_PTR_INT(X) (*((int*)(X))) - #define MAX_ALPHA_VALUE 1024 VNET_DEFINE_STATIC(uint32_t, dctcp_alpha) = 0; #define V_dctcp_alpha VNET(dctcp_alpha) @@ -400,7 +398,7 @@ dctcp_alpha_handler(SYSCTL_HANDLER_ARGS) new = V_dctcp_alpha; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) > 1) + if (new > 1) error = EINVAL; else { if (new > MAX_ALPHA_VALUE) @@ -422,7 +420,7 @@ dctcp_shift_g_handler(SYSCTL_HANDLER_ARGS) new = V_dctcp_shift_g; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) > 1) + if (new > 1) error = EINVAL; else V_dctcp_shift_g = new; @@ -440,7 +438,7 @@ dctcp_slowstart_handler(SYSCTL_HANDLER_ARGS) new = V_dctcp_slowstart; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) > 1) + if (new > 1) error = EINVAL; else V_dctcp_slowstart = new; Modified: head/sys/netinet/cc/cc_hd.c ============================================================================== --- head/sys/netinet/cc/cc_hd.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/cc/cc_hd.c Sat Dec 15 15:06:22 2018 (r342125) @@ -79,8 +79,6 @@ __FBSDID("$FreeBSD$"); #include -#define CAST_PTR_INT(X) (*((int*)(X))) - /* Largest possible number returned by random(). */ #define RANDOM_MAX INT_MAX @@ -188,8 +186,7 @@ hd_pmax_handler(SYSCTL_HANDLER_ARGS) new = V_hd_pmax; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) == 0 || - CAST_PTR_INT(req->newptr) > 100) + if (new == 0 || new > 100) error = EINVAL; else V_hd_pmax = new; @@ -207,7 +204,7 @@ hd_qmin_handler(SYSCTL_HANDLER_ARGS) new = V_hd_qmin; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) > V_hd_qthresh) + if (new > V_hd_qthresh) error = EINVAL; else V_hd_qmin = new; @@ -225,8 +222,7 @@ hd_qthresh_handler(SYSCTL_HANDLER_ARGS) new = V_hd_qthresh; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) < 1 || - CAST_PTR_INT(req->newptr) < V_hd_qmin) + if (new == 0 || new < V_hd_qmin) error = EINVAL; else V_hd_qthresh = new; Modified: head/sys/netinet/cc/cc_newreno.c ============================================================================== --- head/sys/netinet/cc/cc_newreno.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/cc/cc_newreno.c Sat Dec 15 15:06:22 2018 (r342125) @@ -79,8 +79,6 @@ __FBSDID("$FreeBSD$"); static MALLOC_DEFINE(M_NEWRENO, "newreno data", "newreno beta values"); -#define CAST_PTR_INT(X) (*((int*)(X))) - static void newreno_cb_destroy(struct cc_var *ccv); static void newreno_ack_received(struct cc_var *ccv, uint16_t type); static void newreno_after_idle(struct cc_var *ccv); @@ -364,15 +362,21 @@ newreno_ctl_output(struct cc_var *ccv, struct sockopt static int newreno_beta_handler(SYSCTL_HANDLER_ARGS) { + int error; + uint32_t new; - if (req->newptr != NULL ) { + new = *(uint32_t *)arg1; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error == 0 && req->newptr != NULL ) { if (arg1 == &VNET_NAME(newreno_beta_ecn) && !V_cc_do_abe) - return (EACCES); - if (CAST_PTR_INT(req->newptr) <= 0 || CAST_PTR_INT(req->newptr) > 100) - return (EINVAL); + error = EACCES; + else if (new == 0 || new > 100) + error = EINVAL; + else + *(uint32_t *)arg1 = new; } - return (sysctl_handle_int(oidp, arg1, arg2, req)); + return (error); } SYSCTL_DECL(_net_inet_tcp_cc_newreno); Modified: head/sys/netinet/cc/cc_vegas.c ============================================================================== --- head/sys/netinet/cc/cc_vegas.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/cc/cc_vegas.c Sat Dec 15 15:06:22 2018 (r342125) @@ -79,8 +79,6 @@ __FBSDID("$FreeBSD$"); #include -#define CAST_PTR_INT(X) (*((int*)(X))) - /* * Private signal type for rate based congestion signal. * See for appropriate bit-range to use for private signals. @@ -260,8 +258,7 @@ vegas_alpha_handler(SYSCTL_HANDLER_ARGS) new = V_vegas_alpha; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) < 1 || - CAST_PTR_INT(req->newptr) > V_vegas_beta) + if (new == 0 || new > V_vegas_beta) error = EINVAL; else V_vegas_alpha = new; @@ -279,8 +276,7 @@ vegas_beta_handler(SYSCTL_HANDLER_ARGS) new = V_vegas_beta; error = sysctl_handle_int(oidp, &new, 0, req); if (error == 0 && req->newptr != NULL) { - if (CAST_PTR_INT(req->newptr) < 1 || - CAST_PTR_INT(req->newptr) < V_vegas_alpha) + if (new == 0 || new < V_vegas_alpha) error = EINVAL; else V_vegas_beta = new; Modified: head/sys/netinet/siftr.c ============================================================================== --- head/sys/netinet/siftr.c Sat Dec 15 14:58:45 2018 (r342124) +++ head/sys/netinet/siftr.c Sat Dec 15 15:06:22 2018 (r342125) @@ -152,8 +152,6 @@ __FBSDID("$FreeBSD$"); #endif /* useful macros */ -#define CAST_PTR_INT(X) (*((int*)(X))) - #define UPPER_SHORT(X) (((X) & 0xFFFF0000) >> 16) #define LOWER_SHORT(X) ((X) & 0x0000FFFF) @@ -1442,22 +1440,22 @@ siftr_manage_ops(uint8_t action) static int siftr_sysctl_enabled_handler(SYSCTL_HANDLER_ARGS) { - if (req->newptr == NULL) - goto skip; + int error; + uint32_t new; - /* If the value passed in isn't 0 or 1, return an error. */ - if (CAST_PTR_INT(req->newptr) != 0 && CAST_PTR_INT(req->newptr) != 1) - return (1); - - /* If we are changing state (0 to 1 or 1 to 0). */ - if (CAST_PTR_INT(req->newptr) != siftr_enabled ) - if (siftr_manage_ops(CAST_PTR_INT(req->newptr))) { - siftr_manage_ops(SIFTR_DISABLE); - return (1); + new = siftr_enabled; + error = sysctl_handle_int(oidp, &new, 0, req); + if (error != 0 && req->newptr != NULL) { + if (new > 1) + return (EINVAL); + else if (new != siftr_enabled) { + error = siftr_manage_ops(new); + if (error != 0) + siftr_manage_ops(SIFTR_DISABLE); } + } -skip: - return (sysctl_handle_int(oidp, arg1, arg2, req)); + return (error); } From owner-svn-src-head@freebsd.org Sat Dec 15 16:53:17 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CDA91325D5B; Sat, 15 Dec 2018 16:53:17 +0000 (UTC) (envelope-from se@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 01A0677D89; Sat, 15 Dec 2018 16:53:17 +0000 (UTC) (envelope-from se@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CCE841A691; Sat, 15 Dec 2018 16:53:16 +0000 (UTC) (envelope-from se@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBFGrG0D028450; Sat, 15 Dec 2018 16:53:16 GMT (envelope-from se@FreeBSD.org) Received: (from se@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFGrGcR028447; Sat, 15 Dec 2018 16:53:16 GMT (envelope-from se@FreeBSD.org) Message-Id: <201812151653.wBFGrGcR028447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: se set sender to se@FreeBSD.org using -f From: Stefan Esser Date: Sat, 15 Dec 2018 16:53:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342126 - in head: share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/ctm X-SVN-Group: head X-SVN-Commit-Author: se X-SVN-Commit-Paths: in head: share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/ctm X-SVN-Commit-Revision: 342126 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 01A0677D89 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.881,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 16:53:17 -0000 Author: se Date: Sat Dec 15 16:53:15 2018 New Revision: 342126 URL: https://svnweb.freebsd.org/changeset/base/342126 Log: Remove CTM from 13-CURRENT after the release of FreeBSD-12.0. The removal (and creation of a port) has been pre-announced in UPDATING 1 month ago. Packages are available for all supported FreeBSD vesions. I did not think that another entry in UPDATING is required to note the actual removal. No MFC is planned - CTM shall be kept in base for all releases up to 12.x. Reviewed by: rgrimes Approved by: imp, bcr (manpages) Relnotes: yes Differential Revision: https://reviews.freebsd.org/D17935 Deleted: head/tools/build/options/WITHOUT_CTM head/usr.sbin/ctm/ Modified: head/share/man/man5/src.conf.5 head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.sbin/Makefile Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Sat Dec 15 15:06:22 2018 (r342125) +++ head/share/man/man5/src.conf.5 Sat Dec 15 16:53:15 2018 (r342126) @@ -479,10 +479,6 @@ is set explicitly) Set to compile with CTF (Compact C Type Format) data. CTF data encapsulates a reduced form of debugging information similar to DWARF and the venerable stabs and is required for DTrace. -.It Va WITHOUT_CTM -Set to not build -.Xr ctm 1 -and related utilities. .It Va WITHOUT_CUSE Set to not build CUSE-related programs and libraries. .It Va WITHOUT_CXGBETOOL Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 15:06:22 2018 (r342125) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 16:53:15 2018 (r342126) @@ -1551,18 +1551,6 @@ OLD_FILES+=usr/bin/cpp OLD_FILES+=usr/share/man/man1/cpp.1.gz .endif -.if ${MK_CTM} == no -OLD_FILES+=usr/sbin/ctm -OLD_FILES+=usr/sbin/ctm_dequeue -OLD_FILES+=usr/sbin/ctm_rmail -OLD_FILES+=usr/sbin/ctm_smail -OLD_FILES+=usr/share/man/man1/ctm.1.gz -OLD_FILES+=usr/share/man/man1/ctm_dequeue.1.gz -OLD_FILES+=usr/share/man/man1/ctm_rmail.1.gz -OLD_FILES+=usr/share/man/man1/ctm_smail.1.gz -OLD_FILES+=usr/share/man/man5/ctm.5.gz -.endif - .if ${MK_CUSE} == no OLD_FILES+=usr/include/fs/cuse/cuse_defs.h OLD_FILES+=usr/include/fs/cuse/cuse_ioctl.h Modified: head/usr.sbin/Makefile ============================================================================== --- head/usr.sbin/Makefile Sat Dec 15 15:06:22 2018 (r342125) +++ head/usr.sbin/Makefile Sat Dec 15 16:53:15 2018 (r342126) @@ -123,7 +123,6 @@ SUBDIR.${MK_BLUETOOTH}+= bluetooth SUBDIR.${MK_BOOTPARAMD}+= bootparamd SUBDIR.${MK_BSDINSTALL}+= bsdinstall SUBDIR.${MK_BSNMP}+= bsnmpd -SUBDIR.${MK_CTM}+= ctm SUBDIR.${MK_CXGBETOOL}+= cxgbetool SUBDIR.${MK_DIALOG}+= bsdconfig SUBDIR.${MK_EFI}+= efivar efidp efibootmgr From owner-svn-src-head@freebsd.org Sat Dec 15 17:01:18 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A64F1325FCB; Sat, 15 Dec 2018 17:01:18 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A45C48034A; Sat, 15 Dec 2018 17:01:17 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 95BED1A6EF; Sat, 15 Dec 2018 17:01:17 +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 wBFH1Hrf032000; Sat, 15 Dec 2018 17:01:17 GMT (envelope-from hiren@FreeBSD.org) Received: (from hiren@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFH1HeT031998; Sat, 15 Dec 2018 17:01:17 GMT (envelope-from hiren@FreeBSD.org) Message-Id: <201812151701.wBFH1HeT031998@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hiren set sender to hiren@FreeBSD.org using -f From: Hiren Panchasara Date: Sat, 15 Dec 2018 17:01:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342127 - head/sys/netinet/cc X-SVN-Group: head X-SVN-Commit-Author: hiren X-SVN-Commit-Paths: head/sys/netinet/cc X-SVN-Commit-Revision: 342127 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A45C48034A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.84 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_SHORT(-0.97)[-0.972,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.881,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 17:01:18 -0000 Author: hiren Date: Sat Dec 15 17:01:16 2018 New Revision: 342127 URL: https://svnweb.freebsd.org/changeset/base/342127 Log: Revert r331567 CC Cubic: fix underflow for cubic_cwnd() This change is causing TCP connections using cubic to hang. Need to dig more to find exact cause and fix it. Reported by: tj at mrsk dot me, Matt Garber (via twitter) Discussed with: sbruno (previously), allanjude, cperciva MFC after: 3 days Modified: head/sys/netinet/cc/cc.h head/sys/netinet/cc/cc_cubic.c head/sys/netinet/cc/cc_cubic.h Modified: head/sys/netinet/cc/cc.h ============================================================================== --- head/sys/netinet/cc/cc.h Sat Dec 15 16:53:15 2018 (r342126) +++ head/sys/netinet/cc/cc.h Sat Dec 15 17:01:16 2018 (r342127) @@ -102,8 +102,6 @@ struct cc_var { #define CCF_ACKNOW 0x0008 /* Will this ack be sent now? */ #define CCF_IPHDR_CE 0x0010 /* Does this packet set CE bit? */ #define CCF_TCPHDR_CWR 0x0020 /* Does this packet set CWR bit? */ -#define CCF_MAX_CWND 0x0040 /* Have we reached maximum cwnd? */ -#define CCF_CHG_MAX_CWND 0x0080 /* Cubic max_cwnd changed, for K */ /* ACK types passed to the ack_received() hook. */ #define CC_ACK 0x0001 /* Regular in sequence ACK. */ Modified: head/sys/netinet/cc/cc_cubic.c ============================================================================== --- head/sys/netinet/cc/cc_cubic.c Sat Dec 15 16:53:15 2018 (r342126) +++ head/sys/netinet/cc/cc_cubic.c Sat Dec 15 17:01:16 2018 (r342127) @@ -88,8 +88,6 @@ struct cubic { unsigned long max_cwnd; /* cwnd at the previous congestion event. */ unsigned long prev_max_cwnd; - /* Cached value for t_maxseg when K was computed */ - uint32_t k_maxseg; /* Number of congestion events. */ uint32_t num_cong_events; /* Minimum observed rtt in ticks. */ @@ -126,9 +124,6 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) cubic_data = ccv->cc_data; cubic_record_rtt(ccv); - if (ccv->flags & CCF_MAX_CWND) - return; - /* * Regular ACK and we're not in cong/fast recovery and we're cwnd * limited and we're either not doing ABC or are slow starting or are @@ -156,12 +151,6 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) cubic_data->mean_rtt_ticks, cubic_data->max_cwnd, CCV(ccv, t_maxseg)); - if (ccv->flags & CCF_CHG_MAX_CWND || cubic_data->k_maxseg != CCV(ccv, t_maxseg)) { - cubic_data->K = cubic_k(cubic_data->max_cwnd / CCV(ccv, t_maxseg)); - cubic_data->k_maxseg = CCV(ccv, t_maxseg); - ccv->flags &= ~(CCF_MAX_CWND|CCF_CHG_MAX_CWND); - } - w_cubic_next = cubic_cwnd(ticks_since_cong + cubic_data->mean_rtt_ticks, cubic_data->max_cwnd, CCV(ccv, t_maxseg), cubic_data->K); @@ -173,18 +162,13 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) * TCP-friendly region, follow tf * cwnd growth. */ - CCV(ccv, snd_cwnd) = ulmin(w_tf, TCP_MAXWIN << CCV(ccv, snd_scale)); + CCV(ccv, snd_cwnd) = w_tf; else if (CCV(ccv, snd_cwnd) < w_cubic_next) { /* * Concave or convex region, follow CUBIC * cwnd growth. */ - if (w_cubic_next >= TCP_MAXWIN << CCV(ccv, snd_scale)) { - w_cubic_next = TCP_MAXWIN << CCV(ccv, snd_scale); - ccv->flags |= CCF_MAX_CWND; - } - w_cubic_next = ulmin(w_cubic_next, TCP_MAXWIN << CCV(ccv, snd_scale)); if (V_tcp_do_rfc3465) CCV(ccv, snd_cwnd) = w_cubic_next; else @@ -202,10 +186,8 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) * max_cwnd. */ if (cubic_data->num_cong_events == 0 && - cubic_data->max_cwnd < CCV(ccv, snd_cwnd)) { + cubic_data->max_cwnd < CCV(ccv, snd_cwnd)) cubic_data->max_cwnd = CCV(ccv, snd_cwnd); - ccv->flags |= CCF_CHG_MAX_CWND; - } } } } @@ -254,7 +236,6 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) cubic_data->num_cong_events++; cubic_data->prev_max_cwnd = cubic_data->max_cwnd; cubic_data->max_cwnd = CCV(ccv, snd_cwnd); - ccv->flags |= CCF_CHG_MAX_CWND; } ENTER_RECOVERY(CCV(ccv, t_flags)); } @@ -267,8 +248,6 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) cubic_data->prev_max_cwnd = cubic_data->max_cwnd; cubic_data->max_cwnd = CCV(ccv, snd_cwnd); cubic_data->t_last_cong = ticks; - ccv->flags |= CCF_CHG_MAX_CWND; - ccv->flags &= ~CCF_MAX_CWND; CCV(ccv, snd_cwnd) = CCV(ccv, snd_ssthresh); ENTER_CONGRECOVERY(CCV(ccv, t_flags)); } @@ -285,7 +264,6 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) if (CCV(ccv, t_rxtshift) >= 2) { cubic_data->num_cong_events++; cubic_data->t_last_cong = ticks; - ccv->flags &= ~CCF_MAX_CWND; } break; } @@ -304,7 +282,6 @@ cubic_conn_init(struct cc_var *ccv) * get used. */ cubic_data->max_cwnd = CCV(ccv, snd_cwnd); - ccv->flags |= CCF_CHG_MAX_CWND; } static int @@ -329,11 +306,9 @@ cubic_post_recovery(struct cc_var *ccv) pipe = 0; /* Fast convergence heuristic. */ - if (cubic_data->max_cwnd < cubic_data->prev_max_cwnd) { + if (cubic_data->max_cwnd < cubic_data->prev_max_cwnd) cubic_data->max_cwnd = (cubic_data->max_cwnd * CUBIC_FC_FACTOR) >> CUBIC_SHIFT; - ccv->flags |= CCF_CHG_MAX_CWND; - } if (IN_FASTRECOVERY(CCV(ccv, t_flags))) { /* @@ -356,7 +331,6 @@ cubic_post_recovery(struct cc_var *ccv) cubic_data->max_cwnd) >> CUBIC_SHIFT)); } cubic_data->t_last_cong = ticks; - ccv->flags &= ~CCF_MAX_CWND; /* Calculate the average RTT between congestion epochs. */ if (cubic_data->epoch_ack_count > 0 && @@ -367,6 +341,7 @@ cubic_post_recovery(struct cc_var *ccv) cubic_data->epoch_ack_count = 0; cubic_data->sum_rtt_ticks = 0; + cubic_data->K = cubic_k(cubic_data->max_cwnd / CCV(ccv, t_maxseg)); } /* Modified: head/sys/netinet/cc/cc_cubic.h ============================================================================== --- head/sys/netinet/cc/cc_cubic.h Sat Dec 15 16:53:15 2018 (r342126) +++ head/sys/netinet/cc/cc_cubic.h Sat Dec 15 17:01:16 2018 (r342127) @@ -41,8 +41,6 @@ #ifndef _NETINET_CC_CUBIC_H_ #define _NETINET_CC_CUBIC_H_ -#include - /* Number of bits of precision for fixed point math calcs. */ #define CUBIC_SHIFT 8 @@ -163,6 +161,8 @@ cubic_k(unsigned long wmax_pkts) /* * Compute the new cwnd value using an implementation of eqn 1 from the I-D. * Thanks to Kip Macy for help debugging this function. + * + * XXXLAS: Characterise bounds for overflow. */ static __inline unsigned long cubic_cwnd(int ticks_since_cong, unsigned long wmax, uint32_t smss, int64_t K) @@ -174,15 +174,6 @@ cubic_cwnd(int ticks_since_cong, unsigned long wmax, u /* t - K, with CUBIC_SHIFT worth of precision. */ cwnd = ((int64_t)(ticks_since_cong << CUBIC_SHIFT) - (K * hz)) / hz; - /* moved this calculation up because it cannot overflow or underflow */ - cwnd *= CUBIC_C_FACTOR * smss; - - if (cwnd > 2097151) /* 2^21 cubed is long max */ - return INT_MAX; - - if (cwnd < -2097152) /* -2^21 cubed is long min */ - return smss; - /* (t - K)^3, with CUBIC_SHIFT^3 worth of precision. */ cwnd *= (cwnd * cwnd); @@ -191,17 +182,8 @@ cubic_cwnd(int ticks_since_cong, unsigned long wmax, u * The down shift by CUBIC_SHIFT_4 is because cwnd has 4 lots of * CUBIC_SHIFT included in the value. 3 from the cubing of cwnd above, * and an extra from multiplying through by CUBIC_C_FACTOR. - * - * The original formula was this: - * cwnd = ((cwnd * CUBIC_C_FACTOR * smss) >> CUBIC_SHIFT_4) + wmax; - * - * CUBIC_C_FACTOR and smss factors were moved up to an earlier - * calculation to simplify overflow and underflow detection. */ - cwnd = (cwnd >> CUBIC_SHIFT_4) + wmax; - - if (cwnd < 0) - return 1; + cwnd = ((cwnd * CUBIC_C_FACTOR * smss) >> CUBIC_SHIFT_4) + wmax; return ((unsigned long)cwnd); } From owner-svn-src-head@freebsd.org Sat Dec 15 17:17:22 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 05C601326AEF; Sat, 15 Dec 2018 17:17:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id 34D6780CBF; Sat, 15 Dec 2018 17:17:20 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id 534713CFA91; Sun, 16 Dec 2018 04:17:11 +1100 (AEDT) Date: Sun, 16 Dec 2018 04:17:10 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Edward Tomasz Napierala cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r342115 - head/sbin/fsck_ffs In-Reply-To: <201812151136.wBFBaKV3058236@repo.freebsd.org> Message-ID: <20181216033655.G5660@besplex.bde.org> References: <201812151136.wBFBaKV3058236@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.2 cv=DZtnkrlW c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=kj9zAlcOel0A:10 a=iBufN-CbBZ9qPfiJausA:9 a=04TOIXbChQNhCiql:21 a=-gMqSNPqehXkdgwA:21 a=CjuIK1q_8ugA:10 X-Rspamd-Queue-Id: 34D6780CBF X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-7.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-1.00)[-0.998,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 17:17:22 -0000 On Sat, 15 Dec 2018, Edward Tomasz Napierala wrote: > Log: > Make fsck(8) use pread(2). This cuts the number of syscalls by half. > > Reviewed by: kib, mckusick This cuts the error handling for reads by a bit more than half. This also makes fsck use pwrite(). Cutting the error handling is almost a feature for writes. > Modified: head/sbin/fsck_ffs/fsutil.c > ============================================================================== > --- head/sbin/fsck_ffs/fsutil.c Sat Dec 15 11:32:11 2018 (r342114) > +++ head/sbin/fsck_ffs/fsutil.c Sat Dec 15 11:36:20 2018 (r342115) > @@ -576,9 +576,7 @@ blread(int fd, char *buf, ufs2_daddr_t blk, long size) > slowio_start(); > totalreads++; > diskreads++; > - if (lseek(fd, offset, 0) < 0) > - rwerror("SEEK BLK", blk); > - else if (read(fd, buf, (int)size) == size) { > + if (pread(fd, buf, (int)size, offset) == size) { > if (bkgrdflag) > slowio_end(); > return (0); Just after here, the comment before the error handling says that the error handling is simpler here because it is just for true read/write errors. > @@ -595,14 +593,11 @@ blread(int fd, char *buf, ufs2_daddr_t blk, long size) > } else > rwerror("READ BLK", blk); > > - if (lseek(fd, offset, 0) < 0) > - rwerror("SEEK BLK", blk); This used to exit in many cases. The seek error is unrecoverable. (Usually the previous lseek() fails before this is reached.) > errs = 0; > memset(buf, 0, (size_t)size); > printf("THE FOLLOWING DISK SECTORS COULD NOT BE READ:"); > for (cp = buf, i = 0; i < size; i += secsize, cp += secsize) { > - if (read(fd, cp, (int)secsize) != secsize) { > - (void)lseek(fd, offset + i + secsize, 0); This used to handle lseek() errors sloppily. > + if (pread(fd, cp, (int)secsize, offset + i) != secsize) { > if (secsize != dev_bsize && dev_bsize != 1) > printf(" %jd (%jd),", > (intmax_t)(blk * dev_bsize + i) / secsize, This handles pread() sloppily. It checks for errors, but proceeds to spew errors for the whole block, just like the sloppy lseek() error handling except now that was protected by 2 instances of non-sloppy lseek() error handling for the start of the block. > @@ -629,22 +624,16 @@ blwrite(int fd, char *buf, ufs2_daddr_t blk, ssize_t s > return; > offset = blk; > offset *= dev_bsize; > - if (lseek(fd, offset, 0) < 0) > - rwerror("SEEK BLK", blk); > - else if (write(fd, buf, size) == size) { > + if (pwrite(fd, buf, size, offset) == size) { > fsmodified = 1; > return; > } > resolved = 0; > rwerror("WRITE BLK", blk); > - if (lseek(fd, offset, 0) < 0) > - rwerror("SEEK BLK", blk); > printf("THE FOLLOWING SECTORS COULD NOT BE WRITTEN:"); > for (cp = buf, i = 0; i < size; i += dev_bsize, cp += dev_bsize) > - if (write(fd, cp, dev_bsize) != dev_bsize) { > - (void)lseek(fd, offset + i + dev_bsize, 0); > + if (pwrite(fd, cp, dev_bsize, offset + i) != dev_bsize) > printf(" %jd,", (intmax_t)blk + i / dev_bsize); > - } > printf("\n"); > return; > } Not so similarly. Everything is the same except now it is a feature to not bail out on the first sign of a problem. Only the error spew is bad here. Of course, lseek errors "can't happen". It is interesting that writes for the error case are done with size dev_bsize, while reads for the error case are done with size secsize. This is very confusing. Both sizes are initially initialized to DEV_BSIZE, which cannot work on disks with large sectors, then bootstrapped confusingly differently by probing for metadata. There is also real_dev_bsize, which suj.c sets to secsize. The printf()s for both claim to access SECTORs. Writes for to attempt to recover from errors by retrying (only once here) should use the smallest size that the hardware supports. This is the sector size unless sectors are virtual. Hopefully dev_bsize == secsize for all writes, since it is too dangerous to write before you know the sector size. Bruce From owner-svn-src-head@freebsd.org Sat Dec 15 17:32:49 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 034EC132772B; Sat, 15 Dec 2018 17:32:49 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9606B818B7; Sat, 15 Dec 2018 17:32:48 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 851111AD94; Sat, 15 Dec 2018 17:32:48 +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 wBFHWmNI049766; Sat, 15 Dec 2018 17:32:48 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFHWmi8049765; Sat, 15 Dec 2018 17:32:48 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812151732.wBFHWmi8049765@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 15 Dec 2018 17:32:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342128 - head/sbin/fsck_ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sbin/fsck_ffs X-SVN-Commit-Revision: 342128 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9606B818B7 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.86 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.98)[-0.984,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 17:32:49 -0000 Author: mckusick Date: Sat Dec 15 17:32:47 2018 New Revision: 342128 URL: https://svnweb.freebsd.org/changeset/base/342128 Log: Fsck would find, report, and offer to fix inode check-hash failures. If requested to fix the inode check-hash it would confirm having done it, but then fail to make the fix. The same code is used in fsdb which, unlike fsck, would actually fix the inode check-hash. The discrepancy occurred because fsck has two ways to fetch inodes. The inode by number function ginode() and the streaming inode function getnextinode() used during pass1. Fsdb uses the ginode() function which correctly does the fix, while fsck first encounters the bad inode check-hash in pass1 where it is using the getnextinode() function that failed to make the correction. This patch corrects the getnextinode() function so that fsck now correctly fixes inodes with incorrect inode check-hashs. Reported by: Gary Jennejohn Sponsored by: Netflix Modified: head/sbin/fsck_ffs/inode.c Modified: head/sbin/fsck_ffs/inode.c ============================================================================== --- head/sbin/fsck_ffs/inode.c Sat Dec 15 17:01:16 2018 (r342127) +++ head/sbin/fsck_ffs/inode.c Sat Dec 15 17:32:47 2018 (r342128) @@ -309,6 +309,8 @@ ginode(ino_t inumber) if (preen || reply("FIX") != 0) { if (preen) printf(" (FIXED)\n"); + ffs_update_dinode_ckhash(&sblock, + (struct ufs2_dinode *)dp); inodirty(dp); } } From owner-svn-src-head@freebsd.org Sat Dec 15 17:58:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDCE61328586; Sat, 15 Dec 2018 17:58:42 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7FF77827DA; Sat, 15 Dec 2018 17:58:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7006C1B125; Sat, 15 Dec 2018 17:58:42 +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 wBFHwgtW060625; Sat, 15 Dec 2018 17:58:42 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFHwgEB060624; Sat, 15 Dec 2018 17:58:42 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812151758.wBFHwgEB060624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 15 Dec 2018 17:58:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342129 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 342129 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7FF77827DA X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.80 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 17:58:43 -0000 Author: mckusick Date: Sat Dec 15 17:58:42 2018 New Revision: 342129 URL: https://svnweb.freebsd.org/changeset/base/342129 Log: Must set ip->i_effnlink = ip->i_nlink to avoid a soft updates "panic: softdep_update_inodeblock: bad link count" when releasing a partially initialized vnode after an inode check-hash failure. Reported by: Gary Jennejohn Reported by: Peter Holm (pho) Sponsored by: Netflix Modified: head/sys/ufs/ffs/ffs_subr.c Modified: head/sys/ufs/ffs/ffs_subr.c ============================================================================== --- head/sys/ufs/ffs/ffs_subr.c Sat Dec 15 17:32:47 2018 (r342128) +++ head/sys/ufs/ffs/ffs_subr.c Sat Dec 15 17:58:42 2018 (r342129) @@ -127,6 +127,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc *((struct ufs1_dinode *)bp->b_data + ino_to_fsbo(fs, ino)); ip->i_mode = dip1->di_mode; ip->i_nlink = dip1->di_nlink; + ip->i_effnlink = dip1->di_nlink; ip->i_size = dip1->di_size; ip->i_flags = dip1->di_flags; ip->i_gen = dip1->di_gen; @@ -138,6 +139,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc *dip2 = *((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ino)); ip->i_mode = dip2->di_mode; ip->i_nlink = dip2->di_nlink; + ip->i_effnlink = dip2->di_nlink; ip->i_size = dip2->di_size; ip->i_flags = dip2->di_flags; ip->i_gen = dip2->di_gen; From owner-svn-src-head@freebsd.org Sat Dec 15 18:35:48 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC3001329F52; Sat, 15 Dec 2018 18:35:47 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8C7888418F; Sat, 15 Dec 2018 18:35:47 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 787F51B82E; Sat, 15 Dec 2018 18:35:47 +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 wBFIZlLh081292; Sat, 15 Dec 2018 18:35:47 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFIZlDU081291; Sat, 15 Dec 2018 18:35:47 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812151835.wBFIZlDU081291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 15 Dec 2018 18:35:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342133 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 342133 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8C7888418F X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.80 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 18:35:48 -0000 Author: mckusick Date: Sat Dec 15 18:35:46 2018 New Revision: 342133 URL: https://svnweb.freebsd.org/changeset/base/342133 Log: Reorder ffs_verify_dinode_ckhash() so that it checks the inode check-hash before copying in the inode so that the mode and link-count are not set if the check-hash fails. This change ensures that the vnode will be properly unwound and recycled rather than being held in the cache. Initialize the file mode is zero so that if the loading of the inode fails (for example because of a check-hash failure), the vnode will be properly unwound and recycled. Reported by: Gary Jennejohn (gj) Sponsored by: Netflix Modified: head/sys/ufs/ffs/ffs_subr.c head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/ufs/ffs/ffs_subr.c ============================================================================== --- head/sys/ufs/ffs/ffs_subr.c Sat Dec 15 18:11:41 2018 (r342132) +++ head/sys/ufs/ffs/ffs_subr.c Sat Dec 15 18:35:46 2018 (r342133) @@ -135,8 +135,14 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc ip->i_gid = dip1->di_gid; return (0); } + dip2 = ((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ino)); + if ((error = ffs_verify_dinode_ckhash(fs, dip2)) != 0) { + printf("%s: inode %jd: check-hash failed\n", fs->fs_fsmnt, + (intmax_t)ino); + return (error); + } + *ip->i_din2 = *dip2; dip2 = ip->i_din2; - *dip2 = *((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ino)); ip->i_mode = dip2->di_mode; ip->i_nlink = dip2->di_nlink; ip->i_effnlink = dip2->di_nlink; @@ -145,9 +151,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc ip->i_gen = dip2->di_gen; ip->i_uid = dip2->di_uid; ip->i_gid = dip2->di_gid; - if ((error = ffs_verify_dinode_ckhash(fs, dip2)) != 0) - printf("Inode %jd: check-hash failed\n", (intmax_t)ino); - return (error); + return (0); } #endif /* _KERNEL */ Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Sat Dec 15 18:11:41 2018 (r342132) +++ head/sys/ufs/ffs/ffs_vfsops.c Sat Dec 15 18:35:46 2018 (r342133) @@ -1692,6 +1692,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags) ip->i_ea_refs = 0; ip->i_nextclustercg = -1; ip->i_flag = fs->fs_magic == FS_UFS1_MAGIC ? 0 : IN_UFS2; + ip->i_mode = 0; /* ensure error cases below throw away vnode */ #ifdef QUOTA { int i; From owner-svn-src-head@freebsd.org Sat Dec 15 18:49:31 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9685F132A7AE; Sat, 15 Dec 2018 18:49:31 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3BF4C84B36; Sat, 15 Dec 2018 18:49:31 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2CAF31BA07; Sat, 15 Dec 2018 18:49:31 +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 wBFInVhw086770; Sat, 15 Dec 2018 18:49:31 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFInVl0086769; Sat, 15 Dec 2018 18:49:31 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812151849.wBFInVl0086769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 15 Dec 2018 18:49:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342134 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 342134 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 3BF4C84B36 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.80 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 18:49:31 -0000 Author: mckusick Date: Sat Dec 15 18:49:30 2018 New Revision: 342134 URL: https://svnweb.freebsd.org/changeset/base/342134 Log: Ensure that the inode check-hash is not left zeroed out in the case where the check-hash fails. Prior to the fix in -r342133 the inode with the zeroed out check-hash was written back to disk causing further confusion. Reported by: Gary Jennejohn (gj) Sponsored by: Netflix Modified: head/sys/ufs/ffs/ffs_subr.c Modified: head/sys/ufs/ffs/ffs_subr.c ============================================================================== --- head/sys/ufs/ffs/ffs_subr.c Sat Dec 15 18:35:46 2018 (r342133) +++ head/sys/ufs/ffs/ffs_subr.c Sat Dec 15 18:49:30 2018 (r342134) @@ -161,7 +161,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struc int ffs_verify_dinode_ckhash(struct fs *fs, struct ufs2_dinode *dip) { - uint32_t save_ckhash; + uint32_t ckhash, save_ckhash; /* * Return success if unallocated or we are not doing inode check-hash. @@ -174,10 +174,11 @@ ffs_verify_dinode_ckhash(struct fs *fs, struct ufs2_di */ save_ckhash = dip->di_ckhash; dip->di_ckhash = 0; - if (save_ckhash != calculate_crc32c(~0L, (void *)dip, sizeof(*dip))) - return (EINVAL); + ckhash = calculate_crc32c(~0L, (void *)dip, sizeof(*dip)); dip->di_ckhash = save_ckhash; - return (0); + if (save_ckhash == ckhash) + return (0); + return (EINVAL); } /* From owner-svn-src-head@freebsd.org Sat Dec 15 19:04:51 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D98C132AE07; Sat, 15 Dec 2018 19:04:51 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D1B2685333; Sat, 15 Dec 2018 19:04:50 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B88BD1BD5E; Sat, 15 Dec 2018 19:04:50 +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 wBFJ4oCI097067; Sat, 15 Dec 2018 19:04:50 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFJ4oNT097066; Sat, 15 Dec 2018 19:04:50 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812151904.wBFJ4oNT097066@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 15 Dec 2018 19:04:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342135 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 342135 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D1B2685333 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.80 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 19:04:51 -0000 Author: mckusick Date: Sat Dec 15 19:04:50 2018 New Revision: 342135 URL: https://svnweb.freebsd.org/changeset/base/342135 Log: Under UFS/FFS the VFS_ROOT() function will return an error if the inode check-hash fails. Panic'ing is not an appropriate response. So, check for an error return from VFS_ROOT() and when an error is reported, unwind and return the error. Reported by: Gary Jennejohn (gj) Sponsored by: Netflix Modified: head/sys/kern/vfs_mount.c Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Sat Dec 15 18:49:30 2018 (r342134) +++ head/sys/kern/vfs_mount.c Sat Dec 15 19:04:50 2018 (r342135) @@ -841,7 +841,7 @@ vfs_domount_first( struct vattr va; struct mount *mp; struct vnode *newdp; - int error; + int error, error1; ASSERT_VOP_ELOCKED(vp, __func__); KASSERT((fsflags & MNT_UPDATE) == 0, ("MNT_UPDATE shouldn't be here")); @@ -893,8 +893,14 @@ vfs_domount_first( * XXX The final recipients of VFS_MOUNT just overwrite the ndp they * get. No freeing of cn_pnbuf. */ - error = VFS_MOUNT(mp); - if (error != 0) { + error1 = 0; + if ((error = VFS_MOUNT(mp)) != 0 || + (error1 = VFS_ROOT(mp, LK_EXCLUSIVE, &newdp)) != 0) { + if (error1 != 0) { + error = error1; + if ((error1 = VFS_UNMOUNT(mp, 0)) != 0) + printf("VFS_UNMOUNT returned %d\n", error1); + } vfs_unbusy(mp); mp->mnt_vnodecovered = NULL; vfs_mount_destroy(mp); @@ -904,6 +910,7 @@ vfs_domount_first( vrele(vp); return (error); } + VOP_UNLOCK(newdp, 0); if (mp->mnt_opt != NULL) vfs_freeopts(mp->mnt_opt); @@ -935,8 +942,7 @@ vfs_domount_first( TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list); mtx_unlock(&mountlist_mtx); vfs_event_signal(NULL, VQ_MOUNT, 0); - if (VFS_ROOT(mp, LK_EXCLUSIVE, &newdp)) - panic("mount: lost mount"); + vn_lock(newdp, LK_EXCLUSIVE | LK_RETRY); VOP_UNLOCK(vp, 0); EVENTHANDLER_DIRECT_INVOKE(vfs_mounted, mp, newdp, td); VOP_UNLOCK(newdp, 0); From owner-svn-src-head@freebsd.org Sat Dec 15 19:18:59 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C75C132B285; Sat, 15 Dec 2018 19:18:59 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E6F458593A; Sat, 15 Dec 2018 19:18:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D1A6D1BF06; Sat, 15 Dec 2018 19:18:58 +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 wBFJIwCV002482; Sat, 15 Dec 2018 19:18:58 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFJIwKH002481; Sat, 15 Dec 2018 19:18:58 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <201812151918.wBFJIwKH002481@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Sat, 15 Dec 2018 19:18:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342136 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 342136 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: E6F458593A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.80 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.93)[-0.930,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 19:18:59 -0000 Author: mckusick Date: Sat Dec 15 19:18:58 2018 New Revision: 342136 URL: https://svnweb.freebsd.org/changeset/base/342136 Log: Clarify panic in set_rootvnode(). Check for panic in vfs_mountroot_shuffle(). Sponsored by: Netflix Modified: head/sys/kern/vfs_mountroot.c Modified: head/sys/kern/vfs_mountroot.c ============================================================================== --- head/sys/kern/vfs_mountroot.c Sat Dec 15 19:04:50 2018 (r342135) +++ head/sys/kern/vfs_mountroot.c Sat Dec 15 19:18:58 2018 (r342136) @@ -211,7 +211,7 @@ set_rootvnode(void) struct proc *p; if (VFS_ROOT(TAILQ_FIRST(&mountlist), LK_EXCLUSIVE, &rootvnode)) - panic("Cannot find root vnode"); + panic("set_rootvnode: Cannot find root vnode"); VOP_UNLOCK(rootvnode, 0); @@ -309,7 +309,8 @@ vfs_mountroot_shuffle(struct thread *td, struct mount if (mporoot != mpdevfs) cache_purgevfs(mpdevfs, true); - VFS_ROOT(mporoot, LK_EXCLUSIVE, &vporoot); + if (VFS_ROOT(mporoot, LK_EXCLUSIVE, &vporoot)) + panic("vfs_mountroot_shuffle: Cannot find root vnode"); VI_LOCK(vporoot); vporoot->v_iflag &= ~VI_MOUNT; From owner-svn-src-head@freebsd.org Sat Dec 15 21:34:43 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7FC8133056C; Sat, 15 Dec 2018 21:34:42 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8CD6A89878; Sat, 15 Dec 2018 21:34:42 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A77C1D75A; Sat, 15 Dec 2018 21:34:42 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBFLYg0J075516; Sat, 15 Dec 2018 21:34:42 GMT (envelope-from gnn@FreeBSD.org) Received: (from gnn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFLYehs075507; Sat, 15 Dec 2018 21:34:40 GMT (envelope-from gnn@FreeBSD.org) Message-Id: <201812152134.wBFLYehs075507@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gnn set sender to gnn@FreeBSD.org using -f From: "George V. Neville-Neil" Date: Sat, 15 Dec 2018 21:34:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342139 - in head: . bin/date libexec/rc/rc.d share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/timed X-SVN-Group: head X-SVN-Commit-Author: gnn X-SVN-Commit-Paths: in head: . bin/date libexec/rc/rc.d share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/timed X-SVN-Commit-Revision: 342139 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8CD6A89878 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.990,0]; NEURAL_HAM_LONG(-0.88)[-0.881,0]; NEURAL_HAM_SHORT(-0.96)[-0.961,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 21:34:43 -0000 Author: gnn Date: Sat Dec 15 21:34:40 2018 New Revision: 342139 URL: https://svnweb.freebsd.org/changeset/base/342139 Log: Remove, the now very outdated, timed. Submitted by: Kyle Spiers ksspiers at gmail Reviewed by: bcr,brooks,bz,sbruno Relnotes: yes Differential Revision: https://reviews.freebsd.org/D18505 Deleted: head/bin/date/extern.h head/bin/date/netdate.c head/libexec/rc/rc.d/timed head/tools/build/options/WITHOUT_TIMED head/usr.sbin/timed/ Modified: head/ObsoleteFiles.inc head/UPDATING head/bin/date/Makefile head/bin/date/Makefile.depend head/bin/date/date.c head/libexec/rc/rc.d/Makefile head/share/man/man5/src.conf.5 head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.sbin/Makefile Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sat Dec 15 20:07:32 2018 (r342138) +++ head/ObsoleteFiles.inc Sat Dec 15 21:34:40 2018 (r342139) @@ -38,6 +38,12 @@ # xargs -n1 | sort | uniq -d; # done +# 20181214: Remove timed files +OLD_FILES+=etc/rc.d/timed +OLD_FILES+=usr/sbin/timed +OLD_FILES+=usr/sbin/timedc +OLD_FILES+=usr/share/man/man8/timed.8.gz +OLD_FILES+=usr/share/man/man8/timedc.8.gz # 20181211: new clang import which bumps version from 6.0.1 to 7.0.1. OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/asan_interface.h Modified: head/UPDATING ============================================================================== --- head/UPDATING Sat Dec 15 20:07:32 2018 (r342138) +++ head/UPDATING Sat Dec 15 21:34:40 2018 (r342139) @@ -37,6 +37,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. +20181211: + Remove the timed and netdate programs from the base tree. Setting + the time with these deamons has been obsolete for over a decade. + 20181126: On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as Modified: head/bin/date/Makefile ============================================================================== --- head/bin/date/Makefile Sat Dec 15 20:07:32 2018 (r342138) +++ head/bin/date/Makefile Sat Dec 15 21:34:40 2018 (r342139) @@ -5,7 +5,7 @@ PACKAGE=runtime PROG= date -SRCS= date.c netdate.c vary.c +SRCS= date.c vary.c HAS_TESTS= SUBDIR.${MK_TESTS}+= tests Modified: head/bin/date/Makefile.depend ============================================================================== --- head/bin/date/Makefile.depend Sat Dec 15 20:07:32 2018 (r342138) +++ head/bin/date/Makefile.depend Sat Dec 15 21:34:40 2018 (r342139) @@ -4,7 +4,6 @@ DIRDEPS = \ gnu/lib/csu \ include \ - include/protocols \ include/xlocale \ lib/${CSU_DIR} \ lib/libc \ Modified: head/bin/date/date.c ============================================================================== --- head/bin/date/date.c Sat Dec 15 20:07:32 2018 (r342138) +++ head/bin/date/date.c Sat Dec 15 21:34:40 2018 (r342139) @@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "extern.h" #include "vary.h" #ifndef TM_YEAR_BASE @@ -67,7 +66,6 @@ __FBSDID("$FreeBSD$"); #endif static time_t tval; -int retval; static void badformat(void); static void iso8601_usage(const char *); @@ -248,7 +246,7 @@ printdate(const char *buf) (void)printf("%s\n", buf); if (fflush(stdout)) err(1, "stdout"); - exit(retval); + exit(EXIT_SUCCESS); } static void @@ -370,7 +368,7 @@ setthetime(const char *fmt, const char *p, int jflag, if (!jflag) { /* set the time */ - if (nflag || netsettime(tval)) { + if (nflag) { utx.ut_type = OLD_TIME; memset(utx.ut_id, 0, sizeof(utx.ut_id)); (void)gettimeofday(&utx.ut_tv, NULL); Modified: head/libexec/rc/rc.d/Makefile ============================================================================== --- head/libexec/rc/rc.d/Makefile Sat Dec 15 20:07:32 2018 (r342138) +++ head/libexec/rc/rc.d/Makefile Sat Dec 15 21:34:40 2018 (r342139) @@ -291,10 +291,6 @@ SMRCD= sendmail SMRCDPACKAGE= sendmail .endif -.if ${MK_TIMED} != "no" -CONFS+= timed -.endif - .if ${MK_UNBOUND} != "no" CONFGROUPS+= UNBOUND UNBOUND+= local_unbound Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Sat Dec 15 20:07:32 2018 (r342138) +++ head/share/man/man5/src.conf.5 Sat Dec 15 21:34:40 2018 (r342139) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd November 26, 2018 +.Dd December 15, 2018 .Dt SRC.CONF 5 .Os .Sh NAME @@ -239,6 +239,17 @@ Disable the BSD licensed .Pa crtbegin.o and .Pa crtend.o . +.Pp +This is a default setting on +powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. +.It Va WITH_BSD_CRTBEGIN +Enable the BSD licensed +.Pa crtbegin.o +and +.Pa crtend.o . +.Pp +This is a default setting on +amd64/amd64, arm/arm, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and riscv/riscv64. .It Va WITH_BSD_GREP Install BSD-licensed grep as '[ef]grep' instead of GNU grep. .It Va WITHOUT_BSNMP @@ -1780,9 +1791,6 @@ Set to not build or install .Xr tftp 1 and .Xr tftpd 8 . -.It Va WITHOUT_TIMED -Set to not build or install -.Xr timed 8 . .It Va WITHOUT_TOOLCHAIN Set to not install header or programs used for program development, Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 20:07:32 2018 (r342138) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 21:34:40 2018 (r342139) @@ -8513,14 +8513,6 @@ OLD_FILES+=usr/share/man/man1/tftp.1.gz OLD_FILES+=usr/share/man/man8/tftpd.8.gz .endif -.if ${MK_TIMED} == no -OLD_FILES+=usr/sbin/timed -OLD_FILES+=usr/sbin/timedc -OLD_FILES+=usr/share/man/man8/timed.8.gz -OLD_FILES+=usr/share/man/man8/timedc.8.gz -.endif - -.if ${MK_TOOLCHAIN} == no OLD_FILES+=usr/bin/addr2line OLD_FILES+=usr/bin/as OLD_FILES+=usr/bin/byacc Modified: head/usr.sbin/Makefile ============================================================================== --- head/usr.sbin/Makefile Sat Dec 15 20:07:32 2018 (r342138) +++ head/usr.sbin/Makefile Sat Dec 15 21:34:40 2018 (r342139) @@ -201,7 +201,6 @@ SUBDIR.${MK_SENDMAIL}+= praliases SUBDIR.${MK_SENDMAIL}+= sendmail SUBDIR.${MK_TCP_WRAPPERS}+= tcpdchk SUBDIR.${MK_TCP_WRAPPERS}+= tcpdmatch -SUBDIR.${MK_TIMED}+= timed SUBDIR.${MK_TOOLCHAIN}+= config SUBDIR.${MK_TOOLCHAIN}+= crunch SUBDIR.${MK_UNBOUND}+= unbound From owner-svn-src-head@freebsd.org Sat Dec 15 21:48:15 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AD2F13309FF; Sat, 15 Dec 2018 21:48:15 +0000 (UTC) (envelope-from Michael.Tuexen@macmic.franken.de) Received: from drew.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (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 9E14089ED6; Sat, 15 Dec 2018 21:48:14 +0000 (UTC) (envelope-from Michael.Tuexen@macmic.franken.de) Received: from [IPv6:2003:cd:6f2a:b300:7de7:88b7:9a8f:1607] (p200300CD6F2AB3007DE788B79A8F1607.dip0.t-ipconnect.de [IPv6:2003:cd:6f2a:b300:7de7:88b7:9a8f:1607]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTPSA id 87CAB72106C11; Sat, 15 Dec 2018 22:48:03 +0100 (CET) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: svn commit: r342139 - in head: . bin/date libexec/rc/rc.d share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/timed From: Michael Tuexen In-Reply-To: <201812152134.wBFLYehs075507@repo.freebsd.org> Date: Sat, 15 Dec 2018 22:48:02 +0100 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201812152134.wBFLYehs075507@repo.freebsd.org> To: "George V. Neville-Neil" X-Mailer: Apple Mail (2.3445.102.3) X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=disabled version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail-n.franken.de X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 21:48:15 -0000 > On 15. Dec 2018, at 22:34, George V. Neville-Neil = wrote: >=20 > Author: gnn > Date: Sat Dec 15 21:34:40 2018 > New Revision: 342139 > URL: https://svnweb.freebsd.org/changeset/base/342139 >=20 > Log: > Remove, the now very outdated, timed. >=20 > Submitted by: Kyle Spiers ksspiers at gmail > Reviewed by: bcr,brooks,bz,sbruno > Relnotes: yes > Differential Revision: https://reviews.freebsd.org/D18505 >=20 > Deleted: > head/bin/date/extern.h > head/bin/date/netdate.c > head/libexec/rc/rc.d/timed > head/tools/build/options/WITHOUT_TIMED > head/usr.sbin/timed/ > Modified: > head/ObsoleteFiles.inc > head/UPDATING > head/bin/date/Makefile > head/bin/date/Makefile.depend > head/bin/date/date.c > head/libexec/rc/rc.d/Makefile > head/share/man/man5/src.conf.5 > head/tools/build/mk/OptionalObsoleteFiles.inc > head/usr.sbin/Makefile >=20 > Modified: head/ObsoleteFiles.inc > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/ObsoleteFiles.inc Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/ObsoleteFiles.inc Sat Dec 15 21:34:40 2018 = (r342139) > @@ -38,6 +38,12 @@ > # xargs -n1 | sort | uniq -d; > # done >=20 > +# 20181214: Remove timed files > +OLD_FILES+=3Detc/rc.d/timed > +OLD_FILES+=3Dusr/sbin/timed > +OLD_FILES+=3Dusr/sbin/timedc > +OLD_FILES+=3Dusr/share/man/man8/timed.8.gz > +OLD_FILES+=3Dusr/share/man/man8/timedc.8.gz > # 20181211: new clang import which bumps version from 6.0.1 to 7.0.1. > OLD_FILES+=3Dusr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h= > OLD_FILES+=3Dusr/lib/clang/6.0.1/include/sanitizer/asan_interface.h >=20 > 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 Sat Dec 15 20:07:32 2018 (r342138) > +++ head/UPDATING Sat Dec 15 21:34:40 2018 (r342139) > @@ -37,6 +37,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: > prerequisites and upgrading, if you are not already using clang = 3.5.0 > or higher. >=20 > +20181211: > + Remove the timed and netdate programs from the base tree. = Setting > + the time with these deamons has been obsolete for over a decade. > + > 20181126: > On amd64, arm64 and armv7 (architectures that install LLVM's = ld.lld > linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, = as >=20 > Modified: head/bin/date/Makefile > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=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/bin/date/Makefile Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/bin/date/Makefile Sat Dec 15 21:34:40 2018 = (r342139) > @@ -5,7 +5,7 @@ >=20 > PACKAGE=3Druntime > PROG=3D date > -SRCS=3D date.c netdate.c vary.c > +SRCS=3D date.c vary.c >=20 > HAS_TESTS=3D > SUBDIR.${MK_TESTS}+=3D tests >=20 > Modified: head/bin/date/Makefile.depend > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=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/bin/date/Makefile.depend Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/bin/date/Makefile.depend Sat Dec 15 21:34:40 2018 = (r342139) > @@ -4,7 +4,6 @@ > DIRDEPS =3D \ > gnu/lib/csu \ > include \ > - include/protocols \ > include/xlocale \ > lib/${CSU_DIR} \ > lib/libc \ >=20 > Modified: head/bin/date/date.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/bin/date/date.c Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/bin/date/date.c Sat Dec 15 21:34:40 2018 = (r342139) > @@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$"); > #include > #include >=20 > -#include "extern.h" > #include "vary.h" >=20 > #ifndef TM_YEAR_BASE > @@ -67,7 +66,6 @@ __FBSDID("$FreeBSD$"); > #endif >=20 > static time_t tval; > -int retval; >=20 > static void badformat(void); > static void iso8601_usage(const char *); > @@ -248,7 +246,7 @@ printdate(const char *buf) > (void)printf("%s\n", buf); > if (fflush(stdout)) > err(1, "stdout"); > - exit(retval); > + exit(EXIT_SUCCESS); > } >=20 > static void > @@ -370,7 +368,7 @@ setthetime(const char *fmt, const char *p, int = jflag,=20 >=20 > if (!jflag) { > /* set the time */ > - if (nflag || netsettime(tval)) { > + if (nflag) { > utx.ut_type =3D OLD_TIME; > memset(utx.ut_id, 0, sizeof(utx.ut_id)); > (void)gettimeofday(&utx.ut_tv, NULL); >=20 > Modified: head/libexec/rc/rc.d/Makefile > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/libexec/rc/rc.d/Makefile Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/libexec/rc/rc.d/Makefile Sat Dec 15 21:34:40 2018 = (r342139) > @@ -291,10 +291,6 @@ SMRCD=3D sendmail > SMRCDPACKAGE=3D sendmail > .endif >=20 > -.if ${MK_TIMED} !=3D "no" > -CONFS+=3D timed > -.endif > - > .if ${MK_UNBOUND} !=3D "no" > CONFGROUPS+=3D UNBOUND > UNBOUND+=3D local_unbound >=20 > Modified: head/share/man/man5/src.conf.5 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=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/share/man/man5/src.conf.5 Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/share/man/man5/src.conf.5 Sat Dec 15 21:34:40 2018 = (r342139) > @@ -1,6 +1,6 @@ > .\" DO NOT EDIT-- this file is @generated by = tools/build/options/makeman. > .\" $FreeBSD$ > -.Dd November 26, 2018 > +.Dd December 15, 2018 > .Dt SRC.CONF 5 > .Os > .Sh NAME > @@ -239,6 +239,17 @@ Disable the BSD licensed > .Pa crtbegin.o > and > .Pa crtend.o . > +.Pp > +This is a default setting on > +powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and = sparc64/sparc64. > +.It Va WITH_BSD_CRTBEGIN > +Enable the BSD licensed > +.Pa crtbegin.o > +and > +.Pa crtend.o . > +.Pp > +This is a default setting on > +amd64/amd64, arm/arm, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, = mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, = mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and = riscv/riscv64. > .It Va WITH_BSD_GREP > Install BSD-licensed grep as '[ef]grep' instead of GNU grep. > .It Va WITHOUT_BSNMP > @@ -1780,9 +1791,6 @@ Set to not build or install > .Xr tftp 1 > and > .Xr tftpd 8 . > -.It Va WITHOUT_TIMED > -Set to not build or install > -.Xr timed 8 . > .It Va WITHOUT_TOOLCHAIN > Set to not install header or > programs used for program development, >=20 > Modified: head/tools/build/mk/OptionalObsoleteFiles.inc > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 = 20:07:32 2018 (r342138) > +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 = 21:34:40 2018 (r342139) > @@ -8513,14 +8513,6 @@ OLD_FILES+=3Dusr/share/man/man1/tftp.1.gz > OLD_FILES+=3Dusr/share/man/man8/tftpd.8.gz > .endif >=20 > -.if ${MK_TIMED} =3D=3D no > -OLD_FILES+=3Dusr/sbin/timed > -OLD_FILES+=3Dusr/sbin/timedc > -OLD_FILES+=3Dusr/share/man/man8/timed.8.gz > -OLD_FILES+=3Dusr/share/man/man8/timedc.8.gz > -.endif > - > -.if ${MK_TOOLCHAIN} =3D=3D no I think the above line should not be removed... Best regards Michael > OLD_FILES+=3Dusr/bin/addr2line > OLD_FILES+=3Dusr/bin/as > OLD_FILES+=3Dusr/bin/byacc >=20 > Modified: head/usr.sbin/Makefile > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/usr.sbin/Makefile Sat Dec 15 20:07:32 2018 = (r342138) > +++ head/usr.sbin/Makefile Sat Dec 15 21:34:40 2018 = (r342139) > @@ -201,7 +201,6 @@ SUBDIR.${MK_SENDMAIL}+=3D praliases > SUBDIR.${MK_SENDMAIL}+=3D sendmail > SUBDIR.${MK_TCP_WRAPPERS}+=3D tcpdchk > SUBDIR.${MK_TCP_WRAPPERS}+=3D tcpdmatch > -SUBDIR.${MK_TIMED}+=3D timed > SUBDIR.${MK_TOOLCHAIN}+=3D config > SUBDIR.${MK_TOOLCHAIN}+=3D crunch > SUBDIR.${MK_UNBOUND}+=3D unbound >=20 From owner-svn-src-head@freebsd.org Sat Dec 15 22:02:03 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CDC5A1331273; Sat, 15 Dec 2018 22:02:03 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 744808A562; Sat, 15 Dec 2018 22:02:03 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C0A31DB3A; Sat, 15 Dec 2018 22:02:03 +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 wBFM23B0089707; Sat, 15 Dec 2018 22:02:03 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFM23K0089706; Sat, 15 Dec 2018 22:02:03 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201812152202.wBFM23K0089706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Sat, 15 Dec 2018 22:02:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342140 - head/tools/build/mk X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/tools/build/mk X-SVN-Commit-Revision: 342140 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 744808A562 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_SHORT(-0.96)[-0.960,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_HAM_LONG(-0.88)[-0.883,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 22:02:04 -0000 Author: cy Date: Sat Dec 15 22:02:02 2018 New Revision: 342140 URL: https://svnweb.freebsd.org/changeset/base/342140 Log: Repair build post-r342139 Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 21:34:40 2018 (r342139) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 22:02:02 2018 (r342140) @@ -8513,6 +8513,7 @@ OLD_FILES+=usr/share/man/man1/tftp.1.gz OLD_FILES+=usr/share/man/man8/tftpd.8.gz .endif +.if ${MK_TOOLCHAIN} == no OLD_FILES+=usr/bin/addr2line OLD_FILES+=usr/bin/as OLD_FILES+=usr/bin/byacc From owner-svn-src-head@freebsd.org Sat Dec 15 23:14:14 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B68B133244E; Sat, 15 Dec 2018 23:14:14 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.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 D7DE08BF79; Sat, 15 Dec 2018 23:14:13 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id wBFMuKnP089077; Sat, 15 Dec 2018 14:56:20 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id wBFMuICq089076; Sat, 15 Dec 2018 14:56:18 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201812152256.wBFMuICq089076@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r342139 - in head: . bin/date libexec/rc/rc.d share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/timed In-Reply-To: <201812152134.wBFLYehs075507@repo.freebsd.org> To: "George V. Neville-Neil" Date: Sat, 15 Dec 2018 14:56:18 -0800 (PST) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: D7DE08BF79 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.99)[-0.995,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 23:14:14 -0000 > Author: gnn > Date: Sat Dec 15 21:34:40 2018 > New Revision: 342139 > URL: https://svnweb.freebsd.org/changeset/base/342139 > > Log: > Remove, the now very outdated, timed. > > Submitted by: Kyle Spiers ksspiers at gmail > Reviewed by: bcr,brooks,bz,sbruno > Relnotes: yes > Differential Revision: https://reviews.freebsd.org/D18505 This should of first been marked with a deprecation notice, which was merged to stable/12, then removed from here. > Deleted: > head/bin/date/extern.h > head/bin/date/netdate.c > head/libexec/rc/rc.d/timed > head/tools/build/options/WITHOUT_TIMED > head/usr.sbin/timed/ > Modified: > head/ObsoleteFiles.inc > head/UPDATING > head/bin/date/Makefile > head/bin/date/Makefile.depend > head/bin/date/date.c > head/libexec/rc/rc.d/Makefile > head/share/man/man5/src.conf.5 > head/tools/build/mk/OptionalObsoleteFiles.inc > head/usr.sbin/Makefile > > Modified: head/ObsoleteFiles.inc > ============================================================================== > --- head/ObsoleteFiles.inc Sat Dec 15 20:07:32 2018 (r342138) > +++ head/ObsoleteFiles.inc Sat Dec 15 21:34:40 2018 (r342139) > @@ -38,6 +38,12 @@ > # xargs -n1 | sort | uniq -d; > # done > > +# 20181214: Remove timed files > +OLD_FILES+=etc/rc.d/timed > +OLD_FILES+=usr/sbin/timed > +OLD_FILES+=usr/sbin/timedc > +OLD_FILES+=usr/share/man/man8/timed.8.gz > +OLD_FILES+=usr/share/man/man8/timedc.8.gz > # 20181211: new clang import which bumps version from 6.0.1 to 7.0.1. > OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/allocator_interface.h > OLD_FILES+=usr/lib/clang/6.0.1/include/sanitizer/asan_interface.h > > Modified: head/UPDATING > ============================================================================== > --- head/UPDATING Sat Dec 15 20:07:32 2018 (r342138) > +++ head/UPDATING Sat Dec 15 21:34:40 2018 (r342139) > @@ -37,6 +37,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: > prerequisites and upgrading, if you are not already using clang 3.5.0 > or higher. > > +20181211: > + Remove the timed and netdate programs from the base tree. Setting > + the time with these deamons has been obsolete for over a decade. > + > 20181126: > On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld > linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as > > Modified: head/bin/date/Makefile > ============================================================================== > --- head/bin/date/Makefile Sat Dec 15 20:07:32 2018 (r342138) > +++ head/bin/date/Makefile Sat Dec 15 21:34:40 2018 (r342139) > @@ -5,7 +5,7 @@ > > PACKAGE=runtime > PROG= date > -SRCS= date.c netdate.c vary.c > +SRCS= date.c vary.c > > HAS_TESTS= > SUBDIR.${MK_TESTS}+= tests > > Modified: head/bin/date/Makefile.depend > ============================================================================== > --- head/bin/date/Makefile.depend Sat Dec 15 20:07:32 2018 (r342138) > +++ head/bin/date/Makefile.depend Sat Dec 15 21:34:40 2018 (r342139) > @@ -4,7 +4,6 @@ > DIRDEPS = \ > gnu/lib/csu \ > include \ > - include/protocols \ > include/xlocale \ > lib/${CSU_DIR} \ > lib/libc \ > > Modified: head/bin/date/date.c > ============================================================================== > --- head/bin/date/date.c Sat Dec 15 20:07:32 2018 (r342138) > +++ head/bin/date/date.c Sat Dec 15 21:34:40 2018 (r342139) > @@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$"); > #include > #include > > -#include "extern.h" > #include "vary.h" > > #ifndef TM_YEAR_BASE > @@ -67,7 +66,6 @@ __FBSDID("$FreeBSD$"); > #endif > > static time_t tval; > -int retval; > > static void badformat(void); > static void iso8601_usage(const char *); > @@ -248,7 +246,7 @@ printdate(const char *buf) > (void)printf("%s\n", buf); > if (fflush(stdout)) > err(1, "stdout"); > - exit(retval); > + exit(EXIT_SUCCESS); > } > > static void > @@ -370,7 +368,7 @@ setthetime(const char *fmt, const char *p, int jflag, > > if (!jflag) { > /* set the time */ > - if (nflag || netsettime(tval)) { > + if (nflag) { > utx.ut_type = OLD_TIME; > memset(utx.ut_id, 0, sizeof(utx.ut_id)); > (void)gettimeofday(&utx.ut_tv, NULL); > > Modified: head/libexec/rc/rc.d/Makefile > ============================================================================== > --- head/libexec/rc/rc.d/Makefile Sat Dec 15 20:07:32 2018 (r342138) > +++ head/libexec/rc/rc.d/Makefile Sat Dec 15 21:34:40 2018 (r342139) > @@ -291,10 +291,6 @@ SMRCD= sendmail > SMRCDPACKAGE= sendmail > .endif > > -.if ${MK_TIMED} != "no" > -CONFS+= timed > -.endif > - > .if ${MK_UNBOUND} != "no" > CONFGROUPS+= UNBOUND > UNBOUND+= local_unbound > > Modified: head/share/man/man5/src.conf.5 > ============================================================================== > --- head/share/man/man5/src.conf.5 Sat Dec 15 20:07:32 2018 (r342138) > +++ head/share/man/man5/src.conf.5 Sat Dec 15 21:34:40 2018 (r342139) > @@ -1,6 +1,6 @@ > .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. > .\" $FreeBSD$ > -.Dd November 26, 2018 > +.Dd December 15, 2018 > .Dt SRC.CONF 5 > .Os > .Sh NAME > @@ -239,6 +239,17 @@ Disable the BSD licensed > .Pa crtbegin.o > and > .Pa crtend.o . > +.Pp > +This is a default setting on > +powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. > +.It Va WITH_BSD_CRTBEGIN > +Enable the BSD licensed > +.Pa crtbegin.o > +and > +.Pa crtend.o . > +.Pp > +This is a default setting on > +amd64/amd64, arm/arm, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and riscv/riscv64. > .It Va WITH_BSD_GREP > Install BSD-licensed grep as '[ef]grep' instead of GNU grep. > .It Va WITHOUT_BSNMP > @@ -1780,9 +1791,6 @@ Set to not build or install > .Xr tftp 1 > and > .Xr tftpd 8 . > -.It Va WITHOUT_TIMED > -Set to not build or install > -.Xr timed 8 . > .It Va WITHOUT_TOOLCHAIN > Set to not install header or > programs used for program development, > > Modified: head/tools/build/mk/OptionalObsoleteFiles.inc > ============================================================================== > --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 20:07:32 2018 (r342138) > +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat Dec 15 21:34:40 2018 (r342139) > @@ -8513,14 +8513,6 @@ OLD_FILES+=usr/share/man/man1/tftp.1.gz > OLD_FILES+=usr/share/man/man8/tftpd.8.gz > .endif > > -.if ${MK_TIMED} == no > -OLD_FILES+=usr/sbin/timed > -OLD_FILES+=usr/sbin/timedc > -OLD_FILES+=usr/share/man/man8/timed.8.gz > -OLD_FILES+=usr/share/man/man8/timedc.8.gz > -.endif > - > -.if ${MK_TOOLCHAIN} == no > OLD_FILES+=usr/bin/addr2line > OLD_FILES+=usr/bin/as > OLD_FILES+=usr/bin/byacc > > Modified: head/usr.sbin/Makefile > ============================================================================== > --- head/usr.sbin/Makefile Sat Dec 15 20:07:32 2018 (r342138) > +++ head/usr.sbin/Makefile Sat Dec 15 21:34:40 2018 (r342139) > @@ -201,7 +201,6 @@ SUBDIR.${MK_SENDMAIL}+= praliases > SUBDIR.${MK_SENDMAIL}+= sendmail > SUBDIR.${MK_TCP_WRAPPERS}+= tcpdchk > SUBDIR.${MK_TCP_WRAPPERS}+= tcpdmatch > -SUBDIR.${MK_TIMED}+= timed > SUBDIR.${MK_TOOLCHAIN}+= config > SUBDIR.${MK_TOOLCHAIN}+= crunch > SUBDIR.${MK_UNBOUND}+= unbound > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-head@freebsd.org Sat Dec 15 23:20:09 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A49F133255C; Sat, 15 Dec 2018 23:20:09 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A02598C11A; Sat, 15 Dec 2018 23:20:08 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8CF1E1E808; Sat, 15 Dec 2018 23:20:08 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wBFNK8FA027782; Sat, 15 Dec 2018 23:20:08 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wBFNK80c027781; Sat, 15 Dec 2018 23:20:08 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <201812152320.wBFNK80c027781@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Sat, 15 Dec 2018 23:20:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r342141 - head/usr.sbin/periodic/etc/weekly X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/usr.sbin/periodic/etc/weekly X-SVN-Commit-Revision: 342141 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A02598C11A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.83 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.989,0]; NEURAL_HAM_LONG(-0.88)[-0.883,0]; NEURAL_HAM_SHORT(-0.96)[-0.963,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 23:20:09 -0000 Author: eugen Date: Sat Dec 15 23:20:08 2018 New Revision: 342141 URL: https://svnweb.freebsd.org/changeset/base/342141 Log: periodic/weekly/340.noid: do not use sysrc(8) that depends on bsdinstall(8) and may be non-functional for system built WITHOUT_BSDINSTALL. (*) Also, add a check for jails sharing whole tree with host (path=/) and do not skip it. Reported by: Andre.Albsmeier@siemens.com (*) MFC after: 1 week Modified: head/usr.sbin/periodic/etc/weekly/340.noid Modified: head/usr.sbin/periodic/etc/weekly/340.noid ============================================================================== --- head/usr.sbin/periodic/etc/weekly/340.noid Sat Dec 15 22:02:02 2018 (r342140) +++ head/usr.sbin/periodic/etc/weekly/340.noid Sat Dec 15 23:20:08 2018 (r342141) @@ -22,13 +22,24 @@ case "$weekly_noid_enable" in exclude='' if [ $(sysctl -n security.jail.jailed) = 0 ]; then + # For jail_conf + . /etc/rc.subr + load_rc_config jail + sep=: OIFS="$IFS" IFS="$sep" - for param in $(jail -f "`sysrc -n jail_conf`" -e "$sep" 2>/dev/null) + for param in $(jail -f "$jail_conf" -e "$sep" 2>/dev/null) do case "$param" in - path=*) exclude="$exclude -path ${param#path=} -prune -or" + path=*) + _p=${param#path=} + if [ -z "$_p" -o "$_p" = / ]; then + continue + fi + + exclude="$exclude -path $_p -prune -or" + ;; esac done IFS="$OIFS" From owner-svn-src-head@freebsd.org Sat Dec 15 23:28:52 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2BB5013327AD; Sat, 15 Dec 2018 23:28:52 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:d12:604::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 879BA8C521; Sat, 15 Dec 2018 23:28:51 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id wBFNSicp094673 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Dec 2018 00:28:44 +0100 (CET) (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: gnn@FreeBSD.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id wBFNShbH082154 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Sun, 16 Dec 2018 06:28:43 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r342139 - in head: . bin/date libexec/rc/rc.d share/man/man5 tools/build/mk tools/build/options usr.sbin usr.sbin/timed To: "George V. Neville-Neil" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201812152134.wBFLYehs075507@repo.freebsd.org> From: Eugene Grosbein Message-ID: <7a528b98-f554-4d34-a5cb-aa5496a89f3e@grosbein.net> Date: Sun, 16 Dec 2018 06:28:39 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <201812152134.wBFLYehs075507@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 879BA8C521 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-7.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-1.00)[-0.998,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2018 23:28:52 -0000 16.12.2018 4:34, George V. Neville-Neil wrote: > Author: gnn > Date: Sat Dec 15 21:34:40 2018 > New Revision: 342139 > URL: https://svnweb.freebsd.org/changeset/base/342139 > > Log: > Remove, the now very outdated, timed. > +20181211: > + Remove the timed and netdate programs from the base tree. Setting > + the time with these deamons has been obsolete for over a decade. > + Is there any replacement software arounnd for timed protocol? I still run some telco hardware that uses my FreeBSD/timed as time source because it cannot use any other protocol, not NTP nor SNTP.