From nobody Sun Jun 11 09:53:55 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qf9BX1Wksz4ZBYR; Sun, 11 Jun 2023 09:53:56 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qf9BX15JPz45KS; Sun, 11 Jun 2023 09:53:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686477236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4E+9tg1Yy0KzQ+S3i+cnf5UfXMFh5hrHgF+W9G4jKrU=; b=F5D8/CwdBUhadmERMKh4dt74ZQxWbNvqELx8d/YZQgpLvmfFNfkvZDapgNyIa6Aw6mdONm EsLnzFR+NHIAXZVZdypSJG3SchoQ/sNeBzZHjglgH2CqeDAYJO6AmWDTeaAaZjwEhcPGNO IWjlFYcOVSbyNOMKNbaK8E5wOx8u9k2W2IU5FqOwr/JAP0TCrIDiA4Mj/E0tPhn2sRtORP kSa9PzQZ/P44AjnxG+G4aU3uzfFvOYh0AAEizZuqs9Y6+l+BXZq6PYlATQ6FENuqx/BUkt 4I3XBV43YrYp9hkxRiuZlvOu1xkaaiPFNl0EBfrzTJPmrxv5sHmlOQoWtzK7QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686477236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4E+9tg1Yy0KzQ+S3i+cnf5UfXMFh5hrHgF+W9G4jKrU=; b=ZuIsAk6bnQDmadQCcVLs/5vVd+No54B9T2s64n0Gmiyx2vpyLIgWFM9BiSomiqwR9v5JNy FCL3xyAaCNVjyaOcrTo8F0u/uxvJXPlVvwswxfwcbq/4X7Ur1xVVVB4+iFmt0j5GfLR/7g D5BUS4C3Je3xIcKi6+xT0efjr1zK64sT+5J8xo4sUGjJd88Oo6fXLpudZBcLAf8DUhDAU8 KCS7bJfjouHppl5WfsL9f4NI0uLVcNCh8X+xaahVouSlsVLkM4eqNLCvhduATL6Sb8gk2K 27r1ih5d3aFtRKrn+77sYodQgWR2eEHwm/Q8TZ6Ua+q14Zy1ZoxVPpETnR6+bA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686477236; a=rsa-sha256; cv=none; b=VMNRTyIJXtm6YkYwnBNPiiXiBcGxS4Omd6HuxjcxUl5UPCO7IcpbHIChB57CCzJfrkeSul toC+dk3shlv42+Bjok8UTNVB8CrSf/A8OjXCRWThABnQRY3boRj4EeXeI+q2PoUlBZ8l+n bWI/6wvhpS1pc8jBS7jE1oStU5qxNPKaDQNoYamgLbtyyMNJvBjNmy6Lz5p8kzdc4Y/DVs mlLf6HWMGy79/ohDlMKB7gVFDZPzcEmH25f/WG6qZye4t4QZKp4jPpR6KDAyadp1WqFIN4 MhJSP9gj0qMjMncuYxAZCSp0XJ5e46xxEhAeMpYfgBCrnjpsJzZcRc+qiCBbow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qf9BX08HLztsQ; Sun, 11 Jun 2023 09:53:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35B9rtig031184; Sun, 11 Jun 2023 09:53:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35B9rtCh031183; Sun, 11 Jun 2023 09:53:55 GMT (envelope-from git) Date: Sun, 11 Jun 2023 09:53:55 GMT Message-Id: <202306110953.35B9rtCh031183@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin Subject: git: 486459056822 - main - Revert "linux(4): The futex_wait operation should restart." List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 486459056822f080b1ae24600a4c6a7d8ff6f7d6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=486459056822f080b1ae24600a4c6a7d8ff6f7d6 commit 486459056822f080b1ae24600a4c6a7d8ff6f7d6 Author: Dmitry Chagin AuthorDate: 2023-06-11 09:47:27 +0000 Commit: Dmitry Chagin CommitDate: 2023-06-11 09:47:27 +0000 Revert "linux(4): The futex_wait operation should restart." This reverts commit 5eec19c8eb0e1afafd7290325c61611c9a13b621 due to its wrong. Linux interrupts futex syscall on signal and return EINTR. --- sys/compat/linux/linux_futex.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c index 8aaf81bdf950..9cc41b8d72f5 100644 --- a/sys/compat/linux/linux_futex.c +++ b/sys/compat/linux/linux_futex.c @@ -786,6 +786,8 @@ linux_futex_wait(struct thread *td, struct linux_futex_args *args) } umtxq_unlock(&uq->uq_key); umtx_key_release(&uq->uq_key); + if (error == ERESTART) + error = EINTR; return (error); } From nobody Sun Jun 11 20:09:03 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfQrJ102Nz4cpwG; Sun, 11 Jun 2023 20:09:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfQrH5klnz3HGH; Sun, 11 Jun 2023 20:09:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686514143; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R16RFMHsz6buM2tTMKCQBWEPTSGU7JO6IFXiMWjWOxg=; b=wuq3ZC1k9j7lt9M4xWR7WZDUpHsQayIKdK8rqTysnLE+FJ3pf89X+SzRyh1RnkZCoxT0Vl 8hPBkeRAU/JS95yA1LF4KULwMdUOC59awe5W69UOMeJFvxopsxk4EBqJGSsOzEB6H+zRJi HeWXGph+HLkGD8uUcWFvHrhOyzMevCnN2qjIG1VqQTTdl8cvbIX+O1A10zUlxsLP4jMSFk l62189JwJJ13OqCvbQm4idR89TxaBT3xQKt59JF+PIh+9StgchrJiQyyBYp2rCW1Sm6tz1 H0i/YM0A4RIcq4JK4x6eYz8gMmS2McZmD4mi7diafKir0CyVvCj4jgvCMM9IQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686514143; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R16RFMHsz6buM2tTMKCQBWEPTSGU7JO6IFXiMWjWOxg=; b=T4/ub3u6dWoxrGoRCVn/rH86A+/J7Ie4KpZL4nGuZax3IeZ1kIHqfLkrZfRG5z844kcWCW 1hMF2alOijN8h88v0a51cK96wGZy+q98d6ADTF3TTVJXFYKm6wA6vPceP9enwJAMaaFr33 WiU3SEj7GLsJnOal8rkyM/AF2UVYH6NYcQPNvFK/CO4I7okkxoNwzHfcOPdmUapFXSsi0A a1/4DuEkffQFXtK3yoK2wwuaTLo16yq0M77SWcUkvbmvf18jKakO0VCMlD+7YZBK9h+z7L AYGIJkAE3jZRFtBAa8hcDgYi1vUQrBYUJ1Je6rvJ0mMSKl0edz+9KkoHOyea1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686514143; a=rsa-sha256; cv=none; b=FMEjNo/5XN8eLdBkNx/SkneuRTdUFa1zUpY8gGLictZixkWMc5bi1sFGQiy9oQVCn702I6 ld+a+rTaKI+TidF3oKbfNfZct+3dr89Et0/NEaFC0J7bknfwpWy7Oyak2UHwa/2+i3elTj Vcg1lkNYo2s4aiF1jYcW1LOO36PUZhRgWE48nujYprl5+GJuD5Wl7S6rNcViDri8tfBLR6 jWTjmNC/PbPcrnxlWD9dqJMhEU4a0dvLyKv7b51/JYEGS4di2YttRn/iGC9gPe83fxR/pc h0DDTb0035IROWVYZZemCaU6E7+pFN0tfZVmziuDcmlcpYBNRYRJTEMjAOExcw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfQrH4gCtz19xK; Sun, 11 Jun 2023 20:09:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BK93JK035015; Sun, 11 Jun 2023 20:09:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BK93EU035014; Sun, 11 Jun 2023 20:09:03 GMT (envelope-from git) Date: Sun, 11 Jun 2023 20:09:03 GMT Message-Id: <202306112009.35BK93EU035014@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 4deff63c5d78 - stable/13 - gssd: Improve failure message when running in a jail List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4deff63c5d7837d74ea2cafc0f0373b11daf143e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=4deff63c5d7837d74ea2cafc0f0373b11daf143e commit 4deff63c5d7837d74ea2cafc0f0373b11daf143e Author: Rick Macklem AuthorDate: 2023-05-28 18:06:27 +0000 Commit: Rick Macklem CommitDate: 2023-06-11 20:07:55 +0000 gssd: Improve failure message when running in a jail If a jail is not correctly configured to run nfsd(8) in the jail, gssd(8) cannot run. This patch improves the failure message for this case. (cherry picked from commit 697727110b68e483c320d834bcbcdf01c01142a1) --- usr.sbin/gssd/gssd.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/usr.sbin/gssd/gssd.c b/usr.sbin/gssd/gssd.c index 5589da37c195..92ecd8faaddb 100644 --- a/usr.sbin/gssd/gssd.c +++ b/usr.sbin/gssd/gssd.c @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -112,8 +113,9 @@ main(int argc, char **argv) * directly to us. */ struct sockaddr_un sun; - int fd, oldmask, ch, debug; + int fd, oldmask, ch, debug, jailed; SVCXPRT *xprt; + size_t jailed_size; /* * Initialize the credential cache file name substring and the @@ -243,7 +245,27 @@ main(int argc, char **argv) gss_next_id = 1; gss_start_time = time(0); - gssd_syscall(_PATH_GSSDSOCK); + if (gssd_syscall(_PATH_GSSDSOCK) < 0) { + jailed = 0; + if (errno == EPERM) { + jailed_size = sizeof(jailed); + sysctlbyname("security.jail.jailed", &jailed, + &jailed_size, NULL, 0); + } + if (debug_level == 0) { + if (jailed != 0) + syslog(LOG_ERR, "Cannot start gssd." + " allow.nfsd must be configured"); + else + syslog(LOG_ERR, "Cannot start gssd"); + exit(1); + } + if (jailed != 0) + err(1, "Cannot start gssd." + " allow.nfsd must be configured"); + else + err(1, "Cannot start gssd"); + } svc_run(); gssd_syscall(""); From nobody Sun Jun 11 23:28:06 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfWFz0y1fz4cKx1; Sun, 11 Jun 2023 23:28:07 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfWFz08Xqz42S7; Sun, 11 Jun 2023 23:28:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zXuAH5JZ4VpunSARR73hQyR3dYtT2G9SOjUurxUwau0=; b=S3qr0lqvUhXZ4bDAxlCPX15+8H6u76+CwyLjrnvNI6mn9bHGXAY3m6aLNSwDLfgSKZSmHQ qZKvqg4MkPHD424jmiOfIldwdnaW6q6PpDkBX/qeGmXyTfxbJ46o6uUCPrfyOhAL/hn4Qv e9veDCt5YdYLGhfY+/3xBFiq+VyPBQV5QEJ0UYx1AVL2rTKpHpMvmzd1ZywYliIKcjdHsG 0AR1DvJaOXdmkjf4NHlBJKsisSqYbqaGo8LJm2oYLONdbTpghX8PZErTtLOZ6kwjJ3WC2B QyjJ9YO3r27dmkMSOZ+zLaPe327SN/XjgMbuRuGcIt9vAgxNCzHnmrD4MWVi5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zXuAH5JZ4VpunSARR73hQyR3dYtT2G9SOjUurxUwau0=; b=niBE5t4Ee2l9ujSABVoCbwrju6y1u9OiorpErUrI8n5ajlBXW05ywDSMUjKhz4LYoNx6ds mBftVEKjU/jXEFeGkiSsGmSuFrp/7Y11DcrPZ0baJ5KDKO24NYXiP8fBkCwYuaS4ILPCsp vvnhezEgUiGfpoDMIqLJs+fhiQYnnd+Mgkzun+2JpIK/OTDuSXOqFInNAj8124SKE0ZKDc a8TWvwh//PmYE0DLpHiy1j4Rd/jzvVMWbw6LkNCA0cKRu+KnjgsO/VnoqO7EA2kXqs56RR /hfqLCp7BEfQsTgPV34JrrJLQQ7GfimahiBfrxmTuIIZsCn52LVoiBg+X023Mw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686526087; a=rsa-sha256; cv=none; b=Lb6h54Y0meVQxFRMBlOrt/kfSZT4FkkgJVbRTsrpw1/6dst58n0SUpLwCI5Q3IRk6YikjB LcEK1/OywpRBV5hSDtdcpc80O9uEsZo+A4+RkAYZ+zM5PldVPM7JP3AjonCjThEbKtBLyn hWFx87ho1swKZ26EAAKEYNbBzTBmF8fJX9TyFkWjp0DjhwIPNWGTotM2qYR/gEYsLUYx6q m0lK5WSdb30Fai5IxaKaTqGLq+AkZhfJdTe212KGDZrAv4sykYGa68m4VCQW5IFttm0EI5 s/o8OrCjbPgdN5oSivw9fzRM8MAte+zigBMxNMrS+7UXwc2JuT1oYj1NvfalFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfWFy6JlMzHfY; Sun, 11 Jun 2023 23:28:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BNS67S063186; Sun, 11 Jun 2023 23:28:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BNS6th063185; Sun, 11 Jun 2023 23:28:06 GMT (envelope-from git) Date: Sun, 11 Jun 2023 23:28:06 GMT Message-Id: <202306112328.35BNS6th063185@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: bb5d6d14d81b - main - wpa: Enable receiving priority tagged (VID 0) frames List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bb5d6d14d81b0789d2e73da03571603426afef56 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=bb5d6d14d81b0789d2e73da03571603426afef56 commit bb5d6d14d81b0789d2e73da03571603426afef56 Author: R. Christian McDonald AuthorDate: 2023-06-11 23:22:53 +0000 Commit: Cy Schubert CommitDate: 2023-06-11 23:26:04 +0000 wpa: Enable receiving priority tagged (VID 0) frames Certain internet service providers transmit vlan 0 priority tagged EAPOL frames from the ONT towards the residential gateway. VID 0 should be ignored, and the frame processed according to the priority set in the 802.1P bits and the encapsulated EtherType (i.e. EAPOL). The pcap filter utilized by l2_packet is inadquate for this use case. Here we modify the pcap filter to accept both unencapsulated and encapsulated (with VLAN 0) EAPOL EtherTypes. This preserves the original filter behavior while also matching on encapsulated EAPOL. Sponsored by: Rubicon Communications, LLC ("Netgate") Reviewed by: cy MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D40442 --- contrib/wpa/src/l2_packet/l2_packet_freebsd.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/wpa/src/l2_packet/l2_packet_freebsd.c b/contrib/wpa/src/l2_packet/l2_packet_freebsd.c index 7b96bd033c87..156a09a32a84 100644 --- a/contrib/wpa/src/l2_packet/l2_packet_freebsd.c +++ b/contrib/wpa/src/l2_packet/l2_packet_freebsd.c @@ -21,6 +21,7 @@ #include #endif /* __sun__ */ +#include #include #include #include @@ -99,6 +100,11 @@ static void l2_packet_receive(int sock, void *eloop_ctx, void *sock_ctx) } else { buf = (unsigned char *) (ethhdr + 1); len = hdr->caplen - sizeof(*ethhdr); + /* handle 8021Q encapsulated frames */ + if (ethhdr->h_proto == htons(ETH_P_8021Q)) { + buf += ETHER_VLAN_ENCAP_LEN; + len -= ETHER_VLAN_ENCAP_LEN; + } } l2->rx_callback(l2->rx_callback_ctx, ethhdr->h_source, buf, len); } @@ -127,10 +133,10 @@ static int l2_packet_init_libpcap(struct l2_packet_data *l2, os_snprintf(pcap_filter, sizeof(pcap_filter), "not ether src " MACSTR " and " "( ether dst " MACSTR " or ether dst " MACSTR " ) and " - "ether proto 0x%x", + "( ether proto 0x%x or ( vlan 0 and ether proto 0x%x ) )", MAC2STR(l2->own_addr), /* do not receive own packets */ MAC2STR(l2->own_addr), MAC2STR(pae_group_addr), - protocol); + protocol, protocol); if (pcap_compile(l2->pcap, &pcap_fp, pcap_filter, 1, pcap_netp) < 0) { fprintf(stderr, "pcap_compile: %s\n", pcap_geterr(l2->pcap)); return -1; From nobody Sun Jun 11 23:40:19 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfWX40fXkz4cLXS; Sun, 11 Jun 2023 23:40:20 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfWX36d8Yz438J; Sun, 11 Jun 2023 23:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526819; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Sy5sq1pK7JIoyoUZ1lc0tqkm5PBZZ8OIpTiTcKNbRZo=; b=TyTp2RUxAR6T/P/31Vpy1JsXz2RT6JDu4UBTyFP0nyL8YT8CeF0dyDfWvM21J+Rh7/8rhA bwKKFfDrZFIpCBSuN0GBnNt1CbT8HwjiiXrfieUCCH8WPkWqnc6PrIp2K6rNayDgXKBXRf f2gawN1K8G8t4kBCoFn2c01ASXhwAzROztVSvWuSmMONL4bqgKAkGuHf3Pk2IuxoF9YGOq HGG0dQg/yUZ6MiC0P93O6F0CvOiU3afscbusa/t+DmrwtO1tLFw1GjUEzcrGV7pCx+wxUM 7hBwdM5M5MRSkboAqkXd0bQCwxeEk/uRzzO5k6cZKGgvKTKzaokZvrQsAlRQiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526819; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Sy5sq1pK7JIoyoUZ1lc0tqkm5PBZZ8OIpTiTcKNbRZo=; b=wK+CJkYGLpxdXbSd4Bjk4rXtjvK5o+DAsuZSbt10chzlFzyeL6FjGvpV82cyOTwQYA6e2G UHpDw72ePkpPgGxqIUeGYipwbQSrv3XdN9NQDUh02371Og0sUmgDbbfVdMeT4ZJHdpR+ov w7jFcGCYLlidbDFR5Bmy1lKEG3Ht6k+cXTJ6q24a1V2v6+lSuHDIdYJ81pLTy4/Q3uJXc1 ohFl0ZXYrRggdXqEvzEdDVgWNO5BA5XAsic0ZFDWMczyYHdCI53gsdy0lfVmDwm/82E7RZ p7e6tgJ9eXez8b3t2Pv6nhGsQDxeOJ48sK5aOsLtLh3qoZPKrEiyHYKFNltsYQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686526819; a=rsa-sha256; cv=none; b=yc8DhUI75VCyYwV0EvVqjUuXUDGTJC40nKF82e+Yx9MOc1EADBPcWOlLBcPHrMWefyr5zH jW3G32Uf81Mc5UQ+gwkAxSR9y5BzuaF3hvMSFa7W+fJpWXbiV9iOjxMh6yHpE48umGNhmr zksOQY/fngG2fX31XZ2Nhq3KyHJb4yRsuSO2DrzY3RDSHAxdy/wFqL8ItZjHYfvdoKlsOL U6V5mGN8nczVKUUj94WH91HN4BMFxR8AxG7z/d90/8P2UTDiq9tMbenPtSFQcCGvM3D5SQ 4MET9OdCEag/H6vkuHGJPaqeMmdWkyKvn6bahhcfhZginWE3/kihDKRLQZ84bw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfWX35VhYzJDF; Sun, 11 Jun 2023 23:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BNeJFR087793; Sun, 11 Jun 2023 23:40:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BNeJOp087792; Sun, 11 Jun 2023 23:40:19 GMT (envelope-from git) Date: Sun, 11 Jun 2023 23:40:19 GMT Message-Id: <202306112340.35BNeJOp087792@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d231ca7fe394 - stable/13 - rtld_tls.h: style List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d231ca7fe394c32bc8e2bb42949841245e8c912e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d231ca7fe394c32bc8e2bb42949841245e8c912e commit d231ca7fe394c32bc8e2bb42949841245e8c912e Author: Konstantin Belousov AuthorDate: 2023-06-05 01:15:31 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-11 23:39:43 +0000 rtld_tls.h: style (cherry picked from commit a7bca6949252f32bb39440cb2914ba23e1c01551) --- libexec/rtld-elf/rtld_tls.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/rtld-elf/rtld_tls.h b/libexec/rtld-elf/rtld_tls.h index e150ad7f2613..01b26707159a 100644 --- a/libexec/rtld-elf/rtld_tls.h +++ b/libexec/rtld-elf/rtld_tls.h @@ -58,7 +58,7 @@ * The value returned from this function is suitable for installing * directly into the thread pointer register. */ -void *_rtld_allocate_tls(void* oldtls, size_t tcbsize, size_t tcbalign) +void *_rtld_allocate_tls(void *oldtls, size_t tcbsize, size_t tcbalign) __exported; /* From nobody Sun Jun 11 23:40:20 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfWX5276Jz4cLMb; Sun, 11 Jun 2023 23:40:21 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfWX51Wdnz438s; Sun, 11 Jun 2023 23:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bfTyMwhol4lX0L5dnIKNigE1nWDIB6vUM4ykE9fNOJ4=; b=mWEIBzGDXFOPScwK9Qa6cHT8BZrF49dn4zRXaVWzAwD/9b5rZTR8VybN50ro7s8Ra9+FKq x/RkCOzx3JAK78m3xvMvrBCVUMJ1Zrmaqwc0RNGQoIQSrvWeP2i2RW0WS2Ox1ImHU30nt5 hl0EMODvs+4joX2IK08KdkPBEcPleFJqW7yQ8b1y849WbQTLEn0nGP1W63Lz0ASh4G6LGH D5BjBmoz5PM7Otbw8M6S6xzWkQPbtBOZ7pGrGZjcSRWYtr2NbOuRRN1Oa0C0qX4jabSiF8 FY3Arga+eq8hzuY6EGdXPAzjwl0u2ovoXiBvHP7sXLNw6HOqquPc775GAqW7TQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bfTyMwhol4lX0L5dnIKNigE1nWDIB6vUM4ykE9fNOJ4=; b=SYNXjdlmzAdiA5wHLmoRXjPmH3voRqINi9b+z5RXjcb8QxWI2Dqq1vL/e0lDF/Z9HWy6v8 1XeXeUNzww7jW9dPC5v9vXxrSWHTPX2pYkMxbEvBaTJ8keGZcqdjpEN8pZar/togHoQkrf xJdKE+7jWWS1Yeh6TS35UtZUuvBETdFQNFjyVNDh+PxVIBR+3Ndb7HDdBsBo99V6Z2k3ZO Y9Zt23RTi2pqZP7aSZBEVIedem/filOng+lxtgYhBUoQ0Su/cUuD9T3uyrQEIsRHg+Wy0u tprHeeIawTPGstqkFe9dskpgQWvka+wogAhfYBWklI4/d4i7k7KRXRDDotkP/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686526821; a=rsa-sha256; cv=none; b=ayNPtSatulgBqC4kFyK+LPUTnb+rb6K0ixPw0dU6Gm2OyRfilDI4FenxeuFwv9yS/sBGAX PUU/IBnyjgwU3jlRaVaI+sGSr8N89JBbbIp1xucl90DezAVcfqdrvEZa6p+qAJE+v1+aZJ X/nZfVHYQMdZCTNBZnHBdm7YfZCjrP/Z7nD81Y66fxdDj2bLfSBDb0OyvIoP+px+nRgWA2 U8a9r0txXlxHDFxque4+HFrsPAfxPf2mwAADqbF6P07HtR0vSRiBA5NcxGeXFtTEoPf2BX rEGCtCTELmKLXJreZ0JviOLT92LOL5m04tBmzw/ra5th5RA4SP8sufxwMdJh3A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfWX45sgSzHgZ; Sun, 11 Jun 2023 23:40:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BNeK0W087813; Sun, 11 Jun 2023 23:40:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BNeKX4087812; Sun, 11 Jun 2023 23:40:20 GMT (envelope-from git) Date: Sun, 11 Jun 2023 23:40:20 GMT Message-Id: <202306112340.35BNeKX4087812@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 60e3db0c4527 - stable/13 - rtld: rename tls_done to tls_static List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 60e3db0c45273bfdcd0afd88138ccd32ef0049d9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=60e3db0c45273bfdcd0afd88138ccd32ef0049d9 commit 60e3db0c45273bfdcd0afd88138ccd32ef0049d9 Author: Konstantin Belousov AuthorDate: 2023-06-05 00:43:55 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-11 23:39:43 +0000 rtld: rename tls_done to tls_static (cherry picked from commit 283a4f409731ba3a4eb1be41e151c20e8a960c03) --- libexec/rtld-elf/aarch64/reloc.c | 2 +- libexec/rtld-elf/amd64/reloc.c | 4 ++-- libexec/rtld-elf/arm/reloc.c | 2 +- libexec/rtld-elf/i386/reloc.c | 2 +- libexec/rtld-elf/map_object.c | 2 +- libexec/rtld-elf/mips/reloc.c | 4 ++-- libexec/rtld-elf/powerpc/reloc.c | 2 +- libexec/rtld-elf/powerpc64/reloc.c | 2 +- libexec/rtld-elf/riscv/reloc.c | 4 ++-- libexec/rtld-elf/rtld.c | 8 ++++---- libexec/rtld-elf/rtld.h | 2 +- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/libexec/rtld-elf/aarch64/reloc.c b/libexec/rtld-elf/aarch64/reloc.c index d83da4df0ec5..f9a1ae4c2b6c 100644 --- a/libexec/rtld-elf/aarch64/reloc.c +++ b/libexec/rtld-elf/aarch64/reloc.c @@ -470,7 +470,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, * modules. If we run out of space, we generate an * error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error( diff --git a/libexec/rtld-elf/amd64/reloc.c b/libexec/rtld-elf/amd64/reloc.c index c9a2734853b6..e1e24bc462d6 100644 --- a/libexec/rtld-elf/amd64/reloc.c +++ b/libexec/rtld-elf/amd64/reloc.c @@ -258,7 +258,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, * dynamically loaded modules. If we run out * of space, we generate an error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error("%s: No space available " @@ -279,7 +279,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, * dynamically loaded modules. If we run out * of space, we generate an error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error("%s: No space available " diff --git a/libexec/rtld-elf/arm/reloc.c b/libexec/rtld-elf/arm/reloc.c index c3219d52bf7e..9f39a315a4e7 100644 --- a/libexec/rtld-elf/arm/reloc.c +++ b/libexec/rtld-elf/arm/reloc.c @@ -319,7 +319,7 @@ reloc_nonplt_object(Obj_Entry *obj, const Elf_Rel *rel, SymCache *cache, if (def == NULL) return -1; - if (!defobj->tls_done && !allocate_tls_offset(obj)) + if (!defobj->tls_static && !allocate_tls_offset(obj)) return -1; tmp = (Elf_Addr)def->st_value + defobj->tlsoffset; diff --git a/libexec/rtld-elf/i386/reloc.c b/libexec/rtld-elf/i386/reloc.c index b9c16e2cd154..f7123f91f6fb 100644 --- a/libexec/rtld-elf/i386/reloc.c +++ b/libexec/rtld-elf/i386/reloc.c @@ -242,7 +242,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, * dynamically loaded modules. If we run out * of space, we generate an error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error("%s: No space available " diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c index fb5854910ee2..149b8945bf35 100644 --- a/libexec/rtld-elf/map_object.c +++ b/libexec/rtld-elf/map_object.c @@ -433,7 +433,7 @@ obj_free(Obj_Entry *obj) { Objlist_Entry *elm; - if (obj->tls_done) + if (obj->tls_static) free_tls_offset(obj); while (obj->needed != NULL) { Needed_Entry *needed = obj->needed; diff --git a/libexec/rtld-elf/mips/reloc.c b/libexec/rtld-elf/mips/reloc.c index 12bfb01ba4ad..6867e9e1553c 100644 --- a/libexec/rtld-elf/mips/reloc.c +++ b/libexec/rtld-elf/mips/reloc.c @@ -588,7 +588,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, if (def == NULL) return -1; - if (!defobj->tls_done && !allocate_tls_offset(obj)) + if (!defobj->tls_static && !allocate_tls_offset(obj)) return -1; val += (Elf_Addr)def->st_value - TLS_DTV_OFFSET; @@ -616,7 +616,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, if (def == NULL) return -1; - if (!defobj->tls_done && !allocate_tls_offset(obj)) + if (!defobj->tls_static && !allocate_tls_offset(obj)) return -1; val += (Elf_Addr)(def->st_value + defobj->tlsoffset diff --git a/libexec/rtld-elf/powerpc/reloc.c b/libexec/rtld-elf/powerpc/reloc.c index ab09b1536d80..56985ef51d8d 100644 --- a/libexec/rtld-elf/powerpc/reloc.c +++ b/libexec/rtld-elf/powerpc/reloc.c @@ -252,7 +252,7 @@ reloc_nonplt_object(Obj_Entry *obj_rtld __unused, Obj_Entry *obj, * modules. If we run out of space, we generate an * error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error("%s: No space available for static " diff --git a/libexec/rtld-elf/powerpc64/reloc.c b/libexec/rtld-elf/powerpc64/reloc.c index 1dcdd2478403..93907ebd97d3 100644 --- a/libexec/rtld-elf/powerpc64/reloc.c +++ b/libexec/rtld-elf/powerpc64/reloc.c @@ -247,7 +247,7 @@ reloc_nonplt_object(Obj_Entry *obj_rtld __unused, Obj_Entry *obj, * modules. If we run out of space, we generate an * error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error("%s: No space available for static " diff --git a/libexec/rtld-elf/riscv/reloc.c b/libexec/rtld-elf/riscv/reloc.c index 48d513b94ec6..b5dea298b74d 100644 --- a/libexec/rtld-elf/riscv/reloc.c +++ b/libexec/rtld-elf/riscv/reloc.c @@ -325,7 +325,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, * modules. If we run out of space, we generate an * error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error( @@ -352,7 +352,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, * modules. If we run out of space, we generate an * error. */ - if (!defobj->tls_done) { + if (!defobj->tls_static) { if (!allocate_tls_offset( __DECONST(Obj_Entry *, defobj))) { _rtld_error( diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index dc8353ba6628..8aa717021c97 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -5520,11 +5520,11 @@ allocate_tls_offset(Obj_Entry *obj) { size_t off; - if (obj->tls_done) + if (obj->tls_static) return (true); if (obj->tlssize == 0) { - obj->tls_done = true; + obj->tls_static = true; return (true); } @@ -5555,7 +5555,7 @@ allocate_tls_offset(Obj_Entry *obj) tls_last_offset = off; tls_last_size = obj->tlssize; - obj->tls_done = true; + obj->tls_static = true; return (true); } @@ -5931,7 +5931,7 @@ distribute_static_tls(Objlist *list, RtldLockState *lockstate) return; STAILQ_FOREACH(elm, list, link) { obj = elm->obj; - if (obj->marker || !obj->tls_done || obj->static_tls_copied) + if (obj->marker || !obj->tls_static || obj->static_tls_copied) continue; distrib(obj->tlsoffset, obj->tlsinit, obj->tlsinitsize, obj->tlssize); diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h index e8e997753c6f..7db3f00e0dc5 100644 --- a/libexec/rtld-elf/rtld.h +++ b/libexec/rtld-elf/rtld.h @@ -251,7 +251,7 @@ typedef struct Struct_Obj_Entry { bool traced : 1; /* Already printed in ldd trace output */ bool jmpslots_done : 1; /* Already have relocated the jump slots */ bool init_done : 1; /* Already have added object to init list */ - bool tls_done : 1; /* Already allocated offset for static TLS */ + bool tls_static : 1; /* Already allocated offset for static TLS */ bool phdr_alloc : 1; /* Phdr is allocated and needs to be freed. */ bool z_origin : 1; /* Process rpath and soname tokens */ bool z_nodelete : 1; /* Do not unload the object and dependencies */ From nobody Sun Jun 11 23:40:21 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfWX633Y8z4cLPl; Sun, 11 Jun 2023 23:40:22 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfWX60vFxz43Wy; Sun, 11 Jun 2023 23:40:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EAcHsXV8sxLCqlGvUF1PRptGm5rXW1+T9zerxrFuFbg=; b=YSnqWA2jfi/w76+YzUtZjYa0+W/D36F1pJ5kQAD9fa14JM2i4V+vbSPuq5QRAVaH1KQkvb tLDYS95dNgpsMpP1gM31gNpPujJQtY4AupIZHQp9jtdn9+h1VxSMvqMCS4SCbqnRtPn8Kp hcIXMgPPs1a6h+PwlEsYwBu/y2Z3vN+wvO1AuyRP2pohViwWbSj8/t/52i+hMF9/tif68o cCLwZNctifnp1+y+blCbMmJ0t3GzbWfUbxDmsWKYMXK0baPkFOoD/uUbZQo5/NyM2NVALs PnT8yDOTS3YApXbrXBc1I/6igOpM7aB1+HYy95LAG3G5DSHPkPnN9YhqSaHiXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EAcHsXV8sxLCqlGvUF1PRptGm5rXW1+T9zerxrFuFbg=; b=G1isQOJnwVdaOkAMzOi+SfmrdaTfSwY7Ty230WSeJ//6NM9JkCPlMOExIKIAD6UJ/HtRT5 7uLOdkBQNU0MaXg4EjU1gpSGH/pvShZGf2Gc+ldiRjuA4W1/vui/ZQ2MWSZssF3z6Of5LQ F1XCnTecEVjYqpeRC4BArVNdK7DbJRLl7zJh0dgC44H0kUQIawWtlfEV6GRtbxqP1WyLxB RTyb0/Z7TpNiwMGW2B+96EqJMmL8CKe/mRxkuUBLGd2TMbxHcPef1sKghqD55AvMQsBDpo ek88XNQOC5m8YcAP3gWWhqmIrGPaRLeg1a75WVr343L8cVo6Rg5IZJJcFwAsgQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686526822; a=rsa-sha256; cv=none; b=ohlmDyG/6jHItGda8NUQERkRTeoflGNq2GPPjTBmbZ9ZGygdvNdl5/14Z4WGlwS5EXZh8T CzcxX7QQKwIiadY+HfIluH7uVdN3TlHQNQQWAQxAAvMR85mElkKszqbD1esJqrF4sdBdq+ BHSW4vW0EoDQcKwQlD4y772EkaQcBXA0zJpVCEgYHsBarIiBa776GDfjnMMN0E0nEwXPp4 sYgoYdaeH45VLynSlTQ726AXaNtYz1PtN8STJIaxLzWQwxCLoZqoccNqIQlpn8YwxeUwud +Zl/EH5tsg9nj48IieaBcKkH/DaxEuks0uUcPrsYYDcn5cLTEn1TpXQlZCQQRA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfWX56nsczJ30; Sun, 11 Jun 2023 23:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BNeLUQ087835; Sun, 11 Jun 2023 23:40:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BNeLvt087834; Sun, 11 Jun 2023 23:40:21 GMT (envelope-from git) Date: Sun, 11 Jun 2023 23:40:21 GMT Message-Id: <202306112340.35BNeLvt087834@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: dc56749b2074 - stable/13 - rtld: do not allow both dynamic DTV index and static TLS offset List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: dc56749b2074b4f3e95e7295ac60f04e611949e3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=dc56749b2074b4f3e95e7295ac60f04e611949e3 commit dc56749b2074b4f3e95e7295ac60f04e611949e3 Author: Konstantin Belousov AuthorDate: 2023-06-05 00:54:46 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-11 23:39:43 +0000 rtld: do not allow both dynamic DTV index and static TLS offset (cherry picked from commit 91880e07f605edb90339685bc934699a4344de3b) --- libexec/rtld-elf/rtld.c | 14 ++++++++++++++ libexec/rtld-elf/rtld.h | 1 + 2 files changed, 15 insertions(+) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 8aa717021c97..017833164a18 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -5509,6 +5509,17 @@ allocate_module_tls(int index) rtld_die(); } + if (obj->tls_static) { +#ifdef TLS_VARIANT_I + p = (char *)_tcb_get() + obj->tlsoffset; +#else + p = (char *)_tcb_get() - obj->tlsoffset; +#endif + return (p); + } + + obj->tls_dynamic = true; + p = malloc_aligned(obj->tlssize, obj->tlsalign, obj->tlspoffset); memcpy(p, obj->tlsinit, obj->tlsinitsize); memset(p + obj->tlsinitsize, 0, obj->tlssize - obj->tlsinitsize); @@ -5520,6 +5531,9 @@ allocate_tls_offset(Obj_Entry *obj) { size_t off; + if (obj->tls_dynamic) + return (false); + if (obj->tls_static) return (true); diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h index 7db3f00e0dc5..9bc75dc97546 100644 --- a/libexec/rtld-elf/rtld.h +++ b/libexec/rtld-elf/rtld.h @@ -252,6 +252,7 @@ typedef struct Struct_Obj_Entry { bool jmpslots_done : 1; /* Already have relocated the jump slots */ bool init_done : 1; /* Already have added object to init list */ bool tls_static : 1; /* Already allocated offset for static TLS */ + bool tls_dynamic : 1; /* A non-static DTV entry has been allocated */ bool phdr_alloc : 1; /* Phdr is allocated and needs to be freed. */ bool z_origin : 1; /* Process rpath and soname tokens */ bool z_nodelete : 1; /* Do not unload the object and dependencies */ From nobody Sun Jun 11 23:40:22 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfWX72q7qz4cLKt; Sun, 11 Jun 2023 23:40:23 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfWX71TDYz43c4; Sun, 11 Jun 2023 23:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=93Mmxu/pcmd5M5vlNUm5O6AOOvdWcYVp1gHAeYUjz1w=; b=V/DVHbNo3Id/TRj1hy0Gsh4Kbr0qakE9EQBY/ALCFOVFbnt0xJ+ya17Q7q3YNKpLXsvQlJ CwUJot8p2ndEHY+TkPV4b9pqCM0aN9oO0NfK0iq9NO8fi8jMx3a1YLzmrvbxJEVvFsT9eR 33aQRdgnlP/S6z9fxa24JWyfq4JsS9c6TXa33htwNuEE0YYJIDdsEkFi5JMmjc0bshJ2M4 MVJWKWiAtkofWTdzgyywMLr09syjelYVrl69C0S2mJEL2XkKw15tIhcKH+C54lp+gAn3nV /A9FSDW1qroGruj60ebFTXwQU2oGA96lbnNtLKsfbkYi8swLOFPYQN4w9B/t2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=93Mmxu/pcmd5M5vlNUm5O6AOOvdWcYVp1gHAeYUjz1w=; b=aat7Vi1AtCynZifrBrolS+6pYjbA203qOKQRpxbFxcmH7opvqrFjugqN8pTPOHTEEKVMKw JQD/6R5SamsHCxOqSnGXmFFz2wnbjS+m6DBHki/i0KUW8XyDMGxNWjYvfqB/PI1VE+n/5E PCdb1sJp6A3sJftlrHXLNXyDyTVloCsXE77tK7kjfeY9uGOe2ojN2m4yZ41nl7BSPT9KWj dGsKCVtAl84vZ+AZyBcvCrSbyRAFk7KdbdWskQljSmIlTucQ/8ufmKshImzmBBivLdJctb MfPf6jcx9NG7lPW6E9pFWnmdPprCEGKk8435hRlUV4zQK0yK93akzYiJEQlUoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686526823; a=rsa-sha256; cv=none; b=l8aLmc5KqseinsbR3cefLSK4EvWDr9gEt+/HCh+XeF+1Op+t1sWoZaGgWBENb5swe0EOjA szP7p0kNaMw9gog55/r144oxLRVnyZ6j0XuomSyL9siBsYL+AUsROLuKNTkJ3k6vQukbVt HUcbddyXA+hL9oUFZ1C7QRDNUqFdmS2SviUDA+ve8iE08JLbu+qNys+F8soKudI2/gX0GW cLknYEdLSEjvmMZajF8vnQSg/AI8Y8a7yfBVoq/ipLyC8iSE8D6lttKCTNuWQxxKL4436D QdeBuQQiontfId719FxDONDzvpuIKjB9tphpESGNPqxhoxsn9FC/cj5FiTaF8A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfWX70bHwzJBQ; Sun, 11 Jun 2023 23:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BNeM4q087856; Sun, 11 Jun 2023 23:40:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BNeMq0087855; Sun, 11 Jun 2023 23:40:22 GMT (envelope-from git) Date: Sun, 11 Jun 2023 23:40:22 GMT Message-Id: <202306112340.35BNeMq0087855@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 62bc41c614ec - stable/13 - rtld: fix allocate_module_tls() variant I fallback to static allocation List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 62bc41c614ece3fa32010a92cb57738303795666 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=62bc41c614ece3fa32010a92cb57738303795666 commit 62bc41c614ece3fa32010a92cb57738303795666 Author: Konstantin Belousov AuthorDate: 2023-06-09 00:51:32 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-11 23:39:43 +0000 rtld: fix allocate_module_tls() variant I fallback to static allocation (cherry picked from commit e9a38ed2fa61fd264a80f24ceb35f39b0ac6463d) --- libexec/rtld-elf/rtld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 017833164a18..91b09b5fbd25 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -5511,7 +5511,7 @@ allocate_module_tls(int index) if (obj->tls_static) { #ifdef TLS_VARIANT_I - p = (char *)_tcb_get() + obj->tlsoffset; + p = (char *)_tcb_get() + obj->tlsoffset + TLS_TCB_SIZE; #else p = (char *)_tcb_get() - obj->tlsoffset; #endif From nobody Sun Jun 11 23:40:24 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfWX82dc0z4cLLD; Sun, 11 Jun 2023 23:40:24 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfWX826Tyz43CK; Sun, 11 Jun 2023 23:40:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526824; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p//QUizHwqPOjEieTTShu40b0xAsbW35CDipa30wXcU=; b=TaozGpkLkNA464RSG14zbS5GLSe7P0bR33ADdRP22QZ95XNDDp5eBmbIDL+D1N9IkIU32f KXBIVSSBOd5siRfz5IZLkomPqpLnYZtoBrjCUEDZRu/ITdvN+/c9CsVL7NDjys+potrnfs Kg+Jh99bFNYBaeVQ4e9VWSUdELVK6oIeOzyt4aQOQyTeatj8t+0L5N6TqwyfS2ZQbBAKD2 MbWIpz82gW0xwkCmugssVAjJHm7fIw/yJ+jEeV/gQpBhUNHPy3XeQJlYRUQXZeg4969iZ3 2V9AJAs0xzz44z93hzXfsDQqZ5g8rnR1V4mJuYJwrysSGQdiik6NC6m44gHtHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686526824; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p//QUizHwqPOjEieTTShu40b0xAsbW35CDipa30wXcU=; b=ytsBDumrbDMf9GiDZbTajulDte/Vi+QnUE2ybB95g45at/3/jofqvhxs4Z5dbip6Xbq/Y2 swGAenGI5N5phSPLF9PWTfTD4UTCsSIQUixhGMvytQKu9BIpUrH0kuG3UrKLruJDptIsO8 A5IehJ9eRvn1OAm3lRPE3oGcDYyHx8fL9dvRb6Il9+Vf5itHUHfYMaTS4XzYw83RYxHSLA 2s1ZlyRP7MhvPOvm9rwEux3z65tbQ115W7U2vmkk28rU7ko5V0zVOfcj3OpW0KGCAhKJnD pi3ibVMjsEQUjaNQNjpLEm2YuR7tp7J8WCWadDlUlmuoq/VA2PEeeVeNLMps/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686526824; a=rsa-sha256; cv=none; b=o8Edvr5SgWx8SrkDBSNNzsG7bynkN9yE2FW5D6An+dJSl8qFJDx/gqNKgoxa2WJVJdseMB W06bLwM1PuuoEMORzsuoirrnNoyTFswoBGw5JHFcta2t75q+U6mgsN8RMGSFJWt+B7Mf0/ Dsl/JIg7sH5fgn03dqbXlQy2LEozgjT8VNN5iDz9GbmUwtDsIMn4+XnPP+5CpNrUEOUY8f ai6YBZyhpxMR+WKAJr2ZbqJ2oQ0NGtqfqiMQk1qqMgKPNEiGcvKxDMNxZxOKFwPvSC40WR 7vl5j8mPIYkjbVDIIju41nLCaqLd0y7xQnF9LKz20NQAyt9kEo36R+RTBwgNCw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfWX81CWlzJDG; Sun, 11 Jun 2023 23:40:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35BNeOfC087885; Sun, 11 Jun 2023 23:40:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35BNeOBk087884; Sun, 11 Jun 2023 23:40:24 GMT (envelope-from git) Date: Sun, 11 Jun 2023 23:40:24 GMT Message-Id: <202306112340.35BNeOBk087884@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d0fec56f9052 - stable/13 - rtld: fix typo in comment List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d0fec56f90523fea2a1b963ceb6d854ff3a6aebf Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d0fec56f90523fea2a1b963ceb6d854ff3a6aebf commit d0fec56f90523fea2a1b963ceb6d854ff3a6aebf Author: Konstantin Belousov AuthorDate: 2023-06-10 01:35:14 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-11 23:39:43 +0000 rtld: fix typo in comment (cherry picked from commit a254f671025f3da313e1d02646b6402f54006e14) --- libexec/rtld-elf/aarch64/rtld_machdep.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/rtld-elf/aarch64/rtld_machdep.h b/libexec/rtld-elf/aarch64/rtld_machdep.h index ce6f6fc6c7c0..6d89d557d16f 100644 --- a/libexec/rtld-elf/aarch64/rtld_machdep.h +++ b/libexec/rtld-elf/aarch64/rtld_machdep.h @@ -64,7 +64,7 @@ Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, * Pass zeros into the ifunc resolver so we can change them later. The first * 8 arguments on arm64 are passed in registers so make them known values * if we decide to use them later. Because of this ifunc resolvers can assume - * no arguments are passeed in, and if this changes later will be able to + * no arguments are passed in, and if this changes later will be able to * compare the argument with 0 to see if it is set. */ #define call_ifunc_resolver(ptr) \ From nobody Mon Jun 12 01:24:32 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfYrK1qdjz4cjQP; Mon, 12 Jun 2023 01:24:33 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfYrK0qQgz4LP5; Mon, 12 Jun 2023 01:24:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686533073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NrTPowjegZR2012uZBfVkrL5YxnnQ2PWHkrs73vjm4E=; b=N7RDweaZYZjgWFjKq85pRz9yBZ/zILKhlAZ8JziDHKsWg/rneSBQbT9zRp+jgyeNzZDerh oAkUyNQ2oQUSbxsuQKDXKcfFZaLVfO8Xk4btrNtrkmYob/rOl8UMp2DhPB37aB/Ra64cz5 cRDehEthcAJWpcoSO4p2rdGJss1EmG/+SAaT8NwSRZ7148Yp6ZabywV/ciQCkn0SfWjbw5 dCgLmR/pNZXIMA8G4p4ybzFgUF2osTISBcdGY/JvxR5pE4azIBu/bFuYJKGnBPF8Tr0BZr q/g69wdyx/15d00qQpYFp4n+JZsoAKowAjU0R9+n2X/QColyp+uK7XzNldRNjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686533073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NrTPowjegZR2012uZBfVkrL5YxnnQ2PWHkrs73vjm4E=; b=npd51qqPSj0cO1qc1R6C9xqhzmGCMKxYlesEc/6VNcbpNX7/MdlCD9CSPdKBJ4cLM2Klg2 0aGwHvJqEDHt6KIHThBRBRpXdK9blL+46vJN28ItNc9zFHf6pvUo5MmaR4uY+3IbLwNykA s87CroXGL+A5JKvK3cDbPw9WsaThdr1oxn4lM5p8nbA5W6QfQMTV3BRYQ849zaqhTY+2GK KOkkB8e8efMw/wwhQOmEUM31p/GV3ljidTyw+g7QsofHa1f+wY0AQrwDQi7npjQztS0BNg XvtxWMSlJ1ab+xjyW/ecgjNuvqljWQNxbM+vBnCTX3A2fL53/KvmA1HEh1dQyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686533073; a=rsa-sha256; cv=none; b=W3RlFhKGwRSejLjjRj1MKO7B4Q0+FO/W9C0sWabblxVW7Gu2A+FTwgZx7z1Yh/gACk2v8Z czoYBh8H1WMGSSYPEPublmd5MtH5zNV4cTFcv2EIuovmjG/czEXqPryJoHTghqbQ/BJnBD 6GBy8KqdiRQw8S+OV5nPen7XwtJTQ1Smy5sY/KACFJE5h7hF7vEtCCkwI5xsoU742yuRmP vk+S7G1QQ0CEjCsPXM+2t285MHShpqQJX1cF40d6KxHjJJduD27zpm1+I8OfmR7L14yK3H j2rhXKE67Vg6Qd2/ax4802NPnNeEFyawl+4ta2JVHzyjnFdppOnhI0a3grNZ7Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfYrJ737bzLrT; Mon, 12 Jun 2023 01:24:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35C1OWOq059495; Mon, 12 Jun 2023 01:24:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35C1OW4U059494; Mon, 12 Jun 2023 01:24:32 GMT (envelope-from git) Date: Mon, 12 Jun 2023 01:24:32 GMT Message-Id: <202306120124.35C1OW4U059494@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 4eee1fcdfc77 - stable/13 - nfsuserd: Improve failure message when running in a jail List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4eee1fcdfc778640b93d3ba897d3206fa04484ee Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=4eee1fcdfc778640b93d3ba897d3206fa04484ee commit 4eee1fcdfc778640b93d3ba897d3206fa04484ee Author: Rick Macklem AuthorDate: 2023-05-29 20:38:07 +0000 Commit: Rick Macklem CommitDate: 2023-06-12 01:23:37 +0000 nfsuserd: Improve failure message when running in a jail If a jail is not correctly configured to run nfsd(8) in the jail, nfsuserd(8) cannot run. This patch improves the failure message for this case. (cherry picked from commit a94018e2003b83c10e8fb814f7a8d47e2513da95) --- usr.sbin/nfsuserd/nfsuserd.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/usr.sbin/nfsuserd/nfsuserd.c b/usr.sbin/nfsuserd/nfsuserd.c index 1e99f806637d..3444b16fea78 100644 --- a/usr.sbin/nfsuserd/nfsuserd.c +++ b/usr.sbin/nfsuserd/nfsuserd.c @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -127,7 +128,8 @@ main(int argc, char *argv[]) #ifdef INET6 struct sockaddr_in6 *sin6; #endif - int s; + int jailed, s; + size_t jailed_size; if (modfind("nfscommon") < 0) { /* Not present in kernel, try loading it */ @@ -326,10 +328,19 @@ main(int argc, char *argv[]) #else if (nfssvc(NFSSVC_NFSUSERDPORT | NFSSVC_NEWSTRUCT, &nargs) < 0) { if (errno == EPERM) { - fprintf(stderr, - "Can't start nfsuserd when already running"); - fprintf(stderr, - " If not running, use the -force option.\n"); + jailed = 0; + jailed_size = sizeof(jailed); + sysctlbyname("security.jail.jailed", &jailed, + &jailed_size, NULL, 0); + if (jailed != 0) { + fprintf(stderr, "Cannot start nfsuserd. " + "allow.nfsd might not be configured\n"); + } else { + fprintf(stderr, "Cannot start nfsuserd " + "when already running."); + fprintf(stderr, " If not running, " + "use the -force option.\n"); + } } else { fprintf(stderr, "Can't do nfssvc() to add port\n"); } From nobody Mon Jun 12 09:30:28 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfmd06vHLz4cS8y; Mon, 12 Jun 2023 09:30:28 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfmd06P5qz3CFC; Mon, 12 Jun 2023 09:30:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686562228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tGJL3e0wmDqYQIiUP/utOGvRFwJvViRrjnh+gEe7YKI=; b=xKQEmVelF/mgVybN6cHMgyEBeQ4vEdow9XsNMpqTx6Dozz3LgTV4y3SiWzZQNiaqbqgq5L j9YGaZRumtFnJkZfXjMbrbf3cmV+TFp/OOzq1kjNEmEGWjuXCRtET7dyxAvUIevlb4utPQ X8WJ/YRDiFrYo8MBriUJLiiA0tbJK74DjaGt80pBNA++Rv9YT4BnMfuXCB5RpAnzUF+kyJ X2VOF/6F8L4TPlhvBEN6XJm8biTvMncS8kn6iVaCcMscOm4DFXSfs3VGghtpFIsCuJoNPB DOuwPXOZd+0A3hFh8xD+bZsCQHYKT3TxBGDqgU/qIJE9Vl0+9pxdfFsVmcqHQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686562228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tGJL3e0wmDqYQIiUP/utOGvRFwJvViRrjnh+gEe7YKI=; b=PHa+fbcCwub8FcmZEplJsJ9ha7xpVC2EmGevoHgs26SbqKny9RK2dFQ9R4KPTvqO0j7Z2r zbQcBmHkHobQaRI78iEDg9FBj+eKJ7juqZys/3RkLbRt5GSLhkDfZNe2b+54jTbuW5mwWF lCz3VuKEiIbzqjyQqPaeYyneSLGWI4nyAdrl7B44JodkJDGc+kGF5tZ5YWhUJI3W09Pf8A f472iMWhluzvbNi0IcTNYM3ml4ycnQuS6nuRHmfDLcY3sv2mfsgNZSfTIE+KyT1VIivdQo T9eMeLBrf1utDMKXvt+XXZqtqJMYc5M1pMElOWwwRrm1y8n4hK7J3RYux9+T7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686562228; a=rsa-sha256; cv=none; b=xjKvHA7H3CZCAeVIfl/MechQ1KI3R8QZl6YbsSAQHfNTB+x+5zhKAERwoH0EmeLLJIYJHX zMsEnerzw27cH8LOmztUd8rW5pEdWuxH0b8Be69YYrayme/H0ypUCon80i6DQMMpXfNS2A OxQyI0/VDnZ/9ZrZylCPInHYqTNkT/68jE2pEhNVXGm6K89S32H9sqjhuq4kh6bKmAebx7 /heIWap1AXoL5+tIGz4a188w9DcVP0fbVCUwp0GRCNsRBVTs8spD50r2ys2xCeSFgKTWMx 77bALRqWtDJYjnw1x8MGSt7my+jGW2PsoAzJcbmIqc6YdagNaqBAqqlvQcPx4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfmd05LdTzZYT; Mon, 12 Jun 2023 09:30:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35C9USsv060892; Mon, 12 Jun 2023 09:30:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35C9USWV060891; Mon, 12 Jun 2023 09:30:28 GMT (envelope-from git) Date: Mon, 12 Jun 2023 09:30:28 GMT Message-Id: <202306120930.35C9USWV060891@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 178747a1586d - main - Add more arm64 special register values List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 178747a1586d48a8063014d7b8528ec47205e1bf Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=178747a1586d48a8063014d7b8528ec47205e1bf commit 178747a1586d48a8063014d7b8528ec47205e1bf Author: Andrew Turner AuthorDate: 2023-06-09 17:46:58 +0000 Commit: Andrew Turner CommitDate: 2023-06-12 08:31:14 +0000 Add more arm64 special register values These will be used to simplify the kernel special register handling. Sponsored by: Arm Ltd --- sys/arm64/include/armreg.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index 46093fc2e875..b40dfb206f99 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -1222,6 +1222,14 @@ #define MDSCR_MDE_SHIFT 15 #define MDSCR_MDE (UL(0x1) << MDSCR_MDE_SHIFT) +/* MIDR_EL1 - Main ID Register */ +#define MIDR_EL1 MRS_REG(MIDR_EL1) +#define MIDR_EL1_op0 3 +#define MIDR_EL1_op1 0 +#define MIDR_EL1_CRn 0 +#define MIDR_EL1_CRm 0 +#define MIDR_EL1_op2 0 + /* MPIDR_EL1 - Multiprocessor Affinity Register */ #define MPIDR_EL1 MRS_REG(MPIDR_EL1) #define MPIDR_EL1_op0 3 @@ -1861,6 +1869,14 @@ #define PSR_SETTABLE_32 PSR_FLAGS #define PSR_SETTABLE_64 (PSR_FLAGS | PSR_SS) +/* REVIDR_EL1 - Revision ID Register */ +#define REVIDR_EL1 MRS_REG(REVIDR_EL1) +#define REVIDR_EL1_op0 3 +#define REVIDR_EL1_op1 0 +#define REVIDR_EL1_CRn 0 +#define REVIDR_EL1_CRm 0 +#define REVIDR_EL1_op2 6 + /* TCR_EL1 - Translation Control Register */ /* Bits 63:59 are reserved */ #define TCR_TCMA1_SHIFT 58 From nobody Mon Jun 12 10:50:00 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfpNm6lmQz4cdCc; Mon, 12 Jun 2023 10:50:00 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfpNm4zJ5z3K8m; Mon, 12 Jun 2023 10:50:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g5I0m7v067CV1wI+ugYHHDTIqF8pmk03/7U4KTjkLpk=; b=T8JI9dfigmkeHcKKeamUTBg8Hlw1teeKXDeJgLAnOBihczlVVP0uxAx3S5mJk+As/c4jyw mzIzxb1qMY+arG0GgiYBVLaGpv9+Vcxio+hvw317Aiox24sr+O/V9MlozcOGQMkgXcjXCP R++0OHTLcEwwsjvxqqQr/eqhbAQaP4EI5guPzKXT774xFvP+m7PQ/bpbzn3qQ2FEww0VSI aMUXEzHSPbxQvsDhfwviM4+j7chanfcqMgsNI5mgr6xtL8HLxZghorTfpfz9rFotTvlcy1 DmSmM9LEpZ69FNtapTuhZ3KLznB0CSXhMWFT2GvhdR2ydzzy2a4UVPT1y5J8CA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g5I0m7v067CV1wI+ugYHHDTIqF8pmk03/7U4KTjkLpk=; b=fv9nYPY9deGx5z75tu2efWrkETmv8TwrJYhlHS0n+2p9SRvnKx6Gy29/KBPfTs07r7G5b3 R/+ulw2+VIWDDDPnTv0u3XrkK+3FnqmKU1EmLk80zA7DBvrULojJBtPSK4ho2mNBC7CEzQ WqyJgXqzF8k6epNcF9JpkQQSk6F46pN3NVLRt//CeWPBoO5ydueej2ko3cFNqLvLxkf4/k wjWQWn+PT+KPE8HzMvabMo1E1uT2EyEdK2F4vSK5Rj2KCQVWMu4zLw7LUAOFa+9eoUF3Xu DEWaPvZRz4T19XUZ5rKK3GPeJsaFBapAqvZrPD+yv41MpXQr6bwHsWynabVO0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686567000; a=rsa-sha256; cv=none; b=st9JNoCAJ2Ftp4xB2+Zz19xcbSs3DVQN9X8a18aTdnoU9+QIH/btfCTdr66DhkEpRRVtW9 CkVuLWalnadt5KBwe6lYFqXqje7DJlN6c60Z386FU+h/Ff7E9BseAHibncaGOxhc92igQA JHz62KDOZUA6FxHV7Dvd03I9dB+H4zgRnTo5IfmC05Mn6jp+scel+7oXxClaD5eL9iKR5H 1a/6y57nzm3RsmR+CadJbc7fxZs4QkS4TDw7hbqIqPHX+Bhz5cjVrKQvmx3fo1dM8W7Eet bPnbi0TZrbI7zmWo/N6lKCVNzT4RvcQ6W2uMtVAOxeWxw0KkAZ4zwlyU8fwMnA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfpNm42GlzcZW; Mon, 12 Jun 2023 10:50:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CAo0sc084465; Mon, 12 Jun 2023 10:50:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CAo05M084444; Mon, 12 Jun 2023 10:50:00 GMT (envelope-from git) Date: Mon, 12 Jun 2023 10:50:00 GMT Message-Id: <202306121050.35CAo05M084444@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: bb1770105022 - main - bhyve: Remove vestigial support for setting max vCPUs. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bb1770105022e7d65bef0f32988c08ee9676b68e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=bb1770105022e7d65bef0f32988c08ee9676b68e commit bb1770105022e7d65bef0f32988c08ee9676b68e Author: John Baldwin AuthorDate: 2023-06-12 10:47:35 +0000 Commit: Corvin Köhne CommitDate: 2023-06-12 10:49:49 +0000 bhyve: Remove vestigial support for setting max vCPUs. The kernel part of the hypervisor is not going to support per-VM maxcpu limits. The topology is only used to control the values returned by CPUID leaves for which max vCPUs is not relevant. Reviewed by: corvink, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D37176 --- usr.sbin/bhyve/bhyverun.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index df9e1924a525..d56a1575e65d 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -282,10 +282,6 @@ topology_parse(const char *opt) set_config_value("cores", cp + strlen("cores=")); else if (strncmp(cp, "threads=", strlen("threads=")) == 0) set_config_value("threads", cp + strlen("threads=")); -#ifdef notyet /* Do not expose this until vmm.ko implements it */ - else if (strncmp(cp, "maxcpus=", strlen("maxcpus=")) == 0) - set_config_value("maxcpus", cp + strlen("maxcpus=")); -#endif else if (strchr(cp, '=') != NULL) goto out; else @@ -1135,8 +1131,7 @@ do_open(const char *vmname) exit(4); } } - error = vm_set_topology(ctx, cpu_sockets, cpu_cores, cpu_threads, - 0 /* maxcpus, unimplemented */); + error = vm_set_topology(ctx, cpu_sockets, cpu_cores, cpu_threads, 0); if (error) errx(EX_OSERR, "vm_set_topology"); return (ctx); From nobody Mon Jun 12 11:04:44 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfpjm2rXxz4cjWZ; Mon, 12 Jun 2023 11:04:44 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfpjm2LPvz3Mry; Mon, 12 Jun 2023 11:04:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yor5FRz4gSADHN8l42adGq5zCBb1D7IMORPwwmiVIv0=; b=xYZDVNoFgDx2CutMl4RD9o260k7lhQujgvNfP9+eHO5nwKHGhZWYZLndiwPbxxRBPVuiFc qBqRRTyGmnYRpaJyDmCCNJRzzPxwMCBrJinHiYrZr8MLo/rPEXg8hI6Q3cG4wjLrT0l1Fp s9kNr3/I8IDabnb/ctrzr/ls2pvPi9oDS4cSkqhV7WVd+1kzsTSObUZNanaZokB7fyFoGX 2xQLvUKGLAm7GqORyocWxxC2DFcDFpoA7d4r20QD5qgHgiH9WrJq+CcFrglhdrTZS/7SuT AbyG0a3UKIgk7A1SUtbex1hYsyOcug9vDsNAvB6ROVh92E/grG+O+v4NL8rjnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yor5FRz4gSADHN8l42adGq5zCBb1D7IMORPwwmiVIv0=; b=qYVSy+fV9PFrsSyfkVKEL0Xy/UHKafbrYqf9xnxoyVsSWaesd9hNvEqtbxaz0zMqnmHJo7 +hat3c0edGq0yYJV0t+swWmmrrKkEZR8bU6It3yCcSyBo09dCL0IN5Cf/LiWnq9/Y39x49 fG8tg737HISAzdl3NDJMCo9XyK7xX9llgsjD31YFMWVfoRyAivVxuGOwNizlemig6pS0Lj SMZjrujstnUfuwRRPPBVbR4cLBJVJBiQDC93ZKoaU/b2s/Ji+WxCaECIj4plYfSPHFf1ZN YjDTlyKNILYFOlj8PjiL9PXMfoduI02yIImpkk4zGbEEqT25gSo0UOUW9+vTJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686567884; a=rsa-sha256; cv=none; b=X2ST+2gAKrDhymrrbl+RoVajgXwrqoYIM2jsN2mRjUV/2mStJiNT3dJeA3JJrBhHrNcDnt OQRIGCv0/09uF95F8ACpnyMYwlErcnR0H7ROp2Pa866QuvVV7N6+ZRQw6Gm5kZcDCAB4UV o3VI1ukDHrxwivB4hyqrBHCUYtTJvxttMC8w8nEIO9gmdgM++qyz19vIfzPZ723dCjA17k oprfH1LxOK4PeMGV4jPSWM7Nu3uUKf1RYdQ38WB5AxSUBG+Jha72XYDbw3aTO/GVtBGg4N lUPjxsyAAAA9Z88dGicNsGaMDUdc53/YVYiYpIaTwVvJt6o4bEgEGcDhuJbpKg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfpjm1LVlzd8w; Mon, 12 Jun 2023 11:04:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CB4iXA017267; Mon, 12 Jun 2023 11:04:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CB4icP017266; Mon, 12 Jun 2023 11:04:44 GMT (envelope-from git) Date: Mon, 12 Jun 2023 11:04:44 GMT Message-Id: <202306121104.35CB4icP017266@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 4e46ab0ebe96 - main - bhyve: allow adding FwCfg items to ACPI tables List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4e46ab0ebe96b56d4fa7ea7df4a81cd533109f07 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=4e46ab0ebe96b56d4fa7ea7df4a81cd533109f07 commit 4e46ab0ebe96b56d4fa7ea7df4a81cd533109f07 Author: Corvin Köhne AuthorDate: 2022-07-22 08:58:01 +0000 Commit: Corvin Köhne CommitDate: 2023-06-12 11:04:26 +0000 bhyve: allow adding FwCfg items to ACPI tables A TPM has an event log. Therefore, qemu adds a FwCfg item and adds it to an ACPI table. We like to use the same OVMF driver as qemu, so we should do the same. This commit adds the ability to basl to do it. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40451 --- usr.sbin/bhyve/basl.c | 17 +++++++++++++++++ usr.sbin/bhyve/basl.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/usr.sbin/bhyve/basl.c b/usr.sbin/bhyve/basl.c index 348174c6520d..90cb608aecc6 100644 --- a/usr.sbin/bhyve/basl.c +++ b/usr.sbin/bhyve/basl.c @@ -490,6 +490,23 @@ basl_table_append_content(struct basl_table *table, void *data, uint32_t len) len - sizeof(ACPI_TABLE_HEADER))); } +int +basl_table_append_fwcfg(struct basl_table *const table, + const uint8_t *fwcfg_name, const uint32_t alignment, const uint8_t size) +{ + assert(table != NULL); + assert(fwcfg_name != NULL); + assert(size <= sizeof(uint64_t)); + + BASL_EXEC(qemu_loader_alloc(basl_loader, fwcfg_name, alignment, + QEMU_LOADER_ALLOC_HIGH)); + BASL_EXEC(qemu_loader_add_pointer(basl_loader, table->fwcfg_name, + fwcfg_name, table->len, size)); + BASL_EXEC(basl_table_append_int(table, 0, size)); + + return (0); +} + int basl_table_append_gas(struct basl_table *const table, const uint8_t space_id, const uint8_t bit_width, const uint8_t bit_offset, diff --git a/usr.sbin/bhyve/basl.h b/usr.sbin/bhyve/basl.h index 4d9ab4c589a8..e12173b701a2 100644 --- a/usr.sbin/bhyve/basl.h +++ b/usr.sbin/bhyve/basl.h @@ -82,6 +82,9 @@ int basl_table_append_checksum(struct basl_table *table, uint32_t start, /* Add an ACPI_TABLE_* to basl without its header. */ int basl_table_append_content(struct basl_table *table, void *data, uint32_t len); +int basl_table_append_fwcfg(struct basl_table *table, + const uint8_t *fwcfg_name, uint32_t alignment, + uint8_t size); int basl_table_append_gas(struct basl_table *table, uint8_t space_id, uint8_t bit_width, uint8_t bit_offset, uint8_t access_width, uint64_t address); From nobody Mon Jun 12 11:04:45 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfpjn474gz4cjVH; Mon, 12 Jun 2023 11:04:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfpjn361vz3Mhc; Mon, 12 Jun 2023 11:04:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fw+BzK2QYu16rVEOlSofGPHI8Y6zDlPEn7Zp5n49CE8=; b=N7v9u+BQkMXtgrEUHgbglyYYAhziJmP7Ljbp8FLJ/vkLlYKhzTJ1U7nYBdtx89JEzE2xiM e39/Fk6jQQm54ia70iryarhYfo9u813hoXAHcj1W/L8Bsp8XiAKsirPG6AqxOK2/NUiA3S 9xmEopyyURuA59hoy6OuiOV+kiy4YBkHxO3PO8hLvsWNXftXPODVSrON1IhYKdhbrht4fc HwF9/MMlHQ0MiE/hXoUhpO5CqyjuEbUBof2Q4Th7nbC92FkyRPdxQsCgecnwBZIVz/8XKH FfJr5JFaD/mr6rMaaxHKN0VHO1fKoFKlWPS1dqWVhiUYXclDEarXw6otNiMgIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fw+BzK2QYu16rVEOlSofGPHI8Y6zDlPEn7Zp5n49CE8=; b=FZbtMWc5EifiSRpd6/G5d6iii8ZI/gCwD9RNpV9bpPpUX7F0XVMKfhXQZAVFydJl2c1g1q Z1F5i+N5Ep7QX1nIvhyVefjmk5+dbV6u/0m18nLh3LpyJI/wt9tuHMOweTk2YAa+3bHd4P KSfaAPpVU6lJDC/M6TnvWe5IU2nb8VxtWM19bijmjNk/kSl/2bZy6Bp4YMimuH5mc+QU/1 bc4QJTGW1l+YeeVV4artYxzTVPZINp2fanZwF8WKWKZdC1XCe9fcKkvpIZjyfkfj6axvSo bUqPB59BPVHxr5g1XstKo/IAD5Gl0ile3vn9O7MZ5EFawNULlvfBGRQ3xa5+QA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686567885; a=rsa-sha256; cv=none; b=T9lho/mNqeh1BcItlCN1dyP20EFPTVqt1bddYCM9LCPOTc2Ypmja2Ud1MnXEABZnDgncJ5 b4Irv1wLt4V8m3auwq8gAmSJxl61YsEffr9BaTErEY4ENYHmnvKQUoKI5oON+l6dAqgMr0 AGHxXfLtUpZvkr2WgTZSDWoP8XRyMuW4MuAiEnZpvGt3ipkAPCPy1gpjy2j8JfcKY9cVFT 0+fsDDGNnNM5khKA6WHa4E0MvSDYFtzpDl9hZO1BmfB5R3Xcnc9diw8rQMk+BX9rALflB+ Cjc6iWeweXfYYhIEpvYN9wdQ3E43BI5cn85YDWC2wHMmKvVo8gswIAi8iwSTpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfpjn1lsrzdFg; Mon, 12 Jun 2023 11:04:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CB4jYt017293; Mon, 12 Jun 2023 11:04:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CB4jF2017292; Mon, 12 Jun 2023 11:04:45 GMT (envelope-from git) Date: Mon, 12 Jun 2023 11:04:45 GMT Message-Id: <202306121104.35CB4jF2017292@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: d5edf13d013f - main - bhyve: add basic TPM device List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d5edf13d013f3298e7f703c406223feb84810a73 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=d5edf13d013f3298e7f703c406223feb84810a73 commit d5edf13d013f3298e7f703c406223feb84810a73 Author: Corvin Köhne AuthorDate: 2023-05-15 11:00:06 +0000 Commit: Corvin Köhne CommitDate: 2023-06-12 11:04:35 +0000 bhyve: add basic TPM device Add an empty TPM device struct which will be used for TPM emulation in subsequent commits. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40452 --- usr.sbin/bhyve/Makefile | 1 + usr.sbin/bhyve/tpm_device.c | 68 +++++++++++++++++++++++++++++++++++++++++++++ usr.sbin/bhyve/tpm_device.h | 18 ++++++++++++ 3 files changed, 87 insertions(+) diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile index 65a32d2fb0b9..ae1e82e7b828 100644 --- a/usr.sbin/bhyve/Makefile +++ b/usr.sbin/bhyve/Makefile @@ -72,6 +72,7 @@ SRCS= \ smbiostbl.c \ sockstream.c \ task_switch.c \ + tpm_device.c \ uart_emul.c \ usb_emul.c \ usb_mouse.c \ diff --git a/usr.sbin/bhyve/tpm_device.c b/usr.sbin/bhyve/tpm_device.c new file mode 100644 index 000000000000..77fd1ccf6a52 --- /dev/null +++ b/usr.sbin/bhyve/tpm_device.c @@ -0,0 +1,68 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#include + +#include +#include +#include +#include +#include + +#include "config.h" +#include "tpm_device.h" + +struct tpm_device { + struct vmctx *vm_ctx; +}; + +void +tpm_device_destroy(struct tpm_device *const dev) +{ + if (dev == NULL) + return; + + free(dev); +} + +int +tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, + nvlist_t *const nvl) +{ + struct tpm_device *dev = NULL; + const char *value; + int error; + + if (new_dev == NULL || vm_ctx == NULL) { + error = EINVAL; + goto err_out; + } + + value = get_config_value_node(nvl, "version"); + if (value == NULL || strcmp(value, "2.0")) { + warnx("%s: unsupported tpm version %s", __func__, value); + error = EINVAL; + goto err_out; + } + + dev = calloc(1, sizeof(*dev)); + if (dev == NULL) { + error = ENOMEM; + goto err_out; + } + + dev->vm_ctx = vm_ctx; + + *new_dev = dev; + + return (0); + +err_out: + tpm_device_destroy(dev); + + return (error); +} diff --git a/usr.sbin/bhyve/tpm_device.h b/usr.sbin/bhyve/tpm_device.h new file mode 100644 index 000000000000..a17c85c2ed47 --- /dev/null +++ b/usr.sbin/bhyve/tpm_device.h @@ -0,0 +1,18 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#pragma once + +#include + +#include "config.h" + +struct tpm_device; + +int tpm_device_create(struct tpm_device **new_dev, struct vmctx *vm_ctx, + nvlist_t *nvl); +void tpm_device_destroy(struct tpm_device *dev); From nobody Mon Jun 12 11:04:46 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfpjp5jwQz4cjlq; Mon, 12 Jun 2023 11:04:46 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfpjp3XvZz3Mn9; Mon, 12 Jun 2023 11:04:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567886; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NVAiVN3mWEq3JnhnwEd7IAOujHaLjfK+BUccOVvd5M0=; b=Ykz3+hQn96op/VJdAcUaqC0IzvEvZn3uJZFfezVhZ+y53l0XYVrdg2XZD0DHPOsRv0zOF5 BwKhkfo+VGUCcGKi5B/ic+JAxzIAu3gvg8IPU6c3/mIr9aPLrdr4qtJQa6RYVYLkagsNKY Axg8aQ0vdiZElfEbFRUHVAvwtp4DP+HKXvUbM5Bp28iiaRYhTLrTWoAscSFJ+IwoS3r8bO TYZT4/yqT/1bXHSqfRck8ODxx7Ei+rSxgn6mEKUYp8mJbK8aTJ6pEE/KDREXjvkzTZ/tG1 poqIhHCLuHrAXpTtuRza8WXyOs7UB0e7+9r8oYBR1tC2ZP07veE3eKTU+paTMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686567886; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NVAiVN3mWEq3JnhnwEd7IAOujHaLjfK+BUccOVvd5M0=; b=CgxuyHNYCIq0cAeVvfWpmt1Y08DPu+5gtC4eiFukGlxkKF7edTFW1bpWgC3eg0f2Ylb8I0 UsZSO8ssiaIfhcFYNqSx7pYrqTETqWuk5TIUmpRaZHiO0tKsOni4SbcEOD3pGKsOzfH9fP 3tICQxQX4SYCzW2QZKJjq0VQtzL2idPVA+IYMHoMDIi8uwT35ti+zJRNIYrP4HiQhdPFON 5egRTBgyPYyJZ+SI4RAQbzSNUQ2Nt9tt9zwPPVwdmadWQHxkrxP0+CQhb+w3VWl6fQIOQs oFcpnEhlxWIoc535NtYphyX5RkincSSq7ubssk/PmRphVam53B13MR1V/+ukiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686567886; a=rsa-sha256; cv=none; b=c7hBMvBjgr7A5Vdl/uHnF0sOoPM7lKD1DJnniIJV2yrJqV2IHl7XtvaMEjWWeX7hrJdV1P RTjpfFpjljol7K3hpJelUcSF1/nI97rJHgGLzkudq1IyWgJHqIvqfWnw1HPC+6lTCb2P2H Q6+ok15EoQ+rJi6go9EoG0Aq8fo4MFhJ4XYILUXDRY7RL4cb+y4a6dC7ADHaqPePlBSPQx 8IhWr4HnpHd1F/ZvDDvwGr0ysuA3bJHbJHBZjW4UKwEyOyx2uw7FQ+4UypAVbDJgoz4RR5 6eIsVZk+KPR9jO5qY7S8dHGypcl+gjOKLf5AmdWapB8AoIXDawrfX4WvO02qqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfpjp2fgXzd8x; Mon, 12 Jun 2023 11:04:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CB4kd2017326; Mon, 12 Jun 2023 11:04:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CB4kIf017325; Mon, 12 Jun 2023 11:04:46 GMT (envelope-from git) Date: Mon, 12 Jun 2023 11:04:46 GMT Message-Id: <202306121104.35CB4kIf017325@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: dece4f2d875a - main - bhyve: register TPM device as ACPI device List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dece4f2d875a3964e1d6438dafa108dda8a7a1d0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=dece4f2d875a3964e1d6438dafa108dda8a7a1d0 commit dece4f2d875a3964e1d6438dafa108dda8a7a1d0 Author: Corvin Köhne AuthorDate: 2023-05-15 11:24:14 +0000 Commit: Corvin Köhne CommitDate: 2023-06-12 11:04:37 +0000 bhyve: register TPM device as ACPI device The TPM device is an ACPI device with some custom ACPI tables. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40453 --- usr.sbin/bhyve/tpm_device.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/usr.sbin/bhyve/tpm_device.c b/usr.sbin/bhyve/tpm_device.c index 77fd1ccf6a52..56df6ab0e30c 100644 --- a/usr.sbin/bhyve/tpm_device.c +++ b/usr.sbin/bhyve/tpm_device.c @@ -13,11 +13,21 @@ #include #include +#include "acpi_device.h" #include "config.h" #include "tpm_device.h" +#define TPM_ACPI_DEVICE_NAME "TPM" +#define TPM_ACPI_HARDWARE_ID "MSFT0101" + struct tpm_device { struct vmctx *vm_ctx; + struct acpi_device *acpi_dev; +}; + +static const struct acpi_device_emul tpm_acpi_device_emul = { + .name = TPM_ACPI_DEVICE_NAME, + .hid = TPM_ACPI_HARDWARE_ID, }; void @@ -26,6 +36,7 @@ tpm_device_destroy(struct tpm_device *const dev) if (dev == NULL) return; + acpi_device_destroy(dev->acpi_dev); free(dev); } @@ -57,6 +68,11 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, dev->vm_ctx = vm_ctx; + error = acpi_device_create(&dev->acpi_dev, dev, dev->vm_ctx, + &tpm_acpi_device_emul); + if (error) + goto err_out; + *new_dev = dev; return (0); From nobody Mon Jun 12 12:22:25 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRP2MRDz4d9qy; Mon, 12 Jun 2023 12:22:25 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRP1tFWz3qSc; Mon, 12 Jun 2023 12:22:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572545; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lRprnXM/5O8XvrIor95zYZvCP/19pqvNOrxnMDUdpLY=; b=V0W+77YOKXRq24XY+REcLmS2kcqnG748GXP6jl6HRipLrnWZ6kUDsvo2AdVQ9aS8WdpA2T dhF4J7AJAgJ5tJS4qaJYpKlfU8V7tKZ3Ie2zw1Utu4VQrCHADGGCl8v4rO0mTjGTzbhTV4 Hf9QKQSXqXw8N4SxH7hj57BFdfbpG/2VfVGo4T7GWo/qAVqKuVk/E5IPNlVOUgT6smB5HP q3RK40wUPBjKU/Y/Dy1EoBkO95l3lBgaYba8qlv6sk5vUXpeE4XbspZOGt4eCVD7e1hVso 5UtuA5AJUHyPbgdoKcrPyjZoqbGH/1Vy1GIBTTJyJ1aH/9DCcvAeui8uS9RVow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572545; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lRprnXM/5O8XvrIor95zYZvCP/19pqvNOrxnMDUdpLY=; b=aNTE6fGTLieiUgcaYsDv10oyzUCEp+z6tZj7d4wtQBWWTut7r0FLrZCr0K+ap/2lgOAyrM g43U5xn+wjgtK83thuJAQG2n8psXwxRnMMksU5otvp1tzyl6hotb2Af2vtYTCR2o2iejJc 8L5KzBcgXuWwilBfup+xM9QheCrvNdjbdKeFsul0v5rMDWf0aLc3aZQsifQy4t075UvJbd YlrFnxja22R5XHotDyCY/8dMhqG7MaHhTpwH7yq5nN6waYUy4vhHLuZoFlOJqJ5iN9LZUU lL0iSocrTG5Q4yfa5u01SRH9TKIeS2BZnz0SMuoccoKfxso1l255aqKWj7kzzg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572545; a=rsa-sha256; cv=none; b=fAZkXPnQk7mt4woebnMA1yF/FrhxDTOAQtZuBr6uZnLR8+kRAcY4JAS8etO++Zv0c7G6wj qRwHi/226jG3Mw2rJOjjPmqfHfuEFRPwsI2cGMlN+8Ys8G7XFCMt4gxs5+V37CdcfjvviY rGv953d8TA2hRVtEWeius/BXYyQd5o9lkSyL7unn10sha5qMTGkai+J/58vnsGopOJfXSu usnbTcVCW+vyJ7/tN93+wDORQp4QI3KWG+dm8MNXWz8WoReC5dO3wEGC3pEBdsvZOYgxna fVctV1uSw7ytICgnVszoSCvCM6ps0WMd9htjG4ZmNWZw8dZmkFbUEZe0XsWwyA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRP10RYzg2x; Mon, 12 Jun 2023 12:22:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMPtj047994; Mon, 12 Jun 2023 12:22:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMPqo047993; Mon, 12 Jun 2023 12:22:25 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:25 GMT Message-Id: <202306121222.35CCMPqo047993@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9c5a91f96994 - stable/13 - lib/csu: Get rid of unused fptr typedef on amd64. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9c5a91f96994139211aa9900dcf98a358869a854 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9c5a91f96994139211aa9900dcf98a358869a854 commit 9c5a91f96994139211aa9900dcf98a358869a854 Author: Gleb Popov AuthorDate: 2021-07-22 15:28:21 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 01:51:24 +0000 lib/csu: Get rid of unused fptr typedef on amd64. (cherry picked from commit feac06569a381dd7fec92c7d490fc34ef0bbdda5) --- lib/csu/amd64/crt1_c.c | 2 -- lib/csu/i386/crt1_c.c | 6 ++---- lib/csu/riscv/crt1_c.c | 2 -- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/csu/amd64/crt1_c.c b/lib/csu/amd64/crt1_c.c index 9dbd34492023..f1c99de9ffe0 100644 --- a/lib/csu/amd64/crt1_c.c +++ b/lib/csu/amd64/crt1_c.c @@ -34,8 +34,6 @@ __FBSDID("$FreeBSD$"); #include "libc_private.h" #include "ignore_init.c" -typedef void (*fptr)(void); - #ifdef GCRT extern void _mcleanup(void); extern void monstartup(void *, void *); diff --git a/lib/csu/i386/crt1_c.c b/lib/csu/i386/crt1_c.c index 0d82cda6fa1f..b39134824f7e 100644 --- a/lib/csu/i386/crt1_c.c +++ b/lib/csu/i386/crt1_c.c @@ -34,8 +34,6 @@ __FBSDID("$FreeBSD$"); #include "libc_private.h" #include "ignore_init.c" -typedef void (*fptr)(void); - extern void _start(char *, ...); #ifdef GCRT @@ -45,11 +43,11 @@ extern int eprol; extern int etext; #endif -void _start1(fptr, int, char *[]) __dead2; +void _start1(void (*)(void), int, char *[]) __dead2; /* The entry function, C part. */ void -_start1(fptr cleanup, int argc, char *argv[]) +_start1(void (*cleanup)(void), int argc, char *argv[]) { char **env; diff --git a/lib/csu/riscv/crt1_c.c b/lib/csu/riscv/crt1_c.c index 9291d6d200df..11519e46c7f3 100644 --- a/lib/csu/riscv/crt1_c.c +++ b/lib/csu/riscv/crt1_c.c @@ -41,8 +41,6 @@ __FBSDID("$FreeBSD$"); #include "libc_private.h" #include "ignore_init.c" -typedef void (*fptr)(void); - #ifdef GCRT extern void _mcleanup(void); extern void monstartup(void *, void *); From nobody Mon Jun 12 12:22:26 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRQ3P2jz4d9g3; Mon, 12 Jun 2023 12:22:26 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRQ32gcz3qbM; Mon, 12 Jun 2023 12:22:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572546; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a2FR4ZmJrImEsAT0Df/nDeMjxVWl6FZG+w4bIb1GvdQ=; b=wujQ7YRA2TnvFt3DbONH3/ncqBJzuyW74maUfjKJ3YisoRDto/2gVtz/3Mhad/BIGDnISK OWYSNdoNERt9PjvjFGMXNV6jDJzkvl62v5QYxRPbP1Kzvx1T5Z53y5mXhIAdDnMqEsewtP zxcGNWw2LmjxCoSN34XYcIwe3iUFwbqZdpMOiRkNq4hFxPVL+8/w7lZbqCCEtz9T+V28qt J/hrFo+KkAobnJcE8Sv7qCdh4D18Ya6Ih8IB+ZfnS+rvzGD6AAYl1pan/3jX88mjJhanoy 1FMA0+7njkEZ/Md1Ca+qSgiC40jD1qOjKCQ3ZravTPtmGD9Dy6ta9XsChDEbWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572546; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a2FR4ZmJrImEsAT0Df/nDeMjxVWl6FZG+w4bIb1GvdQ=; b=wPCJgWfYAb2LVqUhbjSwmG+EKk+JGZZOtsh7rzTA9NZHp4DqineqjF06fGWLnWXzkybA1r SD66tPc7rHqfnlsFqmv71WRCTEz3CUc1UgkhHcXxF1w501vKxV/2afyxn4D1KeMnz60kLf IX0cR5PzjVqwG/l83oNHBaK60bmXVj3CuMQqkLd4gFBCfaBJ/kylX21Exq7ngfeqakROP5 PxcefXsL+Qk2r0UP6aPQ0CouEjub9W3KJNEQ6s9Z/6FTEgB1l0o9G5cS9OoH5Q3EljWuCP RTzRtTxLzarHiQIjqICpd0FnWlnNgIEdYan/vI1se/N/nyBjlfq+IgoCYaoKPw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572546; a=rsa-sha256; cv=none; b=dYns0llwypLpPW2Y0Ke5YukFeklXsknpI+6KmpIlvxS4dKXBQ4W1HNheQAiXUOeS5RVfII qXFMWhMTAWchxVb43cLMJLhO8UdlyQC7OMvbeZVIBV1QOofoxKA4urmZbqfz0avRK2QoS+ gevHAVr97Nh55DRAdZCcMY+ZvF88AhA3Th0vuLS0kMfVnFO484AYPm26TUtJSt0RDBQWxb TMnG2QUuG+/vWVyqbovV6Se/coPBGuqoHzQsqCVpaA9maFhEfkRgPwWl3RoqwbvfsKzVUC Fm3Ztm+lgF3kzSaKUvJMEi5EoVLHjiZjUrpV4Ax01GJHJivslQb0pcztEKrMPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRQ1tVDzfwj; Mon, 12 Jun 2023 12:22:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMQE0048014; Mon, 12 Jun 2023 12:22:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMQtw048013; Mon, 12 Jun 2023 12:22:26 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:26 GMT Message-Id: <202306121222.35CCMQtw048013@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: aea1d51e854e - stable/13 - csu: move common code to libc List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: aea1d51e854e06565b609d4fb065787d7d8328b4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=aea1d51e854e06565b609d4fb065787d7d8328b4 commit aea1d51e854e06565b609d4fb065787d7d8328b4 Author: Konstantin Belousov AuthorDate: 2022-10-30 23:47:44 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 12:19:38 +0000 csu: move common code to libc For MFC purposes, keep lib/csu code intact, only add lib/libc/csu bits. This allows stable/13 to run simple binaries compiled on 14. (cherry picked from commit 51015e6d0f570239b0c2088dc6cf2b018928375d) --- lib/libc/Makefile | 1 + lib/libc/csu/Makefile.inc | 10 ++ lib/libc/csu/Symbol.map | 4 + lib/libc/csu/aarch64/Makefile.inc | 4 + lib/libc/csu/aarch64/reloc.c | 46 +++++++++ lib/libc/csu/amd64/Makefile.inc | 4 + lib/libc/csu/amd64/reloc.c | 63 ++++++++++++ lib/libc/csu/arm/Makefile.inc | 4 + lib/libc/csu/i386/Makefile.inc | 4 + lib/libc/csu/i386/reloc.c | 85 +++++++++++++++++ lib/libc/csu/ignore_init.c | 184 ++++++++++++++++++++++++++++++++++++ lib/libc/csu/mips/Makefile.inc | 4 + lib/libc/csu/powerpc/Makefile.inc | 4 + lib/libc/csu/powerpc64/Makefile.inc | 4 + lib/libc/csu/powerpc64/reloc.c | 69 ++++++++++++++ lib/libc/csu/riscv/Makefile.inc | 4 + lib/libc/include/libc_private.h | 6 ++ 17 files changed, 500 insertions(+) diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 6363cef8d48b..43efccba08dd 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -93,6 +93,7 @@ MIASM= NOASM= .include "${LIBC_SRCTOP}/${LIBC_ARCH}/Makefile.inc" +.include "${LIBC_SRCTOP}/csu/Makefile.inc" .include "${LIBC_SRCTOP}/db/Makefile.inc" .include "${LIBC_SRCTOP}/compat-43/Makefile.inc" .include "${LIBC_SRCTOP}/gdtoa/Makefile.inc" diff --git a/lib/libc/csu/Makefile.inc b/lib/libc/csu/Makefile.inc new file mode 100644 index 000000000000..453303bea608 --- /dev/null +++ b/lib/libc/csu/Makefile.inc @@ -0,0 +1,10 @@ +# + +.PATH: ${LIBC_SRCTOP}/csu +.include "${LIBC_SRCTOP}/csu/${LIBC_ARCH}/Makefile.inc" + +SRCS+= \ + ignore_init.c + +CFLAGS+= -I${LIBC_SRCTOP}/csu/${LIBC_ARCH} +SYM_MAPS+=${LIBC_SRCTOP}/csu/Symbol.map diff --git a/lib/libc/csu/Symbol.map b/lib/libc/csu/Symbol.map new file mode 100644 index 000000000000..7fc09add5e45 --- /dev/null +++ b/lib/libc/csu/Symbol.map @@ -0,0 +1,4 @@ +FBSD_1.7 { + __libc_start1; + __libc_start1_gcrt; +}; diff --git a/lib/libc/csu/aarch64/Makefile.inc b/lib/libc/csu/aarch64/Makefile.inc new file mode 100644 index 000000000000..b3420a638164 --- /dev/null +++ b/lib/libc/csu/aarch64/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_RELA \ + -DINIT_IRELOCS="" diff --git a/lib/libc/csu/aarch64/reloc.c b/lib/libc/csu/aarch64/reloc.c new file mode 100644 index 000000000000..f3dbf3e3b570 --- /dev/null +++ b/lib/libc/csu/aarch64/reloc.c @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2019 Leandro Lupori + * Copyright (c) 2021 The FreeBSD Foundation + * + * Portions of this software were developed by Andrew Turner + * under sponsorship from the FreeBSD Foundation. + * + * 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. + * + * 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$"); + +static void +crt1_handle_rela(const Elf_Rela *r) +{ + typedef Elf_Addr (*ifunc_resolver_t)( + uint64_t, uint64_t, uint64_t, uint64_t, + uint64_t, uint64_t, uint64_t, uint64_t); + Elf_Addr *ptr, *where, target; + + switch (ELF_R_TYPE(r->r_info)) { + case R_AARCH64_IRELATIVE: + ptr = (Elf_Addr *)r->r_addend; + where = (Elf_Addr *)r->r_offset; + target = ((ifunc_resolver_t)ptr)(0, 0, 0, 0, 0, 0, 0, 0); + *where = target; + break; + } +} diff --git a/lib/libc/csu/amd64/Makefile.inc b/lib/libc/csu/amd64/Makefile.inc new file mode 100644 index 000000000000..b3420a638164 --- /dev/null +++ b/lib/libc/csu/amd64/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_RELA \ + -DINIT_IRELOCS="" diff --git a/lib/libc/csu/amd64/reloc.c b/lib/libc/csu/amd64/reloc.c new file mode 100644 index 000000000000..adb52e42a32c --- /dev/null +++ b/lib/libc/csu/amd64/reloc.c @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2018 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * 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. + * + * 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 + +static void +crt1_handle_rela(const Elf_Rela *r) +{ + Elf_Addr *ptr, *where, target; + u_int p[4]; + uint32_t cpu_feature, cpu_feature2; + uint32_t cpu_stdext_feature, cpu_stdext_feature2; + + do_cpuid(1, p); + cpu_feature = p[3]; + cpu_feature2 = p[2]; + do_cpuid(0, p); + if (p[0] >= 7) { + cpuid_count(7, 0, p); + cpu_stdext_feature = p[1]; + cpu_stdext_feature2 = p[2]; + } else { + cpu_stdext_feature = 0; + cpu_stdext_feature2 = 0; + } + + switch (ELF_R_TYPE(r->r_info)) { + case R_X86_64_IRELATIVE: + ptr = (Elf_Addr *)r->r_addend; + where = (Elf_Addr *)r->r_offset; + target = ((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, + uint32_t))ptr)(cpu_feature, cpu_feature2, + cpu_stdext_feature, cpu_stdext_feature2); + *where = target; + break; + } +} diff --git a/lib/libc/csu/arm/Makefile.inc b/lib/libc/csu/arm/Makefile.inc new file mode 100644 index 000000000000..2534e6579f38 --- /dev/null +++ b/lib/libc/csu/arm/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_SUPPRESS \ + -DINIT_IRELOCS="" diff --git a/lib/libc/csu/i386/Makefile.inc b/lib/libc/csu/i386/Makefile.inc new file mode 100644 index 000000000000..ac0984df2349 --- /dev/null +++ b/lib/libc/csu/i386/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_REL \ + -DINIT_IRELOCS="" diff --git a/lib/libc/csu/i386/reloc.c b/lib/libc/csu/i386/reloc.c new file mode 100644 index 000000000000..13438035841d --- /dev/null +++ b/lib/libc/csu/i386/reloc.c @@ -0,0 +1,85 @@ +/*- + * Copyright (c) 2018 The FreeBSD Foundation + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * 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. + * + * 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 + +static void +crt1_handle_rel(const Elf_Rel *r) +{ + Elf_Addr *where, target; + u_int cpuid_supported, p[4]; + uint32_t cpu_feature, cpu_feature2; + uint32_t cpu_stdext_feature, cpu_stdext_feature2; + + __asm __volatile( + " pushfl\n" + " popl %%eax\n" + " movl %%eax,%%ecx\n" + " xorl $0x200000,%%eax\n" + " pushl %%eax\n" + " popfl\n" + " pushfl\n" + " popl %%eax\n" + " xorl %%eax,%%ecx\n" + " je 1f\n" + " movl $1,%0\n" + " jmp 2f\n" + "1: movl $0,%0\n" + "2:\n" + : "=r" (cpuid_supported) : : "eax", "ecx", "cc"); + if (cpuid_supported) { + do_cpuid(1, p); + cpu_feature = p[3]; + cpu_feature2 = p[2]; + do_cpuid(0, p); + if (p[0] >= 7) { + cpuid_count(7, 0, p); + cpu_stdext_feature = p[1]; + cpu_stdext_feature2 = p[2]; + } else { + cpu_stdext_feature = 0; + cpu_stdext_feature2 = 0; + } + } else { + cpu_feature = 0; + cpu_feature2 = 0; + cpu_stdext_feature = 0; + cpu_stdext_feature2 = 0; + } + + switch (ELF_R_TYPE(r->r_info)) { + case R_386_IRELATIVE: + where = (Elf_Addr *)r->r_offset; + target = ((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, + uint32_t))*where)(cpu_feature, cpu_feature2, + cpu_stdext_feature, cpu_stdext_feature2); + *where = target; + break; + } +} diff --git a/lib/libc/csu/ignore_init.c b/lib/libc/csu/ignore_init.c new file mode 100644 index 000000000000..60c45d7e735f --- /dev/null +++ b/lib/libc/csu/ignore_init.c @@ -0,0 +1,184 @@ +/*- + * SPDX-License-Identifier: BSD-1-Clause + * + * Copyright 2012 Konstantin Belousov + * Copyright (c) 2018, 2023 The FreeBSD Foundation + * + * Parts of this software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * 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. + * + * 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 +#include +#include +#include +#include "libc_private.h" + +extern void (*__preinit_array_start[])(int, char **, char **) __hidden; +extern void (*__preinit_array_end[])(int, char **, char **) __hidden; +extern void (*__init_array_start[])(int, char **, char **) __hidden; +extern void (*__init_array_end[])(int, char **, char **) __hidden; +extern void (*__fini_array_start[])(void) __hidden; +extern void (*__fini_array_end[])(void) __hidden; +extern void _fini(void) __hidden; +extern void _init(void) __hidden; + +extern int _DYNAMIC; +#pragma weak _DYNAMIC + +#if defined(CRT_IRELOC_RELA) +extern const Elf_Rela __rela_iplt_start[] __weak_symbol __hidden; +extern const Elf_Rela __rela_iplt_end[] __weak_symbol __hidden; + +#include "reloc.c" + +static void +process_irelocs(void) +{ + const Elf_Rela *r; + + for (r = &__rela_iplt_start[0]; r < &__rela_iplt_end[0]; r++) + crt1_handle_rela(r); +} +#elif defined(CRT_IRELOC_REL) +extern const Elf_Rel __rel_iplt_start[] __weak_symbol __hidden; +extern const Elf_Rel __rel_iplt_end[] __weak_symbol __hidden; + +#include "reloc.c" + +static void +process_irelocs(void) +{ + const Elf_Rel *r; + + for (r = &__rel_iplt_start[0]; r < &__rel_iplt_end[0]; r++) + crt1_handle_rel(r); +} +#elif defined(CRT_IRELOC_SUPPRESS) +#else +#error "Define platform reloc type" +#endif + +static void +finalizer(void) +{ + void (*fn)(void); + size_t array_size, n; + + array_size = __fini_array_end - __fini_array_start; + for (n = array_size; n > 0; n--) { + fn = __fini_array_start[n - 1]; + if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) + (fn)(); + } + _fini(); +} + +static void +handle_static_init(int argc, char **argv, char **env) +{ + void (*fn)(int, char **, char **); + size_t array_size, n; + + if (&_DYNAMIC != NULL) + return; + + atexit(finalizer); + + array_size = __preinit_array_end - __preinit_array_start; + for (n = 0; n < array_size; n++) { + fn = __preinit_array_start[n]; + if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) + fn(argc, argv, env); + } + _init(); + array_size = __init_array_end - __init_array_start; + for (n = 0; n < array_size; n++) { + fn = __init_array_start[n]; + if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) + fn(argc, argv, env); + } +} + +extern char **environ; + +static void +handle_argv(int argc, char *argv[], char **env) +{ + const char *s; + + if (environ == NULL) + environ = env; + if (argc > 0 && argv[0] != NULL) { + __progname = argv[0]; + for (s = __progname; *s != '\0'; s++) { + if (*s == '/') + __progname = s + 1; + } + } +} + +void +__libc_start1(int argc, char *argv[], char *env[], void (*cleanup)(void), + int (*mainX)(int, char *[], char *[])) +{ + handle_argv(argc, argv, env); + + if (&_DYNAMIC != NULL) { + atexit(cleanup); + } else { +#ifndef CRT_IRELOC_SUPPRESS + INIT_IRELOCS; + process_irelocs(); +#endif + _init_tls(); + } + + handle_static_init(argc, argv, env); + exit(mainX(argc, argv, env)); +} + +/* XXXKIB _mcleanup and monstartup defs */ +extern void _mcleanup(void); +extern void monstartup(void *, void *); + +void +__libc_start1_gcrt(int argc, char *argv[], char *env[], + void (*cleanup)(void), int (*mainX)(int, char *[], char *[]), + int *eprolp, int *etextp) +{ + handle_argv(argc, argv, env); + + if (&_DYNAMIC != NULL) { + atexit(cleanup); + } else { +#ifndef CRT_IRELOC_SUPPRESS + INIT_IRELOCS; + process_irelocs(); +#endif + _init_tls(); + } + + atexit(_mcleanup); + monstartup(eprolp, etextp); + + handle_static_init(argc, argv, env); + exit(mainX(argc, argv, env)); +} diff --git a/lib/libc/csu/mips/Makefile.inc b/lib/libc/csu/mips/Makefile.inc new file mode 100644 index 000000000000..2534e6579f38 --- /dev/null +++ b/lib/libc/csu/mips/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_SUPPRESS \ + -DINIT_IRELOCS="" diff --git a/lib/libc/csu/powerpc/Makefile.inc b/lib/libc/csu/powerpc/Makefile.inc new file mode 100644 index 000000000000..2534e6579f38 --- /dev/null +++ b/lib/libc/csu/powerpc/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_SUPPRESS \ + -DINIT_IRELOCS="" diff --git a/lib/libc/csu/powerpc64/Makefile.inc b/lib/libc/csu/powerpc64/Makefile.inc new file mode 100644 index 000000000000..5d59d40eb393 --- /dev/null +++ b/lib/libc/csu/powerpc64/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_RELA \ + -DINIT_IRELOCS="init_cpu_features(env)" diff --git a/lib/libc/csu/powerpc64/reloc.c b/lib/libc/csu/powerpc64/reloc.c new file mode 100644 index 000000000000..5ba191d07cd9 --- /dev/null +++ b/lib/libc/csu/powerpc64/reloc.c @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2019 Leandro Lupori + * + * 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. + * + * 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$"); + +static uint32_t cpu_features; +static uint32_t cpu_features2; + +static void +init_cpu_features(char **env) +{ + const Elf_Auxinfo *aux; + + /* Find the auxiliary vector on the stack. */ + while (*env++ != 0) /* Skip over environment, and NULL terminator */ + ; + aux = (const Elf_Auxinfo *)env; + + /* Digest the auxiliary vector. */ + for (; aux->a_type != AT_NULL; aux++) { + switch (aux->a_type) { + case AT_HWCAP: + cpu_features = (uint32_t)aux->a_un.a_val; + break; + case AT_HWCAP2: + cpu_features2 = (uint32_t)aux->a_un.a_val; + break; + } + } +} + +static void +crt1_handle_rela(const Elf_Rela *r) +{ + typedef Elf_Addr (*ifunc_resolver_t)( + uint32_t, uint32_t, uint64_t, uint64_t, + uint64_t, uint64_t, uint64_t, uint64_t); + Elf_Addr *ptr, *where, target; + + switch (ELF_R_TYPE(r->r_info)) { + case R_PPC_IRELATIVE: + ptr = (Elf_Addr *)r->r_addend; + where = (Elf_Addr *)r->r_offset; + target = ((ifunc_resolver_t)ptr)(cpu_features, cpu_features2, + 0, 0, 0, 0, 0, 0); + *where = target; + break; + } +} diff --git a/lib/libc/csu/riscv/Makefile.inc b/lib/libc/csu/riscv/Makefile.inc new file mode 100644 index 000000000000..2534e6579f38 --- /dev/null +++ b/lib/libc/csu/riscv/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_SUPPRESS \ + -DINIT_IRELOCS="" diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h index 78a75cc6284d..5fa7a6da1198 100644 --- a/lib/libc/include/libc_private.h +++ b/lib/libc/include/libc_private.h @@ -255,6 +255,12 @@ enum { int _yp_check(char **); #endif +void __libc_start1(int, char *[], char *[], + void (*)(void), int (*)(int, char *[], char *[])) __dead2; +void __libc_start1_gcrt(int, char *[], char *[], + void (*)(void), int (*)(int, char *[], char *[]), + int *, int *) __dead2; + /* * Initialise TLS for static programs */ From nobody Mon Jun 12 12:22:27 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRR58Sgz4d9rD; Mon, 12 Jun 2023 12:22:27 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRR4CqYz3qfT; Mon, 12 Jun 2023 12:22:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572547; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dQ78l0DaGQLGXH/Ejs5RRovptyZ3Jtt1CCsIy5R24hA=; b=vQfR862X3vpyD8XGIy5pYUFNLRZyhBv6JAMI4Jb06aaMAGZFSFE/aLBxgZWoMs5wlH3e5/ uUjFAlBCZyX555MT3FGl4LT063zEybbUGMBgZzSHE82H+5R5iUabkwPIxtb06OdLTHNmJZ NmS6U4QqWi/SikHRkhUONj2HuJGXv/obP+cpzk6x2I3Muu2lW/W1ZAABmAF8m3UiwjR8mC 6fyt4SOr7PfPf8onft9j9/0o+V8CC5yi9lb9+0ejgVX4dsIfKkAIyDFZRiexNlwLgNHsVS GglRvrFxT44yUhrAVjZnMtukcnwYsxkmXRpNUpN4NfF0RSkm2k6+l/og6233VQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572547; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dQ78l0DaGQLGXH/Ejs5RRovptyZ3Jtt1CCsIy5R24hA=; b=cs9IKET0jIkTIHvxbF5iopP92YCA6hBd1x/L+RC8t/dflHsHJi1iLpGtREkHGVqIIeG/Ge L1aT4zOTbWtsEDwOINEexznfVo+H9DX85XP1u2aZlFxkMAbCaP0ipLbHWu+imGDXwJEomI cFkzi7KE/x/IdDRPo89qUyiJwPQ1H5MOeKFsJndqyiKo70s8e/ml6B2Do/SGeGQABYncG7 OtI5U/bob7pOSuRsWzjW8v7342zNcsCInewj8OSqVbsw0p4ukrF5GTklDv+9wFVU6CZ02A Ov53yqqxQERLhW5haFtLSh1ztS2eNAYgBdM2KS3fa1izXkrhvmaM9aR37hFPQw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572547; a=rsa-sha256; cv=none; b=lhMo/nwM9bTxH82JUOEU9GG7nb5Vv5RC5iKJDN6OYxw+di/klghL5BUSMgGF267rZuSHmv O6rWfRKD12x131AIYsp2PhqjnuKmj6WKWs1dAew5nlaA44wV7ogNUUcErjqcuITsb3+Yjg gq/48sIAkDPtGq9PiaMYVTLZIRu85Jp4E7zRYzhX5GulM0VGMAlbi3tf3s1v1RZVGs5DGM jG9WiYAANpY5SALrl9PVzNVXL3LRy1lhYNYtJIWhVf6wpoJchSYZMkIPWCtQ/ifbrk9Vaj Hxzi2/KhImRbcYuPSBXzuVovIsWySAS+zh+JKDxQ4DItOW2P64dzlloiDMK4DQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRR32Nwzg1d; Mon, 12 Jun 2023 12:22:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMRZk048036; Mon, 12 Jun 2023 12:22:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMR8a048035; Mon, 12 Jun 2023 12:22:27 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:27 GMT Message-Id: <202306121222.35CCMR8a048035@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 3f7327695061 - stable/13 - x86: microoptimize static PIE startup List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3f732769506181f77f38b656fa32692f4b87c9fd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3f732769506181f77f38b656fa32692f4b87c9fd commit 3f732769506181f77f38b656fa32692f4b87c9fd Author: Konstantin Belousov AuthorDate: 2022-11-01 01:42:50 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 12:19:38 +0000 x86: microoptimize static PIE startup (cherry picked from commit 0303938539f3f12da65128fc67f883efe82dc125) --- lib/libc/csu/amd64/Makefile.inc | 2 +- lib/libc/csu/amd64/reloc.c | 14 ++++++++++---- lib/libc/csu/i386/Makefile.inc | 2 +- lib/libc/csu/i386/reloc.c | 14 ++++++++++---- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/libc/csu/amd64/Makefile.inc b/lib/libc/csu/amd64/Makefile.inc index b3420a638164..f14033217580 100644 --- a/lib/libc/csu/amd64/Makefile.inc +++ b/lib/libc/csu/amd64/Makefile.inc @@ -1,4 +1,4 @@ # CFLAGS+= -DCRT_IRELOC_RELA \ - -DINIT_IRELOCS="" + -DINIT_IRELOCS="init_cpu_features()" diff --git a/lib/libc/csu/amd64/reloc.c b/lib/libc/csu/amd64/reloc.c index adb52e42a32c..0a5a24929954 100644 --- a/lib/libc/csu/amd64/reloc.c +++ b/lib/libc/csu/amd64/reloc.c @@ -29,13 +29,13 @@ __FBSDID("$FreeBSD$"); #include #include +static uint32_t cpu_feature, cpu_feature2; +static uint32_t cpu_stdext_feature, cpu_stdext_feature2; + static void -crt1_handle_rela(const Elf_Rela *r) +init_cpu_features(void) { - Elf_Addr *ptr, *where, target; u_int p[4]; - uint32_t cpu_feature, cpu_feature2; - uint32_t cpu_stdext_feature, cpu_stdext_feature2; do_cpuid(1, p); cpu_feature = p[3]; @@ -49,6 +49,12 @@ crt1_handle_rela(const Elf_Rela *r) cpu_stdext_feature = 0; cpu_stdext_feature2 = 0; } +} + +static void +crt1_handle_rela(const Elf_Rela *r) +{ + Elf_Addr *ptr, *where, target; switch (ELF_R_TYPE(r->r_info)) { case R_X86_64_IRELATIVE: diff --git a/lib/libc/csu/i386/Makefile.inc b/lib/libc/csu/i386/Makefile.inc index ac0984df2349..f3f8c2b176ce 100644 --- a/lib/libc/csu/i386/Makefile.inc +++ b/lib/libc/csu/i386/Makefile.inc @@ -1,4 +1,4 @@ # CFLAGS+= -DCRT_IRELOC_REL \ - -DINIT_IRELOCS="" + -DINIT_IRELOCS="init_cpu_features()" diff --git a/lib/libc/csu/i386/reloc.c b/lib/libc/csu/i386/reloc.c index 13438035841d..f99b1089cf47 100644 --- a/lib/libc/csu/i386/reloc.c +++ b/lib/libc/csu/i386/reloc.c @@ -29,13 +29,13 @@ __FBSDID("$FreeBSD$"); #include #include +static uint32_t cpu_feature, cpu_feature2; +static uint32_t cpu_stdext_feature, cpu_stdext_feature2; + static void -crt1_handle_rel(const Elf_Rel *r) +init_cpu_features(void) { - Elf_Addr *where, target; u_int cpuid_supported, p[4]; - uint32_t cpu_feature, cpu_feature2; - uint32_t cpu_stdext_feature, cpu_stdext_feature2; __asm __volatile( " pushfl\n" @@ -72,6 +72,12 @@ crt1_handle_rel(const Elf_Rel *r) cpu_stdext_feature = 0; cpu_stdext_feature2 = 0; } +} + +static void +crt1_handle_rel(const Elf_Rel *r) +{ + Elf_Addr *where, target; switch (ELF_R_TYPE(r->r_info)) { case R_386_IRELATIVE: From nobody Mon Jun 12 12:22:28 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRT0Vlrz4d9lK; Mon, 12 Jun 2023 12:22:29 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRS4qw3z3qmx; Mon, 12 Jun 2023 12:22:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572548; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/Em2mEdXfbj7ppQxxdA9K2vPPNWcGCwSn3ffNwd1q6A=; b=NrG5vFKEuZYb1yA0zUKaVfGK22LiJRlIq0Jqvblg4RI5U5fIMgB4rRaYD6zaXlrHFbCSIX GbNNz6SyZVxjTm6DhqYIQCc3fJLvbHU3TQQwBoC5n2WvzKIRCM9ysAFZMv9+A7Ek1cPX6q AJx1P1AzTICZBli6BV7xBsdalzbzZOlJ8X3HMeybfMES5IwhUxY4PVDAWWIcObb8bo45Bo m0O7IXn6bWV0OCzf0m1sWSSUOWykcUAEsXtb/jrBA9tbpQoSAHVGmItV+t5W6APUjIht3g sgT++f1ZssS3Q4VYMrvlghM+IM5umCkTfONPt4EM9YQDkykQiauCPFS/S2UfEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572548; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/Em2mEdXfbj7ppQxxdA9K2vPPNWcGCwSn3ffNwd1q6A=; b=l55DMJkj6RplwlHJt//ELiBV9KO8MSpjgzhr3BlEIUJBz+uWvK1XOohMI1V2t0QlvA5YhR YQbI4zFoROg0wUStbd9umUonVoKHsRBP3le0EXzlGB5XJVOkHVxD93B6CVpqwnYjmH2VxI Jreu0eVope6twCmm0VpV7p19indv3mz33ltfnka/Iqlb4Kkli/9gEP5llUd0X4c95A3JmE c8Z+0otwJR0nyx/70K+hoIKzjjI7YurJbiPtDiIT+9nLRveUviF+gcpEcYqD3RhqalxosQ C0quqLItida4dgKKD+c8hFx4KnHhATlmw4Pgcv0TSpNhw9v9KMih6LwKNK7W8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572548; a=rsa-sha256; cv=none; b=LGdDi2wpC5wz2OfJBUj+Hl3371T1SfELTAddyvrvrH1fU14ltFvrHYPai45KhsvmBrT6x3 y2FKj+zfGB/o5M4ggCiga8FxNHJGYPM922oZaIvFLBkx8GKOY6E06e1aolLkaPRg58roXi VXJrviVWvVCtagoIgk6+h8n6mvjHNE1zP3SE5Oj8Mr3ZJjAkzlFtcpn+RH8gZgh5rEEypO 2wYwiEC2h6h7ZoBjvLhqFfW+MjjY8NMqa6nqIUfECGCXOy9WS6Xy9b8fiiPcYIY9GMIfCV MNgTKDlNnqOCRj7rOBVP8JQJ2yNc7Y13HSg1CaYkFdz5ZO8o8rhc5tq5oS0OhQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRS3klzzfQp; Mon, 12 Jun 2023 12:22:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMSwj048060; Mon, 12 Jun 2023 12:22:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMSje048059; Mon, 12 Jun 2023 12:22:28 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:28 GMT Message-Id: <202306121222.35CCMSje048059@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 750a1522f6ac - stable/13 - libc: move declaration of 'char **environ' to common private header List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 750a1522f6acf9bb51eed67d350f9f730b647ad5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=750a1522f6acf9bb51eed67d350f9f730b647ad5 commit 750a1522f6acf9bb51eed67d350f9f730b647ad5 Author: Konstantin Belousov AuthorDate: 2022-11-06 04:08:36 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 12:19:38 +0000 libc: move declaration of 'char **environ' to common private header (cherry picked from commit 0c6f0c0db75ea5a1e89a68a163fc555bdd7d00f5) --- lib/libc/csu/ignore_init.c | 2 -- lib/libc/gen/auxv.c | 1 - lib/libc/gen/exec.c | 2 -- lib/libc/gen/popen.c | 2 -- lib/libc/gen/posix_spawn.c | 2 -- lib/libc/gen/tls.c | 2 -- lib/libc/include/libc_private.h | 2 ++ lib/libc/stdlib/getenv.c | 3 +-- 8 files changed, 3 insertions(+), 13 deletions(-) diff --git a/lib/libc/csu/ignore_init.c b/lib/libc/csu/ignore_init.c index 60c45d7e735f..346409e3f370 100644 --- a/lib/libc/csu/ignore_init.c +++ b/lib/libc/csu/ignore_init.c @@ -117,8 +117,6 @@ handle_static_init(int argc, char **argv, char **env) } } -extern char **environ; - static void handle_argv(int argc, char *argv[], char **env) { diff --git a/lib/libc/gen/auxv.c b/lib/libc/gen/auxv.c index 2f043f8814cf..29b3d6929144 100644 --- a/lib/libc/gen/auxv.c +++ b/lib/libc/gen/auxv.c @@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$"); #include "un-namespace.h" #include "libc_private.h" -extern char **environ; extern int _DYNAMIC; #pragma weak _DYNAMIC diff --git a/lib/libc/gen/exec.c b/lib/libc/gen/exec.c index 2c703bb4e73e..f1d69e147719 100644 --- a/lib/libc/gen/exec.c +++ b/lib/libc/gen/exec.c @@ -47,8 +47,6 @@ __FBSDID("$FreeBSD$"); #include "un-namespace.h" #include "libc_private.h" -extern char **environ; - static const char execvPe_err_preamble[] = "execvP: "; static const char execvPe_err_trailer[] = ": path too long\n"; diff --git a/lib/libc/gen/popen.c b/lib/libc/gen/popen.c index c5373077f3ae..f0b1a61c2803 100644 --- a/lib/libc/gen/popen.c +++ b/lib/libc/gen/popen.c @@ -53,8 +53,6 @@ __FBSDID("$FreeBSD$"); #include "un-namespace.h" #include "libc_private.h" -extern char **environ; - struct pid { SLIST_ENTRY(pid) next; FILE *fp; diff --git a/lib/libc/gen/posix_spawn.c b/lib/libc/gen/posix_spawn.c index 909db9a60a02..7dc0ade5b309 100644 --- a/lib/libc/gen/posix_spawn.c +++ b/lib/libc/gen/posix_spawn.c @@ -45,8 +45,6 @@ __FBSDID("$FreeBSD$"); #include "un-namespace.h" #include "libc_private.h" -extern char **environ; - struct __posix_spawnattr { short sa_flags; pid_t sa_pgroup; diff --git a/lib/libc/gen/tls.c b/lib/libc/gen/tls.c index d75b883b68db..74b2ae562c99 100644 --- a/lib/libc/gen/tls.c +++ b/lib/libc/gen/tls.c @@ -401,8 +401,6 @@ __libc_free_tls(void *tcb __unused, size_t tcbsize __unused, #endif /* PIC */ -extern char **environ; - void _init_tls(void) { diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h index 5fa7a6da1198..991624557118 100644 --- a/lib/libc/include/libc_private.h +++ b/lib/libc/include/libc_private.h @@ -39,6 +39,8 @@ #include #include +extern char **environ; + /* * The kernel doesn't expose PID_MAX to the user space. Save it here * to allow to run a newer world on a pre-1400079 kernel. diff --git a/lib/libc/stdlib/getenv.c b/lib/libc/stdlib/getenv.c index 4c71801b242f..a413e8d7d93f 100644 --- a/lib/libc/stdlib/getenv.c +++ b/lib/libc/stdlib/getenv.c @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include "un-namespace.h" - +#include "libc_private.h" static const char CorruptEnvFindMsg[] = "environment corrupt; unable to find "; static const char CorruptEnvValueMsg[] = @@ -56,7 +56,6 @@ static const char CorruptEnvValueMsg[] = * intEnviron: Internally-built environ. Exposed via environ during * (re)builds of the environment. */ -extern char **environ; static char **origEnviron; static char **intEnviron = NULL; static int environSize = 0; From nobody Mon Jun 12 12:22:29 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRT6rvdz4d9j1; Mon, 12 Jun 2023 12:22:29 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRT5Xsqz3qtK; Mon, 12 Jun 2023 12:22:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7H4XTOEqyrLfYKqxABSuXUlsBFjqeI3aBKRhB9w3trY=; b=bK9UX0N1S73vu1LK8qJyqVk0H5E7X1tF4Ncz7Iu84puBkd2X2r/NbpH1tCau+/7DbCLRsi yzJRnyf7QKYBHt/Ms8L3tMKPzMI4Haz8gQmBBcWL6R9tV0OiYbmEVZ84a9fTs7ug5slzCE siTVj4wqpi9CxarZnhUB4KaiA/FJY4hgrhZVz4YZOHQ5ZJU9G1I9M+yxlTnxgynjm1tsWC 3nP4YnWa7WRULDQYQUr5uWp0RzMS/lKea1CnKJdTP5D3aIj80e/cTfFE2J5BpDLLVh4V5J JesKC/BnbRpIoUK1fcNsQVrpx6IJKbcdVQ6YJm0JzrCcKAnbwbB5tTEwQDy5cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7H4XTOEqyrLfYKqxABSuXUlsBFjqeI3aBKRhB9w3trY=; b=OT8mAjLbjep5VxWfPjk4lf1vduzbR5fqeh95U0llb7R4BNPSHTA/8kVSmF2o8X+HncYK1U D/2sqQY58RHt8P98xIrtIltWKKRewLsp6B1YxeKkQd+W1CsV1IsTf2HakGZq6t3I+1ksk4 ROmWZa4sKbHo+fZpCElJfm9xye6Ay1Oh/prHjiPoMRv25sfm+4U2zP3cJyNFHKfzs5OA4V UVCbmpAOtS1f52ANMxf8SsuZLyeufR31pQTRfymGOGnV/sRP2XlbDdJseXWRYds26Ruoij 0rYlf6wn5NOZovFq0aAXniOaxBttOknEAvmC+1c9N8EorGMoPgQEHIj6PbDSlg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572549; a=rsa-sha256; cv=none; b=TAv8I8DmvwbEBmBde0cnj8okHUrBkprqev8b8sJKnIJVLWsAP7V3vsQ5+fWsYFBZDnp3tE zBhgJtw0EfoN2PkEggp1DWLfEdH7HWPzF9VX+vgx6yOXYMFMKGXlffmYg9e1f+K1hIK6WR LhqaOopJ0uuSSLTjgaSHgeZXUOnDQPAKyBHnYwd+7paqUQ4dEud3ULbPVglJdoFfFtH1j8 nF7qrT6i72gZ6eZ+XadsberL4qPxcVQjCRMBcx7GlZuFfJLbOurKj9HNcQj99oVBuPN01d xcdb325t79iUWiiUfC0q/PsnxcFRV7DLIH3UbYg1R/Swx+5u9afWX6uwasDPbQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRT4fptzg30; Mon, 12 Jun 2023 12:22:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMTYn048079; Mon, 12 Jun 2023 12:22:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMTK9048078; Mon, 12 Jun 2023 12:22:29 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:29 GMT Message-Id: <202306121222.35CCMTK9048078@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c604aa6c6b3f - stable/13 - libc/csu: rename ignore_init.c to libc_start1.c List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c604aa6c6b3f8877709c9d11a455428ba646a6e5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c604aa6c6b3f8877709c9d11a455428ba646a6e5 commit c604aa6c6b3f8877709c9d11a455428ba646a6e5 Author: Konstantin Belousov AuthorDate: 2023-03-11 22:56:46 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 12:19:38 +0000 libc/csu: rename ignore_init.c to libc_start1.c (cherry picked from commit c5c9d980c4b0ca3866cb2ad67ec3f7111f5c4285) --- lib/libc/csu/Makefile.inc | 2 +- lib/libc/csu/{ignore_init.c => libc_start1.c} | 0 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/csu/Makefile.inc b/lib/libc/csu/Makefile.inc index 453303bea608..666744f27c8b 100644 --- a/lib/libc/csu/Makefile.inc +++ b/lib/libc/csu/Makefile.inc @@ -4,7 +4,7 @@ .include "${LIBC_SRCTOP}/csu/${LIBC_ARCH}/Makefile.inc" SRCS+= \ - ignore_init.c + libc_start1.c CFLAGS+= -I${LIBC_SRCTOP}/csu/${LIBC_ARCH} SYM_MAPS+=${LIBC_SRCTOP}/csu/Symbol.map diff --git a/lib/libc/csu/ignore_init.c b/lib/libc/csu/libc_start1.c similarity index 100% rename from lib/libc/csu/ignore_init.c rename to lib/libc/csu/libc_start1.c From nobody Mon Jun 12 12:22:30 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRW0JCrz4d9dK; Mon, 12 Jun 2023 12:22:31 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRV6l8xz3qln; Mon, 12 Jun 2023 12:22:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2OeOxxkFobcIq9A+Qm7QFCjB8MlP02whlXZXL1oI44c=; b=nhjpi6Wr5+c31xiaaJjL7ae8Il78Z+Pki31VizSdbMfW/SnaV1g43TB4Z/Nkay79/WKBwx bQ4Csg6U96TH88uFw1utHqU5kMxRj3JHw86Kl+Qqsmt8/YhzDMXyaLq8+i9/4yr7kdaueI 0bUGPE8pDGReTYWsv1KERzVTjGrNvtjiBvKyPwXlrbtMKwPGtBk1sD2a+mY7SqLoowGj3R kvninTLrxGqr+61u2o4C71r0xD9cyLL9Qz2KxN16wZKylnYK7MCraTzdVRQycmY4lAqn6O MopiYZ41vrttY9nvk0jWSRWN3ShDglVxeqUXVrZEnmv87D4vYh0oW59Qntw2Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2OeOxxkFobcIq9A+Qm7QFCjB8MlP02whlXZXL1oI44c=; b=Y1wrkeiWqM7yOX6P1WeuHD+AVGZr2IxEi91hZy7b2msL/7hsYJFGMJV3tDtajrhJdSSnco e/4LMGYcUw2jK/hOQIKcOXf7GIRHJpzWt1JWafhrN7LDKA3wd8Smz+T41CsBFgLYOquSpw 7i7r15fPL2NyfcaT4Z/Fs3FJ8GjhKWRENGjUILauaoSeLtbkdLZ1vc/CgeNbHHA0Lx4K1P GyBXHFacrz8oHpq2iK75Vjcfus1jvMtSWupPOn3sOrlLuz/bMiCEEN7loQed/UmE3SZAZi I/eofdoL/c8sQbx85++eWwSbNFJGpwTBlMKDoBwVdNyjAV5oLOWHbBFNa22LZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572550; a=rsa-sha256; cv=none; b=XlPD+wDJAFpU3YqbDpJo2HR1KONSprVRqYyVxzFRxP4f7MpyPNPsE5quNmTGR1a4OReHF6 qPqv1nGAZneb24gJSBMqYKJv7zQreBAAfjvTpXubCcch0qN97OILI6MVoq2EtkFysBKMl5 t63CXkjWCwstcFL3nZuwYJt1CBjzH2ObCOu8Go79rNN5++eYHZ67ka9BZMRnM29D6cy9tJ GjPFGAlNEY4dj37Vez6Y3/fN/bS8P0kT8JOSs2qg23YejhfcCenTgKyejbtLlX7b0F0Ozz jn81yUohH4oVAh52foPo9Di2I9OcMmDE/V/E4yuZiOPqAeZipbQFfguVv5ss3w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRV5c0mzflN; Mon, 12 Jun 2023 12:22:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMUuM048098; Mon, 12 Jun 2023 12:22:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMUTo048097; Mon, 12 Jun 2023 12:22:30 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:30 GMT Message-Id: <202306121222.35CCMUTo048097@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 928fcfec0950 - stable/13 - libc/csu: add powerpcspe List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 928fcfec09502d18b7177d905532baf244b1dc56 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=928fcfec09502d18b7177d905532baf244b1dc56 commit 928fcfec09502d18b7177d905532baf244b1dc56 Author: Konstantin Belousov AuthorDate: 2023-03-12 09:59:16 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 12:19:38 +0000 libc/csu: add powerpcspe (cherry picked from commit 94e3409e2d02ce3e4817d1a94051dc798e520745) --- lib/libc/csu/powerpcspe/Makefile.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/libc/csu/powerpcspe/Makefile.inc b/lib/libc/csu/powerpcspe/Makefile.inc new file mode 100644 index 000000000000..2534e6579f38 --- /dev/null +++ b/lib/libc/csu/powerpcspe/Makefile.inc @@ -0,0 +1,4 @@ +# + +CFLAGS+= -DCRT_IRELOC_SUPPRESS \ + -DINIT_IRELOCS="" From nobody Mon Jun 12 12:22:31 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfrRX1Vjwz4d9rV; Mon, 12 Jun 2023 12:22:32 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfrRX07FDz3qyy; Mon, 12 Jun 2023 12:22:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xcJsnTZxZTSx2x0tAq1s13rNDzgkZmlDZAjTMtpUpM4=; b=kUITJ4r6C37vZqINIPZ5ipmM31LsBwAIpXUwOfiE7EkK3oda9+yylkkNvtNEoJ8bBRnkBf jBHCzlH6PyLtJ+OrCvRW3u1Jy0F1RWDUDkx9TuPdBdYRG/JvxI1+shNitUPpys7VpzaRcO bsV4fVoUg6/hYTYs6VfTe2mVItgqg9g5p+AUEapQl83lg3NyhXTjRHvpY3T08MSK8y2ucl 30LIMjbi97rXlRammKPrU4ldRbNYR4FmbnqNPyVCVwy202Vym9IsEc8klwnQhK71RorYNH 6RtQ6USP4gXNzDFHyxIjwyKw+IC5SSmW6dBpXxTfu5e54qFZs61KkmVnOd3MmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686572552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xcJsnTZxZTSx2x0tAq1s13rNDzgkZmlDZAjTMtpUpM4=; b=A0yLTASLkihF1cM6DbN9KCJDoZ4rAxlqxhjn0Oh0WzbbNMOlGP6XTOdkuGlbP/+1D3QiKx 37XAXmWQ1egOONFtCC3eoN3vg03XlJIfUI6vFPk3zfbMHUUaeztj/LUrvBvt+Zi9hkZYh9 5veTrCPAymySpSW1E1JpfM4xyovys1DAdyBmv+UpbldgRR/DWgGH+CDHrqUY1GuX6KHDWJ ey+Q/O7zyRmusScjUSs9xhukousKp93iA2o+hUxTLUqQiLajT9qB+uTIZFUzzaHQPGMd8Z THWj+x8ctZbnj12jZjjprVpSV+maP14VesQ48TP7KJoH115WSUzATGfdIwETnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686572552; a=rsa-sha256; cv=none; b=gcKa5bkMyRGKZ3KOh+2isOgUe1HQXHapOjtvExRdzfVJQ9+XZWsoMQxW3lE5SIVrLZTkRw ppIRm8DlFMWWbc1FhcsCr9FNpxGn6TRTyIKNmQyw5BuMj95QDvN0PfKPL97N2i4TOVU3Sa xrZHoJD2tA0cFgu0N0pTsV9pzVZ1C2012h50b9ldpTvZIiOJv4mE/ciVAlh8VbZiht5L9f xt4iqWVztEMSd89+egDZwLQhGvJVF1cUxyVj3ufTBB1gUxg2OyXhbGyg3ZFN6Ax7/e30hl u0WwMClRNs29wjNfX6l6YgCifUrIvl4/SHyhgyjffIvGbSxcGTyrF4qbjFjLZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfrRW6HYTzg32; Mon, 12 Jun 2023 12:22:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CCMVfx048117; Mon, 12 Jun 2023 12:22:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CCMVI8048116; Mon, 12 Jun 2023 12:22:31 GMT (envelope-from git) Date: Mon, 12 Jun 2023 12:22:31 GMT Message-Id: <202306121222.35CCMVI8048116@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c10e56732217 - stable/13 - lib/csu: do not compile the body of handle_static_init() for PIC build at all List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c10e567322179989c611b4f488b754108d174d5c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c10e567322179989c611b4f488b754108d174d5c commit c10e567322179989c611b4f488b754108d174d5c Author: Konstantin Belousov AuthorDate: 2023-03-12 01:45:37 +0000 Commit: Konstantin Belousov CommitDate: 2023-06-12 12:19:38 +0000 lib/csu: do not compile the body of handle_static_init() for PIC build at all (cherry picked from commit c383f4857f1696c4beb782db36323f46f0c4f6de) --- lib/libc/csu/libc_start1.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libc/csu/libc_start1.c b/lib/libc/csu/libc_start1.c index 346409e3f370..d6a973bf0fe0 100644 --- a/lib/libc/csu/libc_start1.c +++ b/lib/libc/csu/libc_start1.c @@ -94,6 +94,7 @@ finalizer(void) static void handle_static_init(int argc, char **argv, char **env) { +#ifndef PIC void (*fn)(int, char **, char **); size_t array_size, n; @@ -115,6 +116,7 @@ handle_static_init(int argc, char **argv, char **env) if ((uintptr_t)fn != 0 && (uintptr_t)fn != 1) fn(argc, argv, env); } +#endif } static void From nobody Mon Jun 12 13:50:17 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNp0v3Rz4cGqm; Mon, 12 Jun 2023 13:50:18 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNp061zz47H4; Mon, 12 Jun 2023 13:50:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577818; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NSlHTHteVhqogsO+sBl93U7r2IDiojflRO4OFCdU+yw=; b=HtNj6S5T3TiXEdur/SuTaoNJ8vI3v/j5iBi2Gk+6dslJcfFwE2zWxQNiVfMHBp5NlLWTNA 1f6ixL14FKehXtvtxlyAHMmwp1rqW9KTD62qpjlP/I/FBgnH/WKF+6bdEiFUo4AwDzC8r4 TQGet9WB2F+X6qEidzdTtyJ3HR1B1RmuT3SSX43UUyDnIg3/AHXpOUwXim0XGK43tQDCgh 2+k9jY5vLgNEItCH/23dpfa+Qqcu4CkbDINg28qW8tSjyKu3+ZXVtlGUooQqXFXPih6xpY Rbguuo6b2BAK/TEn4uyUPTfy4ThZSbzFNt44lRgX6Z5s5BLe/JIwH+AxsmvMWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577818; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NSlHTHteVhqogsO+sBl93U7r2IDiojflRO4OFCdU+yw=; b=YqI9lREUpEMDG1EJsilKilE9NzM7dWHcL6qhZiVgjmExSgLRpvYz9D9k08bvR4jpZyTBSx 62h5j5/Tt9zCQPYFNq2uTQF7DX5Ip8BQG/E4xOdbriw2pU8ky0hbyI+ZsldLocDWEFE9/b Yk2xLh9gBURYoeOMsOkOPFaMXwYiQGc5rT1wOgOvhyMItM5SE8l4p1dgH7NHMfqlglYhcS bfKFujQoBBMRQmMhA+/76qGliDFgwietPwfhaoXw5jAleoUF0m6zVErKw81GD3dYDiGyve 7tiu0WiT+wUhXloa1Pb5LJjfYL/2fwJ8psqzWWhL97LS3weDPbA62w+lJZSs6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577818; a=rsa-sha256; cv=none; b=vV4oQCBbbD+TWGEaNiJuiwx2cAIa0pbRCzeYfL+ulnE+UsuH0ddoXl6z/Gw5PsC784Juv7 2IPEaFdLDsIPYYOIbQ4eA8Vlj2vx6pq76CYV0OhLw6cV0YYxVQjbduQuR3PiMzOa3VmEa5 U0KO3OT6zfDigqCl29qbSkb8EwX7N4DZy5IecTvufE7xtn9Ewrc6ERcVfmaCc0qlYIi5Fx nZEjnoPHD+3mm4XGcQPzhJBvUqq3aeEVyPLdoKxVoxGAX8fT2i0rmS3d8zJuVsDhqpqk5l Aqu1cVQMcdv3iS9fQZQaSx8A5A1RxsTZfySB5yQaTCEqpwRje5QJdUTj1uaXkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNn69xmzhj8; Mon, 12 Jun 2023 13:50:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoHN1089284; Mon, 12 Jun 2023 13:50:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoHx0089283; Mon, 12 Jun 2023 13:50:17 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:17 GMT Message-Id: <202306121350.35CDoHx0089283@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: be12b4f1fbf6 - stable/13 - riscv: Rework CPU identification (first part) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: be12b4f1fbf69d14a13cc1839c27a96afb2dda9b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=be12b4f1fbf69d14a13cc1839c27a96afb2dda9b commit be12b4f1fbf69d14a13cc1839c27a96afb2dda9b Author: Mitchell Horne AuthorDate: 2023-05-22 23:48:41 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: Rework CPU identification (first part) Make better use of the RISC-V identification CSRs: mvendorid, marchid, and mimpid. This code was written before these registers were well-specified, or even available to the kernel. It currently fails to recognize any CPU or platform. Per the privileged specification, mvendorid contains the JEDEC vendor ID, or zero. The marchid register denotes the CPU microarchitecture. This is either one of the globally allocated open-source implementation IDs, or the field has a custom encoding. Therefore, for known vendors (SiFive) we can also maintain a list of known marchid values. If we can not give a name to the CPU but marchid is non-zero, then just print its value in the report. The mimpid (implementation ID) could be used in the future to more uniquely identify the micro-architecture, but it really remains to be seen how it gets used. For now we just print its value. Thank you to Danjel Qyteza who submitted an early version of this change to me, although it has been almost entirely rewritten. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39809 (cherry picked from commit 88b4d124efc5a2d45660551fe0750acc0be6d3cd) --- sys/riscv/include/cpu.h | 45 +++++++++------- sys/riscv/riscv/identcpu.c | 128 ++++++++++++++++++++++++++------------------- 2 files changed, 101 insertions(+), 72 deletions(-) diff --git a/sys/riscv/include/cpu.h b/sys/riscv/include/cpu.h index ee7b1111af56..b33e34d350fb 100644 --- a/sys/riscv/include/cpu.h +++ b/sys/riscv/include/cpu.h @@ -52,27 +52,36 @@ #ifdef _KERNEL /* - * 0x0000 CPU ID unimplemented - * 0x0001 UC Berkeley Rocket repo - * 0x0002­0x7FFE Reserved for open-source repos - * 0x7FFF Reserved for extension - * 0x8000 Reserved for anonymous source - * 0x8001­0xFFFE Reserved for proprietary implementations - * 0xFFFF Reserved for extension + * Core manufacturer IDs, as reported by the mvendorid CSR. */ +#define MVENDORID_UNIMPL 0x0 +#define MVENDORID_SIFIVE 0x489 +#define MVENDORID_THEAD 0x5b7 -#define CPU_IMPL_SHIFT 0 -#define CPU_IMPL_MASK (0xffff << CPU_IMPL_SHIFT) -#define CPU_IMPL(mimpid) ((mimpid & CPU_IMPL_MASK) >> CPU_IMPL_SHIFT) -#define CPU_IMPL_UNIMPLEMEN 0x0 -#define CPU_IMPL_UCB_ROCKET 0x1 +/* + * Micro-architecture ID register, marchid. + * + * IDs for open-source implementations are allocated globally. Commercial IDs + * will have the most-significant bit set. + */ +#define MARCHID_UNIMPL 0x0 +#define MARCHID_MSB (1ul << (XLEN - 1)) +#define MARCHID_OPENSOURCE(v) (v) +#define MARCHID_COMMERCIAL(v) (MARCHID_MSB | (v)) +#define MARCHID_IS_OPENSOURCE(m) (((m) & MARCHID_MSB) == 0) + +/* + * Open-source marchid values. + * + * https://github.com/riscv/riscv-isa-manual/blob/master/marchid.md + */ +#define MARCHID_UCB_ROCKET MARCHID_OPENSOURCE(1) +#define MARCHID_UCB_BOOM MARCHID_OPENSOURCE(2) +#define MARCHID_UCB_SPIKE MARCHID_OPENSOURCE(5) +#define MARCHID_UCAM_RVBS MARCHID_OPENSOURCE(10) -#define CPU_PART_SHIFT 62 -#define CPU_PART_MASK (0x3ul << CPU_PART_SHIFT) -#define CPU_PART(misa) ((misa & CPU_PART_MASK) >> CPU_PART_SHIFT) -#define CPU_PART_RV32 0x1 -#define CPU_PART_RV64 0x2 -#define CPU_PART_RV128 0x3 +/* SiFive marchid values */ +#define MARCHID_SIFIVE_U7 MARCHID_COMMERCIAL(7) extern char btext[]; extern char etext[]; diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index 4c151eb47939..5ffa038513ae 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -67,42 +67,47 @@ register_t marchid; /* The architecture ID */ register_t mimpid; /* The implementation ID */ struct cpu_desc { - u_int cpu_impl; - u_int cpu_part_num; - const char *cpu_impl_name; - const char *cpu_part_name; + const char *cpu_mvendor_name; + const char *cpu_march_name; }; struct cpu_desc cpu_desc[MAXCPU]; -struct cpu_parts { - u_int part_id; - const char *part_name; +/* + * Micro-architecture tables. + */ +struct marchid_entry { + register_t march_id; + const char *march_name; }; -#define CPU_PART_NONE { -1, "Unknown Processor" } -struct cpu_implementers { - u_int impl_id; - const char *impl_name; +#define MARCHID_END { -1ul, NULL } + +/* Open-source RISC-V architecture IDs; globally allocated. */ +static const struct marchid_entry global_marchids[] = { + { MARCHID_UCB_ROCKET, "UC Berkeley Rocket" }, + { MARCHID_UCB_BOOM, "UC Berkeley Boom" }, + { MARCHID_UCB_SPIKE, "UC Berkeley Spike" }, + { MARCHID_UCAM_RVBS, "University of Cambridge RVBS" }, + MARCHID_END }; -#define CPU_IMPLEMENTER_NONE { 0, "Unknown Implementer" } -/* - * CPU base - */ -static const struct cpu_parts cpu_parts_std[] = { - { CPU_PART_RV32, "RV32" }, - { CPU_PART_RV64, "RV64" }, - { CPU_PART_RV128, "RV128" }, - CPU_PART_NONE, +static const struct marchid_entry sifive_marchids[] = { + { MARCHID_SIFIVE_U7, "6/7/P200/X200-Series Processor" }, + MARCHID_END }; /* - * Implementers table. + * Known CPU vendor/manufacturer table. */ -const struct cpu_implementers cpu_implementers[] = { - { CPU_IMPL_UCB_ROCKET, "UC Berkeley Rocket" }, - CPU_IMPLEMENTER_NONE, +static const struct { + register_t mvendor_id; + const char *mvendor_name; + const struct marchid_entry *marchid_table; +} mvendor_ids[] = { + { MVENDORID_UNIMPL, "Unspecified", NULL }, + { MVENDORID_SIFIVE, "SiFive", sifive_marchids }, + { MVENDORID_THEAD, "T-Head", NULL }, }; /* @@ -321,48 +326,63 @@ fill_elf_hwcap(void *dummy __unused) SYSINIT(identcpu, SI_SUB_CPU, SI_ORDER_ANY, fill_elf_hwcap, NULL); #endif -void -identify_cpu(void) +static void +identify_cpu_ids(struct cpu_desc *desc) { - const struct cpu_parts *cpu_partsp; - uint32_t part_id; - uint32_t impl_id; - uint64_t misa; - u_int cpu; - size_t i; - - cpu_partsp = NULL; + const struct marchid_entry *table = NULL; + int i; - /* TODO: can we get misa somewhere ? */ - misa = 0; + desc->cpu_mvendor_name = "Unknown"; + desc->cpu_march_name = "Unknown"; - cpu = PCPU_GET(cpuid); - - impl_id = CPU_IMPL(mimpid); - for (i = 0; i < nitems(cpu_implementers); i++) { - if (impl_id == cpu_implementers[i].impl_id || - cpu_implementers[i].impl_id == 0) { - cpu_desc[cpu].cpu_impl = impl_id; - cpu_desc[cpu].cpu_impl_name = cpu_implementers[i].impl_name; - cpu_partsp = cpu_parts_std; + /* + * Search for a recognized vendor, and possibly obtain the secondary + * table for marchid lookup. + */ + for (i = 0; i < nitems(mvendor_ids); i++) { + if (mvendorid == mvendor_ids[i].mvendor_id) { + desc->cpu_mvendor_name = mvendor_ids[i].mvendor_name; + table = mvendor_ids[i].marchid_table; break; } } - part_id = CPU_PART(misa); - for (i = 0; &cpu_partsp[i] != NULL; i++) { - if (part_id == cpu_partsp[i].part_id || - cpu_partsp[i].part_id == -1) { - cpu_desc[cpu].cpu_part_num = part_id; - cpu_desc[cpu].cpu_part_name = cpu_partsp[i].part_name; + if (marchid == MARCHID_UNIMPL) { + desc->cpu_march_name = "Unspecified"; + return; + } + + if (MARCHID_IS_OPENSOURCE(marchid)) { + table = global_marchids; + } else if (table == NULL) + return; + + for (i = 0; table[i].march_name != NULL; i++) { + if (marchid == table[i].march_id) { + desc->cpu_march_name = table[i].march_name; break; } } +} + +void +identify_cpu(void) +{ + struct cpu_desc *desc; + u_int cpu, hart; + + cpu = PCPU_GET(cpuid); + hart = PCPU_GET(hart); + desc = &cpu_desc[cpu]; + + identify_cpu_ids(desc); /* Print details for boot CPU or if we want verbose output */ if (cpu == 0 || bootverbose) { - printf("CPU(%d): %s %s\n", cpu, - cpu_desc[cpu].cpu_impl_name, - cpu_desc[cpu].cpu_part_name); + /* Summary line. */ + printf("CPU %-3u: Vendor=%s Core=%s (Hart %u)\n", cpu, + desc->cpu_mvendor_name, desc->cpu_march_name, hart); + + printf(" marchid=%#lx, mimpid=%#lx\n", marchid, mimpid); } } From nobody Mon Jun 12 13:50:18 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNq2brVz4cGnk; Mon, 12 Jun 2023 13:50:19 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNq1n8vz47H9; Mon, 12 Jun 2023 13:50:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577819; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HlGAMYHCm/GC1J6brUGQePJeedQhmyMHAJl46zQgsdk=; b=I7Fhn/R8GRMCMsGG/wtUh6QFjvPVGa3UpG12P2eZ4reTQYT9UgNcN6qAP6MZCwZGd9Ggov bC6Fk3I6j/4FCPxiPT4MqT/oND5cHOSLRmUHH+DXCgR0L4Dg6L8epOb8K34/VoZjm/5bAJ 22CmzMqx+plEuh6SbUknwX1L0qAX5DVu1NOpr1H6u4RqpdXXTQya4j45IPDhjHJASzWl9a 809l+Mv/k+KoUaXV1bZGTgQ1XyC5N0za2xAKX2TGNDGD0AnXCmr72wacXT5aEmGNbfd6S/ PMqCg2am2VmczQPRM/DelQCulbrCtr5ESLFZzvra3M+fLoHmf57Tar1symv5gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577819; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HlGAMYHCm/GC1J6brUGQePJeedQhmyMHAJl46zQgsdk=; b=Ujre9VK2BttqN5zsomaUu7CIbjoRnYIraO+lkxIQaveCwxvLVKygKLijsY8hkmdyFryJm/ ejUzMC9nRU9aJ4sgQIt9x6gxuTQW6dstLq46wiy8cn8RYpaVUqO34Q2clWSIWAXr6OX+u5 uUmwny3a/3vnQ3rGRi3Zkqom2UzRO2BOecQl5SiTJmQMXXGwaWtaaAWIw3lfcpCtDlNPMS KHz19R9r1gdKcIk92LoqDHrgDUqaMn4b7c63CAbqxMHFnin21mHkU3NRWDiEG4RmNMS7Jm qjoGgSi6VIPlJ63QU4AA05byNNtUwYX8eVstncqdSL0muzwW/Pnu/Jn689AUtA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577819; a=rsa-sha256; cv=none; b=hg9an84ErWYQhUvJH+5CiGtw0KmD1waCryu09+3xEiW/WuuK9rBL2FHguXBbxMXmqNHV6l exscShXxKejM+0d9Cri4fMDbm/VwvdddbYfqPpc2hlYZ1/esl/kaTvwmqkOFJo9ueSURl4 dvXU3t6YWs2B2dJS6VSbTskqvKoGaF3XKOCY+6nAKXUo8UZv/jgaG1ANXozdPr9UY3RCB1 516gRirHNLqiVMEvv5ZmJdwiFio1fWv2bTIaaKc012gkVad+8t0VCSA/jpUOTConf3qQnE k2b/v8sHRHgCMm8SGOOSN+xgCishzQmzLmNt6mosTQI9icj7Ymhkc9RDu2doYA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNp6vMDzhHx; Mon, 12 Jun 2023 13:50:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoIaP089303; Mon, 12 Jun 2023 13:50:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoIqF089302; Mon, 12 Jun 2023 13:50:18 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:18 GMT Message-Id: <202306121350.35CDoIqF089302@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: bcb838d17a9b - stable/13 - riscv: Call identify_cpu() earlier for CPU 0 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: bcb838d17a9bfdb156791ce30c64c1b18da188ef Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=bcb838d17a9bfdb156791ce30c64c1b18da188ef commit bcb838d17a9bfdb156791ce30c64c1b18da188ef Author: Mitchell Horne AuthorDate: 2023-05-22 23:50:09 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: Call identify_cpu() earlier for CPU 0 It is advantageous to have knowledge of ISA features as early as possible. For example, the presence of newer virtual memory extensions may be useful to pmap_bootstrap(). To achieve this, split out the printf() parts of identify_cpu() into a separate function, printcpuinfo(). This latter function will be called later in boot after the console has been initialized. Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39810 (cherry picked from commit b0d45b023e8c9af50312c7b56c4be9c39657afcb) --- sys/riscv/include/cpu.h | 1 + sys/riscv/riscv/identcpu.c | 10 ++++++++-- sys/riscv/riscv/machdep.c | 7 ++++++- sys/riscv/riscv/mp_machdep.c | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/sys/riscv/include/cpu.h b/sys/riscv/include/cpu.h index b33e34d350fb..64e93e984a9b 100644 --- a/sys/riscv/include/cpu.h +++ b/sys/riscv/include/cpu.h @@ -90,6 +90,7 @@ void cpu_halt(void) __dead2; void cpu_reset(void) __dead2; void fork_trampoline(void); void identify_cpu(void); +void printcpuinfo(void); static __inline uint64_t get_cyclecount(void) diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index 5ffa038513ae..eedddb266fe7 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -367,6 +367,14 @@ identify_cpu_ids(struct cpu_desc *desc) void identify_cpu(void) +{ + struct cpu_desc *desc = &cpu_desc[PCPU_GET(cpuid)]; + + identify_cpu_ids(desc); +} + +void +printcpuinfo(void) { struct cpu_desc *desc; u_int cpu, hart; @@ -375,8 +383,6 @@ identify_cpu(void) hart = PCPU_GET(hart); desc = &cpu_desc[cpu]; - identify_cpu_ids(desc); - /* Print details for boot CPU or if we want verbose output */ if (cpu == 0 || bootverbose) { /* Summary line. */ diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index 6a910ad6dc1e..d9883e23ce90 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -131,7 +131,7 @@ cpu_startup(void *dummy) { sbi_print_version(); - identify_cpu(); + printcpuinfo(); printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)realmem), ptoa((uintmax_t)realmem) / (1024 * 1024)); @@ -539,6 +539,11 @@ initriscv(struct riscv_bootparams *rvbp) physmem_hardware_regions(mem_regions, mem_regions_sz); #endif + /* + * Identify CPU/ISA features. + */ + identify_cpu(); + /* Do basic tuning, hz etc */ init_param1(); diff --git a/sys/riscv/riscv/mp_machdep.c b/sys/riscv/riscv/mp_machdep.c index 3fb86c5f4c28..dffadd628c46 100644 --- a/sys/riscv/riscv/mp_machdep.c +++ b/sys/riscv/riscv/mp_machdep.c @@ -256,6 +256,7 @@ init_secondary(uint64_t hart) * runtime chip identification. */ identify_cpu(); + printcpuinfo(); /* Enable software interrupts */ riscv_unmask_ipi(); From nobody Mon Jun 12 13:50:20 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNr2Wwhz4cGjR; Mon, 12 Jun 2023 13:50:20 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNr1hXhz47Kv; Mon, 12 Jun 2023 13:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577820; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UauvMBVXCY75n70CFmFfi7ybhV8xSc7FF1h0mcUj4Dg=; b=DPxfoomzjBMwgYQ5L6GZ75dOGth0PV0YpZhmA+UNBrGgu/IvgpGNLxT5oDakWpAsO9HZvA cGcr2CInkaAgq1nmBgS9f6L4X1iyakDFD25WLpSAF4GVe3YELAz7tbcdhOKGLhxSf3X5L2 S+Tuafas+Y2DiUvuR7gXcYAaI8mCjbqGfbfegJyeQdws8fKWw+QuUcV5Ga4zdWyKfgv/MJ WRQpB3EY0pCHOHCiBRZyHLtzkX7slfqsGPoSO/tgPVzzOS53Jwj/yn/I46JQJjA7JAgeUD aUPptsGLFV3yXo47116yOl2+WKLAqu3vGXWZgBPBdEX1ctBx9GU/t4r6tOIQAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577820; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UauvMBVXCY75n70CFmFfi7ybhV8xSc7FF1h0mcUj4Dg=; b=ZlspPEu96QS7GaOfdi0z48FQUkagsYUoTGgQ17/viJFS3fEDA9wimt+A+rBcyF/5oHk/ne Ql9DC8uD8+H7Zm1zraEYxKDds38B1O2FUbBrSf11Sv1ExmuSeAsHi3t12zin1G28mCnDJe BEBLs9XC/8kk/cX5K5h1dzCDQ/kI37ASYg/Wzxelhq5hn230vO4ZhM7YiMYNYREqJcWRg4 pCC9WcVH+dl0cDu23ClGta9geg+j5gl70k7tGhLPtsffwGVETxw4QW6dB58KBGAnwExZZ7 pacnwN+IIpsQ92IvFoGNK64gjRXsiwkPhIKX7RZlUpqEhBUV48tGwInOWbdN9Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577820; a=rsa-sha256; cv=none; b=QFNc1CqDwhmVGE8VzoSKKxWEN21OUBLnDLNAOm4661uPs9J0br56s/GIay8eiks5jdKFZE XTckWQdH4nrGh0SAgEMWCt6C72IhgmVrS/H0vFBLppSdStooBMh3ypUlDZQTs7j3cLrj3O ujQqm8xB/vtMLEsqH40M6PsQhCOGazp40kGMttjl0lKEh93Dea56fhHuHMFEjCf6gULrUx S5o3XTCXSFEZiIDuQxbacVO0kdV+azljVDI3NpxZxZrHkZjkgAvWUzaVLxlyEsrpi6REKA jWmvgE2BYrgJ+jjswlxoOtmYU3qEMeCE8TAHtyBoDGr8g7d5HZYGIsfXjJ47iw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNr0jxFzhwv; Mon, 12 Jun 2023 13:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoKPB089328; Mon, 12 Jun 2023 13:50:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoKOi089327; Mon, 12 Jun 2023 13:50:20 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:20 GMT Message-Id: <202306121350.35CDoKOi089327@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: efb86ba7d3b8 - stable/13 - riscv: Rework CPU identification (second part) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: efb86ba7d3b830cd349195dc237311b9f67a9c2e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=efb86ba7d3b830cd349195dc237311b9f67a9c2e commit efb86ba7d3b830cd349195dc237311b9f67a9c2e Author: Mitchell Horne AuthorDate: 2023-05-22 23:51:44 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: Rework CPU identification (second part) Modify when and how we perform parsing and reporting. Most notably, everything now executes on CPU 0. The de-facto standard way to enumerate CPU features (ISA extensions) on RISC-V is by parsing each CPU's ISA string. We currently obtain this information from the device tree, and in the future will be able to pull it from ACPI tables. Eliminate the SYSINIT from identcpu.c. We still need to walk the /cpus list in the device tree, but now do this one CPU at a time, as a step in the identify_cpu() procedure. This is slightly less error prone, and allows us to parse ISA features for CPU 0 much earlier. Make use of the SMP hooks cpu_mp_start() and cpu_mp_announce() to identify and print secondary CPU info, respectively. This causes secondary processor identification to be printed much earlier in boot; everything is done by SI_SUB_CPU, SI_ORDER_THIRD. Adjust some other printf() calls so that we get enough useful info to debug under bootverbose. Reviewed by: markj (slightly earlier version) MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39811 (cherry picked from commit b37dc0903332c4e3b593f1c92df986e8d367d697) --- sys/riscv/include/cpu.h | 4 +- sys/riscv/riscv/identcpu.c | 127 ++++++++++++++++++++++++++++--------------- sys/riscv/riscv/machdep.c | 4 +- sys/riscv/riscv/mp_machdep.c | 32 ++++++++--- 4 files changed, 111 insertions(+), 56 deletions(-) diff --git a/sys/riscv/include/cpu.h b/sys/riscv/include/cpu.h index 64e93e984a9b..b7d83aa0f25d 100644 --- a/sys/riscv/include/cpu.h +++ b/sys/riscv/include/cpu.h @@ -89,8 +89,8 @@ extern char etext[]; void cpu_halt(void) __dead2; void cpu_reset(void) __dead2; void fork_trampoline(void); -void identify_cpu(void); -void printcpuinfo(void); +void identify_cpu(u_int cpu); +void printcpuinfo(u_int cpu); static __inline uint64_t get_cyclecount(void) diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index eedddb266fe7..8ae3ab8478f3 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #ifdef FDT #include @@ -69,6 +68,7 @@ register_t mimpid; /* The implementation ID */ struct cpu_desc { const char *cpu_mvendor_name; const char *cpu_march_name; + u_int isa_extensions; /* Single-letter extensions. */ }; struct cpu_desc cpu_desc[MAXCPU]; @@ -128,7 +128,7 @@ static const struct { #define ISA_PREFIX_LEN (sizeof(ISA_PREFIX) - 1) static __inline int -parse_ext_s(char *isa, int idx, int len) +parse_ext_s(struct cpu_desc *desc __unused, char *isa, int idx, int len) { /* * Proceed to the next multi-letter extension or the end of the @@ -144,7 +144,7 @@ parse_ext_s(char *isa, int idx, int len) } static __inline int -parse_ext_x(char *isa, int idx, int len) +parse_ext_x(struct cpu_desc *desc __unused, char *isa, int idx, int len) { /* * Proceed to the next multi-letter extension or the end of the @@ -158,7 +158,7 @@ parse_ext_x(char *isa, int idx, int len) } static __inline int -parse_ext_z(char *isa, int idx, int len) +parse_ext_z(struct cpu_desc *desc __unused, char *isa, int idx, int len) { /* * Proceed to the next multi-letter extension or the end of the @@ -196,13 +196,17 @@ parse_ext_version(char *isa, int idx, u_int *majorp __unused, /* * Parse the ISA string, building up the set of HWCAP bits as they are found. */ -static void -parse_riscv_isa(char *isa, int len, u_long *hwcapp) +static int +parse_riscv_isa(struct cpu_desc *desc, char *isa, int len) { - u_long hwcap; int i; - hwcap = 0; + /* Check the string prefix. */ + if (strncmp(isa, ISA_PREFIX, ISA_PREFIX_LEN) != 0) { + printf("%s: Unrecognized ISA string: %s\n", __func__, isa); + return (-1); + } + i = ISA_PREFIX_LEN; while (i < len) { switch(isa[i]) { @@ -214,11 +218,11 @@ parse_riscv_isa(char *isa, int len, u_long *hwcapp) #endif case 'i': case 'm': - hwcap |= HWCAP_ISA_BIT(isa[i]); + desc->isa_extensions |= HWCAP_ISA_BIT(isa[i]); i++; break; case 'g': - hwcap |= HWCAP_ISA_G; + desc->isa_extensions |= HWCAP_ISA_G; i++; break; case 's': @@ -236,20 +240,20 @@ parse_riscv_isa(char *isa, int len, u_long *hwcapp) /* * Supervisor-level extension namespace. */ - i = parse_ext_s(isa, i, len); + i = parse_ext_s(desc, isa, i, len); break; case 'x': /* * Custom extension namespace. For now, we ignore * these. */ - i = parse_ext_x(isa, i, len); + i = parse_ext_x(desc, isa, i, len); break; case 'z': /* * Multi-letter standard extension namespace. */ - i = parse_ext_z(isa, i, len); + i = parse_ext_z(desc, isa, i, len); break; case '_': i++; @@ -263,48 +267,46 @@ parse_riscv_isa(char *isa, int len, u_long *hwcapp) i = parse_ext_version(isa, i, NULL, NULL); } - if (hwcapp != NULL) - *hwcapp = hwcap; + return (0); } #ifdef FDT static void -fill_elf_hwcap(void *dummy __unused) +identify_cpu_features_fdt(u_int cpu, struct cpu_desc *desc) { char isa[1024]; - u_long hwcap; phandle_t node; ssize_t len; + pcell_t reg; + u_int hart; node = OF_finddevice("/cpus"); if (node == -1) { - if (bootverbose) - printf("fill_elf_hwcap: Can't find cpus node\n"); + printf("%s: could not find /cpus node in FDT\n", __func__); return; } + hart = pcpu_find(cpu)->pc_hart; + /* - * Iterate through the CPUs and examine their ISA string. While we - * could assign elf_hwcap to be whatever the boot CPU supports, to - * handle the (unusual) case of running a system with hetergeneous - * ISAs, keep only the extension bits that are common to all harts. + * Locate our current CPU's node in the device-tree, and parse its + * contents to detect supported CPU/ISA features and extensions. */ for (node = OF_child(node); node > 0; node = OF_peer(node)) { /* Skip any non-CPU nodes, such as cpu-map. */ if (!ofw_bus_node_is_compatible(node, "riscv")) continue; + /* Find this CPU */ + if (OF_getencprop(node, "reg", ®, sizeof(reg)) <= 0 || + reg != hart) + continue; + len = OF_getprop(node, "riscv,isa", isa, sizeof(isa)); KASSERT(len <= sizeof(isa), ("ISA string truncated")); if (len == -1) { - if (bootverbose) - printf("fill_elf_hwcap: " - "Can't find riscv,isa property\n"); - return; - } else if (strncmp(isa, ISA_PREFIX, ISA_PREFIX_LEN) != 0) { - if (bootverbose) - printf("fill_elf_hwcap: " - "Unsupported ISA string: %s\n", isa); + printf("%s: could not find 'riscv,isa' property " + "for CPU %d, hart %u\n", __func__, cpu, hart); return; } @@ -314,17 +316,50 @@ fill_elf_hwcap(void *dummy __unused) */ for (int i = 0; i < len; i++) isa[i] = tolower(isa[i]); - parse_riscv_isa(isa, len, &hwcap); + if (parse_riscv_isa(desc, isa, len) != 0) + return; - if (elf_hwcap != 0) - elf_hwcap &= hwcap; - else - elf_hwcap = hwcap; + /* We are done. */ + break; + } + if (node <= 0) { + printf("%s: could not find FDT node for CPU %u, hart %u\n", + __func__, cpu, hart); } } +#endif -SYSINIT(identcpu, SI_SUB_CPU, SI_ORDER_ANY, fill_elf_hwcap, NULL); +static void +identify_cpu_features(u_int cpu, struct cpu_desc *desc) +{ +#ifdef FDT + identify_cpu_features_fdt(cpu, desc); #endif +} + +/* + * Update kernel/user global state based on the feature parsing results, stored + * in desc. + * + * We keep only the subset of values common to all CPUs. + */ +static void +update_global_capabilities(u_int cpu, struct cpu_desc *desc) +{ +#define UPDATE_CAP(t, v) \ + do { \ + if (cpu == 0) { \ + (t) = (v); \ + } else { \ + (t) &= (v); \ + } \ + } while (0) + + /* Update the capabilities exposed to userspace via AT_HWCAP. */ + UPDATE_CAP(elf_hwcap, (u_long)desc->isa_extensions); + +#undef UPDATE_CAP +} static void identify_cpu_ids(struct cpu_desc *desc) @@ -366,22 +401,28 @@ identify_cpu_ids(struct cpu_desc *desc) } void -identify_cpu(void) +identify_cpu(u_int cpu) { - struct cpu_desc *desc = &cpu_desc[PCPU_GET(cpuid)]; + struct cpu_desc *desc = &cpu_desc[cpu]; identify_cpu_ids(desc); + identify_cpu_features(cpu, desc); + + update_global_capabilities(cpu, desc); } void -printcpuinfo(void) +printcpuinfo(u_int cpu) { struct cpu_desc *desc; - u_int cpu, hart; + u_int hart; - cpu = PCPU_GET(cpuid); - hart = PCPU_GET(hart); desc = &cpu_desc[cpu]; + hart = pcpu_find(cpu)->pc_hart; + + /* XXX: check this here so we are guaranteed to have console output. */ + KASSERT(desc->isa_extensions != 0, + ("Empty extension set for CPU %u, did parsing fail?", cpu)); /* Print details for boot CPU or if we want verbose output */ if (cpu == 0 || bootverbose) { diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index d9883e23ce90..cc526b9af9ec 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -131,7 +131,7 @@ cpu_startup(void *dummy) { sbi_print_version(); - printcpuinfo(); + printcpuinfo(0); printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)realmem), ptoa((uintmax_t)realmem) / (1024 * 1024)); @@ -542,7 +542,7 @@ initriscv(struct riscv_bootparams *rvbp) /* * Identify CPU/ISA features. */ - identify_cpu(); + identify_cpu(0); /* Do basic tuning, hz etc */ init_param1(); diff --git a/sys/riscv/riscv/mp_machdep.c b/sys/riscv/riscv/mp_machdep.c index dffadd628c46..9cb2d558d195 100644 --- a/sys/riscv/riscv/mp_machdep.c +++ b/sys/riscv/riscv/mp_machdep.c @@ -250,14 +250,6 @@ init_secondary(uint64_t hart) pcpup->pc_curthread = pcpup->pc_idlethread; schedinit_ap(); - /* - * Identify current CPU. This is necessary to setup - * affinity registers and to provide support for - * runtime chip identification. - */ - identify_cpu(); - printcpuinfo(); - /* Enable software interrupts */ riscv_unmask_ipi(); @@ -286,6 +278,9 @@ init_secondary(uint64_t hart) mtx_unlock_spin(&ap_boot_mtx); + if (bootverbose) + printf("Secondary CPU %u fully online\n", cpuid); + /* Enter the scheduler */ sched_throw(NULL); @@ -497,7 +492,8 @@ cpu_init_fdt(u_int id, phandle_t node, u_int addr_size, pcell_t *reg) naps = atomic_load_int(&aps_started); bootstack = (char *)bootstacks[cpuid] + MP_BOOTSTACK_SIZE; - printf("Starting CPU %u (hart %lx)\n", cpuid, hart); + if (bootverbose) + printf("Starting CPU %u (hart %lx)\n", cpuid, hart); atomic_store_32(&__riscv_boot_ap[hart], 1); /* Wait for the AP to switch to its boot stack. */ @@ -515,6 +511,7 @@ cpu_init_fdt(u_int id, phandle_t node, u_int addr_size, pcell_t *reg) void cpu_mp_start(void) { + u_int cpu; mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); @@ -530,12 +527,29 @@ cpu_mp_start(void) case CPUS_UNKNOWN: break; } + + CPU_FOREACH(cpu) { + /* Already identified. */ + if (cpu == 0) + continue; + + identify_cpu(cpu); + } } /* Introduce rest of cores to the world */ void cpu_mp_announce(void) { + u_int cpu; + + CPU_FOREACH(cpu) { + /* Already announced. */ + if (cpu == 0) + continue; + + printcpuinfo(cpu); + } } void From nobody Mon Jun 12 13:50:21 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNs3crqz4cGt0; Mon, 12 Jun 2023 13:50:21 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNs31smz47Y5; Mon, 12 Jun 2023 13:50:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2xdAsbHCYEwkzUtSs5esgzI6ez5mQpAfrApcFTHHnqY=; b=IPue5zEhL0u5cx2I7bB1GyRqpYvxrXq5xIgGRYPyFDkkrk352MI1hurlrtCF9E5psjEmyQ Bofo0/rMptmrhPdAOTSVLUPuTGX1w/KJDGYiY/nJvJGuuG+j546GRWOwtvHOfdZ68XHJMQ NbEPwGA+OQEOJAiaQePQj+EC1RJQGKr+uk10VtcjsxOO5wen+HmhjF43l1ksy+CSdTx/Oi n3VmYMqqUBEwnYYJc3trq42875R4SMfW0vsJjA1bMKJCH8x/804F6pgBaVYMWeMSLWonkR bDNIldXerVdErQRkaVwQeaeZ97ELydlPp+/TuUo7qYTw9pBocggKtsjGuwLkGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2xdAsbHCYEwkzUtSs5esgzI6ez5mQpAfrApcFTHHnqY=; b=Gm7ZgBFXrPZYlsBHCRgqUxOdSElBy+1X8pFs3GUHg/sm0CT7B71JBlREUbMyZUBv2VqPeq Euoilsg7mugs3FnB6xkG6JYi07Tr0yGl/PHH3gt+OsSwi18sB4lBF6IuZxICdUNDeByiMX z1j3DCjBXV8+uDTqWiPv1qAjam5RLRs6yZ1SOuP82mcC3tjIrWUqyFU+KgA9vWgByPdMTk PeNynkE2nlJvBcMH1Iw+8ylV+Td8M5ehbh8/ZwgT7nnzClKDSjJwOc6ZebDC6XNsUK3GB3 L25wWs3X7DKxL5WxmvsCtKgxIqH8Q4u+Se0LlT/v0QX5pGinlVRZ5GrV/hGEAQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577821; a=rsa-sha256; cv=none; b=bANbrpsy697Vsnbwh3fpoLkw5KDBoa37eC12FuudbPVLqRwQJu3P4BTMYt2dN+5dk3hI7o ukaGSeECZ//aQeS6gyrGFkY1zVJL+ECv60CrbESeasW4u+CtpGoozTGEbOMXQjriTK6H7E YGRLWj1K+9IJ0PdT7qHI1VLJAEiRn9S81BjCfcx5QFZMZsiltHhOlU5w4SudFuvsPH4DA0 QVmQpSvwJyIyP9KV4AggNzz9NujwrtSF1k0/4ywKkOgkU+3a27TP1ZKWLwvDzyKlbQJ8ff M/D7vgFwW5kHf+zWR/X6y2rlS3Z5m4fwvtwlc9VKVJ0ISEWnqPEThQK1tQu+OA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNs1dZYzhj9; Mon, 12 Jun 2023 13:50:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoLpO089365; Mon, 12 Jun 2023 13:50:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoLXA089364; Mon, 12 Jun 2023 13:50:21 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:21 GMT Message-Id: <202306121350.35CDoLXA089364@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: db5bd5ba6bfb - stable/13 - riscv: Print ISA extensions List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: db5bd5ba6bfbd3de408efc0daee0d8ed06e84004 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=db5bd5ba6bfbd3de408efc0daee0d8ed06e84004 commit db5bd5ba6bfbd3de408efc0daee0d8ed06e84004 Author: Mitchell Horne AuthorDate: 2023-05-22 23:52:28 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: Print ISA extensions Report the CPU's single-letter ISA extensions in printcpuinfo(). Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39813 (cherry picked from commit 78a3420c20e075ca8c44a4670ab5ca5afe6bbdf5) --- sys/riscv/riscv/identcpu.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index 8ae3ab8478f3..36f7e4a4940a 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -431,5 +431,12 @@ printcpuinfo(u_int cpu) desc->cpu_mvendor_name, desc->cpu_march_name, hart); printf(" marchid=%#lx, mimpid=%#lx\n", marchid, mimpid); + printf(" ISA: %#b\n", desc->isa_extensions, + "\020" + "\01Atomic" + "\03Compressed" + "\04Double" + "\06Float" + "\15Mult/Div"); } } From nobody Mon Jun 12 13:50:22 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNt4HgRz4cGcx; Mon, 12 Jun 2023 13:50:22 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNt3Xzvz47fP; Mon, 12 Jun 2023 13:50:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2aEYWYhEcX89Os3RwPwqb0lUXclFlW1nKmpId7hQfwY=; b=elGqYQZ/p5Obkdb9kOYsSs7n6RFHuPEk3ifsMZg4vCCBiwDYaWzpE6hLaieNDMcYvq2Cc7 IuqS+8DLW3+f/cVy+CmmNMJGy9CkquFi6Z7iuW1RMAnbMGyX4+wBdwWQ6njCpo/XeITIOh UR+CO4fz6eIdhoS+8sPV6vQzrDpylyGWy2ElRTrjWorw6nRqdeSmZSFabCBmBCu9XT+R7+ uYheQSnJ2h+3NTPhkbzDr0FJ3YeMUGNIDSho7fW28NczDy5OhKtT388UxbE9hqjWKJ073H ZQIGB39cG7V+7XQR7cD/fEZUKn/HghBnr83cdt8PgdLpIFKnXuZYFDcXfA0zyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2aEYWYhEcX89Os3RwPwqb0lUXclFlW1nKmpId7hQfwY=; b=bnOSFtRWxEeEeN0l2HETxOQTgo4JUBE528XiwfgH8NKGRrVcD4IZWAaIPkf0addyakJ0kb AEUKwHvzuHpVpPs8rWayYPRTiwJKDDsb4SfVyHwatf/E3RF88e/kcJlgfzoA5GbTBLMX4f +jbVGpCSwyIdhDxiZMy2yl/FJSkxu3F2I7ij+ks9dGfltTvkU67zGS63ChtHTmh2tsv/8/ DSdFsHcQewKoWC8a56oCbMTcHmnktc9UytkHEo4JitodWpbccnfFv6hAbkLIIvDgvatHQz 2CGFW/HEN9m8zvgWFtf9O1+XVwkbPbPMSG1LwFQ0OBw3vN0/SBtQJB8EP/FddQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577822; a=rsa-sha256; cv=none; b=vRW/Fm6kFTSF08rgZCoLyCyQxp2KkINrQt0yPUiXQY20ZV4xD675W36o8Rl7rbSFoaQTmY 7+ek2fAq+Rno2TpB3wOK9XltHdjTOo6EwlRfp+pDVUsr0eD2e+x7j48UCZ/4ybU4WtbVQp yWszonxjP915chvsHMQ6vCE+iXgY2o1Q1IrIgRhp9FXvbubvCiIRQmce5dp5tFfdS1rXYS jqOC67gK2+XOjwVYq9zmrEUXPEVY9N7kwn2Crumq1KjjmMi+wzmdMRSZ2pgwg8u5yhiNIJ WtIOhnfSXz2EOC22J7ZkgAhfZd4txtmswnErepU7mHm19KFeVzxm0yo3h8+s5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNt2Zgzzhww; Mon, 12 Jun 2023 13:50:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoMHC089389; Mon, 12 Jun 2023 13:50:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoMFL089388; Mon, 12 Jun 2023 13:50:22 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:22 GMT Message-Id: <202306121350.35CDoMFL089388@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: c48ea7b4953e - stable/13 - riscv: MMU detection List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c48ea7b4953e574905ef2351f421cb33d41fa9c2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=c48ea7b4953e574905ef2351f421cb33d41fa9c2 commit c48ea7b4953e574905ef2351f421cb33d41fa9c2 Author: Mitchell Horne AuthorDate: 2023-05-22 23:53:43 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: MMU detection Detect and report the supported MMU for each CPU. Export the capabilities to the rest of the kernel and use it in pmap_bootstrap() to check for Sv48 support. Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39814 (cherry picked from commit 7245ffd10eda4ff604840350943d762f70657983) --- sys/riscv/include/cpu.h | 8 ++++++++ sys/riscv/include/md_var.h | 1 + sys/riscv/riscv/identcpu.c | 30 ++++++++++++++++++++++++++++++ sys/riscv/riscv/pmap.c | 2 +- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/sys/riscv/include/cpu.h b/sys/riscv/include/cpu.h index b7d83aa0f25d..d99142bc3c93 100644 --- a/sys/riscv/include/cpu.h +++ b/sys/riscv/include/cpu.h @@ -83,6 +83,14 @@ /* SiFive marchid values */ #define MARCHID_SIFIVE_U7 MARCHID_COMMERCIAL(7) +/* + * MMU virtual-addressing modes. Support for each level implies the previous, + * so Sv48-enabled systems MUST support Sv39, etc. + */ +#define MMU_SV39 0x1 /* 3-level paging */ +#define MMU_SV48 0x2 /* 4-level paging */ +#define MMU_SV57 0x4 /* 5-level paging */ + extern char btext[]; extern char etext[]; diff --git a/sys/riscv/include/md_var.h b/sys/riscv/include/md_var.h index 890f569782a3..687ab9a3a77e 100644 --- a/sys/riscv/include/md_var.h +++ b/sys/riscv/include/md_var.h @@ -40,6 +40,7 @@ extern u_long elf_hwcap; extern register_t mvendorid; extern register_t marchid; extern register_t mimpid; +extern u_int mmu_caps; struct dumperinfo; struct minidumpstate; diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index 36f7e4a4940a..e1a34983abf7 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -65,10 +65,13 @@ register_t mvendorid; /* The CPU's JEDEC vendor ID */ register_t marchid; /* The architecture ID */ register_t mimpid; /* The implementation ID */ +u_int mmu_caps; + struct cpu_desc { const char *cpu_mvendor_name; const char *cpu_march_name; u_int isa_extensions; /* Single-letter extensions. */ + u_int mmu_caps; }; struct cpu_desc cpu_desc[MAXCPU]; @@ -271,6 +274,20 @@ parse_riscv_isa(struct cpu_desc *desc, char *isa, int len) } #ifdef FDT +static void +parse_mmu_fdt(struct cpu_desc *desc, phandle_t node) +{ + char mmu[16]; + + desc->mmu_caps |= MMU_SV39; + if (OF_getprop(node, "mmu-type", mmu, sizeof(mmu)) > 0) { + if (strcmp(mmu, "riscv,sv48") == 0) + desc->mmu_caps |= MMU_SV48; + else if (strcmp(mmu, "riscv,sv57") == 0) + desc->mmu_caps |= MMU_SV48 | MMU_SV57; + } +} + static void identify_cpu_features_fdt(u_int cpu, struct cpu_desc *desc) { @@ -319,6 +336,9 @@ identify_cpu_features_fdt(u_int cpu, struct cpu_desc *desc) if (parse_riscv_isa(desc, isa, len) != 0) return; + /* Check MMU features. */ + parse_mmu_fdt(desc, node); + /* We are done. */ break; } @@ -358,6 +378,11 @@ update_global_capabilities(u_int cpu, struct cpu_desc *desc) /* Update the capabilities exposed to userspace via AT_HWCAP. */ UPDATE_CAP(elf_hwcap, (u_long)desc->isa_extensions); + /* + * MMU capabilities, e.g. Sv48. + */ + UPDATE_CAP(mmu_caps, desc->mmu_caps); + #undef UPDATE_CAP } @@ -431,6 +456,11 @@ printcpuinfo(u_int cpu) desc->cpu_mvendor_name, desc->cpu_march_name, hart); printf(" marchid=%#lx, mimpid=%#lx\n", marchid, mimpid); + printf(" MMU: %#b\n", desc->mmu_caps, + "\020" + "\01Sv39" + "\02Sv48" + "\03Sv57"); printf(" ISA: %#b\n", desc->isa_extensions, "\020" "\01Atomic" diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c index a6029f5d642d..19071639def1 100644 --- a/sys/riscv/riscv/pmap.c +++ b/sys/riscv/riscv/pmap.c @@ -713,7 +713,7 @@ pmap_bootstrap(vm_offset_t l1pt, vm_paddr_t kernstart, vm_size_t kernlen) mode = 0; TUNABLE_INT_FETCH("vm.pmap.mode", &mode); - if (mode == PMAP_MODE_SV48) { + if (mode == PMAP_MODE_SV48 && (mmu_caps & MMU_SV48) != 0) { /* * Enable SV48 mode: allocate an L0 page and set SV48 mode in * SATP. If the implementation does not provide SV48 mode, From nobody Mon Jun 12 13:50:23 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNw1tx8z4cGd3; Mon, 12 Jun 2023 13:50:24 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNv5FjTz47cS; Mon, 12 Jun 2023 13:50:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TFQtxsmmNVGc984kezxTct+c5IQKqvjJS+46fEJnVUU=; b=GUFn2kbD1h1cj5EsKm0NeX7cjFRnTpiHeRbx2XQp5bO6NdwCnhatYC2AuTb+pBcc3qAg2F FTTx9HwbgHKZI8wS/Jajmlytn90DxQ37O9fdj5z3C0DY0jIndL575QT8ZePKN0M8ZkP531 sLasXfNsexcna5b0og136bEWIZck72UrUExVu40Q6o7DvJEkRLzqAlPEc+FnfjtJaENMaK nQDvJJ/h5dVmyZdqEFJ7Ppvj1iYBkNapGUbKp1Qajw8+b7tpbE+RqJ4XZ/A/6DqVXDRscY eJ57J0FnCd2MHilrrci92jaya0wmNFF6akmmzEQjxSto0AtxtOQwOIpB7AzMBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TFQtxsmmNVGc984kezxTct+c5IQKqvjJS+46fEJnVUU=; b=abwBGcNDO8eBWyGI1EC5znSfK6r3SUBLtKpFn9ONIAxsRS4nApkwmeB+zNfqEnBIIseEnk rH010XXPqcuaCMamvLG9tDA4TN/znhx4EDf563i8BE98knykHs/JZMj7RweXlesla5Wkks zOFlZGxtbob1ni/kEIYRdHZI+RGvP8giZjZO66G5UQpPGHebNVJsCLJFzgn+1UftSv6Uvd 9pKRusPyJ0rfF6f8IHoFQiDdTUqjMR+ojaM0+BKfAVez8VTEONNw+ODw+QhOUDtuEhL49A TNa2oLUJnDM63c1E/FQ7RRaMeqNN/kdocB6+EMEKBD7WMhUy72RNGfQdMqVFmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577823; a=rsa-sha256; cv=none; b=DthCeimXGzXrOf2Mr62If2N5bWv7Nt4hzJH4QkmsxhL8z+nQlvyjp+g8MZ4WLSyg0EFmrR JRgWl0Oy68h7yRvwmSDoF0QUA6U4o0eqPFCAR8n7rAf20f1lBMAIQmgTmQYqz3+pR56v7T vrU22WiSHoE9LPUMMy/DOUv5GGmRdrvdO2cyV+jP1UtZjz/VSxK22tNYfGBej4Genw4icG REJQrDCmqHK5gvH9k2XPc2KaDygUw45rszUzoZPBw7Ew9+dlJ67njXiW3mliic4DmRfeWZ ICDSn2nXsgiS/u5vtV9ec8aSStz0UD0ktIPTJQN7k5iYWe2xEIud+C+0GsScGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNv3FPlzhjB; Mon, 12 Jun 2023 13:50:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoNfX089410; Mon, 12 Jun 2023 13:50:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoN1Y089409; Mon, 12 Jun 2023 13:50:23 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:23 GMT Message-Id: <202306121350.35CDoN1Y089409@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: ad1ed7742f0e - stable/13 - riscv: Print less CPU info List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ad1ed7742f0e5a5059d5acac2901f74b3df7685e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=ad1ed7742f0e5a5059d5acac2901f74b3df7685e commit ad1ed7742f0e5a5059d5acac2901f74b3df7685e Author: Mitchell Horne AuthorDate: 2023-05-22 23:54:36 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: Print less CPU info Change the reporting strategy to more closely follow what arm64 implements: - Always print the one-line CPU summary when a core comes online - Only print the additional fields (e.g. ISA) when they differ from the CPU before it In the common case of identical CPUs this results in informative but non-repetitive output. For example, in QEMU: CPU 0 : Vendor=Unspecified Core=Unknown (Hart 0) marchid=0x80032, mimpid=0x80032 MMU: 0x7 ISA: 0x112d real memory = 8589934592 (8192 MB) avail memory = 8332300288 (7946 MB) FreeBSD/SMP: Multiprocessor System Detected: 6 CPUs CPU 1 : Vendor=Unspecified Core=Unknown (Hart 1) CPU 2 : Vendor=Unspecified Core=Unknown (Hart 2) CPU 3 : Vendor=Unspecified Core=Unknown (Hart 3) Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40024 (cherry picked from commit 940e6d36de1ef010f731e290c9b2b08535fff424) --- sys/riscv/riscv/identcpu.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index e1a34983abf7..dafab6530024 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -449,18 +449,30 @@ printcpuinfo(u_int cpu) KASSERT(desc->isa_extensions != 0, ("Empty extension set for CPU %u, did parsing fail?", cpu)); - /* Print details for boot CPU or if we want verbose output */ - if (cpu == 0 || bootverbose) { - /* Summary line. */ - printf("CPU %-3u: Vendor=%s Core=%s (Hart %u)\n", cpu, - desc->cpu_mvendor_name, desc->cpu_march_name, hart); + /* + * Suppress the output of some fields in the common case of identical + * CPU features. + */ +#define SHOULD_PRINT(_field) \ + (cpu == 0 || desc[0]._field != desc[-1]._field) + /* Always print summary line. */ + printf("CPU %-3u: Vendor=%s Core=%s (Hart %u)\n", cpu, + desc->cpu_mvendor_name, desc->cpu_march_name, hart); + + /* These values are global. */ + if (cpu == 0) printf(" marchid=%#lx, mimpid=%#lx\n", marchid, mimpid); + + if (SHOULD_PRINT(mmu_caps)) { printf(" MMU: %#b\n", desc->mmu_caps, "\020" "\01Sv39" "\02Sv48" "\03Sv57"); + } + + if (SHOULD_PRINT(isa_extensions)) { printf(" ISA: %#b\n", desc->isa_extensions, "\020" "\01Atomic" @@ -469,4 +481,6 @@ printcpuinfo(u_int cpu) "\06Float" "\15Mult/Div"); } + +#undef SHOULD_PRINT } From nobody Mon Jun 12 13:50:24 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNx0V47z4cGlJ; Mon, 12 Jun 2023 13:50:25 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNw5G7Cz47ct; Mon, 12 Jun 2023 13:50:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577824; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bih89TTzTL1Dex8Z8+1+oPVP3uDT7Gl46hGRgJArKww=; b=dHoiNutGImsUJr7vOdysza1+oJ4E3eAGfX0O+hPs3XifnEFoN4GtZPJkq4lNgubuH7yX79 ZwACmzrYeYsl3nqfkLviSVg9QpTEcupqZR/nFKkxCx6/SAfYHJOvr6anwHTgo3UNHnCSRK GSWv23vbxe2YRVj2MZGipjfwUmdm4prFJEksNrlUFPpbKQ2FxRlhgPjtQXRyWVuhz4GfNM zTFrpriFglEKH+Qy1Eoqjbx6TR7f1/LSCAwltmSVY/Z0O7VNQJ7F230VQBFgNhyWHjS5Wl ihtLNsGdUz5x0lwyXCV99GTmvwLUtfSkYQK5nwh6aDGXGthzKC1MSXL+q6M3aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577824; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bih89TTzTL1Dex8Z8+1+oPVP3uDT7Gl46hGRgJArKww=; b=S6s4RMa2nKNdJktG0TNYfKwSOmcWmNpp+G26Axno6mmQNhla1plNy23w3tAE9OyVGFIVsK 4wUvSJDmrTZ+omXY2l7jFPLSQSBKp8zvfiqYDr+Qg37+fYKACM/roU8JbE3aaGt7ZctxHl hVbNllFw2yYMNubs5u6PvNjRL3xcHUJszBcrR7pENsbyGDrfkn1cx3Iqo1hQiwJxYGXV51 ogffNJArN5BHHvjLKIvGhDQoYOZ2Cwpmn+Yszy7tWbaQ5lB9DWoSXwJNDxyvydetVF7rg2 BLuEOQiB4/U78GUbESIPG2K9t5C7yYW8spEiVPHNWrjOKZElkJnZ6PlmnBgnpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577824; a=rsa-sha256; cv=none; b=TZSnYtTA74raNoqFGxbKLzEpJIalpgQCpoQ/TEkpYhxK45+K+4TyWGWbwgVS3uu8BZ8MZb 1AdHgdak2AdrpxYplziXSLVWustiDZpIpSArV9O52RnTB6YDFeECM+PKEHN5bjwaJdyncF VdV/vdcN24QfuSwE0LTBX0+LChhMZmYVQjCHnb//xvLge/esxyRkDf2zI4FQ6+jOl3QScA fuOwE8Fcyo1GUraJpUiIa5kptrA64cHADTqqc9cHulc0MfbzZjWMG/JmVfwDa0R6NNVVl9 USnEjyYeE1CJtW/sPPSCIUVg/pghzc3p+kKeIK4BEH7NSbAAa9Q/ogjGcuewFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNw4BTNzj2s; Mon, 12 Jun 2023 13:50:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoOUC089429; Mon, 12 Jun 2023 13:50:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoOFU089428; Mon, 12 Jun 2023 13:50:24 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:24 GMT Message-Id: <202306121350.35CDoOFU089428@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: 3c236686822b - stable/13 - riscv: S-mode extension parsing List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3c236686822bdf60a322e69f2a6ce0249f2eb8dc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=3c236686822bdf60a322e69f2a6ce0249f2eb8dc commit 3c236686822bdf60a322e69f2a6ce0249f2eb8dc Author: Mitchell Horne AuthorDate: 2023-05-25 17:07:26 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:54 +0000 riscv: S-mode extension parsing There are now several Supervisor-mode extensions that have entered the 'ratified' status, so begin parsing and reporting a few of these. Recognize the following extensions: - Sstc: stimecmp/vstimecmp CSR - Svnapot: NAPOT* translation contiguity - Svpbmt: page-based memory types - Svinval: fine-grained TLB invalidation instructions - Sscofpmf: performance counter overflow *i.e. "naturally aligned power-of-2" page granularity For now, provide globals for Sstc and Sscofpmf, as we will make use of these in the near future. Plus, update the copyright statement after my recent work on this file. Reviewed by: jhb MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40240 (cherry picked from commit 8bebb786820f634d47522711b8cd56a66db3785d) --- sys/riscv/include/md_var.h | 4 ++++ sys/riscv/riscv/identcpu.c | 53 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/sys/riscv/include/md_var.h b/sys/riscv/include/md_var.h index 687ab9a3a77e..9951c838a2e6 100644 --- a/sys/riscv/include/md_var.h +++ b/sys/riscv/include/md_var.h @@ -42,6 +42,10 @@ extern register_t marchid; extern register_t mimpid; extern u_int mmu_caps; +/* Supervisor-mode extension support */ +extern bool has_sstc; +extern bool has_sscofpmf; + struct dumperinfo; struct minidumpstate; diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c index dafab6530024..a9a2542f70b6 100644 --- a/sys/riscv/riscv/identcpu.c +++ b/sys/riscv/riscv/identcpu.c @@ -1,6 +1,10 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause + * * Copyright (c) 2015-2016 Ruslan Bukin * All rights reserved. + * Copyright (c) 2022 Mitchell Horne + * Copyright (c) 2023 The FreeBSD Foundation * * Portions of this software were developed by SRI International and the * University of Cambridge Computer Laboratory under DARPA/AFRL contract @@ -10,6 +14,9 @@ * Computer Laboratory as part of the CTSRD Project, with support from the * UK Higher Education Innovation Fund (HEIF). * + * Portions of this software were developed by Mitchell Horne + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -67,11 +74,21 @@ register_t mimpid; /* The implementation ID */ u_int mmu_caps; +/* Supervisor-mode extension support. */ +bool __read_frequently has_sstc; +bool __read_frequently has_sscofpmf; + struct cpu_desc { const char *cpu_mvendor_name; const char *cpu_march_name; u_int isa_extensions; /* Single-letter extensions. */ u_int mmu_caps; + u_int smode_extensions; +#define SV_SSTC (1 << 0) +#define SV_SVNAPOT (1 << 1) +#define SV_SVPBMT (1 << 2) +#define SV_SVINVAL (1 << 3) +#define SV_SSCOFPMF (1 << 4) }; struct cpu_desc cpu_desc[MAXCPU]; @@ -131,13 +148,29 @@ static const struct { #define ISA_PREFIX_LEN (sizeof(ISA_PREFIX) - 1) static __inline int -parse_ext_s(struct cpu_desc *desc __unused, char *isa, int idx, int len) +parse_ext_s(struct cpu_desc *desc, char *isa, int idx, int len) { +#define CHECK_S_EXT(str, flag) \ + do { \ + if (strncmp(&isa[idx], (str), \ + MIN(strlen(str), len - idx)) == 0) { \ + desc->smode_extensions |= flag; \ + return (idx + strlen(str)); \ + } \ + } while (0) + + /* Check for known/supported extensions. */ + CHECK_S_EXT("sstc", SV_SSTC); + CHECK_S_EXT("svnapot", SV_SVNAPOT); + CHECK_S_EXT("svpbmt", SV_SVPBMT); + CHECK_S_EXT("svinval", SV_SVINVAL); + CHECK_S_EXT("sscofpmf", SV_SSCOFPMF); + +#undef CHECK_S_EXT + /* * Proceed to the next multi-letter extension or the end of the * string. - * - * TODO: parse these once we gain support */ while (isa[idx] != '_' && idx < len) { idx++; @@ -383,6 +416,10 @@ update_global_capabilities(u_int cpu, struct cpu_desc *desc) */ UPDATE_CAP(mmu_caps, desc->mmu_caps); + /* Supervisor-mode extension support. */ + UPDATE_CAP(has_sstc, (desc->smode_extensions & SV_SSTC) != 0); + UPDATE_CAP(has_sscofpmf, (desc->smode_extensions & SV_SSCOFPMF) != 0); + #undef UPDATE_CAP } @@ -482,5 +519,15 @@ printcpuinfo(u_int cpu) "\15Mult/Div"); } + if (SHOULD_PRINT(smode_extensions)) { + printf(" S-mode Extensions: %#b\n", desc->smode_extensions, + "\020" + "\01Sstc" + "\02Svnapot" + "\03Svpbmt" + "\04Svinval" + "\05Sscofpmf"); + } + #undef SHOULD_PRINT } From nobody Mon Jun 12 13:50:25 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QftNy0gBPz4cGgL; Mon, 12 Jun 2023 13:50:26 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QftNx73Fjz47dP; Mon, 12 Jun 2023 13:50:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=54H/QY6PTpFGIEqvBjZZ1QyXqeL9G8Hb1Y/v14l2uR0=; b=BwHWB2TPraCScftAWb33LJ2S8cl4QQcMTpfeUyerHcE8+NB7DY54gpWsEqDED3xByRjEJg d0TUs8Oqn7fJC4auIiZVIw+Z/IFhKN/Oh2tGVrDxV2kGg8aGXfROwXigB9iPZ8IZrxe7CY iOxZdowl6uwzmWGkmafaQdUs6NfajovBIbp2UnrFKG/b5cMFNCLQx8arAeo0SIHLdAN9wx j3f7I4Op5RDid7aUDM/9HgOJFJ4O467afkch/wfOAr6OsQ3cYLnx5NiHn1/R1hYJY4zjRY o49qbZKSvbhG69zZnNmR2YXRGTcxMUcFk8q+xHknNUT52EWk3rtfES/lJA3fhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686577826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=54H/QY6PTpFGIEqvBjZZ1QyXqeL9G8Hb1Y/v14l2uR0=; b=KjGYIHQ+7+pEhPSeAkLvAmXt6BhlFQlvGOF0arf1uVHJUhaQin0HngI56/x9DPbDIcZ5ON dtSN6em6Uqmr5R0Zyn8qY166kO2t4I5hDW306bPSNuGgNL/skgfA4yAX+3LgFaCCiYEQ/h Sd/fvl6TlOE0WVjTSMLWHhXHRhxWTqQ8txng4Hktn2I3CrRuAYLFasnRn8dfI9x68JVENt iyx3Q/Y8bD3vjJ5eiZXA/0CnEPwpMXVlskJTs/9b9Id6V+XcWLcFvioiZmYCEfGib00fI0 NBLKrjjSx1eIsoasBZP/O35QVoUPfnesPb96FdENXHckTB60R9xcn5NG9dxSgQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686577826; a=rsa-sha256; cv=none; b=UZIhWCFtucjpvA4MmPCzV5OqOwbnT+POL9VdV5FFOxEBomQIHjhdIAFHDtvseYQl8xc+La 7khiQOmF1neeRI+LJ/UANW3VcsE2Afr7bOpVwcfoCaOMvHE7PFjIxvvJb9jBNYwdc9C387 d/2CmtmnyKJsclWkQ0t+vfKKZ0TpFCGzq/DybjZbuEiaggC3Tir8oVrT5oxw2lwKcrMGTB Xay/I4pOHm8eqwJqhdVyNvX/vrb7PbFOO6MS35FTiC+CTeCzBT8v3ewTXG1xaH819zda+3 SMTIiQs6MQt6ad3GNCdrI3xBZ58iemTsqtk2yRBVkPZSK3sTVak1GKqX3qdTdg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QftNx5L2yzj2t; Mon, 12 Jun 2023 13:50:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CDoPqu089448; Mon, 12 Jun 2023 13:50:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CDoPhk089447; Mon, 12 Jun 2023 13:50:25 GMT (envelope-from git) Date: Mon, 12 Jun 2023 13:50:25 GMT Message-Id: <202306121350.35CDoPhk089447@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: 9834e0f2767a - stable/13 - riscv timer: use stimecmp CSR when available List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9834e0f2767a27d237e6820ecd67b24e65323ece Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=9834e0f2767a27d237e6820ecd67b24e65323ece commit 9834e0f2767a27d237e6820ecd67b24e65323ece Author: Mitchell Horne AuthorDate: 2023-05-25 17:07:49 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 13:49:55 +0000 riscv timer: use stimecmp CSR when available The Sstc extension defines a new stimecmp CSR, allowing supervisor software to set the timer, rather than just read it. When supported, using this avoids the frequent trips through the SBI every time the CPU's timer expires. Reviewed by: jhb MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40241 (cherry picked from commit cadaabcc720bb20d6d604c4792acb29072d2882d) --- sys/riscv/riscv/timer.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sys/riscv/riscv/timer.c b/sys/riscv/riscv/timer.c index 9c333b42059e..1df8fb246309 100644 --- a/sys/riscv/riscv/timer.c +++ b/sys/riscv/riscv/timer.c @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -84,6 +85,16 @@ get_timecount(void) return (rdtime()); } +static inline void +set_timecmp(uint64_t timecmp) +{ + + if (has_sstc) + csr_write(stimecmp, timecmp); + else + sbi_set_timer(timecmp); +} + static u_int riscv_timer_tc_get_timecount(struct timecounter *tc __unused) { @@ -107,7 +118,7 @@ riscv_timer_et_start(struct eventtimer *et, sbintime_t first, sbintime_t period) if (first != 0) { counts = ((uint32_t)et->et_frequency * first) >> 32; - sbi_set_timer(get_timecount() + counts); + set_timecmp(get_timecount() + counts); csr_set(sie, SIE_STIE); return (0); From nobody Mon Jun 12 14:33:48 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfvM11q5mz4cQvw; Mon, 12 Jun 2023 14:33:49 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfvM11HNjz4Hpl; Mon, 12 Jun 2023 14:33:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686580429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yiYfXgm5JxSalhLfopcSRSjxqedPlisyWAUzfgE7VII=; b=tSgRnncPB/Efi5nHYmsAEKO1TNuvI2pFP/+xQb03PJXZYxXWP0/i3xDSwxqXlO0PXtphsh iC7eceDognrTrZrpGTAGJ+W+hg/FM2zQuDAwmw0VpmNS4PTyK7D8ShrC3qsiO0j61K7VtC 3QDBanVbNItG8MGh0YrlUnPX4lDkc1DeoAKiQWzvhpM+VQOsb8WOKwN8zruKb8tNmls1Xy q2ay/3nHbQ+Ad1DLmB/ol1ur7vBoygaiVouMqlEGKRT78pk2BLXSl1HMLLlMVXP2ftuCnz OcyeZoY+aJhfL7gJNRdTSJnovDRFj1VORVt4G6+cfzadQ4aGMtAELnRbeOQnkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686580429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yiYfXgm5JxSalhLfopcSRSjxqedPlisyWAUzfgE7VII=; b=tTq+zdjb+J9fLGRXunAawReM2RKdPnxIamGpKhDM3GFTuSsMI36+sCMqh7AYX1x4tHrf8w SIyTNpXIgUtMY3FmcIwpWlNjmR+pmy74JOAl1kpUaUevxTNOHFevlEXr7+XgzOXg8sNu/m nUUvUiHXfVbfL0/rPJ0n3WYeng6zAYBe72rEzqHt7MTvr/KVwOzMJCmLNZaYrfHFe+Sf7w LfLAMbKYA53ZdggK89STJLwmWOgNtnYOSGLomgcwyj41Vxj1JpPLQKudjS+vfAFhQRvgA7 6ugeBD0ci+Zx91szxE1uzVROWEQiV5ij/EJmzT7lfB5L5kFnFgYcmwOj2isX5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686580429; a=rsa-sha256; cv=none; b=I7vjyE4uHrQI7hM5Ya/tmNeQtb+K7NP8vtVOrgwgQLquXxbaWpwzFv9MaEh83jKPSokWLQ 7fmaH+XjuFgipYdsOtNbp/bDbNxTxDj0EeCjziUTxRLJwx7KBdH1knin5ot48tPrHEH0sw LUE4W2aliwNh3s7AFPgxUTxIY2063kRTn13Q04wP3Scl7o6gZScZ1wsei4jok3f1br+Diu 9wqjLvu5JRs8pm0U8W8OW2v/vxcVcEmXQojLSJEgi6dukx+luqh2UXkHf17PXfT+qQvGkY Zxackoiq8tQb97nVCM45ZDhWeSAg19GuO3Z7aR5mYMt6Pdn2tGf4/Hy+ienFxw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfvM10MHSzk7b; Mon, 12 Jun 2023 14:33:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CEXm3K062718; Mon, 12 Jun 2023 14:33:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CEXmGO062717; Mon, 12 Jun 2023 14:33:48 GMT (envelope-from git) Date: Mon, 12 Jun 2023 14:33:48 GMT Message-Id: <202306121433.35CEXmGO062717@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 3ed646d89aa4 - main - fix qcom_cpu_kpssv2 compile on ASUS_AC1300 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3ed646d89aa4a312ceb1bdcb948f91903860f8f0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3ed646d89aa4a312ceb1bdcb948f91903860f8f0 commit 3ed646d89aa4a312ceb1bdcb948f91903860f8f0 Author: Mina Galić AuthorDate: 2023-06-11 21:12:59 +0000 Commit: Warner Losh CommitDate: 2023-06-12 14:30:15 +0000 fix qcom_cpu_kpssv2 compile on ASUS_AC1300 Complete afdb42987ca8 by changing the return type from boolean_t to bool for the definition for qcom_cpu_kpssv2_regulator_start. PR: 271932 Fixes: afdb42987ca82869eeaecf6dc25c2b6fb7b8370e Pull Request: https://github.com/freebsd/freebsd-src/pull/776 --- sys/arm/qualcomm/qcom_cpu_kpssv2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm/qualcomm/qcom_cpu_kpssv2.c b/sys/arm/qualcomm/qcom_cpu_kpssv2.c index afa211a47949..dc3c8c2a7533 100644 --- a/sys/arm/qualcomm/qcom_cpu_kpssv2.c +++ b/sys/arm/qualcomm/qcom_cpu_kpssv2.c @@ -72,7 +72,7 @@ loop_delay(int usec) * This is the KPSSv2 (eg IPQ4018) regulator path for CPU * and shared L2 cache power-on. */ -boolean_t +bool qcom_cpu_kpssv2_regulator_start(u_int id, phandle_t node) { phandle_t acc_phandle, l2_phandle, saw_phandle; From nobody Mon Jun 12 14:37:55 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfvRm13kRz4cS1s; Mon, 12 Jun 2023 14:37:56 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfvRm0Wqwz4JHw; Mon, 12 Jun 2023 14:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686580676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s/8xdnwHn3aUuRHd30WCvIyoOZW2/xrjUQW6EC0UD80=; b=FTJP4Q9Aq0ssPwTTOd9UIFSI3FHQ/y2W6ZgwB/b2ocWlxVlTZLzJ9Fm8J6HOHlu8yd0Iv8 uNhtoWKZ61W6a7shjUpc2nRqaT0e9jpgVyQv6ODdb56CCVVGGgWESk8a7SK11IYdmcR+MA KH3Gmv9Wt9k9PeO/CvmCrQt32PVNc27PD/14zfZSk7ADQQpWqYYxEfLsrIOOXNVwG0j7ex dLCwL7X21V07fwGSGyQPy/jNZVItpbFk0Z6aUrFXwtEgsWXPNjhMVTBzrlThMS91nD1Yk4 MeNo4a9UE8qBzzHdgnPWsRZ1ngv2gFOp/itcIzMsP2pGCZQimnoJfCeVmZmsNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686580676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s/8xdnwHn3aUuRHd30WCvIyoOZW2/xrjUQW6EC0UD80=; b=OwPDymkdT4CBgiVcDyhRQMeP5YGDGBedo3blkNU6PPLu/Q/KERY6KsZgrG4K+1+Uh/8dfg hVmj2YLv7OyALonAlupLfwTMDOfk6oUL2MaDV4pi+O9aZ0QUvuau8uYnxMG+kmt71oDmQS 920y7gDvL5c/qhi+VHLQ+suQpbYmPlP9Pg/eXCBUy9MoOWhbsb8piNgxsqNpdSTJJ7PsqS a30i3e5DzULxVy1OLpUFMiOyF+okj81v/yH7V4amPAOQLZPrrmOEE/aJ6ByGihLoVb9911 AcQCyRvXS3AxsMq0JoGwwiiqdu5XBf/IAIpAnos9Fjj+ae7qMz7/WvMe3u7Wxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686580676; a=rsa-sha256; cv=none; b=KouIwh6iWwRXfuKgCq9PeDHSutrLwJbHvv3+NuLpJwz0AzLkYv/B3i+we9t3lDwfI9oxDC EkLYrebd0J6SUWSc8/pjyJC/olcGTzd1sJoWLwSXZC9w7cJCNM7Y6U55hKSmgV6gJgLjpK 00WXvWNoMRpLJNWixhWnastKkezawosv0xB7MVvhq1S8MqBDBzcT0GJJLtOnmEYWuC5u5S /5WSReRSFMyXlKZyr0ezYbUoDl52f7thYMoAgQ4RROcrtcgwAOeeh5xbIzuRA0f8Z64PrP U8a+UzgrfeEc0KZWuaEwLTuxAeGqe72lhz83TnRUodIf4moOMTafujFNRMa7ew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfvRl6ZnDzk3S; Mon, 12 Jun 2023 14:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CEbtps063346; Mon, 12 Jun 2023 14:37:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CEbtOi063345; Mon, 12 Jun 2023 14:37:55 GMT (envelope-from git) Date: Mon, 12 Jun 2023 14:37:55 GMT Message-Id: <202306121437.35CEbtOi063345@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: c9a1abe79b82 - main - mount_nullfs(8): refer to nullfs(5) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c9a1abe79b826c28c52e42f3f3604d2e4fb96b1a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=c9a1abe79b826c28c52e42f3f3604d2e4fb96b1a commit c9a1abe79b826c28c52e42f3f3604d2e4fb96b1a Author: Tom Hukins AuthorDate: 2023-06-12 14:35:32 +0000 Commit: Warner Losh CommitDate: 2023-06-12 14:35:36 +0000 mount_nullfs(8): refer to nullfs(5) Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/772 --- sbin/mount_nullfs/mount_nullfs.8 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbin/mount_nullfs/mount_nullfs.8 b/sbin/mount_nullfs/mount_nullfs.8 index 2b5d1672e130..31a966a3a3e4 100644 --- a/sbin/mount_nullfs/mount_nullfs.8 +++ b/sbin/mount_nullfs/mount_nullfs.8 @@ -33,7 +33,7 @@ .\" @(#)mount_null.8 8.6 (Berkeley) 5/1/95 .\" $FreeBSD$ .\" -.Dd December 19, 2022 +.Dd June 11, 2023 .Dt MOUNT_NULLFS 8 .Os .Sh NAME @@ -48,7 +48,8 @@ The .Nm utility creates a -null layer, duplicating a sub-tree of the file system +.Xr nullfs 5 +layer, duplicating a sub-tree of the file system name space under another part of the global file system namespace. This allows existing files and directories to be accessed using a different pathname. @@ -253,6 +254,7 @@ is that vnode arguments must be manually mapped. .\" .\" .Sh SEE ALSO +.Xr nullfs 5 , .Xr mount 8 .Pp UCLA Technical Report CSD-910056, From nobody Mon Jun 12 14:42:36 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfvY90Bf5z4cTJH; Mon, 12 Jun 2023 14:42:37 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfvY86m0nz4K5P; Mon, 12 Jun 2023 14:42:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686580956; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WJv4cGUZSwVTxzZtzsbT9CS5TFQ6CgdRfe3Ot7LKkzk=; b=QeLeQlR9POtVYvbBejksCVon4ZsCuyGbDsanfiYkiIVLQCexijHkQmS5lNp1LclSvW4Pie BgvJKD9LB4JKzgOV684pQ/Ihg72aB5IqwNZKVzaDmgtBD67tFbmXwgPIMJ8PaJW6J0H6Qo MwoWwkI5eonMM3HEk3cUKQaw3uLUv6mrgqWXxsF9VDY82wgDI10OM27iP6EDJ1st1pWgdu C4e4C0LbA1UXvGgms7A/KMTyhkordXQHM1qPTxwH+jXstq1ZezPs5mth9pfoGT/lpNCMCX YV5wpMOTl/0H7C71A/sTXdYPDn8wve2BkTS7ZB5e57FkoHzfPHI+ip3JDR+bew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686580956; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WJv4cGUZSwVTxzZtzsbT9CS5TFQ6CgdRfe3Ot7LKkzk=; b=mUk7xCbD/MzIfvCWGnMmOthG7epv2pr9qLFVeZ3qb5R3+WQKoH0oY9EAx4RSI/3zQTFqpa iq0uB2p4BMM7nSFKy+21QW3tmbn8wTXTwKYhaBqPMAt7PqgQz7yFgxUlIBqpBRtF1IoN8d 6ShJ/krhFuwz4/s0xW+Q4LSO2w7es0svMbf3ylkEFPzAJ9GtsQAnVl5E5MKV6ekxV4NRJ7 h2GEpunayaPoaxBKHNeLLlX5vxFH5bcX2EVx6E5UGCk+PZ86voO7no1s3yg7yRts62+WAd MqS2IUW3SXb7YvOgJeNMLv2yBhZrjgN5/+JvI7OvRycSBFdEitIIMuiwaMYMgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686580956; a=rsa-sha256; cv=none; b=METFsPB/O2DvRvHx1M7FlHS9OOPem1NH+CqlM7jvnW2NLWtn13cLLLmiqiteThvLryHZ1p xHnBPgUhC0wD8wO/VBJTt6FRF6e24lx/zyEvtWDx/BQ0NFj7QR2DOmBhJymOO6Peisx7LO hEzOnotqwKCOvlCkiz/3FTxAkSzwsPwWt9Vyc2CRr68AmcQY4Kv9bjsnm33ekytI1QJQRP C2Cw8+PD5ZfgTdDStIGLJSiUTxf+e79k9M9qjnS9DLN6jn1cqUeHOkysKatpV49dPlL66Y nQDCeCFh2SD3KvHr1JRHZ5+RjSKxANrNAP2nryacydjDS4nmB0jTvcAZLrPENw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfvY85p4Lzjy6; Mon, 12 Jun 2023 14:42:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CEganZ078870; Mon, 12 Jun 2023 14:42:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CEgafN078869; Mon, 12 Jun 2023 14:42:36 GMT (envelope-from git) Date: Mon, 12 Jun 2023 14:42:36 GMT Message-Id: <202306121442.35CEgafN078869@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: a8c1c0b727ef - main - Add boot1.efi to CLEANFILES List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a8c1c0b727ef76308ef10b492fa6c25188493f00 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=a8c1c0b727ef76308ef10b492fa6c25188493f00 commit a8c1c0b727ef76308ef10b492fa6c25188493f00 Author: VexedUXR AuthorDate: 2023-06-12 14:41:19 +0000 Commit: Warner Losh CommitDate: 2023-06-12 14:41:22 +0000 Add boot1.efi to CLEANFILES Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/775 --- stand/efi/boot1/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stand/efi/boot1/Makefile b/stand/efi/boot1/Makefile index b4d1a1ed085e..9ae86b36989e 100644 --- a/stand/efi/boot1/Makefile +++ b/stand/efi/boot1/Makefile @@ -90,6 +90,8 @@ LDADD+= ${LIBEFI} ${LIBSA} DPADD+= ${LDSCRIPT} +CLEANFILES+= ${BOOT1}.efi + ${BOOT1}.efi: ${PROG} if ${NM} ${.ALLSRC} | grep ' U '; then \ echo "Undefined symbols in ${.ALLSRC}"; \ From nobody Mon Jun 12 14:49:40 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfvjJ6pqmz4cWJ4; Mon, 12 Jun 2023 14:49:40 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfvjJ6Pzyz4LGY; Mon, 12 Jun 2023 14:49:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686581380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9pP08RmGKTFgku+M2uwayt+LoEAuw3G1dZWH58J2KxI=; b=tkikRESueOKWib3Lo2hfkB/f9QwxQdjOBhX+CNGxdDOw9sMqj8i5L5zGu2KkCkuXbZNQ/g lou9YEye6q9x33Xm8KiulSiL88w57IFR/km3Pk4W5m3KgG7D0bzUKcc6PsZdWPoiDKSID2 N4zRwl6s4lWdUSMaHLH6oosmDydcVDHnPcNXObIOfDZdEPyvjekbiKDmqn8+jQmSHEZVx6 zqnk9QtfwGQakdsIV7nFA0gY1Sg75WOi3nxSGFkspZkNDuly3J6ch3Tmfiz8d0LHyuC0ZE yZW6Q71P5/Oq3eZ8aQFvpAQmbXG5aSkt7CljEj7Nr9wXdLGPQBuv0PL/TT69rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686581380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9pP08RmGKTFgku+M2uwayt+LoEAuw3G1dZWH58J2KxI=; b=sgPMN1NWHE2o/PY2IMbAUsUan3b63vUmVay1Uc3xd2YwJrv8XLPVE6at+DTegrcDn0KhNr uk2ctgi3SDI9nEzjvuji84c9sCU/J+flYXV7x7VZtCBISTIc8+dywEdfId47UouFge/z7Q HwW161NCNY6z32MyJPEWkmwKn2gpPxZMfvz1R/Iw4/rQ/nk20m7z2G3boYMrUZetW5/YC4 XnZLXZvE7V3FpvMzSeiDRnz3mEXCQmrt5MgEGvcdz0sGXetnwkna9yihZYYi2CewFjIRUu M+oz4ocDWGvxaEDiGuwkBj3C5VLKiQs1oJSKbUQW4EseWvL9yJ8LoeSvMEhHVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686581380; a=rsa-sha256; cv=none; b=Jj932smbvfBR8EoZ0bf8fKvty4D4Lyxl4WzKa+69kW4uAVKo/BgIyM9sqTRaY8+HP5V2q1 CYLQ4oDp7NzxN7/OlDZhjFraIMKGxVSYC6q/T1qmm+b1RJRsPr7QzVygi4+gi1L0XGuK7m CQKvnnjRdCpZ4mKwLWCtVQPAtedh+xlz1RiTejY2/VrRXbAFxnonhmMihe2T60TD3hgPJQ tpyYArptsLacyANHUxPkgoEdbayoah4VdeKcCYX9HPOZoKNddijYuuCSYeBlkPDAtpn+hV 3vY45VtWqNXrgRdp01BdxCx1x7ktwB396jkZ0ip7FaH3jK9Kv30I+Xm0DzXeVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfvjJ5Sm0zkY9; Mon, 12 Jun 2023 14:49:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CEneJj079984; Mon, 12 Jun 2023 14:49:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CEnegR079983; Mon, 12 Jun 2023 14:49:40 GMT (envelope-from git) Date: Mon, 12 Jun 2023 14:49:40 GMT Message-Id: <202306121449.35CEnegR079983@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 6016aedba1e3 - main - uipc_syscalls: removed unnecessary check in accept1() function List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6016aedba1e3701c7c12459effe55e84d7a18b1e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=6016aedba1e3701c7c12459effe55e84d7a18b1e commit 6016aedba1e3701c7c12459effe55e84d7a18b1e Author: Dmitriy Alexandrov AuthorDate: 2023-06-12 14:44:08 +0000 Commit: Warner Losh CommitDate: 2023-06-12 14:49:13 +0000 uipc_syscalls: removed unnecessary check in accept1() function Signed-off-by: Dmitriy Alexandrov Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/773 --- sys/kern/uipc_syscalls.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 496e93d76bb0..0d3581eacca9 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -298,15 +298,13 @@ accept1(struct thread *td, int s, struct sockaddr *uname, socklen_t *anamelen, if (error != 0) return (error); - if (error == 0 && uname != NULL) { #ifdef COMPAT_OLDSOCK - if (SV_PROC_FLAG(td->td_proc, SV_AOUT) && - (flags & ACCEPT4_COMPAT) != 0) - ((struct osockaddr *)name)->sa_family = - name->sa_family; + if (SV_PROC_FLAG(td->td_proc, SV_AOUT) && + (flags & ACCEPT4_COMPAT) != 0) + ((struct osockaddr *)name)->sa_family = + name->sa_family; #endif - error = copyout(name, uname, namelen); - } + error = copyout(name, uname, namelen); if (error == 0) error = copyout(&namelen, anamelen, sizeof(namelen)); From nobody Mon Jun 12 14:57:53 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfvtp1RPRz4cYV7; Mon, 12 Jun 2023 14:57:54 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfvtp11gMz4N6V; Mon, 12 Jun 2023 14:57:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686581874; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bcK9PicuEnPnrTGq9CQMyuKH9t/7+d40bAl4WfCeX98=; b=T1FEEM2DP9lY1X4lYzxLkI7FZkVJAp6NHJE/jqDpI7rSiWT80Pg7tkdhwLC5pOtpJ0L/GA 8WhkwBD/C/RF9lwCBXeznNsWDDcoXKJ1pg2Iy9ORa29p2ewDfV8/Q3Nuol4lBfE828XpsE gdxA52v/NeSGXkHRA3IhuuhDYyQ3G6/xDR682ppSV3y0zyXQg+578y13j2JzturIB4vaPX Cqk5QX7oa/qmQi/pv89IfSxSPq+XY0QG7Eg6msfByLd1PKrkF/U43zF/N6PiJm4U/K2KT3 5kF0yI1/YA5OwyxmvbtGdfxyXxrqtnNCfomKkoX5+P6vPH0yTBnvPg2ocuf0sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686581874; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bcK9PicuEnPnrTGq9CQMyuKH9t/7+d40bAl4WfCeX98=; b=xVw7uYnj/8ksvo1QdXcBA1iAnuAJa5/8KCXMnpjilsfyhqHZ9+gZoxus+PYrn+C6Ub594T OKHBjZC3yHZEh9j5YQUrmkVXLwU7uxsHKrpJIaxZYGPbriBgermSzCb0Z0LorMF4wUnldA v8D5TrejE5KUnBA8t8n35DoJonYV7lS2zMX3F51CLsdGHRlWNc0YRJ9K2X3mTbQF7Sf8TN qzLbJbCmhV4bbAvdm9ZD7W1lVWKMtaG6w9GV3L7DDufeptTY347lXHRlQRht22sa2y53VQ Jh4ksot13h6t3+c1aMqwhKOe2Ch5tLqO72fA/eUWn8aP+AR6DufZZYOesWaoXQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686581874; a=rsa-sha256; cv=none; b=xC++9xJ7b87D7nfgfWqJMQHuaqIAUESJxlpwFZQe5H1V9ulJjs+7KcWGsjB74O+7jwTdEc aye+nBioWBVwg7SFeH5T3Cz+Uc6zys7hGxXzj8D3yvnwF2QC9qPp6Kkx7gtphc93mGQ8Sx zgYTXn4PYBSFr7mCJEKAxUdpT/WSWekGIBqOC9g2ehxbqKJgCfWNLgp+Gat7qTF8nU00ky aYttb3sA/I3SypIPtq6IjCeqiVhGqWUDAahnm+dxhv9M07WpJJNrwObPhKi9tGuqVS03NJ rbyoI06u2U1GDbsHWCt2/RqXppyKb8gS6CoXgzBhXY+DyxLjxOxD93v90ULMtg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfvtp06mDzkpM; Mon, 12 Jun 2023 14:57:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CEvrHA095935; Mon, 12 Jun 2023 14:57:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CEvrfu095934; Mon, 12 Jun 2023 14:57:53 GMT (envelope-from git) Date: Mon, 12 Jun 2023 14:57:53 GMT Message-Id: <202306121457.35CEvrfu095934@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 6f6213ec90e1 - main - Add comments for memory size List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6f6213ec90e1b5c488cde38f86b4eef09c70c00c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=6f6213ec90e1b5c488cde38f86b4eef09c70c00c commit 6f6213ec90e1b5c488cde38f86b4eef09c70c00c Author: VexedUXR <58701572+VexedUXR@users.noreply.github.com> AuthorDate: 2023-06-12 14:57:02 +0000 Commit: Warner Losh CommitDate: 2023-06-12 14:57:20 +0000 Add comments for memory size Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/753 --- stand/efi/loader/arch/amd64/elf64_freebsd.c | 2 +- stand/kboot/arch/amd64/elf64_freebsd.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/stand/efi/loader/arch/amd64/elf64_freebsd.c b/stand/efi/loader/arch/amd64/elf64_freebsd.c index 290d1c4696da..0ed9d2d78ffd 100644 --- a/stand/efi/loader/arch/amd64/elf64_freebsd.c +++ b/stand/efi/loader/arch/amd64/elf64_freebsd.c @@ -169,7 +169,7 @@ elf64_exec(struct preloaded_file *fp) trampoline = (void *)trampcode; if (copy_staging == COPY_STAGING_ENABLE) { - PT4 = (pml4_entry_t *)0x0000000040000000; + PT4 = (pml4_entry_t *)0x0000000040000000; /* 1G */ err = BS->AllocatePages(AllocateMaxAddress, EfiLoaderData, 3, (EFI_PHYSICAL_ADDRESS *)&PT4); if (EFI_ERROR(err)) { diff --git a/stand/kboot/arch/amd64/elf64_freebsd.c b/stand/kboot/arch/amd64/elf64_freebsd.c index c3ed842a2abd..c25a22f504f8 100644 --- a/stand/kboot/arch/amd64/elf64_freebsd.c +++ b/stand/kboot/arch/amd64/elf64_freebsd.c @@ -238,7 +238,7 @@ elf64_exec(struct preloaded_file *fp) #ifdef EFI if (copy_staging == COPY_STAGING_ENABLE) { - PT4 = (pml4_entry_t *)0x0000000040000000; + PT4 = (pml4_entry_t *)0x0000000040000000; /* 1G */ err = BS->AllocatePages(AllocateMaxAddress, EfiLoaderData, 3, (EFI_PHYSICAL_ADDRESS *)&PT4); if (EFI_ERROR(err)) { From nobody Mon Jun 12 16:08:42 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfxSW1j4bz4cx4V; Mon, 12 Jun 2023 16:08:43 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfxSW1Gw2z4bCP; Mon, 12 Jun 2023 16:08:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686586123; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YYpq13AFazV/tXi+G0JDQZ16iY0XMfxE3neQuUYbSyc=; b=E2GEy1FLC+f72WMLENNtaquMRjbnzTDlsYouaEyTLO+avMjmrYVvf6kWl7TVZp4qkyovzI H6iBms+rnT+spVivtsYWkEND4XpFx6c5UxEBZnqL3C6/ySO+RE88feZ7Gy6iL3W+xPhrC0 FFJSggyNMgBwsTIMN7SYm5EXl5HU+KOkCBLByFtSFIaqkNAY+xNhkE757jjEugMYWicbdP M+qsAr/prX58Nd47Lfh7fa9RXJo8o/fbxR0pjvcZSBQkDRpBWp5qA1soWBVRmypiTS+mI0 qbcIV5wlm3Kh6qzePFw6g4rOSjZEswDnwuPevjUxbOzyyNPWLbEyo39ysZzScQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686586123; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YYpq13AFazV/tXi+G0JDQZ16iY0XMfxE3neQuUYbSyc=; b=a9Ue5jEipAHFCJR4THGpfeSd0LFaTa45Obess2ZEhMCfr19ENvzFuBbv6f2dAMRdM4kHFw sbuS4niHHvQd9U9V+LODS38uCbgmQxgZm2xUB1Wu7ovcnRb/ZYmrrMxsk7Qb2gsmlye9V6 G6KvQsu8P4KCkU2exX8FRPKA6SDBWG7D4ZBcH/ZFzTaIJXfZolxTdRG99e0kkgPA09Lb8k BssGujsdzC9aBmGAaU3vzTqBhcvb1k+eT+AMuKgHUhVBPCBvpW+OQ7yR4eYoJaDs/tjeV1 k1uVBC2NEGCeTtBzr9oaOhLmhMwajmVCKjMLeSrPjb+hbPx580e1zT/qRhDm8g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686586123; a=rsa-sha256; cv=none; b=r6MClAW9FH4gQxhEov9AJVtG6Q3PyUdy/8C68URUqbElDBQg0qMrlpqGwMbFoOYPMENUIq QRCCe7q8WuSzvUsyO8v66TE9cW2nInT5joYDGBGqz1SKSNTmyPy48QmEmOAu3zYhwiWc9t 5QbUFHebgBTXMqEl9X4PuvHlXtIBu/7lPuEQydA+AlHnFM/icadWl12hHK3dBnAicPj0Y8 BuIIDQyeQyqNLrZvKKPLHHKuK5rUgxEPqVOuHK3h5klzL2pwbISqk9qwWh7ZXa6+j4+vMp KzRtlm3R1ISrtDh8r0WpUDzj7uQ4Srdv11ycBnp3aDgACNF7kpfexD7EI7AvOQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfxSW0LHHzmZn; Mon, 12 Jun 2023 16:08:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CG8gO8012322; Mon, 12 Jun 2023 16:08:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CG8g95012321; Mon, 12 Jun 2023 16:08:42 GMT (envelope-from git) Date: Mon, 12 Jun 2023 16:08:42 GMT Message-Id: <202306121608.35CG8g95012321@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 2c0cd59345cb - main - checkstyle9.pl: Add check for bad email List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2c0cd59345cb0aa2e3dd4da5b40e9c40dccd1ffa Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2c0cd59345cb0aa2e3dd4da5b40e9c40dccd1ffa commit 2c0cd59345cb0aa2e3dd4da5b40e9c40dccd1ffa Author: Warner Losh AuthorDate: 2023-06-12 16:06:50 +0000 Commit: Warner Losh CommitDate: 2023-06-12 16:08:17 +0000 checkstyle9.pl: Add check for bad email Add check for bad email. And remove check for qemu that doesn't matter. Sponsored by: Netflix --- tools/build/checkstyle9.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build/checkstyle9.pl b/tools/build/checkstyle9.pl index 5aec3819bf7c..aadf6ee152c5 100755 --- a/tools/build/checkstyle9.pl +++ b/tools/build/checkstyle9.pl @@ -1447,8 +1447,8 @@ sub process { $is_patch = 1; } - if ($line =~ /^(Author|From): .* via .*/) { - ERROR("Author email address is mangled by the mailing list\n" . $herecurr); + if ($line =~ /^(Author|From): .*noreply.*/) { + ERROR("Real email adress is needed\n" . $herecurr); } #check the patch for a signoff: From nobody Mon Jun 12 16:52:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfyRC1xR6z4dBTC; Mon, 12 Jun 2023 16:52:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfyRB4J4xz3FNs; Mon, 12 Jun 2023 16:52:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588758; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3pW4uYmznCWjrx/NY6YPnmnBe63x4wKJQn7HtElgUZ0=; b=GXlUP/jSIWPvWE1utWQSJK1EkQgzaAzG3MS9/rJBffqj2Cqu5ljOuP3gMkPjIzPizfeP2K 17OWClQYMhFTf+PtjcpVszU7npDg9Gv86iGJ9jIcmJA/BN8LoHJIEUOyuQ3NtyAnKONhQ5 4+r0MOIIzCuCbGD6ngDF4Q4hOzGpGzz04YQSAspgzCVghz5PJ8rr1aypaCzdf04+6E+6ME yIm91X8w5xShf5BHh7JrFIHtDTVHv16P4jMe1qPMZEk8jwJn6OW2B8E94UP5xHymZ1RvkB LyamJ8nmkSQvRVDj4go15T2kTVNmLBg9MKVjCOnFN+7/k8xxgLAlERNNhm18iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588758; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3pW4uYmznCWjrx/NY6YPnmnBe63x4wKJQn7HtElgUZ0=; b=omZL5zVbvi6IAbZZbzHEQ4RB6uo6R348KNI8H9eJ/JRwm8NOSgKMImD6Bcld4fcEI5qiAv 3kThZUBhGLQGtt50idOXFbRIsAiXybCOOnpx70YUw37xiOi3g8WgkVbIfCca7O3WQ8ajh5 ub18fdZ8diLAmE/Uz96vSoyasPjfxLPuHFX47FqDF+3fEZJ/6VIrST7x3FX2HwjP4IBHpZ nzh6Nd+feR/0z33Od4kqXhFW7lgVi2KY+2yHXsOioRQMDH83gFrfxGsg0lOiQdzE+rNhdT 9I6FmDwUIbDgxa2UdJb7WFs6r+GV7OC1KQ888CN8h9PMvRsUzTwFEgJy3A2Uxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686588758; a=rsa-sha256; cv=none; b=xf0TPFoqTwIAFEDUFM22iKgsRchdnj5Vh9T/IifD90hphRC5IkFwk5ctJ1I2zb4cI3T2kB 2D+9SfXOFE/RDw6su5eY3DeSvoLR96bdfYg+t14v371tuYeWmKrDWkY+G/OhvrE+xDdG5o avLp3NNxuT+MZPTIEIvmfYaq58opuWPNHfPUMWjlYdXwsEUNRYpjBBL+yG2o2sot81ol6q YraichhKUDyaiRSrQbNtZKm6YZia3aeXsGume7PMgXnikt0LhXqlqbQG6kX/3zDgHOBSHk miwJnAvyYd/VnvHsWb6838pJriucHRuM/nHcTNQ9vCm+jUE2ZoDQENCrGVC2wA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfyRB35qsznm5; Mon, 12 Jun 2023 16:52:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CGqcep093118; Mon, 12 Jun 2023 16:52:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CGqcBV093117; Mon, 12 Jun 2023 16:52:38 GMT (envelope-from git) Date: Mon, 12 Jun 2023 16:52:38 GMT Message-Id: <202306121652.35CGqcBV093117@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: e74dd9577fb0 - main - hwpstate_amd: calculate power if P-state info comes from MSR List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e74dd9577fb00518834a1bf07fad8c1d4c978d7a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e74dd9577fb00518834a1bf07fad8c1d4c978d7a commit e74dd9577fb00518834a1bf07fad8c1d4c978d7a Author: Johannes Totz AuthorDate: 2023-06-12 16:00:15 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 16:52:24 +0000 hwpstate_amd: calculate power if P-state info comes from MSR Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D40140 --- sys/x86/cpufreq/hwpstate_amd.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/sys/x86/cpufreq/hwpstate_amd.c b/sys/x86/cpufreq/hwpstate_amd.c index 58fed8b15863..9d55d3c3baf0 100644 --- a/sys/x86/cpufreq/hwpstate_amd.c +++ b/sys/x86/cpufreq/hwpstate_amd.c @@ -85,6 +85,8 @@ __FBSDID("$FreeBSD$"); #define AMD_10H_11H_CUR_DID(msr) (((msr) >> 6) & 0x07) #define AMD_10H_11H_CUR_FID(msr) ((msr) & 0x3F) +#define AMD_17H_CUR_IDIV(msr) (((msr) >> 30) & 0x03) +#define AMD_17H_CUR_IDD(msr) (((msr) >> 22) & 0xFF) #define AMD_17H_CUR_VID(msr) (((msr) >> 14) & 0xFF) #define AMD_17H_CUR_DID(msr) (((msr) >> 8) & 0x3F) #define AMD_17H_CUR_FID(msr) ((msr) & 0xFF) @@ -446,6 +448,9 @@ hwpstate_get_info_from_msr(device_t dev) did = AMD_10H_11H_CUR_DID(msr); fid = AMD_10H_11H_CUR_FID(msr); + hwpstate_set[i].volts = CPUFREQ_VAL_UNKNOWN; + hwpstate_set[i].power = CPUFREQ_VAL_UNKNOWN; + hwpstate_set[i].lat = CPUFREQ_VAL_UNKNOWN; /* Convert fid/did to frequency. */ switch (family) { case 0x11: @@ -466,6 +471,29 @@ hwpstate_get_info_from_msr(device_t dev) } fid = AMD_17H_CUR_FID(msr); hwpstate_set[i].freq = (200 * fid) / did; + /* Vid step is 6.25mV, so scale by 100. */ + hwpstate_set[i].volts = + (155000 - (625 * AMD_17H_CUR_VID(msr))) / 100; + /* + * Calculate current first. + * This equation is mentioned in + * "BKDG for AMD Family 15h Models 70h-7fh Processors", + * section 2.5.2.1.6. + */ + hwpstate_set[i].power = AMD_17H_CUR_IDD(msr) * 1000; + switch (AMD_17H_CUR_IDIV(msr)) { + case 3: /* divide by 1000 */ + hwpstate_set[i].power /= 10; + case 2: /* divide by 100 */ + hwpstate_set[i].power /= 10; + case 1: /* divide by 10 */ + hwpstate_set[i].power /= 10; + case 0: /* divide by 1 */ + ; + } + hwpstate_set[i].power *= hwpstate_set[i].volts; + /* Milli amps * milli volts to milli watts. */ + hwpstate_set[i].power /= 1000; break; default: HWPSTATE_DEBUG(dev, "get_info_from_msr: %s family" @@ -475,10 +503,6 @@ hwpstate_get_info_from_msr(device_t dev) return (ENXIO); } hwpstate_set[i].pstate_id = i; - /* There was volts calculation, but deleted it. */ - hwpstate_set[i].volts = CPUFREQ_VAL_UNKNOWN; - hwpstate_set[i].power = CPUFREQ_VAL_UNKNOWN; - hwpstate_set[i].lat = CPUFREQ_VAL_UNKNOWN; } return (0); } From nobody Mon Jun 12 16:52:39 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfyRC5cvSz4dBTF; Mon, 12 Jun 2023 16:52:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfyRC4zpkz3FTW; Mon, 12 Jun 2023 16:52:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fz9QjEG1ax74TPyrsL4K1cbFfafcB6GFBLqYHxiaztA=; b=p8ncRuIuY4wGcMU2A8A29eIm/5bdz43Dv/W1uAEnN046+n52FRcmTTtxp36U7VTHLevdib nSKkpVsEXBiwjKNY8+poV45JlVX41M/UzxlstWSb3oBVJ5eJXTEp98pLR1GXusyNvlv3B/ AwYsl6sna0qbyn4rPoI/cJ2UL5CX4SK7B38Q0yo0xqKujM/D4uAxsTM4IXAomANepcRMZU UmKvY2948JEdJghYP6pPXZ7bb4iyHbbYoUBeoswLGSEAdZxLFkd4RhFQYj8lAbRVhSMNz0 RceAYkZZmezomWh7VS4qPYka9ftUrnFBcON7wnqQkhFHN0zJL2t5wDh9HAfwbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fz9QjEG1ax74TPyrsL4K1cbFfafcB6GFBLqYHxiaztA=; b=qpasNrvGv/xiisSiACG8+WmokHB1hQThQlwOic8401BIsBLEpmYZUbiafCB2YqCVUX1pCH CpjdCY/XV6UswzhRgm45qVM8Jn8W6Yp6jxcaIGzSJEvhFg/TaO5Kt4tZS0SIXgPjFc2CHj hQ4Q9V59PqSortY1fvr0YlWZu2VlQ7UIw9vhf/ahOo2mp2DgZj2XeZb0USK8qOSW0hZmc/ ChnSoWiwFRqWUgFHcmKIqDsG9EeuRbZn06+37c2ze0CtNNzoTtwgedI2OK5NQbWSW+cXm8 Xu5mYHHbJRVpO303jGvlx8A1/hpz83foASVVes4IDnUoMZV0+gvdMKintvDFmA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686588759; a=rsa-sha256; cv=none; b=TY31NMoiLyXp+0NppsrhC+r8F3wtbwQHC3nTwiTPUTgzGfe19Gg8MnxpKSZTV0MJRSaUMX ++OahIXqiIg4VkEWDQtkV5or+5FndCJ6D1Hkc+Ec1qUkD68dhYE0cW5YBzzNe4fpvXKpOw 46PwVz01i/fF6CXXh8YOAdb57N1N7OgNS6K0ah+5BF6neZ8CF++89Zb3wXCEI+P3ZXRACa XtTs6c03rCuNI3gwmyVzgV7gYxZoBHrqlaHniNceLD/DzDJG8QN2+tXHc9EfCmfwUEyYpu grvm6glXwcpH9OeInsBnAXOaVvnxfS2ld3f5s1TQwtgWI5KJnBJIpkUID7zzgQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfyRC43KLznFG; Mon, 12 Jun 2023 16:52:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CGqdaM093137; Mon, 12 Jun 2023 16:52:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CGqdec093136; Mon, 12 Jun 2023 16:52:39 GMT (envelope-from git) Date: Mon, 12 Jun 2023 16:52:39 GMT Message-Id: <202306121652.35CGqdec093136@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 718d4a1d5643 - main - opencrypto: Handle end-of-cursor conditions in crypto_cursor_segment() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 718d4a1d5643c2faf409001320c3fd64aae57638 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=718d4a1d5643c2faf409001320c3fd64aae57638 commit 718d4a1d5643c2faf409001320c3fd64aae57638 Author: Mark Johnston AuthorDate: 2023-06-12 16:09:34 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 16:52:24 +0000 opencrypto: Handle end-of-cursor conditions in crypto_cursor_segment() Some consumers, e.g., swcr_encdec(), may call crypto_cursor_segment() after having advanced the cursor to the end of the buffer. In this case I believe the right behaviour is to return NULL and a length of 0. When this occurs with a CRYPTO_BUF_VMPAGE buffer, the cc_vmpage pointer will point past the end of the page pointer array, so crypto_cursor_segment() ends up dereferencing a random pointer before the function returns a length of 0. The uio-backed cursor has a similar problem. Address this by keeping track of the residual buffer length and returning immediately once the length is zero. PR: 271766 Reported by: Andrew "RhodiumToad" Gierth Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40428 --- sys/opencrypto/criov.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/sys/opencrypto/criov.c b/sys/opencrypto/criov.c index 5312fe622c5e..c832a9af9eec 100644 --- a/sys/opencrypto/criov.c +++ b/sys/opencrypto/criov.c @@ -321,6 +321,7 @@ crypto_cursor_init(struct crypto_buffer_cursor *cc, break; case CRYPTO_BUF_UIO: cc->cc_iov = cb->cb_uio->uio_iov; + cc->cc_buf_len = cb->cb_uio->uio_resid; break; default: #ifdef INVARIANTS @@ -386,6 +387,7 @@ crypto_cursor_advance(struct crypto_buffer_cursor *cc, size_t amount) cc->cc_offset += amount; break; } + cc->cc_buf_len -= remain; amount -= remain; cc->cc_iov++; cc->cc_offset = 0; @@ -406,14 +408,34 @@ crypto_cursor_segment(struct crypto_buffer_cursor *cc, size_t *len) { switch (cc->cc_type) { case CRYPTO_BUF_CONTIG: - *len = cc->cc_buf_len; - return (cc->cc_buf); + case CRYPTO_BUF_UIO: + case CRYPTO_BUF_VMPAGE: + if (cc->cc_buf_len == 0) { + *len = 0; + return (NULL); + } + break; case CRYPTO_BUF_MBUF: case CRYPTO_BUF_SINGLE_MBUF: if (cc->cc_mbuf == NULL) { *len = 0; return (NULL); } + break; + default: +#ifdef INVARIANTS + panic("%s: invalid buffer type %d", __func__, cc->cc_type); +#endif + *len = 0; + return (NULL); + } + + switch (cc->cc_type) { + case CRYPTO_BUF_CONTIG: + *len = cc->cc_buf_len; + return (cc->cc_buf); + case CRYPTO_BUF_MBUF: + case CRYPTO_BUF_SINGLE_MBUF: if (cc->cc_mbuf->m_flags & M_EXTPG) return (m_epg_segment(cc->cc_mbuf, cc->cc_offset, len)); *len = cc->cc_mbuf->m_len - cc->cc_offset; @@ -426,11 +448,7 @@ crypto_cursor_segment(struct crypto_buffer_cursor *cc, size_t *len) *len = cc->cc_iov->iov_len - cc->cc_offset; return ((char *)cc->cc_iov->iov_base + cc->cc_offset); default: -#ifdef INVARIANTS - panic("%s: invalid buffer type %d", __func__, cc->cc_type); -#endif - *len = 0; - return (NULL); + __assert_unreachable(); } } @@ -504,6 +522,7 @@ crypto_cursor_copyback(struct crypto_buffer_cursor *cc, int size, todo = MIN(remain, size); memcpy(dst, src, todo); src += todo; + cc->cc_buf_len -= todo; if (todo < remain) { cc->cc_offset += todo; break; @@ -593,6 +612,7 @@ crypto_cursor_copydata(struct crypto_buffer_cursor *cc, int size, void *vdst) todo = MIN(remain, size); memcpy(dst, src, todo); dst += todo; + cc->cc_buf_len -= todo; if (todo < remain) { cc->cc_offset += todo; break; From nobody Mon Jun 12 16:52:40 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfyRD6M2Fz4dBsx; Mon, 12 Jun 2023 16:52:40 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfyRD5q8wz3FsK; Mon, 12 Jun 2023 16:52:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JV1xn4wpRc/7vuO4SqBfxyDYYZ75rtLjGp126rCCUJ4=; b=h1vXXCvaAWk+RkykDiiqJHMVkum7vVRqTJV4ImMvbX181+01UKYZd7MmW0v96tfinwTWB1 7X6pFJlpXl4rNZgMtzTH4x8Im30fUluyYZRYKand0Ynhu1IGTZ+93hINyz3hZ1jr8jqv2m h+572oj46j3AjSH84N5Rg5cDnkYNaaNP8wMY8DSu5nrECcuP4PmRj/eGojw8DCwZIK9Ipp G0aXsGZtqUeYIWRpE9RGoYwULIJrXJdqCX+d8SAkwPaBQSGYowP9t4T6Tt5xayUQCuxPDd gSVLkWLsS96BbdyRrNxt556lWjs1FZDs38Hptq+/C9iW8MtZjVnkqlLrWWNBVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JV1xn4wpRc/7vuO4SqBfxyDYYZ75rtLjGp126rCCUJ4=; b=CcLWB0j5Ch+02GB78rDwKIs4H9BbhM9bu3a+oyL0eUtXBSgoSRaDfJuqfxiyNB3aI0NKPm HBLC2K0RArspdeMr2qpz42tY0+IKYFEqmmYiWS3L+ZPfcwPt0Kz41Sd15uPQ+4N0o2HnQB C/94Xgv+AXU53QcdvX24VVv5/OO02pXGxoMQTg7oD8eUQa2iEooxRVk8b7quXCV/yZd4jM iW9oTOiGpwxzqnxEFjF0YnRRzrtWDOEl7fpD9FR879/sNVcY5/lX+pJQ36XATeHuVIhnrP Djw9dXACf/TiypGT/KUyJhAPRBpbP/wKl4HbeyJ/wyXhhlDChVv9lKs49PU4pA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686588760; a=rsa-sha256; cv=none; b=fwyFuKh9a4IFU/yJk9cEBsiw8gv1ybvliOVfECUUiX3p6bfU7kr0qat++SimvLL4x7XiJV VUIyW+h3hbvbILsZwhG0/BiXRGhQyOSkxj0uVhE1SyFI4Tv2ylrlFHI3S9zGhptKZQHhCA cLZ1YcZqRbCVbJFS7GPtg18g3RkteHU4RAKAKIXVe34cRqnGMB8c71NY/X/TS1NLRMN6Kz kUWoqU9QPT6BkrA5kTm+EfSUt5XXKhK1svCpBCIQArRrdY/kcs/xlSCVoHDOZM7TjgnuIs dofKEQUidI6bdLG0qhLvTHxy1myU4ESsb1GAfbrNvEC/DTCtoEywjpGGI1ivVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfyRD4tWjznXh; Mon, 12 Jun 2023 16:52:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CGqe8T093156; Mon, 12 Jun 2023 16:52:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CGqe4F093155; Mon, 12 Jun 2023 16:52:40 GMT (envelope-from git) Date: Mon, 12 Jun 2023 16:52:40 GMT Message-Id: <202306121652.35CGqe4F093155@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 9f7fdd8c1ab1 - main - crypto: Advance the correct pointer in crypto_cursor_copydata() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9f7fdd8c1ab153104275e59b49b2d567cec95256 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9f7fdd8c1ab153104275e59b49b2d567cec95256 commit 9f7fdd8c1ab153104275e59b49b2d567cec95256 Author: Mark Johnston AuthorDate: 2023-06-12 16:09:54 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 16:52:24 +0000 crypto: Advance the correct pointer in crypto_cursor_copydata() PR: 271766 Reported by: Michael Laß MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40468 --- sys/opencrypto/criov.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/opencrypto/criov.c b/sys/opencrypto/criov.c index c832a9af9eec..c1bd4919ec5c 100644 --- a/sys/opencrypto/criov.c +++ b/sys/opencrypto/criov.c @@ -591,7 +591,7 @@ crypto_cursor_copydata(struct crypto_buffer_cursor *cc, int size, void *vdst) remain = MIN(PAGE_SIZE - cc->cc_offset, cc->cc_buf_len); todo = MIN(remain, size); memcpy(dst, src, todo); - src += todo; + dst += todo; cc->cc_buf_len -= todo; if (todo < remain) { cc->cc_offset += todo; From nobody Mon Jun 12 16:52:41 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfyRG0TvQz4dByl; Mon, 12 Jun 2023 16:52:42 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfyRF6pDMz3Fj3; Mon, 12 Jun 2023 16:52:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7Yum2tktL4l7bBT3F+VClEKKSzTCG39kWLwyQMOXFno=; b=tGZBOxAZLuvCMFdJa/aLL6wVOtlc3bvTrwOI9qSswbsPhuRqTujvDL/qcw6M0Y6J2gHQOm NO3D3q8c72LYRFI8aE8vifoetjUHJ4oZ3Mh67I4uIU9ta1BUV+wBgaPIbFrgsaB1oxD0qW bUvtsxXDXmAZToVmgsMd4sXOxhb0Q3KCq7UFmCh6Vrlhd/PvX5oTTBV5IqjIKjsSjGHoyN dgr8lrMaUTIhL1mWcN8F5nN181JrmJhq5eV5q0N5VxKa1f9TbKmF9dIlPIBYnVfNISud1W vpuoEfrNcwNClM3+pzH61F98M4ZKWpY9/4QBpWe3LGseUppCmwFxdLdNvIEolQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686588762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7Yum2tktL4l7bBT3F+VClEKKSzTCG39kWLwyQMOXFno=; b=P9LFROX68g196XHH76GfHPY4Crjvp+iA3ZNuuzw4+vPUCZ+QT5/DgULDHdwIwUYzC8JJ7i ernKo9C4wb57GCApFasmRIwRhLLx/LB35WDxEpvarJwIBUw1WZS/x/TG0gVkMOCoNxHLD2 +WgeEkzBFIbW2+GECIIbO0Cesfg1GwYMdfdu8GBx+9qVAPr2TczzXTSdl9uyyosfiWMloU 6TPtzqgrR38hYRLgRcKOeuY16iGSItdkLjSvxuqs2OXaXAOyqScS9dGn/X7uvmG157V7nx carZl7rk60kh9yum640XAKstB04DNreE//17VoHBEvjpegBqSoeMHJbt8UAINQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686588762; a=rsa-sha256; cv=none; b=RJvdILXcn+dv751ex3F8PDmiFM13M22IZW4mEb3mxmdq8DkTItzOnCSFzrRhObrMbosSdB bG9S6cpv9iH6wL1UmpJAhSqQkwZWXeQQxITo21umBigcHeCLDOM7zh1DZt0X8LqdSr8fvY 50fTC18VrmRvtliSj1xr+NYdzovd8/tc3DrOuKuXJIisHrBtNkoP1/+QexXAutRXIUKDTS IXwDUpZaFg9hPQRpEsR2oduZAatYf25llJC6hym+5rDlIcWsDdMz0OWlO7CtJ1+p/dpBKr RKzWIMdn2oPlr2cF4HJ2Mbmx/TU3dUB4AMsU6w+CvTWSnff9tahfTIp2Iu/iLA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QfyRF5rQRznRd; Mon, 12 Jun 2023 16:52:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CGqfOu093175; Mon, 12 Jun 2023 16:52:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CGqfPZ093174; Mon, 12 Jun 2023 16:52:41 GMT (envelope-from git) Date: Mon, 12 Jun 2023 16:52:41 GMT Message-Id: <202306121652.35CGqfPZ093174@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 9c0467929aba - main - geli tests: Add a regression test for PR 271766 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9c0467929abaab97f45fc07507b6f30c80211239 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9c0467929abaab97f45fc07507b6f30c80211239 commit 9c0467929abaab97f45fc07507b6f30c80211239 Author: Mark Johnston AuthorDate: 2023-06-12 16:11:20 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 16:52:24 +0000 geli tests: Add a regression test for PR 271766 This test case catches both of the bugs reported there. PR: 271766 Reviewed by: imp MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40469 --- tests/sys/geom/class/eli/Makefile | 3 + tests/sys/geom/class/eli/misc_test.sh | 38 ++++++++- tests/sys/geom/class/eli/unaligned_io.c | 131 ++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 2 deletions(-) diff --git a/tests/sys/geom/class/eli/Makefile b/tests/sys/geom/class/eli/Makefile index c7f1342f45ae..bdb1101ef059 100644 --- a/tests/sys/geom/class/eli/Makefile +++ b/tests/sys/geom/class/eli/Makefile @@ -37,6 +37,9 @@ SRCS.pbkdf2_test= \ LIBADD.pbkdf2_test= crypto +PROGS+= unaligned_io +BINDIR?= ${TESTSDIR} + testvect.h: python gentestvect.py > ${.TARGET} diff --git a/tests/sys/geom/class/eli/misc_test.sh b/tests/sys/geom/class/eli/misc_test.sh index d38c8bcafeaf..0b852d1e24d2 100644 --- a/tests/sys/geom/class/eli/misc_test.sh +++ b/tests/sys/geom/class/eli/misc_test.sh @@ -135,17 +135,51 @@ physpath_cleanup() true } +unaligned_io_test() +{ + cipher=$1 + secsize=$2 + ealgo=${cipher%%:*} + keylen=${cipher##*:} + + atf_check -s exit:0 -e ignore \ + geli init -B none -e $ealgo -l $keylen -P -K keyfile \ + -s $secsize ${md} + atf_check geli attach -p -k keyfile ${md} + + atf_check $(atf_get_srcdir)/unaligned_io /dev/${md}.eli +} + +atf_test_case unaligned_io cleanup +unaligned_io_head() +{ + atf_set "descr" "regression test for PR 271766" + atf_set "require.user" "root" +} +unaligned_io_body() +{ + geli_test_setup + + sectors=4 + + atf_check dd if=/dev/random of=keyfile bs=512 count=16 status=none + for_each_geli_config_nointegrity unaligned_io_test +} +unaligned_io_cleanup() +{ + geli_test_cleanup +} + atf_init_test_cases() { atf_add_test_case physpath atf_add_test_case preserve_props atf_add_test_case preserve_disk_props + atf_add_test_case unaligned_io } - common_cleanup() { - if [ -f "$MD_DEVS" ]; then while read test_md; do gnop destroy -f ${test_md}.nop 2>/dev/null diff --git a/tests/sys/geom/class/eli/unaligned_io.c b/tests/sys/geom/class/eli/unaligned_io.c new file mode 100644 index 000000000000..707d15f40be4 --- /dev/null +++ b/tests/sys/geom/class/eli/unaligned_io.c @@ -0,0 +1,131 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 The FreeBSD Foundation + * + * This software was developed by Mark Johnston under sponsorship from + * the FreeBSD Foundation. + * + * 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. + */ + +/* + * Idea from a test case by Andrew "RhodiumToad" Gierth in Bugzilla PR 271766. + */ + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + const char *disk; + char *buf1, *buf2; + off_t disksz; + size_t bufsz, iosz; + ssize_t n; + unsigned int offsets, secsz; + int fd; + + if (argc != 2) + errx(1, "Usage: %s ", argv[0]); + disk = argv[1]; + + fd = open(disk, O_RDWR); + if (fd < 0) + err(1, "open(%s)", disk); + + if (ioctl(fd, DIOCGSECTORSIZE, &secsz) != 0) + err(1, "ioctl(DIOCGSECTORSIZE)"); + if (secsz == 0) + errx(1, "ioctl(DIOCGSECTORSIZE) returned 0"); + if (ioctl(fd, DIOCGMEDIASIZE, &disksz) != 0) + err(1, "ioctl(DIOCGMEDIASIZE)"); + if (disksz / secsz < 2) + errx(1, "disk needs to be at least 2 sectors in size"); + iosz = 2 * secsz; + + bufsz = iosz + secsz; + buf1 = mmap(NULL, bufsz, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, + -1, 0); + if (buf1 == MAP_FAILED) + err(1, "mmap"); + buf2 = mmap(NULL, bufsz, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, + -1, 0); + if (buf2 == MAP_FAILED) + err(1, "mmap"); + + arc4random_buf(buf1, bufsz); + n = pwrite(fd, buf1, bufsz, 0); + if (n < 0 || (size_t)n != bufsz) + err(1, "pwrite"); + + /* + * Limit the number of offsets we test with, to avoid spending too much + * time when the sector size is large. + */ + offsets = MAX(EALG_MAX_BLOCK_LEN, HMAC_MAX_BLOCK_LEN) + 1; + + /* + * Read test: read the first 2 sectors into buf1, then do the same with + * buf2, except at varying offsets into buf2. After each read, compare + * the buffers and make sure they're identical. This exercises corner + * cases in the crypto layer's buffer handling. + */ + n = pread(fd, buf1, iosz, 0); + if (n < 0 || (size_t)n != iosz) + err(1, "pread"); + for (unsigned int i = 0; i < offsets; i++) { + n = pread(fd, buf2 + i, iosz, 0); + if (n < 0 || (size_t)n != iosz) + err(1, "pread"); + if (memcmp(buf1, buf2 + i, iosz) != 0) + errx(1, "read mismatch at offset %u/%u", i, secsz); + } + + /* + * Write test. Try writing buffers at various alignments, and verify + * that we read back what we wrote. + */ + arc4random_buf(buf1, bufsz); + for (unsigned int i = 0; i < offsets; i++) { + n = pwrite(fd, buf1 + i, iosz, 0); + if (n < 0 || (size_t)n != iosz) + err(1, "pwrite"); + n = pread(fd, buf2, iosz, 0); + if (n < 0 || (size_t)n != iosz) + err(1, "pread"); + if (memcmp(buf1 + i, buf2, iosz) != 0) + errx(1, "write mismatch at offset %u/%u", i, secsz); + } + + return (0); +} From nobody Mon Jun 12 17:56:37 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfzs12spKz4cZJm; Mon, 12 Jun 2023 17:56:37 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfzs12RMbz3hM5; Mon, 12 Jun 2023 17:56:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JWadI7tCWnL9SI8hk2BvyJlisrFgv1hB/t2YhiVNUoM=; b=nTA3nGSIOH5ihDDtKSh4YBK4n5MolmYB1LDcMKBVAcFMz/osDKsZy+3o0X4rmHXUQHN0c6 SFfzRCFy35xXXx/loyFi6pcSMbNFSMlsrTNYyvfIhc42FqWCVyqO+E7VoUa89L14K+qzFV bxfAk8pAJsrCwC7nRa+zcplU5U+nBd10ciaGpV05y/lLSBtCdzhzIHirlm/H8VGvdtC8NN HfHU/nIHvDfiBLuINp9wV7nDyMmoJUT/LeVredDYnNK77RPoinS9GyFar3t+BCwjNp7/Wd kJV4abG3Q/zZ7FAJWnsxETgP9hWuDuPwDRcnz4w/8Gm5EnNuzx2G1ghG6a+Yug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JWadI7tCWnL9SI8hk2BvyJlisrFgv1hB/t2YhiVNUoM=; b=xOBiRGnBnPAbDeEFAKpNGRsg/MHV9bBWPXcKsEfJesxJApfjQ50072gvy2eJGv1vFGsNQ+ QEGFkTEFo8E/0XCdcVtGMOMEM88GQdA/E10WIWQoBGV3aaY76xYaixqvLGn/Su4+PB5ZNx XwZJhGkFRy6UflDluGWJ2ItIL7Xw1Uw2KEEGUcyFbbzoPyH4oRxoqiDPRRoZ/3W8xDhtf7 miyDMyBO1oKT2dkfdfbO7LtQxqzSSj/ouEQpjN4JvtefikVpVYpbOLYAAhlNiI9SbyWP5+ cmMe7evUprO6LQklPvU9B+CoiFTwo8OuAYxy/bcPUb4WgfMVwf4rW/u6fk8HfQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686592597; a=rsa-sha256; cv=none; b=OIkznvfwreBw6SQ0ti1J4GwT/HVJP8xk87sKm/xRU0vkHfyAN2EFRb4TCyTI4NxVbD1mK0 xwNegYhN6BMJSFnbycBwSD2eCpL5hHhjX2fNwnzfpX4kQyZRPcx0mSBNtPclU82NKhZhV6 SZKx97DY3m/CBzYkcovr7NrwsX/hWEv9ove1CjXQ5siUXMm6VKAHKiBlMibndgJsBhL2CP O0GGyiK7fNBQXUq2Xm3xID2V/DG+hhlSz/HJnP3a2f6AAq3hpE6o7lLsaCY7U707PWw67G C5f9sIugkbbeRoZZ7OmfNC7N7Pu6ECC9fZ+X8YX0N1tkBg3Htwzq7Zwzz2jdFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfzs11TzBzps3; Mon, 12 Jun 2023 17:56:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CHub4a092916; Mon, 12 Jun 2023 17:56:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CHubwj092915; Mon, 12 Jun 2023 17:56:37 GMT (envelope-from git) Date: Mon, 12 Jun 2023 17:56:37 GMT Message-Id: <202306121756.35CHubwj092915@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 694f18d3533c - main - qat: Stop building on i386 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 694f18d3533c3ca1ba36a3154c74e44662ded809 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=694f18d3533c3ca1ba36a3154c74e44662ded809 commit 694f18d3533c3ca1ba36a3154c74e44662ded809 Author: Mark Johnston AuthorDate: 2023-06-12 17:41:59 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 17:44:01 +0000 qat: Stop building on i386 The driver isn't tested on i386, so don't spend effort compiling it. --- sys/modules/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 67b95a8db6f7..4a378ac578c1 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -723,8 +723,6 @@ _nctgpio= nctgpio _ntb= ntb _ocs_fc= ocs_fc _p2sb= p2sb -_qat= qat -_qatfw= qatfw _qat_c2xxx= qat_c2xxx _qat_c2xxxfw= qat_c2xxxfw _safe= safe @@ -812,6 +810,8 @@ _ioat= ioat _ixl= ixl _nvdimm= nvdimm _pms= pms +_qat= qat +_qatfw= qatfw _qlxge= qlxge _qlxgb= qlxgb _sume= sume From nobody Mon Jun 12 17:56:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfzs25jlLz4cZTy; Mon, 12 Jun 2023 17:56:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfzs25JmLz3hMq; Mon, 12 Jun 2023 17:56:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VXzFzekbdkru2VvIxPEldCapxZu0k6tqggzQO/vTEV0=; b=dv6XamulZ3hIelX2qw9WwGMcINYa01ssybxeVTATdmm32k5EvVK2CreaCLW4VFL4x5ZGHZ 5aHCBPMbq0Gj5xkuINpo6WgVEr8HgzCurISsrWNrTO8zjVt8MwZ8W78+KZfOK90kJGVIdn IoxtS9gUjZ/xnEsD0pBN4xLbKUEKMBVMxrpF2tfyEqQ0lWPEqG2ceaYDrzVQcRpc7kRaXJ lDrAUj+9s+HBLVHY1TYzUYQlTPGvVpQF8j67Rb016vfyC9C9KAwdFFf+sXWPCj0HsicpHX r9CUT5C4C16krnzGAMZ6hi3qyqVrCl0I7II2gtLldlzRDZr/oKxtYHdkJwdWEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VXzFzekbdkru2VvIxPEldCapxZu0k6tqggzQO/vTEV0=; b=H1xgGDPRRL6jAFHCqNv6VrCDliBL7ifiuZViyE9zZv2XkoRQ75V+z18TPZtfTdtSeZzLOe J7VQ/j2ZKSiGtTq5qk5TyYRY11Q5yVBPKEfhGmqv2vSuUQFw4LH3AG5olalRASzuWkI5oQ 6Fc3iItlmuHQZiFbnKAnJcOtu7o56U9a5F0Z5nyp8npbWcAYMgFnZPe1gGMcbiAdC+ONHT 1SPW84BmntV9bgAHLJQ40jgYYCK0xkaY5HC0MPWsWBlljzEI303TYumy7VxPLFPiUpnnTP 4q+DVZG7PQscR2DwIY+U97srQhtmcoy+jbaN/kYJ03kiuPegSrSQ88mN1cB8uQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686592598; a=rsa-sha256; cv=none; b=ivm35KbTWPUmd3SKyhDseEjsZ5JbyDP1jg5o+CqVqjDzRTQ+rXk6ACbwgkxLAqtCuzUEqI Ao8qCuim+GwFguE33angQcjELxi7PmCsRaGk2T6BpJyuMOkXdEgrgr6B4cZoualKHr4H+G eP+13mE2+sOqbPdjXh1mM18sbTwObfy3gNUamR7lsqeV4oyZVK/guhFdTJSDogZ40oZcpJ upqWcce4ufZxtx7rZM+g9n3EmBgpPyDwBG1WtXnVuhsEDZNjc/GQupsAgT3nQq+5bzMLE5 UyCg2+sdWE6ABGgKWKOk9E1AQde579CHWAsbRRk6c8F2CAKYjiKzGXwHM1vf6g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfzs24JRczpw0; Mon, 12 Jun 2023 17:56:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CHucei092940; Mon, 12 Jun 2023 17:56:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CHuchT092939; Mon, 12 Jun 2023 17:56:38 GMT (envelope-from git) Date: Mon, 12 Jun 2023 17:56:38 GMT Message-Id: <202306121756.35CHuchT092939@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 266b0663c598 - main - =?utf-8?Q?qat:=20Add=20Intel=C2=AE=204xxx=20Series=20VF=20driver=20support?= List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 266b0663c598b7e50c2998974c16f89b7ac23e3a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=266b0663c598b7e50c2998974c16f89b7ac23e3a commit 266b0663c598b7e50c2998974c16f89b7ac23e3a Author: Krzysztof Zdziarski AuthorDate: 2023-06-12 17:10:03 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 17:44:01 +0000 qat: Add Intel® 4xxx Series VF driver support Overview: Intel(R) QuickAssist Technology (Intel(R) QAT) provides hardware acceleration for offloading security, authentication and compression services from the CPU, thus significantly increasing the performance and efficiency of standard platform solutions. This commit introduces: - Intel® 4xxx Series VF driver support. - Device configurability via sysctls. - UIO support for Intel® 4xxx Series devices. Patch co-authored by: Krzysztof Zdziarski Patch co-authored by: Michal Gulbicki Patch co-authored by: Julian Grajkowski Patch co-authored by: Piotr Kasierski Patch co-authored by: Lukasz Kolodzinski Patch co-authored by: Karol Grzadziel Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D39850 --- share/man/man4/qat.4 | 57 +- sys/contrib/dev/qat/qat_4xxx.bin | Bin 532308 -> 665356 bytes sys/dev/qat/include/adf_cfg_device.h | 24 +- sys/dev/qat/include/adf_gen2_pfvf.h | 27 + sys/dev/qat/include/adf_gen4_pfvf.h | 16 + sys/dev/qat/include/adf_gen4_timer.h | 17 + sys/dev/qat/include/adf_gen4vf_hw_csr_data.h | 151 + sys/dev/qat/include/adf_pf2vf_msg.h | 182 - sys/dev/qat/include/adf_pfvf_vf_msg.h | 13 + sys/dev/qat/include/common/adf_accel_devices.h | 86 +- sys/dev/qat/include/common/adf_cfg.h | 5 + sys/dev/qat/include/common/adf_cfg_common.h | 21 +- sys/dev/qat/include/common/adf_cfg_strings.h | 6 + sys/dev/qat/include/common/adf_cfg_sysctl.h | 12 + sys/dev/qat/include/common/adf_common_drv.h | 75 +- sys/dev/qat/include/common/adf_gen2_hw_data.h | 24 + sys/dev/qat/include/common/adf_gen4_hw_data.h | 41 + sys/dev/qat/include/common/adf_pfvf_msg.h | 260 + sys/dev/qat/include/common/adf_pfvf_utils.h | 44 + sys/dev/qat/include/common/adf_pfvf_vf_proto.h | 32 + sys/dev/qat/include/common/adf_uio.h | 17 + sys/dev/qat/include/common/adf_uio_cleanup.h | 11 + sys/dev/qat/include/common/adf_uio_control.h | 43 + sys/dev/qat/qat/qat_ocf.c | 198 +- .../qat/qat_api/common/compression/dc_buffers.c | 16 + sys/dev/qat/qat_api/common/compression/dc_chain.c | 102 + .../qat/qat_api/common/compression/dc_datapath.c | 6 + sys/dev/qat/qat_api/common/compression/dc_dp.c | 8 + .../qat_api/common/compression/dc_ns_datapath.c | 72 + .../common/compression/dc_ns_header_footer.c | 46 + .../qat/qat_api/common/compression/dc_session.c | 27 +- .../common/compression/include/dc_session.h | 2 - .../qat_api/common/crypto/sym/key/lac_sym_key.c | 8 - .../qat_api/common/crypto/sym/lac_sym_alg_chain.c | 4 +- sys/dev/qat/qat_api/common/ctrl/sal_compression.c | 63 +- .../qat/qat_api/common/ctrl/sal_ctrl_services.c | 101 +- .../qat/qat_api/common/ctrl/sal_get_instances.c | 288 + .../qat_api/common/include/sal_types_compression.h | 5 +- sys/dev/qat/qat_api/common/stubs/lac_stubs.c | 191 + .../qat/qat_api/firmware/include/icp_qat_fw_mmp.h | 7808 ++++++++++++-------- .../qat_api/firmware/include/icp_qat_fw_mmp_ids.h | 508 +- sys/dev/qat/qat_api/include/cpa.h | 128 +- sys/dev/qat/qat_api/include/cpa_dev.h | 2 +- sys/dev/qat/qat_api/include/cpa_types.h | 21 +- sys/dev/qat/qat_api/include/dc/cpa_dc.h | 1008 ++- sys/dev/qat/qat_api/include/dc/cpa_dc_bp.h | 2 +- sys/dev/qat/qat_api/include/dc/cpa_dc_chain.h | 659 ++ sys/dev/qat/qat_api/include/dc/cpa_dc_dp.h | 97 +- sys/dev/qat/qat_api/include/icp_sal_versions.h | 2 +- sys/dev/qat/qat_api/include/lac/cpa_cy_common.h | 39 +- sys/dev/qat/qat_api/include/lac/cpa_cy_dh.h | 8 +- sys/dev/qat/qat_api/include/lac/cpa_cy_dsa.h | 2 +- sys/dev/qat/qat_api/include/lac/cpa_cy_ec.h | 454 +- sys/dev/qat/qat_api/include/lac/cpa_cy_ecdh.h | 3 +- sys/dev/qat/qat_api/include/lac/cpa_cy_ecdsa.h | 19 +- sys/dev/qat/qat_api/include/lac/cpa_cy_ecsm2.h | 1464 ++++ sys/dev/qat/qat_api/include/lac/cpa_cy_im.h | 5 +- sys/dev/qat/qat_api/include/lac/cpa_cy_key.h | 9 +- sys/dev/qat/qat_api/include/lac/cpa_cy_kpt.h | 853 +++ sys/dev/qat/qat_api/include/lac/cpa_cy_ln.h | 20 +- sys/dev/qat/qat_api/include/lac/cpa_cy_prime.h | 2 +- sys/dev/qat/qat_api/include/lac/cpa_cy_rsa.h | 18 +- sys/dev/qat/qat_api/include/lac/cpa_cy_sym.h | 17 +- sys/dev/qat/qat_api/include/lac/cpa_cy_sym_dp.h | 2 +- .../qat_api/qat_direct/include/icp_accel_devices.h | 5 +- sys/dev/qat/qat_common/adf_aer.c | 2 - sys/dev/qat/qat_common/adf_cfg.c | 49 + sys/dev/qat/qat_common/adf_cfg_device.c | 566 +- sys/dev/qat/qat_common/adf_cfg_sysctl.c | 343 + sys/dev/qat/qat_common/adf_ctl_drv.c | 491 ++ sys/dev/qat/qat_common/adf_freebsd_dev_processes.c | 677 ++ sys/dev/qat/qat_common/adf_freebsd_uio.c | 450 ++ sys/dev/qat/qat_common/adf_freebsd_uio_cleanup.c | 404 + sys/dev/qat/qat_common/adf_gen2_hw_data.c | 18 +- sys/dev/qat/qat_common/adf_gen4_hw_data.c | 85 +- sys/dev/qat/qat_common/adf_gen4_pfvf.c | 131 + sys/dev/qat/qat_common/adf_gen4_timer.c | 134 + sys/dev/qat/qat_common/adf_gen4vf_hw_csr_data.c | 162 + sys/dev/qat/qat_common/adf_hw_arbiter.c | 26 +- sys/dev/qat/qat_common/adf_init.c | 46 +- sys/dev/qat/qat_common/adf_pf2vf_capabilities.c | 147 - sys/dev/qat/qat_common/adf_pf2vf_msg.c | 896 --- sys/dev/qat/qat_common/adf_pf2vf_ring_to_svc_map.c | 74 - sys/dev/qat/qat_common/adf_pfvf_utils.c | 102 + sys/dev/qat/qat_common/adf_pfvf_vf_msg.c | 185 + sys/dev/qat/qat_common/adf_pfvf_vf_proto.c | 405 + sys/dev/qat/qat_common/adf_transport.c | 14 +- sys/dev/qat/qat_common/adf_vf2pf_msg.c | 275 - sys/dev/qat/qat_common/adf_vf_isr.c | 344 +- sys/dev/qat/qat_common/qat_common_module.c | 5 +- sys/dev/qat/qat_hw/qat_200xx/adf_200xx_hw_data.c | 21 +- sys/dev/qat/qat_hw/qat_4xxx/adf_4xxx_hw_data.c | 93 +- sys/dev/qat/qat_hw/qat_4xxx/adf_4xxx_hw_data.h | 6 +- sys/dev/qat/qat_hw/qat_4xxx/adf_drv.c | 10 +- sys/dev/qat/qat_hw/qat_4xxxvf/adf_4xxxvf_hw_data.c | 390 + sys/dev/qat/qat_hw/qat_4xxxvf/adf_4xxxvf_hw_data.h | 34 + sys/dev/qat/qat_hw/qat_4xxxvf/adf_drv.c | 282 + sys/dev/qat/qat_hw/qat_c3xxx/adf_c3xxx_hw_data.c | 21 +- sys/dev/qat/qat_hw/qat_c4xxx/adf_c4xxx_hw_data.c | 21 +- sys/dev/qat/qat_hw/qat_c62x/adf_c62x_hw_data.c | 21 +- .../qat/qat_hw/qat_dh895xcc/adf_dh895xcc_hw_data.c | 21 +- sys/modules/qat/qat_api/Makefile | 4 + sys/modules/qat/qat_common/Makefile | 14 +- sys/modules/qat/qat_hw/Makefile | 1 + 104 files changed, 16620 insertions(+), 5806 deletions(-) diff --git a/share/man/man4/qat.4 b/share/man/man4/qat.4 index e8a46a99e949..77b85d729ffa 100644 --- a/share/man/man4/qat.4 +++ b/share/man/man4/qat.4 @@ -1,7 +1,7 @@ .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright(c) 2007-2022 Intel Corporation .\" $FreeBSD$ -.Dd September 1, 2022 +.Dd May 4, 2023 .Dt QAT 4 .Os .Sh NAME @@ -101,6 +101,61 @@ For details of usage and supported operations and algorithms refer to the documentation mentioned above and .Sx SEE ALSO section. +.Sh SYSCTL_VARIABLES +Following variables may be used to reconfigure the QAT device.\& +For configuration persistence those variables may be set before loading the driver, either via +.Xr kenv 1 +or +.Xr loader.conf(5). +The device specific configuration options are prefixed with +.Va dev.qat.X\&. +where X is the device number. +The specific device needs to be in "down" state before changing the configuration. +.Bl -tag -width indent +.It Va state +Show current state of the device. Override the device state. Possible values: "down", "up". + +NOTE: If the symmetric services are used for device the qat_ocf driver needs to be disabled prior the device +reconfiguration. +Following variable may be used to enable/disable the QAT cryptographic framework connectivity +.Va dev.qat_ocf.0.enable\&. +Enabled by default. +.It Va cfg_services +Override the device services enabled: symmetric, asymmetric, data compression. +Possible values: "sym", "asym", "dc", "sym;dc", "asym;dc", "sym;asym". +Default services configured are "sym;asym" for even and "dc" for odd devices. +.It Va cfg_mode +Override the device mode configuration for kernel space and user space instances. +Possible values: "ks", "us", "ks;us". +Default value "ks;us". +.It Va num_user_processes +Override the number of uio user space processes that can connect to the QAT device. +Default: 2 +.El +.Pp +The following +.Xr sysctl 8 +variables are read-only: +.Bl -tag -width indent +.It Va frequency +QAT device frequency value. +.It Va mmp_version +QAT MMP Library revision number. +.It Va hw_version +QAT hardware revision number. +.It Va fw_version +QAT firmware revision number. +.It Va dev_cfg +Summary of device specific configuration. +.It Va heartbeat +QAT device heartbeat status. Value '1' indicates that the device is operational. +'0' value means that the device is not responsive. Device requires restart. +.It Va heartbeat_failed +Number of QAT heartbeat failures received. +.It Va heartbeat_sent +Number of QAT heartbeat requests sent. +.El + .Sh COMPATIBILITY The .Nm diff --git a/sys/contrib/dev/qat/qat_4xxx.bin b/sys/contrib/dev/qat/qat_4xxx.bin index baec3ad9ca32..66dd803fe419 100644 Binary files a/sys/contrib/dev/qat/qat_4xxx.bin and b/sys/contrib/dev/qat/qat_4xxx.bin differ diff --git a/sys/dev/qat/include/adf_cfg_device.h b/sys/dev/qat/include/adf_cfg_device.h index 9def937cc9db..267905dd0c4f 100644 --- a/sys/dev/qat/include/adf_cfg_device.h +++ b/sys/dev/qat/include/adf_cfg_device.h @@ -13,14 +13,14 @@ #define ADF_CFG_STATIC_CONF_DC_INTER_BUF_SIZE 64 #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ENABLED 1 #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DC 1 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DH 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DRBG 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DSA 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ECC 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_KEYGEN 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_LN 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_PRIME 0 -#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_RSA 0 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DH 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DRBG 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DSA 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ECC 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_KEYGEN 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_LN 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_PRIME 1 +#define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_RSA 1 #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_SYM 1 #define ADF_CFG_STATIC_CONF_POLL 1 #define ADF_CFG_STATIC_CONF_IRQ 0 @@ -30,6 +30,14 @@ #define ADF_CFG_STATIC_CONF_INST_NUM_DC 2 #define ADF_CFG_STATIC_CONF_INST_NUM_CY_POLL 6 #define ADF_CFG_STATIC_CONF_INST_NUM_CY_IRQ 2 +#define ADF_CFG_STATIC_CONF_USER_PROCESSES_NUM 2 +#define ADF_CFG_STATIC_CONF_USER_INST_NUM_CY 6 +#define ADF_CFG_STATIC_CONF_USER_INST_NUM_DC 2 +#define ADF_CFG_STATIC_CONF_INST_NUM_CY_POLL_VF 1 +#define ADF_CFG_STATIC_CONF_INST_NUM_CY_IRQ_VF 1 +#define ADF_CFG_STATIC_CONF_INST_NUM_DC_VF 2 +#define ADF_CFG_STATIC_CONF_USER_INST_NUM_CY_VF 2 +#define ADF_CFG_STATIC_CONF_USER_INST_NUM_DC_VF 2 #define ADF_CFG_FW_STRING_TO_ID(str, acc, id) \ do { \ diff --git a/sys/dev/qat/include/adf_gen2_pfvf.h b/sys/dev/qat/include/adf_gen2_pfvf.h new file mode 100644 index 000000000000..f5c565a9679b --- /dev/null +++ b/sys/dev/qat/include/adf_gen2_pfvf.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* Copyright(c) 2007-2022 Intel Corporation */ +/* $FreeBSD$ */ +#ifndef ADF_GEN2_PFVF_H +#define ADF_GEN2_PFVF_H + +#include +#include "adf_accel_devices.h" + +#define ADF_GEN2_ERRSOU3 (0x3A000 + 0x0C) +#define ADF_GEN2_ERRSOU5 (0x3A000 + 0xD8) +#define ADF_GEN2_ERRMSK3 (0x3A000 + 0x1C) +#define ADF_GEN2_ERRMSK5 (0x3A000 + 0xDC) + +static inline void +adf_gen2_init_pf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops) +{ + pfvf_ops->enable_comms = adf_pfvf_comms_disabled; +} + +static inline void +adf_gen2_init_vf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops) +{ + pfvf_ops->enable_comms = adf_pfvf_comms_disabled; +} + +#endif /* ADF_GEN2_PFVF_H */ diff --git a/sys/dev/qat/include/adf_gen4_pfvf.h b/sys/dev/qat/include/adf_gen4_pfvf.h new file mode 100644 index 000000000000..45fa171ae364 --- /dev/null +++ b/sys/dev/qat/include/adf_gen4_pfvf.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* Copyright(c) 2007-2022 Intel Corporation */ +/* $FreeBSD$ */ +#ifndef ADF_GEN4_PFVF_H +#define ADF_GEN4_PFVF_H + +#include "adf_accel_devices.h" + +void adf_gen4_init_vf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops); +static inline void +adf_gen4_init_pf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops) +{ + pfvf_ops->enable_comms = adf_pfvf_comms_disabled; +} + +#endif /* ADF_GEN4_PFVF_H */ diff --git a/sys/dev/qat/include/adf_gen4_timer.h b/sys/dev/qat/include/adf_gen4_timer.h new file mode 100644 index 000000000000..e91591772e5e --- /dev/null +++ b/sys/dev/qat/include/adf_gen4_timer.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* Copyright(c) 2007-2022 Intel Corporation */ +/* $FreeBSD$ */ +#ifndef ADF_GEN4_TIMER_H_ +#define ADF_GEN4_TIMER_H_ + +struct adf_accel_dev; + +struct adf_hb_timer_data { + struct adf_accel_dev *accel_dev; + struct work_struct hb_int_timer_work; +}; + +int adf_int_timer_init(struct adf_accel_dev *accel_dev); +void adf_int_timer_exit(struct adf_accel_dev *accel_dev); + +#endif /* ADF_GEN4_TIMER_H_ */ diff --git a/sys/dev/qat/include/adf_gen4vf_hw_csr_data.h b/sys/dev/qat/include/adf_gen4vf_hw_csr_data.h new file mode 100644 index 000000000000..27f10ae729db --- /dev/null +++ b/sys/dev/qat/include/adf_gen4vf_hw_csr_data.h @@ -0,0 +1,151 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* Copyright(c) 2007-2022 Intel Corporation */ +/* $FreeBSD$ */ +#ifndef ADF_GEN4VF_HW_CSR_DATA_H_ +#define ADF_GEN4VF_HW_CSR_DATA_H_ + +#define ADF_RING_CSR_ADDR_OFFSET_GEN4VF 0x0 +#define ADF_RING_BUNDLE_SIZE_GEN4 0x2000 +#define ADF_RING_CSR_RING_HEAD 0x0C0 +#define ADF_RING_CSR_RING_TAIL 0x100 +#define ADF_RING_CSR_E_STAT 0x14C +#define ADF_RING_CSR_RING_CONFIG_GEN4 0x1000 +#define ADF_RING_CSR_RING_LBASE_GEN4 0x1040 +#define ADF_RING_CSR_RING_UBASE_GEN4 0x1080 +#define ADF_RING_CSR_INT_FLAG 0x170 +#define ADF_RING_CSR_INT_FLAG_AND_COL 0x184 +#define ADF_RING_CSR_NEXT_INT_SRCSEL 0x4 +#define ADF_RING_CSR_INT_SRCSEL 0x174 +#define ADF_RING_CSR_INT_COL_EN 0x17C +#define ADF_RING_CSR_INT_COL_CTL 0x180 +#define ADF_RING_CSR_RING_SRV_ARB_EN 0x19C +#define ADF_BANK_INT_SRC_SEL_MASK_GEN4 0x44UL +#define ADF_RING_CSR_INT_COL_CTL_ENABLE 0x80000000 +#define ADF_BANK_INT_FLAG_CLEAR_MASK_GEN4 0x3 +#define ADF_RINGS_PER_INT_SRCSEL_GEN4 2 + +#define BUILD_RING_BASE_ADDR_GEN4(addr, size) \ + ((((addr) >> 6) & (0xFFFFFFFFFFFFFFFFULL << (size))) << 6) +#define READ_CSR_RING_HEAD_GEN4VF(csr_base_addr, bank, ring) \ + ADF_CSR_RD((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_HEAD + ((ring) << 2)) +#define READ_CSR_RING_TAIL_GEN4VF(csr_base_addr, bank, ring) \ + ADF_CSR_RD((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_TAIL + ((ring) << 2)) +#define READ_CSR_E_STAT_GEN4VF(csr_base_addr, bank) \ + ADF_CSR_RD((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_E_STAT) +#define WRITE_CSR_RING_CONFIG_GEN4VF(csr_base_addr, bank, ring, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_CONFIG_GEN4 + ((ring) << 2), \ + (value)) +#define WRITE_CSR_RING_BASE_GEN4VF(csr_base_addr, bank, ring, value) \ + do { \ + struct resource *_csr_base_addr = csr_base_addr; \ + u32 _bank = bank; \ + u32 _ring = ring; \ + dma_addr_t _value = value; \ + u32 l_base = 0, u_base = 0; \ + l_base = (u32)((_value)&0xFFFFFFFF); \ + u_base = (u32)(((_value)&0xFFFFFFFF00000000ULL) >> 32); \ + ADF_CSR_WR((_csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (_bank)) + \ + ADF_RING_CSR_RING_LBASE_GEN4 + ((_ring) << 2), \ + l_base); \ + ADF_CSR_WR((_csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (_bank)) + \ + ADF_RING_CSR_RING_UBASE_GEN4 + ((_ring) << 2), \ + u_base); \ + } while (0) + +static inline u64 +read_base_gen4vf(struct resource *csr_base_addr, u32 bank, u32 ring) +{ + u32 l_base, u_base; + u64 addr; + + l_base = ADF_CSR_RD(csr_base_addr, + (ADF_RING_BUNDLE_SIZE_GEN4 * bank) + + ADF_RING_CSR_RING_LBASE_GEN4 + (ring << 2)); + u_base = ADF_CSR_RD(csr_base_addr, + (ADF_RING_BUNDLE_SIZE_GEN4 * bank) + + ADF_RING_CSR_RING_UBASE_GEN4 + (ring << 2)); + + addr = (u64)l_base & 0x00000000FFFFFFFFULL; + addr |= (u64)u_base << 32 & 0xFFFFFFFF00000000ULL; + + return addr; +} + +#define WRITE_CSR_INT_SRCSEL_GEN4VF(csr_base_addr, bank) \ + ADF_CSR_WR((csr_base_addr), \ + ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank) + \ + ADF_RING_CSR_INT_SRCSEL, \ + ADF_BANK_INT_SRC_SEL_MASK_GEN4) + +#define READ_CSR_RING_BASE_GEN4VF(csr_base_addr, bank, ring) \ + read_base_gen4vf((csr_base_addr), (bank), (ring)) + +#define WRITE_CSR_RING_HEAD_GEN4VF(csr_base_addr, bank, ring, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_HEAD + ((ring) << 2), \ + (value)) +#define WRITE_CSR_RING_TAIL_GEN4VF(csr_base_addr, bank, ring, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_TAIL + ((ring) << 2), \ + (value)) +#define WRITE_CSR_INT_FLAG_GEN4VF(csr_base_addr, bank, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_INT_FLAG, \ + (value)) +#define WRITE_CSR_INT_COL_EN_GEN4VF(csr_base_addr, bank, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_INT_COL_EN, \ + (value)) +#define WRITE_CSR_INT_COL_CTL_GEN4VF(csr_base_addr, bank, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_INT_COL_CTL, \ + (value)) +#define WRITE_CSR_INT_FLAG_AND_COL_GEN4VF(csr_base_addr, bank, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_INT_FLAG_AND_COL, \ + (value)) +#define READ_CSR_RING_SRV_ARB_EN_GEN4VF(csr_base_addr, bank) \ + ADF_CSR_RD((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_SRV_ARB_EN) +#define WRITE_CSR_RING_SRV_ARB_EN_GEN4VF(csr_base_addr, bank, value) \ + ADF_CSR_WR((csr_base_addr), \ + (ADF_RING_CSR_ADDR_OFFSET_GEN4VF + \ + ADF_RING_BUNDLE_SIZE_GEN4 * (bank)) + \ + ADF_RING_CSR_RING_SRV_ARB_EN, \ + (value)) + +struct adf_hw_csr_info; +void gen4vf_init_hw_csr_info(struct adf_hw_csr_info *csr_info); + +#endif /* ADF_GEN4VF_HW_CSR_DATA_H_ */ diff --git a/sys/dev/qat/include/adf_pf2vf_msg.h b/sys/dev/qat/include/adf_pf2vf_msg.h deleted file mode 100644 index 9c8462a8f6b6..000000000000 --- a/sys/dev/qat/include/adf_pf2vf_msg.h +++ /dev/null @@ -1,182 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause */ -/* Copyright(c) 2007-2022 Intel Corporation */ -/* $FreeBSD$ */ -#ifndef ADF_PF2VF_MSG_H -#define ADF_PF2VF_MSG_H - -/* - * PF<->VF Messaging - * The PF has an array of 32-bit PF2VF registers, one for each VF. The - * PF can access all these registers; each VF can access only the one - * register associated with that particular VF. - * - * The register functionally is split into two parts: - * The bottom half is for PF->VF messages. In particular when the first - * bit of this register (bit 0) gets set an interrupt will be triggered - * in the respective VF. - * The top half is for VF->PF messages. In particular when the first bit - * of this half of register (bit 16) gets set an interrupt will be triggered - * in the PF. - * - * The remaining bits within this register are available to encode messages. - * and implement a collision control mechanism to prevent concurrent use of - * the PF2VF register by both the PF and VF. - * - * 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 - * _______________________________________________ - * | | | | | | | | | | | | | | | | | - * +-----------------------------------------------+ - * \___________________________/ \_________/ ^ ^ - * ^ ^ | | - * | | | VF2PF Int - * | | Message Origin - * | Message Type - * Message-specific Data/Reserved - * - * 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - * _______________________________________________ - * | | | | | | | | | | | | | | | | | - * +-----------------------------------------------+ - * \___________________________/ \_________/ ^ ^ - * ^ ^ | | - * | | | PF2VF Int - * | | Message Origin - * | Message Type - * Message-specific Data/Reserved - * - * Message Origin (Should always be 1) - * A legacy out-of-tree QAT driver allowed for a set of messages not supported - * by this driver; these had a Msg Origin of 0 and are ignored by this driver. - * - * When a PF or VF attempts to send a message in the lower or upper 16 bits, - * respectively, the other 16 bits are written to first with a defined - * IN_USE_BY pattern as part of a collision control scheme (see adf_iov_putmsg). - */ - -/* VF/PF compatibility version. */ -/* ADF_PFVF_COMPATIBILITY_EXT_CAP: Support for extended capabilities */ -#define ADF_PFVF_COMPATIBILITY_CAPABILITIES 2 -/* ADF_PFVF_COMPATIBILITY_FAST_ACK: In-use pattern cleared by receiver */ -#define ADF_PFVF_COMPATIBILITY_FAST_ACK 3 -#define ADF_PFVF_COMPATIBILITY_RING_TO_SVC_MAP 4 -#define ADF_PFVF_COMPATIBILITY_VERSION 4 /* PF<->VF compat */ - -/* PF->VF messages */ -#define ADF_PF2VF_INT BIT(0) -#define ADF_PF2VF_MSGORIGIN_SYSTEM BIT(1) -#define ADF_PF2VF_MSGTYPE_MASK 0x0000003C -#define ADF_PF2VF_MSGTYPE_SHIFT 2 -#define ADF_PF2VF_MSGTYPE_RESTARTING 0x01 -#define ADF_PF2VF_MSGTYPE_VERSION_RESP 0x02 -#define ADF_PF2VF_MSGTYPE_BLOCK_RESP 0x03 -#define ADF_PF2VF_MSGTYPE_FATAL_ERROR 0x04 -#define ADF_PF2VF_IN_USE_BY_PF 0x6AC20000 -#define ADF_PF2VF_IN_USE_BY_PF_MASK 0xFFFE0000 - -/* PF->VF Version Response */ -#define ADF_PF2VF_VERSION_RESP_VERS_MASK 0x00003FC0 -#define ADF_PF2VF_VERSION_RESP_VERS_SHIFT 6 -#define ADF_PF2VF_VERSION_RESP_RESULT_MASK 0x0000C000 -#define ADF_PF2VF_VERSION_RESP_RESULT_SHIFT 14 -#define ADF_PF2VF_MINORVERSION_SHIFT 6 -#define ADF_PF2VF_MAJORVERSION_SHIFT 10 -#define ADF_PF2VF_VF_COMPATIBLE 1 -#define ADF_PF2VF_VF_INCOMPATIBLE 2 -#define ADF_PF2VF_VF_COMPAT_UNKNOWN 3 - -/* PF->VF Block Request Type */ -#define ADF_VF2PF_MIN_SMALL_MESSAGE_TYPE 0 -#define ADF_VF2PF_MAX_SMALL_MESSAGE_TYPE (ADF_VF2PF_MIN_SMALL_MESSAGE_TYPE + 15) -#define ADF_VF2PF_MIN_MEDIUM_MESSAGE_TYPE (ADF_VF2PF_MAX_SMALL_MESSAGE_TYPE + 1) -#define ADF_VF2PF_MAX_MEDIUM_MESSAGE_TYPE \ - (ADF_VF2PF_MIN_MEDIUM_MESSAGE_TYPE + 7) -#define ADF_VF2PF_MIN_LARGE_MESSAGE_TYPE (ADF_VF2PF_MAX_MEDIUM_MESSAGE_TYPE + 1) -#define ADF_VF2PF_MAX_LARGE_MESSAGE_TYPE (ADF_VF2PF_MIN_LARGE_MESSAGE_TYPE + 3) -#define ADF_VF2PF_SMALL_PAYLOAD_SIZE 30 -#define ADF_VF2PF_MEDIUM_PAYLOAD_SIZE 62 -#define ADF_VF2PF_LARGE_PAYLOAD_SIZE 126 - -#define ADF_VF2PF_MAX_BLOCK_TYPE 3 -#define ADF_VF2PF_BLOCK_REQ_TYPE_SHIFT 22 -#define ADF_VF2PF_LARGE_BLOCK_BYTE_NUM_SHIFT 24 -#define ADF_VF2PF_MEDIUM_BLOCK_BYTE_NUM_SHIFT 25 -#define ADF_VF2PF_SMALL_BLOCK_BYTE_NUM_SHIFT 26 -#define ADF_VF2PF_BLOCK_REQ_CRC_SHIFT 31 -#define ADF_VF2PF_LARGE_BLOCK_BYTE_NUM_MASK 0x7F000000 -#define ADF_VF2PF_MEDIUM_BLOCK_BYTE_NUM_MASK 0x7E000000 -#define ADF_VF2PF_SMALL_BLOCK_BYTE_NUM_MASK 0x7C000000 -#define ADF_VF2PF_LARGE_BLOCK_REQ_TYPE_MASK 0xC00000 -#define ADF_VF2PF_MEDIUM_BLOCK_REQ_TYPE_MASK 0x1C00000 -#define ADF_VF2PF_SMALL_BLOCK_REQ_TYPE_MASK 0x3C00000 - -/* PF->VF Block Response Type */ -#define ADF_PF2VF_BLOCK_RESP_TYPE_DATA 0x0 -#define ADF_PF2VF_BLOCK_RESP_TYPE_CRC 0x1 -#define ADF_PF2VF_BLOCK_RESP_TYPE_ERROR 0x2 -#define ADF_PF2VF_BLOCK_RESP_TYPE_SHIFT 6 -#define ADF_PF2VF_BLOCK_RESP_DATA_SHIFT 8 -#define ADF_PF2VF_BLOCK_RESP_TYPE_MASK 0x000000C0 -#define ADF_PF2VF_BLOCK_RESP_DATA_MASK 0x0000FF00 - -/* PF-VF block message header bytes */ -#define ADF_VF2PF_BLOCK_VERSION_BYTE 0 -#define ADF_VF2PF_BLOCK_LEN_BYTE 1 -#define ADF_VF2PF_BLOCK_DATA 2 - -/* PF->VF Block Error Code */ -#define ADF_PF2VF_INVALID_BLOCK_TYPE 0x0 -#define ADF_PF2VF_INVALID_BYTE_NUM_REQ 0x1 -#define ADF_PF2VF_PAYLOAD_TRUNCATED 0x2 -#define ADF_PF2VF_UNSPECIFIED_ERROR 0x3 - -/* VF->PF messages */ -#define ADF_VF2PF_IN_USE_BY_VF 0x00006AC2 -#define ADF_VF2PF_IN_USE_BY_VF_MASK 0x0000FFFE -#define ADF_VF2PF_INT BIT(16) -#define ADF_VF2PF_MSGORIGIN_SYSTEM BIT(17) -#define ADF_VF2PF_MSGTYPE_MASK 0x003C0000 -#define ADF_VF2PF_MSGTYPE_SHIFT 18 -#define ADF_VF2PF_MSGTYPE_INIT 0x3 -#define ADF_VF2PF_MSGTYPE_SHUTDOWN 0x4 -#define ADF_VF2PF_MSGTYPE_VERSION_REQ 0x5 -#define ADF_VF2PF_MSGTYPE_COMPAT_VER_REQ 0x6 -#define ADF_VF2PF_MSGTYPE_GET_LARGE_BLOCK_REQ 0x7 -#define ADF_VF2PF_MSGTYPE_GET_MEDIUM_BLOCK_REQ 0x8 -#define ADF_VF2PF_MSGTYPE_GET_SMALL_BLOCK_REQ 0x9 -#define ADF_VF2PF_MSGTYPE_NOTIFY 0xa -#define ADF_VF2PF_MSGGENC_RESTARTING_COMPLETE 0x0 - -/* Block message types - * 0..15 - 32 byte message - * 16..23 - 64 byte message - * 24..27 - 128 byte message - * 2 - Get Capability Request message - */ -#define ADF_VF2PF_BLOCK_MSG_CAP_SUMMARY 2 -#define ADF_VF2PF_BLOCK_MSG_GET_RING_TO_SVC_REQ 0x3 - -/* VF->PF Compatible Version Request */ -#define ADF_VF2PF_COMPAT_VER_REQ_SHIFT 22 - -/* How long to wait for far side to acknowledge receipt */ -#define ADF_IOV_MSG_ACK_DELAY_US 5 -#define ADF_IOV_MSG_ACK_EXP_MAX_DELAY_US (5 * 1000) -#define ADF_IOV_MSG_ACK_DELAY_MS 5 -#define ADF_IOV_MSG_ACK_LIN_MAX_DELAY_US (2 * 1000 * 1000) -/* If CSR is busy, how long to delay before retrying */ -#define ADF_IOV_MSG_RETRY_DELAY 5 -#define ADF_IOV_MSG_MAX_RETRIES 10 -/* How long to wait for a response from the other side */ -#define ADF_IOV_MSG_RESP_TIMEOUT 100 -/* How often to retry when there is no response */ -#define ADF_IOV_MSG_RESP_RETRIES 5 - -#define ADF_IOV_RATELIMIT_INTERVAL 8 -#define ADF_IOV_RATELIMIT_BURST 130 - -/* CRC Calculation */ -#define ADF_CRC8_INIT_VALUE 0xFF -/* PF VF message byte shift */ -#define ADF_PFVF_DATA_SHIFT 8 -#define ADF_PFVF_DATA_MASK 0xFF -#endif /* ADF_IOV_MSG_H */ diff --git a/sys/dev/qat/include/adf_pfvf_vf_msg.h b/sys/dev/qat/include/adf_pfvf_vf_msg.h new file mode 100644 index 000000000000..89ed5a740b29 --- /dev/null +++ b/sys/dev/qat/include/adf_pfvf_vf_msg.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* Copyright(c) 2007-2022 Intel Corporation */ +/* $FreeBSD$ */ +#ifndef ADF_PFVF_VF_MSG_H +#define ADF_PFVF_VF_MSG_H + +int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev); +void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev); +int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev); +int adf_vf2pf_get_capabilities(struct adf_accel_dev *accel_dev); +int adf_vf2pf_get_ring_to_svc(struct adf_accel_dev *accel_dev); + +#endif /* ADF_PFVF_VF_MSG_H */ diff --git a/sys/dev/qat/include/common/adf_accel_devices.h b/sys/dev/qat/include/common/adf_accel_devices.h index 9503069ac2a2..225b86a2a7e1 100644 --- a/sys/dev/qat/include/common/adf_accel_devices.h +++ b/sys/dev/qat/include/common/adf_accel_devices.h @@ -6,6 +6,7 @@ #include "qat_freebsd.h" #include "adf_cfg_common.h" +#include "adf_pfvf_msg.h" #define ADF_CFG_NUM_SERVICES 4 @@ -20,6 +21,7 @@ #define ADF_C4XXX_DEVICE_NAME "c4xxx" #define ADF_C4XXXVF_DEVICE_NAME "c4xxxvf" #define ADF_4XXX_DEVICE_NAME "4xxx" +#define ADF_4XXXVF_DEVICE_NAME "4xxxvf" #define ADF_DH895XCC_PCI_DEVICE_ID 0x435 #define ADF_DH895XCCIOV_PCI_DEVICE_ID 0x443 #define ADF_C62X_PCI_DEVICE_ID 0x37c8 @@ -33,13 +35,17 @@ #define ADF_C4XXX_PCI_DEVICE_ID 0x18a0 #define ADF_C4XXXIOV_PCI_DEVICE_ID 0x18a1 #define ADF_4XXX_PCI_DEVICE_ID 0x4940 +#define ADF_4XXXIOV_PCI_DEVICE_ID 0x4941 #define ADF_401XX_PCI_DEVICE_ID 0x4942 +#define ADF_401XXIOV_PCI_DEVICE_ID 0x4943 #define IS_QAT_GEN3(ID) ({ (ID == ADF_C4XXX_PCI_DEVICE_ID); }) static inline bool IS_QAT_GEN4(const unsigned int id) { - return (id == ADF_4XXX_PCI_DEVICE_ID || id == ADF_401XX_PCI_DEVICE_ID); + return (id == ADF_4XXX_PCI_DEVICE_ID || id == ADF_401XX_PCI_DEVICE_ID || + id == ADF_4XXXIOV_PCI_DEVICE_ID || + id == ADF_401XXIOV_PCI_DEVICE_ID); } #define IS_QAT_GEN3_OR_GEN4(ID) (IS_QAT_GEN3(ID) || IS_QAT_GEN4(ID)) @@ -85,7 +91,7 @@ IS_QAT_GEN4(const unsigned int id) (((ena_srv_mask) >> (ADF_SRV_TYPE_BIT_LEN * (srv))) & ADF_SRV_TYPE_MASK) #define GET_CSR_OPS(accel_dev) (&(accel_dev)->hw_device->csr_info.csr_ops) - +#define GET_PFVF_OPS(accel_dev) (&(accel_dev)->hw_device->csr_info.pfvf_ops) #define ADF_DEFAULT_RING_TO_SRV_MAP \ (CRYPTO | CRYPTO << ADF_CFG_SERV_RING_PAIR_1_SHIFT | \ NA << ADF_CFG_SERV_RING_PAIR_2_SHIFT | \ @@ -266,6 +272,9 @@ struct adf_hw_csr_ops { u32 bank, u32 ring, u32 value); + bus_addr_t (*read_csr_ring_base)(struct resource *csr_base_addr, + u32 bank, + u32 ring); void (*write_csr_ring_base)(struct resource *csr_base_addr, u32 bank, u32 ring, @@ -288,10 +297,36 @@ struct adf_hw_csr_ops { void (*write_csr_ring_srv_arb_en)(struct resource *csr_base_addr, u32 bank, u32 value); + u32 (*get_src_sel_mask)(void); + u32 (*get_int_col_ctl_enable_mask)(void); + u32 (*get_bank_irq_mask)(u32 irq_mask); +}; + +struct adf_cfg_device_data; +struct adf_accel_dev; +struct adf_etr_data; +struct adf_etr_ring_data; + +struct adf_pfvf_ops { + int (*enable_comms)(struct adf_accel_dev *accel_dev); + u32 (*get_pf2vf_offset)(u32 i); + u32 (*get_vf2pf_offset)(u32 i); + void (*enable_vf2pf_interrupts)(struct resource *pmisc_addr, + u32 vf_mask); + void (*disable_all_vf2pf_interrupts)(struct resource *pmisc_addr); + u32 (*disable_pending_vf2pf_interrupts)(struct resource *pmisc_addr); + int (*send_msg)(struct adf_accel_dev *accel_dev, + struct pfvf_message msg, + u32 pfvf_offset, + struct mutex *csr_lock); + struct pfvf_message (*recv_msg)(struct adf_accel_dev *accel_dev, + u32 pfvf_offset, + u8 compat_ver); }; struct adf_hw_csr_info { struct adf_hw_csr_ops csr_ops; + struct adf_pfvf_ops pfvf_ops; u32 csr_addr_offset; u32 ring_bundle_size; u32 bank_int_flag_clear_mask; @@ -299,11 +334,6 @@ struct adf_hw_csr_info { u32 arb_enable_mask; }; -struct adf_cfg_device_data; -struct adf_accel_dev; -struct adf_etr_data; -struct adf_etr_ring_data; - struct adf_hw_device_data { struct adf_hw_device_class *dev_class; uint32_t (*get_accel_mask)(struct adf_accel_dev *accel_dev); @@ -315,9 +345,6 @@ struct adf_hw_device_data { uint32_t (*get_num_accels)(struct adf_hw_device_data *self); void (*notify_and_wait_ethernet)(struct adf_accel_dev *accel_dev); bool (*get_eth_doorbell_msg)(struct adf_accel_dev *accel_dev); - uint32_t (*get_pf2vf_offset)(uint32_t i); - uint32_t (*get_vintmsk_offset)(uint32_t i); - u32 (*get_vintsou_offset)(void); void (*get_arb_info)(struct arb_info *arb_csrs_info); void (*get_admin_info)(struct admin_info *admin_csrs_info); void (*get_errsou_offset)(u32 *errsou3, u32 *errsou5); @@ -352,6 +379,8 @@ struct adf_hw_device_data { const uint32_t **cfg); int (*init_device)(struct adf_accel_dev *accel_dev); int (*get_heartbeat_status)(struct adf_accel_dev *accel_dev); + int (*int_timer_init)(struct adf_accel_dev *accel_dev); + void (*int_timer_exit)(struct adf_accel_dev *accel_dev); uint32_t (*get_ae_clock)(struct adf_hw_device_data *self); uint32_t (*get_hb_clock)(struct adf_hw_device_data *self); void (*disable_iov)(struct adf_accel_dev *accel_dev); @@ -360,8 +389,10 @@ struct adf_hw_device_data { void (*enable_ints)(struct adf_accel_dev *accel_dev); bool (*check_slice_hang)(struct adf_accel_dev *accel_dev); int (*set_ssm_wdtimer)(struct adf_accel_dev *accel_dev); - int (*enable_vf2pf_comms)(struct adf_accel_dev *accel_dev); - int (*disable_vf2pf_comms)(struct adf_accel_dev *accel_dev); + void (*enable_pf2vf_interrupt)(struct adf_accel_dev *accel_dev); + void (*disable_pf2vf_interrupt)(struct adf_accel_dev *accel_dev); + int (*interrupt_active_pf2vf)(struct adf_accel_dev *accel_dev); + int (*get_int_active_bundles)(struct adf_accel_dev *accel_dev); void (*reset_device)(struct adf_accel_dev *accel_dev); void (*reset_hw_units)(struct adf_accel_dev *accel_dev); int (*measure_clock)(struct adf_accel_dev *accel_dev); @@ -378,6 +409,11 @@ struct adf_hw_device_data { char *aeidstr); void (*remove_misc_error)(struct adf_accel_dev *accel_dev); int (*configure_accel_units)(struct adf_accel_dev *accel_dev); + int (*ring_pair_reset)(struct adf_accel_dev *accel_dev, + u32 bank_number); + void (*config_ring_irq)(struct adf_accel_dev *accel_dev, + u32 bank_number, + u16 ring_mask); uint32_t (*get_objs_num)(struct adf_accel_dev *accel_dev); const char *(*get_obj_name)(struct adf_accel_dev *accel_dev, enum adf_accel_unit_services services); @@ -411,7 +447,6 @@ struct adf_hw_device_data { uint8_t num_accel; uint8_t num_logical_accel; uint8_t num_engines; - uint8_t min_iov_compat_ver; int (*get_storage_enabled)(struct adf_accel_dev *accel_dev, uint32_t *storage_enabled); u8 query_storage_cap; @@ -419,6 +454,7 @@ struct adf_hw_device_data { u8 storage_enable; u32 extended_dc_capabilities; int (*config_device)(struct adf_accel_dev *accel_dev); + u32 asym_ae_active_thd_mask; u16 asym_rings_mask; int (*get_fw_image_type)(struct adf_accel_dev *accel_dev, enum adf_cfg_fw_image_type *fw_image_type); @@ -603,6 +639,15 @@ struct adf_fw_versions { u8 mmp_version_patch; }; +struct adf_int_timer { + struct adf_accel_dev *accel_dev; + struct workqueue_struct *timer_irq_wq; + struct timer_list timer; + u32 timeout_val; + u32 int_cnt; + bool enabled; +}; + #define ADF_COMPAT_CHECKER_MAX 8 typedef int (*adf_iov_compat_checker_t)(struct adf_accel_dev *accel_dev, u8 vf_compat_ver); @@ -620,7 +665,9 @@ struct adf_accel_dev { struct adf_cfg_device_data *cfg; struct adf_fw_loader_data *fw_loader; struct adf_admin_comms *admin; + struct adf_uio_control_accel *accel; struct adf_heartbeat *heartbeat; + struct adf_int_timer *int_timer; struct adf_fw_versions fw_versions; unsigned int autoreset_on_error; struct adf_fw_counters_data *fw_counters_data; @@ -648,17 +695,18 @@ struct adf_accel_dev { int num_vfs; } pf; struct { + bool irq_enabled; struct resource *irq; void *cookie; - char *irq_name; struct task pf2vf_bh_tasklet; struct mutex vf2pf_lock; /* protect CSR access */ - int iov_msg_completion; - uint8_t compatible; - uint8_t pf_version; - u8 pf2vf_block_byte; - u8 pf2vf_block_resp_type; + struct completion msg_received; + struct pfvf_message + response; /* temp field holding pf2vf response */ + enum ring_reset_result rpreset_sts; + struct mutex rpreset_lock; /* protect rpreset_sts */ struct pfvf_stats pfvf_counters; + u8 pf_compat_ver; } vf; } u1; bool is_vf; diff --git a/sys/dev/qat/include/common/adf_cfg.h b/sys/dev/qat/include/common/adf_cfg.h index 58502c8605b8..a3ac7678a7a8 100644 --- a/sys/dev/qat/include/common/adf_cfg.h +++ b/sys/dev/qat/include/common/adf_cfg.h @@ -9,6 +9,8 @@ #include "adf_cfg_common.h" #include "adf_cfg_strings.h" +#define ADF_CFG_MAX_VAL 16 + struct adf_cfg_key_val { char key[ADF_CFG_MAX_KEY_LEN_IN_BYTES]; char val[ADF_CFG_MAX_VAL_LEN_IN_BYTES]; @@ -29,6 +31,9 @@ struct adf_cfg_device_data { struct list_head sec_list; struct sysctl_oid *debug; struct sx lock; + char cfg_services[ADF_CFG_MAX_VAL]; + char cfg_mode[ADF_CFG_MAX_VAL]; + u16 num_user_processes; }; struct adf_cfg_depot_list { diff --git a/sys/dev/qat/include/common/adf_cfg_common.h b/sys/dev/qat/include/common/adf_cfg_common.h index 65fc60fc8c3d..d8b1efe3dbe6 100644 --- a/sys/dev/qat/include/common/adf_cfg_common.h +++ b/sys/dev/qat/include/common/adf_cfg_common.h @@ -88,7 +88,10 @@ enum adf_device_type { DEV_200XXVF, DEV_C4XXX, DEV_C4XXXVF, - DEV_4XXX + DEV_D15XX, + DEV_D15XXVF, + DEV_4XXX, + DEV_4XXXVF }; enum adf_cfg_fw_image_type { @@ -196,9 +199,23 @@ struct adf_cfg_instance { #define ADF_CFG_DEF_ASYM_MASK 0x03 #define ADF_CFG_MAX_SERVICES 4 +#define ADF_CTL_IOC_MAGIC 'a' +#define IOCTL_STATUS_ACCEL_DEV \ + _IOWR(ADF_CTL_IOC_MAGIC, 3, struct adf_dev_status_info) +#define IOCTL_RESERVE_RING \ + _IOWR(ADF_CTL_IOC_MAGIC, 10, struct adf_user_reserve_ring) +#define IOCTL_RELEASE_RING \ + _IOWR(ADF_CTL_IOC_MAGIC, 11, struct adf_user_reserve_ring) +#define IOCTL_ENABLE_RING \ + _IOWR(ADF_CTL_IOC_MAGIC, 12, struct adf_user_reserve_ring) +#define IOCTL_DISABLE_RING \ + _IOWR(ADF_CTL_IOC_MAGIC, 13, struct adf_user_reserve_ring) +#define IOCTL_GET_NUM_DEVICES _IOR(ADF_CTL_IOC_MAGIC, 4, int32_t) #define ADF_CFG_HB_DEFAULT_VALUE 500 #define ADF_CFG_HB_COUNT_THRESHOLD 3 #define ADF_MIN_HB_TIMER_MS 100 +#define IOCTL_GET_CFG_VAL \ + _IOW(ADF_CTL_IOC_MAGIC, 5, struct adf_user_cfg_ctl_data) enum adf_device_heartbeat_status { DEV_HB_UNRESPONSIVE = 0, @@ -210,4 +227,6 @@ struct adf_dev_heartbeat_status_ctl { uint16_t device_id; enum adf_device_heartbeat_status status; }; +#define IOCTL_HEARTBEAT_ACCEL_DEV \ *** 27173 LINES SKIPPED *** From nobody Mon Jun 12 17:56:39 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfzs42QBJz4cZJx; Mon, 12 Jun 2023 17:56:40 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfzs367cBz3hNT; Mon, 12 Jun 2023 17:56:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592599; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lPdbKIBmNkci4TV9d/tUtRpQ2/rrYMjb3N7zE6YZ7o8=; b=ynsKFJfYlTbuH7XX6i0ySW6b1FdAIlcbmBtblchnZIW+4XpBgk2sMikunhbi8xEkeeQO4g cLtnACDtk72uRMKvuVjqMmOI4jZEfz0HNw7smiT9MsPnUWNTLSyBeZGOUFDZNp87ozOuvn QbRJt7IRF4/qF7SOj4PGbGS6pbdOpk3x1C6Q8lXYBd5vbVzg5uTEMMPK+hc0uzGKuZamlc S5YbsNNXZdYp2oVnCy1UMOnGU8TAmcZL7aj3fxoidaNlGpLTDYLF7uiCEXTMYt1jI4xULH dvJjcSz13etuWMFFQv8WD9A6hM65OWbSGcJjln5lsibxOEWUOqjO3DE+yRfScQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592599; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lPdbKIBmNkci4TV9d/tUtRpQ2/rrYMjb3N7zE6YZ7o8=; b=us1Rezmcxe7/frZ+WxjY9PP+zQE/mwOTVAtDzUa8LP/iTIzXYAV8i1JnIrmu73BvRp7Y4u ojEW0kawTEFZ05vvBWVy0RiL3gGULYdRTXzvJddj7YaHVLOEMzTkZXA2Xp1RTNY0q0FzyL 8D6L/1WT0Y0SFeceosYDTn5d5X38NNlRx6ady134fO+fca+iZ3LAF7LQ3Y1jczQN2YMZgu CwIbiNG7DxM9ojQN1vP/dZiuUgIYgoZCfrRJEklsRW/MNGZFUIHmKzKPihlGXvM4cUQZh2 KhQ3FZfvXMnK2ZhOisOpl+vmZhrXj0aeFf9Mw4YDKoz60BUHzpPtaTfp0KCEJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686592599; a=rsa-sha256; cv=none; b=jWnE4uaxi79R8uO3rxzTzPMKgufrBnjRb6lIOBiQq2DxIdHwrYFcsPmBMp7ck5fHYG3jbQ bjf9DHkoac3rsf3tQB2tYqzXCXX/H92RmRkCRUWxggcD7sdu0p5x5uOsTFsBX9rFoZ/aZM pKzUYlj5Qh9HmP1ayn6CG+Bmu7myA8PrHYSIIWwViYEpbIANY83i39ey9XJnk6W4ijQjPA rF9PVBpc2mv6CWLT9MIPhxgZ+Q4n5sXoDjVJtY0jT06IyYeB7D2PMW34om38E64majnZaq XMnW/rGscetCjY487JDtShStPfH29uflRevrayUq/i6BFq/iouf1edneFvPqnA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qfzs35DHpzq5t; Mon, 12 Jun 2023 17:56:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CHud26092959; Mon, 12 Jun 2023 17:56:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CHudHE092958; Mon, 12 Jun 2023 17:56:39 GMT (envelope-from git) Date: Mon, 12 Jun 2023 17:56:39 GMT Message-Id: <202306121756.35CHudHE092958@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 280826817ff3 - main - qatfw: Don't build if WITH_SOURCELESS_UCODE is defined List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 280826817ff38194cbd7e202e77fc297e5dfdaf3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=280826817ff38194cbd7e202e77fc297e5dfdaf3 commit 280826817ff38194cbd7e202e77fc297e5dfdaf3 Author: Mark Johnston AuthorDate: 2023-06-12 17:47:51 +0000 Commit: Mark Johnston CommitDate: 2023-06-12 17:47:51 +0000 qatfw: Don't build if WITH_SOURCELESS_UCODE is defined --- sys/modules/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 4a378ac578c1..340d6f61a2b6 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -811,7 +811,9 @@ _ixl= ixl _nvdimm= nvdimm _pms= pms _qat= qat +.if ${MK_SOURCELESS_UCODE} != "no" _qatfw= qatfw +.endif _qlxge= qlxge _qlxgb= qlxgb _sume= sume From nobody Mon Jun 12 17:58:05 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qfztk66qYz4cZss; Mon, 12 Jun 2023 17:58:06 +0000 (UTC) (envelope-from jhb@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qfztk5fXSz3jPR; Mon, 12 Jun 2023 17:58:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8yXN20wB9mkCFfKJlwZ8QKLfrJcRCgIR/yTa/5NynA4=; b=a8RoKS37p3JNKpuHi0b5u9d9szm1zl7NP/kwxN6OMoAVFI2fCfA7QWar1pG3NHZseOe6rx gz2rWKcNAUlmsWRhD93SYiVijDz65b0ms+TX7oeSjw+zSZaj/YaZ16TECGP3LWdYem8QxA EdjHMkM8L5PHFy0fvPyvxQW2c820RnyVmBhKCL8i0JJU0BlQeTpMa1Ng58ZTLhWaYnZ2Do qT9DcezwcnD7ILbzSLaumCfQmWnbmfDypecG4FrS2+a/vHiix1qeMZ8JB6GvBUcUIMlYYd oTyrv4Xzp1Q+XhSPw7lFdBzFkuzNhidLhhpoCFIZSBqRrd5PknawzM2briREJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686592686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8yXN20wB9mkCFfKJlwZ8QKLfrJcRCgIR/yTa/5NynA4=; b=A9fNPJZVzio3bE97J5/PS/KsuXNElFngEmQInSNPXisB3topLkJDD1R89ju7TTtKwcRUz5 JkaC188kTR8xdK9teC64ug2Qc3pYCaxvWumGpMBYK0OXd5Mp8P9zbFliVbGlkX3vT6LulT GSAF96l0kB9eVT2K7F8uX2Wb0kSvD/Y2FhaUB5RwdeMiMrCq/QK3jLfQnxJt9qo5Bnqz1C RaZJfS78D6PIs9fj0M3Wbm9++W7FXg624dp2yW1cJSwDbZDk/P/mDHTM0EYL7pLJ2FpXwX 5ANOFO/rZfPPBx6NURj4oNycr+5toT1kEC+DxPN/w3Tf05IZVwUgP5GE5X8osg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686592686; a=rsa-sha256; cv=none; b=fUrcdT5riysHNaKBI9n+yCg592raGC+f1arZcNvHk9ZHPvZjNZ1jB9QXn3oCDP38Yht8VU uLnlpHC7pLg+m2wimP2rUKsfcv1rjUavu++UQzAVz6e0UnLo0Yf0RlaHMZdlV6mtIiWUZJ k99YffgaEGO9SK4jM3C/7jg1byF9WGRVbTVzpqFAWbH+VNb0oFJpeHJSOguiudq/H4HnM6 M3fC669vLngwRYNrcDvg6ojAhCUhI8yTwMG8a3Z7tCVO1FAZFO/wl1Z1HYaQEZKaNgr0wU lwgR9JjbnHcCygqUu9kqbszBHk1f1JgyvnUCcHeeGc+InI/ahwA79a7zCvBYpw== Received: from [IPV6:2601:648:8680:16b0:987a:2c1:30f8:4dc5] (unknown [IPv6:2601:648:8680:16b0:987a:2c1:30f8:4dc5]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4Qfztk1BqSzTTf; Mon, 12 Jun 2023 17:58:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <6995d69e-e86e-5a16-7d82-d1869d5d281e@FreeBSD.org> Date: Mon, 12 Jun 2023 10:58:05 -0700 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: git: 3ed646d89aa4 - main - fix qcom_cpu_kpssv2 compile on ASUS_AC1300 Content-Language: en-US To: Warner Losh , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202306121433.35CEXmGO062717@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: <202306121433.35CEXmGO062717@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ThisMailContainsUnwantedMimeParts: N On 6/12/23 7:33 AM, Warner Losh wrote: > The branch main has been updated by imp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3ed646d89aa4a312ceb1bdcb948f91903860f8f0 > > commit 3ed646d89aa4a312ceb1bdcb948f91903860f8f0 > Author: Mina Galić > AuthorDate: 2023-06-11 21:12:59 +0000 > Commit: Warner Losh > CommitDate: 2023-06-12 14:30:15 +0000 > > fix qcom_cpu_kpssv2 compile on ASUS_AC1300 > > Complete afdb42987ca8 by changing the return type from boolean_t to bool > for the definition for qcom_cpu_kpssv2_regulator_start. > > PR: 271932 > Fixes: afdb42987ca82869eeaecf6dc25c2b6fb7b8370e > Pull Request: https://github.com/freebsd/freebsd-src/pull/776 Oops, I wondered why I had this as a local diff in my "main" checkout. :( -- John Baldwin From nobody Mon Jun 12 18:37:00 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qg0ld0rhkz4cngM; Mon, 12 Jun 2023 18:37:01 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qg0ld0LpBz3pqW; Mon, 12 Jun 2023 18:37:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686595021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fEYc7AgmTYbwgNAYW+MDSWjeDjyebWp312C/fFfIL60=; b=JlDx8mA5zb4dATGGNtyL3umjjNCuJWJZskSF7ununrPJCWWdaiwYB9QjTcKQkwPx7ZyPPy he/zkR9kmYiGscab6OG3EaO2om8tljbSV7xiw5g/bK0VF1jpO9xPGSJCEfFOMfn1f80Q4l fgvYJWfntdcmu6V7rlnZCEeqG4oA4cE5fC6/Ue8UHzXQIywBmODQEPo19aHEnkzX692VzH qSUssjbSd5ki60S49YVtIlHEr0C6sUmrDa8XWdNrIBz9iK6frn4A4nEy0oOOgCADtqpwhk TtmFyg/3LrYI+OyIrxTIbNXOC+IKRa92jy63gKMc9xbhhzprUWxctrpmYKEFzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686595021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fEYc7AgmTYbwgNAYW+MDSWjeDjyebWp312C/fFfIL60=; b=ycU2dH9dscVQ3dhtlU44bfFPbOy4nSW3Ibiv8E1A8sEHCQhOqU3VRxLUe1WVuJDRvD3DoH X5vOqGB6bOxRelN94zC8ZGMgkE5BjbevaSrr2Kg8hThSIHYOuVZfwbTY3Wb6iwU2Bl1Unf eRmQ4JCpK45zCka6PkDBrfHkGOj04fH5+E+x/tN4peHvxXT8R53Dt6KEhgrhhelznEqufI j+dIK6U0VuSdIr9cE45A12pyr4umHKpXdHDIEueKuP6vSNCW/t+OhaujAtOOKOd7vhEebI RkkPNy49gKDyJicZpXfwjkrjEj4xdt6TqyzSHc/kurKx6J7rN6k+R3q0NlN7og== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686595021; a=rsa-sha256; cv=none; b=k4XgQD/PFTW6FoVFjXTxZj6Ae2TkuFcmlF98FNMJiTP8j4xk83Jo2w2NRS6IzdGU/1rBVn qoM0B9hx+ys+dHsdQZL74VRW2tsgKVqxI/GglUm9zWCmMaLuzKa0SdpAL4y0BbQ0iWDaW/ FWSoQJWlV86BPZ2ajQlQdY3H/9W+Q/sJw7AOkg5lnGO2oH1mBWx89YMRnP7gH3vTpzeacZ FQlMPy3u/72H+nfGcdV+mqlwVD6gaZHYlLveELs/gDgkJsBivkWDckjRHHgT1hK1rQWlcV AZLMsr89C59COvPqBSBE562mgXE3Sh476tKl5t53Yqxus/DGOIzwBTuSSB9Kzw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qg0lc6Y4fzqrV; Mon, 12 Jun 2023 18:37:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CIb00Y059119; Mon, 12 Jun 2023 18:37:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CIb02G059118; Mon, 12 Jun 2023 18:37:00 GMT (envelope-from git) Date: Mon, 12 Jun 2023 18:37:00 GMT Message-Id: <202306121837.35CIb02G059118@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 1dd6f95bb90d - main - wg(4): add Matt Macy back to AUTHORS section List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1dd6f95bb90d9c782f2d61dbd33d9803e15e4064 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1dd6f95bb90d9c782f2d61dbd33d9803e15e4064 commit 1dd6f95bb90d9c782f2d61dbd33d9803e15e4064 Author: Ed Maste AuthorDate: 2023-06-12 17:54:56 +0000 Commit: Ed Maste CommitDate: 2023-06-12 18:36:34 +0000 wg(4): add Matt Macy back to AUTHORS section Matt did the initial in-kernel FreeBSD driver port. The driver would not exist without that work and some of it remains, even if the driver was largely rewritten and reworked before being added back to the tree. Authors remain in alphabetical order by surname. Sponsored by: The FreeBSD Foundation --- share/man/man4/wg.4 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/share/man/man4/wg.4 b/share/man/man4/wg.4 index 6d0d16d942df..4edda2a06de8 100644 --- a/share/man/man4/wg.4 +++ b/share/man/man4/wg.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 11, 2022 +.Dd June 12, 2023 .Dt WG 4 .Os .Sh NAME @@ -207,8 +207,9 @@ The device driver was written by .An Jason A. Donenfeld Aq Mt Jason@zx2c4.com , .An Matt Dunwoodie Aq Mt ncon@nconroy.net , +.An Kyle Evans Aq Mt kevans@FreeBSD.org , and -.An Kyle Evans Aq Mt kevans@FreeBSD.org . +.An Matt Macy Aq Mt mmacy@FreeBSD.org . .Pp This manual page was written by .An Gordon Bergling Aq Mt gbe@FreeBSD.org From nobody Mon Jun 12 18:42:17 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qg0sk0Btjz4cntF; Mon, 12 Jun 2023 18:42:18 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qg0sj6w3jz3r4v; Mon, 12 Jun 2023 18:42:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686595337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LeoJtRQ3a/WR7ehnNiKr+1C4LP8xmDeWy+xptoXC/AA=; b=oOOtZmOAhT/lfvRQc6+q+wSzJOtqkoXXP0oOa873Yh0EEtjCavcHO16x8dJSCz/9i9tPQN t89t6EAbaTAeczr0m1bh+6S5UCAdgMIHE3DAEOFBKvx2/jzE38HdgOJfm9psM71jy93/k8 D9DeXJ3B+iZ18ypTCNBSrKz6RGL8iJXCzsn9coBB0wOS4L9WAPMtlLEpbGRO0McjmpBDno +zr2Vf/wwqxWk5ZHlt1E8iJJQcvUKS3Sh0Mm++VlNb5QW/haFjwZ6iM2f8uSbsPb50CUu0 X94OLN36/usffO/Le7Lt0HOE0I7u8P+NS//HZsZEzC2CsOBq0LKNaL0W5ff24A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686595337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LeoJtRQ3a/WR7ehnNiKr+1C4LP8xmDeWy+xptoXC/AA=; b=idgtfVaJAsIIGofV1Iia+h5dpsV/ofu0xlGlrtISyWI7vEqkChLY9+YIxHitE5k9gn00wr qhzOtWuxrEGQg1fvzdTtgL7y0ppGslAsdO0AasWFpFgKXIdiEfy9YKSYWfuWNThVgIdsFr /vYfJqocurkY8EnLnAJlAhXWH8eEg/LiSyrRo3W2lo5mv55cYKDK5+gy7mwlKYDQwnbibH cRqKQmp91AtcllhHns/uJVETODCO1yrSCNLced0ao/i8vtmJiR0GSyQc1J1falxKF7CXIr 7oJ1AtL4Fs2JSYUEK6gdsnQfWKeP58njoussZNBEIvBkGApNHbmULe80jE1Ikg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686595337; a=rsa-sha256; cv=none; b=uy0YWC8v2vqZ7400Hg2xQ62y1Kyrs8ztA0zlQQUqi8qGkx5c1R2May3Sxkl1Ot+E28pgnS +MdS25Pd3/vqgNChfYMitpqCmt/2N61eREuC51zOTMRgP+oHplY5nFsei0gCFc1LofxRtf oGRKViQ7KAWDF0F36yPpXR9IHkLlWFqLvWBvH1C7d20gRcIyZ0WDORDskOqKsoKi2cVxbN b8R+WMmVeS1WVKchpkhts0bZLnIchMBJ6I4yDFaYyYwK8tMZT6EkgIwaICI2b/f/kvenX0 Uqf8W91ypnigKpHKeh5giCe6MjsvnW3pFgykUAMBGIEc/bB38JBz1q5ZAeUZFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qg0sj60lszr8l; Mon, 12 Jun 2023 18:42:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CIgHjp073743; Mon, 12 Jun 2023 18:42:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CIgH6w073742; Mon, 12 Jun 2023 18:42:17 GMT (envelope-from git) Date: Mon, 12 Jun 2023 18:42:17 GMT Message-Id: <202306121842.35CIgH6w073742@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alan Cox Subject: git: 34eeabff5a86 - main - amd64/arm64 pmap: Stop requiring the accessed bit for superpage promotion List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: alc X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 34eeabff5a8636155bb02985c5928c1844fd3178 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by alc: URL: https://cgit.FreeBSD.org/src/commit/?id=34eeabff5a8636155bb02985c5928c1844fd3178 commit 34eeabff5a8636155bb02985c5928c1844fd3178 Author: Alan Cox AuthorDate: 2023-05-31 23:10:41 +0000 Commit: Alan Cox CommitDate: 2023-06-12 18:40:57 +0000 amd64/arm64 pmap: Stop requiring the accessed bit for superpage promotion Stop requiring all of the PTEs to have the accessed bit set for superpage promotion to occur. Given that change, add support for promotion to pmap_enter_quick(), which does not set the accessed bit in the PTE that it creates. Since the final mapping within a superpage-aligned and sized region of a memory-mapped file is typically created by a call to pmap_enter_quick(), we now achieve promotions in circumstances where they did not occur before, for example, the X server's read-only mapping of libLLVM-15.so. See also https://www.usenix.org/system/files/atc20-zhu-weixi_0.pdf Reviewed by: kib, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D40478 --- sys/amd64/amd64/pmap.c | 154 +++++++++++++++++++++++++++++++---------------- sys/amd64/include/pmap.h | 2 +- sys/arm64/arm64/pmap.c | 122 +++++++++++++++++++++++++++++++------ 3 files changed, 205 insertions(+), 73 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 123811ed573f..3cb02a4f9daa 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -313,6 +313,33 @@ pmap_pku_mask_bit(pmap_t pmap) return (pmap->pm_type == PT_X86 ? X86_PG_PKU_MASK : 0); } +static __inline boolean_t +safe_to_clear_referenced(pmap_t pmap, pt_entry_t pte) +{ + + if (!pmap_emulate_ad_bits(pmap)) + return (TRUE); + + KASSERT(pmap->pm_type == PT_EPT, ("invalid pm_type %d", pmap->pm_type)); + + /* + * XWR = 010 or 110 will cause an unconditional EPT misconfiguration + * so we don't let the referenced (aka EPT_PG_READ) bit to be cleared + * if the EPT_PG_WRITE bit is set. + */ + if ((pte & EPT_PG_WRITE) != 0) + return (FALSE); + + /* + * XWR = 100 is allowed only if the PMAP_SUPPORTS_EXEC_ONLY is set. + */ + if ((pte & EPT_PG_EXECUTE) == 0 || + ((pmap->pm_flags & PMAP_SUPPORTS_EXEC_ONLY) != 0)) + return (TRUE); + else + return (FALSE); +} + #if !defined(DIAGNOSTIC) #ifdef __GNUC_GNU_INLINE__ #define PMAP_INLINE __attribute__((__gnu_inline__)) inline @@ -1279,7 +1306,8 @@ static int pmap_enter_pde(pmap_t pmap, vm_offset_t va, pd_entry_t newpde, static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte, struct rwlock **lockp); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); -static int pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte, bool promoted); +static int pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte, bool promoted, + bool allpte_PG_A_set); static void pmap_invalidate_cache_range_selfsnoop(vm_offset_t sva, vm_offset_t eva); static void pmap_invalidate_cache_range_all(vm_offset_t sva, @@ -2491,7 +2519,7 @@ pmap_init(void) */ if ((i == 0 || kernphys + ((vm_paddr_t)(i - 1) << PDRSHIFT) < KERNend) && - pmap_insert_pt_page(kernel_pmap, mpte, false)) + pmap_insert_pt_page(kernel_pmap, mpte, false, false)) panic("pmap_init: pmap_insert_pt_page failed"); } PMAP_UNLOCK(kernel_pmap); @@ -4061,14 +4089,26 @@ pmap_add_delayed_free_list(vm_page_t m, struct spglist *free, * for mapping a distinct range of virtual addresses. The pmap's collection is * ordered by this virtual address range. * - * If "promoted" is false, then the page table page "mpte" must be zero filled. + * If "promoted" is false, then the page table page "mpte" must be zero filled; + * "mpte"'s valid field will be set to 0. + * + * If "promoted" is true and "allpte_PG_A_set" is false, then "mpte" must + * contain valid mappings with identical attributes except for PG_A; "mpte"'s + * valid field will be set to 1. + * + * If "promoted" and "allpte_PG_A_set" are both true, then "mpte" must contain + * valid mappings with identical attributes including PG_A; "mpte"'s valid + * field will be set to VM_PAGE_BITS_ALL. */ static __inline int -pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte, bool promoted) +pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte, bool promoted, + bool allpte_PG_A_set) { PMAP_LOCK_ASSERT(pmap, MA_OWNED); - mpte->valid = promoted ? VM_PAGE_BITS_ALL : 0; + KASSERT(promoted || !allpte_PG_A_set, + ("a zero-filled PTP can't have PG_A set in every PTE")); + mpte->valid = promoted ? (allpte_PG_A_set ? VM_PAGE_BITS_ALL : 1) : 0; return (vm_radix_insert(&pmap->pm_root, mpte)); } @@ -6053,17 +6093,17 @@ pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, newpte = pmap_swap_pat(pmap, newpte); /* - * If the page table page is not leftover from an earlier promotion, - * initialize it. + * If the PTP is not leftover from an earlier promotion or it does not + * have PG_A set in every PTE, then fill it. The new PTEs will all + * have PG_A set. */ - if (vm_page_none_valid(mpte)) + if (!vm_page_all_valid(mpte)) pmap_fill_ptp(firstpte, newpte); pmap_demote_pde_check(firstpte, newpte); /* - * If the mapping has changed attributes, update the page table - * entries. + * If the mapping has changed attributes, update the PTEs. */ if ((*firstpte & PG_PTE_PROMOTE) != (newpte & PG_PTE_PROMOTE)) pmap_fill_ptp(firstpte, newpte); @@ -6198,7 +6238,7 @@ pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offset_t sva, } else { mpte = pmap_remove_pt_page(pmap, sva); if (mpte != NULL) { - KASSERT(vm_page_all_valid(mpte), + KASSERT(vm_page_any_valid(mpte), ("pmap_remove_pde: pte page not promoted")); pmap_pt_page_count_adj(pmap, -1); KASSERT(mpte->ref_count == NPTEPG, @@ -6822,7 +6862,7 @@ pmap_promote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, vm_page_t mpte, { pd_entry_t newpde; pt_entry_t *firstpte, oldpte, pa, *pte; - pt_entry_t PG_G, PG_A, PG_M, PG_RW, PG_V, PG_PKU_MASK; + pt_entry_t allpte_PG_A, PG_A, PG_G, PG_M, PG_PKU_MASK, PG_RW, PG_V; int PG_PTE_CACHE; PG_A = pmap_accessed_bit(pmap); @@ -6876,12 +6916,8 @@ setpde: if (!atomic_fcmpset_long(firstpte, &newpde, newpde & ~PG_RW)) goto setpde; newpde &= ~PG_RW; - } - if ((newpde & PG_A) == 0) { - counter_u64_add(pmap_pde_p_failures, 1); - CTR2(KTR_PMAP, "pmap_promote_pde: failure for va %#lx" - " in pmap %p", va, pmap); - return; + CTR2(KTR_PMAP, "pmap_promote_pde: protect for va %#lx" + " in pmap %p", va & ~PDRMASK, pmap); } /* @@ -6889,6 +6925,7 @@ setpde: * PTE maps an unexpected 4KB physical page or does not have identical * characteristics to the first PTE. */ + allpte_PG_A = newpde & PG_A; pa = (newpde & (PG_PS_FRAME | PG_V)) + NBPDR - PAGE_SIZE; for (pte = firstpte + NPTEPG - 1; pte > firstpte; pte--) { oldpte = *pte; @@ -6917,13 +6954,30 @@ setpte: " in pmap %p", va, pmap); return; } + allpte_PG_A &= oldpte; pa -= PAGE_SIZE; } /* - * Save the page table page in its current state until the PDE - * mapping the superpage is demoted by pmap_demote_pde() or - * destroyed by pmap_remove_pde(). + * Unless all PTEs have PG_A set, clear it from the superpage mapping, + * so that promotions triggered by speculative mappings, such as + * pmap_enter_quick(), don't automatically mark the underlying pages + * as referenced. + */ + newpde &= ~PG_A | allpte_PG_A; + + /* + * EPT PTEs with PG_M set and PG_A clear are not supported by early + * MMUs supporting EPT. + */ + KASSERT((newpde & PG_A) != 0 || safe_to_clear_referenced(pmap, newpde), + ("unsupported EPT PTE")); + + /* + * Save the PTP in its current state until the PDE mapping the + * superpage is demoted by pmap_demote_pde() or destroyed by + * pmap_remove_pde(). If PG_A is not set in every PTE, then request + * that the PTP be refilled on demotion. */ if (mpte == NULL) mpte = PHYS_TO_VM_PAGE(*pde & PG_FRAME); @@ -6934,7 +6988,7 @@ setpte: ("pmap_promote_pde: page table page's pindex is wrong " "mpte %p pidx %#lx va %#lx va pde pidx %#lx", mpte, mpte->pindex, va, pmap_pde_pindex(va))); - if (pmap_insert_pt_page(pmap, mpte, true)) { + if (pmap_insert_pt_page(pmap, mpte, true, allpte_PG_A != 0)) { counter_u64_add(pmap_pde_p_failures, 1); CTR2(KTR_PMAP, "pmap_promote_pde: failure for va %#lx in pmap %p", va, @@ -7516,7 +7570,7 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t va, pd_entry_t newpde, u_int flags, * leave the kernel page table page zero filled. */ mt = PHYS_TO_VM_PAGE(*pde & PG_FRAME); - if (pmap_insert_pt_page(pmap, mt, false)) + if (pmap_insert_pt_page(pmap, mt, false, false)) panic("pmap_enter_pde: trie insert failed"); } } @@ -7629,6 +7683,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte, struct rwlock **lockp) { + pd_entry_t *pde; pt_entry_t newpte, *pte, PG_V; KASSERT(!VA_IS_CLEANMAP(va) || @@ -7636,6 +7691,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, ("pmap_enter_quick_locked: managed mapping within the clean submap")); PG_V = pmap_valid_bit(pmap); PMAP_LOCK_ASSERT(pmap, MA_OWNED); + pde = NULL; /* * In the case that a page table page is not @@ -7643,7 +7699,6 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, */ if (va < VM_MAXUSER_ADDRESS) { pdp_entry_t *pdpe; - pd_entry_t *pde; vm_pindex_t ptepindex; /* @@ -7720,6 +7775,28 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, if (va < VM_MAXUSER_ADDRESS) newpte |= PG_U | pmap_pkru_get(pmap, va); pte_store(pte, newpte); + +#if VM_NRESERVLEVEL > 0 + /* + * If both the PTP and the reservation are fully populated, then + * attempt promotion. + */ + if ((mpte == NULL || mpte->ref_count == NPTEPG) && + pmap_ps_enabled(pmap) && + (m->flags & PG_FICTITIOUS) == 0 && + vm_reserv_level_iffullpop(m) == 0) { + if (pde == NULL) + pde = pmap_pde(pmap, va); + pmap_promote_pde(pmap, pde, va, mpte, lockp); + + /* + * If promotion succeeds, then the next call to this function + * should not be given the unmapped PTP as a hint. + */ + mpte = NULL; + } +#endif + return (mpte); } @@ -8541,7 +8618,7 @@ pmap_remove_pages(pmap_t pmap) } mpte = pmap_remove_pt_page(pmap, pv->pv_va); if (mpte != NULL) { - KASSERT(vm_page_all_valid(mpte), + KASSERT(vm_page_any_valid(mpte), ("pmap_remove_pages: pte page not promoted")); pmap_pt_page_count_adj(pmap, -1); KASSERT(mpte->ref_count == NPTEPG, @@ -8820,33 +8897,6 @@ retry: pmap_delayed_invl_wait(m); } -static __inline boolean_t -safe_to_clear_referenced(pmap_t pmap, pt_entry_t pte) -{ - - if (!pmap_emulate_ad_bits(pmap)) - return (TRUE); - - KASSERT(pmap->pm_type == PT_EPT, ("invalid pm_type %d", pmap->pm_type)); - - /* - * XWR = 010 or 110 will cause an unconditional EPT misconfiguration - * so we don't let the referenced (aka EPT_PG_READ) bit to be cleared - * if the EPT_PG_WRITE bit is set. - */ - if ((pte & EPT_PG_WRITE) != 0) - return (FALSE); - - /* - * XWR = 100 is allowed only if the PMAP_SUPPORTS_EXEC_ONLY is set. - */ - if ((pte & EPT_PG_EXECUTE) == 0 || - ((pmap->pm_flags & PMAP_SUPPORTS_EXEC_ONLY) != 0)) - return (TRUE); - else - return (FALSE); -} - /* * pmap_ts_referenced: * diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index b61edf475b4b..08da0ccdfb8a 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -130,7 +130,7 @@ * (PTE) page mappings have identical settings for the following fields: */ #define PG_PTE_PROMOTE (PG_NX | PG_MANAGED | PG_W | PG_G | PG_PTE_CACHE | \ - PG_M | PG_A | PG_U | PG_RW | PG_V | PG_PKU_MASK) + PG_M | PG_U | PG_RW | PG_V | PG_PKU_MASK) /* * Page Protection Exception bits diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 75175a102499..4bd1e86ffd5f 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -3394,7 +3394,7 @@ pmap_remove_kernel_l2(pmap_t pmap, pt_entry_t *l2, vm_offset_t va) * If this page table page was unmapped by a promotion, then it * contains valid mappings. Zero it to invalidate those mappings. */ - if (ml3->valid != 0) + if (vm_page_any_valid(ml3)) pagezero((void *)PHYS_TO_DMAP(ml3pa)); /* @@ -3452,7 +3452,7 @@ pmap_remove_l2(pmap_t pmap, pt_entry_t *l2, vm_offset_t sva, } else { ml3 = pmap_remove_pt_page(pmap, sva); if (ml3 != NULL) { - KASSERT(ml3->valid == VM_PAGE_BITS_ALL, + KASSERT(vm_page_any_valid(ml3), ("pmap_remove_l2: l3 page not promoted")); pmap_resident_count_dec(pmap, 1); KASSERT(ml3->ref_count == NL3PG, @@ -4015,14 +4015,26 @@ pmap_disable_promotion(vm_offset_t sva, vm_size_t size) * for mapping a distinct range of virtual addresses. The pmap's collection is * ordered by this virtual address range. * - * If "promoted" is false, then the page table page "mpte" must be zero filled. + * If "promoted" is false, then the page table page "mpte" must be zero filled; + * "mpte"'s valid field will be set to 0. + * + * If "promoted" is true and "all_l3e_AF_set" is false, then "mpte" must + * contain valid mappings with identical attributes except for ATTR_AF; + * "mpte"'s valid field will be set to 1. + * + * If "promoted" and "all_l3e_AF_set" are both true, then "mpte" must contain + * valid mappings with identical attributes including ATTR_AF; "mpte"'s valid + * field will be set to VM_PAGE_BITS_ALL. */ static __inline int -pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte, bool promoted) +pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte, bool promoted, + bool all_l3e_AF_set) { PMAP_LOCK_ASSERT(pmap, MA_OWNED); - mpte->valid = promoted ? VM_PAGE_BITS_ALL : 0; + KASSERT(promoted || !all_l3e_AF_set, + ("a zero-filled PTP can't have ATTR_AF set in every PTE")); + mpte->valid = promoted ? (all_l3e_AF_set ? VM_PAGE_BITS_ALL : 1) : 0; return (vm_radix_insert(&pmap->pm_root, mpte)); } @@ -4137,7 +4149,7 @@ static void pmap_promote_l2(pmap_t pmap, pd_entry_t *l2, vm_offset_t va, vm_page_t mpte, struct rwlock **lockp) { - pt_entry_t *firstl3, *l3, newl2, oldl3, pa; + pt_entry_t all_l3e_AF, *firstl3, *l3, newl2, oldl3, pa; PMAP_LOCK_ASSERT(pmap, MA_OWNED); PMAP_ASSERT_STAGE1(pmap); @@ -4185,19 +4197,17 @@ setl2: if (!atomic_fcmpset_64(firstl3, &newl2, newl2 & ~ATTR_SW_DBM)) goto setl2; newl2 &= ~ATTR_SW_DBM; - } - if ((newl2 & ATTR_AF) == 0) { - atomic_add_long(&pmap_l2_p_failures, 1); - CTR2(KTR_PMAP, "pmap_promote_l2: failure for va %#lx" - " in pmap %p", va, pmap); - return; + CTR2(KTR_PMAP, "pmap_promote_l2: protect for va %#lx" + " in pmap %p", va & ~L2_OFFSET, pmap); } /* * Examine each of the other L3Es in the specified PTP. Abort if this * L3E maps an unexpected 4KB physical page or does not have identical - * characteristics to the first L3E. + * characteristics to the first L3E. If ATTR_AF is not set in every + * PTE, then request that the PTP be refilled on demotion. */ + all_l3e_AF = newl2 & ATTR_AF; pa = (PTE_TO_PHYS(newl2) | (newl2 & ATTR_DESCR_MASK)) + L2_SIZE - PAGE_SIZE; for (l3 = firstl3 + NL3PG - 1; l3 > firstl3; l3--) { @@ -4221,15 +4231,25 @@ setl3: goto setl3; oldl3 &= ~ATTR_SW_DBM; } - if ((oldl3 & ATTR_MASK) != (newl2 & ATTR_MASK)) { + if ((oldl3 & (ATTR_MASK & ~ATTR_AF)) != (newl2 & (ATTR_MASK & + ~ATTR_AF))) { atomic_add_long(&pmap_l2_p_failures, 1); CTR2(KTR_PMAP, "pmap_promote_l2: failure for va %#lx" " in pmap %p", va, pmap); return; } + all_l3e_AF &= oldl3; pa -= PAGE_SIZE; } + /* + * Unless all PTEs have ATTR_AF set, clear it from the superpage + * mapping, so that promotions triggered by speculative mappings, + * such as pmap_enter_quick(), don't automatically mark the + * underlying pages as referenced. + */ + newl2 &= ~ATTR_AF | all_l3e_AF; + /* * Save the page table page in its current state until the L2 * mapping the superpage is demoted by pmap_demote_l2() or @@ -4242,7 +4262,7 @@ setl3: ("pmap_promote_l2: page table page is out of range")); KASSERT(mpte->pindex == pmap_l2_pindex(va), ("pmap_promote_l2: page table page's pindex is wrong")); - if (pmap_insert_pt_page(pmap, mpte, true)) { + if (pmap_insert_pt_page(pmap, mpte, true, all_l3e_AF != 0)) { atomic_add_long(&pmap_l2_p_failures, 1); CTR2(KTR_PMAP, "pmap_promote_l2: failure for va %#lx in pmap %p", va, @@ -4820,7 +4840,7 @@ pmap_enter_l2(pmap_t pmap, vm_offset_t va, pd_entry_t new_l2, u_int flags, * the L2_TABLE entry. */ mt = PHYS_TO_VM_PAGE(PTE_TO_PHYS(pmap_load(l2))); - if (pmap_insert_pt_page(pmap, mt, false)) + if (pmap_insert_pt_page(pmap, mt, false, false)) panic("pmap_enter_l2: trie insert failed"); pmap_clear(l2); pmap_s1_invalidate_page(pmap, va, false); @@ -4958,6 +4978,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, PMAP_ASSERT_STAGE1(pmap); KASSERT(ADDR_IS_CANONICAL(va), ("%s: Address not in canonical form: %lx", __func__, va)); + l2 = NULL; CTR2(KTR_PMAP, "pmap_enter_quick_locked: %p %lx", pmap, va); /* @@ -5073,6 +5094,27 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, pmap_store(l3, l3_val); dsb(ishst); +#if VM_NRESERVLEVEL > 0 + /* + * If both the PTP and the reservation are fully populated, then + * attempt promotion. + */ + if ((mpte == NULL || mpte->ref_count == NL3PG) && + pmap_ps_enabled(pmap) && pmap->pm_stage == PM_STAGE1 && + (m->flags & PG_FICTITIOUS) == 0 && + vm_reserv_level_iffullpop(m) == 0) { + if (l2 == NULL) + l2 = pmap_pde(pmap, va, &lvl); + pmap_promote_l2(pmap, l2, va, mpte, lockp); + + /* + * If promotion succeeds, then the next call to this function + * should not be given the unmapped PTP as a hint. + */ + mpte = NULL; + } +#endif + return (mpte); } @@ -5739,7 +5781,7 @@ pmap_remove_pages(pmap_t pmap) ml3 = pmap_remove_pt_page(pmap, pv->pv_va); if (ml3 != NULL) { - KASSERT(ml3->valid == VM_PAGE_BITS_ALL, + KASSERT(vm_page_any_valid(ml3), ("pmap_remove_pages: l3 page not promoted")); pmap_resident_count_dec(pmap,1); KASSERT(ml3->ref_count == NL3PG, @@ -6875,6 +6917,36 @@ pmap_fill_l3(pt_entry_t *firstl3, pt_entry_t newl3) } } +static void +pmap_demote_l2_check(pt_entry_t *firstl3p __unused, pt_entry_t newl3e __unused) +{ +#ifdef INVARIANTS +#ifdef DIAGNOSTIC + pt_entry_t *xl3p, *yl3p; + + for (xl3p = firstl3p; xl3p < firstl3p + Ln_ENTRIES; + xl3p++, newl3e += PAGE_SIZE) { + if (PTE_TO_PHYS(pmap_load(xl3p)) != PTE_TO_PHYS(newl3e)) { + printf("pmap_demote_l2: xl3e %zd and newl3e map " + "different pages: found %#lx, expected %#lx\n", + xl3p - firstl3p, pmap_load(xl3p), newl3e); + printf("page table dump\n"); + for (yl3p = firstl3p; yl3p < firstl3p + Ln_ENTRIES; + yl3p++) { + printf("%zd %#lx\n", yl3p - firstl3p, + pmap_load(yl3p)); + } + panic("firstpte"); + } + } +#else + KASSERT(PTE_TO_PHYS(pmap_load(firstl3p)) == PTE_TO_PHYS(newl3e), + ("pmap_demote_l2: firstl3 and newl3e map different physical" + " addresses")); +#endif +#endif +} + static void pmap_demote_l2_abort(pmap_t pmap, vm_offset_t va, pt_entry_t *l2, struct rwlock **lockp) @@ -6986,14 +7058,24 @@ pmap_demote_l2_locked(pmap_t pmap, pt_entry_t *l2, vm_offset_t va, ("pmap_demote_l2: L2 entry is writeable but not dirty")); /* - * If the page table page is not leftover from an earlier promotion, - * or the mapping attributes have changed, (re)initialize the L3 table. + * If the PTP is not leftover from an earlier promotion or it does not + * have ATTR_AF set in every L3E, then fill it. The new L3Es will all + * have ATTR_AF set. * * When pmap_update_entry() clears the old L2 mapping, it (indirectly) * performs a dsb(). That dsb() ensures that the stores for filling * "l3" are visible before "l3" is added to the page table. */ - if (ml3->valid == 0 || (l3[0] & ATTR_MASK) != (newl3 & ATTR_MASK)) + if (!vm_page_all_valid(ml3)) + pmap_fill_l3(l3, newl3); + + pmap_demote_l2_check(l3, newl3); + + /* + * If the mapping has changed attributes, update the L3Es. + */ + if ((pmap_load(l3) & (ATTR_MASK & ~ATTR_AF)) != (newl3 & (ATTR_MASK & + ~ATTR_AF))) pmap_fill_l3(l3, newl3); /* From nobody Mon Jun 12 20:31:37 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qg3Ht1yQjz4cx42; Mon, 12 Jun 2023 20:31:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qg3Ht1Qhvz42vP; Mon, 12 Jun 2023 20:31:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686601898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JMwJLe8XwNXB0DjXzlzjKWMPJ+HhHvkclflzarPSEQk=; b=EHyFv9BOGWG87DIkGY4HJrPSQhM/iKetwGmjzXYZhH66ae49PufmZfLZlOkECa7y83u6tw RiAlajrytOeTuAizGyoSD7TI+LfrGdZ6bs4S+uLgzMWBN6ZURH2cEvuTEYXWtZV1mPfN7b j5MdFaqdgid8eOhh3JETlvXTxUMMXvu7944iahgua+IpEXWdt459bzm3lVWAKXDqo8JQN1 NUffLQEA10T5f9DkLj6IJGKHkwzDHtwyD7THkzmFclGqpmF2x/b7EX2NUh4BMNDZ0Ct1l/ d/3M1gYmvYKWpvry6IV4FP+4Ed3AhDjhYHvjfRBeuA7pz6BFk78azlvrtyIndw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686601898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JMwJLe8XwNXB0DjXzlzjKWMPJ+HhHvkclflzarPSEQk=; b=xBieRzX9u2n7zYwoDyEsXjt7+2nXlpio5MzfvuP9MR0BsiU911wQ+HR5YXaodynp40QO0r +111QgAnm2F75cKhtxO3E3unNNXaZOGmCdhH9O1V/HN2TnImeq1Yey2zYpt+2dyWuJietD abAGHZxfx/sgvX36xZfLRoiYBPbAdXp6BUwnpm9D+3tA+PzZZHasG+ADhgTfDzukOhU6md C7qZPLvJPoZl5hQELlGsajvImM7N64mxJIZbDVw4AKcDvERZUa/la0rcnh7X0RpKM5HxHh 5NhXZMtxlo4UAWcoUhn05IjKvcd1pmALGSh86ovkV0Yx0T6kqtD38vkS2midwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686601898; a=rsa-sha256; cv=none; b=sMdYkeUWUOLio7/2lqqK456E2DH49fjaMbyPJbSqTYkQqMevwGeT1Tw2tb/AmiYcNR50Lu fMaswwZ5Sj39m+JfDWCf4T2T+93pWsJticwGc8cU1T1nWMhEAfblttOKJLbfNTsUzZELiR WjCvaklQ+fQfCTl/vOb2iySNVC9rcUWFBxQKbtyadOV9Q5X2C6J/OBjvrCPea7N7zj1BRu O1D/pQdyYShYCS/Wn9UCJeDBhxdcw8UMybYomZpI3VAKrVJ30eIl/aHDaxUmWc23uSwTaz 6ojI4XkQQie4Qy9AP3E2enoE4gZryx13PWrF4tFokMglhV2Zc9MuEHSiemmMWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qg3Ht0VsZztp0; Mon, 12 Jun 2023 20:31:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CKVcnw051429; Mon, 12 Jun 2023 20:31:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CKVbjj051428; Mon, 12 Jun 2023 20:31:37 GMT (envelope-from git) Date: Mon, 12 Jun 2023 20:31:37 GMT Message-Id: <202306122031.35CKVbjj051428@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: e2cb7201015d - main - mac(4): update the references to MAC modules List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e2cb7201015dbd2d4cea5c9b4e0385d11614263c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=e2cb7201015dbd2d4cea5c9b4e0385d11614263c commit e2cb7201015dbd2d4cea5c9b4e0385d11614263c Author: Mitchell Horne AuthorDate: 2023-06-12 18:56:34 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 20:31:09 +0000 mac(4): update the references to MAC modules Add entries for mac_ntpd(4) and mac_priority(4) to the table of MAC modules. Drop the entry for mac_none(4) from the list, but retain the cross-reference in SEE ALSO. This module has no functional impact and is of minimal interest to users. Add a new cross-reference to the similar mac_stub(4), limited to SEE ALSO for the same reasoning. Reviewed by: Pau Amma MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40483 --- share/man/man4/mac.4 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/share/man/man4/mac.4 b/share/man/man4/mac.4 index 98d685143d88..9f52831a5f57 100644 --- a/share/man/man4/mac.4 +++ b/share/man/man4/mac.4 @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 29, 2022 +.Dd June 10, 2023 .Dt MAC 4 .Os .Sh NAME @@ -59,9 +59,10 @@ Currently, the following MAC policy modules are shipped with .It Xr mac_ifoff 4 Ta "Interface silencing" Ta no Ta any time .It Xr mac_lomac 4 Ta "Low-Watermark MAC policy" Ta yes Ta boot only .It Xr mac_mls 4 Ta "Confidentiality policy" Ta yes Ta boot only -.It Xr mac_none 4 Ta "Sample no-op policy" Ta no Ta any time +.It Xr mac_ntpd 4 Ta "Non-root NTP Daemon policy" Ta no Ta any time .It Xr mac_partition 4 Ta "Process partition policy" Ta yes Ta any time .It Xr mac_portacl 4 Ta "Port bind(2) access control" Ta no Ta any time +.It Xr mac_priority 4 Ta "Scheduling priority policy" Ta no Ta any time .It Xr mac_seeotheruids 4 Ta "See-other-UIDs policy" Ta no Ta any time .It Xr mac_test 4 Ta "MAC testing policy" Ta no Ta any time .El @@ -207,9 +208,12 @@ man page. .Xr mac_lomac 4 , .Xr mac_mls 4 , .Xr mac_none 4 , +.Xr mac_ntpd 4 , .Xr mac_partition 4 , .Xr mac_portacl 4 , +.Xr mac_priority 4 , .Xr mac_seeotheruids 4 , +.Xr mac_stub 4 , .Xr mac_test 4 , .Xr login.conf 5 , .Xr maclabel 7 , From nobody Mon Jun 12 20:31:39 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qg3Hv39b3z4cxHR; Mon, 12 Jun 2023 20:31:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qg3Hv2VVYz43D3; Mon, 12 Jun 2023 20:31:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686601899; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MOWgSMwxDBu/DgdvKoGhANbh2D/JWVSHHDwTcRaFUfo=; b=NfO7582fMk8t9bty98bjPvGELqgAu26lMpnW9MDqRfIKnH8sejem3UflJorltUNsR/CguY uF1W9K5aepEkXz1Po6Xoh+93wzgNrMRId3b3KW/jah/+vfbLZhnXHh0Q1vqRn/p1WTID5h 62romWGk1lg9KEAQ+PhRGjd7puaa/DrowxUOMaQVawNkKxiSME5UtqfxVB2hfMLjqrHYKG 9eYxa99zb/l93WlufH/nFrQXzs30j/4ZaYSfBAKfhfmeaGXMTcyDFqrIn72t08r1c3RlBf CZQQlWe2NFmAFQj64zbvJaCJtysbjDuBx0aOE7TceQePYcmGBVUdBAjLxjEfcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686601899; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MOWgSMwxDBu/DgdvKoGhANbh2D/JWVSHHDwTcRaFUfo=; b=DgDhspjsrRGqx1G7RQAr6i+HbzwpC+qnDYhGis2ekR/MizYoVnWBalqN8GGigzOSpca6bz C7pMEAbieCfE8djEqV2waChtO06lTUxw/PCzN8uQBU4ZsXUANDNM5vz1pj8BA8m63j17Q5 MB2+9l1e4HCzzbnOlV1fD4VwWEGLPytj/90Ffqhun/LqK4gI2Bynlu10ur8MiNduT88J19 Vs5Os2Y6pbsBsVtjpOdIpvc63/6n+RkP5RpaEYvPXCekXjPH/OemSdYqOSGIu/8QbuO+An ixFtwGGbJRMBLHp395Nxmpl/oW2C4eTnkVVW33kY1nLJ6oAP5Y8VUuCiGRVJfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686601899; a=rsa-sha256; cv=none; b=PrZxBsAvSpbvQ8zs1g9tScli2qOJiY+u5G7jYs9WUKJawOqQ5rtLB4wd8N7y5mxt4lI0Pz chwuBdRtDttZt6EbaVpDDItFGrmnZvIGeTmAKrH8Ewk8nFCqU7WmqbPt71CKq7osID9Kw4 1Yn0tMh/Jc83IJQVKhvRckConyOninp5vEmCMQJeACsYFDv+A9mMHFI6yeMd9ygSh7E2HD Jvl8bYJ54mBKeO+2XcitrAD6/de5Fl88knqBc2K7LIpSGvsOasMgCpJ+BxM/bxQnjfQ6y+ BtXwilLL9RKhfoJTioryMhqRUjhEvXBmKzp2qk97TE09KftPr7mxtocF9S/nSQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qg3Hv1bLvzttp; Mon, 12 Jun 2023 20:31:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35CKVdLm052442; Mon, 12 Jun 2023 20:31:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35CKVdFS052441; Mon, 12 Jun 2023 20:31:39 GMT (envelope-from git) Date: Mon, 12 Jun 2023 20:31:39 GMT Message-Id: <202306122031.35CKVdFS052441@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 0449bc249b78 - main - mac(9): update SEE ALSO List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0449bc249b78a8c85afe375e581432351f90427d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=0449bc249b78a8c85afe375e581432351f90427d commit 0449bc249b78a8c85afe375e581432351f90427d Author: Mitchell Horne AuthorDate: 2023-06-12 18:59:00 +0000 Commit: Mitchell Horne CommitDate: 2023-06-12 20:31:09 +0000 mac(9): update SEE ALSO Rather than maintaining an incomplete list of MAC modules references, just reference mac(4), where such a list can be found. Reviewed by: Mina Galić Reviewed by: Pau Amma MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40485 --- share/man/man9/mac.9 | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/share/man/man9/mac.9 b/share/man/man9/mac.9 index 91b1aef88c94..785f910005b0 100644 --- a/share/man/man9/mac.9 +++ b/share/man/man9/mac.9 @@ -150,16 +150,7 @@ for information on the MAC Framework APIs. .Xr acl 3 , .Xr mac 3 , .Xr posix1e 3 , -.Xr mac_biba 4 , -.Xr mac_bsdextended 4 , -.Xr mac_ddb 4 , -.Xr mac_ifoff 4 , -.Xr mac_lomac 4 , -.Xr mac_mls 4 , -.Xr mac_none 4 , -.Xr mac_partition 4 , -.Xr mac_seeotheruids 4 , -.Xr mac_test 4 , +.Xr mac 4 , .Xr ucred 9 , .Xr vaccess 9 , .Xr vaccess_acl_posix1e 9 , From nobody Tue Jun 13 03:43:21 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgDt14Vw5z4cg9t; Tue, 13 Jun 2023 03:43:21 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgDt144YXz4Mf4; Tue, 13 Jun 2023 03:43:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686627801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oob++FFC+j59MaE3Da3vFuZJb9QjFYZfV/Cdx3xptD4=; b=c4++7vA/eInfeoAtInv51DwVCBuI1SOPKJUc2hqO2mZDyoIDvVyhdZuduMCi1lvVTzij45 NicPpy3Q4bsJ+tPFU3j4v2yFhBV0gcH17l8KxpKmvpuuc9VK+BonY2Rd7nMnAbyDoL3iAg cNhfXNfPDhlwARbFH68F/iqprnHmkQQdOO7+4BWygMt8OoUT/SxvOOCnvYF9ZUZlfsWT+z qVt5YymWpvLSGLX+SArKqYvjCp4d5j9dXmKLoFvV/oKoXITNxzZzknSuoCgs8XeldgIjZH JdEQWeJPBDPm64Qt73LTJQitEAqUn6qYZ19uSFxs6ed435npnPUWqA9AGPxPqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686627801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oob++FFC+j59MaE3Da3vFuZJb9QjFYZfV/Cdx3xptD4=; b=cBPZe7bxYuqiZnsem/Z2Wgs7qhhJba0cRsr00rRdORgT3ES+lOySeWq4ljRAhpLetWPAEr xvuWD9I+duSWQW6dwInFwZoy1Sd73jAe+4qSUdmgsOGljo7V8rEB3/9Oet7otmizofXWjj EyGZNzfEnELAvsN584Z8jCLGSStc2DWreHVexccwGURw9suMxXY+HbVKag1vFshOXpHULO Xcy4xvDssKo+lkoQVuqq20a8TP7jWbUJRz+pZp9eFaX2NV8Wrk14YNmGQvT4X3HAQJoaSG BF05aFGspuCRkpxOOMv0Aj5c+ySFwwTuC4EKUFHSOgbyzfpxqM1LCTeH8Bm+0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686627801; a=rsa-sha256; cv=none; b=bpQyeijOK5p4XEyr5FlsXnpA0ZpsgtYwo3RCo9VjuRxPZUjc9F0NiQf0Z+vEvaQlnxW90B SqKrgcMHU58XEZv10rPHCN6eVq5ahtSFSCsgXn1mW6B72zaiYjtG16qfG7D6KOfmQk0zxY qNNqr9/3h5O4xrTz/D9nsKa8xf405zdvD/7noLVHIGAFSZDLboAkquf6rkNOGDUEvZj33b JkXXfkrcZ0sB+nqWSsBl6WvQuqT/8tw/OoXc9xUENsa+8b6jcnRnYdJnuRW9Ehvy8PuxeY hjtN0O04st+BtcsEpUrNK6x3hKLYvpoCYPW0vGwpxzBWzr6nRrM0VLo4RPXvaw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgDt138nwz16Dg; Tue, 13 Jun 2023 03:43:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D3hL5L066561; Tue, 13 Jun 2023 03:43:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D3hLMO066560; Tue, 13 Jun 2023 03:43:21 GMT (envelope-from git) Date: Tue, 13 Jun 2023 03:43:21 GMT Message-Id: <202306130343.35D3hLMO066560@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: bdc81eeda05d - main - nvme: Switch to nda by default List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bdc81eeda05d3af80254f6aac95759b07f13f2b7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=bdc81eeda05d3af80254f6aac95759b07f13f2b7 commit bdc81eeda05d3af80254f6aac95759b07f13f2b7 Author: Warner Losh AuthorDate: 2023-06-13 03:37:10 +0000 Commit: Warner Losh CommitDate: 2023-06-13 03:41:06 +0000 nvme: Switch to nda by default We already run nda by default on all the !x86 architectures. Switch the default to nda. nda created nvd compatibility links by default, so this should be a nop. If this causes problems for your application, set hw.nvme.use_nvd=1 in your loader.conf. Sponsored by: Netflix --- UPDATING | 8 ++++++++ sys/dev/nvme/nvme_sysctl.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index caad098c683d..c75de2d66338 100644 --- a/UPDATING +++ b/UPDATING @@ -27,6 +27,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20230612: + Belatedly switch the default nvme block device on x86 from nvd to nda. + nda created nvd compatibility links by default, so this should be a + nop. If this causes problems for your application, set hw.nvme.use_nvd=1 + in your loader.conf or add `options NVME_USE_NVD=1` to your kernel + config. The default has been nda on all non-x86 platforms for some time + now. If you need to fall back, please email imp@freebsd.org about why. + 20230422: Remove portsnap(8). Users are encouraged to obtain the ports tree using git instead. diff --git a/sys/dev/nvme/nvme_sysctl.c b/sys/dev/nvme/nvme_sysctl.c index d6011bc34951..c238c86af5a2 100644 --- a/sys/dev/nvme/nvme_sysctl.c +++ b/sys/dev/nvme/nvme_sysctl.c @@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$"); #include "nvme_private.h" #ifndef NVME_USE_NVD -#define NVME_USE_NVD 1 +#define NVME_USE_NVD 0 #endif int nvme_use_nvd = NVME_USE_NVD; From nobody Tue Jun 13 04:08:47 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgFRM3Shxz4cmS4; Tue, 13 Jun 2023 04:08:47 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgFRM31vYz3C2G; Tue, 13 Jun 2023 04:08:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686629327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b/wx0hl8hMVn/UQSM05wYS1Pi6TRHwLjY4aXtQlxcM0=; b=CvCrj5AjABJCtf1DeTC89bG8CCpiKkQv2M/Q7NXQN+JsS+PvuS/fLx/Y00S2zSwit3MViB 2GhcuszqHYnCoPuzGjsmwRM7eN6Ru+aYoEnoz8BNrm9MVgcrXaZKB6aKTsDyXuiLSetVUA 2N3Ce70wkrnoEBILx1A3idIQ5p0q0G+UhzmdJk9xkB352fh6+CwNdcOkOtnUFdeRUXffQk Gvta9CjWOzdLjZTDcHUrdG+nuwKUQbJwSegaJSpqAxe+RAsNNtomlVGs3YMbIbm3TE+Gke ml0oobtxR9xoy1PG0DBjuQfqGeTx2HE778l8/14U5egwBlUOalREuzz/o7j/OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686629327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b/wx0hl8hMVn/UQSM05wYS1Pi6TRHwLjY4aXtQlxcM0=; b=teVJW8fD1x919ts8vDHf13RPbaTUbLTHpwMVLuZEHqMu1MKxahWR2cFyDm8bz5NCapF9S2 NQPK16fYpCbfD3hx8XPW2uRwksvrGmIUKTuIAYWo16piCfUkcPYTGthgYluOY6VtJlZd7e zABLdw9vFq6zDuEaZuBO1JYckP2h8he/nIRZWghgj5hTHkXzHC9AMSsKrfMJbiMsgE1aR1 YSoPHPSS5etRF7rMVkxbrC3zRyWyMdPs2NZkWHg+HQ1tQ3QF6Y7Azst+LddQZB+z1Gmyag GAt5LNSlO3BGnhd39S1mjV0gbQD7GxF48X8VxMWE7vePxcNtFYX6/6OT3f6O/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686629327; a=rsa-sha256; cv=none; b=if+MifqSJU7fYo8Wa/bvLycLlW2zgxTQ7PmMwTKnZdm4eJMOFoWmqm4CMageEmArPAuXVV 7GEMmTch+LTMhtqzMUA4+YltwLuc42TLbKZ2cIPuqeIUx6/dFqfI4geU/uK9Hf6JJ/KelH xfq4ohtx7z/zQooD49/WHOLJspQC7FVddoQ1LacoPNsImcAnTqVE3Jvs5F5qSuaWYcjm8x adNI1aoGbP4nk/Z7zyIUTs+tkAxfh10v0k+8kT15zTEmxb3QPLkbuhX3AMiMW8HWbZbqaI kPF44s3f8WOiYgX4ejARLtvzDZgcHQYW7zY46TVgxaySd0ioy2ZS5XCy1kWYfA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgFRM22fQz171X; Tue, 13 Jun 2023 04:08:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D48lh9000798; Tue, 13 Jun 2023 04:08:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D48l57000797; Tue, 13 Jun 2023 04:08:47 GMT (envelope-from git) Date: Tue, 13 Jun 2023 04:08:47 GMT Message-Id: <202306130408.35D48l57000797@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI Subject: git: 08300d849485 - main - expand_number: Tighten check of unit. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 08300d849485bd6231d3a18cb430cab4279edef3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=08300d849485bd6231d3a18cb430cab4279edef3 commit 08300d849485bd6231d3a18cb430cab4279edef3 Author: Xin LI AuthorDate: 2023-06-13 04:08:32 +0000 Commit: Xin LI CommitDate: 2023-06-13 04:08:32 +0000 expand_number: Tighten check of unit. The current code silently ignores characters after the unit as long the unit themselves were recognized. This commit makes expand_number(3) to fail with EINVAL if buf did not terminate after the unit character. Historically, the function accepts and ignores "B" as a SI unit, this behavior is preserved and e.g. KB, MB are still accepted as aliases of K and M, document this behavior in the manual page. While I am there, also write a few test cases to validate the behavior. Reviewed-by: emaste MFC-after: 2 weeks Differential Revision: https://reviews.freebsd.org/D40482 --- lib/libutil/expand_number.3 | 11 ++++- lib/libutil/expand_number.c | 14 ++++++ lib/libutil/tests/Makefile | 1 + lib/libutil/tests/expand_number_test.c | 87 ++++++++++++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 1 deletion(-) diff --git a/lib/libutil/expand_number.3 b/lib/libutil/expand_number.3 index 7fd9eb2db934..ed7ef487f08b 100644 --- a/lib/libutil/expand_number.3 +++ b/lib/libutil/expand_number.3 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 20, 2019 +.Dd June 13, 2023 .Dt EXPAND_NUMBER 3 .Os .Sh NAME @@ -63,6 +63,15 @@ The suffixes are: .It Li P Ta No peta Ta 1125899906842624 .It Li E Ta No exa Ta 1152921504606846976 .El +.Pp +For historical reasons, the +.Fn expand_number +function accepts and ignores a single +.Dq B +suffix at the end of the +.Fa buf +string. +However, the usage of this suffix is discouraged. .Sh RETURN VALUES .Rv -std .Sh ERRORS diff --git a/lib/libutil/expand_number.c b/lib/libutil/expand_number.c index f34db013ff18..61b73039f3bd 100644 --- a/lib/libutil/expand_number.c +++ b/lib/libutil/expand_number.c @@ -76,6 +76,8 @@ expand_number(const char *buf, uint64_t *num) shift = 10; break; case 'b': + shift = 0; + break; case '\0': /* No unit. */ *num = number; return (0); @@ -85,6 +87,18 @@ expand_number(const char *buf, uint64_t *num) return (-1); } + /* + * Treat 'b' as an ignored suffix for all unit except 'b', + * otherwise there should be no remaining character(s). + */ + endptr++; + if (shift != 0 && tolower((unsigned char)*endptr) == 'b') + endptr++; + if (*endptr != '\0') { + errno = EINVAL; + return (-1); + } + if ((number << shift) >> shift != number) { /* Overflow */ errno = ERANGE; diff --git a/lib/libutil/tests/Makefile b/lib/libutil/tests/Makefile index fc9a871dd8bc..9816988b74be 100644 --- a/lib/libutil/tests/Makefile +++ b/lib/libutil/tests/Makefile @@ -7,6 +7,7 @@ TAP_TESTS_C+= pidfile_test TAP_TESTS_C+= trimdomain_test TAP_TESTS_C+= trimdomain-nodomain_test ATF_TESTS_C+= cpuset_test +ATF_TESTS_C+= expand_number_test WARNS?= 2 LIBADD+= util diff --git a/lib/libutil/tests/expand_number_test.c b/lib/libutil/tests/expand_number_test.c new file mode 100644 index 000000000000..319df26c9621 --- /dev/null +++ b/lib/libutil/tests/expand_number_test.c @@ -0,0 +1,87 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Google LLC + * + * 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 + +ATF_TC_WITHOUT_HEAD(positivetests); +ATF_TC_BODY(positivetests, tc) +{ + int retval; + uint64_t num; + +#define positive_tc(string, value) \ + do { \ + ATF_CHECK_ERRNO(0, (retval = expand_number((string), &num)) == 0); \ + ATF_CHECK_EQ(retval, 0); \ + ATF_CHECK_EQ(num, (value)); \ + } while (0) + + positive_tc("123456", 123456); + positive_tc("123456b", 123456); + positive_tc("1k", 1024); + positive_tc("1kb", 1024); + positive_tc("1K", 1024); + positive_tc("1KB", 1024); + positive_tc("1m", 1048576); + positive_tc("1M", 1048576); + positive_tc("1g", 1073741824); + positive_tc("1G", 1073741824); + positive_tc("1t", 1099511627776); + positive_tc("1T", 1099511627776); + positive_tc("1p", 1125899906842624); + positive_tc("1P", 1125899906842624); + positive_tc("1e", 1152921504606846976); + positive_tc("1E", 1152921504606846976); + positive_tc("15E", 17293822569102704640ULL); +} + +ATF_TC_WITHOUT_HEAD(negativetests); +ATF_TC_BODY(negativetests, tc) +{ + int retval; + uint64_t num; + + ATF_CHECK_ERRNO(EINVAL, retval = expand_number("", &num)); + ATF_CHECK_ERRNO(EINVAL, retval = expand_number("x", &num)); + ATF_CHECK_ERRNO(EINVAL, retval = expand_number("1bb", &num)); + ATF_CHECK_ERRNO(EINVAL, retval = expand_number("1x", &num)); + ATF_CHECK_ERRNO(EINVAL, retval = expand_number("1kx", &num)); + ATF_CHECK_ERRNO(ERANGE, retval = expand_number("16E", &num)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, positivetests); + ATF_TP_ADD_TC(tp, negativetests); + return (atf_no_error()); +} From nobody Tue Jun 13 06:04:58 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJ1Q3WmXz4dCnm; Tue, 13 Jun 2023 06:04:58 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJ1Q3362z3hgy; Tue, 13 Jun 2023 06:04:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686636298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rx98aAOud1Nklq0kPLZxfAFyZ8wc/IBHnxB592H2Dyk=; b=o7b95J81677GcpUKxMAuucIGRNYHVag0lUSU0qmat/ML3KqaoseylxYDQk6MR8otIwjgoV 68aV2KhDHIkxGWp1SMJvf/Eiam22OmXl1JQYcqLQrc2906FJ1irv5UovdCHzfhU1zU23lX 8V8VS1W/dKvjxFAuaTAAnNt+5bR4XkAH9XxNdBuV/xl6AAYA6b9l7g6Eso10I/EOf3ZsSu acX1g8X4ka7irfThGvU7V6q/oL+f1Qd3risNPNcevlnMUUKLK6FFzTXWM1W+SjqvmPknQK 9VBRygX/aayMZ2i0sF3uxuXRRn/A47EiXUcDcLXvrJlni5JKwmhLaiba0PXdhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686636298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rx98aAOud1Nklq0kPLZxfAFyZ8wc/IBHnxB592H2Dyk=; b=K1/IiDH8Fx0FhjYN0igJuuLWY+wVFaBq0jlz8t9w8oNDIrLGGsLqD8hjjwnY8cZ21uSVr6 AXOZwVZsIcKcQEL7Yfud9xRn+uw1YvIRkL2PiCjAxanfRFp5bYeTQ9gwjA1gQkKkwnTFyu NcSWiXHR4wV2ApqiRS1BKLRlvuJUpmSS9BdcEPm6Unb+sbV7RkI2VKOJVujxY+cTtp1KU3 SvlJaLRZlUIo0L5cII8CfdVd60y/mB5d/yDfgTUUO7ox21iTerWeuONFpB3inORtlBewne 0DWZUsaxZK3vYWTWq71Z59K2n79IFqGJiZXSCPiD4e+5pthRSZKY9dlEy3EN5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686636298; a=rsa-sha256; cv=none; b=xu2BiFCxDXuF6HHvwtzFv6V9ygtqunPAIJ9cX+EeitQ3VSoIO3cRHi5OcntYXK7Y0M7AQE f+NVTEyP3yvaRD+7Z83HUG6rS14c8DqxFHpLx6Jbh+z1o6ZhHewtKSqP5llqBAT/hggabb ugL3/Vf0y4vSpqrMnw4RGscLZ3RkdnWLXW11zRZYMOqR02VKsxbY7JZs84j7Wi0xiwV8PO 4rgJZWAePREC69CZznLJR7LaQRzY331r1iqTjt22woXLXqrb/RBP/OTujwAJOEiGXxbEVr PH+e/ef5U0tJWeTXcHVRP/MSokfuWMdyOMmTXVGLnUChe8Bc/AGZriLgXzF3ow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJ1Q20fNz19h5; Tue, 13 Jun 2023 06:04:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D64wTb098466; Tue, 13 Jun 2023 06:04:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D64wDe098465; Tue, 13 Jun 2023 06:04:58 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:04:58 GMT Message-Id: <202306130604.35D64wDe098465@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 0eb0d2333546 - main - ktest: make ktest work with Netlink loaded as a module. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0eb0d2333546cc2af4027e43a5a254a0e2790dce Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=0eb0d2333546cc2af4027e43a5a254a0e2790dce commit 0eb0d2333546cc2af4027e43a5a254a0e2790dce Author: Alexander V. Chernikov AuthorDate: 2023-06-01 07:25:41 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:04:14 +0000 ktest: make ktest work with Netlink loaded as a module. MFC after: 2 weeks --- sys/modules/ktest/ktest_example/Makefile | 1 + sys/tests/ktest.h | 3 ++- tests/atf_python/ktest.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/modules/ktest/ktest_example/Makefile b/sys/modules/ktest/ktest_example/Makefile index b4a3e778e2ed..3ca304a19a99 100644 --- a/sys/modules/ktest/ktest_example/Makefile +++ b/sys/modules/ktest/ktest_example/Makefile @@ -9,5 +9,6 @@ SYSDIR?=${SRCTOP}/sys KMOD= ktest_example SRCS= ktest_example.c +SRCS+= opt_netlink.h .include diff --git a/sys/tests/ktest.h b/sys/tests/ktest.h index feadb800551b..c767aa31e8e5 100644 --- a/sys/tests/ktest.h +++ b/sys/tests/ktest.h @@ -94,7 +94,7 @@ static struct ktest_module_info _module_info = { \ }; \ \ static moduledata_t _module_data = { \ - "__" #_n "_module", \ + #_n, \ ktest_default_modevent, \ &_module_info, \ }; \ @@ -102,6 +102,7 @@ static moduledata_t _module_data = { \ DECLARE_MODULE(ktest_##_n, _module_data, SI_SUB_PSEUDO, SI_ORDER_ANY); \ MODULE_VERSION(ktest_##_n, 1); \ MODULE_DEPEND(ktest_##_n, ktestmod, 1, 1, 1); \ +MODULE_DEPEND(ktest_##_n, netlink, 1, 1, 1); \ #endif /* _KERNEL */ diff --git a/tests/atf_python/ktest.py b/tests/atf_python/ktest.py index 4cd9970aaec1..a18f47d1dd06 100644 --- a/tests/atf_python/ktest.py +++ b/tests/atf_python/ktest.py @@ -91,7 +91,7 @@ class KtestLoader(object): ret = [] for rx_msg in NetlinkMultipartIterator(self.nlsock, nlmsg_seq, self.family_id): - # test_msg.print_message() + # rx_msg.print_message() tst = { "mod_name": rx_msg.get_nla(KtestAttrType.KTEST_ATTR_MOD_NAME).text, "name": rx_msg.get_nla(KtestAttrType.KTEST_ATTR_TEST_NAME).text, From nobody Tue Jun 13 06:07:45 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJ4d5kJCz4dDbj; Tue, 13 Jun 2023 06:07:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJ4d451Wz3jKG; Tue, 13 Jun 2023 06:07:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686636465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ntYPoaGVTPn6bwCXw9KTwTTCS9PixFaQtDF7b4J+rww=; b=DJAAfH0qhUcWexAxGz/uGZnuuaaAKIBoiAlwSJlAVKsUTIZNQEHLjZ7bVbn22FVgFIWpv7 okaUnEnoppSoTsZgrejuTvAEFmW3rWAx5RKCWm3NXve2HXeUti4C59QRRnkrjYCLUG1SyE tR5I64ePHld9iulqVt+ZCCLvWKmXfb8esmzWXy6KhNnFHuHx7hNZKjacOf0KtqAbdDu7iq HhnaAU9B/lHAsZn1eBzbkWTRKl2O+cqmBd1jst2zSyTUjF9ZnUQbd7ZjnuCtIXyG2ENlCB 4Ji8vc3l4iHtR4S+XAW0hEUJ+hMlv3ZaxGv6oAJ8eD9rJ/OgddbZYT4Ui9tFnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686636465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ntYPoaGVTPn6bwCXw9KTwTTCS9PixFaQtDF7b4J+rww=; b=BBn9QgS+ob5k0V1ooHjz+JZyqszarpupqtQybcGYIO0/+lphjKrjj0msF8czHJtnH9v3cp Em8Owg8kO+u8COpFQUBT884LUbsZFCH1SHD50hgXKg9wMRd9bHxLLTNAvoeU2wDu8GuUp9 mCgc9Fo5Fln7QWMzpBnixI/Kd8YPucxMIhgrXaDGKwk2Nyv/7kEKvEvNeEv2T0lwNNebTh Jyg7lZR6eqxoYBly7iSbl9PfD2YtysnXD4S0Z+OJ9Xz1Zz+e1XMrs64p01Xked3R6sggoK i+xz4dHtgopWj8O/P+DlWas6EP39xx+/tmi8IG5CpgV34gE+n83pfasXhdKIKA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686636465; a=rsa-sha256; cv=none; b=Q/m3iEGhQIG5Vd0fB5WySI0XmrmC9FYCk+OJDkRO/CJzmWLhebUxZ3A5/xSihPJcqc9eC2 +FPuoJjZWBElSeAuzCsXYVmFEtPjf3hHtBrfcIKS+lmsgkUNqlHQsyP9bBsq88j92XVgC3 +E72XZ6EyoGqukkjORZpDo6gZQoR6F6aFmUmL6QVyBw5+ZgJmYgfl6ivxmudCPC07U0kTh p/qEs1QFYM8oZu8AnHrZHgoy7OXIV/lNZlVyzSDzhE5sRH4MXMDJEpbTAyY45SX3zeVxx5 wP0ygEk0ZIRy3f2mxSjYL6A/BVLLbgAPLyrKh65C2NSGLbGEZ6qp4E0G965sdw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJ4d2JYxz19dg; Tue, 13 Jun 2023 06:07:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D67jDT099076; Tue, 13 Jun 2023 06:07:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D67j7n099075; Tue, 13 Jun 2023 06:07:45 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:07:45 GMT Message-Id: <202306130607.35D67j7n099075@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: ab4d1b73cbf8 - main - route(8): teach route to attach to jails List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ab4d1b73cbf8980dbe05cde7d822010042db8344 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=ab4d1b73cbf8980dbe05cde7d822010042db8344 commit ab4d1b73cbf8980dbe05cde7d822010042db8344 Author: Yan Ka, Chiu AuthorDate: 2023-06-13 06:05:17 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:06:27 +0000 route(8): teach route to attach to jails Add -j flag to route(8) to allow route to perform actions in a Jail. Differential Revision: https://reviews.freebsd.org/D40377 MFC after: 2 weeks --- sbin/route/Makefile | 5 +++++ sbin/route/route.8 | 5 ++++- sbin/route/route.c | 36 ++++++++++++++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/sbin/route/Makefile b/sbin/route/Makefile index ddebd2a1d166..d170d0823c91 100644 --- a/sbin/route/Makefile +++ b/sbin/route/Makefile @@ -25,6 +25,11 @@ SRCS+= route_netlink.c CFLAGS+=-DWITHOUT_NETLINK .endif +.if ${MK_JAIL} != "no" && !defined(RESCUE) +CFLAGS+= -DJAIL +LIBADD+= jail +.endif + HAS_TESTS= SUBDIR.${MK_TESTS}+= tests diff --git a/sbin/route/route.8 b/sbin/route/route.8 index afcf55ab44c7..72c22bee23ed 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -28,7 +28,7 @@ .\" @(#)route.8 8.3 (Berkeley) 3/19/94 .\" $FreeBSD$ .\" -.Dd March 14, 2023 +.Dd June 13, 2023 .Dt ROUTE 8 .Os .Sh NAME @@ -36,6 +36,7 @@ .Nd manually manipulate the routing tables .Sh SYNOPSIS .Nm +.Op Fl j Ar jail .Op Fl dnqtv .Ar command .Oo @@ -91,6 +92,8 @@ Suppress all output from the and .Cm flush commands. +.It Fl j Ar jail +Run inside a jail. .El .Pp The diff --git a/sbin/route/route.c b/sbin/route/route.c index 4002cbe5867b..223b1d6f69dc 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -48,6 +48,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef JAIL +#include +#endif #include #include #include @@ -63,6 +66,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef JAIL +#include +#endif #include #include #include @@ -91,6 +97,9 @@ static struct keytab { }; int verbose, debugonly; +#ifdef JAIL +char * jail_name; +#endif static struct sockaddr_storage so[RTAX_MAX]; static int pid, rtm_addrs; static int nflag, af, aflen, qflag, tflag; @@ -172,7 +181,7 @@ usage(const char *cp) { if (cp != NULL) warnx("bad keyword: %s", cp); - errx(EX_USAGE, "usage: route [-46dnqtv] command [[modifiers] args]"); + errx(EX_USAGE, "usage: route [-j jail] [-46dnqtv] command [[modifiers] args]"); /* NOTREACHED */ } @@ -180,12 +189,15 @@ int main(int argc, char **argv) { int ch; +#ifdef JAIL + int jid; +#endif size_t len; if (argc < 2) usage(NULL); - while ((ch = getopt(argc, argv, "46nqdtv")) != -1) + while ((ch = getopt(argc, argv, "46nqdtvj:")) != -1) switch(ch) { case '4': #ifdef INET @@ -218,6 +230,15 @@ main(int argc, char **argv) case 'd': debugonly = 1; break; + case 'j': +#ifdef JAIL + if (optarg == NULL) + usage(NULL); + jail_name = optarg; +#else + errx(1, "Jail support is not compiled in"); +#endif + break; case '?': default: usage(NULL); @@ -227,6 +248,17 @@ main(int argc, char **argv) pid = getpid(); uid = geteuid(); + +#ifdef JAIL + if (jail_name != NULL) { + jid = jail_getid(jail_name); + if (jid == -1) + errx(1, "Jail not found"); + if (jail_attach(jid) != 0) + errx(1, "Cannot attach to jail"); + } +#endif + #ifdef WITHOUT_NETLINK if (tflag) s = open(_PATH_DEVNULL, O_WRONLY, 0); From nobody Tue Jun 13 06:26:58 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJVp4zbBz4dLY2; Tue, 13 Jun 2023 06:26:58 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJVp4qFdz3nBH; Tue, 13 Jun 2023 06:26:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637618; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aw3yobnm5pOJKkKdKoOuP3wUq0Zw+fzEE6QLJgwF1S8=; b=l6bJwQMpY9kxC6pnlwRA04CmOqJVaTrfGj/mY8RyknoducET7ZdqAzh2ocz9An/mGDxrkh 7y6ulqiHNbRSs2uRtIKuCq/zzewEFct2wg5lsrUp6/DCyH4QFlm5M59xdL74megKcQFU6A wyruLRpyU3hZpdso6WaD++KLYHfE6LUmq+Wd8IKkqNDBSnW2jq0AM/CJNkrWPJmWOfarhA GC7e26N28HlFL9EaXNSn1YH9FpT4FwQ02sBVT8dGmntj3IKnCZfHTcWEOZFiQ+MvflXuQz ue9tFarR49nq0lM0xdpIx3VvVH2SgbcSWEPp3aXj/C1/Q4ud7yw9rXt6//EbnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637618; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aw3yobnm5pOJKkKdKoOuP3wUq0Zw+fzEE6QLJgwF1S8=; b=rXK0rJah0ryrYyYEahCmNBYzY7tATkjpVsDr3hndsvfXLwNks2ah6xvpwJlqcwANpz7qfj Pr4sFjNbnLaEhXboO1R2n44p8L5rN6MgrmdNpGJd8s0WpFTwvT1DNbBNxujDNew4yRuGqY JWM8Rq3U1X4M0EGLmkU9YCtLY17/yw6a8WcTSfUM1cdbc/8EMJgD6Fq6TIaJ/Zw+3z26l5 8NJCPBNccf0Mm30/xLSiPXeg8QELMb6RvxrsY+J+9FPnIb12Hfw57RSSFQwHwnxG4ZERCN hBazQ3oXkCq8LqDFt7lr9NWOUXaApLsUiGB0Hoeuz74YIYuNh0QwaPgmALRdgQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686637618; a=rsa-sha256; cv=none; b=PB4Txx9+JGH7SQstqa7689r1uKa66hTTzCtjo2rDCqemeygW4HVZIuGfeVN6bu007t9Di0 k+lnLEUnCCmYHdJyEEd9hmDWGRPUov8kK2hvKPVvIHLPBU42YML2BKR2BVPOXsUrThVX5D VyVmZDIa6BmyqZiAjRZ5/ykIgxRSShe7gGvpJL9JgFoN4fSU0NPu4MX/SU//J+0BNKFV1S ikt41fvGlkJPbx6tGv7wnBzlXZi32qLJ3kv+2/ApfoIbaUtLDGQpha2ZYU7loREX1UawVg 2r48cG37jEhvOMSIQ3f7p8lO2hI5Tu4T3ylWvCi4pACQM9Ej6iEYjkBzl0g16A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJVp3vDHz1BJW; Tue, 13 Jun 2023 06:26:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6Qw1W030951; Tue, 13 Jun 2023 06:26:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6Qw0K030950; Tue, 13 Jun 2023 06:26:58 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:26:58 GMT Message-Id: <202306130626.35D6Qw0K030950@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 74b426116181 - main - ifconfig: add if_ctx argument to the generic and ifclone callbacks. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 74b426116181bdef5cc57760345d8270471b4aa8 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=74b426116181bdef5cc57760345d8270471b4aa8 commit 74b426116181bdef5cc57760345d8270471b4aa8 Author: Alexander V. Chernikov AuthorDate: 2023-06-13 06:10:41 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:10:56 +0000 ifconfig: add if_ctx argument to the generic and ifclone callbacks. This is the continuation of the ifconfig cleanup work. This change is a pre-requsite for the next changes removing some of the global variables. It will also help in implementing functionality via Netlink instead of ioctl. No functional changes intended. * vxlan_cb() was removed as it contained no code * ioctl_ifcreate() was renamed to ifcreate_ioctl() to follow the other netlink/ioctl function naming. Netlink and ioctl provide _different_ interfaces and it's not possible to have a unified interface object that can be filled by either netlink or ioctl implementations. With that in mind, I'm leaning more to the function_ postfix pattern, than doing ioctl_ or netlink_ prefix. Reviewed By: kp Differential Revision: https://reviews.freebsd.org/D40426 MFC after: 2 weeks --- sbin/ifconfig/carp.c | 4 ++-- sbin/ifconfig/ifclone.c | 13 ++++++------- sbin/ifconfig/ifconfig.c | 8 ++++---- sbin/ifconfig/ifconfig.h | 34 +++++++++++++++------------------- sbin/ifconfig/ifieee80211.c | 28 ++++++++++++++-------------- sbin/ifconfig/iflagg.c | 4 ++-- sbin/ifconfig/ifmedia.c | 22 +++++++++++----------- sbin/ifconfig/ifvlan.c | 6 +++--- sbin/ifconfig/ifvxlan.c | 11 ++--------- 9 files changed, 59 insertions(+), 71 deletions(-) diff --git a/sbin/ifconfig/carp.c b/sbin/ifconfig/carp.c index 18f0eb893752..37f2cd485d97 100644 --- a/sbin/ifconfig/carp.c +++ b/sbin/ifconfig/carp.c @@ -60,7 +60,7 @@ static const char *carp_states[] = { CARP_STATES }; -static void setcarp_callback(int, void *); +static void setcarp_callback(if_ctx *, void *); static int carpr_vhid = -1; static int carpr_advskew = -1; @@ -114,7 +114,7 @@ setcarp_vhid(if_ctx *ctx, const char *val, int dummy __unused) } static void -setcarp_callback(int s __unused, void *arg __unused) +setcarp_callback(if_ctx *ctx __unused, void *arg __unused) { struct ifconfig_carp carpr = { }; diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c index 9c71a218b72a..7939ff95a065 100644 --- a/sbin/ifconfig/ifclone.c +++ b/sbin/ifconfig/ifclone.c @@ -118,13 +118,12 @@ clone_setdefcallback_filter(clone_match_func *filter, clone_callback_func *p) * no parameters. */ static void -ifclonecreate(int s, void *arg __unused) +ifclonecreate(if_ctx *ctx, void *arg __unused) { - struct ifreq ifr; + struct ifreq ifr = {}; struct clone_defcb *dcp; - memset(&ifr, 0, sizeof(ifr)); - (void) strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); /* Try to find a default callback by filter */ SLIST_FOREACH(dcp, &clone_defcbh, next) { @@ -145,9 +144,9 @@ ifclonecreate(int s, void *arg __unused) if (dcp == NULL || dcp->clone_cb == NULL) { /* NB: no parameters */ - ioctl_ifcreate(s, &ifr); + ifcreate_ioctl(ctx, &ifr); } else { - dcp->clone_cb(s, &ifr); + dcp->clone_cb(ctx, &ifr); } /* @@ -161,7 +160,7 @@ ifclonecreate(int s, void *arg __unused) } static void -clone_create(if_ctx *ctx __unused, const char *cmd __unused, int d __unused) +clone_create(if_ctx *ctx, const char *cmd __unused, int d __unused) { callback_register(ifclonecreate, NULL); } diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 06cfefc5a466..9b337c04d327 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -201,9 +201,9 @@ usage(void) } void -ioctl_ifcreate(int s, struct ifreq *ifr) +ifcreate_ioctl(if_ctx *ctx, struct ifreq *ifr) { - if (ioctl(s, SIOCIFCREATE2, ifr) < 0) { + if (ioctl(ctx->io_s, SIOCIFCREATE2, ifr) < 0) { switch (errno) { case EEXIST: errx(1, "interface %s already exists", ifr->ifr_name); @@ -1143,7 +1143,7 @@ top: if (cb == NULL) errx(1, "internal error, no callback"); callbacks = cb->cb_next; - cb->cb_func(s, cb->cb_arg); + cb->cb_func(ctx, cb->cb_arg); iscreate = 0; /* * Handle any address family spec that @@ -1204,7 +1204,7 @@ top: * command-line arguments. */ for (cb = callbacks; cb != NULL; cb = cb->cb_next) - cb->cb_func(s, cb->cb_arg); + cb->cb_func(ctx, cb->cb_arg); /* * Do deferred operations. */ diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index e1c7f84793e7..cc343a3e5686 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -53,13 +53,19 @@ struct afswtch; struct cmd; -struct ifconfig_context; +struct snl_state; +struct ifconfig_args; +struct ifconfig_context { + struct ifconfig_args *args; + const struct afswtch *afp; + int io_s; /* fd to use for ioctl() */ + struct snl_state *io_ss; /* NETLINK_ROUTE socket */ +}; +typedef const struct ifconfig_context if_ctx; -typedef void c_func(const struct ifconfig_context *ctx, const char *cmd, int arg); -typedef void c_func2(const struct ifconfig_context *ctx, const char *arg1, - const char *arg2); -typedef void c_func3(const struct ifconfig_context *ctx, const char *cmd, - const char *arg); +typedef void c_func(if_ctx *ctx, const char *cmd, int arg); +typedef void c_func2(if_ctx *ctx, const char *arg1, const char *arg2); +typedef void c_func3(if_ctx *ctx, const char *cmd, const char *arg); struct cmd { const char *c_name; @@ -79,7 +85,7 @@ struct cmd { }; void cmd_register(struct cmd *); -typedef void callback_func(int s, void *); +typedef void callback_func(if_ctx *, void *); void callback_register(callback_func *, void *); /* @@ -144,16 +150,6 @@ void callback_register(callback_func *, void *); .c_next = NULL, \ } -struct snl_state; -struct ifconfig_args; -struct ifconfig_context { - struct ifconfig_args *args; - const struct afswtch *afp; - int io_s; /* fd to use for ioctl() */ - struct snl_state *io_ss; /* NETLINK_ROUTE socket */ -}; -typedef const struct ifconfig_context if_ctx; - #define ioctl_ctx(ctx, _req, ...) ioctl((ctx)->io_s, _req, ## __VA_ARGS__) struct ifaddrs; @@ -271,7 +267,7 @@ void printb(const char *s, unsigned value, const char *bits); void ifmaybeload(struct ifconfig_args *args, const char *name); typedef int clone_match_func(const char *); -typedef void clone_callback_func(int, struct ifreq *); +typedef void clone_callback_func(if_ctx *, struct ifreq *); void clone_setdefcallback_prefix(const char *, clone_callback_func *); void clone_setdefcallback_filter(clone_match_func *, clone_callback_func *); @@ -303,7 +299,7 @@ struct ifmediareq *ifmedia_getstate(void); void print_vhid(const struct ifaddrs *, const char *); -void ioctl_ifcreate(int s, struct ifreq *); +void ifcreate_ioctl(if_ctx *ctx, struct ifreq *ifr); /* Helpers */ struct sockaddr_in; diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index c096428dd3a8..688d5b6464ad 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -447,10 +447,10 @@ getroam(int s) } static void -setroam_cb(int s, void *arg) +setroam_cb(if_ctx *ctx, void *arg) { struct ieee80211_roamparams_req *roam = arg; - set80211(s, IEEE80211_IOC_ROAM, 0, sizeof(*roam), roam); + set80211(ctx->io_s, IEEE80211_IOC_ROAM, 0, sizeof(*roam), roam); } static void @@ -465,10 +465,10 @@ gettxparams(int s) } static void -settxparams_cb(int s, void *arg) +settxparams_cb(if_ctx *ctx, void *arg) { struct ieee80211_txparams_req *txp = arg; - set80211(s, IEEE80211_IOC_TXPARAMS, 0, sizeof(*txp), txp); + set80211(ctx->io_s, IEEE80211_IOC_TXPARAMS, 0, sizeof(*txp), txp); } static void @@ -491,7 +491,7 @@ getdevcaps(int s, struct ieee80211_devcaps_req *dc) } static void -setregdomain_cb(int s, void *arg) +setregdomain_cb(if_ctx *ctx, void *arg) { struct ieee80211_regdomain_req *req; struct ieee80211_regdomain *rd = arg; @@ -545,7 +545,7 @@ setregdomain_cb(int s, void *arg) if (dc == NULL) errx(1, "no space for device capabilities"); dc->dc_chaninfo.ic_nchans = MAXCHAN; - getdevcaps(s, dc); + getdevcaps(ctx->io_s, dc); #if 0 if (verbose) { printf("drivercaps: 0x%x\n", dc->dc_drivercaps); @@ -576,11 +576,11 @@ setregdomain_cb(int s, void *arg) errx(1, "no space for channel list"); memcpy(chaninfo, &req->chaninfo, IEEE80211_CHANINFO_SPACE(&req->chaninfo)); - print_channels(s, &req->chaninfo, 1/*allchans*/, 1/*verbose*/); + print_channels(ctx->io_s, &req->chaninfo, 1/*allchans*/, 1/*verbose*/); } if (req->chaninfo.ic_nchans == 0) errx(1, "no channels calculated"); - set80211(s, IEEE80211_IOC_REGDOMAIN, 0, + set80211(ctx->io_s, IEEE80211_IOC_REGDOMAIN, 0, IEEE80211_REGDOMAIN_SPACE(req), req); free(req); free(dc); @@ -5739,7 +5739,7 @@ print_string(const u_int8_t *buf, int len) } static void -setdefregdomain(int s) +setdefregdomain(if_ctx *ctx) { struct regdata *rdp = getregdata(); const struct regdomain *rd; @@ -5750,7 +5750,7 @@ setdefregdomain(int s) regdomain.country != CTRY_DEFAULT) return; - getregdomain(s); + getregdomain(ctx->io_s); /* Check if it was already set by the driver. */ if (regdomain.regdomain != 0 || @@ -5767,7 +5767,7 @@ setdefregdomain(int s) defaultcountry(rd); /* Send changes to net80211. */ - setregdomain_cb(s, ®domain); + setregdomain_cb(ctx, ®domain); /* Cleanup (so it can be overridden by subsequent parameters). */ regdomain.regdomain = 0; @@ -5784,7 +5784,7 @@ static struct ieee80211_clone_params params = { }; static void -wlan_create(int s, struct ifreq *ifr) +wlan_create(if_ctx *ctx, struct ifreq *ifr) { static const uint8_t zerobssid[IEEE80211_ADDR_LEN]; char orig_name[IFNAMSIZ]; @@ -5796,13 +5796,13 @@ wlan_create(int s, struct ifreq *ifr) memcmp(params.icp_bssid, zerobssid, sizeof(zerobssid)) == 0) errx(1, "no bssid specified for WDS (use wlanbssid)"); ifr->ifr_data = (caddr_t) ¶ms; - ioctl_ifcreate(s, ifr); + ifcreate_ioctl(ctx, ifr); /* XXX preserve original name for ifclonecreate(). */ strlcpy(orig_name, name, sizeof(orig_name)); strlcpy(name, ifr->ifr_name, sizeof(name)); - setdefregdomain(s); + setdefregdomain(ctx); strlcpy(name, orig_name, sizeof(name)); } diff --git a/sbin/ifconfig/iflagg.c b/sbin/ifconfig/iflagg.c index 5bb1fa6161b0..45f88f2feebd 100644 --- a/sbin/ifconfig/iflagg.c +++ b/sbin/ifconfig/iflagg.c @@ -308,10 +308,10 @@ setlaggtype(if_ctx *ctx __unused, const char *arg, int dummy __unused) } static void -lagg_create(int s, struct ifreq *ifr) +lagg_create(if_ctx *ctx, struct ifreq *ifr) { ifr->ifr_data = (caddr_t) ¶ms; - ioctl_ifcreate(s, ifr); + ifcreate_ioctl(ctx, ifr); } static struct cmd lagg_cmds[] = { diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c index 0774727a9444..49d1edb2d72c 100644 --- a/sbin/ifconfig/ifmedia.c +++ b/sbin/ifconfig/ifmedia.c @@ -90,7 +90,7 @@ #include "ifconfig.h" -static void domediaopt(const char *, bool); +static void domediaopt(if_ctx *, const char *, bool); static ifmedia_t get_media_subtype(ifmedia_t, const char *); static ifmedia_t get_media_mode(ifmedia_t, const char *); static ifmedia_t get_media_options(ifmedia_t, const char *); @@ -175,14 +175,14 @@ ifmedia_getstate(void) } static void -setifmediacallback(int s, void *arg) +setifmediacallback(if_ctx *ctx, void *arg) { struct ifmediareq *ifmr = (struct ifmediareq *)arg; static bool did_it = false; if (!did_it) { ifr.ifr_media = ifmr->ifm_current; - if (ioctl(s, SIOCSIFMEDIA, (caddr_t)&ifr) < 0) + if (ioctl_ctx(ctx, SIOCSIFMEDIA, (caddr_t)&ifr) < 0) err(1, "SIOCSIFMEDIA (media)"); free(ifmr); did_it = true; @@ -190,7 +190,7 @@ setifmediacallback(int s, void *arg) } static void -setmedia(if_ctx *ctx __unused, const char *val, int d __unused) +setmedia(if_ctx *ctx, const char *val, int d __unused) { struct ifmediareq *ifmr; int subtype; @@ -217,21 +217,21 @@ setmedia(if_ctx *ctx __unused, const char *val, int d __unused) } static void -setmediaopt(if_ctx *ctx __unused, const char *val, int d __unused) +setmediaopt(if_ctx *ctx, const char *val, int d __unused) { - domediaopt(val, false); + domediaopt(ctx, val, false); } static void -unsetmediaopt(if_ctx *ctx __unused, const char *val, int d __unused) +unsetmediaopt(if_ctx *ctx, const char *val, int d __unused) { - domediaopt(val, true); + domediaopt(ctx, val, true); } static void -domediaopt(const char *val, bool clear) +domediaopt(if_ctx *ctx, const char *val, bool clear) { struct ifmediareq *ifmr; ifmedia_t options; @@ -256,7 +256,7 @@ domediaopt(const char *val, bool clear) } static void -setmediainst(if_ctx *ctx __unused, const char *val, int d __unused) +setmediainst(if_ctx *ctx, const char *val, int d __unused) { struct ifmediareq *ifmr; int inst; @@ -275,7 +275,7 @@ setmediainst(if_ctx *ctx __unused, const char *val, int d __unused) } static void -setmediamode(if_ctx *ctx __unused, const char *val, int d __unused) +setmediamode(if_ctx *ctx, const char *val, int d __unused) { struct ifmediareq *ifmr; int mode; diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c index 6dfc990d0558..2d0d15fdd828 100644 --- a/sbin/ifconfig/ifvlan.c +++ b/sbin/ifconfig/ifvlan.c @@ -158,7 +158,7 @@ vlan_parse_ethervid(const char *name) } static void -vlan_create(int s, struct ifreq *ifr) +vlan_create(if_ctx *ctx, struct ifreq *ifr) { vlan_parse_ethervid(ifr->ifr_name); @@ -172,11 +172,11 @@ vlan_create(int s, struct ifreq *ifr) errx(1, "must specify a parent device for vlan create"); ifr->ifr_data = (caddr_t) ¶ms; } - ioctl_ifcreate(s, ifr); + ifcreate_ioctl(ctx, ifr); } static void -vlan_cb(int s __unused, void *arg __unused) +vlan_cb(if_ctx *ctx __unused, void *arg __unused) { if ((params.vlr_tag != NOTAG) ^ (params.vlr_parent[0] != '\0')) errx(1, "both vlan and vlandev must be specified"); diff --git a/sbin/ifconfig/ifvxlan.c b/sbin/ifconfig/ifvxlan.c index 02d353ff7abd..ae4b54c7e64d 100644 --- a/sbin/ifconfig/ifvxlan.c +++ b/sbin/ifconfig/ifvxlan.c @@ -179,19 +179,13 @@ vxlan_check_params(void) #undef _REMOTE_ADDR46 static void -vxlan_cb(int s __unused, void *arg __unused) -{ - -} - -static void -vxlan_create(int s, struct ifreq *ifr) +vxlan_create(if_ctx *ctx, struct ifreq *ifr) { vxlan_check_params(); ifr->ifr_data = (caddr_t) ¶ms; - ioctl_ifcreate(s, ifr); + ifcreate_ioctl(ctx, ifr); } static void @@ -640,6 +634,5 @@ vxlan_ctor(void) for (i = 0; i < nitems(vxlan_cmds); i++) cmd_register(&vxlan_cmds[i]); af_register(&af_vxlan); - callback_register(vxlan_cb, NULL); clone_setdefcallback_prefix("vxlan", vxlan_create); } From nobody Tue Jun 13 06:26:59 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJVq6PV9z4dLY7; Tue, 13 Jun 2023 06:26:59 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJVq5xB7z3n1L; Tue, 13 Jun 2023 06:26:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637619; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N1aShowfHB7U2SsklSLzhzo78OXs9DPBij26gnEGvNU=; b=EKnXiTwK2YM6prBrMGl2L6bNdivUt8T6ExqJLepH3pX0zZIROjcczn1aCoBlEY9ySms7e1 UBueJOYmwMpzidMy/hvxMoh4Y4ZWxyalW/kZhbRCqReAtPvwLmUPqMTyiJ0Wc2OVKvqDQH T7o41TjRBhxo6K8lrHao8WI0dEpgv7aifROE7FSIFquKfIHjLXDlM7VU81+fFl0Il6exxg sj45m5X/99coIbkul+r57OjoNOYxdIKPy1iykCWMe95sd88BfUmU+4vgBnDpMvgXdVEDP/ kA32jgMQW/CebJr1kgKVZ07A0zidYkoakXNrU0+LdW0nkzdL2R83tYbwTkj22g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637619; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N1aShowfHB7U2SsklSLzhzo78OXs9DPBij26gnEGvNU=; b=iFYny71/LfTwN+oBawqyupNPIetLZvWQSCW8zDyS41ETyx8RXbCkHaBnAQcBTUvnkQoQZS cGTFggGaGcJsrwhr3qhh8unuUsNQbr8mea4YvNVMkbR8avurL8tuVLbhQyJ/k4nOWaji13 DJbdVgSbUirIdejTib6vbX8iL8Rw+MdpyR4A6VkvdY862QgyijYhJP12ZXF+KLXe2FPpqp hKurPA0oIY4hBtXcCY7MnWqmb9mJOvD6x5rghSG34TEHSk78AFBvXViDFBSe/w+fMvNiKu YpBnyTODfl+jDw56heSTjnTQCkbyUcgvx2alIumw1tDq5ow94Ly+dnYJcYvVpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686637619; a=rsa-sha256; cv=none; b=t6CLMHLDJ43mOo8zLYD573IsLO0hLhpu60PldEdQ2KMzXUDswE4aNt+nvnijrr2TzqaFkg fKL9HHkPgLCyZKP+9LR9A2/7DMr8DA559jVYin/CkxBTM36u8K3S+gcpfPmc/fxSfV4idd 5v+wlb9pTT2HqwPCWthLrptsFMQr98ya4DPXppB4AQBnZkyFDK7VAIeSS9PvmketzhtdvI B0jGkIX/FesCUQuUJa6ZEd5SDEg10kvQaPs7KKM9lZjtU6is+5/Vpc+C7cKE1fyYQLpHaq wnHluJrZcq9RusOk4pWdYlMcWlH8gcRKXUbb7QOQXoklPLg90CVrBx0rlYtqvg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJVq4b3Fz1BG3; Tue, 13 Jun 2023 06:26:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6QxK4030975; Tue, 13 Jun 2023 06:26:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6QxQr030974; Tue, 13 Jun 2023 06:26:59 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:26:59 GMT Message-Id: <202306130626.35D6QxQr030974@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: c6885dbda739 - main - ifconfig: eliminate global 'verbose' and 'printkey' variables List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c6885dbda7399139f6401438e0e7aa366df4773d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=c6885dbda7399139f6401438e0e7aa366df4773d commit c6885dbda7399139f6401438e0e7aa366df4773d Author: Alexander V. Chernikov AuthorDate: 2023-06-13 06:15:13 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:16:14 +0000 ifconfig: eliminate global 'verbose' and 'printkey' variables Reviewed By: kp Differential Revision: https://reviews.freebsd.org/D40427 MFC after: 2 weeks --- sbin/ifconfig/carp.c | 4 +- sbin/ifconfig/ifconfig.c | 6 -- sbin/ifconfig/ifconfig.h | 2 - sbin/ifconfig/ifieee80211.c | 247 +++++++++++++++++++++++--------------------- sbin/ifconfig/iflagg.c | 3 +- sbin/ifconfig/ifvxlan.c | 2 +- 6 files changed, 135 insertions(+), 129 deletions(-) diff --git a/sbin/ifconfig/carp.c b/sbin/ifconfig/carp.c index 37f2cd485d97..9de8177d210e 100644 --- a/sbin/ifconfig/carp.c +++ b/sbin/ifconfig/carp.c @@ -71,7 +71,7 @@ static struct in6_addr carp_addr6; static unsigned char const *carpr_key; static void -carp_status(if_ctx *ctx __unused) +carp_status(if_ctx *ctx) { struct ifconfig_carp carpr[CARP_MAXVHID]; char addr_buf[NI_MAXHOST]; @@ -83,7 +83,7 @@ carp_status(if_ctx *ctx __unused) printf("\tcarp: %s vhid %d advbase %d advskew %d", carp_states[carpr[i].carpr_state], carpr[i].carpr_vhid, carpr[i].carpr_advbase, carpr[i].carpr_advskew); - if (printkeys && carpr[i].carpr_key[0] != '\0') + if (ctx->args->printkeys && carpr[i].carpr_key[0] != '\0') printf(" key \"%s\"\n", carpr[i].carpr_key); else printf("\n"); diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 9b337c04d327..869eb44289d7 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -102,12 +102,10 @@ static int setmask; static int doalias; static int clearaddr; int newaddr = 1; -int verbose; int printifname = 0; struct ifconfig_args global_args; -int printkeys = 0; /* Print keying material for interfaces. */ int exit_code = 0; /* Formatter Strings */ @@ -555,10 +553,6 @@ args_parse(struct ifconfig_args *args, int argc, char *argv[]) args->argc = argc; args->argv = argv; - - /* Sync global variables */ - printkeys = args->printkeys; - verbose = args->verbose; } static int diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index cc343a3e5686..4910a816d3f1 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -250,9 +250,7 @@ extern ifconfig_handle_t *lifh; extern struct ifreq ifr; extern char name[IFNAMSIZ]; /* name of interface */ extern int allmedia; -extern int printkeys; extern int newaddr; -extern int verbose; extern int printifname; extern int exit_code; extern struct ifconfig_args global_args; diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index 688d5b6464ad..dfedb0b82a92 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -183,7 +183,7 @@ static void print_string(const u_int8_t *buf, int len); static void print_regdomain(const struct ieee80211_regdomain *, int); static void print_channels(int, const struct ieee80211req_chaninfo *, int allchans, int verbose); -static void regdomain_makechannels(struct ieee80211_regdomain_req *, +static void regdomain_makechannels(if_ctx *, struct ieee80211_regdomain_req *, const struct ieee80211_devcaps_req *); static const char *mesh_linkstate_string(uint8_t state); @@ -563,8 +563,8 @@ setregdomain_cb(if_ctx *ctx, void *arg) if (req == NULL) errx(1, "no space for regdomain request"); req->rd = *rd; - regdomain_makechannels(req, dc); - if (verbose) { + regdomain_makechannels(ctx, req, dc); + if (ctx->args->verbose) { LINE_INIT(':'); print_regdomain(rd, 1/*verbose*/); LINE_BREAK(); @@ -2165,7 +2165,7 @@ checkchan(const struct ieee80211req_chaninfo *avail, int freq, int flags) } static void -regdomain_addchans(struct ieee80211req_chaninfo *ci, +regdomain_addchans(if_ctx *ctx, struct ieee80211req_chaninfo *ci, const netband_head *bands, const struct ieee80211_regdomain *reg, uint32_t chanFlags, @@ -2176,6 +2176,7 @@ regdomain_addchans(struct ieee80211req_chaninfo *ci, struct ieee80211_channel *c, *prev; int freq, hi_adj, lo_adj, channelSep; uint32_t flags; + const int verbose = ctx->args->verbose; hi_adj = (chanFlags & IEEE80211_CHAN_HT40U) ? -20 : 0; lo_adj = (chanFlags & IEEE80211_CHAN_HT40D) ? 20 : 0; @@ -2337,6 +2338,7 @@ regdomain_addchans(struct ieee80211req_chaninfo *ci, static void regdomain_makechannels( + if_ctx *ctx, struct ieee80211_regdomain_req *req, const struct ieee80211_devcaps_req *dc) { @@ -2375,40 +2377,40 @@ regdomain_makechannels( */ ci->ic_nchans = 0; if (!LIST_EMPTY(&rd->bands_11b)) - regdomain_addchans(ci, &rd->bands_11b, reg, + regdomain_addchans(ctx, ci, &rd->bands_11b, reg, IEEE80211_CHAN_B, &dc->dc_chaninfo); if (!LIST_EMPTY(&rd->bands_11g)) - regdomain_addchans(ci, &rd->bands_11g, reg, + regdomain_addchans(ctx, ci, &rd->bands_11g, reg, IEEE80211_CHAN_G, &dc->dc_chaninfo); if (!LIST_EMPTY(&rd->bands_11a)) - regdomain_addchans(ci, &rd->bands_11a, reg, + regdomain_addchans(ctx, ci, &rd->bands_11a, reg, IEEE80211_CHAN_A, &dc->dc_chaninfo); if (!LIST_EMPTY(&rd->bands_11na) && dc->dc_htcaps != 0) { - regdomain_addchans(ci, &rd->bands_11na, reg, + regdomain_addchans(ctx, ci, &rd->bands_11na, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT20, &dc->dc_chaninfo); if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) { - regdomain_addchans(ci, &rd->bands_11na, reg, + regdomain_addchans(ctx, ci, &rd->bands_11na, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11na, reg, + regdomain_addchans(ctx, ci, &rd->bands_11na, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D, &dc->dc_chaninfo); } } if (!LIST_EMPTY(&rd->bands_11ac) && dc->dc_vhtcaps != 0) { - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT20 | IEEE80211_CHAN_VHT20, &dc->dc_chaninfo); /* VHT40 is a function of HT40.. */ if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) { - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U | IEEE80211_CHAN_VHT40U, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D | IEEE80211_CHAN_VHT40D, &dc->dc_chaninfo); @@ -2416,11 +2418,11 @@ regdomain_makechannels( /* VHT80 is mandatory (and so should be VHT40 above). */ if (1) { - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U | IEEE80211_CHAN_VHT80, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D | IEEE80211_CHAN_VHT80, &dc->dc_chaninfo); @@ -2429,11 +2431,11 @@ regdomain_makechannels( /* VHT160 */ if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ( dc->dc_vhtcaps)) { - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U | IEEE80211_CHAN_VHT160, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D | IEEE80211_CHAN_VHT160, &dc->dc_chaninfo); @@ -2442,11 +2444,11 @@ regdomain_makechannels( /* VHT80P80 */ if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ( dc->dc_vhtcaps)) { - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U | IEEE80211_CHAN_VHT80P80, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11ac, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ac, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D | IEEE80211_CHAN_VHT80P80, &dc->dc_chaninfo); @@ -2454,14 +2456,14 @@ regdomain_makechannels( } if (!LIST_EMPTY(&rd->bands_11ng) && dc->dc_htcaps != 0) { - regdomain_addchans(ci, &rd->bands_11ng, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ng, reg, IEEE80211_CHAN_G | IEEE80211_CHAN_HT20, &dc->dc_chaninfo); if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) { - regdomain_addchans(ci, &rd->bands_11ng, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ng, reg, IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11ng, reg, + regdomain_addchans(ctx, ci, &rd->bands_11ng, reg, IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D, &dc->dc_chaninfo); } @@ -2720,10 +2722,10 @@ getflags(int flags) } static void -printie(const char* tag, const uint8_t *ie, size_t ielen, unsigned int maxlen) +printie(if_ctx *ctx, const char* tag, const uint8_t *ie, size_t ielen, unsigned int maxlen) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { maxlen -= strlen(tag)+2; if (2*ielen > maxlen) maxlen--; @@ -2757,7 +2759,7 @@ printie(const char* tag, const uint8_t *ie, size_t ielen, unsigned int maxlen) */ static void -printwmeparam(const char *tag, const u_int8_t *ie) +printwmeparam(if_ctx *ctx, const char *tag, const u_int8_t *ie) { static const char *acnames[] = { "BE", "BK", "VO", "VI" }; const struct ieee80211_wme_param *wme = @@ -2765,7 +2767,7 @@ printwmeparam(const char *tag, const u_int8_t *ie) int i; printf("%s", tag); - if (!verbose) + if (!ctx->args->verbose) return; printf("param_qosInfo); ie += offsetof(struct ieee80211_wme_param, params_acParams); @@ -2787,10 +2789,10 @@ printwmeparam(const char *tag, const u_int8_t *ie) } static void -printwmeinfo(const char *tag, const u_int8_t *ie) +printwmeinfo(if_ctx *ctx, const char *tag, const u_int8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_wme_info *wme = (const struct ieee80211_wme_info *) ie; printf("", @@ -2799,10 +2801,10 @@ printwmeinfo(const char *tag, const u_int8_t *ie) } static void -printvhtcap(const char *tag, const u_int8_t *ie) +printvhtcap(if_ctx *ctx, const char *tag, const u_int8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ie_vhtcap *vhtcap = (const struct ieee80211_ie_vhtcap *) ie; uint32_t vhtcap_info = LE_READ_4(&vhtcap->vht_cap_info); @@ -2822,10 +2824,10 @@ printvhtcap(const char *tag, const u_int8_t *ie) } static void -printvhtinfo(const char *tag, const u_int8_t *ie) +printvhtinfo(if_ctx *ctx, const char *tag, const u_int8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ie_vht_operation *vhtinfo = (const struct ieee80211_ie_vht_operation *) ie; @@ -2838,7 +2840,7 @@ printvhtinfo(const char *tag, const u_int8_t *ie) } static void -printvhtpwrenv(const char *tag, const u_int8_t *ie, size_t ielen) +printvhtpwrenv(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen) { printf("%s", tag); static const char *txpwrmap[] = { @@ -2847,7 +2849,7 @@ printvhtpwrenv(const char *tag, const u_int8_t *ie, size_t ielen) "80", "160", }; - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ie_vht_txpwrenv *vhtpwr = (const struct ieee80211_ie_vht_txpwrenv *) ie; size_t i, n; @@ -2871,10 +2873,10 @@ printvhtpwrenv(const char *tag, const u_int8_t *ie, size_t ielen) } static void -printhtcap(const char *tag, const u_int8_t *ie) +printhtcap(if_ctx *ctx, const char *tag, const u_int8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ie_htcap *htcap = (const struct ieee80211_ie_htcap *) ie; const char *sep; @@ -2905,10 +2907,10 @@ printhtcap(const char *tag, const u_int8_t *ie) } static void -printhtinfo(const char *tag, const u_int8_t *ie) +printhtinfo(if_ctx *ctx, const char *tag, const u_int8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ie_htinfo *htinfo = (const struct ieee80211_ie_htinfo *) ie; const char *sep; @@ -2937,11 +2939,11 @@ printhtinfo(const char *tag, const u_int8_t *ie) } static void -printathie(const char *tag, const u_int8_t *ie) +printathie(if_ctx *ctx, const char *tag, const u_int8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ath_ie *ath = (const struct ieee80211_ath_ie *)ie; @@ -2968,11 +2970,11 @@ printathie(const char *tag, const u_int8_t *ie) static void -printmeshconf(const char *tag, const uint8_t *ie) +printmeshconf(if_ctx *ctx, const char *tag, const uint8_t *ie) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_meshconf_ie *mconf = (const struct ieee80211_meshconf_ie *)ie; printf("args->verbose) { const struct ieee80211_bss_load_ie *bssload = (const struct ieee80211_bss_load_ie *) ie; printf("", @@ -3020,10 +3022,10 @@ printbssload(const char *tag, const uint8_t *ie) } static void -printapchanrep(const char *tag, const u_int8_t *ie, size_t ielen) +printapchanrep(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const struct ieee80211_ap_chan_report_ie *ap = (const struct ieee80211_ap_chan_report_ie *) ie; const char *sep = ""; @@ -3079,12 +3081,12 @@ wpa_keymgmt(const u_int8_t *sel) } static void -printwpaie(const char *tag, const u_int8_t *ie) +printwpaie(if_ctx *ctx, const char *tag, const u_int8_t *ie) { u_int8_t len = ie[1]; printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const char *sep; int n; @@ -3165,10 +3167,10 @@ rsn_keymgmt(const u_int8_t *sel) } static void -printrsnie(const char *tag, const u_int8_t *ie, size_t ielen) +printrsnie(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen) { printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { const char *sep; int n; @@ -3213,12 +3215,12 @@ printrsnie(const char *tag, const u_int8_t *ie, size_t ielen) (((const u_int8_t *)(p))[0] << 8))) static void -printwpsie(const char *tag, const u_int8_t *ie) +printwpsie(if_ctx *ctx, const char *tag, const u_int8_t *ie) { u_int8_t len = ie[1]; printf("%s", tag); - if (verbose) { + if (ctx->args->verbose) { static const char *dev_pass_id[] = { "D", /* Default (PIN) */ "U", /* User-specified */ @@ -3443,10 +3445,10 @@ printwpsie(const char *tag, const u_int8_t *ie) } static void -printtdmaie(const char *tag, const u_int8_t *ie, size_t ielen) +printtdmaie(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen) { printf("%s", tag); - if (verbose && ielen >= sizeof(struct ieee80211_tdma_param)) { + if (ctx->args->verbose && ielen >= sizeof(struct ieee80211_tdma_param)) { const struct ieee80211_tdma_param *tdma = (const struct ieee80211_tdma_param *) ie; @@ -3622,8 +3624,10 @@ iename(int elemid) } static void -printies(const u_int8_t *vp, int ielen, unsigned int maxcols) +printies(if_ctx *ctx, const u_int8_t *vp, int ielen, unsigned int maxcols) { + const int verbose = ctx->args->verbose; + while (ielen > 0) { switch (vp[0]) { case IEEE80211_ELEMID_SSID: @@ -3650,55 +3654,55 @@ printies(const u_int8_t *vp, int ielen, unsigned int maxcols) break; case IEEE80211_ELEMID_VENDOR: if (iswpaoui(vp)) - printwpaie(" WPA", vp); + printwpaie(ctx, " WPA", vp); else if (iswmeinfo(vp)) - printwmeinfo(" WME", vp); + printwmeinfo(ctx, " WME", vp); else if (iswmeparam(vp)) - printwmeparam(" WME", vp); + printwmeparam(ctx, " WME", vp); else if (isatherosoui(vp)) - printathie(" ATH", vp); + printathie(ctx, " ATH", vp); else if (iswpsoui(vp)) - printwpsie(" WPS", vp); + printwpsie(ctx, " WPS", vp); else if (istdmaoui(vp)) - printtdmaie(" TDMA", vp, 2+vp[1]); + printtdmaie(ctx, " TDMA", vp, 2+vp[1]); else if (verbose) - printie(" VEN", vp, 2+vp[1], maxcols); - break; + printie(ctx, " VEN", vp, 2+vp[1], maxcols); + break; case IEEE80211_ELEMID_RSN: - printrsnie(" RSN", vp, 2+vp[1]); + printrsnie(ctx, " RSN", vp, 2+vp[1]); break; case IEEE80211_ELEMID_HTCAP: - printhtcap(" HTCAP", vp); + printhtcap(ctx, " HTCAP", vp); break; case IEEE80211_ELEMID_HTINFO: if (verbose) - printhtinfo(" HTINFO", vp); + printhtinfo(ctx, " HTINFO", vp); break; case IEEE80211_ELEMID_MESHID: if (verbose) printssid(" MESHID", vp, maxcols); break; case IEEE80211_ELEMID_MESHCONF: - printmeshconf(" MESHCONF", vp); + printmeshconf(ctx, " MESHCONF", vp); break; case IEEE80211_ELEMID_VHT_CAP: - printvhtcap(" VHTCAP", vp); + printvhtcap(ctx, " VHTCAP", vp); break; case IEEE80211_ELEMID_VHT_OPMODE: - printvhtinfo(" VHTOPMODE", vp); + printvhtinfo(ctx, " VHTOPMODE", vp); break; case IEEE80211_ELEMID_VHT_PWR_ENV: - printvhtpwrenv(" VHTPWRENV", vp, 2+vp[1]); + printvhtpwrenv(ctx, " VHTPWRENV", vp, 2+vp[1]); break; case IEEE80211_ELEMID_BSSLOAD: - printbssload(" BSSLOAD", vp); + printbssload(ctx, " BSSLOAD", vp); break; case IEEE80211_ELEMID_APCHANREP: - printapchanrep(" APCHANREP", vp, 2+vp[1]); + printapchanrep(ctx, " APCHANREP", vp, 2+vp[1]); break; default: if (verbose) - printie(iename(vp[0]), vp, 2+vp[1], maxcols); + printie(ctx, iename(vp[0]), vp, 2+vp[1], maxcols); break; } ielen -= 2+vp[1]; @@ -3747,19 +3751,19 @@ printbssidname(const struct ether_addr *n) } static void -list_scan(int s) +list_scan(if_ctx *ctx) { uint8_t buf[24*1024]; char ssid[IEEE80211_NWID_LEN+1]; const uint8_t *cp; int len, idlen; - if (get80211len(s, IEEE80211_IOC_SCAN_RESULTS, buf, sizeof(buf), &len) < 0) + if (get80211len(ctx->io_s, IEEE80211_IOC_SCAN_RESULTS, buf, sizeof(buf), &len) < 0) errx(1, "unable to get scan results"); if (len < (int)sizeof(struct ieee80211req_scan_result)) return; - getchaninfo(s); + getchaninfo(ctx->io_s); printf("%-*.*s %-17.17s %4s %4s %-7s %3s %4s\n" , IEEE80211_NWID_LEN, IEEE80211_NWID_LEN, "SSID/MESH ID" @@ -3795,7 +3799,7 @@ list_scan(int s) , sr->isr_intval , getcaps(sr->isr_capinfo) ); - printies(vp + sr->isr_ssid_len + sr->isr_meshid_len, + printies(ctx, vp + sr->isr_ssid_len + sr->isr_meshid_len, sr->isr_ie_len, 24); printbssidname((const struct ether_addr *)sr->isr_bssid); printf("\n"); @@ -3858,7 +3862,7 @@ static void set80211scan(if_ctx *ctx, const char *val __unused, int dummy __unused) { scan_and_wait(ctx->io_s); - list_scan(ctx->io_s); + list_scan(ctx); } static enum ieee80211_opmode get80211opmode(int s); @@ -3894,12 +3898,13 @@ getrxseq(const struct ieee80211req_sta_info *si) } static void -list_stations(int s) +list_stations(if_ctx *ctx) { union { struct ieee80211req_sta_req req; uint8_t buf[24*1024]; } u; + int s = ctx->io_s; enum ieee80211_opmode opmode = get80211opmode(s); const uint8_t *cp; int len; @@ -3983,7 +3988,7 @@ list_stations(int s) , getcaps(si->isi_capinfo) , getflags(si->isi_state) ); - printies(cp + si->isi_ie_off, si->isi_ie_len, 24); + printies(ctx, cp + si->isi_ie_off, si->isi_ie_len, 24); printmimo(&si->isi_mimo); printf("\n"); cp += si->isi_len, len -= si->isi_len; @@ -4190,10 +4195,10 @@ print_channels(int s, const struct ieee80211req_chaninfo *chans, } static void -list_channels(int s, int allchans) +list_channels(if_ctx *ctx, int allchans) { - getchaninfo(s); - print_channels(s, chaninfo, allchans, verbose); + getchaninfo(ctx->io_s); + print_channels(ctx->io_s, chaninfo, allchans, ctx->args->verbose); } static void @@ -4216,14 +4221,14 @@ print_txpow_verbose(const struct ieee80211_channel *c) } static void -list_txpow(int s) +list_txpow(if_ctx *ctx) { struct ieee80211req_chaninfo *achans; uint8_t reported[IEEE80211_CHAN_BYTES]; struct ieee80211_channel *c, *prev; unsigned int i, half; - getchaninfo(s); + getchaninfo(ctx->io_s); achans = malloc(IEEE80211_CHANINFO_SPACE(chaninfo)); if (achans == NULL) errx(1, "no space for active channel list"); @@ -4232,7 +4237,7 @@ list_txpow(int s) for (i = 0; i < chaninfo->ic_nchans; i++) { c = &chaninfo->ic_chans[i]; /* suppress duplicates as above */ - if (isset(reported, c->ic_ieee) && !verbose) { + if (isset(reported, c->ic_ieee) && !ctx->args->verbose) { /* XXX we assume duplicates are adjacent */ assert(achans->ic_nchans > 0); prev = &achans->ic_chans[achans->ic_nchans-1]; @@ -4244,7 +4249,7 @@ list_txpow(int s) setbit(reported, c->ic_ieee); } } - if (!verbose) { + if (!ctx->args->verbose) { half = achans->ic_nchans / 2; if (achans->ic_nchans % 2) half++; @@ -4273,9 +4278,11 @@ list_keys(int s __unused) } static void -list_capabilities(int s) +list_capabilities(if_ctx *ctx) { struct ieee80211_devcaps_req *dc; + const int verbose = ctx->args->verbose; + int s = ctx->io_s; if (verbose) dc = malloc(IEEE80211_DEVCAPS_SIZE(MAXCHAN)); @@ -4327,9 +4334,10 @@ get80211wme(int s, int param, int ac, int *val) } static void -list_wme_aci(int s, const char *tag, int ac) +list_wme_aci(if_ctx *ctx, const char *tag, int ac) { int val; + int s = ctx->io_s; printf("\t%s", tag); @@ -4345,7 +4353,7 @@ list_wme_aci(int s, const char *tag, int ac) if (get80211wme(s, IEEE80211_IOC_WME_ACM, ac, &val) != -1) { if (val) printf(" acm"); - else if (verbose) + else if (ctx->args->verbose) printf(" -acm"); } /* !BSS only */ @@ -4353,7 +4361,7 @@ list_wme_aci(int s, const char *tag, int ac) if (get80211wme(s, IEEE80211_IOC_WME_ACKPOLICY, ac, &val) != -1) { if (!val) printf(" -ack"); - else if (verbose) + else if (ctx->args->verbose) printf(" ack"); } } @@ -4361,19 +4369,19 @@ list_wme_aci(int s, const char *tag, int ac) } static void -list_wme(int s) +list_wme(if_ctx *ctx) { static const char *acnames[] = { "AC_BE", "AC_BK", "AC_VI", "AC_VO" }; int ac; - if (verbose) { + if (ctx->args->verbose) { /* display both BSS and local settings */ for (ac = WME_AC_BE; ac <= WME_AC_VO; ac++) { again: if (ac & IEEE80211_WMEPARAM_BSS) - list_wme_aci(s, " ", ac); + list_wme_aci(ctx, " ", ac); else - list_wme_aci(s, acnames[ac], ac); + list_wme_aci(ctx, acnames[ac], ac); if ((ac & IEEE80211_WMEPARAM_BSS) == 0) { ac |= IEEE80211_WMEPARAM_BSS; goto again; @@ -4383,7 +4391,7 @@ list_wme(int s) } else { /* display only channel settings */ for (ac = WME_AC_BE; ac <= WME_AC_VO; ac++) - list_wme_aci(s, acnames[ac], ac); + list_wme_aci(ctx, acnames[ac], ac); } } @@ -4510,7 +4518,7 @@ printpolicy(int policy) } static void -list_mac(int s) +list_mac(if_ctx *ctx) { struct ieee80211req ireq; struct ieee80211req_maclist *acllist; @@ -4522,7 +4530,7 @@ list_mac(int s) (void) strlcpy(ireq.i_name, name, sizeof(ireq.i_name)); /* XXX ?? */ ireq.i_type = IEEE80211_IOC_MACCMD; ireq.i_val = IEEE80211_MACCMD_POLICY; - if (ioctl(s, SIOCG80211, &ireq) < 0) { + if (ioctl_ctx(ctx, SIOCG80211, &ireq) < 0) { if (errno == EINVAL) { printf("No acl policy loaded\n"); return; @@ -4542,15 +4550,15 @@ list_mac(int s) printf("policy: unknown (%u)\n", policy); c = '?'; } - if (verbose || c == '?') + if (ctx->args->verbose || c == '?') printpolicy(policy); ireq.i_val = IEEE80211_MACCMD_LIST; ireq.i_len = 0; - if (ioctl(s, SIOCG80211, &ireq) < 0) + if (ioctl_ctx(ctx, SIOCG80211, &ireq) < 0) err(1, "unable to get mac acl list size"); if (ireq.i_len == 0) { /* NB: no acls */ - if (!(verbose || c == '?')) + if (!(ctx->args->verbose || c == '?')) printpolicy(policy); return; } @@ -4561,7 +4569,7 @@ list_mac(int s) err(1, "out of memory for acl list"); ireq.i_data = data; - if (ioctl(s, SIOCG80211, &ireq) < 0) + if (ioctl_ctx(ctx, SIOCG80211, &ireq) < 0) err(1, "unable to get mac acl list"); nacls = len / sizeof(*acllist); acllist = (struct ieee80211req_maclist *) data; @@ -4604,8 +4612,10 @@ print_regdomain(const struct ieee80211_regdomain *reg, int verb) } static void -list_regdomain(int s, int channelsalso) +list_regdomain(if_ctx *ctx, int channelsalso) { + int s = ctx->io_s; + getregdomain(s); if (channelsalso) { getchaninfo(s); @@ -4614,7 +4624,7 @@ list_regdomain(int s, int channelsalso) LINE_BREAK(); print_channels(s, chaninfo, 1/*allchans*/, 1/*verbose*/); } else - print_regdomain(®domain, verbose); + print_regdomain(®domain, ctx->args->verbose); } static void @@ -4670,29 +4680,29 @@ set80211list(if_ctx *ctx, const char *arg, int dummy __unused) LINE_INIT('\t'); if (iseq(arg, "sta")) - list_stations(s); + list_stations(ctx); else if (iseq(arg, "scan") || iseq(arg, "ap")) - list_scan(s); + list_scan(ctx); else if (iseq(arg, "chan") || iseq(arg, "freq")) - list_channels(s, 1); + list_channels(ctx, 1); else if (iseq(arg, "active")) - list_channels(s, 0); + list_channels(ctx, 0); else if (iseq(arg, "keys")) list_keys(s); else if (iseq(arg, "caps")) - list_capabilities(s); + list_capabilities(ctx); else if (iseq(arg, "wme") || iseq(arg, "wmm")) - list_wme(s); + list_wme(ctx); else if (iseq(arg, "mac")) - list_mac(s); + list_mac(ctx); else if (iseq(arg, "txpow")) - list_txpow(s); + list_txpow(ctx); else if (iseq(arg, "roam")) list_roam(s); else if (iseq(arg, "txparam") || iseq(arg, "txparm")) list_txparams(s); else if (iseq(arg, "regdomain")) - list_regdomain(s, 1); + list_regdomain(ctx, 1); else if (iseq(arg, "countries")) list_countries(); else if (iseq(arg, "mesh")) @@ -4767,11 +4777,13 @@ printcipher(int s, struct ieee80211req *ireq, int keylenop) #endif static void -printkey(const struct ieee80211req_key *ik) +printkey(if_ctx *ctx, const struct ieee80211req_key *ik) { static const uint8_t zerodata[IEEE80211_KEYBUF_SIZE]; u_int keylen = ik->ik_keylen; int printcontents; + const int verbose = ctx->args->verbose; + const bool printkeys = ctx->args->printkeys; printcontents = printkeys && (memcmp(ik->ik_keydata, zerodata, keylen) != 0 || verbose); @@ -4894,6 +4906,7 @@ ieee80211_status(if_ctx *ctx) const struct ieee80211_channel *c; const struct ieee80211_roamparam *rp; const struct ieee80211_txparam *tp; + const int verbose = ctx->args->verbose; if (getid(s, -1, data, sizeof(data), &len, 0) < 0) { /* If we can't get the SSID, this isn't an 802.11 device. */ @@ -4951,7 +4964,7 @@ ieee80211_status(if_ctx *ctx) spacer = ' '; /* force first break */ LINE_BREAK(); - list_regdomain(s, 0); + list_regdomain(ctx, 0); wpa = 0; if (get80211val(s, IEEE80211_IOC_AUTHMODE, &val) != -1) { @@ -5093,7 +5106,7 @@ ieee80211_status(if_ctx *ctx) if (ik.ik_keylen != 0) { if (verbose) LINE_BREAK(); - printkey(&ik); + printkey(ctx, &ik); } } if (i > 0 && verbose) @@ -5552,7 +5565,7 @@ end: if (wme && verbose) { LINE_BREAK(); - list_wme(s); + list_wme(ctx); } if (opmode == IEEE80211_M_MBSS) { diff --git a/sbin/ifconfig/iflagg.c b/sbin/ifconfig/iflagg.c index 45f88f2feebd..b4061ede9e6c 100644 --- a/sbin/ifconfig/iflagg.c +++ b/sbin/ifconfig/iflagg.c @@ -215,7 +215,7 @@ lacp_format_peer(struct lacp_opreq *req, const char *sep) } static void -lagg_status(if_ctx *ctx __unused) +lagg_status(if_ctx *ctx) { struct lagg_protos protos[] = LAGG_PROTOS; struct ifconfig_lagg_status *lagg; @@ -225,6 +225,7 @@ lagg_status(if_ctx *ctx __unused) struct lagg_reqport *ports; struct lacp_opreq *lp; const char *proto; + const int verbose = ctx->args->verbose; if (ifconfig_lagg_get_lagg_status(lifh, name, &lagg) == -1) return; diff --git a/sbin/ifconfig/ifvxlan.c b/sbin/ifconfig/ifvxlan.c index ae4b54c7e64d..55e2b79d3285 100644 --- a/sbin/ifconfig/ifvxlan.c +++ b/sbin/ifconfig/ifvxlan.c @@ -141,7 +141,7 @@ vxlan_status(if_ctx *ctx) printf(" %s %s%s%s:%s", mc ? "group" : "remote", ipv6 ? "[" : "", dst, ipv6 ? "]" : "", dstport); - if (verbose) { + if (ctx->args->verbose) { printf("\n\t\tconfig: "); printf("%slearning portrange %d-%d ttl %d", cfg.vxlc_learn ? "" : "no", cfg.vxlc_port_min, From nobody Tue Jun 13 06:27:00 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJVs37Ndz4dLlm; Tue, 13 Jun 2023 06:27:01 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJVs0DMJz3nHB; Tue, 13 Jun 2023 06:27:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637621; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ALmqh/k92kBwraOQU1YgZTmme/t9afzPZ6aywjjgy1M=; b=RxSYho6XUpZjASyiwm81fpkKXaiICksIJAGDJiaMB3C7HTkb2DtWsiYNc07gVikdwL9TCK mNFzjTyDz6jvN6yk7MNW9Or4cMu7LhEBZcn4Myihmsz+Ze1dv9/OoMOeHtPn0jcKysFmhI zoBXV8udpTeNBnv+HodjV0sydeF2jjUYwv6S8zBcy6UGJM+Bwm/bxvjI3JLptWMj7VZ/nj /JPhRUmyPfZ9n7MpCxX/teHi1GIkhWXRRfMqdmx+ynug5Fkk68xHUkRXZKMcjWOSf1DjA7 1ghxVTN1mthq9Gnc30kBI+5pCJrBDbKaUWglJcKjFR1qpatrJK/m1d6ib0iyng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637621; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ALmqh/k92kBwraOQU1YgZTmme/t9afzPZ6aywjjgy1M=; b=GltT6XGelNLeaHYQy3cGA2NrXImoCESUbV3u1FMojLA6WvYjekTSL4IF9WFZpx1RFTuJaP fiVGhBxJhOZvd4zgmHeb7Qp4PRZ2ixL0yDSp4eXj/cwskPQqEnFf40xwmANte2tkFuHL/9 jLmi7nnHyALPwtUte86Bv7IxGtgEa/DEeAQkMMHBpzEyZdO+79O8BLM7wnZkl6toobs+Zd +83bCBqjsRfG6SskjmGJLhUFNy3hVvyoX+h3kgLixMMYPmKrL77OxAgArXreniUYkg3TOx 9wxfvt+r9RNKV8rhQlUMJC2ElmkHuE6Og4F/yLvEiXGQEFdkdBfgpUXjfVAGDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686637621; a=rsa-sha256; cv=none; b=qCh8iE9Jrxu2MRYPiRjQZKMzZxRQPQh3TnUCgJc9G82ZwER1YfMPxUgHGaaK5yjrmD1EOY DWR/974hIZunrXKZsYcn5f2tfHRgeZ8sKXjj30RX7S7z7GD3/kQyR/F8BwXg0/VRqynm6I T2HqRFwQBsyWWYlDve5XrDWvhAcNwl1Q6mF2PeR2uXYSNiEKumvnE3CE+PQH1daCVStYiz R1l+ofDtr+/50AskquMALh4o9eEf1HzWlTiglBYCReRnifInhQB1PhThVBtXLm0WEyn5gB QQ6yHZ3y3o0Tdz9GGplMht6Rk+75225lfREcUt/g7akNF80vMrIMthyBYpEzew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJVr5XwWz19x8; Tue, 13 Jun 2023 06:27:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6R0iB030998; Tue, 13 Jun 2023 06:27:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6R0SB030997; Tue, 13 Jun 2023 06:27:00 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:27:00 GMT Message-Id: <202306130627.35D6R0SB030997@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 4106282ec41d - main - ifconfig: remove global 'printifname' variable. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4106282ec41d92b98c29e25316d11d93600a8f23 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=4106282ec41d92b98c29e25316d11d93600a8f23 commit 4106282ec41d92b98c29e25316d11d93600a8f23 Author: Alexander V. Chernikov AuthorDate: 2023-06-13 06:18:05 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:18:10 +0000 ifconfig: remove global 'printifname' variable. This variable was used to print the created interface name in the atexit(3) handler. The interface name was calculated in the ifclonecreate() by matching old & new names. This change alter the implementation the following way: 1) the function responsible for the interface creation (ifcreate_ioctl) updates all necessary state internally. This removes the need for the name manipulation hack in wlan_create(). 2) As atexit(3) handler does not accept any parameters, explicitly store the name to print in the ifname_to_print variable read by the atexit(3) handler. Reviewed By: kp Differential Revision: https://reviews.freebsd.org/D40431 MFC after: 2 weeks --- sbin/ifconfig/ifclone.c | 9 --------- sbin/ifconfig/ifconfig.c | 26 +++++++++++++++++++++----- sbin/ifconfig/ifconfig.h | 9 +++++---- sbin/ifconfig/ifieee80211.c | 7 ------- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c index 7939ff95a065..f09b91b4181b 100644 --- a/sbin/ifconfig/ifclone.c +++ b/sbin/ifconfig/ifclone.c @@ -148,15 +148,6 @@ ifclonecreate(if_ctx *ctx, void *arg __unused) } else { dcp->clone_cb(ctx, &ifr); } - - /* - * If we get a different name back than we put in, update record and - * indicate it should be printed later. - */ - if (strncmp(name, ifr.ifr_name, sizeof(name)) != 0) { - strlcpy(name, ifr.ifr_name, sizeof(name)); - printifname = 1; - } } static void diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 869eb44289d7..28677e57065c 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -102,12 +102,13 @@ static int setmask; static int doalias; static int clearaddr; int newaddr = 1; -int printifname = 0; struct ifconfig_args global_args; int exit_code = 0; +static char ifname_to_print[IFNAMSIZ]; /* Helper for printifnamemaybe() */ + /* Formatter Strings */ char *f_inet, *f_inet6, *f_ether, *f_addr; @@ -198,9 +199,22 @@ usage(void) exit(1); } +static void +ifname_update(if_ctx *ctx, const char *name) +{ + strlcpy(ctx->_ifname_storage_ioctl, name, sizeof(ctx->_ifname_storage_ioctl)); + ctx->ifname = ctx->_ifname_storage_ioctl; + + strlcpy(ifname_to_print, name, sizeof(ifname_to_print)); +} + void ifcreate_ioctl(if_ctx *ctx, struct ifreq *ifr) { + char ifname_orig[IFNAMSIZ]; + + strlcpy(ifname_orig, ifr->ifr_name, sizeof(ifname_orig)); + if (ioctl(ctx->io_s, SIOCIFCREATE2, ifr) < 0) { switch (errno) { case EEXIST: @@ -209,6 +223,9 @@ ifcreate_ioctl(if_ctx *ctx, struct ifreq *ifr) err(1, "SIOCIFCREATE2 (%s)", ifr->ifr_name); } } + + if (strncmp(ifname_orig, ifr->ifr_name, sizeof(ifname_orig)) != 0) + ifname_update(ctx, ifr->ifr_name); } #ifdef WITHOUT_NETLINK @@ -402,8 +419,8 @@ sortifaddrs(struct ifaddrs *list, static void printifnamemaybe(void) { - if (printifname) - printf("%s\n", name); + if (ifname_to_print[0] != '\0') + printf("%s\n", ifname_to_print); } static void @@ -1520,8 +1537,7 @@ setifname(if_ctx *ctx, const char *val, int dummy __unused) free(newname); err(1, "ioctl SIOCSIFNAME (set name)"); } - printifname = 1; - strlcpy(name, newname, sizeof(name)); + ifname_update(ctx, newname); free(newname); } diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 4910a816d3f1..7b9c64cdaef1 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -58,10 +58,12 @@ struct ifconfig_args; struct ifconfig_context { struct ifconfig_args *args; const struct afswtch *afp; - int io_s; /* fd to use for ioctl() */ - struct snl_state *io_ss; /* NETLINK_ROUTE socket */ + int io_s; /* fd to use for ioctl() */ + struct snl_state *io_ss; /* NETLINK_ROUTE socket */ + char *ifname; /* Current interface name */ + char _ifname_storage_ioctl[IFNAMSIZ]; }; -typedef const struct ifconfig_context if_ctx; +typedef struct ifconfig_context if_ctx; typedef void c_func(if_ctx *ctx, const char *cmd, int arg); typedef void c_func2(if_ctx *ctx, const char *arg1, const char *arg2); @@ -251,7 +253,6 @@ extern struct ifreq ifr; extern char name[IFNAMSIZ]; /* name of interface */ extern int allmedia; extern int newaddr; -extern int printifname; extern int exit_code; extern struct ifconfig_args global_args; extern char *f_inet, *f_inet6, *f_ether, *f_addr; diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index dfedb0b82a92..4f2af7148ece 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -5800,7 +5800,6 @@ static void wlan_create(if_ctx *ctx, struct ifreq *ifr) { static const uint8_t zerobssid[IEEE80211_ADDR_LEN]; - char orig_name[IFNAMSIZ]; if (params.icp_parent[0] == '\0') errx(1, "must specify a parent device (wlandev) when creating " @@ -5811,13 +5810,7 @@ wlan_create(if_ctx *ctx, struct ifreq *ifr) ifr->ifr_data = (caddr_t) ¶ms; ifcreate_ioctl(ctx, ifr); - /* XXX preserve original name for ifclonecreate(). */ - strlcpy(orig_name, name, sizeof(orig_name)); - strlcpy(name, ifr->ifr_name, sizeof(name)); - setdefregdomain(ctx); - - strlcpy(name, orig_name, sizeof(name)); } static void From nobody Tue Jun 13 06:27:01 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJVt3TS8z4dLVS; Tue, 13 Jun 2023 06:27:02 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJVt0NNYz3nKK; Tue, 13 Jun 2023 06:27:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637622; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/GrKQ9lHWXl6AD4Di4UXo144oUklI838kDlc2Y1cb6Y=; b=nnGffBTpeSLPlPfIB/mdbJbDqR+gDo+34Na4lb8AZi91iUSbXmy4dp31Hz+YhrAVvBsHcM g0Vb7VKBf1Pq8mbnkOMAOu9H6RMdU6Hu6oPcPXkV4IVXK6OCGl2jj9cop4qnjflsaK4h+H JvcdKSIvedIvjI3r7ystYgywHaIa1Q6Gq04V4WM13KForZ1Qg7XLnlKrzpQw8iJ2Rdz/j8 vHR0y3H8uu+uIBMlkehniJFU91HE506eRI3CEyO0Hcn0sKTU+DKP0a50ncZ814YT+XfuB5 pgThLNd6Cty2xR4YRbh0G74fHg/HX+kLNlDlqsETLiS/clqy8Mkmf2DUAideTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637622; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/GrKQ9lHWXl6AD4Di4UXo144oUklI838kDlc2Y1cb6Y=; b=ubI0UP3ETVASh/n8KN3lRW96P6Qbt5DHIIky1DyBTykT6oHaCIYiliAu477KH6twDXnky+ olFZHLoEsZVEn8I90Y65x5yf92i//nIapwkgVV6BjsdpuJ9w20/ZV/DZPr9XJpEoh0J1RN 7mCp8htjBW+S7vQRmbmI8yuLDJli+H0oeQroO4zwvizxIIe7BxIEygEk1NnYapDLeppilv iHPxrxJlFvR5oII2iy3luuRZ01HUXL+Xn3hXZrAo8z5bAHHFUoiUL5LjNLFfBBhX7pyTyp mbIxJgTYuudONIZ7mrflwrbZyXNQHfLzVKXL1pQtfwHjhIxV5B2kEivRRY/Teg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686637622; a=rsa-sha256; cv=none; b=ASoJKLsLrV9OXtp2kDpN00Nh38XayoSDejbIxgHM5zFPoElpD4JD+8d7vDQdmI0U1vLpc0 fKpc+w9HTqZuDKpDfO6YGb28Zlxo+hs5JVhh2w5z7UUPKVq/lpD51eIQYw0nRQ8ahoSIq5 wAK7iLHqezDOnDg1pcfYfJOE/WcR9BIq4ljcwE+X4ZHv4RASJ+R1OoMIgy9WK0C8kzLFCx abJ/nALY5nBiPnbriru8JoEjPpSBY4+LYiH+HF/fVQ4WOzD4cRG7MjxKRQdSSFSjpbpLMU PWOowCbOT5bclpC8AJ9M6UEOB4OsmSIq4dso0jqoFyx8NJCpWwBAG4pCswK1KA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJVs6Gxyz19kt; Tue, 13 Jun 2023 06:27:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6R1Dr031017; Tue, 13 Jun 2023 06:27:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6R1sh031016; Tue, 13 Jun 2023 06:27:01 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:27:01 GMT Message-Id: <202306130627.35D6R1sh031016@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: c6f0602f2349 - main - ifconfig: pass if_ctx instead of socket to the tunnel handlers. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c6f0602f2349d64bc7a3fdfd6a2ead388e6226d6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=c6f0602f2349d64bc7a3fdfd6a2ead388e6226d6 commit c6f0602f2349d64bc7a3fdfd6a2ead388e6226d6 Author: Alexander V. Chernikov AuthorDate: 2023-06-13 06:19:50 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:20:00 +0000 ifconfig: pass if_ctx instead of socket to the tunnel handlers. This is a pre-requisite for the global 'name' variable removal. Reviewed By: kp Differential Revision: https://reviews.freebsd.org/D40432 MFC after: 2 weeks --- sbin/ifconfig/af_inet.c | 10 +++++----- sbin/ifconfig/af_inet6.c | 10 +++++----- sbin/ifconfig/ifconfig.c | 12 ++++++------ sbin/ifconfig/ifconfig.h | 9 +++++---- sbin/ifconfig/ifconfig_netlink.c | 2 +- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c index df1d9cab959e..0538f9415272 100644 --- a/sbin/ifconfig/af_inet.c +++ b/sbin/ifconfig/af_inet.c @@ -490,7 +490,7 @@ in_postproc(if_ctx *ctx __unused, int newaddr, int ifflags) } static void -in_status_tunnel(int s) +in_status_tunnel(if_ctx *ctx) { char src[NI_MAXHOST]; char dst[NI_MAXHOST]; @@ -500,14 +500,14 @@ in_status_tunnel(int s) memset(&ifr, 0, sizeof(ifr)); strlcpy(ifr.ifr_name, name, IFNAMSIZ); - if (ioctl(s, SIOCGIFPSRCADDR, (caddr_t)&ifr) < 0) + if (ioctl_ctx(ctx, SIOCGIFPSRCADDR, (caddr_t)&ifr) < 0) return; if (sa->sa_family != AF_INET) return; if (getnameinfo(sa, sa->sa_len, src, sizeof(src), 0, 0, NI_NUMERICHOST) != 0) src[0] = '\0'; - if (ioctl(s, SIOCGIFPDSTADDR, (caddr_t)&ifr) < 0) + if (ioctl_ctx(ctx, SIOCGIFPDSTADDR, (caddr_t)&ifr) < 0) return; if (sa->sa_family != AF_INET) return; @@ -518,7 +518,7 @@ in_status_tunnel(int s) } static void -in_set_tunnel(int s, struct addrinfo *srcres, struct addrinfo *dstres) +in_set_tunnel(if_ctx *ctx, struct addrinfo *srcres, struct addrinfo *dstres) { struct in_aliasreq addreq; @@ -527,7 +527,7 @@ in_set_tunnel(int s, struct addrinfo *srcres, struct addrinfo *dstres) memcpy(&addreq.ifra_addr, srcres->ai_addr, srcres->ai_addr->sa_len); memcpy(&addreq.ifra_dstaddr, dstres->ai_addr, dstres->ai_addr->sa_len); - if (ioctl(s, SIOCSIFPHYADDR, &addreq) < 0) + if (ioctl_ctx(ctx, SIOCSIFPHYADDR, &addreq) < 0) warn("SIOCSIFPHYADDR"); } diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index f791646c5133..610fd70c04c1 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -647,7 +647,7 @@ in6_postproc(if_ctx *ctx, int newaddr __unused, } static void -in6_status_tunnel(int s) +in6_status_tunnel(if_ctx *ctx) { char src[NI_MAXHOST]; char dst[NI_MAXHOST]; @@ -657,7 +657,7 @@ in6_status_tunnel(int s) memset(&in6_ifr, 0, sizeof(in6_ifr)); strlcpy(in6_ifr.ifr_name, name, sizeof(in6_ifr.ifr_name)); - if (ioctl(s, SIOCGIFPSRCADDR_IN6, (caddr_t)&in6_ifr) < 0) + if (ioctl_ctx(ctx, SIOCGIFPSRCADDR_IN6, (caddr_t)&in6_ifr) < 0) return; if (sa->sa_family != AF_INET6) return; @@ -665,7 +665,7 @@ in6_status_tunnel(int s) NI_NUMERICHOST) != 0) src[0] = '\0'; - if (ioctl(s, SIOCGIFPDSTADDR_IN6, (caddr_t)&in6_ifr) < 0) + if (ioctl_ctx(ctx, SIOCGIFPDSTADDR_IN6, (caddr_t)&in6_ifr) < 0) return; if (sa->sa_family != AF_INET6) return; @@ -677,7 +677,7 @@ in6_status_tunnel(int s) } static void -in6_set_tunnel(int s, struct addrinfo *srcres, struct addrinfo *dstres) +in6_set_tunnel(if_ctx *ctx, struct addrinfo *srcres, struct addrinfo *dstres) { struct in6_aliasreq in6_addreq; @@ -687,7 +687,7 @@ in6_set_tunnel(int s, struct addrinfo *srcres, struct addrinfo *dstres) memcpy(&in6_addreq.ifra_dstaddr, dstres->ai_addr, dstres->ai_addr->sa_len); - if (ioctl(s, SIOCSIFPHYADDR_IN6, &in6_addreq) < 0) + if (ioctl_ctx(ctx, SIOCSIFPHYADDR_IN6, &in6_addreq) < 0) warn("SIOCSIFPHYADDR_IN6"); } diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 28677e57065c..a250062d69e1 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -967,7 +967,7 @@ af_other_status(if_ctx *ctx) } static void -af_all_tunnel_status(int s) +af_all_tunnel_status(if_ctx *ctx) { struct afswtch *afp; uint8_t afmask[howmany(AF_MAX, NBBY)]; @@ -978,7 +978,7 @@ af_all_tunnel_status(int s) continue; if (afp->af_af != AF_UNSPEC && isset(afmask, afp->af_af)) continue; - afp->af_status_tunnel(s); + afp->af_status_tunnel(ctx); setbit(afmask, afp->af_af); } } @@ -1271,7 +1271,7 @@ settunnel(if_ctx *ctx, const char *src, const char *dst) errx(1, "source and destination address families do not match"); - afp->af_settunnel(ctx->io_s, srcres, dstres); + afp->af_settunnel(ctx, srcres, dstres); freeaddrinfo(srcres); freeaddrinfo(dstres); @@ -1747,7 +1747,7 @@ status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, print_ifcap(args, s); - tunnel_status(s); + tunnel_status(ctx); for (ift = ifa; ift != NULL; ift = ift->ifa_next) { if (ift->ifa_addr == NULL) @@ -1794,9 +1794,9 @@ status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, #endif void -tunnel_status(int s) +tunnel_status(if_ctx *ctx) { - af_all_tunnel_status(s); + af_all_tunnel_status(ctx); } static void diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 7b9c64cdaef1..5e0dfcd7e8c5 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -181,6 +181,8 @@ typedef void af_other_status_f(if_ctx *ctx); typedef void af_postproc_f(if_ctx *ctx, int newaddr, int ifflags); typedef int af_exec_f(if_ctx *ctx, unsigned long action, void *data); typedef void af_copyaddr_f(if_ctx *ctx, int to, int from); +typedef void af_status_tunnel_f(if_ctx *ctx); +typedef void af_settunnel_f(if_ctx *ctx, struct addrinfo *srcres, struct addrinfo *dstres); struct afswtch { const char *af_name; /* as given on cmd line, e.g. "inet" */ @@ -214,9 +216,8 @@ struct afswtch { struct afswtch *af_next; /* XXX doesn't fit model */ - void (*af_status_tunnel)(int); - void (*af_settunnel)(int s, struct addrinfo *srcres, - struct addrinfo *dstres); + af_status_tunnel_f *af_status_tunnel; + af_settunnel_f *af_settunnel; }; void af_register(struct afswtch *); int af_exec_ioctl(if_ctx *ctx, unsigned long action, void *data); @@ -278,7 +279,7 @@ bool match_if_flags(struct ifconfig_args *args, int if_flags); int ifconfig(if_ctx *ctx, int iscreate, const struct afswtch *uafp); bool group_member(const char *ifname, const char *match, const char *nomatch); void print_ifcap(struct ifconfig_args *args, int s); -void tunnel_status(int s); +void tunnel_status(if_ctx *ctx); struct afswtch *af_getbyfamily(int af); void af_other_status(if_ctx *ctx); void print_ifstatus(int s); diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index 07e4429cfecb..bded84484a52 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -366,7 +366,7 @@ status_nl(if_ctx *ctx, struct iface *iface) /* TODO: convert to netlink */ strlcpy(ifr.ifr_name, link->ifla_ifname, sizeof(ifr.ifr_name)); print_ifcap(args, ctx->io_s); - tunnel_status(ctx->io_s); + tunnel_status(ctx); if (args->allfamilies | (args->afp != NULL && args->afp->af_af == AF_LINK)) { /* Start with link-level */ From nobody Tue Jun 13 06:27:02 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJVw1ytjz4dLlt; Tue, 13 Jun 2023 06:27:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJVv154wz3n6j; Tue, 13 Jun 2023 06:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YxuxoByprKrp4MTuvwk1HDkmQ2HCxZI0+R2PEhg5K9Q=; b=SgSPlOWz5J2wJ3skcVC4MFfguCEpXaH4KWUSYSa4udTzVMGQzjvUYI0AZQWOHhfhZsjoyL kO91hPQoU+4lQ/PC0HOc6g8W4jxLQAbZQkAiPuOkxZWADm+yU2SNBFBc3SjLl4Ot4YU+3P VnfwJmZ8gQJE09rxBO+hDSdRpQTFoAlq/nFadh9arRHKd/+8emlNue160zS7innmyNLmDS pwEI6P1u914e6pEhwZykIFq1ZLDsbHGiYm2EXqtFVCKqOzfLul4xiN2fkemkViSIixP3Mt ygva2jP/SvNmBP5C7GipucyPX0PXA8dUSZgy2SfF5k1LrlVr+oXv+vjyii3gYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YxuxoByprKrp4MTuvwk1HDkmQ2HCxZI0+R2PEhg5K9Q=; b=OPr8F+hvJia/sqAGtdUxnjLm3jFGuFNHgj/oQjmegmvswFd2A0+LyE90LF8RAeUGdEJ1rr vQGAzIUwSpthdzESbRjQ8VDvzxmgLAC9W+lZfbOuMYY4kSvtHm7613eZziD9d/Whn/it2g 9WJ2bPmv5nevXYtIXWfkNTJyqt08+2I5TubivcmvyuPQ0a+YqzmJ+7wb29481jnDyEJZ4Y Wxok9qrG7cZhVUoG7o66MBPwRVZrLNjMNwcMCbkMBTIfNOea2gdKTt/M6KuqW0J1sYNz3b i+TvLaV7vH0j9DSrCvM4Mn95eGUgykxIi7rY0K3wVsA3i4Ejajp6HDzSUd9uIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686637623; a=rsa-sha256; cv=none; b=XPu54KgXCmIMoJjP2UG7C83VzeQyVpSz46NjS9B50acyTnDBA6+oEEPQWl28qR3rZ0PpAb MMQAMf05yvXz2gAYRJj36iWBnW9bVvUq9mqIZ/CznsYEF0mUmZLgYbA9C+ci+wF5AAcLIh sqQ3XZv+lwLurXFB/S5WWs9khdNnaKJqWopkXFQgen8vFpH86qmM3n1vvMuMqG8rq0VTTS 9WteA04alVhz5H/LKjzbWE7klYAfiZRPTx7/jRWqTAr/y2WuV1L1eT1OasFqgzThVMm5Oh RIMlIcRDEeZ/PzLnwOGpKe1qu0q15AOTAygq8hyq3Sz2XIMp91JOfKA6jwtupw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJVv01n4z1BD1; Tue, 13 Jun 2023 06:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6R20J031036; Tue, 13 Jun 2023 06:27:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6R2pn031035; Tue, 13 Jun 2023 06:27:02 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:27:02 GMT Message-Id: <202306130627.35D6R2pn031035@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 85e0016a9730 - main - ifconfig: remove global 'name' variable. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 85e0016a9730b6540d729bfe41ddc33eaedfee69 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=85e0016a9730b6540d729bfe41ddc33eaedfee69 commit 85e0016a9730b6540d729bfe41ddc33eaedfee69 Author: Alexander V. Chernikov AuthorDate: 2023-06-13 06:22:29 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:22:41 +0000 ifconfig: remove global 'name' variable. Consistenly use newly-added 'ctx->ifname' as the name of the current target interface. Reviewed By: kp Differential Revision: https://reviews.freebsd.org/D40438 MFC after: 2 weeks --- sbin/ifconfig/af_inet.c | 8 +- sbin/ifconfig/af_inet6.c | 8 +- sbin/ifconfig/carp.c | 8 +- sbin/ifconfig/ifbridge.c | 100 +++--- sbin/ifconfig/ifclone.c | 4 +- sbin/ifconfig/ifconfig.c | 76 ++--- sbin/ifconfig/ifconfig.h | 9 +- sbin/ifconfig/ifconfig_netlink.c | 24 +- sbin/ifconfig/iffib.c | 8 +- sbin/ifconfig/ifgre.c | 4 +- sbin/ifconfig/ifgroup.c | 14 +- sbin/ifconfig/ifieee80211.c | 644 ++++++++++++++++++--------------------- sbin/ifconfig/ifipsec.c | 2 +- sbin/ifconfig/iflagg.c | 33 +- sbin/ifconfig/ifmac.c | 4 +- sbin/ifconfig/ifmedia.c | 32 +- sbin/ifconfig/sfp.c | 8 +- 17 files changed, 467 insertions(+), 519 deletions(-) diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c index 0538f9415272..842fdad2a20f 100644 --- a/sbin/ifconfig/af_inet.c +++ b/sbin/ifconfig/af_inet.c @@ -347,7 +347,7 @@ in_delete_first_nl(if_ctx *ctx) struct snl_state *ss = ctx->io_ss; bool found = false; - uint32_t ifindex = if_nametoindex_nl(ss, name); + uint32_t ifindex = if_nametoindex_nl(ss, ctx->ifname); if (ifindex == 0) { /* No interface with the desired name, nothing to delete */ return (EADDRNOTAVAIL); @@ -417,7 +417,7 @@ in_exec_nl(if_ctx *ctx, unsigned long action, void *data) ifahdr->ifa_family = AF_INET; ifahdr->ifa_prefixlen = pdata->addr.plen; - ifahdr->ifa_index = if_nametoindex_nl(ctx->io_ss, name); + ifahdr->ifa_index = if_nametoindex_nl(ctx->io_ss, ctx->ifname); snl_add_msg_attr_ip4(&nw, IFA_LOCAL, &pdata->addr.addr); if (action == NL_RTM_NEWADDR && pdata->dst_addr.addrset) @@ -498,7 +498,7 @@ in_status_tunnel(if_ctx *ctx) const struct sockaddr *sa = (const struct sockaddr *) &ifr.ifr_addr; memset(&ifr, 0, sizeof(ifr)); - strlcpy(ifr.ifr_name, name, IFNAMSIZ); + strlcpy(ifr.ifr_name, ctx->ifname, IFNAMSIZ); if (ioctl_ctx(ctx, SIOCGIFPSRCADDR, (caddr_t)&ifr) < 0) return; @@ -523,7 +523,7 @@ in_set_tunnel(if_ctx *ctx, struct addrinfo *srcres, struct addrinfo *dstres) struct in_aliasreq addreq; memset(&addreq, 0, sizeof(addreq)); - strlcpy(addreq.ifra_name, name, IFNAMSIZ); + strlcpy(addreq.ifra_name, ctx->ifname, IFNAMSIZ); memcpy(&addreq.ifra_addr, srcres->ai_addr, srcres->ai_addr->sa_len); memcpy(&addreq.ifra_dstaddr, dstres->ai_addr, dstres->ai_addr->sa_len); diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index 610fd70c04c1..7a771a885412 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -199,7 +199,7 @@ setip6eui64(if_ctx *ctx, const char *cmd, int dummy __unused) err(EXIT_FAILURE, "getifaddrs"); for (ifa = ifap; ifa; ifa = ifa->ifa_next) { if (ifa->ifa_addr->sa_family == AF_INET6 && - strcmp(ifa->ifa_name, name) == 0) { + strcmp(ifa->ifa_name, ctx->ifname) == 0) { sin6 = (const struct sockaddr_in6 *)satosin6(ifa->ifa_addr); if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) { lladdr = &sin6->sin6_addr; @@ -477,7 +477,7 @@ in6_exec_nl(if_ctx *ctx, unsigned long action, void *data) ifahdr->ifa_family = AF_INET6; ifahdr->ifa_prefixlen = pdata->addr.plen; - ifahdr->ifa_index = if_nametoindex_nl(ctx->io_ss, name); + ifahdr->ifa_index = if_nametoindex_nl(ctx->io_ss, ctx->ifname); snl_add_msg_attr_ip6(&nw, IFA_LOCAL, &pdata->addr.addr); if (action == NL_RTM_NEWADDR && pdata->dst_addr.set) @@ -655,7 +655,7 @@ in6_status_tunnel(if_ctx *ctx) const struct sockaddr *sa = (const struct sockaddr *) &in6_ifr.ifr_addr; memset(&in6_ifr, 0, sizeof(in6_ifr)); - strlcpy(in6_ifr.ifr_name, name, sizeof(in6_ifr.ifr_name)); + strlcpy(in6_ifr.ifr_name, ctx->ifname, sizeof(in6_ifr.ifr_name)); if (ioctl_ctx(ctx, SIOCGIFPSRCADDR_IN6, (caddr_t)&in6_ifr) < 0) return; @@ -682,7 +682,7 @@ in6_set_tunnel(if_ctx *ctx, struct addrinfo *srcres, struct addrinfo *dstres) struct in6_aliasreq in6_addreq; memset(&in6_addreq, 0, sizeof(in6_addreq)); - strlcpy(in6_addreq.ifra_name, name, sizeof(in6_addreq.ifra_name)); + strlcpy(in6_addreq.ifra_name, ctx->ifname, sizeof(in6_addreq.ifra_name)); memcpy(&in6_addreq.ifra_addr, srcres->ai_addr, srcres->ai_addr->sa_len); memcpy(&in6_addreq.ifra_dstaddr, dstres->ai_addr, dstres->ai_addr->sa_len); diff --git a/sbin/ifconfig/carp.c b/sbin/ifconfig/carp.c index 9de8177d210e..30df82481441 100644 --- a/sbin/ifconfig/carp.c +++ b/sbin/ifconfig/carp.c @@ -76,7 +76,7 @@ carp_status(if_ctx *ctx) struct ifconfig_carp carpr[CARP_MAXVHID]; char addr_buf[NI_MAXHOST]; - if (ifconfig_carp_get_info(lifh, name, carpr, CARP_MAXVHID) == -1) + if (ifconfig_carp_get_info(lifh, ctx->ifname, carpr, CARP_MAXVHID) == -1) return; for (size_t i = 0; i < carpr[0].carpr_count; i++) { @@ -114,11 +114,11 @@ setcarp_vhid(if_ctx *ctx, const char *val, int dummy __unused) } static void -setcarp_callback(if_ctx *ctx __unused, void *arg __unused) +setcarp_callback(if_ctx *ctx, void *arg __unused) { struct ifconfig_carp carpr = { }; - if (ifconfig_carp_get_vhid(lifh, name, &carpr, carpr_vhid) == -1) { + if (ifconfig_carp_get_vhid(lifh, ctx->ifname, &carpr, carpr_vhid) == -1) { if (ifconfig_err_errno(lifh) != ENOENT) return; } @@ -139,7 +139,7 @@ setcarp_callback(if_ctx *ctx __unused, void *arg __unused) memcpy(&carpr.carpr_addr6, &carp_addr6, sizeof(carp_addr6)); - if (ifconfig_carp_set_info(lifh, name, &carpr)) + if (ifconfig_carp_set_info(lifh, ctx->ifname, &carpr)) err(1, "SIOCSVH"); } diff --git a/sbin/ifconfig/ifbridge.c b/sbin/ifconfig/ifbridge.c index c8e7111e6722..3a97a5af3931 100644 --- a/sbin/ifconfig/ifbridge.c +++ b/sbin/ifconfig/ifbridge.c @@ -85,28 +85,26 @@ get_val(const char *cp, u_long *valp) } static int -do_cmd(int sock, u_long op, void *arg, size_t argsize, int set) +do_cmd(if_ctx *ctx, u_long op, void *arg, size_t argsize, int set) { - struct ifdrv ifd; + struct ifdrv ifd = {}; - memset(&ifd, 0, sizeof(ifd)); - - strlcpy(ifd.ifd_name, name, sizeof(ifd.ifd_name)); + strlcpy(ifd.ifd_name, ctx->ifname, sizeof(ifd.ifd_name)); ifd.ifd_cmd = op; ifd.ifd_len = argsize; ifd.ifd_data = arg; - return (ioctl(sock, set ? SIOCSDRVSPEC : SIOCGDRVSPEC, &ifd)); + return (ioctl_ctx(ctx, set ? SIOCSDRVSPEC : SIOCGDRVSPEC, &ifd)); } static void -do_bridgeflag(int sock, const char *ifs, int flag, int set) +do_bridgeflag(if_ctx *ctx, const char *ifs, int flag, int set) { struct ifbreq req; strlcpy(req.ifbr_ifsname, ifs, sizeof(req.ifbr_ifsname)); - if (do_cmd(sock, BRDGGIFFLGS, &req, sizeof(req), 0) < 0) + if (do_cmd(ctx, BRDGGIFFLGS, &req, sizeof(req), 0) < 0) err(1, "unable to get bridge flags"); if (set) @@ -114,12 +112,12 @@ do_bridgeflag(int sock, const char *ifs, int flag, int set) else req.ifbr_ifsflags &= ~flag; - if (do_cmd(sock, BRDGSIFFLGS, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGSIFFLGS, &req, sizeof(req), 1) < 0) err(1, "unable to set bridge flags"); } static void -bridge_addresses(int s, const char *prefix) +bridge_addresses(if_ctx *ctx, const char *prefix) { struct ifbaconf ifbac; struct ifbareq *ifba; @@ -133,7 +131,7 @@ bridge_addresses(int s, const char *prefix) err(1, "unable to allocate address buffer"); ifbac.ifbac_len = len; ifbac.ifbac_buf = inbuf = ninbuf; - if (do_cmd(s, BRDGRTS, &ifbac, sizeof(ifbac), 0) < 0) + if (do_cmd(ctx, BRDGRTS, &ifbac, sizeof(ifbac), 0) < 0) err(1, "unable to get address cache"); if ((ifbac.ifbac_len + sizeof(*ifba)) < len) break; @@ -154,7 +152,7 @@ bridge_addresses(int s, const char *prefix) } static void -bridge_status(if_ctx *ctx __unused) +bridge_status(if_ctx *ctx) { struct ifconfig_bridge_status *bridge; struct ifbropreq *params; @@ -162,7 +160,7 @@ bridge_status(if_ctx *ctx __unused) uint8_t lladdr[ETHER_ADDR_LEN]; uint16_t bprio; - if (ifconfig_bridge_get_bridge_status(lifh, name, &bridge) == -1) + if (ifconfig_bridge_get_bridge_status(lifh, ctx->ifname, &bridge) == -1) return; params = bridge->params; @@ -231,7 +229,7 @@ setbridge_add(if_ctx *ctx, const char *val, int dummy __unused) memset(&req, 0, sizeof(req)); strlcpy(req.ifbr_ifsname, val, sizeof(req.ifbr_ifsname)); - if (do_cmd(ctx->io_s, BRDGADD, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGADD, &req, sizeof(req), 1) < 0) err(1, "BRDGADD %s", val); } @@ -242,7 +240,7 @@ setbridge_delete(if_ctx *ctx, const char *val, int dummy __unused) memset(&req, 0, sizeof(req)); strlcpy(req.ifbr_ifsname, val, sizeof(req.ifbr_ifsname)); - if (do_cmd(ctx->io_s, BRDGDEL, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGDEL, &req, sizeof(req), 1) < 0) err(1, "BRDGDEL %s", val); } @@ -250,42 +248,42 @@ static void setbridge_discover(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_DISCOVER, 1); + do_bridgeflag(ctx, val, IFBIF_DISCOVER, 1); } static void unsetbridge_discover(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_DISCOVER, 0); + do_bridgeflag(ctx, val, IFBIF_DISCOVER, 0); } static void setbridge_learn(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_LEARNING, 1); + do_bridgeflag(ctx, val, IFBIF_LEARNING, 1); } static void unsetbridge_learn(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_LEARNING, 0); + do_bridgeflag(ctx, val, IFBIF_LEARNING, 0); } static void setbridge_sticky(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_STICKY, 1); + do_bridgeflag(ctx, val, IFBIF_STICKY, 1); } static void unsetbridge_sticky(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_STICKY, 0); + do_bridgeflag(ctx, val, IFBIF_STICKY, 0); } static void @@ -295,7 +293,7 @@ setbridge_span(if_ctx *ctx, const char *val, int dummy __unused) memset(&req, 0, sizeof(req)); strlcpy(req.ifbr_ifsname, val, sizeof(req.ifbr_ifsname)); - if (do_cmd(ctx->io_s, BRDGADDS, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGADDS, &req, sizeof(req), 1) < 0) err(1, "BRDGADDS %s", val); } @@ -306,7 +304,7 @@ unsetbridge_span(if_ctx *ctx, const char *val, int dummy __unused) memset(&req, 0, sizeof(req)); strlcpy(req.ifbr_ifsname, val, sizeof(req.ifbr_ifsname)); - if (do_cmd(ctx->io_s, BRDGDELS, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGDELS, &req, sizeof(req), 1) < 0) err(1, "BRDGDELS %s", val); } @@ -314,62 +312,62 @@ static void setbridge_stp(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_STP, 1); + do_bridgeflag(ctx, val, IFBIF_STP, 1); } static void unsetbridge_stp(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_STP, 0); + do_bridgeflag(ctx, val, IFBIF_STP, 0); } static void setbridge_edge(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_EDGE, 1); + do_bridgeflag(ctx, val, IFBIF_BSTP_EDGE, 1); } static void unsetbridge_edge(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_EDGE, 0); + do_bridgeflag(ctx, val, IFBIF_BSTP_EDGE, 0); } static void setbridge_autoedge(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_AUTOEDGE, 1); + do_bridgeflag(ctx, val, IFBIF_BSTP_AUTOEDGE, 1); } static void unsetbridge_autoedge(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_AUTOEDGE, 0); + do_bridgeflag(ctx, val, IFBIF_BSTP_AUTOEDGE, 0); } static void setbridge_ptp(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_PTP, 1); + do_bridgeflag(ctx, val, IFBIF_BSTP_PTP, 1); } static void unsetbridge_ptp(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_PTP, 0); + do_bridgeflag(ctx, val, IFBIF_BSTP_PTP, 0); } static void setbridge_autoptp(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_AUTOPTP, 1); + do_bridgeflag(ctx, val, IFBIF_BSTP_AUTOPTP, 1); } static void unsetbridge_autoptp(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_BSTP_AUTOPTP, 0); + do_bridgeflag(ctx, val, IFBIF_BSTP_AUTOPTP, 0); } static void @@ -379,7 +377,7 @@ setbridge_flush(if_ctx *ctx, const char *val __unused, int dummy __unused) memset(&req, 0, sizeof(req)); req.ifbr_ifsflags = IFBF_FLUSHDYN; - if (do_cmd(ctx->io_s, BRDGFLUSH, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGFLUSH, &req, sizeof(req), 1) < 0) err(1, "BRDGFLUSH"); } @@ -390,7 +388,7 @@ setbridge_flushall(if_ctx *ctx, const char *val __unused, int dummy __unused) memset(&req, 0, sizeof(req)); req.ifbr_ifsflags = IFBF_FLUSHALL; - if (do_cmd(ctx->io_s, BRDGFLUSH, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGFLUSH, &req, sizeof(req), 1) < 0) err(1, "BRDGFLUSH"); } @@ -411,7 +409,7 @@ setbridge_static(if_ctx *ctx, const char *val, const char *mac) req.ifba_flags = IFBAF_STATIC; req.ifba_vlan = 1; /* XXX allow user to specify */ - if (do_cmd(ctx->io_s, BRDGSADDR, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGSADDR, &req, sizeof(req), 1) < 0) err(1, "BRDGSADDR %s", val); } @@ -429,7 +427,7 @@ setbridge_deladdr(if_ctx *ctx, const char *val, int dummy __unused) memcpy(req.ifba_dst, ea->octet, sizeof(req.ifba_dst)); - if (do_cmd(ctx->io_s, BRDGDADDR, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGDADDR, &req, sizeof(req), 1) < 0) err(1, "BRDGDADDR %s", val); } @@ -437,7 +435,7 @@ static void setbridge_addr(if_ctx *ctx, const char *val __unused, int dummy __unused) { - bridge_addresses(ctx->io_s, ""); + bridge_addresses(ctx, ""); } static void @@ -451,7 +449,7 @@ setbridge_maxaddr(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_csize = val & 0xffffffff; - if (do_cmd(ctx->io_s, BRDGSCACHE, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSCACHE, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSCACHE %s", arg); } @@ -466,7 +464,7 @@ setbridge_hellotime(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_hellotime = val & 0xff; - if (do_cmd(ctx->io_s, BRDGSHT, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSHT, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSHT %s", arg); } @@ -481,7 +479,7 @@ setbridge_fwddelay(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_fwddelay = val & 0xff; - if (do_cmd(ctx->io_s, BRDGSFD, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSFD, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSFD %s", arg); } @@ -496,7 +494,7 @@ setbridge_maxage(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_maxage = val & 0xff; - if (do_cmd(ctx->io_s, BRDGSMA, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSMA, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSMA %s", arg); } @@ -511,7 +509,7 @@ setbridge_priority(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_prio = val & 0xffff; - if (do_cmd(ctx->io_s, BRDGSPRI, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSPRI, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSPRI %s", arg); } @@ -528,7 +526,7 @@ setbridge_protocol(if_ctx *ctx, const char *arg, int dummy __unused) errx(1, "unknown stp protocol"); } - if (do_cmd(ctx->io_s, BRDGSPROTO, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSPROTO, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSPROTO %s", arg); } @@ -543,7 +541,7 @@ setbridge_holdcount(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_txhc = val & 0xff; - if (do_cmd(ctx->io_s, BRDGSTXHC, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSTXHC, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSTXHC %s", arg); } @@ -561,7 +559,7 @@ setbridge_ifpriority(if_ctx *ctx, const char *ifn, const char *pri) strlcpy(req.ifbr_ifsname, ifn, sizeof(req.ifbr_ifsname)); req.ifbr_priority = val & 0xff; - if (do_cmd(ctx->io_s, BRDGSIFPRIO, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGSIFPRIO, &req, sizeof(req), 1) < 0) err(1, "BRDGSIFPRIO %s", pri); } @@ -579,7 +577,7 @@ setbridge_ifpathcost(if_ctx *ctx, const char *ifn, const char *cost) strlcpy(req.ifbr_ifsname, ifn, sizeof(req.ifbr_ifsname)); req.ifbr_path_cost = val; - if (do_cmd(ctx->io_s, BRDGSIFCOST, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGSIFCOST, &req, sizeof(req), 1) < 0) err(1, "BRDGSIFCOST %s", cost); } @@ -597,7 +595,7 @@ setbridge_ifmaxaddr(if_ctx *ctx, const char *ifn, const char *arg) strlcpy(req.ifbr_ifsname, ifn, sizeof(req.ifbr_ifsname)); req.ifbr_addrmax = val & 0xffffffff; - if (do_cmd(ctx->io_s, BRDGSIFAMAX, &req, sizeof(req), 1) < 0) + if (do_cmd(ctx, BRDGSIFAMAX, &req, sizeof(req), 1) < 0) err(1, "BRDGSIFAMAX %s", arg); } @@ -612,7 +610,7 @@ setbridge_timeout(if_ctx *ctx, const char *arg, int dummy __unused) param.ifbrp_ctime = val & 0xffffffff; - if (do_cmd(ctx->io_s, BRDGSTO, ¶m, sizeof(param), 1) < 0) + if (do_cmd(ctx, BRDGSTO, ¶m, sizeof(param), 1) < 0) err(1, "BRDGSTO %s", arg); } @@ -620,14 +618,14 @@ static void setbridge_private(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_PRIVATE, 1); + do_bridgeflag(ctx, val, IFBIF_PRIVATE, 1); } static void unsetbridge_private(if_ctx *ctx, const char *val, int dummy __unused) { - do_bridgeflag(ctx->io_s, val, IFBIF_PRIVATE, 0); + do_bridgeflag(ctx, val, IFBIF_PRIVATE, 0); } static struct cmd bridge_cmds[] = { diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c index f09b91b4181b..ecd8bbc2e556 100644 --- a/sbin/ifconfig/ifclone.c +++ b/sbin/ifconfig/ifclone.c @@ -123,7 +123,7 @@ ifclonecreate(if_ctx *ctx, void *arg __unused) struct ifreq ifr = {}; struct clone_defcb *dcp; - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); /* Try to find a default callback by filter */ SLIST_FOREACH(dcp, &clone_defcbh, next) { @@ -159,7 +159,7 @@ clone_create(if_ctx *ctx, const char *cmd __unused, int d __unused) static void clone_destroy(if_ctx *ctx, const char *cmd __unused, int d __unused) { - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); if (ioctl(ctx->io_s, SIOCIFDESTROY, &ifr) < 0) err(1, "SIOCIFDESTROY"); } diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index a250062d69e1..0ccca3666bed 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -92,7 +92,7 @@ ifconfig_handle_t *lifh; */ struct ifreq ifr; -char name[IFNAMSIZ]; +//char name[IFNAMSIZ]; #ifdef WITHOUT_NETLINK static char *descr = NULL; static size_t descrlen = 64; @@ -576,15 +576,16 @@ static int ifconfig_wrapper(struct ifconfig_args *args, int iscreate, const struct afswtch *uafp) { -#ifdef WITHOUT_NETLINK struct ifconfig_context ctx = { .args = args, .io_s = -1, + .ifname = args->ifname, }; +#ifdef WITHOUT_NETLINK return (ifconfig(&ctx, iscreate, uafp)); #else - return (ifconfig_wrapper_nl(args, iscreate, uafp)); + return (ifconfig_wrapper_nl(&ctx, iscreate, uafp)); #endif } @@ -600,11 +601,16 @@ isargcreate(const char *arg) return (false); } +static bool +isnametoolong(const char *ifname) +{ + return (strlen(ifname) >= IFNAMSIZ); +} + int main(int ac, char *av[]) { char *envformat; - size_t iflen; int flags; #ifdef JAIL int jid; @@ -654,8 +660,7 @@ main(int ac, char *av[]) * to find the interface. */ if (isargcreate(arg)) { - iflen = strlcpy(name, args->ifname, sizeof(name)); - if (iflen >= sizeof(name)) + if (isnametoolong(args->ifname)) errx(1, "%s: cloning name too long", args->ifname); ifconfig_wrapper(args, 1, NULL); @@ -668,8 +673,7 @@ main(int ac, char *av[]) * to find the interface as it lives in another vnet. */ if (arg != NULL && (strcmp(arg, "-vnet") == 0)) { - iflen = strlcpy(name, args->ifname, sizeof(name)); - if (iflen >= sizeof(name)) + if (isnametoolong(args->ifname)) errx(1, "%s: interface name too long", args->ifname); ifconfig_wrapper(args, 0, NULL); @@ -704,11 +708,10 @@ main(int ac, char *av[]) * system address list */ if ((args->argc > 0) && (args->ifname != NULL)) { - iflen = strlcpy(name, args->ifname, sizeof(name)); - if (iflen >= sizeof(name)) { + if (isnametoolong(args->ifname)) warnx("%s: interface name too long, skipping", args->ifname); - } else { - flags = getifflags(name, -1, false); + else { + flags = getifflags(args->ifname, -1, false); if (!(((flags & IFF_CANTCONFIG) != 0) || (args->downonly && (flags & IFF_UP) != 0) || (args->uponly && (flags & IFF_UP) == 0))) @@ -776,7 +779,6 @@ list_interfaces_ioctl(struct ifconfig_args *args) struct ifa_order_elt *cur, *tmp; char *namecp = NULL; int ifindex; - size_t iflen; if (getifaddrs(&ifap) != 0) err(EXIT_FAILURE, "getifaddrs"); @@ -810,8 +812,7 @@ list_interfaces_ioctl(struct ifconfig_args *args) sdl = NULL; if (cp != NULL && strcmp(cp, ifa->ifa_name) == 0 && !args->namesonly) continue; - iflen = strlcpy(name, ifa->ifa_name, sizeof(name)); - if (iflen >= sizeof(name)) { + if (isnametoolong(ifa->ifa_name)) { warnx("%s: interface name too long, skipping", ifa->ifa_name); continue; @@ -834,7 +835,7 @@ list_interfaces_ioctl(struct ifconfig_args *args) ifindex++; if (ifindex > 1) printf(" "); - fputs(name, stdout); + fputs(cp, stdout); continue; } ifindex++; @@ -1044,7 +1045,7 @@ af_exec_ioctl(if_ctx *ctx, unsigned long action, void *data) { struct ifreq *req = (struct ifreq *)data; - strlcpy(req->ifr_name, name, sizeof(req->ifr_name)); + strlcpy(req->ifr_name, ctx->ifname, sizeof(req->ifr_name)); if (ioctl_ctx(ctx, action, req) == 0) return (0); return (errno); @@ -1057,7 +1058,7 @@ delifaddr(if_ctx *ctx, const struct afswtch *afp) if (afp->af_exec == NULL) { warnx("interface %s cannot change %s addresses!", - name, afp->af_name); + ctx->ifname, afp->af_name); clearaddr = 0; return; } @@ -1076,7 +1077,7 @@ addifaddr(if_ctx *ctx, const struct afswtch *afp) { if (afp->af_exec == NULL) { warnx("interface %s cannot change %s addresses!", - name, afp->af_name); + ctx->ifname, afp->af_name); newaddr = 0; return; } @@ -1100,10 +1101,11 @@ ifconfig(if_ctx *orig_ctx, int iscreate, const struct afswtch *uafp) struct ifconfig_context _ctx = { .args = orig_ctx->args, .io_ss = orig_ctx->io_ss, + .ifname = orig_ctx->ifname, }; struct ifconfig_context *ctx = &_ctx; - strlcpy(ifr.ifr_name, name, sizeof ifr.ifr_name); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof ifr.ifr_name); afp = NULL; if (uafp != NULL) afp = uafp; @@ -1209,7 +1211,7 @@ top: * Do any post argument processing required by the address family. */ if (afp->af_postproc != NULL) - afp->af_postproc(ctx, newaddr, getifflags(name, s, true)); + afp->af_postproc(ctx, newaddr, getifflags(ctx->ifname, s, true)); /* * Do deferred callbacks registered while processing * command-line arguments. @@ -1394,14 +1396,14 @@ setifflags(if_ctx *ctx, const char *vname, int value) struct ifreq my_ifr; int flags; - flags = getifflags(name, ctx->io_s, false); + flags = getifflags(ctx->ifname, ctx->io_s, false); if (value < 0) { value = -value; flags &= ~value; } else flags |= value; memset(&my_ifr, 0, sizeof(my_ifr)); - (void) strlcpy(my_ifr.ifr_name, name, sizeof(my_ifr.ifr_name)); + strlcpy(my_ifr.ifr_name, ctx->ifname, sizeof(my_ifr.ifr_name)); my_ifr.ifr_flags = flags & 0xffff; my_ifr.ifr_flagshigh = flags >> 16; if (ioctl(ctx->io_s, SIOCSIFFLAGS, (caddr_t)&my_ifr) < 0) @@ -1482,7 +1484,7 @@ setifcapnv(if_ctx *ctx, const char *vname, const char *arg) static void setifmetric(if_ctx *ctx, const char *val, int dummy __unused) { - strlcpy(ifr.ifr_name, name, sizeof (ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); ifr.ifr_metric = atoi(val); if (ioctl(ctx->io_s, SIOCSIFMETRIC, (caddr_t)&ifr) < 0) err(1, "ioctl SIOCSIFMETRIC (set metric)"); @@ -1491,7 +1493,7 @@ setifmetric(if_ctx *ctx, const char *val, int dummy __unused) static void setifmtu(if_ctx *ctx, const char *val, int dummy __unused) { - strlcpy(ifr.ifr_name, name, sizeof (ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); ifr.ifr_mtu = atoi(val); if (ioctl(ctx->io_s, SIOCSIFMTU, (caddr_t)&ifr) < 0) err(1, "ioctl SIOCSIFMTU (set mtu)"); @@ -1527,7 +1529,7 @@ setifname(if_ctx *ctx, const char *val, int dummy __unused) { char *newname; - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); newname = strdup(val); if (newname == NULL) @@ -1546,7 +1548,7 @@ setifdescr(if_ctx *ctx, const char *val, int dummy __unused) { char *newdescr; - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); ifr.ifr_buffer.length = strlen(val) + 1; if (ifr.ifr_buffer.length == 1) { @@ -1663,12 +1665,12 @@ print_ifcap(struct ifconfig_args *args, int s) } void -print_ifstatus(int s) +print_ifstatus(if_ctx *ctx) { struct ifstat ifs; - strlcpy(ifs.ifs_name, name, sizeof ifs.ifs_name); - if (ioctl(s, SIOCGIFSTATUS, &ifs) == 0) + strlcpy(ifs.ifs_name, ctx->ifname, sizeof ifs.ifs_name); + if (ioctl_ctx(ctx, SIOCGIFSTATUS, &ifs) == 0) printf("%s", ifs.ascii); } @@ -1722,22 +1724,26 @@ status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, struct ifaddrs *ift; int s; bool allfamilies = args->afp == NULL; + char *ifname = ifa->ifa_name; if (args->afp == NULL) ifr.ifr_addr.sa_family = AF_LOCAL; else ifr.ifr_addr.sa_family = args->afp->af_af == AF_LINK ? AF_LOCAL : args->afp->af_af; - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0); if (s < 0) err(1, "socket(family %u,SOCK_DGRAM)", ifr.ifr_addr.sa_family); - struct ifconfig_context _ctx = { .io_s = s }, *ctx; - ctx = &_ctx; + struct ifconfig_context _ctx = { + .io_s = s, + .ifname = ifname, + }; + struct ifconfig_context *ctx = &_ctx; - printf("%s: ", name); + printf("%s: ", ifname); printb("flags", ifa->ifa_flags, IFFBITS); print_metric(s); print_mtu(s); @@ -1784,7 +1790,7 @@ status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, else if (args->afp->af_other_status != NULL) args->afp->af_other_status(ctx); - print_ifstatus(s); + print_ifstatus(ctx); if (args->verbose > 0) sfp_status(ctx); diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 5e0dfcd7e8c5..45d05d1bf077 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -60,7 +60,7 @@ struct ifconfig_context { const struct afswtch *afp; int io_s; /* fd to use for ioctl() */ struct snl_state *io_ss; /* NETLINK_ROUTE socket */ - char *ifname; /* Current interface name */ + const char *ifname; /* Current interface name */ char _ifname_storage_ioctl[IFNAMSIZ]; }; typedef struct ifconfig_context if_ctx; @@ -251,7 +251,6 @@ void opt_register(struct option *); extern ifconfig_handle_t *lifh; extern struct ifreq ifr; -extern char name[IFNAMSIZ]; /* name of interface */ extern int allmedia; extern int newaddr; extern int exit_code; @@ -282,12 +281,12 @@ void print_ifcap(struct ifconfig_args *args, int s); void tunnel_status(if_ctx *ctx); struct afswtch *af_getbyfamily(int af); void af_other_status(if_ctx *ctx); -void print_ifstatus(int s); +void print_ifstatus(if_ctx *ctx); void print_metric(int s); /* Netlink-related functions */ void list_interfaces_nl(struct ifconfig_args *args); -int ifconfig_wrapper_nl(struct ifconfig_args *args, int iscreate, +int ifconfig_wrapper_nl(if_ctx *ctx, int iscreate, const struct afswtch *uafp); uint32_t if_nametoindex_nl(struct snl_state *ss, const char *ifname); @@ -295,7 +294,7 @@ uint32_t if_nametoindex_nl(struct snl_state *ss, const char *ifname); * XXX expose this so modules that need to know of any pending * operations on ifmedia can avoid cmd line ordering confusion. */ -struct ifmediareq *ifmedia_getstate(void); +struct ifmediareq *ifmedia_getstate(if_ctx *ctx); void print_vhid(const struct ifaddrs *, const char *); diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index bded84484a52..1635a4cb80c7 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -123,19 +123,15 @@ nl_init_socket(struct snl_state *ss) } int -ifconfig_wrapper_nl(struct ifconfig_args *args, int iscreate, +ifconfig_wrapper_nl(if_ctx *ctx, int iscreate, const struct afswtch *uafp) { struct snl_state ss = {}; - struct ifconfig_context ctx = { - .args = args, - .io_s = -1, - .io_ss = &ss, - }; nl_init_socket(&ss); + ctx->io_ss = &ss; - int error = ifconfig(&ctx, iscreate, uafp); + int error = ifconfig(ctx, iscreate, uafp); snl_free(&ss); @@ -396,7 +392,7 @@ status_nl(if_ctx *ctx, struct iface *iface) else if (args->afp->af_other_status != NULL) args->afp->af_other_status(ctx); - print_ifstatus(ctx->io_s); + print_ifstatus(ctx); if (args->verbose > 0) sfp_status(ctx); } @@ -411,16 +407,6 @@ get_local_socket(void) return (s); } -static void -set_global_ifname(if_link_t *link) -{ - size_t iflen = strlcpy(name, link->ifla_ifname, sizeof(name)); - - if (iflen >= sizeof(name)) - errx(1, "%s: cloning name too long", link->ifla_ifname); - strlcpy(ifr.ifr_name, link->ifla_ifname, sizeof(ifr.ifr_name)); -} - void list_interfaces_nl(struct ifconfig_args *args) { @@ -452,7 +438,7 @@ list_interfaces_nl(struct ifconfig_args *args) if (!match_iface(args, iface)) continue; - set_global_ifname(&iface->link); + ctx->ifname = iface->link.ifla_ifname; if (args->namesonly) { if (num++ != 0) diff --git a/sbin/ifconfig/iffib.c b/sbin/ifconfig/iffib.c index 4ebc8341338f..684c57c88f64 100644 --- a/sbin/ifconfig/iffib.c +++ b/sbin/ifconfig/iffib.c @@ -51,13 +51,13 @@ fib_status(if_ctx *ctx) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); if (ioctl_ctx(ctx, SIOCGIFFIB, (caddr_t)&ifr) == 0 && ifr.ifr_fib != RT_DEFAULT_FIB) printf("\tfib: %u\n", ifr.ifr_fib); memset(&ifr, 0, sizeof(ifr)); - strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); if (ioctl_ctx(ctx, SIOCGTUNFIB, (caddr_t)&ifr) == 0 && ifr.ifr_fib != RT_DEFAULT_FIB) printf("\ttunnelfib: %u\n", ifr.ifr_fib); @@ -75,7 +75,7 @@ setiffib(if_ctx *ctx, const char *val, int dummy __unused) return; } - strlcpy(ifr.ifr_name, name, sizeof (ifr.ifr_name)); + strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); ifr.ifr_fib = fib; if (ioctl(ctx->io_s, SIOCSIFFIB, (caddr_t)&ifr) < 0) warn("ioctl (SIOCSIFFIB)"); @@ -93,7 +93,7 @@ settunfib(if_ctx *ctx, const char *val, int dummy __unused) return; } - strlcpy(ifr.ifr_name, name, sizeof (ifr.ifr_name)); *** 2597 LINES SKIPPED *** From nobody Tue Jun 13 06:27:04 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJVw5D68z4dLrQ; Tue, 13 Jun 2023 06:27:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJVw1rTZz3nKX; Tue, 13 Jun 2023 06:27:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1o/q8Th4zE3huD1/K+ucNcwO4PvwKchtpZWmGEuIxRc=; b=edbybaN6gt3GpKit9EzRj4y+1Dq5u7XvMhvwj+fxLA/s+2I05kriAFae24keBueoMVuMOs WWMeva954OM4/s4IyanRHHToHSBj4qBAqnY1+io6ymlxbTpWyaktpcXVk1tffQ8guaR2ok 8RiNxxRnIME50HYROM2kx6YFfILjDvca6lYI/KqtyZ4jaRIcGhjxiu1nghJOr1G/K0snG6 RwlT0MUxirpnTXpw40l0YR4CEH8EKiQoKUMpnhlCAgvJbKoBxMTRH23R8l8JJc3dyffRO4 jPIw47q42DoEDdM32SiJLsCCM92ACqvb/G5Hocs24N5cYu6fBkXOgERdANHDwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686637624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1o/q8Th4zE3huD1/K+ucNcwO4PvwKchtpZWmGEuIxRc=; b=OnHpN/AkafMfm8kYswDrpPytY2EK5+Do5puvNtBqpY3S0wx9/TXyQ7txxw0in6LnpfZF62 W2IYINP5hP4ZL30WssgUSeX93DTTBB9BX+x4asvn0h2B5PG3JquZ9JksVt4pU6G4CwfZ98 wTXZXt4JkRWhbnTYRBJL0AfXcMKGP1bs/S/4Vpdj8a5DtZoDwMvhJSOFXL3TUyap2LRATZ n7LmSXKrD2R54e/7xJX3u5yl6HcY5Un1+iQhxpg5eFOlUJKegNbnAomVZeMayeYl5GiJCA LfNoIuBsPBivY4iOJC5HHo3DDMeYhBC63wqEaDpfvZh8fk85UD0e8NlxnnjIwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686637624; a=rsa-sha256; cv=none; b=Wcw6RwxxFRJiS1/IWTVGEM5Y7sy+TBvEoBYkqfkqkX/6Y5U6JytjTP3phY8abBrI2wizlu yFL3NCaN64JdMzsaCohLnyACQ+4fy/Vdb0eUOPFKDUKtxt7qbjfi4Y/zT8tDFikoVBSbg0 bgv0F9DjiDoWjlIUsX50Wu+ifzedBaJrM0Xt1h0AElWDiFEAkZs50eKUKguC+NZdnBR2Sq OZrgOq5NWMNjccNf0TgE5oc40D3wDzEZDeJYBCfmg/BikflSTRX2K+B4vatR8ofG35G/wo 1RMe/2bf//XLVj/tVuRtKlZSPrwoqi0LDg4DgPfioJZ1tP+6w7WspoKzkgjLDg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJVw0yVyz1BJX; Tue, 13 Jun 2023 06:27:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6R4RK031055; Tue, 13 Jun 2023 06:27:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6R4bY031054; Tue, 13 Jun 2023 06:27:04 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:27:04 GMT Message-Id: <202306130627.35D6R4bY031054@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: ea73ff9752f7 - main - ifconfig: remove global_args variable. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ea73ff9752f77b3ed0d20f3d958fda8b51b0cf23 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=ea73ff9752f77b3ed0d20f3d958fda8b51b0cf23 commit ea73ff9752f77b3ed0d20f3d958fda8b51b0cf23 Author: Alexander V. Chernikov AuthorDate: 2023-06-13 06:25:10 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:25:16 +0000 ifconfig: remove global_args variable. This variable was temporarily introduced in the beginning of the code cleanup. Use on-stack instance in main() instead. Reviewed By: kp Differential Revision: https://reviews.freebsd.org/D40439 MFC after: 2 weeks --- sbin/ifconfig/ifconfig.c | 5 ++--- sbin/ifconfig/ifconfig.h | 1 - sbin/ifconfig/ifmedia.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 0ccca3666bed..7b01b2d547ba 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -103,8 +103,6 @@ static int doalias; static int clearaddr; int newaddr = 1; -struct ifconfig_args global_args; - int exit_code = 0; static char ifname_to_print[IFNAMSIZ]; /* Helper for printifnamemaybe() */ @@ -615,7 +613,8 @@ main(int ac, char *av[]) #ifdef JAIL int jid; #endif - struct ifconfig_args *args = &global_args; + struct ifconfig_args _args = {}; + struct ifconfig_args *args = &_args; f_inet = f_inet6 = f_ether = f_addr = NULL; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 45d05d1bf077..187743a315c5 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -254,7 +254,6 @@ extern struct ifreq ifr; extern int allmedia; extern int newaddr; extern int exit_code; -extern struct ifconfig_args global_args; extern char *f_inet, *f_inet6, *f_ether, *f_addr; void setifcap(if_ctx *ctx, const char *, int value); diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c index b3331b97e358..122756207d1b 100644 --- a/sbin/ifconfig/ifmedia.c +++ b/sbin/ifconfig/ifmedia.c @@ -144,7 +144,7 @@ media_status(if_ctx *ctx) putchar('\n'); } - if (global_args.supmedia) { + if (ctx->args->supmedia) { printf("\tsupported media:\n"); for (int i = 0; i < ifmr->ifm_count; ++i) { printf("\t\t"); From nobody Tue Jun 13 06:40:47 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgJpm09Hbz4cQdg; Tue, 13 Jun 2023 06:40:48 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgJpl5Kp2z3s0l; Tue, 13 Jun 2023 06:40:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686638447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NWtP6PIybs57DFL6vISsjBxZmjc9InxFr9pQjdRIFfA=; b=RATda4wgT0oMStcjWcKtBNs9oWBj7s3woKSFExlkIDvxriNyrnudfLA01AGShHNe0fG/NI M7nU2WZeqr5gNk1BTKEVT8+tW29TKGNYYTE7V4bsZx9x2bzfpKtPvPtopwNdIKtG3DJRgV mkUcHMRMhzUrVHFEubE49q0XFtq4FTK9c5fcr2ueI9J15lAI7QiC3aHqJZDhz5Exe7Lo1S bu7nkaU3XtidArCcmBoIB8RWvQ96c1rwrKpodB4fDmFtiEbQHdgIgWA3goSuSndsfMq9Qh 5q2dsuX1V0/8hNLnQOri3ZflTUf5/bqK1PiUf9qhAR9r3rn7eirH8wG1eHNbKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686638447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NWtP6PIybs57DFL6vISsjBxZmjc9InxFr9pQjdRIFfA=; b=IRjIhhryFLmv6Naz9l/7CcO0uW4FlkpStTgSIMfTdFh6h8UqZNRlBV7npWqo+XL+n1ateC ES2NmAyeZjBcgIyEh7LcLmnYEvAViVIIyoEefAjsY9uEhRua7svUX+hdjjYMmqcPIU2VhI eJx98dJ59Sf8Kl4KKyYEWRlUQeDA+BNagTyVoDDVu5HjK2f8Envfuwhp18QsDDOZxcNisY PI6QSqm2RGLfJaOjeg1gy0fzC7iKKjfRnI8pXZJGLxqd26lrQSYdBVsh05h85D6RnExCK8 ba/paNkLe2VCY/ecX15N4nH0N9BARJIoNzTemIGgolRxq6CvoijWYxtZYj42EQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686638447; a=rsa-sha256; cv=none; b=C+oCk25NOa8K9nttTX4IszcPKD9pNigrnD0HyN3OimCNmP251c3khjOstPKeLZ4JkJb1DU 0wh/dsuv1qGpelVqr1vg4l9ly6AKpU/kqj0P0aweb9mt6jArL+ysSuWp1w9xd8QcBkjEBQ NmKla7T1jTVTp2D06NmUUWE2x1YI76qgm2m041XaHwORzhHe5zCvp4JPiVQDzcSnb4Ppa+ yjxJ5CK0elQn+rAxoODG9Td2m1fZSohCbivP7oHHn6onF8bL4oQlmYU3uOTt8lRBV+Xjje yXk8rwhc8E/AImCYwsLBATT8WvHQxqXKAXzCdh+Mct8+HQpvYTDQhOWoU2O63Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgJpl4Qcpz1BnV; Tue, 13 Jun 2023 06:40:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D6el45060348; Tue, 13 Jun 2023 06:40:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D6elgF060347; Tue, 13 Jun 2023 06:40:47 GMT (envelope-from git) Date: Tue, 13 Jun 2023 06:40:47 GMT Message-Id: <202306130640.35D6elgF060347@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: d77ca41f7762 - main - ifconfig(8): add the dotted format for MAC addresses. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d77ca41f7762bc909a83d87ebd95735b4021652f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=d77ca41f7762bc909a83d87ebd95735b4021652f commit d77ca41f7762bc909a83d87ebd95735b4021652f Author: Trond Endrestol AuthorDate: 2023-06-13 06:36:16 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 06:40:15 +0000 ifconfig(8): add the dotted format for MAC addresses. MFC after: 2 weeks PR: 261572 --- sbin/ifconfig/af_link.c | 25 +++++++++++++++++++++---- sbin/ifconfig/ifconfig.8 | 5 ++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/sbin/ifconfig/af_link.c b/sbin/ifconfig/af_link.c index 8fd5e05044e2..7b7c5259d6c9 100644 --- a/sbin/ifconfig/af_link.c +++ b/sbin/ifconfig/af_link.c @@ -62,11 +62,28 @@ print_ether(const struct ether_addr *addr, const char *prefix) { char *ether_format = ether_ntoa(addr); - if (f_ether != NULL && strcmp(f_ether, "dash") == 0) { - char *format_char; + if (f_ether != NULL) { + if (strcmp(f_ether, "dash") == 0) { + char *format_char; - while ((format_char = strchr(ether_format, ':')) != NULL) { - *format_char = '-'; + while ((format_char = strchr(ether_format, ':')) != NULL) { + *format_char = '-'; + } + } else if (strcmp(f_ether, "dotted") == 0) { + /* Indices 0 and 1 is kept as is. */ + ether_format[ 2] = ether_format[ 3]; + ether_format[ 3] = ether_format[ 4]; + ether_format[ 4] = '.'; + ether_format[ 5] = ether_format[ 6]; + ether_format[ 6] = ether_format[ 7]; + ether_format[ 7] = ether_format[ 9]; + ether_format[ 8] = ether_format[10]; + ether_format[ 9] = '.'; + ether_format[10] = ether_format[12]; + ether_format[11] = ether_format[13]; + ether_format[12] = ether_format[15]; + ether_format[13] = ether_format[16]; + ether_format[14] = '\0'; } } printf("\t%s %s\n", prefix, ether_format); diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index a7e1bb26d81a..13685eba4c39 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd May 22, 2023 +.Dd June 13, 2023 .Dt IFCONFIG 8 .Os .Sh NAME @@ -156,6 +156,9 @@ Adjust the display of link-level ethernet (MAC) addresses: Separate address segments with a colon .It Cm dash Separate address segments with a dash +.It Cm dotted +Dotted notation, for example: +.Ql 5254.0015.4a3b .It Cm default Default format, .Cm colon From nobody Tue Jun 13 07:22:44 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgKl84cVZz4cg7F; Tue, 13 Jun 2023 07:22:44 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgKl840DZz43P4; Tue, 13 Jun 2023 07:22:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686640964; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OfcktNOpMgEm/0ZHXpowIJI2ZLPzIjCVavkf7I5dbCU=; b=f4LXwQPQMcJ5eCJeqTPEnyldmRfBXvrWM71x4fxx4vvGXQ9dz4y3oBmcSMVqga1WGOkrw+ Ia+YLYISH0B04KgMZVdnl70W+vnbzd9MLnogJmxgjIAaWUprsXYwlFJCZe9R9zSwfEWgvI 6IPZsoo8wr+569vPguQQlxPUbJbMu3GmE6N6euWQuu8tbbIgNTClvY55u4GkapioZlyd7E FPZ+4n/rS3bp2pqvyUZRbuJ/AVXl8I9PtAw8z1ojWXtoxO8OFS0H3tHcYzbd+PlDtfWstL Qq2zrTaqeOuu9IaZuavXwK0kFKYXD6RHbztJickVGzbOxQVECpUw1Q4MxRUzvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686640964; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OfcktNOpMgEm/0ZHXpowIJI2ZLPzIjCVavkf7I5dbCU=; b=LtBBVJwZAYSzsyS6mjlUCsECgEpq+NwI2Mk+BQ+yG2nQMmI6Lh/miG+yf2PX63kZMNRMcU uqOLCeJTaS4zBAYy2uXjnt783b+iyjwiOvFNp5GH+k5oNBnGB+QrTXLKX25nUACCdVWihJ c5rdSXu9lBKwmtkmnUem7TjrVaRgbW/yP6ZzBD3nhsix9ftf7CVZKFiWvEYkQ5ql8unVAs NuKxeZVxxzL8G12G0ABkP0SLZ/qHVB/EJV9iwcTYUZq+kBD6/fnq2ecrdqbguohTa1+2K8 wdGcU5w1Mi326Pj+TZ8spM6XbPPD8wYjoQo8TskKO2bmPSgZuUzbTp4f25kxnQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686640964; a=rsa-sha256; cv=none; b=lkvhhkPZwIKzY+MT5ah4MRa02Y4AECuh+t9Bh0Kb7TNosB9Dx4ksYJNlNPqbQIG0dep9Ka U70cblWjPEOVYVKWuwFnSLQsf3gEZYBJe+p6+JCyPVtoPqHjPil/hZEg4R+pmvAo8LfrNb UhbMuVjiblqqt1wyDVMVGGyd7kK1jwQGA7zrUsIkW1Vvl8gNNGpLTsfKbR+tfUU7TqCGEN 3+yPn/l9hy3C6m6ZE/tLl4wWF9Aud1i5IhokLjFYlKzJsd9o9qz/ru2vb/+Nuq7w/Usj42 LIj2v4/ExIG2nny6XfhSImkEdr4OqWwre/22q7TlSd1D5/MZ/z39Pkx8Ns4Gew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgKl8346kz1ClM; Tue, 13 Jun 2023 07:22:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D7MiNL030235; Tue, 13 Jun 2023 07:22:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D7MiKS030234; Tue, 13 Jun 2023 07:22:44 GMT (envelope-from git) Date: Tue, 13 Jun 2023 07:22:44 GMT Message-Id: <202306130722.35D7MiKS030234@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kirk McKusick Subject: git: f1549d7d5229 - main - Write out corrected superblock when creating a UFS/FFS snapshot. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f1549d7d522995bf5d821ae08cc2f500ba545285 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=f1549d7d522995bf5d821ae08cc2f500ba545285 commit f1549d7d522995bf5d821ae08cc2f500ba545285 Author: Kirk McKusick AuthorDate: 2023-06-13 07:21:43 +0000 Commit: Kirk McKusick CommitDate: 2023-06-13 07:22:13 +0000 Write out corrected superblock when creating a UFS/FFS snapshot. When taking a snapshot on a UFS version 1 filesystem we need to call ffs_oldfscompat_write() to unwind any in-memory changes that were made to the superblock before writing it. The cause of this bug was that the trimmed down maximum file size was not being reverted. PR: 271352 Tested-by: Peter Holm MFC-after: 1 week Sponsored-by: The FreeBSD Foundation --- sys/ufs/ffs/ffs_snapshot.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c index 8c3fcdbf72b9..fa744f0fab79 100644 --- a/sys/ufs/ffs/ffs_snapshot.c +++ b/sys/ufs/ffs/ffs_snapshot.c @@ -207,7 +207,7 @@ ffs_snapshot(struct mount *mp, char *snapfile) long snaplistsize = 0; int32_t *lp; void *space; - struct fs *copy_fs = NULL, *fs; + struct fs *copy_fs = NULL, *fs, *bpfs; struct thread *td = curthread; struct inode *ip, *xp; struct buf *bp, *nbp, *ibp; @@ -828,8 +828,10 @@ resumefs: } else { loc = blkoff(fs, fs->fs_sblockloc); copy_fs->fs_fmod = 0; - copy_fs->fs_ckhash = ffs_calc_sbhash(copy_fs); - bcopy((char *)copy_fs, &nbp->b_data[loc], (u_int)fs->fs_sbsize); + bpfs = (struct fs *)&nbp->b_data[loc]; + bcopy((caddr_t)copy_fs, (caddr_t)bpfs, (u_int)fs->fs_sbsize); + ffs_oldfscompat_write(bpfs, ump); + bpfs->fs_ckhash = ffs_calc_sbhash(bpfs); bawrite(nbp); } /* From nobody Tue Jun 13 07:49:16 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgLKm62Prz4cpW4; Tue, 13 Jun 2023 07:49:16 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgLKm5dhsz489D; Tue, 13 Jun 2023 07:49:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686642556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VPllaN6zfjztKyj/my3myWZpXpa30anCQW6NKKPAkSM=; b=RUvbiYKBI1Wte0IXGvTy5mHYMltQ9AyBsbfM0QODD2bzuBcpD7isVaIFCrfkwPbcRO009l 5hJjhZlBMMYZAf1GDWF7IabF6DJCDyVtTEioJK9/8eiuFA3C1kygX2AeF+Z7JSHFrw1bdl HDU4VcopGsRCApSQ5Ob1WldkQ1zS+cdFYVT+EMZV2IBNbUL4lshobPcOyuaAUNu6tWwUs0 gWcVeAsJX62wmO/rNfStvxkILUtQ82Q8yffep8LYwMqUNmNWaclo/pehSEzMX68A45zOYI CxQmu19W7l6VuPrDmP7v18fAPd+mSRAwvUVVZvRrEOmf1/aiX9zwrN9oFgAE6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686642556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VPllaN6zfjztKyj/my3myWZpXpa30anCQW6NKKPAkSM=; b=oSzLm5HQGHZc5C2ztvQ70V9N76whSIadrfDuJnW0QBixfzPKgzIJty/DNA0uo52n3Pw/bC C1d9MGecwPRZJ+Zph+5XGf6ZDX4ClLMzSNK0eswPC/luL4sozDqDYOm22E7BVm8rTcuQ5p 7U02xzHTCWzbVedfxO9VCWz/75eq+pVaCQpfz7BtLyC0Cyq2b/nb14FZz2KQ5xNahfm9s0 PqFhfcyzhDFNl83MWOmRDhX/imx9byz7J9kkCHAa/EUulc6zNrP9M2QPFYXc0F2eEnVjno rtVReahgp7TfjEeW0vYTBl/GL/WlGHhMIUynnJarznFfD2DNYnHrsgGKjh6tbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686642556; a=rsa-sha256; cv=none; b=rO7fpR1wD49wjVowLFp2xtKtwtFRJoWeWiRwx1xqjlo97/yWo65h+zGx2Lzjjwb2DBRVy3 otQwJ+MlAvCePzA4AfoYsVGd1llN2nycdXpTUH7Xive+Pf3VrtAktdr0o1K/58wVlzYgCh 8KUsJV4j/FCyBjgMYvXWZKxccZ5S19mG2J4pzK1Ry+JswJzDpzJEVO//1MrlT8861CE1sp ua1ItS/NcEK3/aLDyn0ASJFO5f2q4NvB8NNfu8Y8G9D1Zl6iLEuvMHkIScl2l5PquFw75i ShJfBPhpQQV6nzHoQYGE7Vz59OwD471dUfUQufNjgRLg8YN5mhW3lNbiHq+Nvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgLKm4hDbzF4m; Tue, 13 Jun 2023 07:49:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D7nGkA064827; Tue, 13 Jun 2023 07:49:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D7nG84064826; Tue, 13 Jun 2023 07:49:16 GMT (envelope-from git) Date: Tue, 13 Jun 2023 07:49:16 GMT Message-Id: <202306130749.35D7nG84064826@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 740d76544ad8 - main - linuxkpi: advance platform_device List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 740d76544ad8a59f1be53584a0aa5bbbe00833ee Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=740d76544ad8a59f1be53584a0aa5bbbe00833ee commit 740d76544ad8a59f1be53584a0aa5bbbe00833ee Author: Corvin Köhne AuthorDate: 2023-01-31 08:18:38 +0000 Commit: Corvin Köhne CommitDate: 2023-06-13 07:49:01 +0000 linuxkpi: advance platform_device These are required by some linux driver like: https://github.com/beckhoff/bbapi Reviewed by: manu MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D39554 --- sys/compat/linuxkpi/common/include/linux/platform_device.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/platform_device.h b/sys/compat/linuxkpi/common/include/linux/platform_device.h index f45cdce829c4..0d7aebfa4037 100644 --- a/sys/compat/linuxkpi/common/include/linux/platform_device.h +++ b/sys/compat/linuxkpi/common/include/linux/platform_device.h @@ -34,6 +34,9 @@ #include struct platform_device { + const char *name; + int id; + bool id_auto; struct device dev; }; @@ -78,6 +81,13 @@ platform_driver_unregister(struct platform_driver *pdrv) return; } +static __inline int +platform_device_register(struct platform_device *pdev) +{ + pr_debug("%s: TODO\n", __func__); + return (0); +} + static __inline void platform_device_unregister(struct platform_device *pdev) { From nobody Tue Jun 13 09:02:35 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgMyM6s8Dz4dGCy; Tue, 13 Jun 2023 09:02:35 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgMyM6Q73z4Pyq; Tue, 13 Jun 2023 09:02:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686646955; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xMPopD1f+gXnqp6gX45deuYbmWIvdSIXddlivnCThsM=; b=EmjNRJEUDk/auAy/9Keav3dvfzRQ2v69rdLshhK2XqYByX+H4YYt2pM3jMbMsAEv31S6OK 72+e6HdbQrMVtvn6t2ANWRb8YHU9nbaZx0tUe7pCN31YZhes7cTNZe9jMS4Z8MUwbYQ5BB 04Ll3A7BXhr5oveVtLOa2fGbDZIB6qlh7SSbYz4CuPNliG1LoLsqq7Tyq/gQjed4MPV4AX GzhqbImE/vjyuOZuhSaa4tRDNYd83dnpzy5McoDtM8mNICgAEkdPyemGiyXeUZuSXEw4mN qy/U+T17NfXyGLIwf+tbySHPVSCvjHbbXkIC6CPVWt35/ytjj556eTPeRO25wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686646955; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xMPopD1f+gXnqp6gX45deuYbmWIvdSIXddlivnCThsM=; b=Zt0Pw+Iq3o/UKQCiD0dxgVYt4It9KhbS5pq1j/cdFsGxeVn2oQL1PgOmHmex0b5+ld68IH O8uwP4vgegC6Y2hYDt/AQEJQkUGZQVZWzSK2vRInyAdYguICJRkiBAZdTQEdfMt3LmL3d8 rdrvhRV8m0b3SYhDgHDBga6pb9n9Ad3i926n2YSxDOHifqRc6h55WmWRauIzMcyFZVsWbS fPt+QXRi+4jyo5rvVinULYxmK0Rzq/rYkd+LkGIxdy+LgPVdeABDaF07kDVUZT5oCVnVfb gFQ8uMFZ5tb1Xyv6Eecp3HAQXU54/quZ+3sf8gNE/Mmcn/2yafTw21PLR+x9XQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686646955; a=rsa-sha256; cv=none; b=UZTbJwKScWDm89Rht1QaLn3m4vEIKZaqZ2IxjlNsNOyXOLoU08aTp/igmqFVP/YGEF5GTl DGJ/TMzaHDZFG1JE3rk0uIRZoNtXDp03SlRsFWf17Wg0Ybs9Ga7aIkpWqFvKYOD+stkE3s 6W6I88Md+NnuOaTJ6Qp78U0WJKbLCDofluL+Z+A2yvmDgMG5ouSC2eGAouqnlZD9xIpwl4 fh3gt1IcMo0iaSZVaMBd5kn16I9hc7ILff2iY5WfQHmy2HFhZd8ApJTQn4yeO4iUJsDNwQ CuWFQOo0/XYxBCupbKlaiTW3KK6RlX1Llg34uPBgtcCkqETzaO8x/XWsGfVZgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgMyM5WQszGTD; Tue, 13 Jun 2023 09:02:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35D92ZIG096201; Tue, 13 Jun 2023 09:02:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35D92ZGv096200; Tue, 13 Jun 2023 09:02:35 GMT (envelope-from git) Date: Tue, 13 Jun 2023 09:02:35 GMT Message-Id: <202306130902.35D92ZGv096200@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Peter Holm Subject: git: fa273fa15422 - main - stress2: Added a regression test for mksnap_ffs(8) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pho X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fa273fa15422673dc4197ff1d46ba0bb248a9abe Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by pho: URL: https://cgit.FreeBSD.org/src/commit/?id=fa273fa15422673dc4197ff1d46ba0bb248a9abe commit fa273fa15422673dc4197ff1d46ba0bb248a9abe Author: Peter Holm AuthorDate: 2023-06-13 09:01:43 +0000 Commit: Peter Holm CommitDate: 2023-06-13 09:01:43 +0000 stress2: Added a regression test for mksnap_ffs(8) --- tools/test/stress2/misc/snap13.sh | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/tools/test/stress2/misc/snap13.sh b/tools/test/stress2/misc/snap13.sh new file mode 100755 index 000000000000..75550e76a784 --- /dev/null +++ b/tools/test/stress2/misc/snap13.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2023 Peter Holm +# +# 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. +# + +# Test mounting of snapshots for different UFS types + +# Seen: mount of a -O1 snapshot failed +# Fixed by: +# f1549d7d5229 Write out corrected superblock when creating a UFS/FFS snapshot. + +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 + +. ../default.cfg + +set -u +s=0 +m2=$((mdstart + 1)) +mp2=$mntpoint$m2 +[ -d $mp2 ] || mkdir -p $mp2 +mount | grep -q "on $mntpoint " && umount -f $mntpoint +[ -c /dev/md$mdstart ] && mdconfig -d -u $mdstart +[ -c /dev/md$m2 ] && mdconfig -d -u $m2 +mdconfig -a -t swap -s 2g -u $mdstart || exit 1 +for newfs_flags in "-O2" "-U" "-j" "-O1"; do + echo "newfs $newfs_flags md$mdstart" + newfs $newfs_flags md$mdstart > /dev/null + mount /dev/md$mdstart $mntpoint + touch $mntpoint/file + + rm -f $mntpoint/.snap/stress2 + mksnap_ffs $mntpoint $mntpoint/.snap/stress2 || { s=1; break; } + mdconfig -a -t vnode -f $mntpoint/.snap/stress2 -u $m2 -o readonly || + { s=2; break; } + mount -t ufs -o ro /dev/md$m2 $mp2 || { + echo "mount of a $newfs_flags snapshot failed" + dumpfs -s /dev/md$m2; s=3; break; } + [ -f $mp2/file ] || { s=4; ls -l $mp2; } + umount $mp2 + mdconfig -d -u $m2 + umount $mntpoint +done +mount | grep -q "on $mntpoint " && umount $mntpoint + +mdconfig -d -u $mdstart +exit $s From nobody Tue Jun 13 11:55:42 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgRp62hfBz4d1qr; Tue, 13 Jun 2023 11:55:42 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgRp61qqWz3Mg2; Tue, 13 Jun 2023 11:55:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686657342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VEHI0TZWfkzFpB86OX3Ai4h08+FzYybWoRVISenl1lg=; b=t8s8eWAQmiExBGwkfc7hMe2vHomkpG0Jc41tFKAxGgp1tITst1oiHqev2LoCsr7O7u93Bd uf+KLNZ59eqZBAIHGwKsPXd70eSC+0YIq6M734ikzAtC9qwXdcmteEljB7uln6qNSyHPQo RWVU9uTOvw/I3c4+jeVQGWGdmfwkmixXJdtDttX2S7VBTt/jGrzMRyDbdy+zDZ+6XP4V2D Z9UDw1kzGDIhefpwZmAZdMyyj4xDWrsiIqTVZ0iqNznkXNo+F+qsropXcq2iZvyTdopvp3 mDFGKyKxPapnMeleOtMlx0UmfzGVahEveR1lxriQTnZqJ0E2R0cS+MCOUDxBHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686657342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VEHI0TZWfkzFpB86OX3Ai4h08+FzYybWoRVISenl1lg=; b=JWz/O25/QT4Lz/chva41hQTk2yGJH1ue9daUXfd2ANzJo6H31dAi91pBkgN6snMrmenm/H qV9L2cQWEI9GTmqsJHOi7GKPaMkcB/N/2AkOoReEIT48WfQiPh0/He2OZat+G8h6anK0hG /Q0frChAuem21X2A3lusFfSkyRG3alyUAePL9prflh/gGGhUrCg9Qtj5dzFjmwA6Og2RwS 09inpO9ngtbpYNOuD4L0Vk5qmjbzVC/45ZgU8SK8TXl/Xcs16a5uw9g0th0wC+R0eRkPu0 +jKOYcn0WGkJjQ3ZBNgQrJRiCMHPJbJzSfPTOgr1crKB6JQl+16kJxIzb1qiFw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686657342; a=rsa-sha256; cv=none; b=NJeSwzCrYoN3Hy0UsI7C1+PQzAIIJ3WmvFFnQTfmHmruBS3DOIL8TJdS0g0ORkkGc+qI6y UYPDV1G7yMvI7WtBzHXwZ7e7AG49LsgtwTPWGR3RMp+2Y37O77ePQivyj1GJhJStUDo73x WaT7euZBTpnns9AfE3WPe9VsO6IRBRuWhv7PTFcwETNJvWdX3201N2/hE9K7ZM1YPCmiZz FCLkWWJwJsHYibWSD3VNTrQkIjOSTOY9d4twCZK8V339amvRxm9gVu0YzXySSFifO/aMlP V8zN5TXIoFzn97lUPF/j26ElukMNckT0EZr43d27GwDUpUqi+NQ3x5miLN1ljw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgRp60wD6zM2c; Tue, 13 Jun 2023 11:55:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DBtgFw075969; Tue, 13 Jun 2023 11:55:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DBtg5d075968; Tue, 13 Jun 2023 11:55:42 GMT (envelope-from git) Date: Tue, 13 Jun 2023 11:55:42 GMT Message-Id: <202306131155.35DBtg5d075968@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 9f44a47fd079 - main - ipfw(8): add ioctl/instruction generation tests List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9f44a47fd07924afc035991af15d84e6585dea4f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=9f44a47fd07924afc035991af15d84e6585dea4f commit 9f44a47fd07924afc035991af15d84e6585dea4f Author: Alexander V. Chernikov AuthorDate: 2023-06-11 08:12:04 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 11:55:37 +0000 ipfw(8): add ioctl/instruction generation tests Differential Revision: https://reviews.freebsd.org/D40488 MFC after: 2 weeks --- etc/mtree/BSD.tests.dist | 2 + sbin/ipfw/ipfw2.c | 47 +- sbin/ipfw/ipfw2.h | 1 + sbin/ipfw/main.c | 6 +- sbin/ipfw/tests/Makefile | 5 + sbin/ipfw/tests/test_add_rule.py | 400 +++++++++++++++ tests/atf_python/sys/Makefile | 2 +- tests/atf_python/sys/netpfil/Makefile | 11 + tests/atf_python/sys/netpfil/__init__.py | 0 tests/atf_python/sys/netpfil/ipfw/Makefile | 12 + tests/atf_python/sys/netpfil/ipfw/__init__.py | 0 tests/atf_python/sys/netpfil/ipfw/insn_headers.py | 198 ++++++++ tests/atf_python/sys/netpfil/ipfw/insns.py | 555 +++++++++++++++++++++ tests/atf_python/sys/netpfil/ipfw/ioctl.py | 505 +++++++++++++++++++ tests/atf_python/sys/netpfil/ipfw/ioctl_headers.py | 90 ++++ tests/atf_python/sys/netpfil/ipfw/ipfw.py | 118 +++++ tests/atf_python/sys/netpfil/ipfw/utils.py | 61 +++ 17 files changed, 2007 insertions(+), 6 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 8dc52086fe33..8b9d0ac6bccd 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -450,6 +450,8 @@ .. ifconfig .. + ipfw + .. md5 .. mdconfig diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index 683465a024bc..36f39beba5bb 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -587,6 +587,13 @@ stringnum_cmp(const char *a, const char *b) return (strcmp(a, b)); } +struct debug_header { + uint16_t cmd_type; + uint16_t spare1; + uint32_t opt_name; + uint32_t total_len; + uint32_t spare2; +}; /* * conditionally runs the command. @@ -597,8 +604,18 @@ do_cmd(int optname, void *optval, uintptr_t optlen) { int i; + if (g_co.debug_only) { + struct debug_header dbg = { + .cmd_type = 1, + .opt_name = optname, + .total_len = optlen + sizeof(struct debug_header), + }; + write(1, &dbg, sizeof(dbg)); + write(1, optval, optlen); + } + if (g_co.test_only) - return 0; + return (0); if (ipfw_socket == -1) ipfw_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); @@ -617,7 +634,7 @@ do_cmd(int optname, void *optval, uintptr_t optlen) } else { i = setsockopt(ipfw_socket, IPPROTO_IP, optname, optval, optlen); } - return i; + return (i); } /* @@ -634,6 +651,18 @@ int do_set3(int optname, ip_fw3_opheader *op3, size_t optlen) { + op3->opcode = optname; + + if (g_co.debug_only) { + struct debug_header dbg = { + .cmd_type = 2, + .opt_name = optname, + .total_len = optlen, sizeof(struct debug_header), + }; + write(1, &dbg, sizeof(dbg)); + write(1, op3, optlen); + } + if (g_co.test_only) return (0); @@ -642,7 +671,6 @@ do_set3(int optname, ip_fw3_opheader *op3, size_t optlen) if (ipfw_socket < 0) err(EX_UNAVAILABLE, "socket"); - op3->opcode = optname; return (setsockopt(ipfw_socket, IPPROTO_IP, IP_FW3, op3, optlen)); } @@ -663,6 +691,18 @@ do_get3(int optname, ip_fw3_opheader *op3, size_t *optlen) int error; socklen_t len; + op3->opcode = optname; + + if (g_co.debug_only) { + struct debug_header dbg = { + .cmd_type = 3, + .opt_name = optname, + .total_len = *optlen + sizeof(struct debug_header), + }; + write(1, &dbg, sizeof(dbg)); + write(1, op3, *optlen); + } + if (g_co.test_only) return (0); @@ -671,7 +711,6 @@ do_get3(int optname, ip_fw3_opheader *op3, size_t *optlen) if (ipfw_socket < 0) err(EX_UNAVAILABLE, "socket"); - op3->opcode = optname; len = *optlen; error = getsockopt(ipfw_socket, IPPROTO_IP, IP_FW3, op3, &len); diff --git a/sbin/ipfw/ipfw2.h b/sbin/ipfw/ipfw2.h index a554f9b9f6fc..92fa05ae14b2 100644 --- a/sbin/ipfw/ipfw2.h +++ b/sbin/ipfw/ipfw2.h @@ -48,6 +48,7 @@ struct cmdline_opts { int test_only; /* only check syntax */ int comment_only; /* only print action and comment */ int verbose; /* be verbose on some commands */ + int debug_only; /* output ioctl i/o on stdout */ /* The options below can have multiple values. */ diff --git a/sbin/ipfw/main.c b/sbin/ipfw/main.c index 577224047cd0..b1bed5ad008c 100644 --- a/sbin/ipfw/main.c +++ b/sbin/ipfw/main.c @@ -277,7 +277,7 @@ ipfw_main(int oldac, char **oldav) optind = optreset = 1; /* restart getopt() */ if (is_ipfw()) { - while ((ch = getopt(ac, av, "abcdDefhinNp:qs:STtv")) != -1) + while ((ch = getopt(ac, av, "abcdDefhinNp:qs:STtvx")) != -1) switch (ch) { case 'a': do_acct = 1; @@ -354,6 +354,10 @@ ipfw_main(int oldac, char **oldav) g_co.verbose = 1; break; + case 'x': /* debug output */ + g_co.debug_only = 1; + break; + default: free(save_av); return 1; diff --git a/sbin/ipfw/tests/Makefile b/sbin/ipfw/tests/Makefile new file mode 100644 index 000000000000..987410f5d710 --- /dev/null +++ b/sbin/ipfw/tests/Makefile @@ -0,0 +1,5 @@ +PACKAGE= tests + +ATF_TESTS_PYTEST+= test_add_rule.py + +.include diff --git a/sbin/ipfw/tests/test_add_rule.py b/sbin/ipfw/tests/test_add_rule.py new file mode 100755 index 000000000000..65b4e7d33646 --- /dev/null +++ b/sbin/ipfw/tests/test_add_rule.py @@ -0,0 +1,400 @@ +import errno +import json +import os +import socket +import struct +import subprocess +import sys +from ctypes import c_byte +from ctypes import c_char +from ctypes import c_int +from ctypes import c_long +from ctypes import c_uint32 +from ctypes import c_uint8 +from ctypes import c_ulong +from ctypes import c_ushort +from ctypes import sizeof +from ctypes import Structure +from enum import Enum +from typing import Any +from typing import Dict +from typing import List +from typing import NamedTuple +from typing import Optional +from typing import Union + +import pytest +from atf_python.sys.netpfil.ipfw.insns import Icmp6RejectCode +from atf_python.sys.netpfil.ipfw.insns import IcmpRejectCode +from atf_python.sys.netpfil.ipfw.insns import Insn +from atf_python.sys.netpfil.ipfw.insns import InsnComment +from atf_python.sys.netpfil.ipfw.insns import InsnEmpty +from atf_python.sys.netpfil.ipfw.insns import InsnIp +from atf_python.sys.netpfil.ipfw.insns import InsnIp6 +from atf_python.sys.netpfil.ipfw.insns import InsnPorts +from atf_python.sys.netpfil.ipfw.insns import InsnProb +from atf_python.sys.netpfil.ipfw.insns import InsnProto +from atf_python.sys.netpfil.ipfw.insns import InsnReject +from atf_python.sys.netpfil.ipfw.insns import InsnTable +from atf_python.sys.netpfil.ipfw.insns import IpFwOpcode +from atf_python.sys.netpfil.ipfw.ioctl import CTlv +from atf_python.sys.netpfil.ipfw.ioctl import CTlvRule +from atf_python.sys.netpfil.ipfw.ioctl import IpFwTlvType +from atf_python.sys.netpfil.ipfw.ioctl import IpFwXRule +from atf_python.sys.netpfil.ipfw.ioctl import NTlv +from atf_python.sys.netpfil.ipfw.ioctl import Op3CmdType +from atf_python.sys.netpfil.ipfw.ioctl import RawRule +from atf_python.sys.netpfil.ipfw.ipfw import DebugIoReader +from atf_python.sys.netpfil.ipfw.utils import enum_from_int +from atf_python.utils import BaseTest + + +IPFW_PATH = "/sbin/ipfw" + + +def differ(w_obj, g_obj, w_stack=[], g_stack=[]): + if bytes(w_obj) == bytes(g_obj): + return True + num_objects = 0 + for i, w_child in enumerate(w_obj.obj_list): + if i > len(g_obj.obj_list): + print("MISSING object from chain {}".format(" / ".join(w_stack))) + w_child.print_obj() + print("==========================") + return False + g_child = g_obj.obj_list[i] + if bytes(w_child) == bytes(g_child): + num_objects += 1 + continue + w_stack.append(w_obj.obj_name) + g_stack.append(g_obj.obj_name) + if not differ(w_child, g_child, w_stack, g_stack): + return False + break + if num_objects == len(w_obj.obj_list) and num_objects < len(g_obj.obj_list): + g_child = g_obj.obj_list[num_objects] + print("EXTRA object from chain {}".format(" / ".join(g_stack))) + g_child.print_obj() + print("==========================") + return False + print("OBJECTS DIFFER") + print("WANTED CHAIN: {}".format(" / ".join(w_stack))) + w_obj.print_obj() + w_obj.print_obj_hex() + print("==========================") + print("GOT CHAIN: {}".format(" / ".join(g_stack))) + g_obj.print_obj() + g_obj.print_obj_hex() + print("==========================") + return False + + +class TestAddRule(BaseTest): + def compile_rule(self, out): + tlvs = [] + if "objs" in out: + tlvs.append(CTlv(IpFwTlvType.IPFW_TLV_TBLNAME_LIST, out["objs"])) + rule = RawRule(rulenum=out.get("rulenum", 0), obj_list=out["insns"]) + tlvs.append(CTlvRule(obj_list=[rule])) + return IpFwXRule(Op3CmdType.IP_FW_XADD, tlvs) + + def verify_rule(self, in_data: str, out_data): + # Prepare the desired output + expected = self.compile_rule(out_data) + + reader = DebugIoReader(IPFW_PATH) + ioctls = reader.get_records(in_data) + assert len(ioctls) == 1 # Only 1 ioctl request expected + got = ioctls[0] + + if not differ(expected, got): + print("=> CMD: {}".format(in_data)) + print("=> WANTED:") + expected.print_obj() + print("==========================") + print("=> GOT:") + got.print_obj() + print("==========================") + assert bytes(got) == bytes(expected) + + @pytest.mark.parametrize( + "rule", + [ + pytest.param( + { + "in": "add 200 allow ip from any to any", + "out": { + "insns": [InsnEmpty(IpFwOpcode.O_ACCEPT)], + "rulenum": 200, + }, + }, + id="test_rulenum", + ), + pytest.param( + { + "in": "add allow ip from { 1.2.3.4 or 2.3.4.5 } to any", + "out": { + "insns": [ + InsnIp(IpFwOpcode.O_IP_SRC, ip="1.2.3.4", is_or=True), + InsnIp(IpFwOpcode.O_IP_SRC, ip="2.3.4.5"), + InsnEmpty(IpFwOpcode.O_ACCEPT), + ], + }, + }, + id="test_or", + ), + pytest.param( + { + "in": "add allow ip from table(AAA) to table(BBB)", + "out": { + "objs": [ + NTlv(IpFwTlvType.IPFW_TLV_TBL_NAME, idx=1, name="AAA"), + NTlv(IpFwTlvType.IPFW_TLV_TBL_NAME, idx=2, name="BBB"), + ], + "insns": [ + InsnTable(IpFwOpcode.O_IP_SRC_LOOKUP, arg1=1), + InsnTable(IpFwOpcode.O_IP_DST_LOOKUP, arg1=2), + InsnEmpty(IpFwOpcode.O_ACCEPT), + ], + }, + }, + id="test_tables", + ), + pytest.param( + { + "in": "add allow ip from any to 1.2.3.4 // test comment", + "out": { + "insns": [ + InsnIp(IpFwOpcode.O_IP_DST, ip="1.2.3.4"), + InsnComment(comment="test comment"), + InsnEmpty(IpFwOpcode.O_ACCEPT), + ], + }, + }, + id="test_comment", + ), + ], + ) + def test_add_rule(self, rule): + """Tests if the compiled rule is sane and matches the spec""" + self.verify_rule(rule["in"], rule["out"]) + + @pytest.mark.parametrize( + "action", + [ + pytest.param(("allow", InsnEmpty(IpFwOpcode.O_ACCEPT)), id="test_allow"), + pytest.param( + ( + "abort", + Insn(IpFwOpcode.O_REJECT, arg1=IcmpRejectCode.ICMP_REJECT_ABORT), + ), + id="abort", + ), + pytest.param( + ( + "abort6", + Insn( + IpFwOpcode.O_UNREACH6, arg1=Icmp6RejectCode.ICMP6_UNREACH_ABORT + ), + ), + id="abort6", + ), + pytest.param(("accept", InsnEmpty(IpFwOpcode.O_ACCEPT)), id="accept"), + pytest.param(("deny", InsnEmpty(IpFwOpcode.O_DENY)), id="deny"), + pytest.param( + ( + "reject", + Insn(IpFwOpcode.O_REJECT, arg1=IcmpRejectCode.ICMP_UNREACH_HOST), + ), + id="reject", + ), + pytest.param( + ( + "reset", + Insn(IpFwOpcode.O_REJECT, arg1=IcmpRejectCode.ICMP_REJECT_RST), + ), + id="reset", + ), + pytest.param( + ( + "reset6", + Insn(IpFwOpcode.O_UNREACH6, arg1=Icmp6RejectCode.ICMP6_UNREACH_RST), + ), + id="reset6", + ), + pytest.param( + ( + "unreach port", + InsnReject( + IpFwOpcode.O_REJECT, arg1=IcmpRejectCode.ICMP_UNREACH_PORT + ), + ), + id="unreach_port", + ), + pytest.param( + ( + "unreach port", + InsnReject( + IpFwOpcode.O_REJECT, arg1=IcmpRejectCode.ICMP_UNREACH_PORT + ), + ), + id="unreach_port", + ), + pytest.param( + ( + "unreach needfrag", + InsnReject( + IpFwOpcode.O_REJECT, arg1=IcmpRejectCode.ICMP_UNREACH_NEEDFRAG + ), + ), + id="unreach_needfrag", + ), + pytest.param( + ( + "unreach needfrag 1420", + InsnReject( + IpFwOpcode.O_REJECT, + arg1=IcmpRejectCode.ICMP_UNREACH_NEEDFRAG, + mtu=1420, + ), + ), + id="unreach_needfrag_mtu", + ), + pytest.param( + ( + "unreach6 port", + Insn( + IpFwOpcode.O_UNREACH6, + arg1=Icmp6RejectCode.ICMP6_DST_UNREACH_NOPORT, + ), + ), + id="unreach6_port", + ), + pytest.param(("count", InsnEmpty(IpFwOpcode.O_COUNT)), id="count"), + # TOK_NAT + pytest.param( + ("queue 42", Insn(IpFwOpcode.O_QUEUE, arg1=42)), id="queue_42" + ), + pytest.param(("pipe 42", Insn(IpFwOpcode.O_PIPE, arg1=42)), id="pipe_42"), + pytest.param( + ("skipto 42", Insn(IpFwOpcode.O_SKIPTO, arg1=42)), id="skipto_42" + ), + pytest.param( + ("netgraph 42", Insn(IpFwOpcode.O_NETGRAPH, arg1=42)), id="netgraph_42" + ), + pytest.param( + ("ngtee 42", Insn(IpFwOpcode.O_NGTEE, arg1=42)), id="ngtee_42" + ), + pytest.param( + ("divert 42", Insn(IpFwOpcode.O_DIVERT, arg1=42)), id="divert_42" + ), + pytest.param( + ("divert natd", Insn(IpFwOpcode.O_DIVERT, arg1=8668)), id="divert_natd" + ), + pytest.param(("tee 42", Insn(IpFwOpcode.O_TEE, arg1=42)), id="tee_42"), + pytest.param( + ("call 420", Insn(IpFwOpcode.O_CALLRETURN, arg1=420)), id="call_420" + ), + # TOK_FORWARD + # TOK_COMMENT + pytest.param( + ("setfib 1", Insn(IpFwOpcode.O_SETFIB, arg1=1 | 0x8000)), + id="setfib_1", + marks=pytest.mark.skip("needs net.fibs>1"), + ), + pytest.param( + ("setdscp 42", Insn(IpFwOpcode.O_SETDSCP, arg1=42 | 0x8000)), + id="setdscp_42", + ), + pytest.param(("reass", InsnEmpty(IpFwOpcode.O_REASS)), id="reass"), + pytest.param( + ("return", InsnEmpty(IpFwOpcode.O_CALLRETURN, is_not=True)), id="return" + ), + ], + ) + def test_add_action(self, action): + """Tests if the rule action is compiled properly""" + rule_in = "add {} ip from any to any".format(action[0]) + rule_out = {"insns": [action[1]]} + self.verify_rule(rule_in, rule_out) + + @pytest.mark.parametrize( + "insn", + [ + pytest.param( + { + "in": "add prob 0.7 allow ip from any to any", + "out": InsnProb(prob=0.7), + }, + id="test_prob", + ), + pytest.param( + { + "in": "add allow tcp from any to any", + "out": InsnProto(arg1=6), + }, + id="test_proto", + ), + pytest.param( + { + "in": "add allow ip from any to any 57", + "out": InsnPorts(IpFwOpcode.O_IP_DSTPORT, port_pairs=[57, 57]), + }, + id="test_ports", + ), + ], + ) + def test_add_single_instruction(self, insn): + """Tests if the compiled rule is sane and matches the spec""" + + # Prepare the desired output + out = { + "insns": [insn["out"], InsnEmpty(IpFwOpcode.O_ACCEPT)], + } + self.verify_rule(insn["in"], out) + + @pytest.mark.parametrize( + "opcode", + [ + pytest.param(IpFwOpcode.O_IP_SRCPORT, id="src"), + pytest.param(IpFwOpcode.O_IP_DSTPORT, id="dst"), + ], + ) + @pytest.mark.parametrize( + "params", + [ + pytest.param( + { + "in": "57", + "out": [(57, 57)], + }, + id="test_single", + ), + pytest.param( + { + "in": "57-59", + "out": [(57, 59)], + }, + id="test_range", + ), + pytest.param( + { + "in": "57-59,41", + "out": [(57, 59), (41, 41)], + }, + id="test_ranges", + ), + ], + ) + def test_add_ports(self, params, opcode): + if opcode == IpFwOpcode.O_IP_DSTPORT: + txt = "add allow ip from any to any " + params["in"] + else: + txt = "add allow ip from any " + params["in"] + " to any" + out = { + "insns": [ + InsnPorts(opcode, port_pairs=params["out"]), + InsnEmpty(IpFwOpcode.O_ACCEPT), + ] + } + self.verify_rule(txt, out) diff --git a/tests/atf_python/sys/Makefile b/tests/atf_python/sys/Makefile index 540c3803ada5..85f66a85088e 100644 --- a/tests/atf_python/sys/Makefile +++ b/tests/atf_python/sys/Makefile @@ -3,7 +3,7 @@ .PATH: ${.CURDIR} FILES= __init__.py -SUBDIR= net netlink +SUBDIR= net netlink netpfil .include FILESDIR= ${TESTSBASE}/atf_python/sys diff --git a/tests/atf_python/sys/netpfil/Makefile b/tests/atf_python/sys/netpfil/Makefile new file mode 100644 index 000000000000..417a16d85359 --- /dev/null +++ b/tests/atf_python/sys/netpfil/Makefile @@ -0,0 +1,11 @@ +.include + +.PATH: ${.CURDIR} + +FILES= __init__.py +SUBDIR= ipfw + +.include +FILESDIR= ${TESTSBASE}/atf_python/sys/netpfil + +.include diff --git a/tests/atf_python/sys/netpfil/__init__.py b/tests/atf_python/sys/netpfil/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/atf_python/sys/netpfil/ipfw/Makefile b/tests/atf_python/sys/netpfil/ipfw/Makefile new file mode 100644 index 000000000000..a85dc7de9417 --- /dev/null +++ b/tests/atf_python/sys/netpfil/ipfw/Makefile @@ -0,0 +1,12 @@ +.include + +.PATH: ${.CURDIR} + +FILES= __init__.py insns.py insn_headers.py ioctl.py ioctl_headers.py \ + ipfw.py utils.py + +.include +FILESDIR= ${TESTSBASE}/atf_python/sys/netpfil/ipfw + +.include + diff --git a/tests/atf_python/sys/netpfil/ipfw/__init__.py b/tests/atf_python/sys/netpfil/ipfw/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/atf_python/sys/netpfil/ipfw/insn_headers.py b/tests/atf_python/sys/netpfil/ipfw/insn_headers.py new file mode 100644 index 000000000000..5c160d0758d6 --- /dev/null +++ b/tests/atf_python/sys/netpfil/ipfw/insn_headers.py @@ -0,0 +1,198 @@ +from enum import Enum + + +class IpFwOpcode(Enum): + O_NOP = 0 + O_IP_SRC = 1 + O_IP_SRC_MASK = 2 + O_IP_SRC_ME = 3 + O_IP_SRC_SET = 4 + O_IP_DST = 5 + O_IP_DST_MASK = 6 + O_IP_DST_ME = 7 + O_IP_DST_SET = 8 + O_IP_SRCPORT = 9 + O_IP_DSTPORT = 10 + O_PROTO = 11 + O_MACADDR2 = 12 + O_MAC_TYPE = 13 + O_LAYER2 = 14 + O_IN = 15 + O_FRAG = 16 + O_RECV = 17 + O_XMIT = 18 + O_VIA = 19 + O_IPOPT = 20 + O_IPLEN = 21 + O_IPID = 22 + O_IPTOS = 23 + O_IPPRECEDENCE = 24 + O_IPTTL = 25 + O_IPVER = 26 + O_UID = 27 + O_GID = 28 + O_ESTAB = 29 + O_TCPFLAGS = 30 + O_TCPWIN = 31 + O_TCPSEQ = 32 + O_TCPACK = 33 + O_ICMPTYPE = 34 + O_TCPOPTS = 35 + O_VERREVPATH = 36 + O_VERSRCREACH = 37 + O_PROBE_STATE = 38 + O_KEEP_STATE = 39 + O_LIMIT = 40 + O_LIMIT_PARENT = 41 + O_LOG = 42 + O_PROB = 43 + O_CHECK_STATE = 44 + O_ACCEPT = 45 + O_DENY = 46 + O_REJECT = 47 + O_COUNT = 48 + O_SKIPTO = 49 + O_PIPE = 50 + O_QUEUE = 51 + O_DIVERT = 52 + O_TEE = 53 + O_FORWARD_IP = 54 + O_FORWARD_MAC = 55 + O_NAT = 56 + O_REASS = 57 + O_IPSEC = 58 + O_IP_SRC_LOOKUP = 59 + O_IP_DST_LOOKUP = 60 + O_ANTISPOOF = 61 + O_JAIL = 62 + O_ALTQ = 63 + O_DIVERTED = 64 + O_TCPDATALEN = 65 + O_IP6_SRC = 66 + O_IP6_SRC_ME = 67 + O_IP6_SRC_MASK = 68 + O_IP6_DST = 69 + O_IP6_DST_ME = 70 + O_IP6_DST_MASK = 71 + O_FLOW6ID = 72 + O_ICMP6TYPE = 73 + O_EXT_HDR = 74 + O_IP6 = 75 + O_NETGRAPH = 76 + O_NGTEE = 77 + O_IP4 = 78 + O_UNREACH6 = 79 + O_TAG = 80 + O_TAGGED = 81 + O_SETFIB = 82 + O_FIB = 83 + O_SOCKARG = 84 + O_CALLRETURN = 85 + O_FORWARD_IP6 = 86 + O_DSCP = 87 + O_SETDSCP = 88 + O_IP_FLOW_LOOKUP = 89 + O_EXTERNAL_ACTION = 90 + O_EXTERNAL_INSTANCE = 91 + O_EXTERNAL_DATA = 92 + O_SKIP_ACTION = 93 + O_TCPMSS = 94 + O_MAC_SRC_LOOKUP = 95 + O_MAC_DST_LOOKUP = 96 + O_SETMARK = 97 + O_MARK = 98 + O_LAST_OPCODE = 99 + + +class Op3CmdType(Enum): + IP_FW_TABLE_XADD = 86 + IP_FW_TABLE_XDEL = 87 + IP_FW_TABLE_XGETSIZE = 88 + IP_FW_TABLE_XLIST = 89 + IP_FW_TABLE_XDESTROY = 90 + IP_FW_TABLES_XLIST = 92 + IP_FW_TABLE_XINFO = 93 + IP_FW_TABLE_XFLUSH = 94 + IP_FW_TABLE_XCREATE = 95 + IP_FW_TABLE_XMODIFY = 96 + IP_FW_XGET = 97 + IP_FW_XADD = 98 + IP_FW_XDEL = 99 + IP_FW_XMOVE = 100 + IP_FW_XZERO = 101 + IP_FW_XRESETLOG = 102 + IP_FW_SET_SWAP = 103 + IP_FW_SET_MOVE = 104 + IP_FW_SET_ENABLE = 105 + IP_FW_TABLE_XFIND = 106 + IP_FW_XIFLIST = 107 + IP_FW_TABLES_ALIST = 108 + IP_FW_TABLE_XSWAP = 109 + IP_FW_TABLE_VLIST = 110 + IP_FW_NAT44_XCONFIG = 111 + IP_FW_NAT44_DESTROY = 112 + IP_FW_NAT44_XGETCONFIG = 113 + IP_FW_NAT44_LIST_NAT = 114 + IP_FW_NAT44_XGETLOG = 115 + IP_FW_DUMP_SOPTCODES = 116 + IP_FW_DUMP_SRVOBJECTS = 117 + IP_FW_NAT64STL_CREATE = 130 + IP_FW_NAT64STL_DESTROY = 131 + IP_FW_NAT64STL_CONFIG = 132 + IP_FW_NAT64STL_LIST = 133 + IP_FW_NAT64STL_STATS = 134 + IP_FW_NAT64STL_RESET_STATS = 135 + IP_FW_NAT64LSN_CREATE = 140 + IP_FW_NAT64LSN_DESTROY = 141 + IP_FW_NAT64LSN_CONFIG = 142 + IP_FW_NAT64LSN_LIST = 143 + IP_FW_NAT64LSN_STATS = 144 + IP_FW_NAT64LSN_LIST_STATES = 145 + IP_FW_NAT64LSN_RESET_STATS = 146 + IP_FW_NPTV6_CREATE = 150 + IP_FW_NPTV6_DESTROY = 151 + IP_FW_NPTV6_CONFIG = 152 + IP_FW_NPTV6_LIST = 153 + IP_FW_NPTV6_STATS = 154 + IP_FW_NPTV6_RESET_STATS = 155 + IP_FW_NAT64CLAT_CREATE = 160 + IP_FW_NAT64CLAT_DESTROY = 161 + IP_FW_NAT64CLAT_CONFIG = 162 + IP_FW_NAT64CLAT_LIST = 163 + IP_FW_NAT64CLAT_STATS = 164 + IP_FW_NAT64CLAT_RESET_STATS = 165 + + +class IcmpRejectCode(Enum): + ICMP_UNREACH_NET = 0 + ICMP_UNREACH_HOST = 1 + ICMP_UNREACH_PROTOCOL = 2 + ICMP_UNREACH_PORT = 3 + ICMP_UNREACH_NEEDFRAG = 4 + ICMP_UNREACH_SRCFAIL = 5 + ICMP_UNREACH_NET_UNKNOWN = 6 + ICMP_UNREACH_HOST_UNKNOWN = 7 + ICMP_UNREACH_ISOLATED = 8 + ICMP_UNREACH_NET_PROHIB = 9 + ICMP_UNREACH_HOST_PROHIB = 10 + ICMP_UNREACH_TOSNET = 11 + ICMP_UNREACH_TOSHOST = 12 + ICMP_UNREACH_FILTER_PROHIB = 13 + ICMP_UNREACH_HOST_PRECEDENCE = 14 + ICMP_UNREACH_PRECEDENCE_CUTOFF = 15 + ICMP_REJECT_RST = 256 + ICMP_REJECT_ABORT = 257 + + +class Icmp6RejectCode(Enum): + ICMP6_DST_UNREACH_NOROUTE = 0 + ICMP6_DST_UNREACH_ADMIN = 1 + ICMP6_DST_UNREACH_BEYONDSCOPE = 2 + ICMP6_DST_UNREACH_NOTNEIGHBOR = 2 + ICMP6_DST_UNREACH_ADDR = 3 + ICMP6_DST_UNREACH_NOPORT = 4 + ICMP6_DST_UNREACH_POLICY = 5 + ICMP6_DST_UNREACH_REJECT = 6 + ICMP6_DST_UNREACH_SRCROUTE = 7 + ICMP6_UNREACH_RST = 256 + ICMP6_UNREACH_ABORT = 257 diff --git a/tests/atf_python/sys/netpfil/ipfw/insns.py b/tests/atf_python/sys/netpfil/ipfw/insns.py new file mode 100644 index 000000000000..12f145f49393 --- /dev/null +++ b/tests/atf_python/sys/netpfil/ipfw/insns.py @@ -0,0 +1,555 @@ +#!/usr/bin/env python3 +import os +import socket +import struct +import subprocess +import sys +from ctypes import c_byte +from ctypes import c_char +from ctypes import c_int +from ctypes import c_long +from ctypes import c_uint32 +from ctypes import c_uint8 +from ctypes import c_ulong +from ctypes import c_ushort +from ctypes import sizeof +from ctypes import Structure +from enum import Enum +from typing import Any +from typing import Dict +from typing import List +from typing import NamedTuple +from typing import Optional +from typing import Union + +from atf_python.sys.netpfil.ipfw.insn_headers import IpFwOpcode +from atf_python.sys.netpfil.ipfw.insn_headers import IcmpRejectCode +from atf_python.sys.netpfil.ipfw.insn_headers import Icmp6RejectCode +from atf_python.sys.netpfil.ipfw.utils import AttrDescr +from atf_python.sys.netpfil.ipfw.utils import enum_or_int +from atf_python.sys.netpfil.ipfw.utils import enum_from_int +from atf_python.sys.netpfil.ipfw.utils import prepare_attrs_map + + +insn_actions = ( + IpFwOpcode.O_CHECK_STATE.value, + IpFwOpcode.O_REJECT.value, + IpFwOpcode.O_UNREACH6.value, + IpFwOpcode.O_ACCEPT.value, + IpFwOpcode.O_DENY.value, + IpFwOpcode.O_COUNT.value, + IpFwOpcode.O_NAT.value, + IpFwOpcode.O_QUEUE.value, + IpFwOpcode.O_PIPE.value, + IpFwOpcode.O_SKIPTO.value, + IpFwOpcode.O_NETGRAPH.value, + IpFwOpcode.O_NGTEE.value, + IpFwOpcode.O_DIVERT.value, + IpFwOpcode.O_TEE.value, + IpFwOpcode.O_CALLRETURN.value, + IpFwOpcode.O_FORWARD_IP.value, + IpFwOpcode.O_FORWARD_IP6.value, + IpFwOpcode.O_SETFIB.value, + IpFwOpcode.O_SETDSCP.value, + IpFwOpcode.O_REASS.value, + IpFwOpcode.O_SETMARK.value, + IpFwOpcode.O_EXTERNAL_ACTION.value, +) + + +class IpFwInsn(Structure): + _fields_ = [ + ("opcode", c_uint8), + ("length", c_uint8), + ("arg1", c_ushort), + ] + + +class BaseInsn(object): + obj_enum_class = IpFwOpcode + + def __init__(self, opcode, is_or, is_not, arg1): + if isinstance(opcode, Enum): + self.obj_type = opcode.value + self._enum = opcode + else: + self.obj_type = opcode + self._enum = enum_from_int(self.obj_enum_class, self.obj_type) + self.is_or = is_or + self.is_not = is_not + self.arg1 = arg1 + self.is_action = self.obj_type in insn_actions + self.ilen = 1 + self.obj_list = [] + + @property + def obj_name(self): + if self._enum is not None: + return self._enum.name + else: + return "opcode#{}".format(self.obj_type) + + @staticmethod + def get_insn_len(data: bytes) -> int: + (opcode_len,) = struct.unpack("@B", data[1:2]) + return opcode_len & 0x3F + + @classmethod + def _validate_len(cls, data, valid_options=None): + if len(data) < 4: + raise ValueError("opcode too short") + opcode_type, opcode_len = struct.unpack("@BB", data[:2]) + if len(data) != ((opcode_len & 0x3F) * 4): + raise ValueError("wrong length") + if valid_options and len(data) not in valid_options: + raise ValueError( + "len {} not in {} for {}".format( + len(data), valid_options, + enum_from_int(cls.obj_enum_class, data[0]) + ) + ) + + @classmethod + def _validate(cls, data): + cls._validate_len(data) + + @classmethod + def _parse(cls, data): + insn = IpFwInsn.from_buffer_copy(data[:4]) + is_or = (insn.length & 0x40) != 0 + is_not = (insn.length & 0x80) != 0 + return cls(opcode=insn.opcode, is_or=is_or, is_not=is_not, arg1=insn.arg1) + *** 1231 LINES SKIPPED *** From nobody Tue Jun 13 11:55:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgRp74Sphz4d1qy; Tue, 13 Jun 2023 11:55:43 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgRp72tmcz3MVj; Tue, 13 Jun 2023 11:55:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686657343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wnZpI/mqOvk7qHD8myE6jJaUo6/Mf7CV8jrOOWVh5iU=; b=E5r2hyZMDyEyAnOxW9BC5nUSgWIPLHD//vB5Iw2z5dld2VliOHVYReYl1tRrDld7SpNkax ERC61FsztZ6WA04OVQaeIZE7mQ87/tDuXviF29yc9ZexSPwBR9UwiSX9fEAJtcI9Hd4I2v ruFt5pQI2iPcYxMn4OQptY1YqLOrKZOYUkA+rsP7uU81KUaiz0UtfsgPoI+SEFYK9cMnQ3 +8AZS8Hxfe3z/sLBoPXSYBIdYMq8tjvnNLz0tOzxGLjVRCxRXNhsFh9yoAJkMeLNG35i8O O9EiH94dvDSyhPIviFspwMZMI45mvnyCr4C5rVDn4QznOXuxhakfO8y5AI5/MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686657343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wnZpI/mqOvk7qHD8myE6jJaUo6/Mf7CV8jrOOWVh5iU=; b=sipxNWhQgR/w8WAeXr8z6CCft5AIGzbZzdvTg2OMNQn56UZ6kzL1Kcu3QKmhkVomb/rHN+ uDkrQWK++918WZ3AdpV9N14RRM0NCjFJ25zAqr/203GueoVfq5R8wJMlKykhXZ+VqpU62L 2AYegovN37CIeSjpVOrjzJhtcONG+Bfl/cmyidSeLIs8Ev+8BXbptDOLj8EqaYpV4/4sFp u2DASxj7SvsY2oPnLpPDXGEEBhoN8vjUqHJHDnuu0PfBQf/ylY/TK9e7VovL4v+9KJBVPM AWdpP27P4ZIzR84kmM+j8CRGNH+0PuohD4j9+wiJBloTFPYZva5S8QYIqI96+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686657343; a=rsa-sha256; cv=none; b=slkQRZtXZiq32NO1OhZZWPnxzXC93KapgISdLplm9Nh4lxG6n9Iq0iHZHMdXaCe131HK7z ZVYjC0Afge/BfihxXvt7USSAEX7H0dPq5ITMo1lEJ7VDv64gzltxprSotmjXgXNA7zT4Td EcljaFSiMvb4QPP0GjEeIBKRI6mCaehtNC+4VbvRlwdQ9qJRUcKSCi/A5whtxrRoH8Uu+I XxCkPZeT9cSeA/h0f1Iw6pKqGFFsHPnYJ0LErm7mHsXGZdkAJtr20bfdlDURLrU+r9R9ZR 4kv28JIH6OehF+RgP+zlQOdrOp2Lr9m2qC3/Mmq7u6jQdF/9SiRnqQVuLBRMrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgRp71bfGzLl1; Tue, 13 Jun 2023 11:55:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DBthRU075996; Tue, 13 Jun 2023 11:55:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DBthMK075995; Tue, 13 Jun 2023 11:55:43 GMT (envelope-from git) Date: Tue, 13 Jun 2023 11:55:43 GMT Message-Id: <202306131155.35DBthMK075995@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 6a9cfebaf1cf - main - ipfw: simplify action case parser List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6a9cfebaf1cfee2ff39fb5ea1e7077aab423c3f6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=6a9cfebaf1cfee2ff39fb5ea1e7077aab423c3f6 commit 6a9cfebaf1cfee2ff39fb5ea1e7077aab423c3f6 Author: Alexander V. Chernikov AuthorDate: 2023-06-07 08:31:52 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 11:55:37 +0000 ipfw: simplify action case parser Remove "goto charg" from the action parser. This is a prerequisite for the further split of the gigantic compile_rule(). Differential Revision: https://reviews.freebsd.org/D40490 MFC after: 2 weeks --- sbin/ipfw/ipfw2.c | 106 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 74 insertions(+), 32 deletions(-) diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index 36f39beba5bb..a711514cb5dc 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -3937,6 +3937,53 @@ add_dst(ipfw_insn *cmd, char *av, u_char proto, int cblen, struct tidx *tstate) return ret; } +static inline int +arg_or_targ_relaxed(const char *arg, const char *action) +{ + uint32_t arg1 = (uint32_t)(-1); + + if (arg == NULL) + errx(EX_USAGE, "missing argument for %s", action); + if (isdigit(arg[0])) { + arg1 = strtoul(arg, NULL, 10); + if (arg1 <= 0 || arg1 >= IP_FW_TABLEARG) + errx(EX_DATAERR, "illegal argument %s(%u) for %s", + arg, arg1, action); + } else if (_substrcmp(arg, "tablearg") == 0) + arg1 = IP_FW_TARG; + return (arg1); +} + +static inline uint16_t +arg_or_targ(const char *arg, const char *action) +{ + uint32_t arg1 = arg_or_targ_relaxed(arg, action); + + if (arg1 == (uint32_t)(-1)) + errx(EX_DATAERR, "illegal argument %s(%u) for %s", + arg, arg1, action); + return (arg1); +} + +static void +fill_divert_port(ipfw_insn *cmd, char *arg, const char *action) +{ + uint32_t arg1 = arg_or_targ_relaxed(arg, action); + + if (arg1 != (uint32_t)(-1)) { + cmd->arg1 = arg1; + return; + } + + struct servent *s; + setservent(1); + s = getservbyname(arg, "divert"); + if (s != NULL) + cmd->arg1 = ntohs(s->s_port); + else + errx(EX_DATAERR, "illegal divert/tee port"); +} + /* * Parse arguments and assemble the microinstructions which make up a rule. * Rules are added into the 'rulebuf' and then copied in the correct order @@ -4126,55 +4173,50 @@ compile_rule(char *av[], uint32_t *rbuf, int *rbufsize, struct tidx *tstate) action->opcode = O_NAT; action->len = F_INSN_SIZE(ipfw_insn_nat); CHECK_ACTLEN; - if (*av != NULL && _substrcmp(*av, "global") == 0) { + if (*av != NULL && _substrcmp(*av, "global") == 0) action->arg1 = IP_FW_NAT44_GLOBAL; - av++; - break; - } else - goto chkarg; + else + action->arg1 = arg_or_targ(av[0], *(av - 1)); + av++; + break; case TOK_QUEUE: action->opcode = O_QUEUE; - goto chkarg; + action->arg1 = arg_or_targ(av[0], *(av - 1)); + av++; + break; case TOK_PIPE: action->opcode = O_PIPE; - goto chkarg; + action->arg1 = arg_or_targ(av[0], *(av - 1)); + av++; + break; case TOK_SKIPTO: action->opcode = O_SKIPTO; - goto chkarg; + action->arg1 = arg_or_targ(av[0], *(av - 1)); + av++; + break; case TOK_NETGRAPH: action->opcode = O_NETGRAPH; - goto chkarg; + action->arg1 = arg_or_targ(av[0], *(av - 1)); + av++; + break; case TOK_NGTEE: action->opcode = O_NGTEE; - goto chkarg; + action->arg1 = arg_or_targ(av[0], *(av - 1)); + av++; + break; case TOK_DIVERT: action->opcode = O_DIVERT; - goto chkarg; + fill_divert_port(action, av[0], *(av - 1)); + av++; + break; case TOK_TEE: action->opcode = O_TEE; - goto chkarg; + fill_divert_port(action, av[0], *(av - 1)); + av++; + break; case TOK_CALL: action->opcode = O_CALLRETURN; -chkarg: - if (!av[0]) - errx(EX_USAGE, "missing argument for %s", *(av - 1)); - if (isdigit(**av)) { - action->arg1 = strtoul(*av, NULL, 10); - if (action->arg1 <= 0 || action->arg1 >= IP_FW_TABLEARG) - errx(EX_DATAERR, "illegal argument for %s", - *(av - 1)); - } else if (_substrcmp(*av, "tablearg") == 0) { - action->arg1 = IP_FW_TARG; - } else if (i == TOK_DIVERT || i == TOK_TEE) { - struct servent *s; - setservent(1); - s = getservbyname(av[0], "divert"); - if (s != NULL) - action->arg1 = ntohs(s->s_port); - else - errx(EX_DATAERR, "illegal divert/tee port"); - } else - errx(EX_DATAERR, "illegal argument for %s", *(av - 1)); + action->arg1 = arg_or_targ(av[0], *(av - 1)); av++; break; From nobody Tue Jun 13 12:24:37 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgSRT5C7Nz4dBLK; Tue, 13 Jun 2023 12:24:37 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgSRT4n1sz3hlT; Tue, 13 Jun 2023 12:24:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686659077; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8hCxoC/Tu76u6j8fXP7tqD8UyF/1xCpT033UAdBQ1/A=; b=InoQ42u3lD4M+KFJ30J4tHkJQxUwWYeWkXLNe9FD378yPv2RXTUs4a6AN21kmex4ap1Oz5 TBFz8o0PxN34sXd2X3BiFeesIdovRKllmptFHgZocNfoZa4N+pPI7iVewEozLQIYJi7TvE 7PsohwSDOb/cpxuOiY9UVU9SCHTY8NtiE8zCUom0qW0joaPFdKaXZlP5OF81wxJEBDjWfm YIu6KQ6LR4mwTLBeJAgCluur5qMtCp0D5JXPOebAVYjfWAUevOMgjNuprp31AxcO8tK1ly I7FOL3Hvxd393yaz1k8nTmataOMLyEmGEQm5E6s9X4kZEX/j6WagWzNP2VnmOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686659077; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8hCxoC/Tu76u6j8fXP7tqD8UyF/1xCpT033UAdBQ1/A=; b=IgNVn1xA33AWADwGdlGeFkX3qL2RhcfjUz9N7CU7l63pZoLMJyXu5gBdbMIr028VOHv8sV /AoNJL3dQX3QhhHPneM6aQvr3DeSIvf3B6Ha3ritJvjSTV8VShXL87rMyCDVl2UHg45CUv dgHgSUGcReLRrl84q4WsNlktNj7FAKxCKjB+ZU6w5cHC5rQWG8c0MZDs3ec4vOoSSv4jRH WxePQgxCLG2jJBtXkfU5WoJAdebWC6ZbUkZfjdjMFkNjxXdN3AsDjw1wq6y1ycEZ07Vc2g 5kxbBE10jdOhhvj59adV5lB7HPul6kWZ4N2tL4/Awn6ZxPT/gzPRedw/KzJXFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686659077; a=rsa-sha256; cv=none; b=IY2v9xDbb3IWwyoK1onOw/YhOEuEEulH9rUoTj7fWL1TVRfPmg9rYJcQxIKAoqBh7WMGQ5 AjN08YV5lfMveSmb4M0yVVv1rSAzfbRm4pZ6mhLoO57eZXYtkHSgpiezX+6KMaM/USn/df jk9f+mrx4UoMN8d4/clqfqJ6PLLNCyjqJIConXK0z8u/nur1T2JvBf8A2/AsI/dU3wIiWt TGabscD6KIEuyHk1SNkD5lILowHlFQO1O2ui/GuFJp4/tEj/XjiX02uG0lB372Hl9VMnlI PEvnKt5IrU4aYkScSZSUe0WphQopyUplYWGgGyO5AwydU+hGcO1bv/b7wK9EJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgSRT3rdgzMmP; Tue, 13 Jun 2023 12:24:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DCObDP026164; Tue, 13 Jun 2023 12:24:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DCObWI026163; Tue, 13 Jun 2023 12:24:37 GMT (envelope-from git) Date: Tue, 13 Jun 2023 12:24:37 GMT Message-Id: <202306131224.35DCObWI026163@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin Subject: git: 861abdadf9db - main - namei: Add a comment explaining ISRESTARTED flag List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 861abdadf9db4dd7ba577537ba262fcda29869dd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=861abdadf9db4dd7ba577537ba262fcda29869dd commit 861abdadf9db4dd7ba577537ba262fcda29869dd Author: Dmitry Chagin AuthorDate: 2023-06-13 12:22:09 +0000 Commit: Dmitry Chagin CommitDate: 2023-06-13 12:22:09 +0000 namei: Add a comment explaining ISRESTARTED flag Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D40494 --- sys/kern/vfs_lookup.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index c813296b4931..20919fb38b4d 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -81,6 +81,11 @@ static void NDVALIDATE_impl(struct nameidata *, int); #define NDVALIDATE(ndp) #endif +/* + * Prepare namei() to restart. Reset components to its original state and set + * ISRESTARTED flag which signals the underlying lookup code to change the root + * from ABI root to actual root and prevents a further restarts. + */ #define NDRESTART(ndp) do { \ NDREINIT_DBG(ndp); \ ndp->ni_resflags = 0; \ From nobody Tue Jun 13 12:24:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgSRV629xz4dBCl; Tue, 13 Jun 2023 12:24:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgSRV5Zhfz3hrJ; Tue, 13 Jun 2023 12:24:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686659078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TxJKryDRhkOmUjtuwX4M08B+aLHKjhcz8W97PDC9xpI=; b=jQM54V9MsuR90hU0DTXFZlDKQHNbL3VpFd3CBKnInCqGem51nZz0CJdbk/l+oP2hVDbAQ6 DAixLBYh/UXaexc+eVCmy52Ibo99/1RvRvdwZM79SLyJOQFn8GA2rMzH2h/MtJBj/K4q4G p00Phw0qArjv6XgSe2J0bwpPIxVkaouZVVBcN0UBzh35ha2QPpQMW9StN8I78mMYXyXul5 vvPFwCXYSwwGr9XtYQGOlJr/25Fi/xlgFyIFYhLQUQY/W6W55t3yKDP7hEevxbbD90tAwd k/JHaANtK6o49jsvYPVInqKDbXSGHktG/L6gPwblNH5A1JIPyvqeV8iFyLp3pQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686659078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TxJKryDRhkOmUjtuwX4M08B+aLHKjhcz8W97PDC9xpI=; b=iWnIAACXEWqvnlzmDbXSdS3ZOxjqiuft51ob7bxPrbbnLFgNykiwlH1PcUxUI0rtWb6gCD HDaGaB6DjKldaMyIp11lbS0aYRjb0cm4dPkXPToGO65dv6HGtBh8J4GM2jnM5bHS+KOdrS N1AWsduDCxfRTpxo9fr4mMu3OOoSc4Yhj5+xrmU/UAEiCyXIBAWSwYPtqDFEpGyZAJYLNV qKGyKfgCr0XEYWaDq4UxdtyhGIuWbElPH0KHr/IT8xAF+DoqH+v9DA0GJ/qBaH4Dum889G xFqAsBX2N4KhwWy4pbcGruL8RN1P0SyTrNZGXCTtXsfuIgCfry4Fct2hlONVUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686659078; a=rsa-sha256; cv=none; b=WaM+LpjX6CEDzooTD804bPwW5wXzmDqUl9WpK4XnGJdqBhvIK2Q3rQkcbFPBrUjhUaLUdv bS1c42JpvmhmxDPna/6rTVA9zo1SoC5uW5q+sgFYbOae8SIndY6NpanJvWTHb5hn5zYKoi kMvBCepKTozV5vL3Ui1w7ddFYdEDgvGvOnZ00s8Gp48Caz8OZ7lWwYk5w1UlyVEEoIeKud w5IDuiyl8Ct+RAVSPgEOJe17fQu2qPG/yneetluNWG8VfDalcM7JRzKSjCzy17x+scNA0e PjTVzJefyxRDKq714uyuHhFEi7MLfAIIfIDdC+1prtLxmN2zY8W5tjBvLuqYWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgSRV4N4LzMd4; Tue, 13 Jun 2023 12:24:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DCOcic026183; Tue, 13 Jun 2023 12:24:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DCOcJ9026182; Tue, 13 Jun 2023 12:24:38 GMT (envelope-from git) Date: Tue, 13 Jun 2023 12:24:38 GMT Message-Id: <202306131224.35DCOcJ9026182@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Chagin Subject: git: cea7c564c70a - main - namei: Reset the lookup to start from the real root for abs symlink target List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cea7c564c70aa660d833e9a571aaca4119c0b714 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=cea7c564c70aa660d833e9a571aaca4119c0b714 commit cea7c564c70aa660d833e9a571aaca4119c0b714 Author: Dmitry Chagin AuthorDate: 2023-06-13 12:24:25 +0000 Commit: Dmitry Chagin CommitDate: 2023-06-13 12:24:25 +0000 namei: Reset the lookup to start from the real root for abs symlink target Since fd745e1d Linux ABI specifies alternative root directory to reroot lookups. First, an attempt is made to lookup the file in /ABI/original-path. If that fails, the lookup is done in /original-path. In case of lookup symbolic link with leading / in target namei() fails due to reroot reloads original file name. To avoid this handle restart in a special maner, without origin path name reloading. Reported by: Goran Mekić, Vincent Milum Jr Tested by: Goran Mekić Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D40479 --- sys/kern/vfs_lookup.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c index 20919fb38b4d..dd6282a45d97 100644 --- a/sys/kern/vfs_lookup.c +++ b/sys/kern/vfs_lookup.c @@ -721,6 +721,14 @@ restart: */ cnp->cn_nameptr = cnp->cn_pnbuf; if (*(cnp->cn_nameptr) == '/') { + /* + * Reset the lookup to start from the real root without + * origin path name reloading. + */ + if (__predict_false(ndp->ni_rootdir != pwd->pwd_rdir)) { + cnp->cn_flags |= ISRESTARTED; + ndp->ni_rootdir = pwd->pwd_rdir; + } vrele(dp); error = namei_handle_root(ndp, &dp); if (error != 0) From nobody Tue Jun 13 12:46:57 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgSxF5wW8z4dK17; Tue, 13 Jun 2023 12:46:57 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgSxF5R1Lz3lqb; Tue, 13 Jun 2023 12:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686660417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GO3puQrBv48lb5x7L1IaLe0MUfTHMzxXg4yBlYecpLU=; b=MKRVbbR4dGirZDlrfMXf5BPzKfgD2i3WguCKOydp9gX+XEAlJMY9OP1wzI/DOdpDGL3e2x LfxX0kmjvG0XsNhvO/zZZ29+pIwc2J7hMIypHR20DYE9uCED4trt9wwusZYHsOa1Pk0nw2 vsRqRnxOaMvEguVqTa9AAN0t156RWtTI4h3oNVVJ/S5bFXz/IJBw8fAJdLR5ZbSSqeH4n1 ebo+2OGPj15zaJmWuQDqnukTE514sNSGgGZXmmCNT4SOHFrSAvW0Kpc5HOl4V1xNqfKbWS JSI1jB0B8txlgH9RSrF5MT209jl6mbJw85o4DENOb7WAmMPDA/xpcrjfhtDOxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686660417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GO3puQrBv48lb5x7L1IaLe0MUfTHMzxXg4yBlYecpLU=; b=tpj0Net9IZwuzMEI3eBWT32cXy7fOD2akgqtVm4tdqi/GtYpAzu0jnBt3uYQnIge5vDE8d MXLuHOLmzNIwLFD9d9YH+S7uUXtzTr1+ffMhoVk02rgEgSqp/7BiUI88LRnS7n/0YST3l9 +5KRCGCCXibr+cYcaspzIwW0C4lTIORee9X+ZST7w2JJTsFSfxcdqs68y2petfURnC5fGj 2AiTB/7ChJ2DMjzc4Tm9X8oSxLM4SyF9H4mEzo/xf/uktbA6pZCezIFZoId+NUhyQaExgA dl7gNkw1xt0SABxhT8252pQaIwwoVtMXULQyeenEAuD1UKrGNKcUcgvqkx4pGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686660417; a=rsa-sha256; cv=none; b=ZwXo6DC/Df92iStPlQZTQgY5vYYSmn3fz/s5ssqQeNtf1raLbtqGyYvTIVpTuPmEQXsMCL LumkavVvk0Qz+0kChwqNBQfGqQsqFDInxNFxqGu/DjAOkcyDppJST8erUZHbO98ZajD65/ CWtswngxViUXco62s3KVvS/N/xLJ8pjSVbVOCGwjVOJxHGoZmTwEJOJG+inABzQhTc2LCV KF/SQ07rV6HjxkeTqVO+MFfURUzRj4RuZw24REKUtjHt/rFbkYW4c9SH6p42YIu4L5LuiN sfpUmGkQL78cfkQ8mmz8E70KRbntDDNbfMhfKDJpPIb8hdcbZbajqcwJSI8MYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgSxF4QRBzN7T; Tue, 13 Jun 2023 12:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DCkvfN058755; Tue, 13 Jun 2023 12:46:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DCkv8j058754; Tue, 13 Jun 2023 12:46:57 GMT (envelope-from git) Date: Tue, 13 Jun 2023 12:46:57 GMT Message-Id: <202306131246.35DCkv8j058754@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: 0fbe78cdba42 - main - proc.h: capitalize letter in TD_LOCKS_DEC List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0fbe78cdba42a04a29930c68570c7ac0c3ff1bc7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=0fbe78cdba42a04a29930c68570c7ac0c3ff1bc7 commit 0fbe78cdba42a04a29930c68570c7ac0c3ff1bc7 Author: Christos Margiolis AuthorDate: 2023-06-13 12:46:20 +0000 Commit: Christos Margiolis CommitDate: 2023-06-13 12:46:20 +0000 proc.h: capitalize letter in TD_LOCKS_DEC The other related macros capitalize "thread" as well, so use the same style. No functional change intended. Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40506 --- sys/sys/proc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/proc.h b/sys/sys/proc.h index d4c5680ba5ed..ca3911e9db66 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -430,7 +430,7 @@ do { \ #define TD_LOCKS_INC(td) ((td)->td_locks++) #define TD_LOCKS_DEC(td) do { \ KASSERT(SCHEDULER_STOPPED_TD(td) || (td)->td_locks > 0, \ - ("thread %p owns no locks", (td))); \ + ("Thread %p owns no locks", (td))); \ (td)->td_locks--; \ } while (0) #else From nobody Tue Jun 13 12:46:58 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgSxG6dd0z4dJx9; Tue, 13 Jun 2023 12:46:58 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgSxG6Cnnz3m18; Tue, 13 Jun 2023 12:46:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686660418; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCNXC4qw4wkzfylfYhwsUCyqNTnZMUUU6IvXQEfCYbM=; b=qr28cZ2VTl/J45QAFnHvLOZS/7W4+PuXuI941/22N2iD9L9DN3Sxdp+7+IW+kcAvGlRTAI JUMowI/rNncQfGiLvIg/a2GPl1FgnraauQIsUVXuIYZL5HMdQ5V782BaE1SHrNKwzg/Uty 1/FujH98kdG1/fptvjnzCzp6aiyFrBidah5UffmlQYFY0VpJn9qj0rKGbv4IsZdy1ljDHd 5aINleQ3UUo7B5BYc6HvQNfa60U/Do+oNiwpuraDY/AFptWsKrvWlueso99BCZhhKeOVzU dji43xqgKLt0Jx44CfzC9hvR27pebB1yQ2AWchX+rCNWY93BI6VdPfIBYEToVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686660418; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCNXC4qw4wkzfylfYhwsUCyqNTnZMUUU6IvXQEfCYbM=; b=ngyhBN04AHvF4EnX3lBNCosZyASo1qEi8OKY1OUpnHel3z5QOeX4r4sjXrXDK66GQqB9AY TMtsp0Z0YFOgErXpLKgADYFbhPGnKaXmV1nRlBJOu8jJa5padXYY9mGNnC/T8Xhs7axgj3 JFgUJM0hYDPfq2/kfymKaWqtm0lNGFURqPD7IVIVW5WIkGaVvLN7E50v5S/1R5T2YGkcyJ THTVehEyWBMdfiPGVDJGkHDdoCxqn0bdOCh85wdL3JXbsQx/QbTTyvMd6oUHTI/6QM5bsI Yw4/W42r8EroFO6nCoiVw+ATieNBVkLncai/LnexpmZYxs3qdQFlrvUIQLavkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686660418; a=rsa-sha256; cv=none; b=kaOeONSYZfh6f6DuE7bI8BED7DRvf+tegEA8DH1HOtO3p6ZS5E9TPbDr2v7mPIc3cNgYbI xUqb9E5Gem0jSnhyzUpzyKhNPCGqn66nVKBuYhIjAKJ8b94BF7WrAvihlna1O83Pg/kvTP FGL4M5c+A9TaLfyC8eqXfBf9y5FHgVLL/7LMHXVKysRahxhfBARdGuPWACnKes7vnFaBtw TKFC71x2saEAiwVp5GlwrONTgxX9YtR5hz6JAKxfkDV7ljFHxua2Q/lLDoQ06xa+zaNHmd atmDN4p7VfOggq7Pvq0cAX0HFuTBTgEeWCdgZN+/5UZ0c215JHa0c2nbHO3EDQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgSxG5KKCzN9v; Tue, 13 Jun 2023 12:46:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DCkwnj058774; Tue, 13 Jun 2023 12:46:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DCkwS7058773; Tue, 13 Jun 2023 12:46:58 GMT (envelope-from git) Date: Tue, 13 Jun 2023 12:46:58 GMT Message-Id: <202306131246.35DCkwS7058773@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: 333731274fa3 - main - kinst: hide KINST_TRAMPCHUNK_SIZE from ISA-specific headers List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 333731274fa3e0856c66fd3509dea7113ddaa983 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=333731274fa3e0856c66fd3509dea7113ddaa983 commit 333731274fa3e0856c66fd3509dea7113ddaa983 Author: Christos Margiolis AuthorDate: 2023-06-13 12:46:33 +0000 Commit: Christos Margiolis CommitDate: 2023-06-13 12:46:33 +0000 kinst: hide KINST_TRAMPCHUNK_SIZE from ISA-specific headers Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40505 --- sys/cddl/dev/kinst/amd64/kinst_isa.h | 1 - sys/cddl/dev/kinst/trampoline.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/cddl/dev/kinst/amd64/kinst_isa.h b/sys/cddl/dev/kinst/amd64/kinst_isa.h index 6e8eb10fb71c..4e5873628b75 100644 --- a/sys/cddl/dev/kinst/amd64/kinst_isa.h +++ b/sys/cddl/dev/kinst/amd64/kinst_isa.h @@ -18,7 +18,6 @@ * to 16 bytes, 32 bytes is enough to cover even the worst case scenario. */ #define KINST_TRAMP_SIZE 32 -#define KINST_TRAMPCHUNK_SIZE PAGE_SIZE typedef uint8_t kinst_patchval_t; diff --git a/sys/cddl/dev/kinst/trampoline.c b/sys/cddl/dev/kinst/trampoline.c index 5c8c27343201..93eca6b7e6c8 100644 --- a/sys/cddl/dev/kinst/trampoline.c +++ b/sys/cddl/dev/kinst/trampoline.c @@ -31,6 +31,7 @@ #define KINST_TRAMP_FILL_PATTERN ((kinst_patchval_t []){KINST_PATCHVAL}) #define KINST_TRAMP_FILL_SIZE sizeof(kinst_patchval_t) +#define KINST_TRAMPCHUNK_SIZE PAGE_SIZE #define KINST_TRAMPS_PER_CHUNK (KINST_TRAMPCHUNK_SIZE / KINST_TRAMP_SIZE) struct trampchunk { From nobody Tue Jun 13 12:46:59 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgSxJ0ZFSz4dK33; Tue, 13 Jun 2023 12:47:00 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgSxH6rMnz3m92; Tue, 13 Jun 2023 12:46:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686660420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wk+kFxtj+CjDs5UguoGWsWbvfOJ2TeKUGFqo3lZ0f0w=; b=IlPtnBBuwZ2JclpC+cBNo/LOk35Qrc2wBMIj7Bl0Gt107faQxrSYSWirE7Ghdhe2ZCFVAu FQXjBBQXZmpliaTqddSYM9fVsUjvN42Eq0I+MY5gHtq8r8xsn7QCSwhoZv2wOuXhKJU11T ytSAVJBE+a4La27bNxJNEfiq70LH28nynIUUsFtbrrzFHs+V8sEdpWqRAhusIcurKxxKj+ /CJ/y8DKXdwoy9piK2Kb/RlkdWx/Xuu10GkURAzsiyjDuTer/HaNf9boCgt0yp6sjyyczS EN9OYTSfHkR8AS4LJ29C6inzdNo2NxmdZhzUFhV2DezMfN9bAFbNya6SDyxgkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686660420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wk+kFxtj+CjDs5UguoGWsWbvfOJ2TeKUGFqo3lZ0f0w=; b=g0usjLZB8VCi9I891vmQscAtlguJvZiKKe3lZGu6U8cEaQZmdtoxsWH/9FIQ8gxlUAHEA8 KvTUI3Np4dlLsWjkxGmMEQ+x62eY9joGt1SXetKvdbqBeJsbQuBK7SObepZUfDaGGA66v+ xV3k+gkxy2AanbZJRK+3Tb96WttKBX0uAxuUM5ciWINvOExf8TnZ4PRAjIptD8j6jftjkJ uma4E0nMYGnPy1H2nnkSLc0WkDC/28yhNaBOXce/16LQk9wa/cZFSmw2iK26IRtiIuH1S/ kcwRtveAOS1pbrnaChI7DlzdKY4eS0xM9089NXIGlmDHCOxbSMYFZWoI0+Xaow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686660420; a=rsa-sha256; cv=none; b=xF9Q4/BnF29p3Uu9dU4h7ig2VpCR4YWdRDNO9ydlWAcr6GQvvJfdJlWUtPL+M0LXxeEO5R X9GpF9nI5ALpIUxAm6ipPksK+oZrMeAi7H2M991YqRp6LIfZCGzLBBViR75MX/A3lW1+KH SaOV8K2rmU04BHP9wR+/oE0+E5QcX6/lPRrAK8184XDQqbZ4ON8/He95Y4KCodLvDzUrVh hDEBPFvCRVcgY6Mctmxxq4x6okuw4yYk6Qr62y8VhynEvZ/pxxXzGLC0EsPqXfLpCBvW+O u7Y3E9cF+B3YJ6cWH1CaPNY+cITVn81kFVRW26su8vzzs5XSVoSbyvDSOq8YvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgSxH5v2hzN9w; Tue, 13 Jun 2023 12:46:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DCkxhf058802; Tue, 13 Jun 2023 12:46:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DCkxMx058801; Tue, 13 Jun 2023 12:46:59 GMT (envelope-from git) Date: Tue, 13 Jun 2023 12:46:59 GMT Message-Id: <202306131246.35DCkxMx058801@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: 1aa486218701 - main - kinst: rename t_kinst to t_kinst_tramp List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1aa48621870189d2865c3a4edf45267cc2d84aed Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=1aa48621870189d2865c3a4edf45267cc2d84aed commit 1aa48621870189d2865c3a4edf45267cc2d84aed Author: Christos Margiolis AuthorDate: 2023-06-13 12:46:45 +0000 Commit: Christos Margiolis CommitDate: 2023-06-13 12:46:45 +0000 kinst: rename t_kinst to t_kinst_tramp The forthcoming RISC-V and ARM64 ports of kinst introduce a new field named "t_kinst_curprobe", so "t_kinst" (which points to a trampoline) becomes a misleading name. No functional change intended. Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40507 --- sys/cddl/dev/dtrace/dtrace_cddl.h | 4 ++-- sys/cddl/dev/kinst/amd64/kinst_isa.c | 2 +- sys/cddl/dev/kinst/trampoline.c | 15 ++++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/sys/cddl/dev/dtrace/dtrace_cddl.h b/sys/cddl/dev/dtrace/dtrace_cddl.h index b2397d621355..720c231bfca8 100644 --- a/sys/cddl/dev/dtrace/dtrace_cddl.h +++ b/sys/cddl/dev/dtrace/dtrace_cddl.h @@ -88,7 +88,7 @@ typedef struct kdtrace_thread { void *td_systrace_args; /* syscall probe arguments. */ uint64_t td_fasttrap_tp_gen; /* Tracepoint hash table gen. */ struct trapframe *td_dtrace_trapframe; /* Trap frame from invop. */ - void *td_kinst; + void *td_kinst_tramp; } kdtrace_thread_t; /* @@ -118,7 +118,7 @@ typedef struct kdtrace_thread { #define t_dtrace_systrace_args td_dtrace->td_systrace_args #define t_fasttrap_tp_gen td_dtrace->td_fasttrap_tp_gen #define t_dtrace_trapframe td_dtrace->td_dtrace_trapframe -#define t_kinst td_dtrace->td_kinst +#define t_kinst_tramp td_dtrace->td_kinst_tramp #define p_dtrace_helpers p_dtrace->p_dtrace_helpers #define p_dtrace_count p_dtrace->p_dtrace_count #define p_dtrace_probes p_dtrace->p_dtrace_probes diff --git a/sys/cddl/dev/kinst/amd64/kinst_isa.c b/sys/cddl/dev/kinst/amd64/kinst_isa.c index f8bfad8fae60..76b590f271bf 100644 --- a/sys/cddl/dev/kinst/amd64/kinst_isa.c +++ b/sys/cddl/dev/kinst/amd64/kinst_isa.c @@ -197,7 +197,7 @@ kinst_invop(uintptr_t addr, struct trapframe *frame, uintptr_t scratch) if ((frame->tf_rflags & PSL_I) == 0) tramp = DPCPU_GET(intr_tramp); else - tramp = curthread->t_kinst; + tramp = curthread->t_kinst_tramp; if (tramp == NULL) { /* * A trampoline allocation failed, so this probe is diff --git a/sys/cddl/dev/kinst/trampoline.c b/sys/cddl/dev/kinst/trampoline.c index 93eca6b7e6c8..babbf84f1d88 100644 --- a/sys/cddl/dev/kinst/trampoline.c +++ b/sys/cddl/dev/kinst/trampoline.c @@ -219,7 +219,7 @@ kinst_trampoline_dealloc(uint8_t *tramp) static void kinst_thread_ctor(void *arg __unused, struct thread *td) { - td->t_kinst = kinst_trampoline_alloc(M_WAITOK); + td->t_kinst_tramp = kinst_trampoline_alloc(M_WAITOK); } static void @@ -227,8 +227,8 @@ kinst_thread_dtor(void *arg __unused, struct thread *td) { void *tramp; - tramp = td->t_kinst; - td->t_kinst = NULL; + tramp = td->t_kinst_tramp; + td->t_kinst_tramp = NULL; /* * This assumes that the thread_dtor event permits sleeping, which @@ -259,7 +259,7 @@ kinst_trampoline_init(void) retry: PROC_LOCK(p); FOREACH_THREAD_IN_PROC(p, td) { - if (td->t_kinst != NULL) + if (td->t_kinst_tramp != NULL) continue; if (tramp == NULL) { /* @@ -284,7 +284,7 @@ retry: goto retry; } } - td->t_kinst = tramp; + td->t_kinst_tramp = tramp; tramp = NULL; } PROC_UNLOCK(p); @@ -310,8 +310,9 @@ kinst_trampoline_deinit(void) FOREACH_PROC_IN_SYSTEM(p) { PROC_LOCK(p); FOREACH_THREAD_IN_PROC(p, td) { - kinst_trampoline_dealloc_locked(td->t_kinst, false); - td->t_kinst = NULL; + kinst_trampoline_dealloc_locked(td->t_kinst_tramp, + false); + td->t_kinst_tramp = NULL; } PROC_UNLOCK(p); } From nobody Tue Jun 13 13:54:23 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgVR33DBrz4cVST; Tue, 13 Jun 2023 13:54:23 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgVR32TQPz3xyD; Tue, 13 Jun 2023 13:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686664463; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JZobS4MBZX4I5Fl0uynT/K65j6LRfTnuuwYwgjbOvbs=; b=EcqOUt5zpH7nVkH71WLQL5dE89gUCOcwIAWRJq+mEhWMTa5l5kd1Z5XD3gcTsXLPNobAzh 428vi+b1kNZXqyijm7Ck2zl37ZxylG4xUdsqL8CFAc1xMUexezSwDFr5C0B8nNu8ygpWqL Pdnz/3xL/a3dM15SkkBj9oG3kBz2l/ctzUqgQ4tUAhBdRPlp7J8TpwhBF6yr12bMuZ9C4E ITwqs1BzMaWcgzw1a71biHYAhhvzVvfWoc4C0kRY/sxIXcM8gNzbGKFEaSFuzobIkDbMTA O++UcIPDbTI95WueL633WdVRxmHsupW3Z6Pi/m5QBLI4A8KKa+jhvetS8Htckw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686664463; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JZobS4MBZX4I5Fl0uynT/K65j6LRfTnuuwYwgjbOvbs=; b=UXH/d7g1UNsg+r8SW3O+zYpgzvCNtLp7n/nKWEe09S0iPMOkLHdhhiJxAnHL+8qj63JyTg FuBm7aiAommyyaqcUCxpsCqrzEbXamX7+v6mZpvsfxNjpbKGtWV8xRpxOQFnoK5Ep4EJiE GvBv6rbylVuJYJO75WXJ+NIMklrrmPuKghVlUmEaEzW1IclXw6D9kkygtQff0U5WFVr7wb 8NCmifcNiUy7bL78NrOlamzCMImcS1wNfV5L5/D6b6/Ia8LQUWrROBDkLP/w4J258uS1yT Si4HELjuv1HY1Pjnur0TcutkVCxgnswceDE/f5fe08/FGabuhAgQM8w7htIWxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686664463; a=rsa-sha256; cv=none; b=lJLv8XiSXBwsQrn7IVFNhQZnn4YKBeqPb1rAC0dAPxPgL6gaREAUgOdvcUxyI2OH8S9NUG uDm0GPmyUAIBj4QHxEWeHUQchaQWfyjQ1tUY9JguCwzRRZ1OOFETgNzm1kspCWVbRu3PPV RbdFdD5aeEm1JIRFtltmaBQO1sVLAAUdN4XuklMjprkbEY4Z4TMtunz2tpToIyKwSNR2Id cd4cZAi4p67f393mQOPLC6mmHaNU6qzinyfQ4Tvny6oMg+omm8yoK0Uui7Eih1/MOsylzY BUCpCY9O90STbPBEZE3yX3ADziU08kO9/VRHUD5xGnA5pAY4UqZalxN63p+6rQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgVR31SN5zQ4w; Tue, 13 Jun 2023 13:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DDsNW7073397; Tue, 13 Jun 2023 13:54:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DDsNYw073396; Tue, 13 Jun 2023 13:54:23 GMT (envelope-from git) Date: Tue, 13 Jun 2023 13:54:23 GMT Message-Id: <202306131354.35DDsNYw073396@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 081acb837cd3 - main - dummynet: remove unused field from dn_pkt_tag List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 081acb837cd33bad68f6e53c16dd26577131842c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=081acb837cd33bad68f6e53c16dd26577131842c commit 081acb837cd33bad68f6e53c16dd26577131842c Author: Kristof Provost AuthorDate: 2023-06-08 13:53:02 +0000 Commit: Kristof Provost CommitDate: 2023-06-13 13:51:47 +0000 dummynet: remove unused field from dn_pkt_tag ip6opt is never used, so remove it, slightly reducing memory use for each packet tag. Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/ipfw/ip_dn_private.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/netpfil/ipfw/ip_dn_private.h b/sys/netpfil/ipfw/ip_dn_private.h index a97b74a43897..6e7650b0c763 100644 --- a/sys/netpfil/ipfw/ip_dn_private.h +++ b/sys/netpfil/ipfw/ip_dn_private.h @@ -376,7 +376,6 @@ struct dn_pkt_tag { uint64_t output_time; /* when the pkt is due for delivery*/ uint16_t if_index; uint16_t if_idxgen; - struct _ip6dn_args ip6opt; /* XXX ipv6 options */ uint16_t iphdr_off; /* IP header offset for mtodo() */ }; From nobody Tue Jun 13 13:54:24 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgVR44t24z4cV8R; Tue, 13 Jun 2023 13:54:24 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgVR43dbgz3y8F; Tue, 13 Jun 2023 13:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686664464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TuUUxKpWsEjOvDDhMgs3yxxgfu9ak2y12/TeUHheT5I=; b=Q9VGqCy+zYkQ2VQBQWmcq/aR03FxMEszMnBitUkSLjvrfm4j1m5XU9Sr5nxUv5jsAAdluQ 7Ekvz0NNXjM4endNhQrftmW5yGv3BpPD+EJbuK4YRlGLrJb0plgFA7CW67rDBhGazGwzo6 1Pl2L8kyjRyb91NFIFknVg8qAuo3nk2bI8QP8kQxHxBVngwmIQhac183HhzFy2EbvaW06g u2xn8YOXm7rET9ncTFhI/vZg5Msuktt21pDSzrXTJXsQwIsdaJEXRNbiBeA3XXAwlfolRX df5uyaMvtRrk2QsTw5Bk8dv2VX2d6fwNSBZ6OJYftSKeE9qm3PyusO6ttDI6cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686664464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TuUUxKpWsEjOvDDhMgs3yxxgfu9ak2y12/TeUHheT5I=; b=CnbnCeRjNJAK1nm7knW4xkMLPxe73VpupSp+aJ//tsoz+/IPbIKQBSisRvWY7oqJ2M7i4h bPMdOocknuvALM1TQQtwZkRlsO4DlUiVFfUAFZynzaMRTU4OBcjm/p4Lh9u1XG9zxjTAdU 9bZsE7DU7IEWOIJIpXmg9OCGPpkEXRjEAyshlwr7s4mY+T9d045gSYrpeSfmcAAIPQXSnI A67AeHN3SLjx7zEoM5gDzaaTPdCsjtfcVr/GvPdi5SgrTvy1uT2rW3K7RaNvFomWrpRjBq zH+RwlJeY9p0rR3xCNNIEkhL8CYXmmvCvnpy+abrA5T+VpFpLrcTj4gkirQ2pw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686664464; a=rsa-sha256; cv=none; b=Likmmc8nxJABO8wWjgdIeUYusaJ1PVf3PFuNMWDJpw6cpKqvI/uAHpWyK8S/KXKZmsq+yD q+c5uUirpoiafJNTE6x/pDKAAI7rSw0ShfybcI8d+Pn3Q0aHTVfsX/oCZO98cnmmVicl9P azqWTJL6Vchf2v8NxNBNTgBWr3YMCVqtGozxBQUbTAhMT+guGxTyJKkIRFfNTv2CWg1pE7 iIIGZ9/CkLr+c1kiDdSytMx4bKwQVf4Rq4GmvkBveb/PtykdVgVNi1SA8RELTrr4gaPBq9 UnBECAy2B9QKUibty9u0agXKf1MdNNRnWcsUV3WR6gyOi0os8YlWAS9GQEcNmQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgVR42GK4zPtj; Tue, 13 Jun 2023 13:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DDsOHl073416; Tue, 13 Jun 2023 13:54:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DDsOq2073415; Tue, 13 Jun 2023 13:54:24 GMT (envelope-from git) Date: Tue, 13 Jun 2023 13:54:24 GMT Message-Id: <202306131354.35DDsOq2073415@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 0ba9cb5e710f - main - dummynet: fix wf2q use-after-free List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0ba9cb5e710f42fcbc5d710a606bfae5a7f90984 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=0ba9cb5e710f42fcbc5d710a606bfae5a7f90984 commit 0ba9cb5e710f42fcbc5d710a606bfae5a7f90984 Author: Kristof Provost AuthorDate: 2023-06-12 13:05:41 +0000 Commit: Kristof Provost CommitDate: 2023-06-13 13:51:47 +0000 dummynet: fix wf2q use-after-free When we clean up a wf2q+ queue we need to ensure that we remove it from the correct heap. If we leave a queue pointer behind in an unexpected heap we'll later write to it, causing a use-after-free and unpredictable panics. Teach the dummynet heap code to verify that we're removing the correct object so we can safely attempt to remove objects not contained in the heap. Remove a to-be-removed queue from all heaps. Also don't continue the enqueue function if we're not finding the queue on the idle heap as we'd expect. While here also remove the empty heap warning, because this is now expected to happen. See also: https://redmine.pfsense.org/issues/14433 Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/ipfw/dn_heap.c | 18 +++++++++++------- sys/netpfil/ipfw/dn_heap.h | 2 +- sys/netpfil/ipfw/dn_sched_wf2q.c | 14 ++++++-------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/sys/netpfil/ipfw/dn_heap.c b/sys/netpfil/ipfw/dn_heap.c index d1c386e48697..bc6b9c142dc2 100644 --- a/sys/netpfil/ipfw/dn_heap.c +++ b/sys/netpfil/ipfw/dn_heap.c @@ -178,14 +178,13 @@ heap_insert(struct dn_heap *h, uint64_t key1, void *p) /* * remove top element from heap, or obj if obj != NULL */ -void +bool heap_extract(struct dn_heap *h, void *obj) { int child, father, max = h->elements - 1; if (max < 0) { - printf("--- %s: empty heap 0x%p\n", __FUNCTION__, h); - return; + return false; } if (obj == NULL) father = 0; /* default: move up smallest child */ @@ -194,11 +193,14 @@ heap_extract(struct dn_heap *h, void *obj) panic("%s: extract from middle not set on %p\n", __FUNCTION__, h); father = *((int *)((char *)obj + h->ofs)); - if (father < 0 || father >= h->elements) { - panic("%s: father %d out of bound 0..%d\n", - __FUNCTION__, father, h->elements); - } + if (father < 0 || father >= h->elements) + return false; } + /* We should make sure that the object we're trying to remove is + * actually in this heap. */ + if (obj != NULL && h->p[father].object != obj) + return false; + /* * below, father is the index of the empty element, which * we replace at each step with the smallest child until we @@ -223,6 +225,8 @@ heap_extract(struct dn_heap *h, void *obj) h->p[father] = h->p[max]; heap_insert(h, father, NULL); } + + return true; } #if 0 diff --git a/sys/netpfil/ipfw/dn_heap.h b/sys/netpfil/ipfw/dn_heap.h index f50ffdef33eb..4ae1c1cb8750 100644 --- a/sys/netpfil/ipfw/dn_heap.h +++ b/sys/netpfil/ipfw/dn_heap.h @@ -102,7 +102,7 @@ enum { #define SET_HEAP_OFS(h, n) do { (h)->ofs = n; } while (0) int heap_init(struct dn_heap *h, int size, int ofs); int heap_insert(struct dn_heap *h, uint64_t key1, void *p); -void heap_extract(struct dn_heap *h, void *obj); +bool heap_extract(struct dn_heap *h, void *obj); void heap_free(struct dn_heap *h); int heap_scan(struct dn_heap *, int (*)(void *, uintptr_t), uintptr_t); diff --git a/sys/netpfil/ipfw/dn_sched_wf2q.c b/sys/netpfil/ipfw/dn_sched_wf2q.c index 7f81c0a098f1..5b69eb083d7f 100644 --- a/sys/netpfil/ipfw/dn_sched_wf2q.c +++ b/sys/netpfil/ipfw/dn_sched_wf2q.c @@ -157,7 +157,8 @@ wf2qp_enqueue(struct dn_sch_inst *_si, struct dn_queue *q, struct mbuf *m) si->wsum += fs->fs.par[0]; /* add weight of new queue. */ si->inv_wsum = ONE_FP/si->wsum; } else { /* if it was idle then it was in the idle heap */ - heap_extract(&si->idle_heap, q); + if (! heap_extract(&si->idle_heap, q)) + return 1; alg_fq->S = MAX64(alg_fq->F, si->V); /* compute new S */ } alg_fq->F = alg_fq->S + len * alg_fq->inv_w; @@ -338,13 +339,10 @@ wf2qp_free_queue(struct dn_queue *q) /* extract from the heap. XXX TODO we may need to adjust V * to make sure the invariants hold. */ - if (q->mq.head == NULL) { - heap_extract(&si->idle_heap, q); - } else if (DN_KEY_LT(si->V, alg_fq->S)) { - heap_extract(&si->ne_heap, q); - } else { - heap_extract(&si->sch_heap, q); - } + heap_extract(&si->idle_heap, q); + heap_extract(&si->ne_heap, q); + heap_extract(&si->sch_heap, q); + return 0; } From nobody Tue Jun 13 13:54:25 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgVR55SWmz4cVf2; Tue, 13 Jun 2023 13:54:25 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgVR548lRz3yfD; Tue, 13 Jun 2023 13:54:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686664465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CMAcsOG3c0sruoGVsGDsRwjVmX9FU03EaUtOFTQCuUo=; b=fdZf3u8/JgPosBdcQV0WR4K+RkzHZvOomtNIn/2bJW5sAlBVPpifJq2u8w8Xm0pZF6bv6I Xk1c2SXE0LS1EeXYBitgSl5Wz5VceCKr51nmXOPoDpbqBvyiUoWwBMXpve0FbZIzD51+fL eeYFK9NmgkhdBH23jNnCg4QWP46ccxsnWsPSGEj7XC8U2VooMgaoj1C9HFduYTApWunORe uJI+9NP3VY3h2ekE7Zg+l0r/rrd046CCFlc6CbKUAyW64ID8yUiBgJVi9436vIaCrvbtPv B9LvOYTUCRZ6PcFl2GLirhxcIBBN/N+RTPLGB9BGm/HcdDAVdNLPFdU90rY4gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686664465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CMAcsOG3c0sruoGVsGDsRwjVmX9FU03EaUtOFTQCuUo=; b=W2aQ06cKFfrmicChGPNe/3T3LbJnHLPBZPbnhyrD5Sv2xtQB/jP6snCHxxzQTukXtWuotk lcWF2IZp5EHgy618wMhxmYdLuA14F1LYxN5nb2zT5YPknBM4BB92GKqeqDxjbvjb1S02ZV 5PuvnJJv8oxDC5yg8ENC7q/4824twvd95L6LRl0+u2gYsQCN6oLnPTTnsCSXnYjy3MldmE BWEbbpFbczySZ12Kqwd/2u8hDWlClAM6IshxTgunmun9Z0RGE3s6WDBrgcXNIFbNGVTBIw QbDjYRSrww3QCkxsga6nxUyNgcRGnT17kz1YqMH7pZnmZelxd4UYZBN+GL+0mw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686664465; a=rsa-sha256; cv=none; b=sfHy85myAUf8UxTLO2R+3j1AE+22ejEZTMxoW9GydPkFGmOrTX0YVrdtewlqEoIigiPhjH CUTBQkSgXvi6Sg2Aeg0H9IvCIzqXih+VEfWGqF7FdBheb2rmaeaqK9iKtC1/jfdpTAqUZD 4z1N3deTyRK6mkgofKha4VtMDgtSVo1iBVXHEj0pKD7LTI6g0rHv3oTZSBtEHcdEiFGkHZ RZFZHARZYY28RQObyxrFvifRDfpqKLr3toYO5+CxVUmeZUHNcp2AwqHlIwUuEXxWlaAfd/ FCFyj6ppNvL0sjPT1sxT2U5JSJ7PL1HYpKT0+QT8AOcQRhg/+6BQ1Bz/QxVkqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgVR52wZRzPnq; Tue, 13 Jun 2023 13:54:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DDsPXr073435; Tue, 13 Jun 2023 13:54:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DDsPSC073434; Tue, 13 Jun 2023 13:54:25 GMT (envelope-from git) Date: Tue, 13 Jun 2023 13:54:25 GMT Message-Id: <202306131354.35DDsPSC073434@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 1e1bb5780c31 - main - dummynet tests: attempt to provoke wf2q+ use-after-free List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1e1bb5780c31d28ae041769b611b70b4f35c7ede Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=1e1bb5780c31d28ae041769b611b70b4f35c7ede commit 1e1bb5780c31d28ae041769b611b70b4f35c7ede Author: Kristof Provost AuthorDate: 2023-06-12 13:12:37 +0000 Commit: Kristof Provost CommitDate: 2023-06-13 13:51:48 +0000 dummynet tests: attempt to provoke wf2q+ use-after-free Attempt to provoke known use-after-free issues with WF2Q+. Sponsored by: Rubicon Communications, LLC ("Netgate") --- tests/sys/netpfil/common/dummynet.sh | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/tests/sys/netpfil/common/dummynet.sh b/tests/sys/netpfil/common/dummynet.sh index 6f7981a043a8..9b8a93cba365 100644 --- a/tests/sys/netpfil/common/dummynet.sh +++ b/tests/sys/netpfil/common/dummynet.sh @@ -203,6 +203,59 @@ codel_cleanup() firewall_cleanup $1 } +wf2q_heap_head() +{ + atf_set descr 'Test WF2Q+, attempting to provoke use-after-free' + atf_set require.user root +} + +wf2q_heap_body() +{ + fw=$1 + firewall_init $fw + dummynet_init $fw + + j=dummynet_wf2q_heap_${fw}_ + + epair=$(vnet_mkepair) + epair_other=$(vnet_mkepair) + vnet_mkjail ${j}a ${epair}a + vnet_mkjail ${j}b ${epair}b ${epair_other}b + + jexec ${j}a ifconfig ${epair}a up mtu 9000 + va=$(jexec ${j}a ifconfig vlan create vlan 42 vlandev ${epair}a) + jexec ${j}a ifconfig ${va} 192.0.2.1/24 up #mtu 8000 + + jexec ${j}b ifconfig ${epair}b up mtu 9000 + vb=$(jexec ${j}b ifconfig vlan create vlan 42 vlandev ${epair}b) + jexec ${j}b ifconfig ${vb} 192.0.2.2/24 up #mtu 8000 + jexec ${j}b ifconfig ${epair_other}b up + + # Sanity check + atf_check -s exit:0 -o ignore \ + jexec ${j}b ping -c 1 192.0.2.1 + + jexec ${j}b dnctl pipe 1 config bw 10Mb queue 100 delay 500 droptail + jexec ${j}b dnctl sched 1 config pipe 1 type wf2q+ + jexec ${j}b dnctl queue 1 config pipe 1 droptail + + firewall_config ${j}b ${fw} \ + "pf" \ + "pass dnqueue 1" + + jexec ${j}a ping -f 192.0.2.2 & + sleep 1 + + jexec ${j}b ifconfig ${vb} destroy + + sleep 2 +} + +wf2q_heap_cleanup() +{ + firewall_cleanup $1 +} + queue_head() { atf_set descr 'Basic queue test' @@ -478,6 +531,8 @@ setup_tests \ codel \ ipfw \ pf \ + wf2q_heap \ + pf \ queue \ ipfw \ pf \ From nobody Tue Jun 13 15:03:24 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgWym1BMDz4d5vK; Tue, 13 Jun 2023 15:03:28 +0000 (UTC) (envelope-from jhb@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgWym0jyTz4CVr; Tue, 13 Jun 2023 15:03:28 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686668608; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZchszFG4qzEnvXOwbT2u39v4KPhEeyGw2x3lhNR1LaA=; b=rZGxtMOEENcVrzV+nYWtLnSJKWXxb24K7e14ErPmuopngFvYi05J1BB5z2CXa+W1tfFtnY KFhkJEEv1uZ3CwPNKunqkssDrl2BLvjB84akf9puGwynRWplUZFF29vKv0Ja4l/O7JFCnr Z7Od1/2VcVO/iF38oAg2CINtDp0NhmsGkDyoH6SDiGkpOOuWB527ft2pl4qf2ZeS9NnFLC bmPas3PhzDFf6ySeHOY+3Jz3d37xou9N4Px5xBiBfxnLWclE4gIpsDcsPsXsucYiahW3// DNAu1xdNy0MqTc3gR8AZOIQQzPIwQHMgw1zuelWZb+TE3lyRFxF0S5UwZnwWmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686668608; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZchszFG4qzEnvXOwbT2u39v4KPhEeyGw2x3lhNR1LaA=; b=u2RxxrZWks5EcNbPaRYJJYuKqqhp5Dxzs90y47Jekh9w7CBU7vnsnIBDHzH0rpjuA7gbVm 0DSlsMD+vW4I6v/Ga4fYSn5fAkeMmcKCKACNGEkytfcz1523PFlg1IBv7tetc6V6enfhkT M8+SHHejRDwHzalpeRGKJPHxhY7wmH9RhAIObNwQBGYXc+sTk+uujjX1y0lUVX7BDK1rVS 9qOz7y117jGZC4MPt068w5ddS/KDRiFpboGLEGIv3M27Q/kHK1ulGj4fwYhJH9pSZvJgb7 orZjtRB0mz5uHaT9YsbtpkmFJWMybfYaiLyBQjGwRjKGGPzemRDCQZ7H9emYNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686668608; a=rsa-sha256; cv=none; b=iO0JglRyGPIbj0Z74YxVDRfsIYV6kDkPdjR47VT1O4EHNVqBnx9vFT0E16VK/kRqsutfan kqZcKojzxUrtXAwc/zf6t5gduMzv5TJ/p+gfYl7aCioLDEm4tD2+UhqqrjEN/FZ/ommabk p1APt1tE96oSvKU7Tg0a/KoL67IuZ4s/Lk0qlUO0K/ZVbT99m7q4z4dge8hHwAalK/vh9/ ipGjusnnsE9m3gT3HXbC8DMPNaSDkTVeGzGXZQnIEh2tBqImj6lStbznpp5u/FIRGXcQ/L MzitKf5Axobpql9/2uFe5h9dEQRvGjJaPArRHhadrJbjw+joyGIBbFjnPqmUXQ== Received: from [IPV6:2601:648:8680:16b0:d90f:385e:badc:fe31] (unknown [IPv6:2601:648:8680:16b0:d90f:385e:badc:fe31]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4QgWyl3q3szvGP; Tue, 13 Jun 2023 15:03:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <98badf08-4519-34a9-b5cd-5341d343ed99@FreeBSD.org> Date: Tue, 13 Jun 2023 08:03:24 -0700 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: git: bdc81eeda05d - main - nvme: Switch to nda by default Content-Language: en-US To: Warner Losh , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202306130343.35D3hLMO066560@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: <202306130343.35D3hLMO066560@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ThisMailContainsUnwantedMimeParts: N On 6/12/23 8:43 PM, Warner Losh wrote: > The branch main has been updated by imp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=bdc81eeda05d3af80254f6aac95759b07f13f2b7 > > commit bdc81eeda05d3af80254f6aac95759b07f13f2b7 > Author: Warner Losh > AuthorDate: 2023-06-13 03:37:10 +0000 > Commit: Warner Losh > CommitDate: 2023-06-13 03:41:06 +0000 > > nvme: Switch to nda by default > > We already run nda by default on all the !x86 architectures. Switch the > default to nda. nda created nvd compatibility links by default, so this > should be a nop. If this causes problems for your application, set > hw.nvme.use_nvd=1 in your loader.conf. > > Sponsored by: Netflix > --- > UPDATING | 8 ++++++++ > sys/dev/nvme/nvme_sysctl.c | 2 +- > 2 files changed, 9 insertions(+), 1 deletion(-) Maybe a note in RELNOTES as well? -- John Baldwin From nobody Tue Jun 13 15:23:07 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgXPR69JWz4d9FH; Tue, 13 Jun 2023 15:23:07 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgXPR5JBGz4FBq; Tue, 13 Jun 2023 15:23:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686669787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7MP8LeER3gQQOSuoT3+GpvGXpHB5tRD3ISAGs50pKSM=; b=xGE4kMsXFV5Cn4+9wP9XnpGefWELdkYi4oy0o330HhuhG5nyAtwNpeOx+C+Vxq8QpBPb/n YNNS20gTxoudELCn7HlNWHc3LTXKSJ5fLC/KYGLpheiiEo5d0yBSOINhIIXoR9opd8CBB6 oLMVvsYzyMO0r5wxjx5rIoCYXOD+yaVEUWUeUbFVil5ULQbJQH3tPGcXXgs09d32SFiBPd qNkDR22fyi3HHX46oHiUjwIhvw4pI9r7ur5SpEHKMPRESpLGfYLJvMKamaMBwAvC3OtDGn BaO51t7MHjieL+dh04uhDH+jH69anh0jOIxTXy2u56XRpWtyBw+smYprPsAlEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686669787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7MP8LeER3gQQOSuoT3+GpvGXpHB5tRD3ISAGs50pKSM=; b=KN30kSRZCBZh86k94clRm/j6wX3ge5CqaUzmofmFww9xPrjwab47mVVB2g0rPqEeBlniu5 3Q+fQ213bb4SSIrqxpPhR3vYF29hnsRlhBMY4Z6AZgin1VBrExQI8U9TLX2Hwl4FXh3IBy y2AVGzG8NSRBjOuaFzXuLFDHcDl+h3XYpuSnWF9RTCAF/Z5INqYI3AqR+QyvPfypQWybYN 4tnMEZT0sjOMlnuAsNDq9Wj6P2SoM1kPXbBDYUxE29x9X3JXzEq5Q0XVjjPlh3adBqfax9 DF/iXIBvc39UqsW8IQn+pVbOWQvWxcDohiomWBunxQns8WcRdSxMNT/dtObYuA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686669787; a=rsa-sha256; cv=none; b=p6sz/Z9/Cq3a1xi9fyUy/RBdEF1YoSxz5GIINtvWSCXNSC+ltvB6ZuJ0I98+8/udda77zS /WvpzAj5wWpxvR/z/ITLb9WIhLf8lurgsQhSsQhCXB9RRO+FAMvq22aBqK8Vpj+FfDQLye G9WwqWLPMgdjJYLCTBbuNL599P1p8o5KMz5lOPJmtvqzRPUUL/6tEJ3PpL3cc1f284gOYA GEqLJLbsQs0bmYLv9yn3eUV4f8OMTbd9pshIpClYW6fqYMdmlpOpvbgI7ZPRejTC3P9N6I 7mYxPE3Ia5t3qmkIkshpTWf8T572Kof+pizr5sIQvmmoNICbvVJNyJ5fBAeNuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgXPR4MZzzSHx; Tue, 13 Jun 2023 15:23:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DFN7HH023257; Tue, 13 Jun 2023 15:23:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DFN7K5023256; Tue, 13 Jun 2023 15:23:07 GMT (envelope-from git) Date: Tue, 13 Jun 2023 15:23:07 GMT Message-Id: <202306131523.35DFN7K5023256@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 6a8d4071c47a - main - nvd/nda: Add release notes info. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6a8d4071c47affd43980c2a1c93f774aea73c119 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=6a8d4071c47affd43980c2a1c93f774aea73c119 commit 6a8d4071c47affd43980c2a1c93f774aea73c119 Author: Warner Losh AuthorDate: 2023-06-13 15:17:57 +0000 Commit: Warner Losh CommitDate: 2023-06-13 15:18:18 +0000 nvd/nda: Add release notes info. Sponsored by: Netflix --- RELNOTES | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/RELNOTES b/RELNOTES index 99a37fe20732..d257f4cf4813 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,16 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +bdc81eeda05d: + + nda is now the default nvme device on all platforms. While nda creates + nvd links by default so fstab, etc continues to work, configuration + should be updated to the new nda devices. + + To restore the old behavior, add hw.nvme.use_nvd=1 to loader.conf or + `options NVME_USE_NVD=1` to the kernel config. To disable the nvd + compatibility aliases, add kern.cam.nda.nvd_compat=0 to loader.conf. + bbb2d2ce4220: Change pw (hence bsdinstall) not to move /home to /usr/home. Previously, when creating the path to home directories, pw From nobody Tue Jun 13 15:24:51 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgXRS4Wp0z4d9Tq; Tue, 13 Jun 2023 15:24:52 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgXRS1HYdz4G0n; Tue, 13 Jun 2023 15:24:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686669892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=meBy0TEKRTQiCN/lmq/3zFtev7pyycBxQcgOwFZhyxA=; b=AUaVguvR+zLYpWFlXlYBQNgKOCYRIfJQ/ClIfJAh2iA4nbUhy6Ln2fBCkZWDuPGM0Tlg1/ xnzwmv9f33ZsKHFbKGRRAYnJVFZRCAzLMcehV6UxFkC3g3IoLQ0jpvhASK69UoqHX/xc18 H6cjcrU4+FA7TFjMzqvawP3ij4iOTAhXGJP3gMzQvz9NhUw2i15hkO0Pdm8sjyt2Msnjrk 8TG93g/NDabr6HUjrG8kcmqCUIP06O89PkeLDyX1EAJQ/x1EaY1EJr4nf/MMN9rJLekQK2 t4o9LQLxWC9quHNGLEr8k1+vgfozNM6oV+uH5TcL+8MH+PVCIWeq+o5vUa8zTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686669892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=meBy0TEKRTQiCN/lmq/3zFtev7pyycBxQcgOwFZhyxA=; b=X/3+IVhohrVoH7b1iwyPe8/Y+kFKXQY0QMBKqlhY2qfniLuIbhtazH4aVIqi8lEHCxIJnP uDxCsTF/3dW2kb6MvWMEMqNDuySFzJB0Xhblef0kOYG6G6+FLu3PBWusT5A3pcBtTcOm06 LMupsF1t3YV0DjB3+5oBXQemESIKwP7P0KEQ73bz0U9Bi+fDkjoA/ysuQIH4JqBlUOvFiY 3pXrPYd/7U0fvN9d7moBy+kJA8cfEuivD3s07yKuIO5IcmK9hywo9c9Zlu6TxKzQ69T6nR 6y1dYWjGe4BkfRBdJ8VCJOYSJQu2rWb/AV+U9mKwWSW2LlBixZN8zabp4cQfgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686669892; a=rsa-sha256; cv=none; b=n/w/TKgudW7G2DmQ0s28hZGfDepz3wDeEDbucsGh05K49uKvrIJHnSx4A7VTMjPWX7Dv1z 82ciIvTNAKYNVyXTyjzIkgemut0jcY3wEBe3n9I6fcd7CDZSGvAGLq2eyyOvwoOkbb2kWA jsap21X/+s8jDuCOkXFecZtrSG7fEaF7/8jpwdGFNQS3Zt4pPPo7PiMeySF9YlUJ1WozhK C2gIKsi5bTiUNRxutH/NHqKQOSWkrlfxN+usCrgL8yUndoFrIKUfrjujxc6hzTEnLB+wd2 cXHQ2L+oX3v6QreBZX2LeR4ncSl6N5FIAtiS1B5zuG+xKxN/Dl+OcZO5gCAJ1A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgXRS0MTyzS1Y; Tue, 13 Jun 2023 15:24:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DFOpvF023588; Tue, 13 Jun 2023 15:24:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DFOpLL023587; Tue, 13 Jun 2023 15:24:51 GMT (envelope-from git) Date: Tue, 13 Jun 2023 15:24:51 GMT Message-Id: <202306131524.35DFOpLL023587@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: bd76e4c860b1 - main - UPDATING: Add note about nvd aliases List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bd76e4c860b1ceb5c4ef42b9ba318a17df278808 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=bd76e4c860b1ceb5c4ef42b9ba318a17df278808 commit bd76e4c860b1ceb5c4ef42b9ba318a17df278808 Author: Warner Losh AuthorDate: 2023-06-13 15:23:58 +0000 Commit: Warner Losh CommitDate: 2023-06-13 15:23:58 +0000 UPDATING: Add note about nvd aliases Add note about nvd alias disabling to UPDATING so it's easily at hand. Sponsored by: Netflix --- UPDATING | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/UPDATING b/UPDATING index c75de2d66338..a3f8cfb9ec25 100644 --- a/UPDATING +++ b/UPDATING @@ -32,8 +32,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW: nda created nvd compatibility links by default, so this should be a nop. If this causes problems for your application, set hw.nvme.use_nvd=1 in your loader.conf or add `options NVME_USE_NVD=1` to your kernel - config. The default has been nda on all non-x86 platforms for some time - now. If you need to fall back, please email imp@freebsd.org about why. + config. To disable the nvd compatibility aliases, add + kern.cam.nda.nvd_compat=0 to loader.conf. The default has been nda on + all non-x86 platforms for some time now. If you need to fall back, + please email imp@freebsd.org about why. 20230422: Remove portsnap(8). Users are encouraged to obtain the ports tree From nobody Tue Jun 13 15:25:31 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgXSS3CtYz4d9rN for ; Tue, 13 Jun 2023 15:25:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgXSS1lnlz4Ghb for ; Tue, 13 Jun 2023 15:25:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-4f658a17aa4so6178458e87.0 for ; Tue, 13 Jun 2023 08:25:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20221208.gappssmtp.com; s=20221208; t=1686669942; x=1689261942; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=1jDvuhmL7IAFxJC3OuIOPodiAvOwSwb6rj4Mcn7jkDE=; b=g8Inus1w7MiurZeK04/56p8r8Fvnmb8qZ6qij09Keq8toIO02IAH+F6+02rknSrOoX pUr+zHOjH87iyE4OajetCe6KXen5Xorp1Aeb9beKolYmk4Pzxhnu+tGkNfGJbbz6TUhF eyyCHLyJltq4h1IRDUthMeq2VhTllk7kzBkz/8H/hEMdlzAATQ7eFs/ga5A2G9jH/o4z s0Vi3ZUe9XYkQanGyPSWwDv7lxeMuMFjHryYN2hlM1SKmR/lhv0x6xum8cXg1aICohuP zdtbcJmW909ytTSOc4x3lWbEQNuqpbbithVa4xv1c3g4GTf7+GkeAY56jnaFh14CnTXM qK4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686669942; x=1689261942; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1jDvuhmL7IAFxJC3OuIOPodiAvOwSwb6rj4Mcn7jkDE=; b=WL3NVMpV5F/w/rn7qxC7T6XYyD4TNLgcxJF5TFYZ7VoGVW4PxLSO2dV7ZXiWOoBn1x ftAld2BovxhIjBSyVQg9sCNm1ohyxzbVCfPlxtI/296Pv+g7OOZhlLusihG9h6vHh7Z+ 6TyzfaQso3n0yK7NkNaD+qfLXqfNMavzP94q7CidsoSLSAO85jZpbmEdoKKtxzVFTX3b ff3UtdE3WXaLxbpt/WsUEupdln+aaG5tXKwOX7Vvni9N3FCMp4iKez6e6R9iqAHR3HRn iyDk8WTfTjNESV4NHdlhNcAioKTdxYsr0opWI0G+Cw+f9q/1pA6Xvh6439PaLs78h6SW Lnjg== X-Gm-Message-State: AC+VfDw3G+B5TuLqP9jqeEH1hcA3CFB528Mr1RK91obnrKmz7ozAFplr +S/ZZeXe0CExj/MQk001YQ/irxzFx5z/QHQEfgAMTw== X-Google-Smtp-Source: ACHHUZ7bhCVkp8xEsOIEMi4L25gAPrfpI1ZXdZm7ctECsdM3jEuH3H3GDLeuc97IjuLV1gWgqlQF6xyZ4ZF+Xxn0vas= X-Received: by 2002:a05:6512:61c:b0:4f3:b242:aa90 with SMTP id b28-20020a056512061c00b004f3b242aa90mr6745213lfe.35.1686669941934; Tue, 13 Jun 2023 08:25:41 -0700 (PDT) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 References: <202306130343.35D3hLMO066560@gitrepo.freebsd.org> <98badf08-4519-34a9-b5cd-5341d343ed99@FreeBSD.org> In-Reply-To: <98badf08-4519-34a9-b5cd-5341d343ed99@FreeBSD.org> From: Warner Losh Date: Tue, 13 Jun 2023 09:25:31 -0600 Message-ID: Subject: Re: git: bdc81eeda05d - main - nvme: Switch to nda by default To: John Baldwin Cc: Warner Losh , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: multipart/alternative; boundary="000000000000be224705fe04726b" X-Rspamd-Queue-Id: 4QgXSS1lnlz4Ghb X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N --000000000000be224705fe04726b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jun 13, 2023 at 9:03=E2=80=AFAM John Baldwin wrot= e: > On 6/12/23 8:43 PM, Warner Losh wrote: > > The branch main has been updated by imp: > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=3Dbdc81eeda05d3af80254f6aac95759b= 07f13f2b7 > > > > commit bdc81eeda05d3af80254f6aac95759b07f13f2b7 > > Author: Warner Losh > > AuthorDate: 2023-06-13 03:37:10 +0000 > > Commit: Warner Losh > > CommitDate: 2023-06-13 03:41:06 +0000 > > > > nvme: Switch to nda by default > > > > We already run nda by default on all the !x86 architectures. Switc= h > the > > default to nda. nda created nvd compatibility links by default, so > this > > should be a nop. If this causes problems for your application, set > > hw.nvme.use_nvd=3D1 in your loader.conf. > > > > Sponsored by: Netflix > > --- > > UPDATING | 8 ++++++++ > > sys/dev/nvme/nvme_sysctl.c | 2 +- > > 2 files changed, 9 insertions(+), 1 deletion(-) > > Maybe a note in RELNOTES as well? > Indeed. 6a8d4071c47a has my writeup of the salient details. And bd76e4c860b1 adds details about how to disable nda's nvd aliases in case people need it. Warner --000000000000be224705fe04726b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


--000000000000be224705fe04726b-- From nobody Tue Jun 13 15:26:49 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgXTj6F8pz4dB8k; Tue, 13 Jun 2023 15:26:49 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgXTj5pBLz4H6q; Tue, 13 Jun 2023 15:26:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686670009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LAqkLW3jJNczkAEfVr5oY8EcIjNvfuHJwf5J3zKuGVQ=; b=KCgmn+bHpNd4RfbJU0H7bx9b+NTVG/+7WbFA1K54RLzJf0G+wQMLDaTC0sNUCInS5RYHJi o9oS45iaKnaw/DeXT3oKMkYvq8Pe2K3DKBsdw1YZO0h/1i6VewlMaHFechC4X/4RPbGSUJ 3H8rpp7tYnNY8s7rBgQSzt4P05a3VxBE7J2/F8sIrRfguJiLOavChQn7XjG+/Cbpxzt5h9 +xZHyxvwIhzY7Ye63ehP9IaeDkt6mT07GJCuDszXgYEH5V0uH5nTkTjL5b1Ymlio5wZRAA 5TrDVFe9otN9Wiuhuxct+3+bnSaaqBJgnczjXZf7RDEK+2s5uj91tZxyHITBgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686670009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LAqkLW3jJNczkAEfVr5oY8EcIjNvfuHJwf5J3zKuGVQ=; b=DQnHWHWbigBGxnuac1/MNHH/SXh+uB+bgpAx3wJFLDsfwrZBqy9OPYsHC/aPeu0GipcH40 cCXwhXReMoNI/An5vEatU7Duh3IWDf1agoPwHOOvboAhcG1dMABxyX5tkejsX+1Ymy7NIV 0LFlfdeYgML6ciYE02bO5eNwRmLOj+Z03VyazrK2pzGeRDQTsATGJrg5oIXUYwvgZg41pZ 5AnTWglkwwSNoOcIMI9oJJA/6A/wqOqoh1HQko6+u0FKvkcpTOVdFPLlYDUDBeDX9kJImG UhMzt5rs5BfgELTkrUFdeNe0HMq8ZRxfWkj6qVm3RWVHEroBVcReec/kBrhe+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686670009; a=rsa-sha256; cv=none; b=tQ1929FvEbGOkKDuDESp5SXFoE2dXjECGCL+lQ+tbJs0prfFubKFhz6aF13Knv0zyh5Skg btAisQXQ0fQSQMz8Rj7SQ+hiVt7xJ0KdpGSkMRPh7k1WdeKZiBCzuwfHzSbt16Gbxvksvx c6yJGNEbtsEC8wbzXiYJETMG71GAQjQ/edF7n/SK3jyDbECEOK+Y+prKE8kA/JmAgkCRtW Uw2R/+S+F32EQ9t8uHBU1X5xVGiPZ5XrD7FCD41yRbHFlZEXm0amxrTmVrwW4Ni8jWeHfh VHeuEKMzRjddwaMrJNO7sYcZ5IuFnXBuy84pbwmJX7tOeQnL7VomFOX2ZgKofw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgXTj4rg8zRyH; Tue, 13 Jun 2023 15:26:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DFQnEn023970; Tue, 13 Jun 2023 15:26:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DFQn11023969; Tue, 13 Jun 2023 15:26:49 GMT (envelope-from git) Date: Tue, 13 Jun 2023 15:26:49 GMT Message-Id: <202306131526.35DFQn11023969@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 9247238cc4b8 - main - netlink: fix failing TestRtNlAddIfaddrLo::test_add_6 tests. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9247238cc4b8835892a47701136b0fd073f8d67c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=9247238cc4b8835892a47701136b0fd073f8d67c commit 9247238cc4b8835892a47701136b0fd073f8d67c Author: Alexander V. Chernikov AuthorDate: 2023-06-13 15:24:24 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-13 15:26:44 +0000 netlink: fix failing TestRtNlAddIfaddrLo::test_add_6 tests. Recent netlink commit added hook for calling IPv6 code upon implicit inteface bring-up on adding first interface address. This hook handles link-local ifa addition for the loopback interface, resulting in failed assertion in the loopback tests. Fix the tests by fixing the assert. --- tests/sys/netlink/test_rtnl_ifaddr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sys/netlink/test_rtnl_ifaddr.py b/tests/sys/netlink/test_rtnl_ifaddr.py index c7d6d86e781b..48e53502df54 100644 --- a/tests/sys/netlink/test_rtnl_ifaddr.py +++ b/tests/sys/netlink/test_rtnl_ifaddr.py @@ -698,7 +698,7 @@ class TestRtNlAddIfaddrLo(RtnlIfaOps): self.send_check_success(msg) lst = self.get_ifa_list(iface.ifindex, self.get_family_from_ip(ifa.ip)) - assert len(lst) == 1 + assert len(lst) == 2 # link-local should be auto-created as well rx_msg = self.find_msg_by_ifa(lst, ifa.ip) assert rx_msg is not None From nobody Tue Jun 13 18:16:09 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgcF60BkWz4dYKv; Tue, 13 Jun 2023 18:16:10 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgcF55M1Dz3Jym; Tue, 13 Jun 2023 18:16:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686680169; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fU6g/2+j5DVLL2xSf8ig9thIG2+5EoxFb5Bgt090v7I=; b=vGmbxZpfLo09v8RxuHyrqz3ax9p55QXrtu/ZxNxvXOycdwWUfVtMGl0yov5DbdegVXEui9 JRRlo+IX7btaBY4/8l50LKFJm0heI+4Ap5/HbmsC6l09Cky5pOVECedAoZzCb07ady2y1G tvbFcr/rAlEfvX31hv+4StWBaz7JtpMciaaLy6nmiibO+lEhyvTc42HXT6U6KPYuQxTY+I oTJ/woxcdHu0erKK/Ow9pdKIcez2BaPwKgOjqzYgUg9oap2FZeFLdtOVr3DuEl97bdzsfF hiXVxKvcstCWnaGTUYJfSk8EXrtcJVrmW2BPuePuJX6fVJ4PyJaVM6HkxZB8qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686680169; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fU6g/2+j5DVLL2xSf8ig9thIG2+5EoxFb5Bgt090v7I=; b=OzxbbVjq9uw4GT3kHdEEgW1Fc/YT9WM0aUNWBvz3oLRRbu0jywi9MeLAt2DImUTp8MFZK8 MZZPVJqwHFn4SKYNPFlkTsHNarbdu/BSIdXU7jnUd7L2ck5A7LxRhw54UOXGu9+gFCASy6 Sug9GeNd/P/4NuqkwoLUOrJ8vtgR+kHOq6Pfb4guMh/8CmmDOoVpbV/0Yc5GeYtXQnsnFY gSj4OZ2EQHBUHO59ajcXu6wtL5IdQAAskH30V8+uSofQFjg2l5MTVCU5WUjITA5w7NGPqO F0d269YIjUHcusLl5cWMmko0Sns7m3bgOEXEN24QhZkV6N0AHEA+RSJ0VzAzZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686680169; a=rsa-sha256; cv=none; b=dt7sgdUWna1LVKYZXr10drKzsNxjQEA6oVsoOwSa0/DV8qQb025+zOmXyhkdPrrMPogAZS AjW8u1/JGm1UxHbGqpFmK3VTGSdCSYHXDV2a8Zad1+mlE9xuk0zDz+pWUUEI8ZW2btF45d EXMXKdVkkuoUvELLtdAG9S+E8VQLLVF1dATvbLLbGP7CvjuYl85hxuwRsWJicLYcARF2MU ij6DGcY30xnUrCLJ4ngOl+8f70oNX+RDP3RlICvNggFumjAS3rBMb8Hx71ZITrSWH7phN9 zJ/I9HOletNfVPAkLm9akqq1zkES3rot1IRH/oME+q4A/2F3tSHSWtMWrLZfAw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgcF54RhCzXnN; Tue, 13 Jun 2023 18:16:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DIG9dY004376; Tue, 13 Jun 2023 18:16:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DIG90C004375; Tue, 13 Jun 2023 18:16:09 GMT (envelope-from git) Date: Tue, 13 Jun 2023 18:16:09 GMT Message-Id: <202306131816.35DIG90C004375@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: 21850106fdda - main - libtacplus: Allow additional AV pairs to be configured. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 21850106fdda5269bc881f0e62839dff3d9edf47 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=21850106fdda5269bc881f0e62839dff3d9edf47 commit 21850106fdda5269bc881f0e62839dff3d9edf47 Author: Dag-Erling Smørgrav AuthorDate: 2023-06-13 16:04:22 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-13 16:08:08 +0000 libtacplus: Allow additional AV pairs to be configured. * Replace hand-rolled input tokenizer with openpam_readlinev() which supports line continuations and has better quoting and escaping. * Simplify string handling by merging struct clnt_str and struct srvr_str into just struct tac_str. * Each server entry in the configuration file can now have up to 255 AV pairs which will be appended to the ones returned by the server in response to a successful authorization request. This allows nss_tacplus(8) to be used with servers which do not provide identity information beyond confirming the existence of the user. This adds a dependency on libpam, however libtacplus is currently only used by pam_tacplus(8) (which is already always used with libpam) and the very recently added nss_tacplus(8) (which is extremely niche). In the longer term it might be a good idea to split this out into a separate library. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: pauamma_gundo.com, markj Differential Revision: https://reviews.freebsd.org/D40285 Relnotes: yes --- UPDATING | 7 + lib/libtacplus/Makefile | 2 +- lib/libtacplus/taclib.c | 347 +++++++++++++++++----------------------- lib/libtacplus/taclib_private.h | 63 ++++---- lib/libtacplus/tacplus.conf.5 | 42 ++--- share/mk/src.libnames.mk | 2 +- 6 files changed, 206 insertions(+), 257 deletions(-) diff --git a/UPDATING b/UPDATING index a3f8cfb9ec25..1980411c1853 100644 --- a/UPDATING +++ b/UPDATING @@ -27,6 +27,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20230613: + Improvements to libtacplus(8) mean that tacplus.conf(5) now + follows POSIX shell syntax rules. This may cause TACACS+ + authentication to fail if the shared secret contains a single + quote, double quote, or backslash character which isn't + already properly quoted or escaped. + 20230612: Belatedly switch the default nvme block device on x86 from nvd to nda. nda created nvd compatibility links by default, so this should be a diff --git a/lib/libtacplus/Makefile b/lib/libtacplus/Makefile index 01345e175a6b..c52f033fd7d5 100644 --- a/lib/libtacplus/Makefile +++ b/lib/libtacplus/Makefile @@ -28,7 +28,7 @@ LIB= tacplus SRCS= taclib.c INCS= taclib.h CFLAGS+= -Wall -LIBADD= md +LIBADD= md pam SHLIB_MAJOR= 5 MAN= libtacplus.3 tacplus.conf.5 diff --git a/lib/libtacplus/taclib.c b/lib/libtacplus/taclib.c index 54bdb95c68ab..585513f6c1c2 100644 --- a/lib/libtacplus/taclib.c +++ b/lib/libtacplus/taclib.c @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -47,32 +48,34 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include + #include "taclib_private.h" static int add_str_8(struct tac_handle *, u_int8_t *, - struct clnt_str *); + struct tac_str *); static int add_str_16(struct tac_handle *, u_int16_t *, - struct clnt_str *); + struct tac_str *); static int protocol_version(int, int, int); static void close_connection(struct tac_handle *); static int conn_server(struct tac_handle *); static void crypt_msg(struct tac_handle *, struct tac_msg *); -static void *dup_str(struct tac_handle *, const struct srvr_str *, +static void *dup_str(struct tac_handle *, const struct tac_str *, size_t *); static int establish_connection(struct tac_handle *); -static void free_str(struct clnt_str *); +static void free_str(struct tac_str *); static void generr(struct tac_handle *, const char *, ...) __printflike(2, 3); static void gen_session_id(struct tac_msg *); static int get_srvr_end(struct tac_handle *); -static int get_srvr_str(struct tac_handle *, const char *, - struct srvr_str *, size_t); -static void init_clnt_str(struct clnt_str *); -static void init_srvr_str(struct srvr_str *); +static int get_str(struct tac_handle *, const char *, + struct tac_str *, size_t); +static void init_str(struct tac_str *); static int read_timed(struct tac_handle *, void *, size_t, const struct timeval *); static int recv_msg(struct tac_handle *); -static int save_str(struct tac_handle *, struct clnt_str *, +static int save_str(struct tac_handle *, struct tac_str *, const void *, size_t); static int send_msg(struct tac_handle *); static int split(char *, char *[], int, char *, size_t); @@ -90,7 +93,7 @@ static void create_msg(struct tac_handle *, int, int, int); * for the next time. */ static int -add_str_8(struct tac_handle *h, u_int8_t *fld, struct clnt_str *cs) +add_str_8(struct tac_handle *h, u_int8_t *fld, struct tac_str *cs) { u_int16_t len; @@ -114,7 +117,7 @@ add_str_8(struct tac_handle *h, u_int8_t *fld, struct clnt_str *cs) * for the next time. */ static int -add_str_16(struct tac_handle *h, u_int16_t *fld, struct clnt_str *cs) +add_str_16(struct tac_handle *h, u_int16_t *fld, struct tac_str *cs) { size_t len; @@ -236,7 +239,7 @@ close_connection(struct tac_handle *h) static int conn_server(struct tac_handle *h) { - const struct tac_server *srvp = &h->servers[h->cur_server]; + struct tac_server *srvp = &h->servers[h->cur_server]; int flags; if ((h->fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { @@ -357,7 +360,7 @@ crypt_msg(struct tac_handle *h, struct tac_msg *msg) * though they have no content. */ static void * -dup_str(struct tac_handle *h, const struct srvr_str *ss, size_t *len) +dup_str(struct tac_handle *h, const struct tac_str *ss, size_t *len) { unsigned char *p; @@ -404,10 +407,10 @@ establish_connection(struct tac_handle *h) * Free a client string, obliterating its contents first for security. */ static void -free_str(struct clnt_str *cs) +free_str(struct tac_str *cs) { if (cs->data != NULL) { - memset(cs->data, 0, cs->len); + memset_s(cs->data, cs->len, 0, cs->len); free(cs->data); cs->data = NULL; cs->len = 0; @@ -458,8 +461,8 @@ get_srvr_end(struct tac_handle *h) } static int -get_srvr_str(struct tac_handle *h, const char *field, - struct srvr_str *ss, size_t len) +get_str(struct tac_handle *h, const char *field, + struct tac_str *ss, size_t len) { if (h->srvr_pos + len > ntohl(h->response.length)) { generr(h, "Invalid length field in %s response from server " @@ -474,19 +477,12 @@ get_srvr_str(struct tac_handle *h, const char *field, } static void -init_clnt_str(struct clnt_str *cs) +init_str(struct tac_str *cs) { cs->data = NULL; cs->len = 0; } -static void -init_srvr_str(struct srvr_str *ss) -{ - ss->data = NULL; - ss->len = 0; -} - static int read_timed(struct tac_handle *h, void *buf, size_t len, const struct timeval *deadline) @@ -599,7 +595,7 @@ recv_msg(struct tac_handle *h) } static int -save_str(struct tac_handle *h, struct clnt_str *cs, const void *data, +save_str(struct tac_handle *h, struct tac_str *cs, const void *data, size_t len) { free_str(cs); @@ -689,84 +685,14 @@ send_msg(struct tac_handle *h) return 0; } -/* - * Destructively split a string into fields separated by white space. - * `#' at the beginning of a field begins a comment that extends to the - * end of the string. Fields may be quoted with `"'. Inside quoted - * strings, the backslash escapes `\"' and `\\' are honored. - * - * Pointers to up to the first maxfields fields are stored in the fields - * array. Missing fields get NULL pointers. - * - * The return value is the actual number of fields parsed, and is always - * <= maxfields. - * - * On a syntax error, places a message in the msg string, and returns -1. - */ static int -split(char *str, char *fields[], int maxfields, char *msg, size_t msglen) -{ - char *p; - int i; - static const char ws[] = " \t"; - - for (i = 0; i < maxfields; i++) - fields[i] = NULL; - p = str; - i = 0; - while (*p != '\0') { - p += strspn(p, ws); - if (*p == '#' || *p == '\0') - break; - if (i >= maxfields) { - snprintf(msg, msglen, "line has too many fields"); - return -1; - } - if (*p == '"') { - char *dst; - - dst = ++p; - fields[i] = dst; - while (*p != '"') { - if (*p == '\\') { - p++; - if (*p != '"' && *p != '\\' && - *p != '\0') { - snprintf(msg, msglen, - "invalid `\\' escape"); - return -1; - } - } - if (*p == '\0') { - snprintf(msg, msglen, - "unterminated quoted string"); - return -1; - } - *dst++ = *p++; - } - *dst = '\0'; - p++; - if (*p != '\0' && strspn(p, ws) == 0) { - snprintf(msg, msglen, "quoted string not" - " followed by white space"); - return -1; - } - } else { - fields[i] = p; - p += strcspn(p, ws); - if (*p != '\0') - *p++ = '\0'; - } - i++; - } - return i; -} - -int -tac_add_server(struct tac_handle *h, const char *host, int port, - const char *secret, int timeout, int flags) +tac_add_server_av(struct tac_handle *h, const char *host, int port, + const char *secret, int timeout, int flags, const char *const *avs) { struct tac_server *srvp; + const char *p; + size_t len; + int i; if (h->num_servers >= MAXSERVERS) { generr(h, "Too many TACACS+ servers specified"); @@ -792,8 +718,46 @@ tac_add_server(struct tac_handle *h, const char *host, int port, return -1; srvp->timeout = timeout; srvp->flags = flags; + srvp->navs = 0; + for (i = 0; avs[i] != NULL; i++) { + if (i >= MAXAVPAIRS) { + generr(h, "too many AV pairs"); + goto fail; + } + for (p = avs[i], len = 0; is_arg(*p); p++) + len++; + if (p == avs[i] || *p != '=') { + generr(h, "invalid AV pair %d", i); + goto fail; + } + while (*p++ != '\0') + len++; + if ((srvp->avs[i].data = xstrdup(h, avs[i])) == NULL) + goto fail; + srvp->avs[i].len = len; + srvp->navs++; + } h->num_servers++; return 0; +fail: + memset_s(srvp->secret, strlen(srvp->secret), 0, strlen(srvp->secret)); + free(srvp->secret); + srvp->secret = NULL; + for (i = 0; i < srvp->navs; i++) { + free(srvp->avs[i].data); + srvp->avs[i].data = NULL; + srvp->avs[i].len = 0; + } + return -1; +} + +int +tac_add_server(struct tac_handle *h, const char *host, int port, + const char *secret, int timeout, int flags) +{ + const char *const *avs = { NULL }; + + return tac_add_server_av(h, host, port, secret, timeout, flags, avs); } void @@ -821,12 +785,22 @@ tac_close(struct tac_handle *h) free(h); } +static void +freev(char **fields, int nfields) +{ + if (fields != NULL) { + while (nfields-- > 0) + free(fields[nfields]); + free(fields); + } +} + int tac_config(struct tac_handle *h, const char *path) { FILE *fp; - char buf[MAXCONFLINE]; - int linenum; + char **fields; + int linenum, nfields; int retval; if (path == NULL) @@ -836,46 +810,23 @@ tac_config(struct tac_handle *h, const char *path) return -1; } retval = 0; - linenum = 0; - while (fgets(buf, sizeof buf, fp) != NULL) { - int len; - char *fields[4]; - int nfields; - char msg[ERRSIZE]; + linenum = nfields = 0; + fields = NULL; + while ((fields = openpam_readlinev(fp, &linenum, &nfields)) != NULL) { char *host, *res; char *port_str; char *secret; char *timeout_str; - char *options_str; char *end; unsigned long timeout; int port; int options; + int i; - linenum++; - len = strlen(buf); - /* We know len > 0, else fgets would have returned NULL. */ - if (buf[len - 1] != '\n') { - if (len >= sizeof buf - 1) - generr(h, "%s:%d: line too long", path, - linenum); - else - generr(h, "%s:%d: missing newline", path, - linenum); - retval = -1; - break; - } - buf[len - 1] = '\0'; - - /* Extract the fields from the line. */ - nfields = split(buf, fields, 4, msg, sizeof msg); - if (nfields == -1) { - generr(h, "%s:%d: %s", path, linenum, msg); - retval = -1; - break; - } - if (nfields == 0) + if (nfields == 0) { + freev(fields, nfields); continue; + } if (nfields < 2) { generr(h, "%s:%d: missing shared secret", path, linenum); @@ -884,8 +835,6 @@ tac_config(struct tac_handle *h, const char *path) } host = fields[0]; secret = fields[1]; - timeout_str = fields[2]; - options_str = fields[3]; /* Parse and validate the fields. */ res = host; @@ -901,7 +850,10 @@ tac_config(struct tac_handle *h, const char *path) } } else port = 0; - if (timeout_str != NULL) { + i = 2; + if (nfields > i && strlen(fields[i]) > 0 && + strspn(fields[i], "0123456789") == strlen(fields[i])) { + timeout_str = fields[i]; timeout = strtoul(timeout_str, &end, 10); if (timeout_str[0] == '\0' || *end != '\0') { generr(h, "%s:%d: invalid timeout", path, @@ -909,22 +861,17 @@ tac_config(struct tac_handle *h, const char *path) retval = -1; break; } + i++; } else timeout = TIMEOUT; options = 0; - if (options_str != NULL) { - if (strcmp(options_str, "single-connection") == 0) - options |= TAC_SRVR_SINGLE_CONNECT; - else { - generr(h, "%s:%d: invalid option \"%s\"", - path, linenum, options_str); - retval = -1; - break; - } - }; - - if (tac_add_server(h, host, port, secret, timeout, - options) == -1) { + if (nfields > i && + strcmp(fields[i], "single-connection") == 0) { + options |= TAC_SRVR_SINGLE_CONNECT; + i++; + } + if (tac_add_server_av(h, host, port, secret, timeout, + options, (const char *const *)(fields + i)) == -1) { char msg[ERRSIZE]; strcpy(msg, h->errmsg); @@ -932,9 +879,10 @@ tac_config(struct tac_handle *h, const char *path) retval = -1; break; } + memset_s(secret, strlen(secret), 0, strlen(secret)); + freev(fields, nfields); } - /* Clear out the buffer to wipe a possible copy of a shared secret */ - memset(buf, 0, sizeof buf); + freev(fields, nfields); fclose(fp); return retval; } @@ -1040,17 +988,17 @@ tac_open(void) h->num_servers = 0; h->cur_server = 0; h->errmsg[0] = '\0'; - init_clnt_str(&h->user); - init_clnt_str(&h->port); - init_clnt_str(&h->rem_addr); - init_clnt_str(&h->data); - init_clnt_str(&h->user_msg); + init_str(&h->user); + init_str(&h->port); + init_str(&h->rem_addr); + init_str(&h->data); + init_str(&h->user_msg); for (i=0; iavs[i])); - init_srvr_str(&(h->srvr_avs[i])); + init_str(&(h->avs[i])); + init_str(&(h->srvr_avs[i])); } - init_srvr_str(&h->srvr_msg); - init_srvr_str(&h->srvr_data); + init_str(&h->srvr_msg); + init_str(&h->srvr_data); } return h; } @@ -1093,8 +1041,8 @@ tac_send_authen(struct tac_handle *h) /* Scan the optional fields in the reply. */ ar = &h->response.u.authen_reply; h->srvr_pos = offsetof(struct tac_authen_reply, rest[0]); - if (get_srvr_str(h, "msg", &h->srvr_msg, ntohs(ar->msg_len)) == -1 || - get_srvr_str(h, "data", &h->srvr_data, ntohs(ar->data_len)) == -1 || + if (get_str(h, "msg", &h->srvr_msg, ntohs(ar->msg_len)) == -1 || + get_str(h, "data", &h->srvr_data, ntohs(ar->data_len)) == -1 || get_srvr_end(h) == -1) return -1; @@ -1114,6 +1062,7 @@ tac_send_author(struct tac_handle *h) char dbgstr[64]; struct tac_author_request *areq = &h->request.u.author_request; struct tac_author_response *ares = &h->response.u.author_response; + struct tac_server *srvp; h->request.length = htonl(offsetof(struct tac_author_request, rest[0])); @@ -1147,23 +1096,25 @@ tac_send_author(struct tac_handle *h) /* Send the message and retrieve the reply. */ if (send_msg(h) == -1 || recv_msg(h) == -1) return -1; + srvp = &h->servers[h->cur_server]; /* Update the offset in the response packet based on av pairs count */ h->srvr_pos = offsetof(struct tac_author_response, rest[0]) + ares->av_cnt; /* Scan the optional fields in the response. */ - if (get_srvr_str(h, "msg", &h->srvr_msg, ntohs(ares->msg_len)) == -1 || - get_srvr_str(h, "data", &h->srvr_data, ntohs(ares->data_len)) ==-1) + if (get_str(h, "msg", &h->srvr_msg, ntohs(ares->msg_len)) == -1 || + get_str(h, "data", &h->srvr_data, ntohs(ares->data_len)) ==-1) return -1; /* Get each AV pair (just setting pointers, not malloc'ing) */ clear_srvr_avs(h); for (i=0; iav_cnt; i++) { snprintf(dbgstr, sizeof dbgstr, "av-pair-%d", i); - if (get_srvr_str(h, dbgstr, &(h->srvr_avs[i]), + if (get_str(h, dbgstr, &(h->srvr_avs[i]), ares->rest[i]) == -1) return -1; + h->srvr_navs++; } /* Should have ended up at the end */ @@ -1174,7 +1125,7 @@ tac_send_author(struct tac_handle *h) if (!h->single_connect) close_connection(h); - return ares->av_cnt << 8 | ares->status; + return (h->srvr_navs + srvp->navs) << 8 | ares->status; } int @@ -1208,8 +1159,8 @@ tac_send_acct(struct tac_handle *h) /* reply */ h->srvr_pos = offsetof(struct tac_acct_reply, rest[0]); - if (get_srvr_str(h, "msg", &h->srvr_msg, ntohs(ar->msg_len)) == -1 || - get_srvr_str(h, "data", &h->srvr_data, ntohs(ar->data_len)) == -1 || + if (get_str(h, "msg", &h->srvr_msg, ntohs(ar->msg_len)) == -1 || + get_str(h, "data", &h->srvr_data, ntohs(ar->data_len)) == -1 || get_srvr_end(h) == -1) return -1; @@ -1272,41 +1223,41 @@ tac_set_av(struct tac_handle *h, u_int index, const char *av) char * tac_get_av(struct tac_handle *h, u_int index) { - if (index >= MAXAVPAIRS) - return NULL; - return dup_str(h, &(h->srvr_avs[index]), NULL); + struct tac_server *srvp; + + if (index < h->srvr_navs) + return dup_str(h, &h->srvr_avs[index], NULL); + index -= h->srvr_navs; + srvp = &h->servers[h->cur_server]; + if (index < srvp->navs) + return xstrdup(h, srvp->avs[index].data); + return NULL; } char * tac_get_av_value(struct tac_handle *h, const char *attribute) { - int i, len; - const char *ch, *end; - const char *candidate; - int candidate_len; + int i, attr_len; int found_seperator; - struct srvr_str srvr; + char *ch, *end; + struct tac_str *candidate; + struct tac_str value; + struct tac_server *srvp = &h->servers[h->cur_server]; - if (attribute == NULL || ((len = strlen(attribute)) == 0)) + if (attribute == NULL || (attr_len = strlen(attribute)) == 0) return NULL; - for (i=0; isrvr_avs[i].data; - candidate_len = h->srvr_avs[i].len; + for (i = 0; i < h->srvr_navs + srvp->navs; i++) { + if (i < h->srvr_navs) + candidate = &h->srvr_avs[i]; + else + candidate = &srvp->avs[i - h->srvr_navs]; - /* - * Valid 'srvr_avs' guaranteed to be contiguous starting at - * index 0 (not necessarily the case with 'avs'). Break out - * when the "end" of the list has been reached. - */ - if (!candidate) - break; - - if (len < candidate_len && - !strncmp(candidate, attribute, len)) { + if (attr_len < candidate->len && + strncmp(candidate->data, attribute, attr_len) == 0) { - ch = candidate + len; - end = candidate + candidate_len; + ch = candidate->data + attr_len; + end = candidate->data + candidate->len; /* * Sift out the white space between A and V (should not @@ -1333,9 +1284,9 @@ tac_get_av_value(struct tac_handle *h, const char *attribute) * dup_str() will handle srvr.len == 0 correctly. */ if (found_seperator == 1) { - srvr.len = end - ch; - srvr.data = ch; - return dup_str(h, &srvr, NULL); + value.len = end - ch; + value.data = ch; + return dup_str(h, &value, NULL); } } } @@ -1354,8 +1305,10 @@ static void clear_srvr_avs(struct tac_handle *h) { int i; - for (i=0; isrvr_avs[i])); + + for (i = 0; i < h->srvr_navs; i++) + init_str(&(h->srvr_avs[i])); + h->srvr_navs = 0; } diff --git a/lib/libtacplus/taclib_private.h b/lib/libtacplus/taclib_private.h index 66208c257e7a..3c39ef1e7001 100644 --- a/lib/libtacplus/taclib_private.h +++ b/lib/libtacplus/taclib_private.h @@ -60,30 +60,8 @@ #define TAC_UNENCRYPTED 0x01 #define TAC_SINGLE_CONNECT 0x04 -struct tac_server { - struct sockaddr_in addr; /* Address of server */ - char *secret; /* Shared secret */ - int timeout; /* Timeout in seconds */ - int flags; -}; - -/* - * An optional string of bytes specified by the client for inclusion in - * a request. The data is always a dynamically allocated copy that - * belongs to the library. It is copied into the request packet just - * before sending the request. - */ -struct clnt_str { - void *data; - size_t len; -}; - -/* - * An optional string of bytes from a server response. The data resides - * in the response packet itself, and must not be freed. - */ -struct srvr_str { - const void *data; +struct tac_str { + char *data; size_t len; }; @@ -173,6 +151,15 @@ struct tac_msg { } u; }; +struct tac_server { + struct sockaddr_in addr; /* Address of server */ + char *secret; /* Shared secret */ + int timeout; /* Timeout in seconds */ + int flags; + unsigned int navs; + struct tac_str avs[MAXAVPAIRS]; +}; + struct tac_handle { int fd; /* Socket file descriptor */ struct tac_server servers[MAXSERVERS]; /* Servers to contact */ @@ -182,20 +169,30 @@ struct tac_handle { int last_seq_no; char errmsg[ERRSIZE]; /* Most recent error message */ - struct clnt_str user; - struct clnt_str port; - struct clnt_str rem_addr; - struct clnt_str data; - struct clnt_str user_msg; - struct clnt_str avs[MAXAVPAIRS]; + struct tac_str user; + struct tac_str port; + struct tac_str rem_addr; + struct tac_str data; + struct tac_str user_msg; + struct tac_str avs[MAXAVPAIRS]; struct tac_msg request; struct tac_msg response; int srvr_pos; /* Scan position in response body */ - struct srvr_str srvr_msg; - struct srvr_str srvr_data; - struct srvr_str srvr_avs[MAXAVPAIRS]; + unsigned int srvr_navs; + struct tac_str srvr_msg; + struct tac_str srvr_data; + struct tac_str srvr_avs[MAXAVPAIRS]; }; +#define is_alpha(ch) /* alphabetical */ \ + (((ch) >= 'A' && (ch) <= 'Z') || ((ch) >= 'a' && (ch) <= 'z')) +#define is_num(ch) /* numerical */ \ + ((ch) >= '0' && (ch) <= '9') +#define is_alnum(ch) /* alphanumerical */ \ + (is_alpha(ch) || is_num(ch)) +#define is_arg(ch) /* valid in an argument name */ \ + (is_alnum(ch) || (ch) == '_' || (ch) == '-') + #endif diff --git a/lib/libtacplus/tacplus.conf.5 b/lib/libtacplus/tacplus.conf.5 index ecabaf6f61ec..5babee24c666 100644 --- a/lib/libtacplus/tacplus.conf.5 +++ b/lib/libtacplus/tacplus.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 29, 1998 +.Dd June 13, 2023 .Dt TACPLUS.CONF 5 .Os .Sh NAME @@ -46,23 +46,9 @@ Leading white space is ignored, as are empty lines and lines containing only comments. .Pp -A TACACS+ server is described by two to four fields on a line. -The -fields are separated by white space. -The -.Ql # -character at the beginning of a field begins a comment, which extends -to the end of the line. -A field may be enclosed in double quotes, -in which case it may contain white space and/or begin with the -.Ql # -character. -Within a quoted string, the double quote character can -be represented by -.Ql \e\&" , -and the backslash can be represented by -.Ql \e\e . -No other escape sequences are supported. +A TACACS+ server is described by a minimum of two fields on a line. +The fields are separated by whitespace and follow the same rules for +comments, quoting, escaping, and line continuation as the POSIX shell. .Pp The first field specifies the server host, either as a fully qualified domain name or as a @@ -83,12 +69,11 @@ An empty secret disables the normal encryption mechanism, causing all data to cross the network in cleartext. .Pp -The third field contains a decimal integer specifying the timeout -in seconds for communicating with the server. +The optional third field may contain a decimal integer specifying the +timeout in seconds for communicating with the server. The timeout applies separately to each connect, write, and read operation. -If this field -is omitted, it defaults to 3 seconds. +If this field is omitted, it defaults to 3 seconds. .Pp The optional fourth field may contain the string .Ql single-connection . @@ -98,6 +83,11 @@ sessions. Some older TACACS+ servers become confused if this option is specified. .Pp +Any subsequent fields must be of the form +.Ar attribute Ns = Ns Ar value +and will be appended to authorization responses as if they had been +sent by the server. +.Pp Up to 10 TACACS+ servers may be specified. The servers are tried in order, until a valid response is received or the list is exhausted. @@ -120,11 +110,13 @@ shared secrets, it should not be readable except by root. tacserver.domain.com OurLittleSecret # A server using a non-standard port, with an increased timeout and -# the "single-connection" option. -auth.domain.com:4333 "Don't tell!!" 15 single-connection +# the "single-connection" option, and overrides for the for uid, gid +# and shell attributes. +auth.domain.com:4333 "Don't tell!!" 15 single-connection \e + uid=1001 gid=20 shell="/usr/local/bin/zsh" # A server specified by its IP address: -192.168.27.81 $X*#..38947ax-+= +192.168.27.81 $X*#..38947ax-+= shell="/sbin/nologin" .Ed .Sh SEE ALSO .Xr libtacplus 3 diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk index 15971189306a..3ef920ec1459 100644 --- a/share/mk/src.libnames.mk +++ b/share/mk/src.libnames.mk @@ -402,7 +402,7 @@ _DP_c+= ssp_nonshared .endif _DP_stats= sbuf pthread _DP_stdthreads= pthread -_DP_tacplus= md +_DP_tacplus= md pam _DP_ncursesw= tinfow _DP_formw= ncursesw _DP_nvpair= spl From nobody Tue Jun 13 18:16:10 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgcF71ZFGz4dY3w; Tue, 13 Jun 2023 18:16:11 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgcF66FT5z3Jnb; Tue, 13 Jun 2023 18:16:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686680170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p975VHFu7sDVwVqUUiTNyHHbSFj/MHib7BASh3UzVEg=; b=JIokXzKhX07Tlandb0/vZx8qEunolIya3l3BBV5B/IB+TW19tb4of0tHIrov1lGERY9jVe UQolEo/6bzZOdrhv+UhJ4MMf8ykJaGeOWO0OC1VgccVJsA88F5B8aLiaiJu1nVgdmmaZTN nygYANa5xYD6mSMPZCGjk7hEyVIKmeUvsxgOac4/zoa75l5UNXhKtde40UEMcKizh0EOpE 83kMfCM3o/aOi4OcJifqaf+P5norg/3jRWjD+W3zurVF+oAqsH0AX2TCVRFFuwGuUylZeS j7BmuHgCt9emuQCAxLEIpFvec8i5JbvsLLC2FlIBZDudMuHI2FHPa7+/iADDhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686680170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p975VHFu7sDVwVqUUiTNyHHbSFj/MHib7BASh3UzVEg=; b=REYuPebxazcrWxiVhlDmN7xyEgb2SI/qKorvN7NPod/eNp0k0bNlehToQHY7hzVnLuhltl ozVQRRXlmFgRkIlBObawMclEptadIEIvjOJXDM00jnauH1djj4zo3uIeRJm/DbjnLEZ/Uk fmBHYrXkfzLCKvKu7xQSekdc3dVM+5AfB14Ix2qGWFA/r7+nM7J8lhXBjT2FTmvvvgNLrx weKfxHZLTtFEWaY4yPY4TKWMOGow9vYsZcNGzZ64zNnsyZrvNkPtvaPMvZxdOvbdhFLVOi NbOM3PRwnv3TF9vT8jZd8wwBhNEjtGqkjRVyaz0YBA+N6PlP5PIM5T3/Ok/3Fg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686680170; a=rsa-sha256; cv=none; b=DrF8+J0XD2E6x6oMAsOnnUSkZYdsh+JwVEugfN8ZzDuWDiN7qBXvxFUC+7ayCVX+5e9bwU hYz4lcEFQ1DqLMcKHC2+RWv0yC2TGm84gupN7q6dtj9b0zQBNRDYzSkwQFOC7srmvXbsfe TUuJkecqZHZ86Yjs/RbL0cKcN/zAj7y1y2u9hebKJgjIfudH/Nh9JaonwEsIzWaHteFxuR tnLqu6GMwy4UMFjBldIRnAjBW6L6/7xFGxoVmFXUAqJtc3Z1WEfH/fdv71pQQV2mnEBOfp yNwIWgFea0pOIKxsVlHWg4Wi4UCYyK+T3sBP4RCwRhSQkTiGZ0wK9CX9Q7ypwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgcF65LNGzXP4; Tue, 13 Jun 2023 18:16:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DIGAFr004409; Tue, 13 Jun 2023 18:16:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DIGAUd004408; Tue, 13 Jun 2023 18:16:10 GMT (envelope-from git) Date: Tue, 13 Jun 2023 18:16:10 GMT Message-Id: <202306131816.35DIGAUd004408@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: 246aec9a3ce3 - main - nss_tacplus: Support setting the login class. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 246aec9a3ce305272f35e6416910024f602a03c1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=246aec9a3ce305272f35e6416910024f602a03c1 commit 246aec9a3ce305272f35e6416910024f602a03c1 Author: Dag-Erling Smørgrav AuthorDate: 2023-06-13 16:06:27 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-13 16:08:32 +0000 nss_tacplus: Support setting the login class. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj Differential Revision: https://reviews.freebsd.org/D40376 --- lib/nss_tacplus/nss_tacplus.8 | 5 ++++- lib/nss_tacplus/nss_tacplus.c | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/nss_tacplus/nss_tacplus.8 b/lib/nss_tacplus/nss_tacplus.8 index 4aaff4b5dd3a..f5c87a836f9a 100644 --- a/lib/nss_tacplus/nss_tacplus.8 +++ b/lib/nss_tacplus/nss_tacplus.8 @@ -3,7 +3,7 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd May 17, 2023 +.Dd June 13, 2023 .Dt NSS_TACPLUS 8 .Os .Sh NAME @@ -57,6 +57,9 @@ Numeric primary group ID. Must be between 0 and .Dv GID_MAX . Defaults to 65534. +.It Va CLASS +Login class. +Left blank if not provided. .It Va GECOS Display name. If not provided, the user name is used instead. diff --git a/lib/nss_tacplus/nss_tacplus.c b/lib/nss_tacplus/nss_tacplus.c index a59332504bc0..e18ffe2315ce 100644 --- a/lib/nss_tacplus/nss_tacplus.c +++ b/lib/nss_tacplus/nss_tacplus.c @@ -24,6 +24,7 @@ extern int __isthreaded; #define DEF_UID 65534 #define DEF_GID 65534 +#define DEF_CLASS "" #define DEF_DIR "/" #define DEF_SHELL "/bin/sh" @@ -192,6 +193,13 @@ tacplus_getpwnam_r(const char *name, struct passwd *pwd, char *buffer, return (NS_RETURN); } pwd->pw_gid = num; + } else if (strcasecmp(av, "class") == 0) { + pwd->pw_class = tacplus_copystr(value, &buffer, + &bufsize); + if (pwd->pw_class == NULL) { + free(av); + return (NS_RETURN); + } } else if (strcasecmp(av, "gecos") == 0) { pwd->pw_gecos = tacplus_copystr(value, &buffer, &bufsize); @@ -217,6 +225,10 @@ tacplus_getpwnam_r(const char *name, struct passwd *pwd, char *buffer, free(av); } + /* default class if none was provided */ + if (pwd->pw_class == NULL) + pwd->pw_class = tacplus_copystr(DEF_CLASS, &buffer, &bufsize); + /* gecos equal to name if none was provided */ if (pwd->pw_gecos == NULL) pwd->pw_gecos = pwd->pw_name; From nobody Tue Jun 13 21:29:23 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QghX36DL0z4cb7G; Tue, 13 Jun 2023 21:29:23 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QghX35Ghcz421x; Tue, 13 Jun 2023 21:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686691763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=moRFRcD3+WMqA7PEKREHO7zf9D/rU+DFm+E5oPpqmpg=; b=VTcTnWcEAousyVC0C8L8dOTkPQmNTOksdCunhM0Q6eS0Cyhq4vzOhd4N8QqgJd5drJy/qM bWrh1IcDEM2C+rPlObs8gamA2M16FJlMdMMCuwNY1EW424ax4OnM5XM/24JeU3yR2hws4t NWV4UUNMXAlf3cXNoaQQiRq2MjbFJHNhbi9suEDi+WpqeYoAmTUuB/1k9YsR3PJ3F7g5VI piKbG7XBiYL6am2z8JL8scTdo182sWGigIONy/xRScy6nquQAcbZvDDjbnKOim1Jn+6alB uDhPoU/5L0ATtV4ppTTKTAIQpE8nCW6DTWHUIyFBwsdpUqXdkIJUgfnWxK5asg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686691763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=moRFRcD3+WMqA7PEKREHO7zf9D/rU+DFm+E5oPpqmpg=; b=XJi1XJmHrEzrBUm17baljJ1dQnR4PK3/FU2UkIcaPIq1ITe1RQTLXWGQNwCT1krZdchZ91 JeZcqfFimSKq3z80ZWNh+stk77zrUa/WuN0XZ7wU3I+RmWDAQ2OYuKliYKURgGhiLSKSqk dlPyw/hEiZC6+mdYy9LWnSq9veHmVDehEHfoooLpItmdGgaxSvi8N9V5ozRtTrYu7MiBax W63YGotcwK4TgC2MIl+Oo7fDOnjX6PeTNN07ATk8wCwN9tN8JoGoAaaheKcASiapK9Vv6j DW+/Z8hXXYWZ2Wc9CLFJAyNTq5zkWjSle8B4dCg4YxiUuRgLi7fLPC7AVMXxzQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686691763; a=rsa-sha256; cv=none; b=N8SsM11z1p9MLy0fVkmrLqlMZgOuinoE07cpmcvmX7Mhc3Vfa4TJkzA2H2cKbeninwbQAn /OOV/9nTUzChNgOwrTMfQsKxu9q1C4rJNcDN+ooUAvqNx88HpvJyf/JoF3MCn1nOZ1TENy kLYmh28VAKMM3LIqiCpfocTIreNaL+joi6ly8g9UuxUCrWd00REFNp58GF2f5Z7FiiowAA 8Eeqr/hE14/cSuuQgvimdZ8KBid+JLB4JYKhddo4UWFb1joeNuWL7M6vX3N7zIulGAe8Gf 1nObspy3ep/c3EREvmp2zQmIh4U107qbg7kutvtyyGRmJMd0jncrPxYiLQOknA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QghX32wvpzdVT; Tue, 13 Jun 2023 21:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35DLTNaO018620; Tue, 13 Jun 2023 21:29:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35DLTNuw018619; Tue, 13 Jun 2023 21:29:23 GMT (envelope-from git) Date: Tue, 13 Jun 2023 21:29:23 GMT Message-Id: <202306132129.35DLTNuw018619@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: f122e552354e - stable/13 - Allow a comma-separated list in login class capabilities, by adding a version of strcspn that allows quoting. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f122e552354e84f18b82d11e40c6f8f214ed8abc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f122e552354e84f18b82d11e40c6f8f214ed8abc commit f122e552354e84f18b82d11e40c6f8f214ed8abc Author: Sean Eric Fagan AuthorDate: 2023-01-14 18:37:31 +0000 Commit: Ed Maste CommitDate: 2023-06-13 21:28:54 +0000 Allow a comma-separated list in login class capabilities, by adding a version of strcspn that allows quoting. PR: 236204 Differential Revision: https://reviews.freebsd.org/D25368 (cherry picked from commit f32db406504ece1b28f43dc816736e081fe22826) --- lib/libutil/login_cap.c | 109 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) diff --git a/lib/libutil/login_cap.c b/lib/libutil/login_cap.c index cea7630698af..ffefb865ed5e 100644 --- a/lib/libutil/login_cap.c +++ b/lib/libutil/login_cap.c @@ -94,6 +94,101 @@ allocarray(size_t sz) } +/* + * This is a variant of strcspn, which checks for quoted + * strings. That is,: + * strcspn_quote("how 'now, brown' cow", ",", NULL); + * will return the index for the nul, rather than the comma, because + * the string is quoted. It does not handle escaped characters + * at this time. + */ +static size_t +strcspn_quote(const char *str, const char *exclude, int *is_quoted) +{ + size_t indx = 0; + char quote = 0; + + if (str == NULL) + return 0; + + if (is_quoted) + *is_quoted = 0; + + for (indx = 0; str[indx] != 0; indx++) { + if (quote && str[indx] == quote) { + if (is_quoted) + *is_quoted = 1; + quote = 0; + continue; + } + if (quote == 0 && + (str[indx] == '\'' || str[indx] == '"')) { + quote = str[indx]; + continue; + } + if (quote == 0 && + strchr(exclude, str[indx]) != NULL) + return indx; + } + return indx; +} + +/* + * Remove quotes from the given string. + * It's a very simplistic approach: the first + * single or double quote it finds, it looks for + * the next one, and if it finds it, moves the + * entire string backwards in two chunks + * (first quote + 1 to first quote, length + * rest of string, and then second quote + 1 + * to second quote, length rest of the string). + */ +static void +remove_quotes(char *str) +{ + static const char *quote_chars = "'\""; + char qc = 0; + int found = 0; + + do { + char *loc = NULL; + + found = 0; + /* + * If qc is 0, then we haven't found + * a quote yet, so do a strcspn search. + */ + if (qc == 0) { + size_t indx; + indx = strcspn(str, quote_chars); + if (str[indx] == '\0') + return; /* We're done */ + loc = str + indx; + qc = str[indx]; + } else { + /* + * We've found a quote character, + * so use strchr to find the next one. + */ + loc = strchr(str, qc); + if (loc == NULL) + return; + qc = 0; + } + if (loc) { + /* + * This gives us the location of the + * quoted character. We need to move + * the entire string down, from loc+1 + * to loc. + */ + size_t len = strlen(loc + 1) + 1; + memmove(loc, loc + 1, len); + found = 1; + } + } while (found != 0); +} + /* * arrayize() * Turn a simple string separated by any of @@ -112,7 +207,7 @@ arrayize(const char *str, const char *chars, int *size) /* count the sub-strings */ for (i = 0, cptr = str; *cptr; i++) { - int count = strcspn(cptr, chars); + int count = strcspn_quote(cptr, chars, NULL); cptr += count; if (*cptr) ++cptr; @@ -126,11 +221,21 @@ arrayize(const char *str, const char *chars, int *size) /* now split the string */ i = 0; while (*ptr) { - int count = strcspn(ptr, chars); + int quoted = 0; + int count = strcspn_quote(ptr, chars, "ed); + char *base = ptr; res[i++] = ptr; ptr += count; if (*ptr) *ptr++ = '\0'; + /* + * If the string contains a quoted element, we + * need to remove the quotes. + */ + if (quoted) { + remove_quotes(base); + } + } res[i] = NULL; } From nobody Wed Jun 14 03:24:31 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgrPq3wnHz4dkGC; Wed, 14 Jun 2023 03:24:31 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgrPq3TpXz3xjD; Wed, 14 Jun 2023 03:24:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686713071; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J8qYZ1uwp9DhlGtSycSeAc4lqwrunUdewyA1PCI3pWE=; b=o3U0SFdrM0+W08Fbxg5iIPsbxgmtyi8FWkycltLrz1ptQDRiE+u5Ep4vigDWMfyfd8iEmS pvLXsbXLtNQlRld0sofbwQ8N9uN8N08KV9HBy2xUG0xSnalsrThkW3cVnDnl1ghgDQV3Yt ssBIN7qwBNcIkv9P61nN9YlljaeuE1kB/sgvOKILNwk6JNp/PRkJ8crKtsfaWl25dVe0kz 1u4nc/PdSQcf6yDYLIZkTOKsWyG6CYxMGoR2DgXWulwIJkY7C/aOMuD9jsL/syUA+SEC9A gK9OLT627SucJoBtT1sV9uyj1MS914RaoD9l2+5gxJS3IQq1GJaSVNHKZtckUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686713071; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J8qYZ1uwp9DhlGtSycSeAc4lqwrunUdewyA1PCI3pWE=; b=XXSSUgoEzSjHRHt1Lw5ojg/v9fMYf4OAUv8/4FJnGqlxyN09Zu+ZQzZXQj6BF1XoEMnz4n oFyIEvk1URZnhLgSge1bXfOk0JOO8cOCRzsa1ae71f/Y5p5ea9QsfMaO0QDnL/O48f3TVp IIMgG4lG5/ke33r9l+PMr1Scj3mpboU18BYACwTGZ+aKr+wB5N7f3/BWY5O2S54nNcK/6v v/wjOt9VJd1Tbrf4F3JQMwZXfi1WuG1VTDdv9tRQkI8yx64pPHjz3tZuux54dJaDCIuRyd 3+EjqdmU3kgw0XWWCUo4/WJCtwk3zT30pzvvqpY/nfHxboElV/EdNG5WV/xYZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686713071; a=rsa-sha256; cv=none; b=M/vaDvNC3Fs1QZi3NYPi5fNAy+i3lE9e0IbqBSfz5PoUpdvktosZtaNp/0NMphPlbvi52U etuog3A94WoDsLfXfdZ8A1umRmpIrVsPHE/nyXHPhtMkfmHp82qv1+t6ZRmW6iylmySQua 3/2lUcPoQxdqM/UAzNjOU6MRa1bL1gRj8RuEOU1xkgTDFJUht8SisZBvBdJo4q7rnvec7q ksM08JKghCU3unEo6kKZ7+d26Lb2/OX4+mZe0nVsYDbkFQlYtsTETRH7qGbp5fIREDoSqM ik4JYeiTy6c75bj4ZDvpPgxVe6WLuFxdoRfbgPh+vyxPhlq8peIBPJVndvtExA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgrPq2YMNzncC; Wed, 14 Jun 2023 03:24:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E3OVr1011193; Wed, 14 Jun 2023 03:24:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E3OVxA011192; Wed, 14 Jun 2023 03:24:31 GMT (envelope-from git) Date: Wed, 14 Jun 2023 03:24:31 GMT Message-Id: <202306140324.35E3OVxA011192@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI Subject: git: 6cc4a1c3205a - main - Fix build with gcc12. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6cc4a1c3205a7624846c2c84a7d829aeb208a138 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=6cc4a1c3205a7624846c2c84a7d829aeb208a138 commit 6cc4a1c3205a7624846c2c84a7d829aeb208a138 Author: Xin LI AuthorDate: 2023-06-14 03:24:07 +0000 Commit: Xin LI CommitDate: 2023-06-14 03:24:07 +0000 Fix build with gcc12. --- lib/libutil/tests/expand_number_test.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/libutil/tests/expand_number_test.c b/lib/libutil/tests/expand_number_test.c index 319df26c9621..42e3170ac4cf 100644 --- a/lib/libutil/tests/expand_number_test.c +++ b/lib/libutil/tests/expand_number_test.c @@ -68,15 +68,14 @@ ATF_TC_BODY(positivetests, tc) ATF_TC_WITHOUT_HEAD(negativetests); ATF_TC_BODY(negativetests, tc) { - int retval; uint64_t num; - ATF_CHECK_ERRNO(EINVAL, retval = expand_number("", &num)); - ATF_CHECK_ERRNO(EINVAL, retval = expand_number("x", &num)); - ATF_CHECK_ERRNO(EINVAL, retval = expand_number("1bb", &num)); - ATF_CHECK_ERRNO(EINVAL, retval = expand_number("1x", &num)); - ATF_CHECK_ERRNO(EINVAL, retval = expand_number("1kx", &num)); - ATF_CHECK_ERRNO(ERANGE, retval = expand_number("16E", &num)); + ATF_CHECK_ERRNO(EINVAL, expand_number("", &num)); + ATF_CHECK_ERRNO(EINVAL, expand_number("x", &num)); + ATF_CHECK_ERRNO(EINVAL, expand_number("1bb", &num)); + ATF_CHECK_ERRNO(EINVAL, expand_number("1x", &num)); + ATF_CHECK_ERRNO(EINVAL, expand_number("1kx", &num)); + ATF_CHECK_ERRNO(ERANGE, expand_number("16E", &num)); } ATF_TP_ADD_TCS(tp) From nobody Wed Jun 14 03:59:04 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qgs9h6nZHz4dptj; Wed, 14 Jun 2023 03:59:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qgs9h6BPjz42VM; Wed, 14 Jun 2023 03:59:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686715144; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6C03waSbrBKJYnoM86N8arHkXeX//PFvAyo0kp/Qfoo=; b=eNGAzhMs54Qg/ICPdXN/W9rE3WCi/u2gM5mqu++7n/d78Y78SKGdsacU/ecdiUkM7bg4IC NRTZys19gGpZKjRf9TspXGICnFhoCmtq/exlhG+TD+E+zk0HmimNgltfTo8d+wFh0IsoJz 4ovx1SCA60s5efKutuq6P1HMXDnWE2QsYuHPmjopzZWB+nRIzouBe1bgGyQ8o10gUfqrNt QjGdmMwIzA6/vpOc82+zJajI03vIu8ihb59XjN00CU+2TahY1JV7HQjJvMzzfUmjTNWkFY G761IJ9zV5GzeQy4IbllRyPsiMNBFxPPm6YlCCigX5BZdkPRSr+IH43Y0uYFVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686715144; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6C03waSbrBKJYnoM86N8arHkXeX//PFvAyo0kp/Qfoo=; b=l5OZubUYr5myYZjeZsU+mMiOVXJASzVezzdOuiWh+PsjWntBq57doex7in9FQxMuUy3lH2 god7c7gc113xDVqdKf0jAVrAreUVkswzuzBoJSu1CPUTB2RN2J1OE037PMokq3ujrNdMss Dlwn1Vn9jzR77YAoAtS96qHfpdIhFXPLwNyjA36GyPTe7aCvJfPodpBKHVvSvwWCjj5dyg p+doNKF9gN9f0qIH3dQWKO2v4GNJF5SG20AWhDubaING7sNRUH2GcJWvBjiJcsB+bYV0CZ gCsGHGlf7hLG3oAOvPFh7/KvDgc2TLFNGFpwsL54Rr2Md9RCJwUYbgJ7pywizg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686715144; a=rsa-sha256; cv=none; b=t/9q4nurFzq5gQ/7e3khEwDo54+2T48LeHn9jywZG68i8pNqTgfUY0mG5B9+2Za0naKPjm LdQ+I9wUr8Pc5QhLYDeSyqZHjptlKLVBz/MDevlQYCbUSnuhvVVx+gRrB7EekGd7/y+g+x aj0ZmnUzIBIdYAcsRwJnZwABSjDF2x4/ELXbQ/KFo4xHufp3NswzHCjDikTnV7TB3Klx7T R5070E4p8u6SG1ZrYE4xUKSi0W7afKN3eFbL0puZsoee7VT27YQMKp/vJEdtgNlCe4gKfd PYPi/TgPnweQi5yerjDIu8bodTt7FH64q08100NLbj7OzXdjzbDYnfqLDubBkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qgs9h59Xszpcr; Wed, 14 Jun 2023 03:59:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E3x4qx060842; Wed, 14 Jun 2023 03:59:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E3x4fJ060841; Wed, 14 Jun 2023 03:59:04 GMT (envelope-from git) Date: Wed, 14 Jun 2023 03:59:04 GMT Message-Id: <202306140359.35E3x4fJ060841@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 171a7bbfc048 - main - tcpdump: fix build with WITHOUT_PF=1 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 171a7bbfc04885150401ab64d96793373a8b2061 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=171a7bbfc04885150401ab64d96793373a8b2061 commit 171a7bbfc04885150401ab64d96793373a8b2061 Author: Gleb Smirnoff AuthorDate: 2023-06-14 03:58:36 +0000 Commit: Gleb Smirnoff CommitDate: 2023-06-14 03:58:36 +0000 tcpdump: fix build with WITHOUT_PF=1 Fixes: ee67461e56828dd1f8de165947ba83f6d9148a87 --- contrib/tcpdump/print.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/tcpdump/print.c b/contrib/tcpdump/print.c index 9c0ab8622de1..42a4548e8689 100644 --- a/contrib/tcpdump/print.c +++ b/contrib/tcpdump/print.c @@ -185,7 +185,7 @@ static const struct printer printers[] = { #ifdef DLT_LOOP { null_if_print, DLT_LOOP }, #endif -#ifdef DLT_PFLOG +#if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H) { pflog_if_print, DLT_PFLOG }, #endif #ifdef DLT_PKTAP From nobody Wed Jun 14 07:19:06 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QgxcV74V8z4cPm1; Wed, 14 Jun 2023 07:19:06 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QgxcV6VS9z4kdh; Wed, 14 Jun 2023 07:19:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686727146; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=14uIVOF0PynAMQhpy0Z+OCfE9ZyReLbYz6/wR49odGU=; b=HsXu0vAyeDOj81vJm1MxSWW+qAipQj4EqAmNCCRhlXFOXsHtl2h6N/bKHtqQcALqygvVKs Lh/01zOruAS9L00C2Mw1ah436EgXhfzG1Z/Kdo5OT6PDjoVs7XS4+1HroPSuocQ7ePQ4jm yx0js0/6l71v/GpDwBJf3hwXB2Gb4ucMg9NmEFsSXCAF4/jDImNnSkmzlja2AV9nCBAn89 BSkDbeEUiGdRA1iI+BlE1XHxVJCZ53ez2vaF+A06mR6+Pb0WLn8u4NtMv+D2YbHqgtnAdh 8r3Q/7ZuMLoZK5S4fYi+3GZbdANvSxDVjEuzUuq+TPWK9bCKTPXfIXLUz9hgaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686727146; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=14uIVOF0PynAMQhpy0Z+OCfE9ZyReLbYz6/wR49odGU=; b=djhGv+Hf5KzRln+2DvE/eR6O9rqdFk/3JZDcVl1pojh8VN+esMdEE6Z4vEAbLD2eV+WAeF FPsKNZ1QJt6b5/zeW+2rUL85fvAX4luP7WbNZ0aQ/8DIUqkUAFyLgxKM06GhO9e8azWwFA 7aNfL/V7XCwf47O9P7nY2Pan0UstVRoOfDpj9Rjk4I7F4kPLIAPk0etM4+3U5h8xsC08CN Lb1iElugSs1zMzs8X2ANb1YLs85f4aPNmz4zqPLBxXjPMW0DQ8kXTEJ753LAMNb91Y8VWG WFI5/ParKANDS18AIpU/0ck8uBTANufDHhZj599V/ebOEv/rOzIUZz8ob6zVJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686727146; a=rsa-sha256; cv=none; b=MwGurPnSBNSgVgYEBV3rGFbu9HAjiVx8aRAbdBTM4EknL4uydVF+KdQPGZFs5KGvP1RS/Q jtDk+sb55h9DlJfod2P1TYe3WsKO0MOAWEt4HGc4L19FSkZzxk9UqWdsrlTiy0fTttYm3c OGzfsCxOUJDwMrFOSLE8Ng9BRNX65GJvzBmDhQ1X8sINB0Yz80MViqoOjfTWBdJpiBVxYS Y5Aj5yv4Gb31cFfaX89rbXt3JvFRoen7rSOhwrJklb0xa7+rIbGaTi0HoiwnStWlghXkgA kwH9Dcr3aK0D1dR9IfqDPIbVkdhtXK70AutUwP5OEokuwiC0ym/rAD3nNCBR3Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QgxcV5RMwzvJh; Wed, 14 Jun 2023 07:19:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E7J6cp090233; Wed, 14 Jun 2023 07:19:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E7J6p7090232; Wed, 14 Jun 2023 07:19:06 GMT (envelope-from git) Date: Wed, 14 Jun 2023 07:19:06 GMT Message-Id: <202306140719.35E7J6p7090232@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Emmanuel Vadot Subject: git: 624f956bd91f - main - fwget: Always install packages List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 624f956bd91f118d12b2fef5ff01521ed7d8a935 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=624f956bd91f118d12b2fef5ff01521ed7d8a935 commit 624f956bd91f118d12b2fef5ff01521ed7d8a935 Author: Emmanuel Vadot AuthorDate: 2023-06-14 07:17:55 +0000 Commit: Emmanuel Vadot CommitDate: 2023-06-14 07:17:55 +0000 fwget: Always install packages This wasn't done before as -y wasn't added to the pkg install line. Sponsored by: Beckhoff Automation GmbH & Co. KG --- usr.sbin/fwget/fwget.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/fwget/fwget.sh b/usr.sbin/fwget/fwget.sh index 89177d936107..2d5ad8adffd8 100644 --- a/usr.sbin/fwget/fwget.sh +++ b/usr.sbin/fwget/fwget.sh @@ -122,4 +122,4 @@ if [ "${DRY_RUN}" = "y" ]; then exit 0 fi -pkg install -q ${packages} +pkg install -qy ${packages} From nobody Wed Jun 14 07:32:59 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qgxww01Y7z4cXFf; Wed, 14 Jun 2023 07:33:20 +0000 (UTC) (envelope-from garyj@gmx.de) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mout.gmx.net", Issuer "Telekom Security ServerID OV Class 2 CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qgxwv3ZCQz3FZY; Wed, 14 Jun 2023 07:33:19 +0000 (UTC) (envelope-from garyj@gmx.de) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1686727997; x=1687332797; i=garyj@gmx.de; bh=NtRfMY9VepMxaIC0xBL3giTpAroJrnGY3jHGwL/IbiE=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References:Reply- To; b=LpjVcIXSMbfU12BU1VgepMhzNhkQPEmPZKkRxSCxPLO7xZfsHTrk4igsCrn5FkpdSHpcUov pBLfy7j5SuzcdWYVHcaHwSXNYpbzHYNXJsvUyX5eGFVnGUqQIkaL+/peL68YNGaf0Sf5lhWMY SjAmTrlm9fc1Yx/Zk52HcrTEdyOs7rjvXRVlZWWPqHF6O7HTVSdWlT2kIcNdzQlvabBzc6hFJ cn1oCNHsxTmiRW27baPgRNnnX+xaljaDmJbx/QV1EQNIPftGFDN0Bp5HWy5/KpU2GcvF7bPa7 OPJKySU8mzf7Culsyih+ymHpke7idGdzLCkVkWih3W0RSOeaVNiw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from ernst.home ([91.59.239.189]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M1po0-1q784r1UVM-002DiP; Wed, 14 Jun 2023 09:33:17 +0200 Date: Wed, 14 Jun 2023 07:32:59 +0000 From: Gary Jennejohn To: Gleb Smirnoff Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 171a7bbfc048 - main - tcpdump: fix build with WITHOUT_PF=1 Message-ID: <20230614093259.0e4a662c@ernst.home> In-Reply-To: <202306140359.35E3x4fJ060841@gitrepo.freebsd.org> References: <202306140359.35E3x4fJ060841@gitrepo.freebsd.org> Reply-To: garyj@gmx.de X-Mailer: Claws Mail 3.19.0 (GTK+ 2.24.33; amd64-portbld-freebsd14.0) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:vVBshlsQJhPxxde534MthKFKHlTdYwEHW3QB5A0EtvQDt2ishR4 ywtSUE18nc1b4i0qxn+U3E1M5vcBTVyAYA2SpGMvBBh1ENOJnc5OMnPwxa05hdSzqR2cHX5 03C4cWHfpkzo4a9J/aLvMGHRXIvwPyXlLYH3/2s/wKRUimEoLPsNvyWzd9mrHF+u1nNOSoR WnHBnueAeVzQ7m4KiMIpg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:cGi/d1L6PLg=;DCZcen8hZj2VazHu2FhScznZyxV q9rNZXQNnmwB1fI5gfcVqnKrmmvEay+QbdOz0ZaH9qhPI4nmpEe02pin8nGLh5KE27pQGj/M/ boY6zeiUQXtmmIOHI80WuWhWzXQmROWqhvQKEtIw0/2zfbvglL8SkCjAk906P1RITxuxo3ccl c44yCsW9EmmZjOeu1IiqY66kGIYcEnFKStATzLn3bo/Xb7YBd9iECpK1PZUeyJ7wfTNxUUkyn MhoA03gqU2UNoQvhkIvwyR5NHRIPY2nXjAR4R5SjplzccCg8NKnv8n8feiSfcbzaISlw57Wo3 N1jX4jCTvUsAQiwoe/cPPNiV1Xxgi8b8SIRJ94X0w9ByWYLXExjuLx2UDf6Bv/3vvT1oiPSGS 4ad1V9Q/Ol9PXVRsfYdec3DqsBLvbe09mnP1fq88JO6IvA6XlTAylirmBnlJoAO0BCfF+beLD VXIT0Cl9XnVP+w8MWJjxvcmRVZoeLWCnYovrcmJgZk4OwDKIMG4oN1yOFJfpZpBJKsBl/jSas VXPHHiAh9C39LrUyvZyuvRgOlhw5KUkRXBiPn0xfCOpE7dutpOB5KdYP29iY+4Un97XCz/qI4 yw5r9h7Cw5isxRaZvPkJZD2qrbg8gc2MkNzP+QQX9KrYVoI2l2glE22cx3xrW6bAwQC+x4gVk pvghPh6EBxn1bRDgcVEEBPNRFzMayadJXrEg0xkZ1O7Xv0jubw7F2FsPDfNNAjHiXZicCwLhq OdcoMIMw63JcVAPISA1PrLLtIH/MnJCFpl24tgNq68OeOMgAAB+TbIiO2qhquTBxS+yunLPZ+ M0T0UqJikcxYXALfyQAoIzkoXhR8hi76gL3OdIz2R12uoakyviutI2mE01LbM8Tx8guqUdyvd o8o8jaxDfFA2LvSl7KKQ8TyRxMD4ZIs0BAI/VLmk4JiHX+HpuSpTR4KSIQnVO8Onckf2VZhi1 zDlraQ== X-Rspamd-Queue-Id: 4Qgxwv3ZCQz3FZY X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:8560, ipnet:212.227.0.0/16, country:DE] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N On Wed, 14 Jun 2023 03:59:04 GMT Gleb Smirnoff wrote: > The branch main has been updated by glebius: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D171a7bbfc04885150401ab64d= 96793373a8b2061 > > commit 171a7bbfc04885150401ab64d96793373a8b2061 > Author: Gleb Smirnoff > AuthorDate: 2023-06-14 03:58:36 +0000 > Commit: Gleb Smirnoff > CommitDate: 2023-06-14 03:58:36 +0000 > > tcpdump: fix build with WITHOUT_PF=3D1 > > Fixes: ee67461e56828dd1f8de165947ba83f6d9148a87 > --- > contrib/tcpdump/print.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/contrib/tcpdump/print.c b/contrib/tcpdump/print.c > index 9c0ab8622de1..42a4548e8689 100644 > --- a/contrib/tcpdump/print.c > +++ b/contrib/tcpdump/print.c > @@ -185,7 +185,7 @@ static const struct printer printers[] =3D { > #ifdef DLT_LOOP > { null_if_print, DLT_LOOP }, > #endif > -#ifdef DLT_PFLOG > +#if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H) > { pflog_if_print, DLT_PFLOG }, > #endif > #ifdef DLT_PKTAP > Thank you, Gleb! =2D- Gary Jennejohn From nobody Wed Jun 14 09:16:20 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh0Cm36Kkz4d3TM; Wed, 14 Jun 2023 09:16:20 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh0Cm2hJtz3mg1; Wed, 14 Jun 2023 09:16:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hHUGUQXrRFXZHWfJ4rXOUnNCDowuAId1ORWCGncGMwA=; b=jV7yHgb6CkA17xoVm9UPZSh0qTba5jo6EIemCKDqWojBGvEq1LD3I3VILd7NVp+ccMN8w8 QR11X6rgi6y0n7bQz4uerKMZn7B3sAsRLxC9Fqbo+39etyCEwsYChMDJrpSf0IDptnoGU5 KSVsfHbdGs3QpiDcezY9HcTrwG8HJN0yVxcfE5hgNvhVM3YD6TPfw+jZNCR7zSZpf1dQOp vmNngYaajkCRHOh3Ds4qo6rxvEu7C3Kn8MOcroL1nyvqBrz2U5NhygFSt9p2GlgdRw7zmb HVH1qwH/x2Z5MBxtizKrUqk12ZbbGJ0PYNa8BM+5wtef9ypB4qFjWMDltafXNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hHUGUQXrRFXZHWfJ4rXOUnNCDowuAId1ORWCGncGMwA=; b=kCKmtfhWguVWGkF+eIE1SSRwq7R9I1BbVvNjYmptsOvdAvFLssYZbbcL78YafW7RouySM6 kCoKNyXTCgcdYZCd7Zk9hUdBOY7UgOtv27s4MNzzDsqGIDCGa9o8FJWyfUArzyrfdDmd8x +RsqZwdNplwC8ngZ72Xy5nChw6YgKF9BaJrAcUVcyluiIszYreODrLHx/5YPuiywfXdprU 4q2tWkOSV+zOM/qv5oBkYdgpgp5JrCqY8KkeZHBbqULYUFM32V73H1mKrIeYhtT2k5kdUA WHMANsxJepFQU97kYl3JVawhey9nzBc1c0a+07rHLGOhJWVNEwnxJFkjd0zG8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686734180; a=rsa-sha256; cv=none; b=qzq0ORUgaoN3O66XtPM7HFA5lqQ+IafrCGSmZHYfc1C210ao+u0J5mAuHAvzjvrEiDazSv o54XnC/PWgcWScKPfbH2LqHr/SB78WHsrMpKEuA30C201VST2U4kLYp9Q+qmTvw9QeL/qd sc8LwUFEb+bKvDv0qG+im9b7SUm/qWhlUsKjKbiC7Iy6RCxyEb05KTubOFsSB0xq8ytkNn ZWpgDQJHE+IDsOBDrnxttmwzQMdNWKS9htHcFWWcu511M3uVrSCGMfXKUDMvWB3nstB10i kQr/h0ESfaUcSWeSIvy/M687F/Gj59i06z8ZQfSqjz/xziEHzxU/1/zpA/qQgQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh0Cm1nNXzyBx; Wed, 14 Jun 2023 09:16:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E9GKG7086830; Wed, 14 Jun 2023 09:16:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E9GKcm086829; Wed, 14 Jun 2023 09:16:20 GMT (envelope-from git) Date: Wed, 14 Jun 2023 09:16:20 GMT Message-Id: <202306140916.35E9GKcm086829@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: d61064229fb2 - main - ifconfig: fix comparison in printmimo(). List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d61064229fb2f0bc770a835a7744bbe6e7c7e1fd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=d61064229fb2f0bc770a835a7744bbe6e7c7e1fd commit d61064229fb2f0bc770a835a7744bbe6e7c7e1fd Author: Alexander V. Chernikov AuthorDate: 2023-06-14 07:38:53 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-14 07:39:06 +0000 ifconfig: fix comparison in printmimo(). Differential Revision: https://reviews.freebsd.org/D40301 MFC after: 2 weeks --- sbin/ifconfig/ifieee80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index 88099aeb7094..480a8472f293 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -3694,7 +3694,7 @@ printmimo(const struct ieee80211_mimo_info *mi) int r = 0; for (i = 0; i < IEEE80211_MAX_CHAINS; i++) { - if (mi->ch[i].rssi != 0) { + if (mi->ch[i].rssi[0] != 0) { r = 1; break; } From nobody Wed Jun 14 09:16:21 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh0Cn5FBcz4d3L8; Wed, 14 Jun 2023 09:16:21 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh0Cn4JLfz3mtt; Wed, 14 Jun 2023 09:16:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=esmDN7mF2eMb6rRiCTBG8TOGKG3uFm3LVKR06gfqcP4=; b=kxWrQvtOl8B6f0C3TKqtntTzRzN7mSg5EcUwCt3qqvMiowtmJRkPr9JgO/YCUQXzp2a6Cz xPYI1zUlKJX98U3sN3SHuLul+eKX07bCAShqriRm8VWj/mgNAzmMjixyDukS0/utvpYujn KqPjR7taeWBX+4+8NV64AARdOo8GKHbB2DsQvM3njJqUkw6RaPvHT6AmScaWOLN5M+XnnV ekPSRkT0bxvrCp9XUE9sRGKdedZffZC7d48n/bn6JiLTnurIFf9UgCvzCMfm/3IqJL6vc6 s+ZyWTrM8yuvpK+DT50U+BBAzFu2jsG3Klc490DSZkcDT/3jXgYK3CfyWoebkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=esmDN7mF2eMb6rRiCTBG8TOGKG3uFm3LVKR06gfqcP4=; b=TvyR38uNL5DJktk5+WSX4KBtVUsFDKqHADIrqRZOC5+AuQba27SHoHIFV9ralxnkA46gfC UwjFzUiQLejWc6iX5ujOwHt/fFoFXZsFkIBl6Obcs4A8jTPyVXj3U47NbSQwwtft+TL+IC Dp/eTw14glsxrHD8WtxyFIS6JIqD0EF1YhY3fodQ6AHTVeLyZ6R9bnBw6B+ujKULfQa37z nJcqe2ymY+6bSTgNwmuxR8H313zGG8/6ZC0/FY88Nc+JdTKXiwC+eLh66ud2PqrgYCcXM7 JZGpmRm5mlJXcT8TkycM9EmpJ96HncrcapdzggdkGh8Y2dyfX03YWykRX3peXg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686734181; a=rsa-sha256; cv=none; b=n5V7E70cBsbxTqlAG5h8zHZZsHSTo0MOVZ2asNN5n+hTQWQEUWM/6eAMPoeUbpDLqhEhkG CUBhsAXnsaXYzU6cCmSaHX87u6FZdI1QfVp4fXyTeQUJHPtUHmnPqcaL4pnA4G8m+IUKHJ fyHNNbVRsGCGfLYm5VH7nt723k8QOHsf0IQeHYSnj8jr0pE3952UDPN7E5sNwYTTmHrdq6 m1u8yybDaQQx8I5OUORhQa9bq6s5OpaF5eiK9GPJ/yJW18DXf8Sr1a433vBvYcYLc36vbw cEZ7lCGyFkI7uM2SVl+tZH3kxo6hSn6ulm8gNODAxFy/n6TOB2gRs98pCPV10g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh0Cn2jD7zyQw; Wed, 14 Jun 2023 09:16:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E9GLFT086856; Wed, 14 Jun 2023 09:16:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E9GLIW086855; Wed, 14 Jun 2023 09:16:21 GMT (envelope-from git) Date: Wed, 14 Jun 2023 09:16:21 GMT Message-Id: <202306140916.35E9GLIW086855@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: bbad5525fabf - main - ifconfig: start ifconfig context from main() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bbad5525fabfc8dd75032dc9aaa2cc1d33e62461 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=bbad5525fabfc8dd75032dc9aaa2cc1d33e62461 commit bbad5525fabfc8dd75032dc9aaa2cc1d33e62461 Author: Alexander V. Chernikov AuthorDate: 2023-06-14 07:40:12 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-14 09:15:58 +0000 ifconfig: start ifconfig context from main() Differential Revision: https://reviews.freebsd.org/D40440 MFC after: 2 weeks --- sbin/ifconfig/ifconfig.c | 60 +++++++++++++++++++--------------------- sbin/ifconfig/ifconfig.h | 4 +-- sbin/ifconfig/ifconfig_netlink.c | 7 +++-- 3 files changed, 35 insertions(+), 36 deletions(-) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 7b01b2d547ba..4f1d95c43a63 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -111,8 +111,8 @@ static char ifname_to_print[IFNAMSIZ]; /* Helper for printifnamemaybe() */ char *f_inet, *f_inet6, *f_ether, *f_addr; #ifdef WITHOUT_NETLINK -static void list_interfaces_ioctl(struct ifconfig_args *args); -static void status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, +static void list_interfaces_ioctl(if_ctx *ctx); +static void status(if_ctx *ctx, const struct sockaddr_dl *sdl, struct ifaddrs *ifa); #endif static _Noreturn void usage(void); @@ -422,12 +422,12 @@ printifnamemaybe(void) } static void -list_interfaces(struct ifconfig_args *args) +list_interfaces(if_ctx *ctx) { #ifdef WITHOUT_NETLINK - list_interfaces_ioctl(args); + list_interfaces_ioctl(ctx); #else - list_interfaces_nl(args); + list_interfaces_nl(ctx->args); #endif } @@ -571,19 +571,12 @@ args_parse(struct ifconfig_args *args, int argc, char *argv[]) } static int -ifconfig_wrapper(struct ifconfig_args *args, int iscreate, - const struct afswtch *uafp) +ifconfig(if_ctx *ctx, int iscreate, const struct afswtch *uafp) { - struct ifconfig_context ctx = { - .args = args, - .io_s = -1, - .ifname = args->ifname, - }; - #ifdef WITHOUT_NETLINK - return (ifconfig(&ctx, iscreate, uafp)); + return (ifconfig_ioctl(ctx, iscreate, uafp)); #else - return (ifconfig_wrapper_nl(&ctx, iscreate, uafp)); + return (ifconfig_nl(ctx, iscreate, uafp)); #endif } @@ -616,6 +609,11 @@ main(int ac, char *av[]) struct ifconfig_args _args = {}; struct ifconfig_args *args = &_args; + struct ifconfig_context ctx = { + .args = args, + .io_s = -1, + }; + f_inet = f_inet6 = f_ether = f_addr = NULL; lifh = ifconfig_open(); @@ -647,6 +645,7 @@ main(int ac, char *av[]) if (!args->all && !args->namesonly) { /* not listing, need an argument */ args->ifname = args_pop(args); + ctx.ifname = args->ifname; /* check and maybe load support for this interface */ ifmaybeload(args, args->ifname); @@ -662,7 +661,7 @@ main(int ac, char *av[]) if (isnametoolong(args->ifname)) errx(1, "%s: cloning name too long", args->ifname); - ifconfig_wrapper(args, 1, NULL); + ifconfig(&ctx, 1, NULL); exit(exit_code); } #ifdef JAIL @@ -675,7 +674,7 @@ main(int ac, char *av[]) if (isnametoolong(args->ifname)) errx(1, "%s: interface name too long", args->ifname); - ifconfig_wrapper(args, 0, NULL); + ifconfig(&ctx, 0, NULL); exit(exit_code); } #endif @@ -714,14 +713,14 @@ main(int ac, char *av[]) if (!(((flags & IFF_CANTCONFIG) != 0) || (args->downonly && (flags & IFF_UP) != 0) || (args->uponly && (flags & IFF_UP) == 0))) - ifconfig_wrapper(args, 0, args->afp); + ifconfig(&ctx, 0, args->afp); } goto done; } args->allfamilies = args->afp == NULL; - list_interfaces(args); + list_interfaces(&ctx); done: freeformat(); @@ -771,13 +770,14 @@ match_afp(const struct afswtch *afp, int sa_family, const struct sockaddr_dl *sd } static void -list_interfaces_ioctl(struct ifconfig_args *args) +list_interfaces_ioctl(if_ctx *ctx) { struct ifa_queue q = TAILQ_HEAD_INITIALIZER(q); struct ifaddrs *ifap, *sifap, *ifa; struct ifa_order_elt *cur, *tmp; char *namecp = NULL; int ifindex; + struct ifconfig_args *args = ctx->args; if (getifaddrs(&ifap) != 0) err(EXIT_FAILURE, "getifaddrs"); @@ -840,9 +840,9 @@ list_interfaces_ioctl(struct ifconfig_args *args) ifindex++; if (args->argc > 0) - ifconfig_wrapper(args, 0, args->afp); + ifconfig(ctx, 0, args->afp); else - status(args, sdl, ifa); + status(ctx, sdl, ifa); } if (args->namesonly) printf("\n"); @@ -1089,7 +1089,7 @@ addifaddr(if_ctx *ctx, const struct afswtch *afp) } int -ifconfig(if_ctx *orig_ctx, int iscreate, const struct afswtch *uafp) +ifconfig_ioctl(if_ctx *orig_ctx, int iscreate, const struct afswtch *uafp) { const struct afswtch *afp, *nafp; const struct cmd *p; @@ -1717,11 +1717,12 @@ print_description(int s) * specified, show only it; otherwise, show them all. */ static void -status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, +status(if_ctx *ctx, const struct sockaddr_dl *sdl, struct ifaddrs *ifa) { struct ifaddrs *ift; - int s; + int s, old_s; + struct ifconfig_args *args = ctx->args; bool allfamilies = args->afp == NULL; char *ifname = ifa->ifa_name; @@ -1735,12 +1736,8 @@ status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0); if (s < 0) err(1, "socket(family %u,SOCK_DGRAM)", ifr.ifr_addr.sa_family); - - struct ifconfig_context _ctx = { - .io_s = s, - .ifname = ifname, - }; - struct ifconfig_context *ctx = &_ctx; + old_s = ctx->io_s; + ctx->io_s = s; printf("%s: ", ifname); printb("flags", ifa->ifa_flags, IFFBITS); @@ -1794,6 +1791,7 @@ status(struct ifconfig_args *args, const struct sockaddr_dl *sdl, sfp_status(ctx); close(s); + ctx->io_s = old_s; return; } #endif diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 187743a315c5..a65969ab4c56 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -274,7 +274,7 @@ void sfp_status(if_ctx *ctx); struct sockaddr_dl; bool match_ether(const struct sockaddr_dl *sdl); bool match_if_flags(struct ifconfig_args *args, int if_flags); -int ifconfig(if_ctx *ctx, int iscreate, const struct afswtch *uafp); +int ifconfig_ioctl(if_ctx *ctx, int iscreate, const struct afswtch *uafp); bool group_member(const char *ifname, const char *match, const char *nomatch); void print_ifcap(struct ifconfig_args *args, int s); void tunnel_status(if_ctx *ctx); @@ -285,7 +285,7 @@ void print_metric(int s); /* Netlink-related functions */ void list_interfaces_nl(struct ifconfig_args *args); -int ifconfig_wrapper_nl(if_ctx *ctx, int iscreate, +int ifconfig_nl(if_ctx *ctx, int iscreate, const struct afswtch *uafp); uint32_t if_nametoindex_nl(struct snl_state *ss, const char *ifname); diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index 1635a4cb80c7..a7d3cfe6f300 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -123,7 +123,7 @@ nl_init_socket(struct snl_state *ss) } int -ifconfig_wrapper_nl(if_ctx *ctx, int iscreate, +ifconfig_nl(if_ctx *ctx, int iscreate, const struct afswtch *uafp) { struct snl_state ss = {}; @@ -131,9 +131,10 @@ ifconfig_wrapper_nl(if_ctx *ctx, int iscreate, nl_init_socket(&ss); ctx->io_ss = &ss; - int error = ifconfig(ctx, iscreate, uafp); + int error = ifconfig_ioctl(ctx, iscreate, uafp); snl_free(&ss); + ctx->io_ss = NULL; return (error); } @@ -447,7 +448,7 @@ list_interfaces_nl(struct ifconfig_args *args) } else if (args->argc == 0) status_nl(ctx, iface); else - ifconfig(ctx, 0, args->afp); + ifconfig_ioctl(ctx, 0, args->afp); } if (args->namesonly) printf("\n"); From nobody Wed Jun 14 09:16:22 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh0Cp5TVgz4d3TS; Wed, 14 Jun 2023 09:16:22 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh0Cp4YGdz3n57; Wed, 14 Jun 2023 09:16:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FdL8ZEPBHmPsKpL6W8Lf25JXUxBK9OFJfP2SmWIkhLM=; b=IXNyXbO/5iIDxLl7RWCUQWequ0+tehhVXk6Nx2ZxB6nl7RxrRUf/SDxh0ftloGcxAyMa+C A0Z0aPzhpdY29iOdupnfICZ5ZTGpovxB+fBxD7Kletx+/9j5QD613KHhAKNu2VQKkR6yBb /H7ALZmCuY6UIaIO4hYjCwtE6Qwm+PRdTci9/Hs7QNNeHZr1Lu/kThELnt0sKLFhxY8ejD 3/DGSE7bEfbipg1Om7RCN2ms9lg3XwoYo5HR53zbWOUMySkZZ6L/akqUMNazsx+t5rN++9 8UNZIeeDIoiqWjzYzQJr7DDBax+TKTq4IJG1KzDIkZZgRVrOIJjI9cP9lYayuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FdL8ZEPBHmPsKpL6W8Lf25JXUxBK9OFJfP2SmWIkhLM=; b=BW+7MjQIQCvbopgLDI+5OpOSdPaR6MPQqDMFKwq7FN0hGb9aLwWT+DqxGQxm7QCVMeGf1j FKP2pmEkLz3doY45jH3VoQm8R4Ty++cxALj9JCXhjMB2a8UOcMSj2tEW2qRZF7P0AjXNnU 1ux9u5VBoq6YBKGo7SASzQf+dqguJSKPxpQJIdK38GQTemBa9vWmEdiDcN7JvLNqjdoPfZ RVDzohanKVmr9f6QiHp7gdymfuKjkMlaEkjlWbyl+iVAPOWd8l4dBY5ELnXMQdis0lSdEG oXymt0d/Xk39dbNUemIOSLjVCRESA4fpoSrMoidA7oLNireH2a3AMLmXIfG4OA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686734182; a=rsa-sha256; cv=none; b=Aouh1qj37oksf1ldIa9s4GcCOzgWQ7D2PBTn2RbziFiT3mNj7rotJl5qh+2jFYV3BqRv/8 CXHgxDFJTD8RD6yI7UgyP7NzitHAxUsc9YPrgRD/qxGqvq6k6FYd43GhNHSQs8vVK0v0ye 5WeAIjQe/IkIW+JZqne9D3rPxQzqpRABpUfIBZEKVnFw30ogd0Ppiudt+Rr/cvs83eUa/x pJMMSkbRKTWNkPMH6ENmBKThmEqEwhvZzA4el2Dh6weH6fK3GxR+8QzTzC/Kn7n8dKL9IB bAJoCLl8jyZqp2uFnXO05rjnr00YKQU7tqgfSDaxt05c8SA/Y7mlMPaQDXs6aA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh0Cp3bzyzyHK; Wed, 14 Jun 2023 09:16:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E9GMn5086882; Wed, 14 Jun 2023 09:16:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E9GMf8086881; Wed, 14 Jun 2023 09:16:22 GMT (envelope-from git) Date: Wed, 14 Jun 2023 09:16:22 GMT Message-Id: <202306140916.35E9GMf8086881@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: a6094f844a82 - main - ifconfig: remove 'newaddr' global variable List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a6094f844a829832cabdf3019993adcf6a083383 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=a6094f844a829832cabdf3019993adcf6a083383 commit a6094f844a829832cabdf3019993adcf6a083383 Author: Alexander V. Chernikov AuthorDate: 2023-06-14 07:51:27 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-14 09:16:09 +0000 ifconfig: remove 'newaddr' global variable Differential Revision: https://reviews.freebsd.org/D40441 MFC after: 2 weeks --- sbin/ifconfig/af_inet6.c | 4 ---- sbin/ifconfig/ifconfig.c | 2 +- sbin/ifconfig/ifconfig.h | 1 - 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index 7a771a885412..f1755bcb7a16 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -433,8 +433,6 @@ in6_getaddr(const char *addr_str, int which) { struct in6_px *px = sin6tab_nl[which]; - newaddr &= 1; - px->set = true; px->plen = 128; if (which == ADDR) { @@ -546,8 +544,6 @@ in6_getaddr(const char *s, int which) struct addrinfo hints, *res; int error = -1; - newaddr &= 1; - sin->sin6_len = sizeof(*sin); if (which != MASK) sin->sin6_family = AF_INET6; diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 4f1d95c43a63..e0aae77a317e 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -101,7 +101,7 @@ static int setaddr; static int setmask; static int doalias; static int clearaddr; -int newaddr = 1; +static int newaddr = 1; int exit_code = 0; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index a65969ab4c56..9747c125746c 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -252,7 +252,6 @@ void opt_register(struct option *); extern ifconfig_handle_t *lifh; extern struct ifreq ifr; extern int allmedia; -extern int newaddr; extern int exit_code; extern char *f_inet, *f_inet6, *f_ether, *f_addr; From nobody Wed Jun 14 09:16:23 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh0Cq5wl4z4d3Vd; Wed, 14 Jun 2023 09:16:23 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh0Cq5H1Vz3n7j; Wed, 14 Jun 2023 09:16:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CM3T8w09tFFy5M1m6FHaFdOwiAzur391yk7EnPn3Frw=; b=AYEX1BU+ans4wouVL2QyCMVkfQLvmqjwwYSG8VZHnQ+9fcLD9Kk9xV3x61+Qwo1GxvypE4 a0CtZr8yL5xdn87mjDYPYpFI42LtFQpb2G9MW/uFBkp30Y1hCbncaeHJbGnVBYJ1yMe0cB rzIsRxVTVpDN/7r9ZcCuttSuBbvaQV7uUHo9Koz8vRA/UNA71hzpXNdQiG0glRPIxIdOt3 awDVpRjYPIFYeveANsrd6qRLM0CE3ET0wmfoAzLCUkYgg03BW3OXo2qOBXBQq4A2vVF8h/ hmjTf7R9JqBZV0GYMWVmohde4ibgD87X4MzjLgsaMeiWDDQ9JkppaIchGKLeDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686734183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CM3T8w09tFFy5M1m6FHaFdOwiAzur391yk7EnPn3Frw=; b=w1xoPRLtasFIZVwg+HgNSYFUgC4wHldHl2MxNvSJIcibrlaYmm4GsB5ejUXL0oQxz+4PtY RNA+FcWI/3YclehZHywk5iTvOV0qAOQPoZQZVWHtPxZQ3mM8F3OwTZ/sSrz41PMWMX75TC ViGKMBAXujyspO38BSbHfSN4i/Jo2zsh4ttVjxwmJtaofbBjCNclznv0vlMBFk0yr+XwZo 3604ItTrE86DQ6meZ84GA+7qfZJuyMMDgIZZg/tt2tLYhD6rcd5Y6WsEf1XcCF/y/xSRAp ROiXrbp8DzcSEqOQfZxrZo1YGcDCx9ZN937TdQ3JLcWbLvcTOsTCk5oDZJfjVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686734183; a=rsa-sha256; cv=none; b=OQhFpUPzd6t4t5chrWCWI+CaWM1i09F0uT81TvUIuOVwPyjdOv/aSCpdo8/jIAa5F9116g kjZ35nO/txaGcAVl84ysB0p+pk+e3h2qKnG8mekYFjbhzWvxI0pCSCKKS/KeUSXtE5BgWj CoRGjWpeCB3ElGScs0MpGupgaLaemy4CWzzzXI2CAnK/NIvE213G/HjEZt8VecARgmkQNC 60tk2AjSOR5AK5ekX7h21tkN/3ZtEvRIiU9oH+nPisTYsVJ4sP3MbqkQfBaWhh9W9ADV+a AMAtjzZsO/RjRoshquPwd77g9t8S72SOG8I+fnogENkKBOTFYAq+jJZYiQQKTw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh0Cq4JV9zy69; Wed, 14 Jun 2023 09:16:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35E9GNED086901; Wed, 14 Jun 2023 09:16:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35E9GN1I086900; Wed, 14 Jun 2023 09:16:23 GMT (envelope-from git) Date: Wed, 14 Jun 2023 09:16:23 GMT Message-Id: <202306140916.35E9GN1I086900@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 3927d0fb373c - main - ifconfig: fix -Wunused warnings List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3927d0fb373c04e99403c9a773312f650607441c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=3927d0fb373c04e99403c9a773312f650607441c commit 3927d0fb373c04e99403c9a773312f650607441c Author: Alexander V. Chernikov AuthorDate: 2023-06-14 07:59:01 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-14 09:16:09 +0000 ifconfig: fix -Wunused warnings MFC after: 2 weeks --- sbin/ifconfig/af_inet.c | 2 +- sbin/ifconfig/af_inet6.c | 2 +- sbin/ifconfig/ifclone.c | 2 +- sbin/ifconfig/ifconfig.c | 16 ++++++++-------- sbin/ifconfig/ifconfig.h | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c index 842fdad2a20f..0c6ae253cbd4 100644 --- a/sbin/ifconfig/af_inet.c +++ b/sbin/ifconfig/af_inet.c @@ -144,7 +144,7 @@ in_status(if_ctx *ctx __unused, const struct ifaddrs *ifa) printf(" broadcast %s", inet_ntoa(sin->sin_addr)); } - print_vhid(ifa, " "); + print_vhid(ifa); putchar('\n'); } diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index f1755bcb7a16..b8a5cb3012ed 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -356,7 +356,7 @@ in6_status(if_ctx *ctx __unused, const struct ifaddrs *ifa) print_lifetime("vltime", lifetime.ia6t_expire, &now); } - print_vhid(ifa, " "); + print_vhid(ifa); putchar('\n'); } diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c index ecd8bbc2e556..f0ae93ec792c 100644 --- a/sbin/ifconfig/ifclone.c +++ b/sbin/ifconfig/ifclone.c @@ -151,7 +151,7 @@ ifclonecreate(if_ctx *ctx, void *arg __unused) } static void -clone_create(if_ctx *ctx, const char *cmd __unused, int d __unused) +clone_create(if_ctx *ctx __unused, const char *cmd __unused, int d __unused) { callback_register(ifclonecreate, NULL); } diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index e0aae77a317e..d30d3e1909ae 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -1230,7 +1230,7 @@ top: } static void -setifaddr(if_ctx *ctx, const char *addr, int param) +setifaddr(if_ctx *ctx, const char *addr, int param __unused) { const struct afswtch *afp = ctx->afp; @@ -1279,10 +1279,10 @@ settunnel(if_ctx *ctx, const char *src, const char *dst) } static void -deletetunnel(if_ctx *ctx, const char *vname, int param) +deletetunnel(if_ctx *ctx, const char *vname __unused, int param __unused) { - if (ioctl(ctx->io_s, SIOCDIFPHYADDR, &ifr) < 0) + if (ioctl_ctx(ctx, SIOCDIFPHYADDR, &ifr) < 0) err(1, "SIOCDIFPHYADDR"); } @@ -1335,7 +1335,7 @@ setifbroadaddr(if_ctx *ctx, const char *addr, int dummy __unused) } static void -notealias(if_ctx *ctx, const char *addr, int param) +notealias(if_ctx *ctx, const char *addr __unused, int param) { const struct afswtch *afp = ctx->afp; @@ -1515,11 +1515,11 @@ setifpcp(if_ctx *ctx, const char *val, int arg __unused) } static void -disableifpcp(if_ctx *ctx, const char *val, int arg __unused) +disableifpcp(if_ctx *ctx, const char *val __unused, int arg __unused) { ifr.ifr_lan_pcp = IFNET_PCP_NONE; - if (ioctl(ctx->io_s, SIOCSLANPCP, (caddr_t)&ifr) == -1) + if (ioctl_ctx(ctx, SIOCSLANPCP, (caddr_t)&ifr) == -1) err(1, "SIOCSLANPCP"); } @@ -1569,7 +1569,7 @@ setifdescr(if_ctx *ctx, const char *val, int dummy __unused) } static void -unsetifdescr(if_ctx *ctx, const char *val, int value) +unsetifdescr(if_ctx *ctx, const char *val __unused, int value __unused) { setifdescr(ctx, "", 0); } @@ -1858,7 +1858,7 @@ printb(const char *s, unsigned v, const char *bits) } void -print_vhid(const struct ifaddrs *ifa, const char *s) +print_vhid(const struct ifaddrs *ifa) { struct if_data *ifd; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 9747c125746c..7001725543d8 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -294,7 +294,7 @@ uint32_t if_nametoindex_nl(struct snl_state *ss, const char *ifname); */ struct ifmediareq *ifmedia_getstate(if_ctx *ctx); -void print_vhid(const struct ifaddrs *, const char *); +void print_vhid(const struct ifaddrs *); void ifcreate_ioctl(if_ctx *ctx, struct ifreq *ifr); From nobody Wed Jun 14 10:40:06 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh24Q6Sncz4dl3l; Wed, 14 Jun 2023 10:40:06 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh24Q5dD8z4Jq9; Wed, 14 Jun 2023 10:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686739206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+z8svhkEeZG3NQAZP8zy964iLcWV1qjMtyi39S+Qezs=; b=JcfGdvpKD67OtLlmtFMluYOUb0LpBiRwBHOlLXItbtLFVaZ8EXDtgM+50cNyCAhIwpK5V4 54EvCFVkyTPPSrsgFxeme1Zbv8J+mV75hoyNszlio9lUG6M7yyKpCuh1KkpojxGnNX4Xvg r1xR7obIg4MJ1dZQkzYXCjETmcbQoOC89l1rdDD8uCEDn75V8MNzBjw3DPSXlw5l87OlQN Act6W2Bp4I+mO0WOgJGPDLR4AqLR/RRqM/Md81s1rivrYm4O5N0tlN+3QlaXCf+yt1+y7A 0gGCeW4eVRf+xoRgKiujunBwqUtuLZJHOGx/N7GCOoVJ6Pw0sox4oJ6KbnYKbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686739206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+z8svhkEeZG3NQAZP8zy964iLcWV1qjMtyi39S+Qezs=; b=rm2b7LpNlQ5fVFm+BN6DTPyoMKTCA9vd50dvgUfj7xr7q5J53O/XTOIzXoeDRnPdC2F84R Dmn0w3ofK4Hxmyv0rFJHjKy91rBjE1h9s4SWFUJ8OafVZAd+QOM76am4IYJeZWfPX76Wwq KWLzj4Do7ntr24SvYXrqO7ayQ1gKNYl4JQ2uQcrxZtc/O8k9wRxiVtXzT1sEUeRH4i1neE ZFtBjm+V4eqKUyz05+2BMSDklT/wyiPVCrlYh7+Io8u5slTB5Py+knMiZUqzpNjxshHrQn G3qIGbiMW1L+8C2TzdSVmwW8+NmV+5CxzIqi1GcZ+lMFqZTGB6JtKMWTB7CaSA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686739206; a=rsa-sha256; cv=none; b=fSi7a3bn811z6FQnsIE/FCwNs9gkqgI/4tDSM6PpJ1Acgn2BpMggXu0zVe6xEOHzRafcQW 6hFP520z+TLzuvXsh1Pq0fBNBwzHlzwjXFZwzsH8NsSBrjF3Z/v8hfAzbqz6q2KtE/Tdto LdBIeDDqKVo79bvcT2ynJM873WXVKchLmrTLGHI2irT8kJALCv7TkVENUPPFEnjrupP7oh 2KayaqEhfRWHGnHU7zVU3YT/7yGa8enbYHShL6eI9VHXrp4Ym/mxgDbQ7lUZJOznmklAKD YlpjF2gJH/WTW52NHjJjVE+myJUucgeL8scpSyqeO+oOIO/l0/TOvk9kwF+R5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh24Q4Zl4z10tk; Wed, 14 Jun 2023 10:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EAe6Bg021823; Wed, 14 Jun 2023 10:40:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EAe6rs021820; Wed, 14 Jun 2023 10:40:06 GMT (envelope-from git) Date: Wed, 14 Jun 2023 10:40:06 GMT Message-Id: <202306141040.35EAe6rs021820@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 52ff8883185a - main - ifconfig: fix ifconfig crash when compiled w/WITHOUT_NETLINK. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 52ff8883185ad6ffa21fd0d01db1426e5c13af83 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=52ff8883185ad6ffa21fd0d01db1426e5c13af83 commit 52ff8883185ad6ffa21fd0d01db1426e5c13af83 Author: Alexander V. Chernikov AuthorDate: 2023-06-14 10:37:07 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-14 10:37:07 +0000 ifconfig: fix ifconfig crash when compiled w/WITHOUT_NETLINK. Properly update the recently-introduced `ctx->ifname` when iterating over interfaces. Reported by: Gary Jennejohn MFC after: 2 weeks --- sbin/ifconfig/ifconfig.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index d30d3e1909ae..6a80ad5763b2 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -822,6 +822,7 @@ list_interfaces_ioctl(if_ctx *ctx) continue; if (!group_member(ifa->ifa_name, args->matchgroup, args->nogroup)) continue; + ctx->ifname = cp; /* * Are we just listing the interfaces? */ From nobody Wed Jun 14 12:41:30 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh4mW23vSz4dXNx; Wed, 14 Jun 2023 12:41:31 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh4mW1SGLz3ndd; Wed, 14 Jun 2023 12:41:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686746491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xZBO8OzCeULhrRzMQLyp4c3vQzQR6bJ6Sdpf34cOJlU=; b=gHujkhGGmRHz4nSE2saLLycHmNBsS2JwzNsSXoGyXuX1u/qBpT+DARnwFyXWEnAXZyzP80 xU8H7zvnR+2mxkYt2vnKJnpPZK5cKjOiLplNHXgmf31S7kY65l6j+Ov01Lzpk9oAvFBiJ1 Cd+VagVnPB8t0chKVC6LorzHMyf3ex1+/Dd6Bq3a0EuEUOAIHVpA80+dwNjdtOhEIIr+Cb dwocLlVVIJee1kQunDjjduPWe7dWWxRbHBjivNGow4K2neqyQ/b9vy63KjMt0oHuaMCHtO tDzfaZndjzoQc++VYRC4wv+vC87IP9Mfustg2036f+yXdYARKRl5TzhUfPLvmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686746491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xZBO8OzCeULhrRzMQLyp4c3vQzQR6bJ6Sdpf34cOJlU=; b=qcTjzXbYfQ4DeK4HBi5eunT8Ymz0ELpyXp6jHbccse9IcavFs6B0y+/N1BSv2Nzb7WVOPD AfrhCy1/KFw+mhXJeSNBncP40LKk9a6XrIMkm21pC4vR7mn8XDaWURXGnKosf9xDp7z9CV haZFGeCsG340uEFdaDCdNZeigMDHVPQAh73S1vzuzkOcwt/x0CDfP7G6JdJJMyG2N6RLXH ZihmPcNNnMcseoaXoRnFwJ31HuseNzSoh0zj8AJ5NwoN3oDyqvjWawVtOTpmtVG5/h0MhW CgoLdDGJ3a0WH9FtCDQTlR95bzk7lZeEZe43jkSWn5kbj0XJsmIOm0rP+Fp3KA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686746491; a=rsa-sha256; cv=none; b=wcHLUkdV9lMgTsvwPlOakOxw+tem7S4YNYo0JO9D+YsoruEG31teWk3T35YJoAwN3mH8xZ kxCejMZa3COeurPSaiC3huKWL82n3DqEs+nuD79L9OlGTybA80pvChchBXUw/1HMdHwWYz ZE0ilCNaC1yPDTy+PslDaQ+nbuhPYGJIv85Mp+Q5I+JZ4e3l2IgHRqPMSKQun1xZFwqaR1 Xf+R50qyKU+RfReMM/Icv4MLb8x3zcbVKtb82jkP/dZa8eTRcWladOvZ7UT0sU4uT1qfBZ TIttFLJs7YSz9wkhnzSpSyze+Z47n8b4/yIVE9JSJzk/ObxCXNKLgOLOBK5ZiQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh4mW0Vv2z13qX; Wed, 14 Jun 2023 12:41:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35ECfUdi026290; Wed, 14 Jun 2023 12:41:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35ECfUjj026289; Wed, 14 Jun 2023 12:41:30 GMT (envelope-from git) Date: Wed, 14 Jun 2023 12:41:30 GMT Message-Id: <202306141241.35ECfUjj026289@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: 9feaa109e4ae - stable/13 - local-unbound-setup: Disable the libc subscriber. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9feaa109e4ae28903ca9247ed6cbf721bc580150 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=9feaa109e4ae28903ca9247ed6cbf721bc580150 commit 9feaa109e4ae28903ca9247ed6cbf721bc580150 Author: Dag-Erling Smørgrav AuthorDate: 2023-03-24 20:45:24 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-14 12:40:39 +0000 local-unbound-setup: Disable the libc subscriber. This is the correct way to prevent resolvconf from updating resolv.conf. Reviewed by: cy Differential Revision: https://reviews.freebsd.org/D39262 (cherry picked from commit 9b20ab1e1ef7d3de672ec20a62f26a605db8d3d0) --- usr.sbin/unbound/setup/local-unbound-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/unbound/setup/local-unbound-setup.sh b/usr.sbin/unbound/setup/local-unbound-setup.sh index dc0768a672a6..f725b566b650 100755 --- a/usr.sbin/unbound/setup/local-unbound-setup.sh +++ b/usr.sbin/unbound/setup/local-unbound-setup.sh @@ -195,7 +195,7 @@ do_not_edit() { gen_resolvconf_conf() { local style="$1" do_not_edit - echo "resolv_conf=\"/dev/null\" # prevent updating ${resolv_conf}" + echo "libc=\"NO\"" if [ "${style}" = "dynamic" ] ; then echo "unbound_conf=\"${forward_conf}\"" echo "unbound_pid=\"${pidfile}\"" From nobody Wed Jun 14 13:26:28 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh5mP35CCz4dhXg; Wed, 14 Jun 2023 13:26:29 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh5mP2DkSz3tF9; Wed, 14 Jun 2023 13:26:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1pPl4Cu3rE+7GUrvxAUmHeYmpYiYKmhXJqo9rL6VsM0=; b=X0J9lmSSU1fRrjgxetieHLM2I4R17JFyL1E8HaAVw3BGOYC0ncuLPMMUrZakg8jriefJ/6 jpakKMWxnGZ/1IgEKs3pdhqct26ijSy7cnZJXN1ubEtwJqcKCQqwICQeoZPhThDqGcutlF CNdxcDaevcpJRZ6OsbEZh/L4yiG2pBW1CHYb4rtNtSfjZ428AWKVFY1IAZwjbtvL7zIe6T DN5Hl3QvpdbemTwfYDkllzqnCuTXKfKsacBMxjkKoEW3KBk1QJa3ks2XfX7MPf178Oi8X3 bRM4Za4FL4bOPhGDBm0zC7XgtIiymj9lCHiDbusQnedVHaLzIHnnqVZdnf2mvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1pPl4Cu3rE+7GUrvxAUmHeYmpYiYKmhXJqo9rL6VsM0=; b=DULTszDUVwmwm/4/+UiVDqOADKdR7loD5KRlD2Aa/iFnn+94c3bjz8TyrumGvXsQg6RfpI O//dUJ61z+Es/JnFI6T73cIcsXD1ngnEB+2z5qek/0rlNTry52Cf+NVQ/7LsimCYKUJhcR lj255ak60zIjptva0LsgF4Py1MA0ekktzylOXBrpTmNOKt17l/oaoxW3eeWue9P0ZXFtnW TUAdcEKmAg+DoU4JG5CIvcbDQhNR8N8MXwWyBYgydD9WfuFbGGVmNbf9ujJGv8P7ky40wM uANS/BG7YL4p7+cf1/Sm7TLh07UaIWLnAWjgQgeihvKcE166aD8A0CSKqUCuBw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686749189; a=rsa-sha256; cv=none; b=I2IL4sJE8bq41Qq7ovikN6tdF7fGWYmQtP0FBxCwu3/gOk50MZuXk0F62w2hEwcOvhV5oF oQsLB7a5fJS+wzjDGUmwazytzmZpYQaVAZ0FA22e2P1fbS03111LinrtSNJ0SYqFwd5acw YQHXEubu47HMtaJ2gF9m3PwMvwWxJ9sQPLw7VThPXtVPsGYUqrMJbtO9BJPOyISskBnH08 Jv5n53uHEB30rPEkPBqiGMXbK806f3HQ7uDvhlwr37MjTj/KBWKqEVhPwsyKB9t7aEzaqq 9LUGKVgA7bpdBbhrc+qIX3tyqti9Y4rOXLryfYuHdmXhsGwL1fyBwNj0MNCjFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh5mP16MXz1568; Wed, 14 Jun 2023 13:26:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EDQSgE099445; Wed, 14 Jun 2023 13:26:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EDQS7O099444; Wed, 14 Jun 2023 13:26:28 GMT (envelope-from git) Date: Wed, 14 Jun 2023 13:26:28 GMT Message-Id: <202306141326.35EDQS7O099444@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: cfb53f983f14 - stable/13 - ncal: Error out if writing to stdout failed. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cfb53f983f147a9c8388154a256c8b47be470f1b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=cfb53f983f147a9c8388154a256c8b47be470f1b commit cfb53f983f147a9c8388154a256c8b47be470f1b Author: Dag-Erling Smørgrav AuthorDate: 2023-05-04 17:26:54 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-14 12:42:28 +0000 ncal: Error out if writing to stdout failed. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, imp Differential Revision: https://reviews.freebsd.org/D39958 (cherry picked from commit 5903d9c00b75f17f09404d1001ee5aaae7603a61) --- usr.bin/ncal/ncal.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/usr.bin/ncal/ncal.c b/usr.bin/ncal/ncal.c index 641c59f71e10..35266c225bce 100644 --- a/usr.bin/ncal/ncal.c +++ b/usr.bin/ncal/ncal.c @@ -497,6 +497,8 @@ main(int argc, char *argv[]) monthrangeb(y, m, flag_julian_day, before, after); else monthranger(y, m, flag_julian_day, before, after); + if (ferror(stdout) != 0 || fflush(stdout) != 0) + err(1, "stdout"); return (0); } From nobody Wed Jun 14 13:26:30 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh5mQ3XmKz4dhZV; Wed, 14 Jun 2023 13:26:30 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh5mQ2nDWz3tH2; Wed, 14 Jun 2023 13:26:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8NjkV6yaQbjQ8U6RopOxxicF/RkF5o3Qud9PAy7KHHU=; b=gh1+nnY8Xm5YLSh+4iNNbg8sDeKxA1KLvQlQc4Mmb7TM0Qabxbf7Pvzp8OPIRsGeMEDAeM kpPVYeNYXxi3Yz1GkgNlz+zUn5CkXfPsN5ktHbr0PVt7P7P7qlcdTVE53RMVn3noPTyqJh ABhKT/9MDcEaIVJbUMrMxcriEpjyqUt5kehx9UYTQj19QPGf3fiH1DSdde8WPKLEdf7XFo uFZnUmoq88AOPkAnqnXEmyvXx4NR6L8UpYO/TXv9uDYHwp7UOTfD2alnNTJ9KcXrNDxY9C MzZrt6DaJQ1C4oSjDNlSI/ieFEjY942nBBT26aQgRjrvg4zEDH56KgMobWaJZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8NjkV6yaQbjQ8U6RopOxxicF/RkF5o3Qud9PAy7KHHU=; b=L5R6yqWDjIWFq9KdMf8cbACXVyYFf6tZndaCmPL239fE0+YRnppBLt9JRyGY/5aHF8WrhQ cdpaCR1iHkzJ7Nb1tZhWjSqvxS4Qi0lv62eRU/Z6vG7+LMFF1qqSvEvmeQCWOjx7KgX5bD L7tOV/PsbnhdoNC3GrZvOekGA85IwgYvJBgpbrZQ5jnrguueXvF8L7UTVxGiR8wFsbyzWj LcgTkAYejS0knazlKVm47u9GHK6M3TKBbURc16MliPZunI74HzFNqVVc/MAmMSFjMePlKD S4CTkSV+3foEgN54vVbLFBr2Tx65oaNpjkxN7GtVVDKSioV1wKPXgCq49ru5nw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686749190; a=rsa-sha256; cv=none; b=kDUKioak41fgyKN8t1fg+3LYmiffYYExpDXlun/E4i1yjHOTv/3jOR9JYlaDACuUKURPoI di/+z+4UgPkOucF8LCa1Sr1d8fi/+q3eaDNGRw1tBhS9S16PC9tYWSuhYR+5Z6JkiCPWyl R5w1ZTQLN0+rAF4Xpjpe1i+QdBJuBP68bx8/9SdONJHScvTtU6ByYdh2299jhd9yk/ZucV BP/+N4OBwmkd8A89cxbMzg7oGc8YYgWS6wWtYe0OYcU7OQmc0Ghp+HQLRprH76AwG3KRcP yJoyN2m7ukdSRrv0evEWnwtH+2ERcVDqNjFElLBwEEw3J8bB7vHDIg2nLjeNEw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh5mQ10tDz1569; Wed, 14 Jun 2023 13:26:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EDQUq6099477; Wed, 14 Jun 2023 13:26:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EDQUN7099476; Wed, 14 Jun 2023 13:26:30 GMT (envelope-from git) Date: Wed, 14 Jun 2023 13:26:30 GMT Message-Id: <202306141326.35EDQUN7099476@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: cfa209265a30 - stable/13 - tsort: Error out if writing to stdout failed. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cfa209265a30952ffc5c58d7d63439a6f61d3f49 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=cfa209265a30952ffc5c58d7d63439a6f61d3f49 commit cfa209265a30952ffc5c58d7d63439a6f61d3f49 Author: Dag-Erling Smørgrav AuthorDate: 2023-05-04 17:26:59 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-14 12:48:52 +0000 tsort: Error out if writing to stdout failed. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, imp Differential Revision: https://reviews.freebsd.org/D39959 (cherry picked from commit cb46f47c7969b619d1b2547d06a75ad5b375eda9) tsort: Replace bcopy() with memcpy(). Also fix an indentation error I introduced in the previous commit. Fixes: cb46f47c7969 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D40042 (cherry picked from commit b55bc49e8694d9226a82041ff23ad61a5c7a6a76) tsort: Add unit tests. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D40043 (cherry picked from commit 09aee570980b7eca6e3c902a66f6db129b8c7376) --- etc/mtree/BSD.tests.dist | 2 ++ usr.bin/tsort/Makefile | 5 +++ usr.bin/tsort/tests/Makefile | 6 ++++ usr.bin/tsort/tests/tsort_test.sh | 66 +++++++++++++++++++++++++++++++++++++++ usr.bin/tsort/tsort.c | 6 ++-- 5 files changed, 83 insertions(+), 2 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 1b2c94f42a6b..eb62812bfcd8 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1096,6 +1096,8 @@ .. truncate .. + tsort + .. units .. uudecode diff --git a/usr.bin/tsort/Makefile b/usr.bin/tsort/Makefile index b0d353e4d8f7..c0933dac2de1 100644 --- a/usr.bin/tsort/Makefile +++ b/usr.bin/tsort/Makefile @@ -1,6 +1,11 @@ # @(#)Makefile 8.1 (Berkeley) 6/9/93 # $FreeBSD$ +.include + PROG= tsort +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include diff --git a/usr.bin/tsort/tests/Makefile b/usr.bin/tsort/tests/Makefile new file mode 100644 index 000000000000..ab16c2842dd0 --- /dev/null +++ b/usr.bin/tsort/tests/Makefile @@ -0,0 +1,6 @@ +PACKAGE= tests + +ATF_TESTS_SH= tsort_test +BINDIR= ${TESTSDIR} + +.include diff --git a/usr.bin/tsort/tests/tsort_test.sh b/usr.bin/tsort/tests/tsort_test.sh new file mode 100755 index 000000000000..88d4efaf2b9f --- /dev/null +++ b/usr.bin/tsort/tests/tsort_test.sh @@ -0,0 +1,66 @@ +# +# Copyright (c) 2023 Klara, Inc. +# +# SPDX-License-Identifier: BSD-2-Clause +# + +atf_test_case basic +basic_head() +{ + atf_set "descr" "Sort a basic graph" +} +basic_body() +{ + cat >input <output <input <output<get)(db, &key, &data, 0)) { case 0: - bcopy(data.data, &n, sizeof(n)); + memcpy(&n, data.data, sizeof(n)); return (n); case 1: break; @@ -266,7 +268,7 @@ get_node(char *name) n->n_arcs = NULL; n->n_refcnt = 0; n->n_flags = 0; - bcopy(name, n->n_name, key.size); + memcpy(n->n_name, name, key.size); /* Add to linked list. */ if ((n->n_next = graph) != NULL) From nobody Wed Jun 14 13:26:31 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh5mR3VBpz4dhcS; Wed, 14 Jun 2023 13:26:31 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh5mR3202z3tfM; Wed, 14 Jun 2023 13:26:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1sPleCOo3zIcFyCPrYnEDkWkr+WXqcU5TE0QSAI818M=; b=i1s33D3oYoiIIBTSdtgnLvFSYHhSwRwM8JG0h+Y63g5Tdi7L2B7I7ygTDDG3pONSpwh8ZG oSlc7NJRvajjbEx9GSVbNajqI2hfQFlJQjNNKwS59N9l4gLVd7MxZQDtLHAGyv+4lTllQD ZYUuJW1Jm0dK/Ln3kUGLx/3TJfT3QDX5hUR9nTp9pQ3ePXu4FokzBLmndsrINjMNwtvZ61 Sp7htlathg8cS1hiqi7t0+j7QZ0DfeoadvdPhdEXa9fqOq88xBdAb43A0IPtEq7/Y039oD byUaZwhAOkIicGV30wnQNey9FQrvDXME0ElQFGAVUOAFFkLD6FlsPLGuXyKcwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1sPleCOo3zIcFyCPrYnEDkWkr+WXqcU5TE0QSAI818M=; b=pGVbcmIbditsM1KXnnTG3ad09PLcMfgoc0kPUkW/hCMiLlMyaQCpGHDeLWB1POstS3PcBC SaRVNGSHBhJvvZtvDtUj+ouaEh+NgunpgivizqrJKW1klyt/rdYJ0sCKWiK/WVDUrnnzxg KqBQcoNHtyHenw3UDW14Th6tFElp18j9aZx48ERS7MKRrMc/tOWkT5pPRAvXsaXfWeTXBS bLvUS/TEy/XnM/6kiT+mpZj3UkFcH63WOPp5DihGOvy8S3LXvm+v8tbpv/rLk2y8Rpw+72 uX3iFGE4iHMmn72MQbDpV8mrlAu+yZ04/6gM3yfaCaSuD2eByT3OmWGnTkuctA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686749191; a=rsa-sha256; cv=none; b=TLOq/yuAhjT7aCUld0bEPSm2GroR7KmG8zVeUkhWxLrk5PqpvJmgJ6vJelqwYQjqFwZqEX Tbq/DR3N6iPXdOvYNyjmYW3VzyvxGPJ+J1ji4gR8AMy3xRVRSek2Ef9GnR2GH5EpEsfDSM c77o+iEQXVDKH2yFvRw12aFv1299Y49d/ZDZQJzZ/vd/Pzyu2F8VWt8oyK6MZ8eUM6dgj2 LOq1a/K1keEMDZj6zOo88bd1Y3m2FUDNHTNQwYJCCbxXgIhtyE8tbkn+Ii1JzrxWRC5quv oJIdlLlkm2NwGJ8kbb2xfWrUGHuycpmd5XqH5oZdMxAjGa1Gb2ukLjbsx/IbRA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh5mR1zjzz154Y; Wed, 14 Jun 2023 13:26:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EDQV30099501; Wed, 14 Jun 2023 13:26:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EDQVwa099500; Wed, 14 Jun 2023 13:26:31 GMT (envelope-from git) Date: Wed, 14 Jun 2023 13:26:31 GMT Message-Id: <202306141326.35EDQVwa099500@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: 06520254ed83 - stable/13 - ctags: Support writing to stdout instead of a file. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 06520254ed83c12fe176e719ef130be6c924bb6b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=06520254ed83c12fe176e719ef130be6c924bb6b commit 06520254ed83c12fe176e719ef130be6c924bb6b Author: Dag-Erling Smørgrav AuthorDate: 2023-05-25 11:55:56 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-14 12:48:54 +0000 ctags: Support writing to stdout instead of a file. * Understand "-" to mean stdout as per convention. * Check that the output is a regular file and ignore -u if not, otherwise we might try to rm /dev/stdout. * As a bonus, if -u was specified but the output file does not exist, proceed as if -u had not been specified instead of erroring out. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: cracauer, debdrup Differential Revision: https://reviews.freebsd.org/D40237 (cherry picked from commit 430d064ba5b0cb2e91a26af34c15df48d290e417) ctags: Recognize __attribute__ in function declarations. MFC after: 1 week Obtained from: NetBSD Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D40264 (cherry picked from commit 9f35eb8f96a55aac92fc0c7d08f4b6ab0ae9bc39) ctags: Don't undercount lines when handling // comments. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D40374 (cherry picked from commit 7ba6119e22b54c2104b1948f0e8a4157d4112958) --- usr.bin/ctags/C.c | 35 +++++++++++++++++++++++++++++++++-- usr.bin/ctags/ctags.1 | 16 +++++++++++++--- usr.bin/ctags/ctags.c | 23 +++++++++++++++++++++-- 3 files changed, 67 insertions(+), 7 deletions(-) diff --git a/usr.bin/ctags/C.c b/usr.bin/ctags/C.c index aca50c67226b..e36b60de4a55 100644 --- a/usr.bin/ctags/C.c +++ b/usr.bin/ctags/C.c @@ -39,6 +39,7 @@ static char sccsid[] = "@(#)C.c 8.4 (Berkeley) 4/2/94"; __FBSDID("$FreeBSD$"); #include +#include #include #include @@ -261,6 +262,9 @@ func_entry(void) { int c; /* current character */ int level = 0; /* for matching '()' */ + static char attribute[] = "__attribute__"; + char maybe_attribute[sizeof attribute + 1], + *anext; /* * Find the end of the assumed function declaration. @@ -298,10 +302,37 @@ fnd: * is a token character if it's a function and a non-token * character if it's a declaration. Comments don't count... */ - for (;;) { + for (anext = maybe_attribute;;) { while (GETC(!=, EOF) && iswhite(c)) if (c == '\n') SETLINE; + if (c == EOF) + return NO; + /* + * Recognize the gnu __attribute__ extension, which would + * otherwise make the heuristic test DTWT + */ + if (anext == maybe_attribute) { + if (intoken(c)) { + *anext++ = c; + continue; + } + } else { + if (intoken(c)) { + if (anext - maybe_attribute + < (ptrdiff_t)(sizeof attribute - 1)) + *anext++ = c; + else break; + continue; + } else { + *anext++ = '\0'; + if (strcmp(maybe_attribute, attribute) == 0) { + (void)ungetc(c, inf); + return NO; + } + break; + } + } if (intoken(c) || c == '{') break; if (c == '/' && (GETC(==, '*') || c == '/')) @@ -452,9 +483,9 @@ skip_comment(int t) /* t is comment character */ return; break; case '\n': + SETLINE; if (t == '/') return; - SETLINE; /*FALLTHROUGH*/ default: star = NO; diff --git a/usr.bin/ctags/ctags.1 b/usr.bin/ctags/ctags.1 index 9b68f669202e..40c502b3ecdd 100644 --- a/usr.bin/ctags/ctags.1 +++ b/usr.bin/ctags/ctags.1 @@ -28,7 +28,7 @@ .\" @(#)ctags.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd June 6, 1993 +.Dd May 23, 2023 .Dt CTAGS 1 .Os .Sh NAME @@ -93,16 +93,26 @@ Place the tag descriptions in a file called .Ar tagsfile . The default behaviour is to place them in a file called .Pa tags . +If +.Ar tagsfile +is +.Dq - , +the tags will be written to standard output instead. .It Fl u Update the specified files in the .Pa tags file, that is, all references to them are deleted, and the new values are appended to the file. -(Beware: this option is implemented in a way which is rather +This is ignored if the tags file does not exist or is not a regular +file (e.g. +.Fl f Ns - +was used to write to standard output). +.Pp +Beware: this option is implemented in a way which is rather slow; it is usually faster to simply rebuild the .Pa tags -file.) +file. .It Fl v An index of the form expected by .Xr vgrind 1 diff --git a/usr.bin/ctags/ctags.c b/usr.bin/ctags/ctags.c index 3e933f033b3f..7bdf5922a634 100644 --- a/usr.bin/ctags/ctags.c +++ b/usr.bin/ctags/ctags.c @@ -42,11 +42,14 @@ static char sccsid[] = "@(#)ctags.c 8.4 (Berkeley) 2/7/95"; #endif #include +__FBSDID("$FreeBSD$"); + #include +#include #include -__FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -143,6 +146,9 @@ main(int argc, char **argv) if (!argc) usage(); + if (strcmp(outfile, "-") == 0) + outfile = "/dev/stdout"; + if (!xflag) setlocale(LC_COLLATE, "C"); @@ -164,11 +170,23 @@ main(int argc, char **argv) put_entries(head); else { if (uflag) { + struct stat sb; FILE *oldf; regex_t *regx; - if ((oldf = fopen(outfile, "r")) == NULL) + if ((oldf = fopen(outfile, "r")) == NULL) { + if (errno == ENOENT) { + uflag = 0; + goto udone; + } err(1, "opening %s", outfile); + } + if (fstat(fileno(oldf), &sb) != 0 || + !S_ISREG(sb.st_mode)) { + fclose(oldf); + uflag = 0; + goto udone; + } if (unlink(outfile)) err(1, "unlinking %s", outfile); if ((outf = fopen(outfile, "w")) == NULL) @@ -198,6 +216,7 @@ nextline: fclose(outf); ++aflag; } +udone: if (!(outf = fopen(outfile, aflag ? "a" : "w"))) err(1, "%s", outfile); put_entries(head); From nobody Wed Jun 14 13:26:32 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh5mS6v4Mz4dhDM; Wed, 14 Jun 2023 13:26:32 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh5mS3qTDz3tqW; Wed, 14 Jun 2023 13:26:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749192; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bjdvYMw19Oyr5NsmF30JVFt4r8Dn4Dx80fhQhWwAFSg=; b=BT6IbhUD3Sp8X/k+xyywKaifgQD9X2fa4T83AGcvfwCKijCu8mp00VQRhFGbL1NNWOhSTm +7GQ5idM8+w5wxMmc0xbOwYTVLGWKnEYJz+qYu6mX6FaWtShw78uS7SpSPBHp2BQ+9biuA LQ7Ii8Hn6VUxcVhTIE7Br3hhayM0u0VdauZJzii/2+dR+HM5rTO9Q8nyaO05wWlandIKTw mCMrDoCytmjtIIUc80Ewt1U0NpsDKrE8ShBrd6KwvIGXmXhjy7W0FRHO9Cb7flpUlt76Dl CWJGxW4Yu0wEf2h5TZd+0OFIeC7bPMkSc3nc65nIsqleMLA35VwePGCsi58eQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749192; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bjdvYMw19Oyr5NsmF30JVFt4r8Dn4Dx80fhQhWwAFSg=; b=Zapq82LYmQBba65PyuX6osmA1c/117xKO3/F7dVMGHdN3kkEcfhPP6gJr81SqcU1zRmQlt b6hCDIpa5Pe34ecxQOng+l8OdoOjqYqyB89UZeEMHAP85FuZwyJbYuJwEQdE7J8oQkzEuJ l0beZZKcPoyEsLHqCzNXwMogqB0v+KGjZpEk7iugCqJ3TTNrAbm1XFWzDwQ9IiJN/UzIvJ Ucfg/agbV7AkeMX92FoAqx44R6K1FFPJiI9KRBMdUOshNVXFxvE4VfQGu7qFB8eiysz6h9 SNDDSl3juJHBbUfsKdMtN3rfb6ibVehQ2vf2sxDsZq9haWYW3+TbMfQfRnCMsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686749192; a=rsa-sha256; cv=none; b=M2269JhdP4qG1zfBbt07KqUlaaVBc0udADoPNTo9gFm7oUHtNhpA+Z83HzpNE4cBLxOC04 /FOXppDW95KdIOCTorBPQ7vakdOaoVzz7U7+c6Mcc1um3hFwdO14XIMJLBH5NBWj0melpo SNwq1KHThAYNLE8VFRZTN3BLp022HvwXJMYsl8m0QZZvNBUWJts46Y/GMC6Ct/yfKAMtq8 b6KWWuSnW3NRoKFff9cPRul5ITqApV9xg2OyY131RWwpkRA2whJgmfIpViKG55m5BsnKDR AA1wtxiK6LDupAxqRXDW2ZtnmQ2fGPvvxIQHY5DyT8GSwbCEQA7xeLb7xn0PAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh5mS2cw7z15K0; Wed, 14 Jun 2023 13:26:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EDQWIk099525; Wed, 14 Jun 2023 13:26:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EDQWrO099524; Wed, 14 Jun 2023 13:26:32 GMT (envelope-from git) Date: Wed, 14 Jun 2023 13:26:32 GMT Message-Id: <202306141326.35EDQWrO099524@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: bc47005a648b - stable/13 - xargs: terminate if line replacement cannot be constructed List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: bc47005a648b1b326cfd852c039a9b01854c5796 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=bc47005a648b1b326cfd852c039a9b01854c5796 commit bc47005a648b1b326cfd852c039a9b01854c5796 Author: Tom Jones AuthorDate: 2022-07-05 15:03:51 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-14 12:48:55 +0000 xargs: terminate if line replacement cannot be constructed If the line with replacement cannot be constructed xargs should terminate as documented in the man page We encounter this error, but gnu/xargs doesn't because they have a much larger limit for created outputs (~10000 lines). Reviewed by: oshogbo Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D35574 (cherry picked from commit f058359ba5e08c555d7e6f192217f890b83cd46c) xargs: fix description of strnsubst return value Reported by: oshogbo Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D35574 (cherry picked from commit 1e692b938e37a9b43a43ace2739eb6b97379cac0) xargs: improve foundeof check for -E 4aeb63826e0f got it almost correct (we can't use strcmp() here as current argument isn't guaranteed to be NUL-terminated), but we also need to check that current argument length is equal to that of eofstr. PR: 270867 Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D39583 (cherry picked from commit 21ef48af5c0f4ed85a5f42855b5a8d58b5431103) xargs: Fix typo in error message. MFC after: 1 week Sponsored by: Klara, Inc. (cherry picked from commit 6d777389e19d3bebde515e88e8405de45d8af7bd) xargs: Consistently use strtonum() to parse arguments. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D40425 (cherry picked from commit fbc445addf9183d180bb8b488281617bb19d9242) --- usr.bin/xargs/strnsubst.c | 15 ++++++++++----- usr.bin/xargs/xargs.c | 44 +++++++++++++++++++++++++------------------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/usr.bin/xargs/strnsubst.c b/usr.bin/xargs/strnsubst.c index d826d33c0967..4a2ecd5aa9a8 100644 --- a/usr.bin/xargs/strnsubst.c +++ b/usr.bin/xargs/strnsubst.c @@ -12,11 +12,12 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include -void strnsubst(char **, const char *, const char *, size_t); +bool strnsubst(char **, const char *, const char *, size_t); /* * Replaces str with a string consisting of str with match replaced with @@ -26,16 +27,19 @@ void strnsubst(char **, const char *, const char *, size_t); * str as well as the new contents are handled in an appropriate manner. * If replstr is NULL, then that internally is changed to a nil-string, so * that we can still pretend to do somewhat meaningful substitution. - * No value is returned. + * + * Returns true if truncation was needed to do the replacement, false if + * truncation was not required. */ -void +bool strnsubst(char **str, const char *match, const char *replstr, size_t maxsize) { char *s1, *s2, *this; + bool error = false; s1 = *str; if (s1 == NULL) - return; + return false; /* * If maxsize is 0 then set it to the length of s1, because we have * to duplicate s1. XXX we maybe should double-check whether the match @@ -67,6 +71,7 @@ strnsubst(char **str, const char *match, const char *replstr, size_t maxsize) if ((strlen(s2) + strlen(s1) + strlen(replstr) - strlen(match) + 1) > maxsize) { strlcat(s2, s1, maxsize); + error = true; goto done; } strncat(s2, s1, (uintptr_t)this - (uintptr_t)s1); @@ -76,7 +81,7 @@ strnsubst(char **str, const char *match, const char *replstr, size_t maxsize) strcat(s2, s1); done: *str = s2; - return; + return error; } #ifdef TEST diff --git a/usr.bin/xargs/xargs.c b/usr.bin/xargs/xargs.c index 6520d43dae50..e832cbb35a31 100644 --- a/usr.bin/xargs/xargs.c +++ b/usr.bin/xargs/xargs.c @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -73,7 +74,7 @@ static void prerun(int, char *[]); static int prompt(void); static void run(char **); static void usage(void); -void strnsubst(char **, const char *, const char *, size_t); +bool strnsubst(char **, const char *, const char *, size_t); static pid_t xwait(int block, int *status); static void xexit(const char *, const int); static void waitchildren(const char *, int); @@ -90,6 +91,7 @@ static char echo[] = _PATH_ECHO; static char **av, **bxp, **ep, **endxp, **xp; static char *argp, *bbp, *ebp, *inpline, *p, *replstr; static const char *eofstr; +static long eoflen; static int count, insingle, indouble, oflag, pflag, tflag, Rflag, rval, zflag; static int cnt, Iflag, jfound, Lflag, Sflag, wasquoted, xflag; static int curprocs, maxprocs; @@ -122,12 +124,12 @@ main(int argc, char *argv[]) int ch, Jflag, nargs, nflag, nline; size_t linelen; struct rlimit rl; - char *endptr; const char *errstr; inpline = replstr = NULL; ep = environ; eofstr = ""; + eoflen = 0; Jflag = nflag = 0; (void)setlocale(LC_ALL, ""); @@ -158,6 +160,7 @@ main(int argc, char *argv[]) switch (ch) { case 'E': eofstr = optarg; + eoflen = strlen(eofstr); break; case 'I': Jflag = 0; @@ -171,23 +174,23 @@ main(int argc, char *argv[]) replstr = optarg; break; case 'L': - Lflag = strtonum(optarg, 0, INT_MAX, &errstr); + Lflag = (int)strtonum(optarg, 0, INT_MAX, &errstr); if (errstr) - errx(1, "-L %s: %s", optarg, errstr); + errx(1, "-%c %s: %s", ch, optarg, errstr); break; case 'n': nflag = 1; - nargs = strtonum(optarg, 1, INT_MAX, &errstr); + nargs = (int)strtonum(optarg, 1, INT_MAX, &errstr); if (errstr) - errx(1, "-n %s: %s", optarg, errstr); + errx(1, "-%c %s: %s", ch, optarg, errstr); break; case 'o': oflag = 1; break; case 'P': - maxprocs = strtonum(optarg, 0, INT_MAX, &errstr); + maxprocs = (int)strtonum(optarg, 0, INT_MAX, &errstr); if (errstr) - errx(1, "-P %s: %s", optarg, errstr); + errx(1, "-%c %s: %s", ch, optarg, errstr); if (getrlimit(RLIMIT_NPROC, &rl) != 0) errx(1, "getrlimit failed"); if (maxprocs == 0 || maxprocs > rl.rlim_cur) @@ -197,22 +200,22 @@ main(int argc, char *argv[]) pflag = 1; break; case 'R': - Rflag = strtol(optarg, &endptr, 10); - if (*endptr != '\0') - errx(1, "replacements must be a number"); + Rflag = (int)strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr) + errx(1, "-%c %s: %s", ch, optarg, errstr); break; case 'r': /* GNU compatibility */ break; case 'S': - Sflag = strtoul(optarg, &endptr, 10); - if (*endptr != '\0') - errx(1, "replsize must be a number"); + Sflag = (int)strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr) + errx(1, "-%c %s: %s", ch, optarg, errstr); break; case 's': - nline = strtonum(optarg, 0, INT_MAX, &errstr); + nline = (int)strtonum(optarg, 0, INT_MAX, &errstr); if (errstr) - errx(1, "-s %s: %s", optarg, errstr); + errx(1, "-%c %s: %s", ch, optarg, errstr); break; case 't': tflag = 1; @@ -347,8 +350,8 @@ arg1: if (insingle || indouble) { xexit(*av, 1); } arg2: - foundeof = *eofstr != '\0' && - strncmp(argp, eofstr, p - argp) == 0; + foundeof = eoflen != 0 && p - argp == eoflen && + strncmp(argp, eofstr, eoflen) == 0; /* Do not make empty args unless they are quoted */ if ((argp != p || wasquoted) && !foundeof) { @@ -521,7 +524,10 @@ prerun(int argc, char *argv[]) while (--argc) { *tmp = *avj++; if (repls && strstr(*tmp, replstr) != NULL) { - strnsubst(tmp++, replstr, inpline, (size_t)Sflag); + if (strnsubst(tmp++, replstr, inpline, (size_t)Sflag)) { + warnx("command line cannot be assembled, too long"); + xexit(*argv, 1); + } if (repls > 0) repls--; } else { From nobody Wed Jun 14 13:39:04 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qh62w68Cxz4djD1; Wed, 14 Jun 2023 13:39:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qh62w59s0z3wlB; Wed, 14 Jun 2023 13:39:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749944; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/UCm2XPztLB4Rp1FNpxzxgYNQyQm4NfJ9+ruHzOHck=; b=bQFUA/95rkgu4764jZgtgot5pDZJ+48nM/FlPsAuK5fc+Bt9s2X9oy7HE1LXaRqT3nHvUD QZWLv/SJeVxx9mEqxhnEy4PSu/WkPqOhM2ij8MZRpwouWMFe9vBhAvKCtpCTIkYoZAAyJW Lrhp5xDi02VclExugcYNZ5PW/3kv0wm26JvggzeFL1gJ7r0iSHla7ZKgbdK6HORBVNA1jW QqX5nasEYdPQtQ9yfeFA7FItNIUCaZVoIWcY3SzUcf1ns7ZsVOTT47V7YRVjFVIFRG34rA CyOQYKlxFeanRdmQIB7EDoEMYxPkxXCoZl9iBqeLAzAsFF8lQDOrhNhvI7xq5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686749944; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/UCm2XPztLB4Rp1FNpxzxgYNQyQm4NfJ9+ruHzOHck=; b=wfMpSPQh3aisybbYsRNRjjcCyY+qZ3+/NQXjKbBA84U5UvsliaClr2J8DSAwlW/YpUnfOx Syg+ycmp7PVFTiDjtspjueTQX/XDFvLRGKjXp/3UvdJv6evaV1m0dqNTGk+onoKPYBXS6q RZyxjwVpyP8pNSUUvPd2WLrIwrPLALPsgZj6sXaWY8Do66ro65oRb/rOCVL/PSOysPbLEV qoHFtW0nHFwYdP/tHaT2XhIgGAZbqyx2UED40FewPLAjf6NU5DFtW2SiRDXXK+sKjJJuT9 oW8XSNmsdTytMIIpTesx7dAuo+lTLO2XhgqPvdfx3uvGL51hoVB/k9rQlhOLhw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686749944; a=rsa-sha256; cv=none; b=YcpnDC/QjP5V0QYh2sAU2vhLpBtPMnn05finu23EHrdGPbdjvw2D2lweRAdeDMdXdcLXxu MEsQNdnuFRuDd4Ckoq1C92eh3IsU5qzOh7Vh62/3xvcpqb/qxSDxpP/zvH/KUS/hW5cIfk L7WG1fYZ9jXW9jUQN5IfJJlnoESGz0lFvXUQhSQFgTL0Exj7loSiqNXmv8EdF2ynDUG8np fjDcIHRWYSqmdDCauoUcL4gTACPxX52SDdDCRqRL/Asp5XpciGh1SEdb62ArXo9EIcFuUi UDb26wl3V/Wvgl/5iFLr/xjMhXzWgMNm45gD9KODY10uEgqLXOuC/SL1x04L4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qh62w4DlJz15T6; Wed, 14 Jun 2023 13:39:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EDd4UF015950; Wed, 14 Jun 2023 13:39:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EDd450015949; Wed, 14 Jun 2023 13:39:04 GMT (envelope-from git) Date: Wed, 14 Jun 2023 13:39:04 GMT Message-Id: <202306141339.35EDd450015949@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: ba129c571660 - stable/12 - Allow a comma-separated list in login class capabilities, by adding a version of strcspn that allows quoting. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: ba129c57166057690be0e146aefd8b3636eced7d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ba129c57166057690be0e146aefd8b3636eced7d commit ba129c57166057690be0e146aefd8b3636eced7d Author: Sean Eric Fagan AuthorDate: 2023-01-14 18:37:31 +0000 Commit: Ed Maste CommitDate: 2023-06-14 13:38:26 +0000 Allow a comma-separated list in login class capabilities, by adding a version of strcspn that allows quoting. PR: 236204 Differential Revision: https://reviews.freebsd.org/D25368 (cherry picked from commit f32db406504ece1b28f43dc816736e081fe22826) (cherry picked from commit f122e552354e84f18b82d11e40c6f8f214ed8abc) --- lib/libutil/login_cap.c | 109 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) diff --git a/lib/libutil/login_cap.c b/lib/libutil/login_cap.c index cea7630698af..ffefb865ed5e 100644 --- a/lib/libutil/login_cap.c +++ b/lib/libutil/login_cap.c @@ -94,6 +94,101 @@ allocarray(size_t sz) } +/* + * This is a variant of strcspn, which checks for quoted + * strings. That is,: + * strcspn_quote("how 'now, brown' cow", ",", NULL); + * will return the index for the nul, rather than the comma, because + * the string is quoted. It does not handle escaped characters + * at this time. + */ +static size_t +strcspn_quote(const char *str, const char *exclude, int *is_quoted) +{ + size_t indx = 0; + char quote = 0; + + if (str == NULL) + return 0; + + if (is_quoted) + *is_quoted = 0; + + for (indx = 0; str[indx] != 0; indx++) { + if (quote && str[indx] == quote) { + if (is_quoted) + *is_quoted = 1; + quote = 0; + continue; + } + if (quote == 0 && + (str[indx] == '\'' || str[indx] == '"')) { + quote = str[indx]; + continue; + } + if (quote == 0 && + strchr(exclude, str[indx]) != NULL) + return indx; + } + return indx; +} + +/* + * Remove quotes from the given string. + * It's a very simplistic approach: the first + * single or double quote it finds, it looks for + * the next one, and if it finds it, moves the + * entire string backwards in two chunks + * (first quote + 1 to first quote, length + * rest of string, and then second quote + 1 + * to second quote, length rest of the string). + */ +static void +remove_quotes(char *str) +{ + static const char *quote_chars = "'\""; + char qc = 0; + int found = 0; + + do { + char *loc = NULL; + + found = 0; + /* + * If qc is 0, then we haven't found + * a quote yet, so do a strcspn search. + */ + if (qc == 0) { + size_t indx; + indx = strcspn(str, quote_chars); + if (str[indx] == '\0') + return; /* We're done */ + loc = str + indx; + qc = str[indx]; + } else { + /* + * We've found a quote character, + * so use strchr to find the next one. + */ + loc = strchr(str, qc); + if (loc == NULL) + return; + qc = 0; + } + if (loc) { + /* + * This gives us the location of the + * quoted character. We need to move + * the entire string down, from loc+1 + * to loc. + */ + size_t len = strlen(loc + 1) + 1; + memmove(loc, loc + 1, len); + found = 1; + } + } while (found != 0); +} + /* * arrayize() * Turn a simple string separated by any of @@ -112,7 +207,7 @@ arrayize(const char *str, const char *chars, int *size) /* count the sub-strings */ for (i = 0, cptr = str; *cptr; i++) { - int count = strcspn(cptr, chars); + int count = strcspn_quote(cptr, chars, NULL); cptr += count; if (*cptr) ++cptr; @@ -126,11 +221,21 @@ arrayize(const char *str, const char *chars, int *size) /* now split the string */ i = 0; while (*ptr) { - int count = strcspn(ptr, chars); + int quoted = 0; + int count = strcspn_quote(ptr, chars, "ed); + char *base = ptr; res[i++] = ptr; ptr += count; if (*ptr) *ptr++ = '\0'; + /* + * If the string contains a quoted element, we + * need to remove the quotes. + */ + if (quoted) { + remove_quotes(base); + } + } res[i] = NULL; } From nobody Wed Jun 14 16:46:34 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCG6nljz4dHlv; Wed, 14 Jun 2023 16:46:34 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCG6K3Vz4P46; Wed, 14 Jun 2023 16:46:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761194; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7LkQjfCZjyvKNbW22Ej9xFr7U9loGAsQw0xt7Fj8iow=; b=w18gq8lbhS/LFO5UdjGWc2FarJGMesooIrn2YuWn6NRy6Z4BlkVkIxORUcYaVTdV8ON71X B/tto39wINWqH9vbSIyQYfVQUjeYF38MtiNdY7r/dON+F2JIo97/s3aPyF+l/8IoGQlrXM 86Tof1kCzPblpy2IHzjNcq67kXPXAVKTOht8WQrRLBJJ+Cxl7xJmkwW+Nm1KkT8LJo36nN akyCbI7lO6OusylWX7Tl24mxwDk451jGJXCqDCqsUU0k+KP0FKy1W+QVdyJE7DFvLBoH6n eJS4eVw1GQvVNqAAO8nvDM2EggkwuJwjAbvCeVmg48bxFfy0eAogAf+HSpHzTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761194; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7LkQjfCZjyvKNbW22Ej9xFr7U9loGAsQw0xt7Fj8iow=; b=wrZDWmy3dy7SoUIAMoWk38uFGCxL3GF0RUN9BNk6TIHTm3WOVhuZYRmt1XdiW3+8ODi1Yi e/qn3lTLlMNOPUvm1jHjyuUCn5AbvXrnZfr8lQ+6lCpiWZNi3NbZVNXPTGG39pIWaFyu/v JjMsc3I/k6wOn8t5T6rbOB1EYFBy4r/va7Co3pW6DPCWvL/Z7y7MheRxqEXMKR6M7Wq0+9 +sFqvYPaECsfZ36a8XxQGRo3vQeU9E+aa+eJMWsu7V5uWvKBbvWMecwXCkzvPzWnh9Bivp EpWWOly9yDJoidqBcHTsKd4vcPV2V8IuO+Oke59xxFsGkCqVOcT6na0CLyWdaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761194; a=rsa-sha256; cv=none; b=bIDWus28T7C+crPjYEVdlwy7szFTnIyn/gnw4j0Y56YKGcXSWh1KipDBvQHyYFo1uoyBXE k7KtvSPTcf4tBabXMfX268gOWuP8imhjg1mIGZdun8lbTO4cFR9R6cEUYD8wChKX2QHS8+ x37yiX0dDBzcYcMEYADx4e65/0kzM19zEzi+V24LsconXRsrE0HLBKMcrlAqYOqjK3dEDI 4nZ8V2GqKb19sadiIM7ebv7K9kOXH23gPPd4425OwX4McaG3bI0wOaLs/4BvQfpokaTAEN HsZ9YFfoS9QhqSWtSGcHS0PackFgYMajI+OizfOHJKWZR6OkKhQPxEgb9tt4xA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCG5MtXz1BDQ; Wed, 14 Jun 2023 16:46:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkYHY028274; Wed, 14 Jun 2023 16:46:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkYCU028273; Wed, 14 Jun 2023 16:46:34 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:34 GMT Message-Id: <202306141646.35EGkYCU028273@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 0589e7059bcd - main - hpwmc: add __pmcdbg_used annotation List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0589e7059bcd238027953d1311137512cc6dddea Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=0589e7059bcd238027953d1311137512cc6dddea commit 0589e7059bcd238027953d1311137512cc6dddea Author: Mitchell Horne AuthorDate: 2023-06-14 16:30:32 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:20 +0000 hpwmc: add __pmcdbg_used annotation For variables which are only used in PMCDBG* macros. Reviewed by: jkoshy, emaste MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40288 --- sys/sys/pmc.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/sys/pmc.h b/sys/sys/pmc.h index 54a00fed8ba4..cc8c4108aecc 100644 --- a/sys/sys/pmc.h +++ b/sys/sys/pmc.h @@ -1071,6 +1071,8 @@ extern struct pmc_driverstats pmc_stats; #if defined(HWPMC_DEBUG) #include +#define __pmcdbg_used /* unused variable annotation */ + /* debug flags, major flag groups */ struct pmc_debugflags { int pdb_CPU; @@ -1187,6 +1189,7 @@ extern struct pmc_debugflags pmc_debugflags; #define PMC_DEBUG_MIN_CLO 12 /* close */ #else +#define __pmcdbg_used __unused #define PMCDBG0(M, N, L, F) /* nothing */ #define PMCDBG1(M, N, L, F, p1) #define PMCDBG2(M, N, L, F, p1, p2) From nobody Wed Jun 14 16:46:35 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCJ1QTlz4dHm1; Wed, 14 Jun 2023 16:46:36 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCJ0cs8z4PLx; Wed, 14 Jun 2023 16:46:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761196; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pNiKeTvJo6MHrqm4eRmRPRxWa+wIiryV8pAbhznQzqo=; b=NkPPOB2AyD3K3Xdh+7sFDEPcWanIcbgkWl1xaQjIUWpejkAb0ZIEryFL/zRbdtlsGs9y0k dmZzp8lnNiBBSdEfBUWBFE6rm06VEYW2UEHZEaAz70LLThrzmObZecLulWzXMo08menkdQ GazNNHz+e/8H70Z0WumECpXnMdIMvekDoCHHJiIoDIvRY+kLIz0iwFBxXR8gU0pqDbB+V3 qARjorW/Y6dIVeQLoOYVQUApttWDjtxwlWSpmKMbhPIzW5B4AiNlZJKXt8JVJ8GoD7kxBL LM3xVA/ybFaKSLOtAj/wH7gEIMwqIJx6SL5UtzIyIVolJC+0cus2FjS9hS/8qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761196; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pNiKeTvJo6MHrqm4eRmRPRxWa+wIiryV8pAbhznQzqo=; b=YiXXmRVUh0HqbhQePC2v9wC45Oswpeim1EKMiCp7rUzL1klw8/JPLiNkr3JbNX11bLy48c H93RgmcPVrQgF7LF8wZ6VRAamd0lyhD/for71aDhWRkFcCzuy/X1DT3bY5shKU6pxPaYZ5 41q8NwRGFoqA2Okce+iOURuzyNrgpboVvv2CWUz6vVhGGLQQ8Gph8hODZwlpQ/oGSXytYt FsBFoR2LMcYZBBV7Wa4LGTU5DDOL5lczwORKxDQO77LYZWn5aWFCCe4HmOgABpCOGn/jRj LjRfikggfqELT0uA+1dni9zC5GsGJil07RNo//hxEUI5+U4Wh7gFtsc9UDeD+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761196; a=rsa-sha256; cv=none; b=hsQMX/zOMe1FdZhQBZp0HzNb4/9Nrs3woyi3S3//t8oh/4TwNHkQUwu2On3S0PWGjWynHD sgP7JkTiGdE/px+te6+BmjGrXTPcemx04Sjxi3fhlUisgAsb324WVYOdCePWWiIWnodHzS BF3IxjkO4VqOyKPXCSnXtFw0jhpmaFCcmd2wklhOMt7lB8nNozIdU8H9ZTj8ZWHnyNdqi/ qV8QAkvAR3DAllFur6w9oSZB3R3C4ZttVgTP+oz8e+R++7tJNKGGko8oPZgWnl0GZZu22+ htEJZwTdlioSUw4AmVLlCgbZCW67Nt3ORBC1jlh1pB6YYdOKRCyUdwxcLvsbxw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCH6HMNz1BG5; Wed, 14 Jun 2023 16:46:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkZiE028302; Wed, 14 Jun 2023 16:46:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkZDg028301; Wed, 14 Jun 2023 16:46:35 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:35 GMT Message-Id: <202306141646.35EGkZDg028301@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 52ebac7fd0c5 - main - hwpmc_mod.c: return statement style List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 52ebac7fd0c52eeee0129fe11f9fbb5fe1bcb396 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=52ebac7fd0c52eeee0129fe11f9fbb5fe1bcb396 commit 52ebac7fd0c52eeee0129fe11f9fbb5fe1bcb396 Author: Mitchell Horne AuthorDate: 2023-06-14 16:31:06 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:20 +0000 hwpmc_mod.c: return statement style Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40513 --- sys/dev/hwpmc/hwpmc_mod.c | 80 ++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index b3cf309fb74e..779f6bf4dc32 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -567,7 +567,7 @@ pmc_debugflags_parse(char *newstr, char *fence) done: free(tmpflags, M_PMC); - return error; + return (error); } static int @@ -595,7 +595,7 @@ pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS) free(newstr, M_PMC); - return error; + return (error); } #endif @@ -820,11 +820,11 @@ pmc_rdtsc(void) { #if defined(__i386__) || defined(__amd64__) if (__predict_true(amd_feature & AMDID_RDTSCP)) - return rdtscp(); + return (rdtscp()); else - return rdtsc(); + return (rdtsc()); #else - return get_cyclecount(); + return (get_cyclecount()); #endif } @@ -1197,10 +1197,10 @@ pmc_attach_process(struct proc *p, struct pmc *pm) */ if ((pm->pm_flags & PMC_PP_ENABLE_MSR_ACCESS) != 0) - return EPERM; + return (EPERM); if ((pm->pm_flags & PMC_F_DESCENDANTS) == 0) - return pmc_attach_one_process(p, pm); + return (pmc_attach_one_process(p, pm)); /* * Traverse all child processes, attaching them to @@ -1232,7 +1232,7 @@ pmc_attach_process(struct proc *p, struct pmc *pm) done: sx_sunlock(&proctree_lock); - return error; + return (error); } /* @@ -1258,10 +1258,10 @@ pmc_detach_one_process(struct proc *p, struct pmc *pm, int flags) pm, ri, p, p->p_pid, p->p_comm, flags); if ((pp = pmc_find_process_descriptor(p, 0)) == NULL) - return ESRCH; + return (ESRCH); if (pp->pp_pmcs[ri].pp_pmc != pm) - return EINVAL; + return (EINVAL); pmc_unlink_target_process(pm, pp); @@ -1279,7 +1279,7 @@ pmc_detach_one_process(struct proc *p, struct pmc *pm, int flags) __LINE__, pp->pp_refcnt, pp)); if (pp->pp_refcnt != 0) /* still a target of some PMC */ - return 0; + return (0); pmc_remove_process_descriptor(pp); @@ -1290,7 +1290,7 @@ pmc_detach_one_process(struct proc *p, struct pmc *pm, int flags) p->p_flag &= ~P_HWPMC; PROC_UNLOCK(p); - return 0; + return (0); } /* @@ -1308,7 +1308,7 @@ pmc_detach_process(struct proc *p, struct pmc *pm) PMC_TO_ROWINDEX(pm), p, p->p_pid, p->p_comm); if ((pm->pm_flags & PMC_F_DESCENDANTS) == 0) - return pmc_detach_one_process(p, pm, PMC_FLAG_REMOVE); + return (pmc_detach_one_process(p, pm, PMC_FLAG_REMOVE)); /* * Traverse all children, detaching them from this PMC. We @@ -1342,7 +1342,7 @@ pmc_detach_process(struct proc *p, struct pmc *pm) if (LIST_EMPTY(&pm->pm_targets)) pm->pm_flags &= ~PMC_F_ATTACH_DONE; - return 0; + return (0); } @@ -2341,7 +2341,7 @@ pmc_hook_handler(struct thread *td, int function, void *arg) } - return 0; + return (0); } /* @@ -2369,7 +2369,7 @@ pmc_allocate_owner_descriptor(struct proc *p) PMCDBG4(OWN,ALL,1, "allocate-owner proc=%p (%d, %s) pmc-owner=%p", p, p->p_pid, p->p_comm, po); - return po; + return (po); } static void @@ -2526,7 +2526,7 @@ pmc_find_thread_descriptor(struct pmc_process *pp, struct thread *td, free(ptnew, M_PMC); } - return pt; + return (pt); } /* @@ -2629,8 +2629,7 @@ pmc_find_process_descriptor(struct proc *p, uint32_t mode) if (ppnew != NULL) free(ppnew, M_PMC); - - return pp; + return (pp); } /* @@ -2688,7 +2687,7 @@ pmc_find_owner_descriptor(struct proc *p) PMCDBG5(OWN,FND,1, "find-owner proc=%p (%d, %s) hindex=0x%x -> " "pmc-owner=%p", p, p->p_pid, p->p_comm, hindex, po); - return po; + return (po); } /* @@ -2708,7 +2707,7 @@ pmc_allocate_pmc_descriptor(void) pmc->pm_pcpu_state = malloc(sizeof(struct pmc_pcpu_state)*mp_ncpus, M_PMC, M_WAITOK|M_ZERO); PMCDBG1(PMC,ALL,1, "allocate-pmc -> pmc=%p", pmc); - return pmc; + return (pmc); } /* @@ -2937,7 +2936,7 @@ pmc_register_owner(struct proc *p, struct pmc *pmc) if ((po = pmc_find_owner_descriptor(p)) == NULL) if ((po = pmc_allocate_owner_descriptor(p)) == NULL) - return ENOMEM; + return (ENOMEM); KASSERT(pmc->pm_owner == NULL, ("[pmc,%d] attempting to own an initialized PMC", __LINE__)); @@ -2955,7 +2954,7 @@ pmc_register_owner(struct proc *p, struct pmc *pmc) PMCDBG2(PMC,REG,1, "register-owner pmc-owner=%p pmc=%p", po, pmc); - return 0; + return (0); } /* @@ -2968,7 +2967,7 @@ pmc_register_owner(struct proc *p, struct pmc *pmc) int pmc_getrowdisp(int ri) { - return pmc_pmcdisp[ri]; + return (pmc_pmcdisp[ri]); } /* @@ -3018,12 +3017,11 @@ pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu) */ if ((pp = pmc_find_process_descriptor(p, 0)) != NULL) if (pp->pp_pmcs[ri].pp_pmc) - return EEXIST; + return (EEXIST); PMCDBG4(PMC,ALR,2, "can-allocate-rowindex proc=%p (%d, %s) ri=%d ok", p, p->p_pid, p->p_comm, ri); - - return 0; + return (0); } /* @@ -3059,16 +3057,14 @@ pmc_can_allocate_row(int ri, enum pmc_mode mode) if (!PMC_ROW_DISP_IS_FREE(ri) && !(disp == PMC_DISP_THREAD && PMC_ROW_DISP_IS_THREAD(ri)) && !(disp == PMC_DISP_STANDALONE && PMC_ROW_DISP_IS_STANDALONE(ri))) - return EBUSY; + return (EBUSY); /* * All OK */ PMCDBG2(PMC,ALR,2, "can-allocate-row ri=%d mode=%d ok", ri, mode); - - return 0; - + return (0); } /* @@ -3088,7 +3084,7 @@ pmc_find_pmc_descriptor_in_process(struct pmc_owner *po, pmc_id_t pmcid) if (pm->pm_id == pmcid) return pm; - return NULL; + return (NULL); } static int @@ -3111,26 +3107,26 @@ pmc_find_pmc(pmc_id_t pmcid, struct pmc **pmc) */ if ((pp = pmc_find_process_descriptor(curthread->td_proc, PMC_FLAG_NONE)) == NULL) { - return ESRCH; + return (ESRCH); } else { opm = pp->pp_pmcs[PMC_ID_TO_ROWINDEX(pmcid)].pp_pmc; if (opm == NULL) - return ESRCH; + return (ESRCH); if ((opm->pm_flags & (PMC_F_ATTACHED_TO_OWNER| PMC_F_DESCENDANTS)) != (PMC_F_ATTACHED_TO_OWNER| PMC_F_DESCENDANTS)) - return ESRCH; + return (ESRCH); po = opm->pm_owner; } } if ((pm = pmc_find_pmc_descriptor_in_process(po, pmcid)) == NULL) - return EINVAL; + return (EINVAL); PMCDBG2(PMC,FND,2, "find-pmc id=%d -> pmc=%p", pmcid, pm); *pmc = pm; - return 0; + return (0); } /* @@ -3296,7 +3292,7 @@ pmc_stop(struct pmc *pm) */ if (PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm))) - return 0; + return (0); /* * A system-mode PMC. Move to the CPU associated with @@ -3313,7 +3309,7 @@ pmc_stop(struct pmc *pm) ("[pmc,%d] illegal cpu=%d", __LINE__, cpu)); if (!pmc_cpu_is_active(cpu)) - return ENXIO; + return (ENXIO); pmc_select_cpu(cpu); @@ -5468,7 +5464,7 @@ pmc_mdep_alloc(int nclasses) /* Add base class. */ pmc_soft_initialize(md); - return md; + return (md); } void @@ -5557,7 +5553,7 @@ pmc_initialize(void) printf("hwpmc: kernel version (0x%x) does not match " "module version (0x%x).\n", pmc_kernel_version, PMC_VERSION); - return EPROGMISMATCH; + return (EPROGMISMATCH); } /* @@ -5982,5 +5978,5 @@ load (struct module *module __unused, int cmd, void *arg __unused) break; } - return error; + return (error); } From nobody Wed Jun 14 16:46:36 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCK1Pwcz4dHhR; Wed, 14 Jun 2023 16:46:37 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCK0nfdz4PKD; Wed, 14 Jun 2023 16:46:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=quYHE+wR3P/xHPUD3Fwx+f/O8ldUzOAJXACH3t8s0AE=; b=ZmW1EdTqHAqGcGqSMzPTnMMVYEsO3mw14VLtKq6C1mA05R3xKDd3JAWzFGuTu/z1D8+S49 QwmKI9lIJmoT77YuXwF8qqdGQfGgTxiql1hDzu6EqVp7MAfjTq8IXGP74T7i52lHzU87ci wRVSW+xhsaiyMuGN2ow1iIaEKw5sk6+5yfhaDjC0qhtoCWWgzMe6cbQoOD+TKTrYgK76cC jD0sG6//qv4lfAabkm0IlFysqXkMuPtgJ66Ukvh779nkQ7J3dBk9yPHkTJLpDfgcRvuvDM pDVhpRCaMkrLNkOf4qMtuc2UR+tBjDV015jkVHqDuW5KxI4HIjPpRYu63ni7eQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=quYHE+wR3P/xHPUD3Fwx+f/O8ldUzOAJXACH3t8s0AE=; b=e6gFaVAdwYZjqKkYI56365YoE/dveyYCcremHpP9SKfXmNmksVtmrPDQIjJ2Cnv2yu5mAn gvaKWjc9pvHUK03KM5VCdcqUe+28VHSmO9U6b5mNECycLN4inyBuZMdzo7K0OeW3Bdzb7H /FPs+wibUkemixsntp3RqcN2Yid/Xrh+bi9YiBbbfE3RyYW/2lkxz7FlTO+zlqD4xJZCMh 3byoz0i7762IqVjle7p7tImN8XaWj4vBIm3PMA+KCdQyt3wloprbXDCuG4bxX400UECJZv 7UMcJunPBZk+ZushmMva8GGMNAhD4SLmM6ipChvCq+A5v5zrwRHOTHLF1Azysg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761197; a=rsa-sha256; cv=none; b=XySdvOURQoIg8SYdpffE47/LP+GiQIAokkT+Oi1ou7hxd53uoEJz+6gWdlbeVUyVWRNkYr arvyn5PxHvm7Xfe4CRbvqPyuWLhZu1/Ms0fjb0eFUCkHqRctfsZRtXxOOBg14iXddqF//+ +5p1Ke/rNEs3AgLmuZMDJ6YmoRXgw5Z8VY1B89Slbb4NsNIXtXViHwBjrUrxDonE2BV3uH W763T73HIm3+Fl/I4L55RgZjy2kj2qGujacgZhE4g6EybGsA+Ji9/x0ZlwreJGvQ7uShcU M8yA8CnQjC6KJXkwQEYeP4XhY1xveIXcLI++yjSJEjQVnT1bMnYoJT7l/U5dYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCJ70fbz1B07; Wed, 14 Jun 2023 16:46:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkagO028321; Wed, 14 Jun 2023 16:46:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkana028320; Wed, 14 Jun 2023 16:46:36 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:36 GMT Message-Id: <202306141646.35EGkana028320@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 693cd30797b8 - main - hwpmc_mod.c: whitespace style cleanup List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 693cd30797b8e613436d6c1829a28d417ffb997e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=693cd30797b8e613436d6c1829a28d417ffb997e commit 693cd30797b8e613436d6c1829a28d417ffb997e Author: Mitchell Horne AuthorDate: 2023-06-14 16:31:15 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:20 +0000 hwpmc_mod.c: whitespace style cleanup Handle a few things related to spacing: - Remove redundant/superfluous blank lines (and add a couple where helpful) - Add spacing around binary operators - Remove spacing after casts and before goto labels - Adjustments for line width of 80 chars - Tab/space character issues Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40514 --- sys/dev/hwpmc/hwpmc_mod.c | 460 +++++++++++++++++----------------------------- 1 file changed, 169 insertions(+), 291 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index 779f6bf4dc32..7b8950f3c024 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -29,7 +29,6 @@ * 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 @@ -79,8 +78,12 @@ __FBSDID("$FreeBSD$"); #include "hwpmc_soft.h" -#define PMC_EPOCH_ENTER() struct epoch_tracker pmc_et; epoch_enter_preempt(global_epoch_preempt, &pmc_et) -#define PMC_EPOCH_EXIT() epoch_exit_preempt(global_epoch_preempt, &pmc_et) +#define PMC_EPOCH_ENTER() \ + struct epoch_tracker pmc_et; \ + epoch_enter_preempt(global_epoch_preempt, &pmc_et) + +#define PMC_EPOCH_EXIT() \ + epoch_exit_preempt(global_epoch_preempt, &pmc_et) /* * Types @@ -96,12 +99,12 @@ enum pmc_flags { /* * The offset in sysent where the syscall is allocated. */ - static int pmc_syscall_num = NO_SYSCALL; + struct pmc_cpu **pmc_pcpu; /* per-cpu state */ pmc_value_t *pmc_pcpu_saved; /* saved PMC values: CSW handling */ -#define PMC_PCPU_SAVED(C,R) pmc_pcpu_saved[(R) + md->pmd_npmc*(C)] +#define PMC_PCPU_SAVED(C, R) pmc_pcpu_saved[(R) + md->pmd_npmc * (C)] struct mtx_pool *pmc_mtxpool; static int *pmc_pmcdisp; /* PMC row dispositions */ @@ -140,7 +143,6 @@ static int *pmc_pmcdisp; /* PMC row dispositions */ __LINE__)); \ } while (0) - /* various event handlers */ static eventhandler_tag pmc_exit_tag, pmc_fork_tag, pmc_kld_load_tag, pmc_kld_unload_tag; @@ -148,41 +150,37 @@ static eventhandler_tag pmc_exit_tag, pmc_fork_tag, pmc_kld_load_tag, /* Module statistics */ struct pmc_driverstats pmc_stats; - /* Machine/processor dependent operations */ static struct pmc_mdep *md; /* * Hash tables mapping owner processes and target threads to PMCs. */ - struct mtx pmc_processhash_mtx; /* spin mutex */ static u_long pmc_processhashmask; -static LIST_HEAD(pmc_processhash, pmc_process) *pmc_processhash; +static LIST_HEAD(pmc_processhash, pmc_process) *pmc_processhash; /* * Hash table of PMC owner descriptors. This table is protected by * the shared PMC "sx" lock. */ - static u_long pmc_ownerhashmask; -static LIST_HEAD(pmc_ownerhash, pmc_owner) *pmc_ownerhash; +static LIST_HEAD(pmc_ownerhash, pmc_owner) *pmc_ownerhash; /* * List of PMC owners with system-wide sampling PMCs. */ - -static CK_LIST_HEAD(, pmc_owner) pmc_ss_owners; +static CK_LIST_HEAD(, pmc_owner) pmc_ss_owners; /* * List of free thread entries. This is protected by the spin * mutex. */ static struct mtx pmc_threadfreelist_mtx; /* spin mutex */ -static LIST_HEAD(, pmc_thread) pmc_threadfreelist; -static int pmc_threadfreelist_entries=0; -#define THREADENTRY_SIZE \ -(sizeof(struct pmc_thread) + (md->pmd_npmc * sizeof(struct pmc_threadpmcstate))) +static LIST_HEAD(, pmc_thread) pmc_threadfreelist; +static int pmc_threadfreelist_entries = 0; +#define THREADENTRY_SIZE (sizeof(struct pmc_thread) + \ + (md->pmd_npmc * sizeof(struct pmc_threadpmcstate))) /* * Task to free thread descriptors @@ -198,13 +196,14 @@ static struct pmc_classdep **pmc_rowindex_to_classdep; * Prototypes */ -#ifdef HWPMC_DEBUG +#ifdef HWPMC_DEBUG static int pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS); static int pmc_debugflags_parse(char *newstr, char *fence); #endif static int load(struct module *module, int cmd, void *arg); -static int pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf); +static int pmc_add_sample(ring_type_t ring, struct pmc *pm, + struct trapframe *tf); static void pmc_add_thread_descriptors_from_proc(struct proc *p, struct pmc_process *pp); static int pmc_attach_process(struct proc *p, struct pmc *pm); @@ -214,7 +213,8 @@ static int pmc_attach_one_process(struct proc *p, struct pmc *pm); static int pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu); static int pmc_can_attach(struct pmc *pm, struct proc *p); -static void pmc_capture_user_callchain(int cpu, int soft, struct trapframe *tf); +static void pmc_capture_user_callchain(int cpu, int soft, + struct trapframe *tf); static void pmc_cleanup(void); static int pmc_detach_process(struct proc *p, struct pmc *pm); static int pmc_detach_one_process(struct proc *p, struct pmc *pm, @@ -259,6 +259,7 @@ static void pmc_unlink_target_process(struct pmc *pmc, struct pmc_process *pp); static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process *pp); static int generic_switch_out(struct pmc_cpu *pc, struct pmc_process *pp); + static struct pmc_mdep *pmc_generic_cpu_initialize(void); static void pmc_generic_cpu_finalize(struct pmc_mdep *md); static void pmc_post_callchain_callback(void); @@ -275,37 +276,49 @@ SYSCTL_DECL(_kern_hwpmc); SYSCTL_NODE(_kern_hwpmc, OID_AUTO, stats, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "HWPMC stats"); - /* Stats. */ SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, intr_ignored, CTLFLAG_RW, - &pmc_stats.pm_intr_ignored, "# of interrupts ignored"); + &pmc_stats.pm_intr_ignored, + "# of interrupts ignored"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, intr_processed, CTLFLAG_RW, - &pmc_stats.pm_intr_processed, "# of interrupts processed"); + &pmc_stats.pm_intr_processed, + "# of interrupts processed"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, intr_bufferfull, CTLFLAG_RW, - &pmc_stats.pm_intr_bufferfull, "# of interrupts where buffer was full"); + &pmc_stats.pm_intr_bufferfull, + "# of interrupts where buffer was full"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, syscalls, CTLFLAG_RW, - &pmc_stats.pm_syscalls, "# of syscalls"); + &pmc_stats.pm_syscalls, + "# of syscalls"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, syscall_errors, CTLFLAG_RW, - &pmc_stats.pm_syscall_errors, "# of syscall_errors"); + &pmc_stats.pm_syscall_errors, + "# of syscall_errors"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, buffer_requests, CTLFLAG_RW, - &pmc_stats.pm_buffer_requests, "# of buffer requests"); -SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, buffer_requests_failed, CTLFLAG_RW, - &pmc_stats.pm_buffer_requests_failed, "# of buffer requests which failed"); + &pmc_stats.pm_buffer_requests, + "# of buffer requests"); +SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, buffer_requests_failed, + CTLFLAG_RW, &pmc_stats.pm_buffer_requests_failed, + "# of buffer requests which failed"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, log_sweeps, CTLFLAG_RW, - &pmc_stats.pm_log_sweeps, "# of times samples were processed"); + &pmc_stats.pm_log_sweeps, + "# of times samples were processed"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, merges, CTLFLAG_RW, - &pmc_stats.pm_merges, "# of times kernel stack was found for user trace"); + &pmc_stats.pm_merges, + "# of times kernel stack was found for user trace"); SYSCTL_COUNTER_U64(_kern_hwpmc_stats, OID_AUTO, overwrites, CTLFLAG_RW, - &pmc_stats.pm_overwrites, "# of times a sample was overwritten before being logged"); + &pmc_stats.pm_overwrites, + "# of times a sample was overwritten before being logged"); static int pmc_callchaindepth = PMC_CALLCHAIN_DEPTH; SYSCTL_INT(_kern_hwpmc, OID_AUTO, callchaindepth, CTLFLAG_RDTUN, - &pmc_callchaindepth, 0, "depth of call chain records"); + &pmc_callchaindepth, 0, + "depth of call chain records"); char pmc_cpuid[PMC_CPUID_LEN]; SYSCTL_STRING(_kern_hwpmc, OID_AUTO, cpuid, CTLFLAG_RD, - pmc_cpuid, 0, "cpu version string"); -#ifdef HWPMC_DEBUG + pmc_cpuid, 0, + "cpu version string"); + +#ifdef HWPMC_DEBUG struct pmc_debugflags pmc_debugflags = PMC_DEBUG_DEFAULT_FLAGS; char pmc_debugstr[PMC_DEBUG_STRSIZE]; TUNABLE_STR(PMC_SYSCTL_NAME_PREFIX "debugflags", pmc_debugstr, @@ -316,53 +329,48 @@ SYSCTL_PROC(_kern_hwpmc, OID_AUTO, debugflags, "debug flags"); #endif - /* * kern.hwpmc.hashrows -- determines the number of rows in the * of the hash table used to look up threads */ - static int pmc_hashsize = PMC_HASH_SIZE; SYSCTL_INT(_kern_hwpmc, OID_AUTO, hashsize, CTLFLAG_RDTUN, - &pmc_hashsize, 0, "rows in hash tables"); + &pmc_hashsize, 0, + "rows in hash tables"); /* * kern.hwpmc.nsamples --- number of PC samples/callchain stacks per CPU */ - static int pmc_nsamples = PMC_NSAMPLES; SYSCTL_INT(_kern_hwpmc, OID_AUTO, nsamples, CTLFLAG_RDTUN, - &pmc_nsamples, 0, "number of PC samples per CPU"); + &pmc_nsamples, 0, + "number of PC samples per CPU"); -static uint64_t pmc_sample_mask = PMC_NSAMPLES-1; +static uint64_t pmc_sample_mask = PMC_NSAMPLES - 1; /* * kern.hwpmc.mtxpoolsize -- number of mutexes in the mutex pool. */ - static int pmc_mtxpool_size = PMC_MTXPOOL_SIZE; SYSCTL_INT(_kern_hwpmc, OID_AUTO, mtxpoolsize, CTLFLAG_RDTUN, - &pmc_mtxpool_size, 0, "size of spin mutex pool"); - + &pmc_mtxpool_size, 0, + "size of spin mutex pool"); /* * kern.hwpmc.threadfreelist_entries -- number of free entries */ - SYSCTL_INT(_kern_hwpmc, OID_AUTO, threadfreelist_entries, CTLFLAG_RD, - &pmc_threadfreelist_entries, 0, "number of available thread entries"); - + &pmc_threadfreelist_entries, 0, + "number of available thread entries"); /* * kern.hwpmc.threadfreelist_max -- maximum number of free entries */ - static int pmc_threadfreelist_max = PMC_THREADLIST_MAX; SYSCTL_INT(_kern_hwpmc, OID_AUTO, threadfreelist_max, CTLFLAG_RW, &pmc_threadfreelist_max, 0, "maximum number of available thread entries before freeing some"); - /* * kern.hwpmc.mincount -- minimum sample count */ @@ -379,7 +387,6 @@ SYSCTL_INT(_kern_hwpmc, OID_AUTO, mincount, CTLFLAG_RWTUN, * if system-wide measurements need to be taken concurrently with other * per-process measurements. This feature is turned off by default. */ - static int pmc_unprivileged_syspmcs = 0; SYSCTL_INT(_security_bsd, OID_AUTO, unprivileged_syspmcs, CTLFLAG_RWTUN, &pmc_unprivileged_syspmcs, 0, @@ -390,7 +397,6 @@ SYSCTL_INT(_security_bsd, OID_AUTO, unprivileged_syspmcs, CTLFLAG_RWTUN, * these are always zero for our uses. The hash multiplier is * round((2^LONG_BIT) * ((sqrt(5)-1)/2)). */ - #if LONG_BIT == 64 #define _PMC_HM 11400714819323198486u #elif LONG_BIT == 32 @@ -433,7 +439,7 @@ DECLARE_MODULE(pmc, pmc_mod, SI_SUB_SMP, SI_ORDER_ANY); #endif MODULE_VERSION(pmc, PMC_VERSION); -#ifdef HWPMC_DEBUG +#ifdef HWPMC_DEBUG enum pmc_dbgparse_state { PMCDS_WS, /* in whitespace */ PMCDS_MAJOR, /* seen a major keyword */ @@ -448,7 +454,7 @@ pmc_debugflags_parse(char *newstr, char *fence) int error, found, *newbits, tmp; size_t kwlen; - tmpflags = malloc(sizeof(*tmpflags), M_PMC, M_WAITOK|M_ZERO); + tmpflags = malloc(sizeof(*tmpflags), M_PMC, M_WAITOK | M_ZERO); p = newstr; error = 0; @@ -564,8 +570,7 @@ pmc_debugflags_parse(char *newstr, char *fence) /* save the new flag set */ bcopy(tmpflags, &pmc_debugflags, sizeof(pmc_debugflags)); - - done: +done: free(tmpflags, M_PMC); return (error); } @@ -580,7 +585,7 @@ pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS) (void) arg1; (void) arg2; /* unused parameters */ n = sizeof(pmc_debugstr); - newstr = malloc(n, M_PMC, M_WAITOK|M_ZERO); + newstr = malloc(n, M_PMC, M_WAITOK | M_ZERO); (void) strlcpy(newstr, pmc_debugstr, n); error = sysctl_handle_string(oidp, newstr, n, req); @@ -614,12 +619,10 @@ pmc_ri_to_classdep(struct pmc_mdep *md, int ri, int *adjri) ("[pmc,%d] illegal row-index %d", __LINE__, ri)); pcd = pmc_rowindex_to_classdep[ri]; - KASSERT(pcd != NULL, ("[pmc,%d] ri %d null pcd", __LINE__, ri)); *adjri = ri - pcd->pcd_ri; - KASSERT(*adjri >= 0 && *adjri < pcd->pcd_num, ("[pmc,%d] adjusted row-index %d", __LINE__, *adjri)); @@ -743,7 +746,6 @@ pmc_ri_to_classdep(struct pmc_mdep *md, int ri, int *adjri) /* * save the cpu binding of the current kthread */ - void pmc_save_cpu_binding(struct pmc_binding *pb) { @@ -759,7 +761,6 @@ pmc_save_cpu_binding(struct pmc_binding *pb) /* * restore the cpu binding of the current thread */ - void pmc_restore_cpu_binding(struct pmc_binding *pb) { @@ -777,7 +778,6 @@ pmc_restore_cpu_binding(struct pmc_binding *pb) /* * move execution over the specified cpu and bind it there. */ - void pmc_select_cpu(int cpu) { @@ -807,7 +807,6 @@ pmc_select_cpu(int cpu) * We do this by pause'ing for 1 tick -- invoking mi_switch() is not * guaranteed to force a context switch. */ - static void pmc_force_context_switch(void) { @@ -832,7 +831,6 @@ pmc_rdtsc(void) * Get the file name for an executable. This is a simple wrapper * around vn_fullpath(9). */ - static void pmc_getfilename(struct vnode *v, char **fullpath, char **freepath) { @@ -845,7 +843,6 @@ pmc_getfilename(struct vnode *v, char **fullpath, char **freepath) /* * remove an process owning PMCs */ - void pmc_remove_owner(struct pmc_owner *po) { @@ -881,7 +878,6 @@ pmc_remove_owner(struct pmc_owner *po) /* * remove an owner process record if all conditions are met. */ - static void pmc_maybe_remove_owner(struct pmc_owner *po) { @@ -893,7 +889,6 @@ pmc_maybe_remove_owner(struct pmc_owner *po) * - this process does not own any PMCs * - this process has not allocated a system-wide sampling buffer */ - if (LIST_EMPTY(&po->po_pmcs) && ((po->po_flags & PMC_PO_OWNS_LOGFILE) == 0)) { pmc_remove_owner(po); @@ -904,7 +899,6 @@ pmc_maybe_remove_owner(struct pmc_owner *po) /* * Add an association between a target process and a PMC. */ - static void pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) { @@ -915,7 +909,6 @@ pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) #endif sx_assert(&pmc_sx, SX_XLOCKED); - KASSERT(pm != NULL && pp != NULL, ("[pmc,%d] Null pm %p or pp %p", __LINE__, pm, pp)); KASSERT(PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm)), @@ -936,8 +929,7 @@ pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) KASSERT(0, ("[pmc,%d] pp %p already in pmc %p targets", __LINE__, pp, pm)); #endif - - pt = malloc(sizeof(struct pmc_target), M_PMC, M_WAITOK|M_ZERO); + pt = malloc(sizeof(struct pmc_target), M_PMC, M_WAITOK | M_ZERO); pt->pt_process = pp; LIST_INSERT_HEAD(&pm->pm_targets, pt, pt_next); @@ -953,7 +945,6 @@ pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) */ pp->pp_pmcs[ri].pp_pmcval = PMC_TO_MODE(pm) == PMC_MODE_TS ? pm->pm_sc.pm_reloadcount : 0; - pp->pp_refcnt++; #ifdef INVARIANTS @@ -973,7 +964,6 @@ pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) /* * Removes the association between a target process and a PMC. */ - static void pmc_unlink_target_process(struct pmc *pm, struct pmc_process *pp) { @@ -1001,13 +991,13 @@ pmc_unlink_target_process(struct pmc *pm, struct pmc_process *pp) ri, pm, pp->pp_pmcs[ri].pp_pmc)); pp->pp_pmcs[ri].pp_pmc = NULL; - pp->pp_pmcs[ri].pp_pmcval = (pmc_value_t) 0; + pp->pp_pmcs[ri].pp_pmcval = (pmc_value_t)0; /* Clear the per-thread values at this row index. */ if (PMC_TO_MODE(pm) == PMC_MODE_TS) { mtx_lock_spin(pp->pp_tdslock); LIST_FOREACH(pt, &pp->pp_tds, pt_next) - pt->pt_pmcs[ri].pt_pmcval = (pmc_value_t) 0; + pt->pt_pmcs[ri].pt_pmcval = (pmc_value_t)0; mtx_unlock_spin(pp->pp_tdslock); } @@ -1037,8 +1027,7 @@ pmc_unlink_target_process(struct pmc *pm, struct pmc_process *pp) kern_psignal(p, SIGIO); PROC_UNLOCK(p); - PMCDBG2(PRC,SIG,2, "signalling proc=%p signal=%d", p, - SIGIO); + PMCDBG2(PRC,SIG,2, "signalling proc=%p signal=%d", p, SIGIO); } } @@ -1100,7 +1089,6 @@ pmc_can_attach(struct pmc *pm, struct proc *t) /* * Attach a process to a PMC. */ - static int pmc_attach_one_process(struct proc *p, struct pmc *pm) { @@ -1168,7 +1156,7 @@ pmc_attach_one_process(struct proc *p, struct pmc *pm) } return (0); - fail: +fail: PROC_LOCK(p); p->p_flag &= ~P_HWPMC; PROC_UNLOCK(p); @@ -1178,7 +1166,6 @@ pmc_attach_one_process(struct proc *p, struct pmc *pm) /* * Attach a process and optionally its children */ - static int pmc_attach_process(struct proc *p, struct pmc *pm) { @@ -1190,12 +1177,10 @@ pmc_attach_process(struct proc *p, struct pmc *pm) PMCDBG5(PRC,ATT,1, "attach pm=%p ri=%d proc=%p (%d, %s)", pm, PMC_TO_ROWINDEX(pm), p, p->p_pid, p->p_comm); - /* * If this PMC successfully allowed a GETMSR operation * in the past, disallow further ATTACHes. */ - if ((pm->pm_flags & PMC_PP_ENABLE_MSR_ACCESS) != 0) return (EPERM); @@ -1206,11 +1191,9 @@ pmc_attach_process(struct proc *p, struct pmc *pm) * Traverse all child processes, attaching them to * this PMC. */ - sx_slock(&proctree_lock); top = p; - for (;;) { if ((error = pmc_attach_one_process(p, pm)) != 0) break; @@ -1228,9 +1211,9 @@ pmc_attach_process(struct proc *p, struct pmc *pm) } if (error) - (void) pmc_detach_process(top, pm); + (void)pmc_detach_process(top, pm); - done: +done: sx_sunlock(&proctree_lock); return (error); } @@ -1240,7 +1223,6 @@ pmc_attach_process(struct proc *p, struct pmc *pm) * this process, remove the process structure from its hash table. If * 'flags' contains PMC_FLAG_REMOVE, then free the process structure. */ - static int pmc_detach_one_process(struct proc *p, struct pmc *pm, int flags) { @@ -1296,7 +1278,6 @@ pmc_detach_one_process(struct proc *p, struct pmc *pm, int flags) /* * Detach a process and optionally its descendants from a PMC. */ - static int pmc_detach_process(struct proc *p, struct pmc *pm) { @@ -1315,13 +1296,11 @@ pmc_detach_process(struct proc *p, struct pmc *pm) * ignore errors since we could be detaching a PMC from a * partially attached proc tree. */ - sx_slock(&proctree_lock); top = p; - for (;;) { - (void) pmc_detach_one_process(p, pm, PMC_FLAG_REMOVE); + (void)pmc_detach_one_process(p, pm, PMC_FLAG_REMOVE); if (!LIST_EMPTY(&p->p_children)) p = LIST_FIRST(&p->p_children); @@ -1335,21 +1314,17 @@ pmc_detach_process(struct proc *p, struct pmc *pm) p = p->p_pptr; } } - - done: +done: sx_sunlock(&proctree_lock); - if (LIST_EMPTY(&pm->pm_targets)) pm->pm_flags &= ~PMC_F_ATTACH_DONE; return (0); } - /* * Thread context switch IN */ - static void pmc_process_csw_in(struct thread *td) { @@ -1383,25 +1358,21 @@ pmc_process_csw_in(struct thread *td) ("[pmc,%d] weird CPU id %d", __LINE__, cpu)); pc = pmc_pcpu[cpu]; - for (ri = 0; ri < md->pmd_npmc; ri++) { - if ((pm = pp->pp_pmcs[ri].pp_pmc) == NULL) continue; KASSERT(PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm)), ("[pmc,%d] Target PMC in non-virtual mode (%d)", - __LINE__, PMC_TO_MODE(pm))); - + __LINE__, PMC_TO_MODE(pm))); KASSERT(PMC_TO_ROWINDEX(pm) == ri, ("[pmc,%d] Row index mismatch pmc %d != ri %d", - __LINE__, PMC_TO_ROWINDEX(pm), ri)); + __LINE__, PMC_TO_ROWINDEX(pm), ri)); /* * Only PMCs that are marked as 'RUNNING' need * be placed on hardware. */ - if (pm->pm_state != PMC_STATE_RUNNING) continue; @@ -1446,7 +1417,7 @@ pmc_process_csw_in(struct thread *td) /* * If we have a thread descriptor, use the per-thread * counter in the descriptor. If not, we will use - * a per-process counter. + * a per-process counter. * * TODO: Remove the per-process "safety net" once * we have thoroughly tested that we don't hit the @@ -1465,7 +1436,6 @@ pmc_process_csw_in(struct thread *td) * another thread from this process switches in * before any threads switch out. */ - newvalue = pp->pp_pmcs[ri].pp_pmcval; pp->pp_pmcs[ri].pp_pmcval = pm->pm_sc.pm_reloadcount; @@ -1505,17 +1475,14 @@ pmc_process_csw_in(struct thread *td) * perform any other architecture/cpu dependent thread * switch-in actions. */ - - (void) (*md->pmd_switch_in)(pc, pp); + (void)(*md->pmd_switch_in)(pc, pp); critical_exit(); - } /* * Thread context switch OUT. */ - static void pmc_process_csw_out(struct thread *td) { @@ -1545,14 +1512,9 @@ pmc_process_csw_out(struct thread *td) * found we still need to deconfigure any PMCs that * are currently running on hardware. */ - p = td->td_proc; pp = pmc_find_process_descriptor(p, PMC_FLAG_NONE); - /* - * save PMCs - */ - critical_enter(); cpu = PCPU_GET(cpuid); /* td->td_oncpu is invalid */ @@ -1575,12 +1537,10 @@ pmc_process_csw_out(struct thread *td) * the hardware to determine if a PMC is scheduled on * it. */ - for (ri = 0; ri < md->pmd_npmc; ri++) { - pcd = pmc_ri_to_classdep(md, ri, &adjri); pm = NULL; - (void) (*pcd->pcd_get_config)(cpu, adjri, &pm); + (void)(*pcd->pcd_get_config)(cpu, adjri, &pm); if (pm == NULL) /* nothing at this row index */ continue; @@ -1614,13 +1574,11 @@ pmc_process_csw_out(struct thread *td) * If this PMC is associated with this process, * save the reading. */ - if (pm->pm_state != PMC_STATE_DELETED && pp != NULL && pp->pp_pmcs[ri].pp_pmc != NULL) { KASSERT(pm == pp->pp_pmcs[ri].pp_pmc, ("[pmc,%d] pm %p != pp_pmcs[%d] %p", __LINE__, pm, ri, pp->pp_pmcs[ri].pp_pmc)); - KASSERT(pp->pp_refcnt > 0, ("[pmc,%d] pp refcnt = %d", __LINE__, pp->pp_refcnt)); @@ -1673,7 +1631,7 @@ pmc_process_csw_out(struct thread *td) } mtx_pool_unlock_spin(pmc_mtxpool, pm); } else { - tmp = newvalue - PMC_PCPU_SAVED(cpu,ri); + tmp = newvalue - PMC_PCPU_SAVED(cpu, ri); PMCDBG3(CSW,SWO,1,"cpu=%d ri=%d tmp=%jd (count)", cpu, ri, tmp); @@ -1688,7 +1646,7 @@ pmc_process_csw_out(struct thread *td) ("[pmc,%d] negative increment cpu=%d " "ri=%d newvalue=%jx saved=%jx " "incr=%jx", __LINE__, cpu, ri, - newvalue, PMC_PCPU_SAVED(cpu,ri), tmp)); + newvalue, PMC_PCPU_SAVED(cpu, ri), tmp)); mtx_pool_lock_spin(pmc_mtxpool, pm); pm->pm_gv.pm_savedvalue += tmp; @@ -1708,8 +1666,7 @@ pmc_process_csw_out(struct thread *td) * perform any other architecture/cpu dependent thread * switch out functions. */ - - (void) (*md->pmd_switch_out)(pc, pp); + (void)(*md->pmd_switch_out)(pc, pp); critical_exit(); } @@ -1755,7 +1712,6 @@ pmc_process_thread_userret(struct thread *td) /* * A mapping change for a process. */ - static void pmc_process_mmap(struct thread *td, struct pmckern_map_in *pkm) { @@ -1768,7 +1724,7 @@ pmc_process_mmap(struct thread *td, struct pmckern_map_in *pkm) freepath = fullpath = NULL; MPASS(!in_epoch(global_epoch_preempt)); - pmc_getfilename((struct vnode *) pkm->pm_file, &fullpath, &freepath); + pmc_getfilename((struct vnode *)pkm->pm_file, &fullpath, &freepath); pid = td->td_proc->p_pid; @@ -1790,17 +1746,15 @@ pmc_process_mmap(struct thread *td, struct pmckern_map_in *pkm) pmclog_process_map_in(pm->pm_owner, pid, pkm->pm_address, fullpath); - done: +done: if (freepath) free(freepath, M_TEMP); PMC_EPOCH_EXIT(); } - /* * Log an munmap request. */ - static void pmc_process_munmap(struct thread *td, struct pmckern_map_out *pkm) { @@ -1832,7 +1786,6 @@ pmc_process_munmap(struct thread *td, struct pmckern_map_out *pkm) /* * Log mapping information about the kernel. */ - static void pmc_log_kernel_mappings(struct pmc *pm) { @@ -1848,16 +1801,18 @@ pmc_log_kernel_mappings(struct pmc *pm) if (po->po_flags & PMC_PO_INITIAL_MAPPINGS_DONE) return; + if (PMC_TO_MODE(pm) == PMC_MODE_SS) pmc_process_allproc(pm); + /* * Log the current set of kernel modules. */ kmbase = linker_hwpmc_list_objects(); for (km = kmbase; km->pm_file != NULL; km++) { - PMCDBG2(LOG,REG,1,"%s %p", (char *) km->pm_file, - (void *) km->pm_address); - pmclog_process_map_in(po, (pid_t) -1, km->pm_address, + PMCDBG2(LOG,REG,1,"%s %p", (char *)km->pm_file, + (void *)km->pm_address); + pmclog_process_map_in(po, (pid_t)-1, km->pm_address, km->pm_file); } free(kmbase, M_LINKER); @@ -1868,7 +1823,6 @@ pmc_log_kernel_mappings(struct pmc *pm) /* * Log the mappings for a single process. */ - static void pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) { @@ -1884,7 +1838,7 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) char *fullpath, *freepath; last_vp = NULL; - last_end = (vm_offset_t) 0; + last_end = (vm_offset_t)0; fullpath = freepath = NULL; if ((vm = vmspace_acquire_ref(p)) == NULL) @@ -1892,9 +1846,7 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) map = &vm->vm_map; vm_map_lock_read(map); - VM_MAP_ENTRY_FOREACH(entry, map) { - if (entry == NULL) { PMCDBG2(LOG,OPS,2, "hwpmc: vm_map entry unexpectedly " "NULL! pid=%d vm_map=%p\n", p->p_pid, map); @@ -1929,7 +1881,8 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) * At this point lobj is the base vm_object and it is locked. */ if (lobj == NULL) { - PMCDBG3(LOG,OPS,2, "hwpmc: lobj unexpectedly NULL! pid=%d " + PMCDBG3(LOG,OPS,2, + "hwpmc: lobj unexpectedly NULL! pid=%d " "vm_map=%p vm_obj=%p\n", p->p_pid, map, obj); VM_OBJECT_RUNLOCK(obj); continue; @@ -1974,7 +1927,6 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) vref(vp); if (lobj != obj) VM_OBJECT_RUNLOCK(lobj); - VM_OBJECT_RUNLOCK(obj); freepath = NULL; @@ -1998,7 +1950,7 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) * for this address range, vm_map_lookup_entry() will * return the previous one, so we always want to go to * the next entry on the next loop iteration. - * + * * There is an edge condition here that can occur if * there is no entry at or before this address. In * this situation, vm_map_lookup_entry returns @@ -2024,7 +1976,6 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) /* * Log mappings for all processes in the system. */ - static void pmc_log_all_process_mappings(struct pmc_owner *po) { @@ -2040,7 +1991,6 @@ pmc_log_all_process_mappings(struct pmc_owner *po) sx_slock(&proctree_lock); top = p; - for (;;) { pmc_log_process_mappings(po, p); if (!LIST_EMPTY(&p->p_children)) @@ -2055,7 +2005,7 @@ pmc_log_all_process_mappings(struct pmc_owner *po) p = p->p_pptr; } } - done: +done: sx_sunlock(&proctree_lock); } @@ -2102,7 +2052,6 @@ pmc_hook_handler(struct thread *td, int function, void *arg) /* * Process exec() */ - case PMC_FN_PROCESS_EXEC: { char *fullpath, *freepath; @@ -2190,7 +2139,6 @@ pmc_hook_handler(struct thread *td, int function, void *arg) * than before, allow it to be the target of a PMC only if * the PMC's owner has sufficient privilege. */ - for (ri = 0; ri < md->pmd_npmc; ri++) if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) if (pmc_can_attach(pm, td->td_proc) != 0) @@ -2206,13 +2154,11 @@ pmc_hook_handler(struct thread *td, int function, void *arg) * PMCs, we can remove the process entry and free * up space. */ - if (pp->pp_refcnt == 0) { pmc_remove_process_descriptor(pp); pmc_destroy_process_descriptor(pp); break; } - } break; @@ -2234,7 +2180,6 @@ pmc_hook_handler(struct thread *td, int function, void *arg) * are being processed. */ case PMC_FN_DO_SAMPLES: - /* * Clear the cpu specific bit in the CPU mask before * do the rest of the processing. If the NMI handler @@ -2254,12 +2199,12 @@ pmc_hook_handler(struct thread *td, int function, void *arg) break; case PMC_FN_MMAP: - pmc_process_mmap(td, (struct pmckern_map_in *) arg); + pmc_process_mmap(td, (struct pmckern_map_in *)arg); break; case PMC_FN_MUNMAP: MPASS(in_epoch(global_epoch_preempt) || sx_xlocked(&pmc_sx)); - pmc_process_munmap(td, (struct pmckern_map_out *) arg); + pmc_process_munmap(td, (struct pmckern_map_out *)arg); break; case PMC_FN_PROC_CREATE_LOG: @@ -2274,10 +2219,10 @@ pmc_hook_handler(struct thread *td, int function, void *arg) __LINE__)); pmc_capture_user_callchain(PCPU_GET(cpuid), PMC_HR, - (struct trapframe *) arg); + (struct trapframe *)arg); KASSERT(td->td_pinned == 1, - ("[pmc,%d] invalid td_pinned value", __LINE__)); + ("[pmc,%d] invalid td_pinned value", __LINE__)); sched_unpin(); /* Can migrate safely now. */ td->td_pflags &= ~TDP_CALLCHAIN; @@ -2306,7 +2251,7 @@ pmc_hook_handler(struct thread *td, int function, void *arg) /* * Call soft PMC sampling intr. */ - pmc_soft_intr((struct pmckern_soft *) arg); + pmc_soft_intr((struct pmckern_soft *)arg); break; case PMC_FN_THR_CREATE: @@ -2332,13 +2277,11 @@ pmc_hook_handler(struct thread *td, int function, void *arg) __LINE__)); pmc_process_thread_userret(td); break; - default: -#ifdef HWPMC_DEBUG +#ifdef HWPMC_DEBUG KASSERT(0, ("[pmc,%d] unknown hook %d\n", __LINE__, function)); #endif break; - } return (0); @@ -2347,7 +2290,6 @@ pmc_hook_handler(struct thread *td, int function, void *arg) /* * allocate a 'struct pmc_owner' descriptor in the owner hash table. */ - static struct pmc_owner * pmc_allocate_owner_descriptor(struct proc *p) { @@ -2359,7 +2301,7 @@ pmc_allocate_owner_descriptor(struct proc *p) poh = &pmc_ownerhash[hindex]; /* allocate space for N pointers and one descriptor struct */ - po = malloc(sizeof(struct pmc_owner), M_PMC, M_WAITOK|M_ZERO); *** 936 LINES SKIPPED *** From nobody Wed Jun 14 16:46:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCL1rWTz4dHtt; Wed, 14 Jun 2023 16:46:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCL1P2Dz4PXZ; Wed, 14 Jun 2023 16:46:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761198; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aGOt57SAiZ4Q7iub9SxVa57RBG5icVXnxYDU45xv8mo=; b=J4mTfz/AMShyqF98utjEGiLAqa10p4jwBtaDEdn58w/MpMp0cyI0M2OwvD3k+68ilEEzzM HXa5vH596jI1mqT+dvSZHwGpCjyYcWfmS5RK74YWMNbBR6PHNsJiiaaAaG6rliBe7Uh+nC lXZq7bI9xp2DAntGnbhKa0oeEdnPVLtGZJukayFM0ogoR2LKZW3ixdhDGl0eRfOioJG7Ue WTVTN9lr86BwjMLB/gXYSdCmLdalSOSTgQ/TB7ge5kHr0cPcT/O6Adqko6kos5O131GLvi i3hhL5bTwg1bcvkY4JcJ8JQ1VMrjUK7Mtk9sVGXnUZG0TJ0Q5luPU0y9fYuOBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761198; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aGOt57SAiZ4Q7iub9SxVa57RBG5icVXnxYDU45xv8mo=; b=KUOg3ncy0P5l7n4RWGiyaXXJNKpGMVdmltqe1FplWTbqVRNg/VtCsuESQtRh1AP7X33gii AX0pmY2b37sDclmCThTuvKUsCiI1taf7iALL0PVmKjh5tHlYN6S6t3RgFiqcie2jEOO/fA x5LfZkVoZOLfJaOMMSnhjffa5I87iXawvuxUvpyk8gif3IDZVZcH6rPz197jk6ka45YIgd 10AOlAZLjXdJoJW+/5Hnet0MBl1Yl4hB/w+EOCP1ZvgBj7FUCBSJ3bpdNESnZlezfAq74Q OGrLnTdmjynT5/sahv8YyJND1P8pj2sJxn78a+J+vtIKG9ExgkC6SfmbKQEBqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761198; a=rsa-sha256; cv=none; b=wkEQYQqILCMI/LqGDKwKVQhq2q6gMrR7OSp2orB3UovZmNfON/mHL43spCyOCaY7ifghav xpBVXy5pY/Ha1YqP70GzOMGLttr7Z9tGkNK9tHOwAjuSjbZESTnEdJz6iUbIk30p/b+hAo cU3/vqqcIbY/FV5dKPHUKZZxkiqUu+8fYalC16jT9iLiYHsWa2hIXAaJodosVosds0GfCB sGnBH2ViZy2cRHZA/54z8pYxDXmjTy9bNNRVjxN699GcB27o+xRaniYp5QaModnczGB+0D p/0o4r1GJ0OxAXR0bqJRakv1gikU8attn8xTUcB5alQUKSfWQg+4JQ+7lqFYbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCL0Tx1z19lB; Wed, 14 Jun 2023 16:46:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkcq8028342; Wed, 14 Jun 2023 16:46:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkcbj028341; Wed, 14 Jun 2023 16:46:38 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:38 GMT Message-Id: <202306141646.35EGkcbj028341@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: d5ee4074c2c3 - main - hwpmc_mod.c: conditional and loop style List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d5ee4074c2c3a6e8acfc24bbd1135a592c895162 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=d5ee4074c2c3a6e8acfc24bbd1135a592c895162 commit d5ee4074c2c3a6e8acfc24bbd1135a592c895162 Author: Mitchell Horne AuthorDate: 2023-06-14 16:31:24 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:20 +0000 hwpmc_mod.c: conditional and loop style - Explicitly check the value in conditional statements, per style(9) - Add braces around more loops and conditionals, wherever it appears (to me) to aid legibility - Expand some assignments within if statements - Fix formatting around list-type FOREACH macros Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40515 --- sys/dev/hwpmc/hwpmc_mod.c | 347 +++++++++++++++++++++++++--------------------- 1 file changed, 187 insertions(+), 160 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index 7b8950f3c024..7449199ea4ea 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -456,11 +456,8 @@ pmc_debugflags_parse(char *newstr, char *fence) tmpflags = malloc(sizeof(*tmpflags), M_PMC, M_WAITOK | M_ZERO); - p = newstr; error = 0; - - for (; p < fence && (c = *p); p++) { - + for (p = newstr; p < fence && (c = *p); p++) { /* skip white space */ if (c == ' ' || c == '\t') continue; @@ -593,11 +590,10 @@ pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS) /* if there is a new string, parse and copy it */ if (error == 0 && req->newptr != NULL) { fence = newstr + (n < req->newlen ? n : req->newlen + 1); - if ((error = pmc_debugflags_parse(newstr, fence)) == 0) - (void) strlcpy(pmc_debugstr, newstr, - sizeof(pmc_debugstr)); + error = pmc_debugflags_parse(newstr, fence); + if (error == 0) + strlcpy(pmc_debugstr, newstr, sizeof(pmc_debugstr)); } - free(newstr, M_PMC); return (error); @@ -923,11 +919,12 @@ pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) PMCDBG3(PRC,TLK,1, "link-target pmc=%p ri=%d pmc-process=%p", pm, ri, pp); -#ifdef HWPMC_DEBUG - LIST_FOREACH(pt, &pm->pm_targets, pt_next) - if (pt->pt_process == pp) - KASSERT(0, ("[pmc,%d] pp %p already in pmc %p targets", - __LINE__, pp, pm)); +#ifdef HWPMC_DEBUG + LIST_FOREACH(pt, &pm->pm_targets, pt_next) { + if (pt->pt_process == pp) + KASSERT(0, ("[pmc,%d] pp %p already in pmc %p targets", + __LINE__, pp, pm)); + } #endif pt = malloc(sizeof(struct pmc_target), M_PMC, M_WAITOK | M_ZERO); pt->pt_process = pp; @@ -1210,7 +1207,7 @@ pmc_attach_process(struct proc *p, struct pmc *pm) } } - if (error) + if (error != 0) (void)pmc_detach_process(top, pm); done: @@ -1302,16 +1299,18 @@ pmc_detach_process(struct proc *p, struct pmc *pm) for (;;) { (void)pmc_detach_one_process(p, pm, PMC_FLAG_REMOVE); - if (!LIST_EMPTY(&p->p_children)) + if (!LIST_EMPTY(&p->p_children)) { p = LIST_FIRST(&p->p_children); - else for (;;) { - if (p == top) - goto done; - if (LIST_NEXT(p, p_sibling)) { - p = LIST_NEXT(p, p_sibling); - break; + } else { + for (;;) { + if (p == top) + goto done; + if (LIST_NEXT(p, p_sibling)) { + p = LIST_NEXT(p, p_sibling); + break; + } + p = p->p_pptr; } - p = p->p_pptr; } } done: @@ -1608,9 +1607,9 @@ pmc_process_csw_out(struct thread *td) * once we have thoroughly tested that we * don't hit the above assert. */ - if (pt != NULL) + if (pt != NULL) { pt->pt_pmcs[ri].pt_pmcval = newvalue; - else { + } else { /* * For sampling process-virtual PMCs, * newvalue is the number of events to @@ -1625,9 +1624,10 @@ pmc_process_csw_out(struct thread *td) */ pp->pp_pmcs[ri].pp_pmcval += newvalue; if (pp->pp_pmcs[ri].pp_pmcval > - pm->pm_sc.pm_reloadcount) + pm->pm_sc.pm_reloadcount) { pp->pp_pmcs[ri].pp_pmcval -= pm->pm_sc.pm_reloadcount; + } } mtx_pool_unlock_spin(pmc_mtxpool, pm); } else { @@ -1730,9 +1730,11 @@ pmc_process_mmap(struct thread *td, struct pmckern_map_in *pkm) PMC_EPOCH_ENTER(); /* Inform owners of all system-wide sampling PMCs. */ - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) - pmclog_process_map_in(po, pid, pkm->pm_address, fullpath); + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if (po->po_flags & PMC_PO_OWNS_LOGFILE) + pmclog_process_map_in(po, pid, pkm->pm_address, + fullpath); + } if ((pp = pmc_find_process_descriptor(td->td_proc, 0)) == NULL) goto done; @@ -1740,14 +1742,16 @@ pmc_process_mmap(struct thread *td, struct pmckern_map_in *pkm) /* * Inform sampling PMC owners tracking this process. */ - for (ri = 0; ri < md->pmd_npmc; ri++) + for (ri = 0; ri < md->pmd_npmc; ri++) { if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL && - PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) + PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) { pmclog_process_map_in(pm->pm_owner, pid, pkm->pm_address, fullpath); + } + } done: - if (freepath) + if (freepath != NULL) free(freepath, M_TEMP); PMC_EPOCH_EXIT(); } @@ -1767,20 +1771,23 @@ pmc_process_munmap(struct thread *td, struct pmckern_map_out *pkm) pid = td->td_proc->p_pid; PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) - pmclog_process_map_out(po, pid, pkm->pm_address, - pkm->pm_address + pkm->pm_size); + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if (po->po_flags & PMC_PO_OWNS_LOGFILE) + pmclog_process_map_out(po, pid, pkm->pm_address, + pkm->pm_address + pkm->pm_size); + } PMC_EPOCH_EXIT(); if ((pp = pmc_find_process_descriptor(td->td_proc, 0)) == NULL) return; - for (ri = 0; ri < md->pmd_npmc; ri++) - if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL && - PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) + for (ri = 0; ri < md->pmd_npmc; ri++) { + pm = pp->pp_pmcs[ri].pp_pmc; + if (pm != NULL && PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) { pmclog_process_map_out(pm->pm_owner, pid, pkm->pm_address, pkm->pm_address + pkm->pm_size); + } + } } /* @@ -1798,8 +1805,7 @@ pmc_log_kernel_mappings(struct pmc *pm) __LINE__, (void *) pm)); po = pm->pm_owner; - - if (po->po_flags & PMC_PO_INITIAL_MAPPINGS_DONE) + if ((po->po_flags & PMC_PO_INITIAL_MAPPINGS_DONE) != 0) return; if (PMC_TO_MODE(pm) == PMC_MODE_SS) @@ -1856,9 +1862,9 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) /* * We only care about executable map entries. */ - if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) || - !(entry->protection & VM_PROT_EXECUTE) || - (entry->object.vm_object == NULL)) { + if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) != 0 || + (entry->protection & VM_PROT_EXECUTE) == 0 || + entry->object.vm_object == NULL) { continue; } @@ -1869,7 +1875,8 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) * Walk the backing_object list to find the base * (non-shadowed) vm_object. */ - for (lobj = tobj = obj; tobj != NULL; tobj = tobj->backing_object) { + for (lobj = tobj = obj; tobj != NULL; + tobj = tobj->backing_object) { if (tobj != obj) VM_OBJECT_RLOCK(tobj); if (lobj != obj) @@ -1937,7 +1944,7 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) vp = NULL; pmclog_process_map_in(po, p->p_pid, start_addr, fullpath); - if (freepath) + if (freepath != NULL) free(freepath, M_TEMP); vm_map_lock_read(map); @@ -2046,8 +2053,7 @@ pmc_hook_handler(struct thread *td, int function, void *arg) PMCDBG4(MOD,PMH,1, "hook td=%p func=%d \"%s\" arg=%p", td, function, pmc_hooknames[function], arg); - switch (function) - { + switch (function) { /* * Process exec() @@ -2433,7 +2439,7 @@ pmc_find_thread_descriptor(struct pmc_process *pp, struct thread *td, * Pre-allocate memory in the PMC_FLAG_ALLOCATE case prior to * acquiring the lock. */ - if (mode & PMC_FLAG_ALLOCATE) { + if ((mode & PMC_FLAG_ALLOCATE) != 0) { if ((ptnew = pmc_thread_descriptor_pool_alloc()) == NULL) { wait_flag = M_WAITOK; if ((mode & PMC_FLAG_NOWAIT) != 0 || @@ -2446,15 +2452,15 @@ pmc_find_thread_descriptor(struct pmc_process *pp, struct thread *td, } mtx_lock_spin(pp->pp_tdslock); - - LIST_FOREACH(pt, &pp->pp_tds, pt_next) + LIST_FOREACH(pt, &pp->pp_tds, pt_next) { if (pt->pt_td == td) break; + } - if ((mode & PMC_FLAG_REMOVE) && pt != NULL) + if ((mode & PMC_FLAG_REMOVE) != 0 && pt != NULL) LIST_REMOVE(pt, pt_next); - if ((mode & PMC_FLAG_ALLOCATE) && pt == NULL && ptnew != NULL) { + if ((mode & PMC_FLAG_ALLOCATE) != 0 && pt == NULL && ptnew != NULL) { pt = ptnew; ptnew = NULL; pt->pt_td = td; @@ -2540,20 +2546,20 @@ pmc_find_process_descriptor(struct proc *p, uint32_t mode) * Pre-allocate memory in the PMC_FLAG_ALLOCATE case since we * cannot call malloc(9) once we hold a spin lock. */ - if (mode & PMC_FLAG_ALLOCATE) + if ((mode & PMC_FLAG_ALLOCATE) != 0) ppnew = malloc(sizeof(struct pmc_process) + md->pmd_npmc * sizeof(struct pmc_targetstate), M_PMC, M_WAITOK | M_ZERO); mtx_lock_spin(&pmc_processhash_mtx); - LIST_FOREACH(pp, pph, pp_next) - if (pp->pp_proc == p) - break; + LIST_FOREACH(pp, pph, pp_next) { + if (pp->pp_proc == p) + break; + } - if ((mode & PMC_FLAG_REMOVE) && pp != NULL) + if ((mode & PMC_FLAG_REMOVE) != 0 && pp != NULL) LIST_REMOVE(pp, pp_next); - if ((mode & PMC_FLAG_ALLOCATE) && pp == NULL && - ppnew != NULL) { + if ((mode & PMC_FLAG_ALLOCATE) != 0 && pp == NULL && ppnew != NULL) { ppnew->pp_proc = p; LIST_INIT(&ppnew->pp_tds); ppnew->pp_tdslock = mtx_pool_find(pmc_mtxpool, ppnew); @@ -2616,9 +2622,10 @@ pmc_find_owner_descriptor(struct proc *p) poh = &pmc_ownerhash[hindex]; po = NULL; - LIST_FOREACH(po, poh, po_next) - if (po->po_owner == p) - break; + LIST_FOREACH(po, poh, po_next) { + if (po->po_owner == p) + break; + } PMCDBG5(OWN,FND,1, "find-owner proc=%p (%d, %s) hindex=0x%x -> " "pmc-owner=%p", p, p->p_pid, p->p_comm, hindex, po); @@ -2841,7 +2848,7 @@ pmc_release_pmc_descriptor(struct pmc *pm) PMC_UNMARK_ROW_THREAD(ri); /* unlink from the owner's list */ - if (pm->pm_owner) { + if (pm->pm_owner != NULL) { LIST_REMOVE(pm, pm_next); pm->pm_owner = NULL; } @@ -2857,9 +2864,10 @@ pmc_register_owner(struct proc *p, struct pmc *pmc) sx_assert(&pmc_sx, SX_XLOCKED); - if ((po = pmc_find_owner_descriptor(p)) == NULL) + if ((po = pmc_find_owner_descriptor(p)) == NULL) { if ((po = pmc_allocate_owner_descriptor(p)) == NULL) return (ENOMEM); + } KASSERT(pmc->pm_owner == NULL, ("[pmc,%d] attempting to own an initialized PMC", __LINE__)); @@ -2871,7 +2879,7 @@ pmc_register_owner(struct proc *p, struct pmc *pmc) p->p_flag |= P_HWPMC; PROC_UNLOCK(p); - if (po->po_flags & PMC_PO_OWNS_LOGFILE) + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) pmclog_process_pmcallocate(pmc); PMCDBG2(PMC,REG,1, "register-owner pmc-owner=%p pmc=%p", @@ -2920,24 +2928,25 @@ pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu) * We shouldn't have allocated a system-wide PMC on the same * CPU and same RI. */ - if ((po = pmc_find_owner_descriptor(p)) != NULL) + if ((po = pmc_find_owner_descriptor(p)) != NULL) { LIST_FOREACH(pm, &po->po_pmcs, pm_next) { - if (PMC_TO_ROWINDEX(pm) == ri) { - mode = PMC_TO_MODE(pm); - if (PMC_IS_VIRTUAL_MODE(mode)) - return EEXIST; - if (PMC_IS_SYSTEM_MODE(mode) && - (int) PMC_TO_CPU(pm) == cpu) - return EEXIST; - } - } + if (PMC_TO_ROWINDEX(pm) == ri) { + mode = PMC_TO_MODE(pm); + if (PMC_IS_VIRTUAL_MODE(mode)) + return (EEXIST); + if (PMC_IS_SYSTEM_MODE(mode) && + PMC_TO_CPU(pm) == cpu) + return (EEXIST); + } + } + } /* * We also shouldn't be the target of any PMC at this index * since otherwise a PMC_ATTACH to ourselves will fail. */ if ((pp = pmc_find_process_descriptor(p, 0)) != NULL) - if (pp->pp_pmcs[ri].pp_pmc) + if (pp->pp_pmcs[ri].pp_pmc != NULL) return (EEXIST); PMCDBG4(PMC,ALR,2, "can-allocate-rowindex proc=%p (%d, %s) ri=%d ok", @@ -2997,9 +3006,10 @@ pmc_find_pmc_descriptor_in_process(struct pmc_owner *po, pmc_id_t pmcid) ("[pmc,%d] Illegal pmc index %d (max %d)", __LINE__, PMC_ID_TO_ROWINDEX(pmcid), md->pmd_npmc)); - LIST_FOREACH(pm, &po->po_pmcs, pm_next) - if (pm->pm_id == pmcid) - return pm; + LIST_FOREACH(pm, &po->po_pmcs, pm_next) { + if (pm->pm_id == pmcid) + return (pm); + } return (NULL); } @@ -3021,19 +3031,19 @@ pmc_find_pmc(pmc_id_t pmcid, struct pmc **pmc) * the current process in the owners hash list. Find the owner * process first and from there lookup the po. */ - if ((pp = pmc_find_process_descriptor(curthread->td_proc, - PMC_FLAG_NONE)) == NULL) { + pp = pmc_find_process_descriptor(curthread->td_proc, + PMC_FLAG_NONE); + if (pp == NULL) return (ESRCH); - } else { - opm = pp->pp_pmcs[PMC_ID_TO_ROWINDEX(pmcid)].pp_pmc; - if (opm == NULL) - return (ESRCH); - if ((opm->pm_flags & (PMC_F_ATTACHED_TO_OWNER| - PMC_F_DESCENDANTS)) != (PMC_F_ATTACHED_TO_OWNER| - PMC_F_DESCENDANTS)) - return (ESRCH); - po = opm->pm_owner; - } + opm = pp->pp_pmcs[PMC_ID_TO_ROWINDEX(pmcid)].pp_pmc; + if (opm == NULL) + return (ESRCH); + if ((opm->pm_flags & + (PMC_F_ATTACHED_TO_OWNER | PMC_F_DESCENDANTS)) != + (PMC_F_ATTACHED_TO_OWNER | PMC_F_DESCENDANTS)) + return (ESRCH); + + po = opm->pm_owner; } if ((pm = pmc_find_pmc_descriptor_in_process(po, pmcid)) == NULL) @@ -3055,6 +3065,7 @@ pmc_start(struct pmc *pm) struct pmc_owner *po; struct pmc_binding pb; struct pmc_classdep *pcd; + pmc_value_t v; int adjri, error, cpu, ri; KASSERT(pm != NULL, @@ -3074,7 +3085,7 @@ pmc_start(struct pmc *pm) * Disallow PMCSTART if a logfile is required but has not been * configured yet. */ - if ((pm->pm_flags & PMC_F_NEEDS_LOGFILE) && + if ((pm->pm_flags & PMC_F_NEEDS_LOGFILE) != 0 && (po->po_flags & PMC_PO_OWNS_LOGFILE) == 0) return (EDOOFUS); /* programming error */ @@ -3090,10 +3101,10 @@ pmc_start(struct pmc *pm) * If a PMCATTACH has never been done on this PMC, * attach it to its owner process. */ - - if (LIST_EMPTY(&pm->pm_targets)) - error = (pm->pm_flags & PMC_F_ATTACH_DONE) ? ESRCH : - pmc_attach_process(po->po_owner, pm); + if (LIST_EMPTY(&pm->pm_targets)) { + error = (pm->pm_flags & PMC_F_ATTACH_DONE) != 0 ? + ESRCH : pmc_attach_process(po->po_owner, pm); + } /* * If the PMC is attached to its owner, then force a context @@ -3101,7 +3112,7 @@ pmc_start(struct pmc *pm) */ if (error == 0) { pm->pm_state = PMC_STATE_RUNNING; - if (pm->pm_flags & PMC_F_ATTACHED_TO_OWNER) + if ((pm->pm_flags & PMC_F_ATTACHED_TO_OWNER) != 0) pmc_force_context_switch(); } @@ -3149,10 +3160,9 @@ pmc_start(struct pmc *pm) pm->pm_state = PMC_STATE_RUNNING; critical_enter(); - if ((error = pcd->pcd_write_pmc(cpu, adjri, pm, - PMC_IS_SAMPLING_MODE(mode) ? - pm->pm_sc.pm_reloadcount : - pm->pm_sc.pm_initial)) == 0) { + v = PMC_IS_SAMPLING_MODE(mode) ? pm->pm_sc.pm_reloadcount : + pm->pm_sc.pm_initial; + if ((error = pcd->pcd_write_pmc(cpu, adjri, pm, v)) == 0) { /* If a sampling mode PMC, reset stalled state. */ if (PMC_IS_SAMPLING_MODE(mode)) pm->pm_pcpu_state[cpu].pps_stalled = 0; @@ -3218,9 +3228,10 @@ pmc_stop(struct pmc *pm) pm->pm_pcpu_state[cpu].pps_cpustate = 0; critical_enter(); - if ((error = pcd->pcd_stop_pmc(cpu, adjri, pm)) == 0) + if ((error = pcd->pcd_stop_pmc(cpu, adjri, pm)) == 0) { error = pcd->pcd_read_pmc(cpu, adjri, pm, &pm->pm_sc.pm_initial); + } critical_exit(); pmc_restore_cpu_binding(&pb); @@ -3246,9 +3257,10 @@ pmc_class_to_classdep(enum pmc_class class) { int n; - for (n = 0; n < md->pmd_nclass; n++) + for (n = 0; n < md->pmd_nclass; n++) { if (md->pmd_classdep[n].pcd_class == class) return (&md->pmd_classdep[n]); + } return (NULL); } @@ -4548,7 +4560,7 @@ pmc_post_callchain_callback(void) /* * If there is multiple PMCs for the same interrupt ignore new post */ - if (td->td_pflags & TDP_CALLCHAIN) + if ((td->td_pflags & TDP_CALLCHAIN) != 0) return; /* @@ -4625,9 +4637,9 @@ pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf) pmc_callchaindepth : 1; MPASS(ps->ps_pc != NULL); - if (callchaindepth == 1) + if (callchaindepth == 1) { ps->ps_pc[0] = PMC_TRAPFRAME_TO_PC(tf); - else { + } else { /* * Kernel stack traversals can be done immediately, * while we defer to an AST for user space traversals. @@ -4641,12 +4653,11 @@ pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf) } } - ps->ps_nsamples = callchaindepth; /* mark entry as in use */ + ps->ps_nsamples = callchaindepth; /* mark entry as in-use */ if (ring == PMC_UR) { - ps->ps_nsamples_actual = callchaindepth; /* mark entry as in use */ + ps->ps_nsamples_actual = callchaindepth; ps->ps_nsamples = PMC_USER_CALLCHAIN_PENDING; - } else - ps->ps_nsamples = callchaindepth; /* mark entry as in use */ + } KASSERT(counter_u64_fetch(pm->pm_runcount) >= 0, ("[pmc,%d] pm=%p runcount %ld", __LINE__, (void *) pm, @@ -4676,8 +4687,7 @@ pmc_process_interrupt(int ring, struct pmc *pm, struct trapframe *tf) td = curthread; if ((pm->pm_flags & PMC_F_USERCALLCHAIN) && - (td->td_proc->p_flag & P_KPROC) == 0 && - !TRAPF_USERMODE(tf)) { + (td->td_proc->p_flag & P_KPROC) == 0 && !TRAPF_USERMODE(tf)) { atomic_add_int(&td->td_pmcpend, 1); return (pmc_add_sample(PMC_UR, pm, tf)); } @@ -4914,11 +4924,11 @@ entrydone: ("[pmc,%d] null pcd ri=%d", __LINE__, n)); (void)(*pcd->pcd_get_config)(cpu, adjri, &pm); - if (pm == NULL || /* !cfg'ed */ - pm->pm_state != PMC_STATE_RUNNING || /* !active */ - !PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm)) || /* !sampling */ - !pm->pm_pcpu_state[cpu].pps_cpustate || /* !desired */ - !pm->pm_pcpu_state[cpu].pps_stalled) /* !stalled */ + if (pm == NULL || /* !cfg'ed */ + pm->pm_state != PMC_STATE_RUNNING || /* !active */ + !PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm)) || /* !sampling */ + !pm->pm_pcpu_state[cpu].pps_cpustate || /* !desired */ + !pm->pm_pcpu_state[cpu].pps_stalled) /* !stalled */ continue; pm->pm_pcpu_state[cpu].pps_stalled = 0; @@ -4959,16 +4969,17 @@ pmc_process_exit(void *arg __unused, struct proc *p) pmc_value_t newvalue, tmp; PROC_LOCK(p); - is_using_hwpmcs = p->p_flag & P_HWPMC; + is_using_hwpmcs = (p->p_flag & P_HWPMC) != 0; PROC_UNLOCK(p); /* * Log a sysexit event to all SS PMC owners. */ PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) - pmclog_process_sysexit(po, p->p_pid); + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) + pmclog_process_sysexit(po, p->p_pid); + } PMC_EPOCH_EXIT(); if (!is_using_hwpmcs) @@ -4996,9 +5007,7 @@ pmc_process_exit(void *arg __unused, struct proc *p) critical_enter(); /* no preemption */ cpu = curthread->td_oncpu; - - if ((pp = pmc_find_process_descriptor(p, - PMC_FLAG_REMOVE)) != NULL) { + if ((pp = pmc_find_process_descriptor(p, PMC_FLAG_REMOVE)) != NULL) { PMCDBG2(PRC,EXT,2, "process-exit proc=%p pmc-process=%p", p, pp); @@ -5092,13 +5101,15 @@ pmc_process_exit(void *arg __unused, struct proc *p) * * Log PMC value at exit time if requested. */ - for (ri = 0; ri < md->pmd_npmc; ri++) + for (ri = 0; ri < md->pmd_npmc; ri++) { if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { - if (pm->pm_flags & PMC_F_NEEDS_LOGFILE && - PMC_IS_COUNTING_MODE(PMC_TO_MODE(pm))) + if ((pm->pm_flags & PMC_F_NEEDS_LOGFILE) != 0 && + PMC_IS_COUNTING_MODE(PMC_TO_MODE(pm))) { pmclog_process_procexit(pm, pp); + } pmc_unlink_target_process(pm, pp); } + } free(pp, M_PMC); } else critical_exit(); /* pp == NULL */ @@ -5135,7 +5146,7 @@ pmc_process_fork(void *arg __unused, struct proc *p1, struct proc *newproc, (void) flags; /* unused parameter */ PROC_LOCK(p1); - is_using_hwpmcs = p1->p_flag & P_HWPMC; + is_using_hwpmcs = (p1->p_flag & P_HWPMC) != 0; PROC_UNLOCK(p1); /* @@ -5143,11 +5154,12 @@ pmc_process_fork(void *arg __unused, struct proc *p1, struct proc *newproc, * log all fork events to their owner's logs. */ PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) { - pmclog_process_procfork(po, p1->p_pid, newproc->p_pid); + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if (po->po_flags & PMC_PO_OWNS_LOGFILE) { + pmclog_process_procfork(po, p1->p_pid, newproc->p_pid); pmclog_process_proccreate(po, newproc, 1); } + } PMC_EPOCH_EXIT(); if (!is_using_hwpmcs) @@ -5163,14 +5175,18 @@ pmc_process_fork(void *arg __unused, struct proc *p1, struct proc *newproc, * inherited, and link these into the new process * descriptor. */ - if ((ppold = pmc_find_process_descriptor(curthread->td_proc, - PMC_FLAG_NONE)) == NULL) - goto done; /* nothing to do */ + ppold = pmc_find_process_descriptor(curthread->td_proc, PMC_FLAG_NONE); + if (ppold == NULL) + goto done; /* nothing to do */ do_descendants = 0; - for (ri = 0; ri < md->pmd_npmc; ri++) - if ((pm = ppold->pp_pmcs[ri].pp_pmc) != NULL) - do_descendants |= pm->pm_flags & PMC_F_DESCENDANTS; + for (ri = 0; ri < md->pmd_npmc; ri++) { + if ((pm = ppold->pp_pmcs[ri].pp_pmc) != NULL && + (pm->pm_flags & PMC_F_DESCENDANTS) != 0) { + do_descendants = true; + break; + } + } if (do_descendants == 0) /* nothing to do */ goto done; @@ -5182,8 +5198,8 @@ pmc_process_fork(void *arg __unused, struct proc *p1, struct proc *newproc, PROC_UNLOCK(newproc); /* allocate a descriptor for the new process */ - if ((ppnew = pmc_find_process_descriptor(newproc, - PMC_FLAG_ALLOCATE)) == NULL) + ppnew = pmc_find_process_descriptor(newproc, PMC_FLAG_ALLOCATE); + if (ppnew == NULL) goto done; /* @@ -5194,16 +5210,18 @@ pmc_process_fork(void *arg __unused, struct proc *p1, struct proc *newproc, * Log the fork event to all owners of PMCs attached to this * process, if not already logged. */ - for (ri = 0; ri < md->pmd_npmc; ri++) + for (ri = 0; ri < md->pmd_npmc; ri++) { if ((pm = ppold->pp_pmcs[ri].pp_pmc) != NULL && - (pm->pm_flags & PMC_F_DESCENDANTS)) { + (pm->pm_flags & PMC_F_DESCENDANTS) != 0) { pmc_link_target_process(pm, ppnew); po = pm->pm_owner; if (po->po_sscount == 0 && - po->po_flags & PMC_PO_OWNS_LOGFILE) + (po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) { pmclog_process_procfork(po, p1->p_pid, newproc->p_pid); + } } + } done: sx_xunlock(&pmc_sx); @@ -5215,9 +5233,10 @@ pmc_process_threadcreate(struct thread *td) struct pmc_owner *po; PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) pmclog_process_threadcreate(po, td, 1); + } PMC_EPOCH_EXIT(); } @@ -5227,9 +5246,10 @@ pmc_process_threadexit(struct thread *td) struct pmc_owner *po; PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) pmclog_process_threadexit(po, td); + } PMC_EPOCH_EXIT(); } @@ -5239,9 +5259,10 @@ pmc_process_proccreate(struct proc *p) struct pmc_owner *po; PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) pmclog_process_proccreate(po, p, 1 /* sync */); + } PMC_EPOCH_EXIT(); } @@ -5277,10 +5298,11 @@ pmc_kld_load(void *arg __unused, linker_file_t lf) * Notify owners of system sampling PMCs about KLD operations. */ PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { if (po->po_flags & PMC_PO_OWNS_LOGFILE) pmclog_process_map_in(po, (pid_t) -1, (uintfptr_t) lf->address, lf->pathname); + } PMC_EPOCH_EXIT(); /* @@ -5295,10 +5317,12 @@ pmc_kld_unload(void *arg __unused, const char *filename __unused, struct pmc_owner *po; PMC_EPOCH_ENTER(); - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) { pmclog_process_map_out(po, (pid_t)-1, (uintfptr_t)address, (uintfptr_t)address + size); + } + } PMC_EPOCH_EXIT(); /* @@ -5526,7 +5550,7 @@ pmc_initialize(void) } pmc_restore_cpu_binding(&pb); - if (error) + if (error != 0) return (error); /* allocate space for the sample array */ @@ -5689,7 +5713,7 @@ pmc_cleanup(void) EVENTHANDLER_DEREGISTER(kld_unload, pmc_kld_unload_tag); /* send SIGBUS to all owner threads, free up allocations */ - if (pmc_ownerhash) + if (pmc_ownerhash != NULL) { for (ph = pmc_ownerhash; ph <= &pmc_ownerhash[pmc_ownerhashmask]; ph++) { @@ -5709,17 +5733,18 @@ pmc_cleanup(void) pmc_destroy_owner_descriptor(po); } } + } /* reclaim allocated data structures */ taskqueue_drain(taskqueue_fast, &free_task); mtx_destroy(&pmc_threadfreelist_mtx); pmc_thread_descriptor_pool_drain(); - if (pmc_mtxpool) + if (pmc_mtxpool != NULL) mtx_pool_destroy(&pmc_mtxpool); mtx_destroy(&pmc_processhash_mtx); - if (pmc_processhash) { + if (pmc_processhash != NULL) { #ifdef HWPMC_DEBUG struct pmc_process *pp; @@ -5735,7 +5760,7 @@ pmc_cleanup(void) pmc_processhash = NULL; } - if (pmc_ownerhash) { + if (pmc_ownerhash != NULL) { PMCDBG0(MOD,INI,3, "destroy owner hash"); hashdestroy(pmc_ownerhash, M_PMC, pmc_ownerhashmask); pmc_ownerhash = NULL; @@ -5759,10 +5784,12 @@ pmc_cleanup(void) continue; pmc_select_cpu(cpu); - for (c = 0; c < md->pmd_nclass; c++) - if (md->pmd_classdep[c].pcd_num > 0) + for (c = 0; c < md->pmd_nclass; c++) { + if (md->pmd_classdep[c].pcd_num > 0) { md->pmd_classdep[c].pcd_pcpu_fini(md, cpu); + } + } } if (md->pmd_cputype == PMC_CPU_GENERIC) @@ -5803,12 +5830,12 @@ pmc_cleanup(void) free(pmc_pcpu_saved, M_PMC); pmc_pcpu_saved = NULL; - if (pmc_pmcdisp) { + if (pmc_pmcdisp != NULL) { free(pmc_pmcdisp, M_PMC); pmc_pmcdisp = NULL; } - if (pmc_rowindex_to_classdep) { + if (pmc_rowindex_to_classdep != NULL) { free(pmc_rowindex_to_classdep, M_PMC); pmc_rowindex_to_classdep = NULL; } From nobody Wed Jun 14 16:46:39 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCM4QsXz4dHjy; Wed, 14 Jun 2023 16:46:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCM2JPVz4PVj; Wed, 14 Jun 2023 16:46:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Nc3qDm4K5FGbnA2yXgtp/wlDrQOYWrIb7a3NsWa0QnU=; b=AIKPb3Nk+hEjfrIcTygyhta+Nd5YO37sXjTxAgRr6JZHzl8fEwbW0iCJjpmGpvwy14JL+8 DbGHvdLYfJ7U9ucQKKhjs5FAFo1/wkK204aT7ZFnBRSvBanpcns22YwlHbZFIX+hfol3o0 dephQVdG4/vf0vOokF4oZL+digJ0adepX/8woc5o/QzyVtp08TKyLZVhhW4c0T6CQGvyTO 6HwXdzjK754miVS1TelLs71eYT4DiS7+uhNH7BVWt7cxsvwInlJptzmGVjtfj/tHETCWWA a+udyzxwKqx6zh6x2Np4W42NrjUqpAPBo8bHkOfYketJRCupXRpQHtKfbukyEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Nc3qDm4K5FGbnA2yXgtp/wlDrQOYWrIb7a3NsWa0QnU=; b=RdPmIh89l4R1CWymo4qaGJ7Ap4QeVNBoZ+hKGCJn+zeAu/qSr8wlfFwDfVzpZjeS7Ij1yS 03DfOd0FhO8QuZfJohlQyfxxlwN2+ezIqVUfQCPpqWTQKt4VvSvIDf5gIuWaf7NRGQhYoV x2o3f5qY3fwGcC/Y4hgIzbRVDx9j4mW9WUyy+rLg8x14nY/jUrDwOUue0Ym7X1+7USLsFQ DoUAr0ObyOhHT0RY8I5M2FmTobToc2oGMUs8YOBrGq1X8LpggiBPHaQG/FG7zj4Fq0VoCc cd748fgdUp5z87rYAjuwZF+ikkoMT6EaHpsc1jKweNCjDzUtAJJ74LYzg/AyQQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761199; a=rsa-sha256; cv=none; b=XzsRdinZG0saVKeBHenUBTphexnM0xPiLDgHwqTBozV4TAsbkiQktj2r4i6pkF+ykb0HAC tDL+0Qb+8UFpgwyNHu0nCuTlmllprvRRPU9OxXpK3AYviPR8aPuRNh0IdVB7gKCJmkrexI 4UQ+ujCutunh4zEH6Y1/ze055r0fy7UWiuwsNYn9Z/1DArZa8j7pOBB58gicgyiNRGypo9 XnlZPMxE6TETWccHjAwYAJI2iwQu+UJAXQHzAdkdMzbMksYFWheuTqMlXuYw3/pyyaj8a7 pqNqJBwmD5irdaOOrqmDexMMGNKnQkW/5nXFDpYHsZQh8IZCdRNTVZdIBfKkqw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCM1PK4z1BDR; Wed, 14 Jun 2023 16:46:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkdEs028366; Wed, 14 Jun 2023 16:46:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkdI7028365; Wed, 14 Jun 2023 16:46:39 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:39 GMT Message-Id: <202306141646.35EGkdI7028365@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: e4fbd0395c68 - main - hwpmc_mod.c: prototype style List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e4fbd0395c686c02169e1a3b14940c8d3e5ef15d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=e4fbd0395c686c02169e1a3b14940c8d3e5ef15d commit e4fbd0395c686c02169e1a3b14940c8d3e5ef15d Author: Mitchell Horne AuthorDate: 2023-06-14 16:31:30 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:20 +0000 hwpmc_mod.c: prototype style Improve alphabetical organization, grouping, and whitespace. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40516 --- sys/dev/hwpmc/hwpmc_mod.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index 7449199ea4ea..cfdfbf7de4f5 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -237,16 +237,21 @@ static void pmc_log_all_process_mappings(struct pmc_owner *po); static void pmc_log_kernel_mappings(struct pmc *pm); static void pmc_log_process_mappings(struct pmc_owner *po, struct proc *p); static void pmc_maybe_remove_owner(struct pmc_owner *po); +static void pmc_post_callchain_callback(void); +static void pmc_process_allproc(struct pmc *pm); static void pmc_process_csw_in(struct thread *td); static void pmc_process_csw_out(struct thread *td); static void pmc_process_exit(void *arg, struct proc *p); static void pmc_process_fork(void *arg, struct proc *p1, struct proc *p2, int n); +static void pmc_process_proccreate(struct proc *p); static void pmc_process_samples(int cpu, ring_type_t soft); -static void pmc_release_pmc_descriptor(struct pmc *pmc); +static void pmc_process_threadcreate(struct thread *td); +static void pmc_process_threadexit(struct thread *td); static void pmc_process_thread_add(struct thread *td); static void pmc_process_thread_delete(struct thread *td); static void pmc_process_thread_userret(struct thread *td); +static void pmc_release_pmc_descriptor(struct pmc *pmc); static void pmc_remove_owner(struct pmc_owner *po); static void pmc_remove_process_descriptor(struct pmc_process *pp); static int pmc_start(struct pmc *pm); @@ -257,16 +262,11 @@ static void pmc_thread_descriptor_pool_drain(void); static void pmc_thread_descriptor_pool_free(struct pmc_thread *pt); static void pmc_unlink_target_process(struct pmc *pmc, struct pmc_process *pp); -static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process *pp); -static int generic_switch_out(struct pmc_cpu *pc, struct pmc_process *pp); +static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process *pp); +static int generic_switch_out(struct pmc_cpu *pc, struct pmc_process *pp); static struct pmc_mdep *pmc_generic_cpu_initialize(void); -static void pmc_generic_cpu_finalize(struct pmc_mdep *md); -static void pmc_post_callchain_callback(void); -static void pmc_process_threadcreate(struct thread *td); -static void pmc_process_threadexit(struct thread *td); -static void pmc_process_proccreate(struct proc *p); -static void pmc_process_allproc(struct pmc *pm); +static void pmc_generic_cpu_finalize(struct pmc_mdep *md); /* * Kernel tunables and sysctl(8) interface. From nobody Wed Jun 14 16:46:40 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCN39Zmz4dHrY; Wed, 14 Jun 2023 16:46:40 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCN2rWKz4Pbc; Wed, 14 Jun 2023 16:46:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+44Hf8ZvjpMgDd1QJh4o7j+HXWQ2k7O0p8yHjeYZ86c=; b=oQ9Wf3cywAI0eRmxoOkwS+UNXM7gLq0EIL0H/F8cyUtrSVK6qOxfw4RBRV38J76mx9K+WA jt/4cxwtJaHH0i5hR2kPdJUFZgXYZoRJeEFel+jU/tAzs1ENDBDCEYKCtjs5zWFZyN2JkC YjRirV1K/FSG9vmmgsZmXSU9sncT1VNwjD3iiLO5kJXuvA+1SuOlOEC5ALV+KfTyv9glr5 F2UYEQxLYCOxdM2nkNSUqjRbe+Dj9L49+He3EFqb851fI1qobKZx8goitPu0N+irkt5Pxx r6hOPFNNvPzFh5HFicwlcQIzHcYPy01VRWI91YWiXhaxcla/PSvvqaVeL0cLmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+44Hf8ZvjpMgDd1QJh4o7j+HXWQ2k7O0p8yHjeYZ86c=; b=rkKuhQnFngQPQTkGTcVZ5xhkqmCg3Swrm3MUImc1Jkf3FklvTdlq7ITW1IL+4uPJwWIkr0 jaiMLDeXj/ZdHYSWQaZ0ust+njmFVxjSckjAhI6x8lLEAWp3Ch2LqzBbtgZFgtWZhOEbrM gc09ABJfn7dpYFStPaVVBL3fgfoHN0SxE5GncPEpCowqo7tETEGON+RwtI+3DPpp/wY/4g PZL3WtHsKGreffySgJgETaf6kq1HC+1iJLo6eMuKlLCdjE8nDZ/sHNxw0b6MU0wFD0vjSA a6xe5YEL+YBoQKixby36atROYQEYZVKdxmL39E0GrFYY8AH9BM16HkpC42JmjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761200; a=rsa-sha256; cv=none; b=gyzpacexYdDRNySsnQp0E6L0/1vyLYCt+3clCEShv0SUblLnKI1ALyvh4J9/Wh36VV6Ot5 /AHCmEuXBYCuAbQ+irOLW9ZB/QJp+pcINvNUfS4f/c8t2Ov/NdXv7UTQqu6TzC9YJbgYug CehOSuhMgbo93ldEHFL/6K22+C5Si+eNcXn6NiUZDa9oiTSu17Avk3ovF5s0xoTVnErJGM Gpv/WPvYNQcu6OFEk74xZxbB2fwrViHhq1EqAj6yJNKEyvNPkWz95ELtdMs1vjgLfE0yAw 8b+1qBG8VN1GsRwXqd7vOD+Z8v5FM8nmJUcuU7Yz6zqGKDvBEHKBSGc2GuS9ag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCN1wRqz19h2; Wed, 14 Jun 2023 16:46:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkeIY028386; Wed, 14 Jun 2023 16:46:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkebE028385; Wed, 14 Jun 2023 16:46:40 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:40 GMT Message-Id: <202306141646.35EGkebE028385@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 01c35b677fde - main - hwpmc_mod.c: misc style cleanup List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 01c35b677fde01c81859ab01b82c54f54190e139 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=01c35b677fde01c81859ab01b82c54f54190e139 commit 01c35b677fde01c81859ab01b82c54f54190e139 Author: Mitchell Horne AuthorDate: 2023-06-14 16:31:36 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:20 +0000 hwpmc_mod.c: misc style cleanup Everything else I found worthy of adjustment. - Order local variable declarations per style(9) - Make use of __unused annotations rather than cast to void - Remove unnecessary casts - Add (void) casts to PMC class methods where the return value is ignored - A couple instances of reordering statements for clarity - Prefer bool type where applicable - unsigned int -> u_int - Use uintmax_t/%j in printf calls - Formatting of comments Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40517 --- sys/dev/hwpmc/hwpmc_mod.c | 448 ++++++++++++++++++++++------------------------ 1 file changed, 212 insertions(+), 236 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index cfdfbf7de4f5..e5d166866125 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -330,7 +330,7 @@ SYSCTL_PROC(_kern_hwpmc, OID_AUTO, debugflags, #endif /* - * kern.hwpmc.hashrows -- determines the number of rows in the + * kern.hwpmc.hashsize -- determines the number of rows in the * of the hash table used to look up threads */ static int pmc_hashsize = PMC_HASH_SIZE; @@ -449,10 +449,11 @@ enum pmc_dbgparse_state { static int pmc_debugflags_parse(char *newstr, char *fence) { - char c, *p, *q; struct pmc_debugflags *tmpflags; - int error, found, *newbits, tmp; size_t kwlen; + char c, *p, *q; + int error, *newbits, tmp; + int found; tmpflags = malloc(sizeof(*tmpflags), M_PMC, M_WAITOK | M_ZERO); @@ -487,6 +488,7 @@ pmc_debugflags_parse(char *newstr, char *fence) DBG_SET_FLAG_MAJ("pmc", PMC); DBG_SET_FLAG_MAJ("process", PRC); DBG_SET_FLAG_MAJ("sampling", SAM); +#undef DBG_SET_FLAG_MAJ if (newbits == NULL) { error = EINVAL; @@ -550,6 +552,7 @@ pmc_debugflags_parse(char *newstr, char *fence) DBG_SET_FLAG_MIN("syscall", PMS); DBG_SET_FLAG_MIN("unlinktarget", TUL); DBG_SET_FLAG_MIN("write", WRI); +#undef DBG_SET_FLAG_MIN if (found == 0) { /* unrecognized flag name */ error = EINVAL; @@ -577,13 +580,11 @@ pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS) { char *fence, *newstr; int error; - unsigned int n; - - (void) arg1; (void) arg2; /* unused parameters */ + u_int n; n = sizeof(pmc_debugstr); newstr = malloc(n, M_PMC, M_WAITOK | M_ZERO); - (void) strlcpy(newstr, pmc_debugstr, n); + strlcpy(newstr, pmc_debugstr, n); error = sysctl_handle_string(oidp, newstr, n, req); @@ -605,12 +606,10 @@ pmc_debugflags_sysctl_handler(SYSCTL_HANDLER_ARGS) * index for the PMC class index. */ static struct pmc_classdep * -pmc_ri_to_classdep(struct pmc_mdep *md, int ri, int *adjri) +pmc_ri_to_classdep(struct pmc_mdep *md __unused, int ri, int *adjri) { struct pmc_classdep *pcd; - (void) md; - KASSERT(ri >= 0 && ri < md->pmd_npmc, ("[pmc,%d] illegal row-index %d", __LINE__, ri)); @@ -740,7 +739,7 @@ pmc_ri_to_classdep(struct pmc_mdep *md, int ri, int *adjri) */ /* - * save the cpu binding of the current kthread + * Save the CPU binding of the current kthread. */ void pmc_save_cpu_binding(struct pmc_binding *pb) @@ -755,7 +754,7 @@ pmc_save_cpu_binding(struct pmc_binding *pb) } /* - * restore the cpu binding of the current thread + * Restore the CPU binding of the current thread. */ void pmc_restore_cpu_binding(struct pmc_binding *pb) @@ -772,7 +771,7 @@ pmc_restore_cpu_binding(struct pmc_binding *pb) } /* - * move execution over the specified cpu and bind it there. + * Move execution over to the specified CPU and bind it there. */ void pmc_select_cpu(int cpu) @@ -837,7 +836,7 @@ pmc_getfilename(struct vnode *v, char **fullpath, char **freepath) } /* - * remove an process owning PMCs + * Remove a process owning PMCs. */ void pmc_remove_owner(struct pmc_owner *po) @@ -872,7 +871,7 @@ pmc_remove_owner(struct pmc_owner *po) } /* - * remove an owner process record if all conditions are met. + * Remove an owner process record if all conditions are met. */ static void pmc_maybe_remove_owner(struct pmc_owner *po) @@ -898,11 +897,9 @@ pmc_maybe_remove_owner(struct pmc_owner *po) static void pmc_link_target_process(struct pmc *pm, struct pmc_process *pp) { - int ri; struct pmc_target *pt; -#ifdef INVARIANTS - struct pmc_thread *pt_td; -#endif + struct pmc_thread *pt_td __diagused; + int ri; sx_assert(&pmc_sx, SX_XLOCKED); KASSERT(pm != NULL && pp != NULL, @@ -1322,21 +1319,21 @@ done: } /* - * Thread context switch IN + * Thread context switch IN. */ static void pmc_process_csw_in(struct thread *td) { - int cpu; - unsigned int adjri, ri; struct pmc *pm; - struct proc *p; + struct pmc_classdep *pcd; struct pmc_cpu *pc; struct pmc_hw *phw __diagused; - pmc_value_t newvalue; struct pmc_process *pp; struct pmc_thread *pt; - struct pmc_classdep *pcd; + struct proc *p; + pmc_value_t newvalue; + int cpu; + u_int adjri, ri; p = td->td_proc; pt = NULL; @@ -1376,15 +1373,15 @@ pmc_process_csw_in(struct thread *td) continue; KASSERT(counter_u64_fetch(pm->pm_runcount) >= 0, - ("[pmc,%d] pm=%p runcount %ld", __LINE__, (void *) pm, - (unsigned long)counter_u64_fetch(pm->pm_runcount))); + ("[pmc,%d] pm=%p runcount %ju", __LINE__, pm, + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); /* increment PMC runcount */ counter_u64_add(pm->pm_runcount, 1); /* configure the HWPMC we are going to use. */ pcd = pmc_ri_to_classdep(md, ri, &adjri); - pcd->pcd_config_pmc(cpu, adjri, pm); + (void)pcd->pcd_config_pmc(cpu, adjri, pm); phw = pc->pc_hwpmcs[ri]; @@ -1457,7 +1454,7 @@ pmc_process_csw_in(struct thread *td) PMCDBG3(CSW,SWI,1,"cpu=%d ri=%d new=%jd", cpu, ri, newvalue); - pcd->pcd_write_pmc(cpu, adjri, pm, newvalue); + (void)pcd->pcd_write_pmc(cpu, adjri, pm, newvalue); /* If a sampling mode PMC, reset stalled state. */ if (PMC_TO_MODE(pm) == PMC_MODE_TS) @@ -1467,11 +1464,11 @@ pmc_process_csw_in(struct thread *td) pm->pm_pcpu_state[cpu].pps_cpustate = 1; /* Start the PMC. */ - pcd->pcd_start_pmc(cpu, adjri, pm); + (void)pcd->pcd_start_pmc(cpu, adjri, pm); } /* - * perform any other architecture/cpu dependent thread + * Perform any other architecture/cpu dependent thread * switch-in actions. */ (void)(*md->pmd_switch_in)(pc, pp); @@ -1485,18 +1482,17 @@ pmc_process_csw_in(struct thread *td) static void pmc_process_csw_out(struct thread *td) { - int cpu; - int64_t tmp; struct pmc *pm; - struct proc *p; - enum pmc_mode mode; + struct pmc_classdep *pcd; struct pmc_cpu *pc; - pmc_value_t newvalue; - unsigned int adjri, ri; struct pmc_process *pp; struct pmc_thread *pt = NULL; - struct pmc_classdep *pcd; - + struct proc *p; + pmc_value_t newvalue; + int64_t tmp; + enum pmc_mode mode; + int cpu; + u_int adjri, ri; /* * Locate our process descriptor; this may be NULL if @@ -1560,11 +1556,11 @@ pmc_process_csw_out(struct thread *td) */ pm->pm_pcpu_state[cpu].pps_cpustate = 0; if (pm->pm_pcpu_state[cpu].pps_stalled == 0) - pcd->pcd_stop_pmc(cpu, adjri, pm); + (void)pcd->pcd_stop_pmc(cpu, adjri, pm); KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, - ("[pmc,%d] pm=%p runcount %ld", __LINE__, (void *) pm, - (unsigned long)counter_u64_fetch(pm->pm_runcount))); + ("[pmc,%d] pm=%p runcount %ju", __LINE__, pm, + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); /* reduce this PMC's runcount */ counter_u64_add(pm->pm_runcount, -1); @@ -1582,7 +1578,7 @@ pmc_process_csw_out(struct thread *td) ("[pmc,%d] pp refcnt = %d", __LINE__, pp->pp_refcnt)); - pcd->pcd_read_pmc(cpu, adjri, pm, &newvalue); + (void)pcd->pcd_read_pmc(cpu, adjri, pm, &newvalue); if (mode == PMC_MODE_TS) { PMCDBG3(CSW,SWO,1,"cpu=%d ri=%d val=%jd (samp)", @@ -1658,12 +1654,12 @@ pmc_process_csw_out(struct thread *td) } } - /* mark hardware as free */ - pcd->pcd_config_pmc(cpu, adjri, NULL); + /* Mark hardware as free. */ + (void)pcd->pcd_config_pmc(cpu, adjri, NULL); } /* - * perform any other architecture/cpu dependent thread + * Perform any other architecture/cpu dependent thread * switch out functions. */ (void)(*md->pmd_switch_out)(pc, pp); @@ -1715,15 +1711,16 @@ pmc_process_thread_userret(struct thread *td) static void pmc_process_mmap(struct thread *td, struct pmckern_map_in *pkm) { - int ri; - pid_t pid; - char *fullpath, *freepath; const struct pmc *pm; - struct pmc_owner *po; const struct pmc_process *pp; + struct pmc_owner *po; + char *fullpath, *freepath; + pid_t pid; + int ri; - freepath = fullpath = NULL; MPASS(!in_epoch(global_epoch_preempt)); + + freepath = fullpath = NULL; pmc_getfilename((struct vnode *)pkm->pm_file, &fullpath, &freepath); pid = td->td_proc->p_pid; @@ -1762,11 +1759,11 @@ done: static void pmc_process_munmap(struct thread *td, struct pmckern_map_out *pkm) { - int ri; - pid_t pid; - struct pmc_owner *po; const struct pmc *pm; const struct pmc_process *pp; + struct pmc_owner *po; + pid_t pid; + int ri; pid = td->td_proc->p_pid; @@ -1833,15 +1830,14 @@ static void pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) { vm_map_t map; - struct vnode *vp; - struct vmspace *vm; vm_map_entry_t entry; + vm_object_t obj, lobj, tobj; vm_offset_t last_end; - u_int last_timestamp; - struct vnode *last_vp; vm_offset_t start_addr; - vm_object_t obj, lobj, tobj; + struct vnode *vp, *last_vp; + struct vmspace *vm; char *fullpath, *freepath; + u_int last_timestamp; last_vp = NULL; last_end = (vm_offset_t)0; @@ -1871,9 +1867,9 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) obj = entry->object.vm_object; VM_OBJECT_RLOCK(obj); - /* - * Walk the backing_object list to find the base - * (non-shadowed) vm_object. + /* + * Walk the backing_object list to find the base (non-shadowed) + * vm_object. */ for (lobj = tobj = obj; tobj != NULL; tobj = tobj->backing_object) { @@ -1904,9 +1900,8 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) } /* - * Skip contiguous regions that point to the same - * vnode, so we don't emit redundant MAP-IN - * directives. + * Skip contiguous regions that point to the same vnode, so we + * don't emit redundant MAP-IN directives. */ if (entry->start == last_end && vp == last_vp) { last_end = entry->end; @@ -1916,15 +1911,13 @@ pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) continue; } - /* - * We don't want to keep the proc's vm_map or this - * vm_object locked while we walk the pathname, since - * vn_fullpath() can sleep. However, if we drop the - * lock, it's possible for concurrent activity to - * modify the vm_map list. To protect against this, - * we save the vm_map timestamp before we release the - * lock, and check it after we reacquire the lock - * below. + /* + * We don't want to keep the proc's vm_map or this vm_object + * locked while we walk the pathname, since vn_fullpath() can + * sleep. However, if we drop the lock, it's possible for + * concurrent activity to modify the vm_map list. To protect + * against this, we save the vm_map timestamp before we release + * the lock, and check it after we reacquire the lock below. */ start_addr = entry->start; last_end = entry->end; @@ -2016,12 +2009,7 @@ done: sx_sunlock(&proctree_lock); } -/* - * The 'hook' invoked from the kernel proper - */ - - -#ifdef HWPMC_DEBUG +#ifdef HWPMC_DEBUG const char *pmc_hooknames[] = { /* these strings correspond to PMC_FN_* in */ "", @@ -2045,6 +2033,9 @@ const char *pmc_hooknames[] = { }; #endif +/* + * The 'hook' invoked from the kernel proper + */ static int pmc_hook_handler(struct thread *td, int function, void *arg) { @@ -2151,8 +2142,8 @@ pmc_hook_handler(struct thread *td, int function, void *arg) pmc_detach_one_process(td->td_proc, pm, PMC_FLAG_NONE); - KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= (int) md->pmd_npmc, - ("[pmc,%d] Illegal ref count %d on pp %p", __LINE__, + KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= md->pmd_npmc, + ("[pmc,%d] Illegal ref count %u on pp %p", __LINE__, pp->pp_refcnt, pp)); /* @@ -2294,19 +2285,19 @@ pmc_hook_handler(struct thread *td, int function, void *arg) } /* - * allocate a 'struct pmc_owner' descriptor in the owner hash table. + * Allocate a 'struct pmc_owner' descriptor in the owner hash table. */ static struct pmc_owner * pmc_allocate_owner_descriptor(struct proc *p) { - uint32_t hindex; struct pmc_owner *po; struct pmc_ownerhash *poh; + uint32_t hindex; hindex = PMC_HASH_PTR(p, pmc_ownerhashmask); poh = &pmc_ownerhash[hindex]; - /* allocate space for N pointers and one descriptor struct */ + /* Allocate space for N pointers and one descriptor struct. */ po = malloc(sizeof(struct pmc_owner), M_PMC, M_WAITOK | M_ZERO); po->po_owner = p; LIST_INSERT_HEAD(poh, po, po_next); /* insert into hash table */ @@ -2482,8 +2473,8 @@ pmc_find_thread_descriptor(struct pmc_process *pp, struct thread *td, static void pmc_add_thread_descriptors_from_proc(struct proc *p, struct pmc_process *pp) { - struct thread *curtd; struct pmc_thread **tdlist; + struct thread *curtd; int i, tdcnt, tdlistsz; KASSERT(!PROC_LOCKED(p), ("[pmc,%d] proc unexpectedly locked", @@ -2527,15 +2518,15 @@ restart: } /* - * find the descriptor corresponding to process 'p', adding or removing it + * Find the descriptor corresponding to process 'p', adding or removing it * as specified by 'mode'. */ static struct pmc_process * pmc_find_process_descriptor(struct proc *p, uint32_t mode) { - uint32_t hindex; struct pmc_process *pp, *ppnew; struct pmc_processhash *pph; + uint32_t hindex; hindex = PMC_HASH_PTR(p, pmc_processhashmask); pph = &pmc_processhash[hindex]; @@ -2579,7 +2570,7 @@ pmc_find_process_descriptor(struct proc *p, uint32_t mode) } /* - * remove a process descriptor from the process hash table. + * Remove a process descriptor from the process hash table. */ static void pmc_remove_process_descriptor(struct pmc_process *pp) @@ -2594,7 +2585,7 @@ pmc_remove_process_descriptor(struct pmc_process *pp) } /* - * destroy a process descriptor. + * Destroy a process descriptor. */ static void pmc_destroy_process_descriptor(struct pmc_process *pp) @@ -2609,14 +2600,14 @@ pmc_destroy_process_descriptor(struct pmc_process *pp) } /* - * find an owner descriptor corresponding to proc 'p' + * Find an owner descriptor corresponding to proc 'p'. */ static struct pmc_owner * pmc_find_owner_descriptor(struct proc *p) { - uint32_t hindex; struct pmc_owner *po; struct pmc_ownerhash *poh; + uint32_t hindex; hindex = PMC_HASH_PTR(p, pmc_ownerhashmask); poh = &pmc_ownerhash[hindex]; @@ -2634,10 +2625,7 @@ pmc_find_owner_descriptor(struct proc *p) } /* - * pmc_allocate_pmc_descriptor - * - * Allocate a pmc descriptor and initialize its - * fields. + * Allocate a pmc descriptor and initialize its fields. */ static struct pmc * pmc_allocate_pmc_descriptor(void) @@ -2668,8 +2656,8 @@ pmc_destroy_pmc_descriptor(struct pmc *pm) KASSERT(pm->pm_owner == NULL, ("[pmc,%d] destroying pmc attached to an owner", __LINE__)); KASSERT(counter_u64_fetch(pm->pm_runcount) == 0, - ("[pmc,%d] pmc has non-zero run count %ld", __LINE__, - (unsigned long)counter_u64_fetch(pm->pm_runcount))); + ("[pmc,%d] pmc has non-zero run count %ju", __LINE__, + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); counter_u64_free(pm->pm_runcount); free(pm->pm_pcpu_state, M_PMC); @@ -2694,9 +2682,9 @@ pmc_wait_for_pmc_idle(struct pmc *pm) #ifdef INVARIANTS maxloop--; KASSERT(maxloop > 0, - ("[pmc,%d] (ri%d, rc%ld) waiting too long for " - "pmc to be free", __LINE__, - PMC_TO_ROWINDEX(pm), (unsigned long)counter_u64_fetch(pm->pm_runcount))); + ("[pmc,%d] (ri%d, rc%ju) waiting too long for " + "pmc to be free", __LINE__, PMC_TO_ROWINDEX(pm), + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); #endif pmc_force_context_switch(); } @@ -2716,14 +2704,14 @@ pmc_wait_for_pmc_idle(struct pmc *pm) static void pmc_release_pmc_descriptor(struct pmc *pm) { - enum pmc_mode mode; + struct pmc_binding pb; + struct pmc_classdep *pcd; struct pmc_hw *phw __diagused; - u_int adjri, ri, cpu; struct pmc_owner *po; - struct pmc_binding pb; struct pmc_process *pp; - struct pmc_classdep *pcd; struct pmc_target *ptgt, *tmp; + enum pmc_mode mode; + u_int adjri, ri, cpu; sx_assert(&pmc_sx, SX_XLOCKED); KASSERT(pm, ("[pmc,%d] null pmc", __LINE__)); @@ -2741,7 +2729,7 @@ pmc_release_pmc_descriptor(struct pmc *pm) cpu = 0; if (PMC_IS_SYSTEM_MODE(mode)) { /* - * A system mode PMC runs on a specific CPU. Switch + * A system mode PMC runs on a specific CPU. Switch * to this CPU and turn hardware off. */ pmc_save_cpu_binding(&pb); @@ -2761,14 +2749,14 @@ pmc_release_pmc_descriptor(struct pmc *pm) PMCDBG2(PMC,REL,2, "stopping cpu=%d ri=%d", cpu, ri); critical_enter(); - pcd->pcd_stop_pmc(cpu, adjri, pm); + (void)pcd->pcd_stop_pmc(cpu, adjri, pm); critical_exit(); } PMCDBG2(PMC,REL,2, "decfg cpu=%d ri=%d", cpu, ri); critical_enter(); - pcd->pcd_config_pmc(cpu, adjri, NULL); + (void)pcd->pcd_config_pmc(cpu, adjri, NULL); critical_exit(); /* adjust the global and process count of SS mode PMCs */ @@ -2786,19 +2774,18 @@ pmc_release_pmc_descriptor(struct pmc *pm) pmc_restore_cpu_binding(&pb); /* - * We could have references to this PMC structure in - * the per-cpu sample queues. Wait for the queue to - * drain. + * We could have references to this PMC structure in the + * per-cpu sample queues. Wait for the queue to drain. */ pmc_wait_for_pmc_idle(pm); } else if (PMC_IS_VIRTUAL_MODE(mode)) { /* - * A virtual PMC could be running on multiple CPUs at - * a given instant. + * A virtual PMC could be running on multiple CPUs at a given + * instant. * - * By marking its state as DELETED, we ensure that - * this PMC is never further scheduled on hardware. + * By marking its state as DELETED, we ensure that this PMC is + * never further scheduled on hardware. * * Then we wait till all CPUs are done with this PMC. */ @@ -2808,11 +2795,10 @@ pmc_release_pmc_descriptor(struct pmc *pm) pmc_wait_for_pmc_idle(pm); /* - * At this point the PMC is off all CPUs and cannot be - * freshly scheduled onto a CPU. It is now safe to - * unlink all targets from this PMC. If a - * process-record's refcount falls to zero, we remove - * it from the hash table. The module-wide SX lock + * At this point the PMC is off all CPUs and cannot be freshly + * scheduled onto a CPU. It is now safe to unlink all targets + * from this PMC. If a process-record's refcount falls to zero, + * we remove it from the hash table. The module-wide SX lock * protects us from races. */ LIST_FOREACH_SAFE(ptgt, &pm->pm_targets, pt_next, tmp) { @@ -2822,8 +2808,8 @@ pmc_release_pmc_descriptor(struct pmc *pm) PMCDBG1(PMC,REL,3, "pp->refcnt=%d", pp->pp_refcnt); /* - * If the target process record shows that no - * PMCs are attached to it, reclaim its space. + * If the target process record shows that no PMCs are + * attached to it, reclaim its space. */ if (pp->pp_refcnt == 0) { pmc_remove_process_descriptor(pp); @@ -2835,19 +2821,19 @@ pmc_release_pmc_descriptor(struct pmc *pm) } /* - * Release any MD resources + * Release any MD resources. */ (void)pcd->pcd_release_pmc(cpu, adjri, pm); /* - * Update row disposition + * Update row disposition. */ if (PMC_IS_SYSTEM_MODE(PMC_TO_MODE(pm))) PMC_UNMARK_ROW_STANDALONE(ri); else PMC_UNMARK_ROW_THREAD(ri); - /* unlink from the owner's list */ + /* Unlink from the owner's list. */ if (pm->pm_owner != NULL) { LIST_REMOVE(pm, pm_next); pm->pm_owner = NULL; @@ -2913,10 +2899,10 @@ pmc_getrowdisp(int ri) static int pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu) { - enum pmc_mode mode; struct pmc *pm; struct pmc_owner *po; struct pmc_process *pp; + enum pmc_mode mode; PMCDBG5(PMC,ALR,1, "can-allocate-rowindex proc=%p (%d, %s) ri=%d " "cpu=%d", p, p->p_pid, p->p_comm, ri, cpu); @@ -3061,11 +3047,11 @@ pmc_find_pmc(pmc_id_t pmcid, struct pmc **pmc) static int pmc_start(struct pmc *pm) { - enum pmc_mode mode; - struct pmc_owner *po; struct pmc_binding pb; struct pmc_classdep *pcd; + struct pmc_owner *po; pmc_value_t v; + enum pmc_mode mode; int adjri, error, cpu, ri; KASSERT(pm != NULL, @@ -3076,6 +3062,7 @@ pmc_start(struct pmc *pm) pcd = pmc_ri_to_classdep(md, ri, &adjri); error = 0; + po = pm->pm_owner; PMCDBG3(PMC,OPS,1, "start pmc=%p mode=%d ri=%d", pm, mode, ri); @@ -3183,9 +3170,9 @@ pmc_start(struct pmc *pm) static int pmc_stop(struct pmc *pm) { - struct pmc_owner *po; struct pmc_binding pb; struct pmc_classdep *pcd; + struct pmc_owner *po; int adjri, cpu, error, ri; KASSERT(pm != NULL, ("[pmc,%d] null pmc", __LINE__)); @@ -3196,22 +3183,20 @@ pmc_stop(struct pmc *pm) pm->pm_state = PMC_STATE_STOPPED; /* - * If the PMC is a virtual mode one, changing the state to - * non-RUNNING is enough to ensure that the PMC never gets - * scheduled. + * If the PMC is a virtual mode one, changing the state to non-RUNNING + * is enough to ensure that the PMC never gets scheduled. * - * If this PMC is current running on a CPU, then it will - * handled correctly at the time its target process is context - * switched out. + * If this PMC is current running on a CPU, then it will handled + * correctly at the time its target process is context switched out. */ if (PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm))) return (0); /* - * A system-mode PMC. Move to the CPU associated with - * this PMC, and stop the hardware. We update the - * 'initial count' so that a subsequent PMCSTART will - * resume counting from the current hardware count. + * A system-mode PMC. Move to the CPU associated with this PMC, and + * stop the hardware. We update the 'initial count' so that a + * subsequent PMCSTART will resume counting from the current hardware + * count. */ pmc_save_cpu_binding(&pb); @@ -3236,9 +3221,8 @@ pmc_stop(struct pmc *pm) pmc_restore_cpu_binding(&pb); + /* Remove this owner from the global list of SS PMC owners. */ po = pm->pm_owner; - - /* remove this owner from the global list of SS PMC owners */ if (PMC_TO_MODE(pm) == PMC_MODE_SS) { po->po_sscount--; if (po->po_sscount == 0) { @@ -3287,16 +3271,17 @@ static const char *pmc_op_to_name[] = { #define PMC_DOWNGRADE_SX() do { \ sx_downgrade(&pmc_sx); \ - is_sx_downgraded = 1; \ + is_sx_downgraded = true; \ } while (0) static int pmc_syscall_handler(struct thread *td, void *syscall_args) { - int error, is_sx_downgraded, op; struct pmc_syscall_args *c; void *pmclog_proc_handle; void *arg; + int error, op; + bool is_sx_downgraded; c = (struct pmc_syscall_args *)syscall_args; op = c->pmop_code; @@ -3321,7 +3306,7 @@ pmc_syscall_handler(struct thread *td, void *syscall_args) } PMC_GET_SX_XLOCK(ENOSYS); - is_sx_downgraded = 0; + is_sx_downgraded = false; PMCDBG3(MOD,PMS,1, "syscall op=%d \"%s\" arg=%p", op, pmc_op_to_name[op], arg); @@ -4591,10 +4576,11 @@ pmc_post_callchain_callback(void) static int pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf) { - int error, cpu, callchaindepth, inuserspace; - struct thread *td; struct pmc_sample *ps; struct pmc_samplebuffer *psb; + struct thread *td; + int error, cpu, callchaindepth; + bool inuserspace; error = 0; @@ -4610,9 +4596,9 @@ pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf) pm->pm_pcpu_state[cpu].pps_stalled = 1; counter_u64_add(pmc_stats.pm_intr_bufferfull, 1); PMCDBG6(SAM,INT,1,"(spc) cpu=%d pm=%p tf=%p um=%d wr=%d rd=%d", - cpu, pm, (void *) tf, inuserspace, - (int) (psb->ps_prodidx & pmc_sample_mask), - (int) (psb->ps_considx & pmc_sample_mask)); + cpu, pm, tf, inuserspace, + (int)(psb->ps_prodidx & pmc_sample_mask), + (int)(psb->ps_considx & pmc_sample_mask)); callchaindepth = 1; error = ENOMEM; goto done; @@ -4641,8 +4627,8 @@ pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf) ps->ps_pc[0] = PMC_TRAPFRAME_TO_PC(tf); } else { /* - * Kernel stack traversals can be done immediately, - * while we defer to an AST for user space traversals. + * Kernel stack traversals can be done immediately, while we + * defer to an AST for user space traversals. */ if (!inuserspace) { callchaindepth = pmc_save_kernel_callchain(ps->ps_pc, @@ -4660,8 +4646,8 @@ pmc_add_sample(ring_type_t ring, struct pmc *pm, struct trapframe *tf) } KASSERT(counter_u64_fetch(pm->pm_runcount) >= 0, - ("[pmc,%d] pm=%p runcount %ld", __LINE__, (void *) pm, - (unsigned long)counter_u64_fetch(pm->pm_runcount))); + ("[pmc,%d] pm=%p runcount %ju", __LINE__, pm, + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); counter_u64_add(pm->pm_runcount, 1); /* hold onto PMC */ /* increment write pointer */ @@ -4677,8 +4663,8 @@ done: /* * Interrupt processing. * - * This function is meant to be called from an NMI handler. It cannot - * use any of the locking primitives supplied by the OS. + * This function may be called from an NMI handler. It cannot use any of the + * locking primitives supplied by the OS. */ int pmc_process_interrupt(int ring, struct pmc *pm, struct trapframe *tf) @@ -4695,7 +4681,7 @@ pmc_process_interrupt(int ring, struct pmc *pm, struct trapframe *tf) } /* - * Capture a user call chain. This function will be called from ast() + * Capture a user call chain. This function will be called from ast() * before control returns to userland and before the process gets * rescheduled. */ @@ -4703,23 +4689,22 @@ static void pmc_capture_user_callchain(int cpu, int ring, struct trapframe *tf) { struct pmc *pm; - struct thread *td; struct pmc_sample *ps; struct pmc_samplebuffer *psb; + struct thread *td; uint64_t considx, prodidx; int nsamples, nrecords, pass, iter; -#ifdef INVARIANTS - int start_ticks = ticks; -#endif + int start_ticks __diagused; + psb = pmc_pcpu[cpu]->pc_sb[ring]; td = curthread; + nrecords = INT_MAX; + pass = 0; + start_ticks = ticks; KASSERT(td->td_pflags & TDP_CALLCHAIN, ("[pmc,%d] Retrieving callchain for thread that doesn't want it", - __LINE__)); - - nrecords = INT_MAX; - pass = 0; + __LINE__)); restart: if (ring == PMC_UR) nrecords = atomic_readandclear_32(&td->td_pmcpend); @@ -4728,20 +4713,18 @@ restart: considx < prodidx && iter < pmc_nsamples; considx++, iter++) { ps = PMC_CONS_SAMPLE_OFF(psb, considx); - /* - * Iterate through all deferred callchain requests. - * Walk from the current read pointer to the current - * write pointer. - */ - -#ifdef INVARIANTS + /* + * Iterate through all deferred callchain requests. Walk from + * the current read pointer to the current write pointer. + */ +#ifdef INVARIANTS if (ps->ps_nsamples == PMC_SAMPLE_FREE) { continue; } #endif if (ps->ps_td != td || - ps->ps_nsamples != PMC_USER_CALLCHAIN_PENDING || - ps->ps_pmc->pm_state != PMC_STATE_RUNNING) + ps->ps_nsamples != PMC_USER_CALLCHAIN_PENDING || + ps->ps_pmc->pm_state != PMC_STATE_RUNNING) continue; KASSERT(ps->ps_cpu == cpu, @@ -4753,7 +4736,8 @@ restart: ("[pmc,%d] Retrieving callchain for PMC that doesn't " "want it", __LINE__)); KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, - ("[pmc,%d] runcount %ld", __LINE__, (unsigned long)counter_u64_fetch(pm->pm_runcount))); + ("[pmc,%d] runcount %ju", __LINE__, + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); if (ring == PMC_UR) { nsamples = ps->ps_nsamples_actual; @@ -4772,17 +4756,18 @@ restart: /* * We have to prevent hardclock from potentially overwriting * this sample between when we read the value and when we set - * it + * it. */ spinlock_enter(); /* - * Verify that the sample hasn't been dropped in the meantime + * Verify that the sample hasn't been dropped in the meantime. */ if (ps->ps_nsamples == PMC_USER_CALLCHAIN_PENDING) { ps->ps_nsamples = nsamples; /* - * If we couldn't get a sample, simply drop the reference + * If we couldn't get a sample, simply drop the + * reference. */ if (nsamples == 0) counter_u64_add(pm->pm_runcount, -1); @@ -4815,13 +4800,13 @@ static void pmc_process_samples(int cpu, ring_type_t ring) { struct pmc *pm; - int adjri, n; struct thread *td; struct pmc_owner *po; struct pmc_sample *ps; struct pmc_classdep *pcd; struct pmc_samplebuffer *psb; uint64_t delta __diagused; + int adjri, n; KASSERT(PCPU_GET(cpuid) == cpu, ("[pmc,%d] not on the correct CPU pcpu=%d cpu=%d", __LINE__, @@ -4836,33 +4821,33 @@ pmc_process_samples(int cpu, ring_type_t ring) if (__predict_false(ps->ps_nsamples == PMC_SAMPLE_FREE)) continue; - pm = ps->ps_pmc; + /* skip non-running samples */ + pm = ps->ps_pmc; if (pm->pm_state != PMC_STATE_RUNNING) goto entrydone; KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, *** 289 LINES SKIPPED *** From nobody Wed Jun 14 16:46:41 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCP5TW2z4dHx9; Wed, 14 Jun 2023 16:46:41 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCP448Vz4PkW; Wed, 14 Jun 2023 16:46:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761201; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+VPHNm7ng0q1WSCK597DKT4TNzWkYOYA/r2BgqN0Kd0=; b=Jdu+JvAQwIUy9vium78LAmvfcbvbUsK1teitZPyVqkXd80QPuhjTJ0TtUstDvkKgGt9X2M 6ZdN2NvPYQrBk9FGVp3kgO5seorPu2B8SSkLs4Pp1dWWs8RBE2MYXpVSiqXSe+HXQdbK8G t4UkqK0nfehJr8X8tqPnOTJzse4jF3EvNRtU0fX7IiRZfv9xw7lUtXQPE3NpM3phAFZWXU /YCIYHRHhGXoZLyeLmHr0kv4v4rxLLB2zyOBWzi5IKjg4Exc6Sipsv4WaE5eos9Xj4iPud 6O2GjVDL3Y2scJcHJNllAQFvKYl4XFiVMjz71tlohz4gTrqVCEmvKCD/+t/afA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761201; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+VPHNm7ng0q1WSCK597DKT4TNzWkYOYA/r2BgqN0Kd0=; b=G8DcyGKVmPS0pq/Kgk4ZdG40Da3xlDhRvPWrFG7Tyl0gMi8eZAoLEhQww1IfvmfjMRFfxw 68zw/BFdbMLkTeRRbIGTZNuDL1f1l4Zxe8MvEFgjvTWgaQYi7kMDXFBVDWDCXIMhktQLYd Qgj+FpUtvkTaS4fAVOlfCNXfPbz9TK3NesdYza3TqlH0okKbsHVF/NbCZptK3iFnXhOmcX TwbvylnbzgtGYD7j11BtySGHWSFBltRB9P67TXw6791X48sQVyu0TqTj+fQ7uf8Qwfa0oI vsGGAhvJ6jYlZqywWjgFaWeGDs6TB3AxeD3hpYAek3vV7m/Mz6KxS7mBm4Uy6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761201; a=rsa-sha256; cv=none; b=kPZTusFtl6crW7coE6XpYb7yOeDoxX/Z/EG45Pu+BN5zI59GRAB8riC5tnFJqF8LLzBFMh ksUCSR2k+mfoV7KFg5ZI8MW0Nyq61B8rjlZsCdnnUxxx7CeqbJalzoTmrt8F68tCAbEQSC s3yr38DyA5/7OCFO/f2aKhV1fF8mdpYn82aV6FEvyc5qc1G7JUsOJ/G+nFrFcjG9FJwOZp Oh6qdhtAxv0V+T7dJLnV7UIZH6tMyJnd5E5bW6qK4ebuqYTOYxQbGXPjAyfaaEYg4eb9kR TgBnByju7yZwlJzXwyw9XuU7JDHKthf2RPL6z5mG8ycigm3p8ufuN89lWB8q6w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCP34rRz1B08; Wed, 14 Jun 2023 16:46:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkfC0028408; Wed, 14 Jun 2023 16:46:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkfMS028407; Wed, 14 Jun 2023 16:46:41 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:41 GMT Message-Id: <202306141646.35EGkfMS028407@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: c498169442f3 - main - hwpmc: split out PMC_FN_PROCESS_EXEC List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c498169442f3ebf769eb0157260c592729e48dc1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=c498169442f3ebf769eb0157260c592729e48dc1 commit c498169442f3ebf769eb0157260c592729e48dc1 Author: Mitchell Horne AuthorDate: 2023-06-14 16:32:01 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:21 +0000 hwpmc: split out PMC_FN_PROCESS_EXEC Move the functionality into a separate helper function. All other actions in pmc_hook_handler() already have this. While here make some small style improvements. Restructure one for loop. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40333 --- sys/dev/hwpmc/hwpmc_mod.c | 232 ++++++++++++++++++++++++---------------------- 1 file changed, 120 insertions(+), 112 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index e5d166866125..987184b7fae8 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -241,6 +241,8 @@ static void pmc_post_callchain_callback(void); static void pmc_process_allproc(struct pmc *pm); static void pmc_process_csw_in(struct thread *td); static void pmc_process_csw_out(struct thread *td); +static void pmc_process_exec(struct thread *td, + struct pmckern_procexec *pk); static void pmc_process_exit(void *arg, struct proc *p); static void pmc_process_fork(void *arg, struct proc *p1, struct proc *p2, int n); @@ -1318,6 +1320,122 @@ done: return (0); } +/* + * Handle events after an exec() for a process: + * - Inform log owners of the new exec() event + * - Release any PMCs owned by the process before the exec() + * - Detach PMCs from the target if required + */ +static void +pmc_process_exec(struct thread *td, struct pmckern_procexec *pk) +{ + struct pmc *pm; + struct pmc_owner *po; + struct pmc_process *pp; + struct proc *p; + char *fullpath, *freepath; + u_int ri; + bool is_using_hwpmcs; + + sx_assert(&pmc_sx, SX_XLOCKED); + + p = td->td_proc; + pmc_getfilename(p->p_textvp, &fullpath, &freepath); + + PMC_EPOCH_ENTER(); + /* Inform owners of SS mode PMCs of the exec event. */ + CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) { + if ((po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) { + pmclog_process_procexec(po, PMC_ID_INVALID, p->p_pid, + pk->pm_baseaddr, pk->pm_dynaddr, fullpath); + } + } + PMC_EPOCH_EXIT(); + + PROC_LOCK(p); + is_using_hwpmcs = (p->p_flag & P_HWPMC) != 0; + PROC_UNLOCK(p); + + if (!is_using_hwpmcs) { + if (freepath != NULL) + free(freepath, M_TEMP); + return; + } + + /* + * PMCs are not inherited across an exec(): remove any PMCs that this + * process is the owner of. + */ + if ((po = pmc_find_owner_descriptor(p)) != NULL) { + pmc_remove_owner(po); + pmc_destroy_owner_descriptor(po); + } + + /* + * If the process being exec'ed is not the target of any PMC, we are + * done. + */ + if ((pp = pmc_find_process_descriptor(p, 0)) == NULL) { + if (freepath != NULL) + free(freepath, M_TEMP); + return; + } + + /* + * Log the exec event to all monitoring owners. Skip owners who have + * already received the event because they had system sampling PMCs + * active. + */ + for (ri = 0; ri < md->pmd_npmc; ri++) { + if ((pm = pp->pp_pmcs[ri].pp_pmc) == NULL) + continue; + + po = pm->pm_owner; + if (po->po_sscount == 0 && + (po->po_flags & PMC_PO_OWNS_LOGFILE) != 0) { + pmclog_process_procexec(po, pm->pm_id, p->p_pid, + pk->pm_baseaddr, pk->pm_dynaddr, fullpath); + } + } + + if (freepath != NULL) + free(freepath, M_TEMP); + + PMCDBG4(PRC,EXC,1, "exec proc=%p (%d, %s) cred-changed=%d", + p, p->p_pid, p->p_comm, pk->pm_credentialschanged); + + if (pk->pm_credentialschanged == 0) /* no change */ + return; + + /* + * If the newly exec()'ed process has a different credential + * than before, allow it to be the target of a PMC only if + * the PMC's owner has sufficient privilege. + */ + for (ri = 0; ri < md->pmd_npmc; ri++) { + if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { + if (pmc_can_attach(pm, td->td_proc) != 0) { + pmc_detach_one_process(td->td_proc, pm, + PMC_FLAG_NONE); + } + } + } + + KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= md->pmd_npmc, + ("[pmc,%d] Illegal ref count %u on pp %p", __LINE__, + pp->pp_refcnt, pp)); + + /* + * If this process is no longer the target of any + * PMCs, we can remove the process entry and free + * up space. + */ + if (pp->pp_refcnt == 0) { + pmc_remove_process_descriptor(pp); + pmc_destroy_process_descriptor(pp); + } +} + /* * Thread context switch IN. */ @@ -2045,119 +2163,9 @@ pmc_hook_handler(struct thread *td, int function, void *arg) pmc_hooknames[function], arg); switch (function) { - - /* - * Process exec() - */ case PMC_FN_PROCESS_EXEC: - { - char *fullpath, *freepath; - unsigned int ri; - int is_using_hwpmcs; - struct pmc *pm; - struct proc *p; - struct pmc_owner *po; - struct pmc_process *pp; - struct pmckern_procexec *pk; - - sx_assert(&pmc_sx, SX_XLOCKED); - - p = td->td_proc; - pmc_getfilename(p->p_textvp, &fullpath, &freepath); - - pk = (struct pmckern_procexec *) arg; - - PMC_EPOCH_ENTER(); - /* Inform owners of SS mode PMCs of the exec event. */ - CK_LIST_FOREACH(po, &pmc_ss_owners, po_ssnext) - if (po->po_flags & PMC_PO_OWNS_LOGFILE) - pmclog_process_procexec(po, PMC_ID_INVALID, - p->p_pid, pk->pm_baseaddr, pk->pm_dynaddr, - fullpath); - PMC_EPOCH_EXIT(); - - PROC_LOCK(p); - is_using_hwpmcs = p->p_flag & P_HWPMC; - PROC_UNLOCK(p); - - if (!is_using_hwpmcs) { - if (freepath) - free(freepath, M_TEMP); - break; - } - - /* - * PMCs are not inherited across an exec(): remove any - * PMCs that this process is the owner of. - */ - - if ((po = pmc_find_owner_descriptor(p)) != NULL) { - pmc_remove_owner(po); - pmc_destroy_owner_descriptor(po); - } - - /* - * If the process being exec'ed is not the target of any - * PMC, we are done. - */ - if ((pp = pmc_find_process_descriptor(p, 0)) == NULL) { - if (freepath) - free(freepath, M_TEMP); - break; - } - - /* - * Log the exec event to all monitoring owners. Skip - * owners who have already received the event because - * they had system sampling PMCs active. - */ - for (ri = 0; ri < md->pmd_npmc; ri++) - if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { - po = pm->pm_owner; - if (po->po_sscount == 0 && - po->po_flags & PMC_PO_OWNS_LOGFILE) - pmclog_process_procexec(po, pm->pm_id, - p->p_pid, pk->pm_baseaddr, - pk->pm_dynaddr, fullpath); - } - - if (freepath) - free(freepath, M_TEMP); - - - PMCDBG4(PRC,EXC,1, "exec proc=%p (%d, %s) cred-changed=%d", - p, p->p_pid, p->p_comm, pk->pm_credentialschanged); - - if (pk->pm_credentialschanged == 0) /* no change */ - break; - - /* - * If the newly exec()'ed process has a different credential - * than before, allow it to be the target of a PMC only if - * the PMC's owner has sufficient privilege. - */ - for (ri = 0; ri < md->pmd_npmc; ri++) - if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) - if (pmc_can_attach(pm, td->td_proc) != 0) - pmc_detach_one_process(td->td_proc, - pm, PMC_FLAG_NONE); - - KASSERT(pp->pp_refcnt >= 0 && pp->pp_refcnt <= md->pmd_npmc, - ("[pmc,%d] Illegal ref count %u on pp %p", __LINE__, - pp->pp_refcnt, pp)); - - /* - * If this process is no longer the target of any - * PMCs, we can remove the process entry and free - * up space. - */ - if (pp->pp_refcnt == 0) { - pmc_remove_process_descriptor(pp); - pmc_destroy_process_descriptor(pp); - break; - } - } - break; + pmc_process_exec(td, (struct pmckern_procexec *)arg); + break; case PMC_FN_CSW_IN: pmc_process_csw_in(td); From nobody Wed Jun 14 16:46:42 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCQ5Ggkz4dHTQ; Wed, 14 Jun 2023 16:46:42 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCQ4stGz4PqK; Wed, 14 Jun 2023 16:46:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761202; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iJhM77plHcLCyzMbhkJ2VnI0fmKFS0xsHax+buv56uY=; b=EvCeZb8q9TyGBco1blf5+Zkb5wLgzfvNdTC5uVV4RO7cu1VrLMowhADsGVDdjxDirKt8to s0pVfUHb6CTP4+YB7blLeKb315DE7U0ALfCZJxVzKfcIpKeov/JDjRDV+KF0aKuAahnL09 3/bVLRf05HSHOCW0HDl9EiSwlaw6rBfncZYWnVYW1N0UHTqItgVoEZS+Q3M0L+NlPj6hQD WFVYHHxuZ9YOq6wu2TOamqT99TzrcPEsbjJBvQvgUrhl91xpzDK1okkc6J2tATqW4GCtdH TbBBasOwqNVNTtuNR1hqJMlUxAIGS4rcRO9dNbsqra6l1ES6ghafZc/0XEGjRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761202; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iJhM77plHcLCyzMbhkJ2VnI0fmKFS0xsHax+buv56uY=; b=jVa3mMn/0AM4ZZzgZ3pPgEl45mBC62RfEVelOIeC/saqdm7Eyug9OTerApd+XbEshqVTDP vI2C8hiK9/i2ugIfLwwM/oblPMnFqULfbA7MOkKBycNGKpuCD4L/quhw9HeWTcguSKF4js F5fEWeneECY87O33ATdNsqcYXwX5LTa8r09GKyXed9nzKJBZaH2Z2Fg/7jOoBHhN95zRH1 tSLKEWTN7krJojrJpIkl0FiiW08487C/q6TCapcZJjRDxEewOfrrB5CrsEY6rCPj0mcUmk RuvmVrEp+G7c5Wc2Te/Yzl7z2wNGvtXt1W2Zt8qAO8+rbbJUVhSm6gztvox03g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761202; a=rsa-sha256; cv=none; b=k0hSyas4CNdX2HjuKXalFeZdevYLQJSN5ObhUdpKDfMtzfwSgQdoAgeFWHf6GWkKQaq61M cz8bYaYGfJjxrZspu9S4xpyWOXvi0R0MFDlMgirOen9qsKsC53tBzn7sSQGQIehTXcOIf0 M7SqrYXwDXwL4Jke01Y21ghiGwukjv0zgkf8gsw1aZH4j69vc7Usa2qHnVMvOWXceYVlKp bB5cjCF/tTWC9QgZNYAzw5/OfTZwHhijbu44sRUzt2g4c+VLOPPztTnkzR1XQneEu/rUaG i5tb7oiEVVHgYNiMmSBrUTLy7JIo5qu4eiILDUY+y1RjokMNc6Xy0oQ7OnPp5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCQ3v37z1BDS; Wed, 14 Jun 2023 16:46:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkgTX028427; Wed, 14 Jun 2023 16:46:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkgSw028426; Wed, 14 Jun 2023 16:46:42 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:42 GMT Message-Id: <202306141646.35EGkgSw028426@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: a133f64239cd - main - hwpmc: split out PMC_OP_PMCATTACH/PMC_OP_PMCDETACH List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a133f64239cdbefa374cf6df134f3581f9b9f147 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=a133f64239cdbefa374cf6df134f3581f9b9f147 commit a133f64239cdbefa374cf6df134f3581f9b9f147 Author: Mitchell Horne AuthorDate: 2023-06-14 16:32:11 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:21 +0000 hwpmc: split out PMC_OP_PMCATTACH/PMC_OP_PMCDETACH Begin splitting out the large chunks of functional logic from the syscall handler into separate helper functions. This keeps it separate from the syscall control-flow logic, resulting in better readability overall. It also wins back a level of indentation. For this and the similar changes to follow, try to keep copyin() and copyout() calls outside of the helper functions. The changes are intended to have no functional impact, but do address style issues. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40291 --- sys/dev/hwpmc/hwpmc_mod.c | 190 +++++++++++++++++++++++++--------------------- 1 file changed, 103 insertions(+), 87 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index 987184b7fae8..24cd3ba0fc0f 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -3282,6 +3282,103 @@ static const char *pmc_op_to_name[] = { is_sx_downgraded = true; \ } while (0) +/* + * Main body of PMC_OP_PMCATTACH. + */ +static int +pmc_do_op_pmcattach(struct thread *td, struct pmc_op_pmcattach a) +{ + struct pmc *pm; + struct proc *p; + int error; + + sx_assert(&pmc_sx, SX_XLOCKED); + + if (a.pm_pid < 0) { + return (EINVAL); + } else if (a.pm_pid == 0) { + a.pm_pid = td->td_proc->p_pid; + } + + error = pmc_find_pmc(a.pm_pmc, &pm); + if (error != 0) + return (error); + + if (PMC_IS_SYSTEM_MODE(PMC_TO_MODE(pm))) + return (EINVAL); + + /* PMCs may be (re)attached only when allocated or stopped */ + if (pm->pm_state == PMC_STATE_RUNNING) { + return (EBUSY); + } else if (pm->pm_state != PMC_STATE_ALLOCATED && + pm->pm_state != PMC_STATE_STOPPED) { + return (EINVAL); + } + + /* lookup pid */ + if ((p = pfind(a.pm_pid)) == NULL) + return (ESRCH); + + /* + * Ignore processes that are working on exiting. + */ + if ((p->p_flag & P_WEXIT) != 0) { + PROC_UNLOCK(p); /* pfind() returns a locked process */ + return (ESRCH); + } + + /* + * We are allowed to attach a PMC to a process if we can debug it. + */ + error = p_candebug(curthread, p); + + PROC_UNLOCK(p); + + if (error == 0) + error = pmc_attach_process(p, pm); + + return (error); +} + +/* + * Main body of PMC_OP_PMCDETACH. + */ +static int +pmc_do_op_pmcdetach(struct thread *td, struct pmc_op_pmcattach a) +{ + struct pmc *pm; + struct proc *p; + int error; + + if (a.pm_pid < 0) { + return (EINVAL); + } else if (a.pm_pid == 0) + a.pm_pid = td->td_proc->p_pid; + + error = pmc_find_pmc(a.pm_pmc, &pm); + if (error != 0) + return (error); + + if ((p = pfind(a.pm_pid)) == NULL) + return (ESRCH); + + /* + * Treat processes that are in the process of exiting as if they were + * not present. + */ + if ((p->p_flag & P_WEXIT) != 0) { + PROC_UNLOCK(p); + return (ESRCH); + } + + PROC_UNLOCK(p); /* pfind() returns a locked process */ + + if (error == 0) + error = pmc_detach_process(p, pm); + + return (error); +} + static int pmc_syscall_handler(struct thread *td, void *syscall_args) { @@ -4004,114 +4101,33 @@ pmc_syscall_handler(struct thread *td, void *syscall_args) } break; - /* * Attach a PMC to a process. */ - case PMC_OP_PMCATTACH: { - struct pmc *pm; - struct proc *p; struct pmc_op_pmcattach a; - sx_assert(&pmc_sx, SX_XLOCKED); - - if ((error = copyin(arg, &a, sizeof(a))) != 0) - break; - - if (a.pm_pid < 0) { - error = EINVAL; - break; - } else if (a.pm_pid == 0) - a.pm_pid = td->td_proc->p_pid; - - if ((error = pmc_find_pmc(a.pm_pmc, &pm)) != 0) - break; - - if (PMC_IS_SYSTEM_MODE(PMC_TO_MODE(pm))) { - error = EINVAL; - break; - } - - /* PMCs may be (re)attached only when allocated or stopped */ - if (pm->pm_state == PMC_STATE_RUNNING) { - error = EBUSY; - break; - } else if (pm->pm_state != PMC_STATE_ALLOCATED && - pm->pm_state != PMC_STATE_STOPPED) { - error = EINVAL; - break; - } - - /* lookup pid */ - if ((p = pfind(a.pm_pid)) == NULL) { - error = ESRCH; - break; - } - - /* - * Ignore processes that are working on exiting. - */ - if (p->p_flag & P_WEXIT) { - error = ESRCH; - PROC_UNLOCK(p); /* pfind() returns a locked process */ + error = copyin(arg, &a, sizeof(a)); + if (error != 0) break; - } - /* - * we are allowed to attach a PMC to a process if - * we can debug it. - */ - error = p_candebug(curthread, p); - - PROC_UNLOCK(p); - - if (error == 0) - error = pmc_attach_process(p, pm); + error = pmc_do_op_pmcattach(td, a); } break; - /* * Detach an attached PMC from a process. */ - case PMC_OP_PMCDETACH: { - struct pmc *pm; - struct proc *p; struct pmc_op_pmcattach a; - if ((error = copyin(arg, &a, sizeof(a))) != 0) - break; - - if (a.pm_pid < 0) { - error = EINVAL; - break; - } else if (a.pm_pid == 0) - a.pm_pid = td->td_proc->p_pid; - - if ((error = pmc_find_pmc(a.pm_pmc, &pm)) != 0) - break; - - if ((p = pfind(a.pm_pid)) == NULL) { - error = ESRCH; + error = copyin(arg, &a, sizeof(a)); + if (error != 0) break; - } - /* - * Treat processes that are in the process of exiting - * as if they were not present. - */ - - if (p->p_flag & P_WEXIT) - error = ESRCH; - - PROC_UNLOCK(p); /* pfind() returns a locked process */ - - if (error == 0) - error = pmc_detach_process(p, pm); + error = pmc_do_op_pmcdetach(td, a); } break; From nobody Wed Jun 14 16:46:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCS44SDz4dHrm; Wed, 14 Jun 2023 16:46:44 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCR6YvHz4Pp3; Wed, 14 Jun 2023 16:46:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761203; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ghR0R8z746KweurbtvNXJeYId9qH3e7u2dKI3Hjx4gc=; b=u83aY2hoQsLGocvL1hoxgf0kyLfZ160Z4Kh6vzNM2CkaKQM+3CABxEp/g4w+NkotGWr4sH fLjuVyoV2f2q2BlGGle/QBZsBDNB90ClVF+/XNnBRpW1ycGilO2Wrf5OMpMX1uGQxrMbGR tDaJn58kOiZiOMtt6xIJKAgnKQKybsspDEV1DOJgMyQs4pIFtVxibP7axtIzMuNFh1cec5 uLebN9V4N/Fz6634DjiSIDRox87Q8gPPphFuKPdWtI4+aNyaHGrphmzWTlFzl1WEDZcI1e Ts6jqsS84qMSW/XzNCSKr+iZFKROiD+s+vJaMNG4tTh8l7hNAaOmBAufL3fFsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761203; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ghR0R8z746KweurbtvNXJeYId9qH3e7u2dKI3Hjx4gc=; b=pEqM8hhpwISuGnaNd5fphsQJpJboSm50O6e4J/SKP6SipYbavpe1gwizS57RFMkIrrf2kg hvOtxqCaSD7nmKqFnd+hqJuBJHAol+uTLDJEYIh+jsfQ1PVT0+9t9znHtfeEB3gxhL+GyL xn39D7iLTnfcyy6wssyRATFW0f/eVwPb5kWOYTYM7OsxKuQIfgg4vT2VgQKlRwDgJw51Iv e9AKXU3cs+oR9pMxSRK1xmAPslCwGxFwf0R0phd2iZSWSTl1NlU3wIBSLbu2aoyG3ecZ1u t7rrYh5mFyhSO+3zBesF+HmBbgnhcuY+9WJXu0Hc1fOU/3Ecl6aKaF05diVshg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761203; a=rsa-sha256; cv=none; b=CEZmOAYbL/to3DdCFIR1k6winXMS1GHN2FH74WfQNYJqg07gu+z5U7pmLzINWu8ZRf2mct kVxJDbsUgXr2zKVRZEQblO3ONDovv2ztHade07ed/F/IMO4edAooQShaGimHNlPKIDUysC RG29N+iGIX/x4y29VmCz0vyQnd/Db7qECIcC+WZtbcPr+HKevvfwPOxYvErCM/tRF8DDQw /f+9/MKdCX3N3dsUgN0hGvcNDoXlUYf+ctnjhDRUNuLOMy+uqQ42KwDXvEmoqy8M5NHDCd Xt2i5ZFO/xYwzr7QPsqaJlABiw53I3MBKd8iQQw4N9i07aeGPtCKhdU+/8lxQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCR4g7tz1B29; Wed, 14 Jun 2023 16:46:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkh5C028450; Wed, 14 Jun 2023 16:46:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkh0J028449; Wed, 14 Jun 2023 16:46:43 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:43 GMT Message-Id: <202306141646.35EGkh0J028449@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: c514a571af74 - main - hwpmc: split out PMC_OP_PMCALLOCATE List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c514a571af74429d9f2a0e9e1118e0903906c4de Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=c514a571af74429d9f2a0e9e1118e0903906c4de commit c514a571af74429d9f2a0e9e1118e0903906c4de Author: Mitchell Horne AuthorDate: 2023-06-14 16:33:27 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:21 +0000 hwpmc: split out PMC_OP_PMCALLOCATE Split out the large chunk of functional logic from the syscall handler into a helper function. This keeps it separate from the syscall control-flow logic, resulting in better readability overall. It also wins back a level of indentation. Flip the return values of the pmc_can_allocate_row() and pmc_can_allocate_rowindex() functions to boolean types, like their naming implies. We weren't actually using the error codes they were returning. While here, make some small style cleanups. No functional change intended. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40292 --- sys/dev/hwpmc/hwpmc_mod.c | 521 +++++++++++++++++++++++----------------------- 1 file changed, 256 insertions(+), 265 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index 24cd3ba0fc0f..fb6aa3ad4588 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -210,7 +210,8 @@ static int pmc_attach_process(struct proc *p, struct pmc *pm); static struct pmc *pmc_allocate_pmc_descriptor(void); static struct pmc_owner *pmc_allocate_owner_descriptor(struct proc *p); static int pmc_attach_one_process(struct proc *p, struct pmc *pm); -static int pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, +static bool pmc_can_allocate_row(int ri, enum pmc_mode mode); +static bool pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu); static int pmc_can_attach(struct pmc *pm, struct proc *p); static void pmc_capture_user_callchain(int cpu, int soft, @@ -2904,7 +2905,7 @@ pmc_getrowdisp(int ri) * - the current process has already allocated a PMC at index 'ri' * via OP_ALLOCATE. */ -static int +static bool pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu) { struct pmc *pm; @@ -2927,10 +2928,10 @@ pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu) if (PMC_TO_ROWINDEX(pm) == ri) { mode = PMC_TO_MODE(pm); if (PMC_IS_VIRTUAL_MODE(mode)) - return (EEXIST); + return (false); if (PMC_IS_SYSTEM_MODE(mode) && PMC_TO_CPU(pm) == cpu) - return (EEXIST); + return (false); } } } @@ -2941,18 +2942,18 @@ pmc_can_allocate_rowindex(struct proc *p, unsigned int ri, int cpu) */ if ((pp = pmc_find_process_descriptor(p, 0)) != NULL) if (pp->pp_pmcs[ri].pp_pmc != NULL) - return (EEXIST); + return (false); PMCDBG4(PMC,ALR,2, "can-allocate-rowindex proc=%p (%d, %s) ri=%d ok", p, p->p_pid, p->p_comm, ri); - return (0); + return (true); } /* * Check if a given PMC at row index 'ri' can be currently used in * mode 'mode'. */ -static int +static bool pmc_can_allocate_row(int ri, enum pmc_mode mode) { enum pmc_disp disp; @@ -2979,13 +2980,13 @@ pmc_can_allocate_row(int ri, enum pmc_mode mode) if (!PMC_ROW_DISP_IS_FREE(ri) && !(disp == PMC_DISP_THREAD && PMC_ROW_DISP_IS_THREAD(ri)) && !(disp == PMC_DISP_STANDALONE && PMC_ROW_DISP_IS_STANDALONE(ri))) - return (EBUSY); + return (false); /* * All OK */ PMCDBG2(PMC,ALR,2, "can-allocate-row ri=%d mode=%d ok", ri, mode); - return (0); + return (true); } /* @@ -3282,6 +3283,248 @@ static const char *pmc_op_to_name[] = { is_sx_downgraded = true; \ } while (0) +/* + * Main body of PMC_OP_PMCALLOCATE. + */ +static int +pmc_do_op_pmcallocate(struct thread *td, struct pmc_op_pmcallocate *pa) +{ + struct proc *p; + struct pmc *pmc; + struct pmc_binding pb; + struct pmc_classdep *pcd; + struct pmc_hw *phw; + enum pmc_mode mode; + enum pmc_class class; + uint32_t caps; + u_int cpu; + int adjri, n; + int error; + + class = pa->pm_class; + caps = pa->pm_caps; + mode = pa->pm_mode; + cpu = pa->pm_cpu; + + p = td->td_proc; + + /* Requested mode must exist. */ + if ((mode != PMC_MODE_SS && mode != PMC_MODE_SC && + mode != PMC_MODE_TS && mode != PMC_MODE_TC)) + return (EINVAL); + + /* Requested CPU must be valid. */ + if (cpu != PMC_CPU_ANY && cpu >= pmc_cpu_max()) + return (EINVAL); + + /* + * Virtual PMCs should only ask for a default CPU. + * System mode PMCs need to specify a non-default CPU. + */ + if ((PMC_IS_VIRTUAL_MODE(mode) && cpu != PMC_CPU_ANY) || + (PMC_IS_SYSTEM_MODE(mode) && cpu == PMC_CPU_ANY)) + return (EINVAL); + + /* + * Check that an inactive CPU is not being asked for. + */ + if (PMC_IS_SYSTEM_MODE(mode) && !pmc_cpu_is_active(cpu)) + return (ENXIO); + + /* + * Refuse an allocation for a system-wide PMC if this process has been + * jailed, or if this process lacks super-user credentials and the + * sysctl tunable 'security.bsd.unprivileged_syspmcs' is zero. + */ + if (PMC_IS_SYSTEM_MODE(mode)) { + if (jailed(td->td_ucred)) + return (EPERM); + if (!pmc_unprivileged_syspmcs) { + error = priv_check(td, PRIV_PMC_SYSTEM); + if (error != 0) + return (error); + } + } + + /* + * Look for valid values for 'pm_flags'. + */ + if ((pa->pm_flags & ~(PMC_F_DESCENDANTS | PMC_F_LOG_PROCCSW | + PMC_F_LOG_PROCEXIT | PMC_F_CALLCHAIN | PMC_F_USERCALLCHAIN)) != 0) + return (EINVAL); + + /* PMC_F_USERCALLCHAIN is only valid with PMC_F_CALLCHAIN. */ + if ((pa->pm_flags & (PMC_F_CALLCHAIN | PMC_F_USERCALLCHAIN)) == + PMC_F_USERCALLCHAIN) + return (EINVAL); + + /* PMC_F_USERCALLCHAIN is only valid for sampling mode. */ + if ((pa->pm_flags & PMC_F_USERCALLCHAIN) != 0 && mode != PMC_MODE_TS && + mode != PMC_MODE_SS) + return (EINVAL); + + /* Process logging options are not allowed for system PMCs. */ + if (PMC_IS_SYSTEM_MODE(mode) && + (pa->pm_flags & (PMC_F_LOG_PROCCSW | PMC_F_LOG_PROCEXIT)) != 0) + return (EINVAL); + + /* + * All sampling mode PMCs need to be able to interrupt the CPU. + */ + if (PMC_IS_SAMPLING_MODE(mode)) + caps |= PMC_CAP_INTERRUPT; + + /* A valid class specifier should have been passed in. */ + pcd = pmc_class_to_classdep(class); + if (pcd == NULL) + return (EINVAL); + + /* The requested PMC capabilities should be feasible. */ + if ((pcd->pcd_caps & caps) != caps) + return (EOPNOTSUPP); + + PMCDBG4(PMC,ALL,2, "event=%d caps=0x%x mode=%d cpu=%d", pa->pm_ev, + caps, mode, cpu); + + pmc = pmc_allocate_pmc_descriptor(); + pmc->pm_id = PMC_ID_MAKE_ID(cpu, pa->pm_mode, class, PMC_ID_INVALID); + pmc->pm_event = pa->pm_ev; + pmc->pm_state = PMC_STATE_FREE; + pmc->pm_caps = caps; + pmc->pm_flags = pa->pm_flags; + + /* XXX set lower bound on sampling for process counters */ + if (PMC_IS_SAMPLING_MODE(mode)) { + /* + * Don't permit requested sample rate to be less than + * pmc_mincount. + */ + if (pa->pm_count < MAX(1, pmc_mincount)) + log(LOG_WARNING, "pmcallocate: passed sample " + "rate %ju - setting to %u\n", + (uintmax_t)pa->pm_count, + MAX(1, pmc_mincount)); + pmc->pm_sc.pm_reloadcount = MAX(MAX(1, pmc_mincount), + pa->pm_count); + } else + pmc->pm_sc.pm_initial = pa->pm_count; + + /* switch thread to CPU 'cpu' */ + pmc_save_cpu_binding(&pb); + +#define PMC_IS_SHAREABLE_PMC(cpu, n) \ + (pmc_pcpu[(cpu)]->pc_hwpmcs[(n)]->phw_state & \ + PMC_PHW_FLAG_IS_SHAREABLE) +#define PMC_IS_UNALLOCATED(cpu, n) \ + (pmc_pcpu[(cpu)]->pc_hwpmcs[(n)]->phw_pmc == NULL) + + if (PMC_IS_SYSTEM_MODE(mode)) { + pmc_select_cpu(cpu); + for (n = pcd->pcd_ri; n < md->pmd_npmc; n++) { + pcd = pmc_ri_to_classdep(md, n, &adjri); + + if (!pmc_can_allocate_row(n, mode) || + !pmc_can_allocate_rowindex(p, n, cpu)) + continue; + if (!PMC_IS_UNALLOCATED(cpu, n) && + !PMC_IS_SHAREABLE_PMC(cpu, n)) + continue; + + if (pcd->pcd_allocate_pmc(cpu, adjri, pmc, pa) == 0) { + /* Success. */ + break; + } + } + } else { + /* Process virtual mode */ + for (n = pcd->pcd_ri; n < md->pmd_npmc; n++) { + pcd = pmc_ri_to_classdep(md, n, &adjri); + + if (!pmc_can_allocate_row(n, mode) || + !pmc_can_allocate_rowindex(p, n, PMC_CPU_ANY)) + continue; + + if (pcd->pcd_allocate_pmc(td->td_oncpu, adjri, pmc, + pa) == 0) { + /* Success. */ + break; + } + } + } + +#undef PMC_IS_UNALLOCATED +#undef PMC_IS_SHAREABLE_PMC + + pmc_restore_cpu_binding(&pb); + + if (n == md->pmd_npmc) { + pmc_destroy_pmc_descriptor(pmc); + return (EINVAL); + } + + /* Fill in the correct value in the ID field. */ + pmc->pm_id = PMC_ID_MAKE_ID(cpu, mode, class, n); + + PMCDBG5(PMC,ALL,2, "ev=%d class=%d mode=%d n=%d -> pmcid=%x", + pmc->pm_event, class, mode, n, pmc->pm_id); + + /* Process mode PMCs with logging enabled need log files. */ + if ((pmc->pm_flags & (PMC_F_LOG_PROCEXIT | PMC_F_LOG_PROCCSW)) != 0) + pmc->pm_flags |= PMC_F_NEEDS_LOGFILE; + + /* All system mode sampling PMCs require a log file. */ + if (PMC_IS_SAMPLING_MODE(mode) && PMC_IS_SYSTEM_MODE(mode)) + pmc->pm_flags |= PMC_F_NEEDS_LOGFILE; + + /* + * Configure global pmc's immediately. + */ + if (PMC_IS_SYSTEM_MODE(PMC_TO_MODE(pmc))) { + pmc_save_cpu_binding(&pb); + pmc_select_cpu(cpu); + + phw = pmc_pcpu[cpu]->pc_hwpmcs[n]; + pcd = pmc_ri_to_classdep(md, n, &adjri); + + if ((phw->phw_state & PMC_PHW_FLAG_IS_ENABLED) == 0 || + (error = pcd->pcd_config_pmc(cpu, adjri, pmc)) != 0) { + (void)pcd->pcd_release_pmc(cpu, adjri, pmc); + pmc_destroy_pmc_descriptor(pmc); + pmc_restore_cpu_binding(&pb); + return (EPERM); + } + + pmc_restore_cpu_binding(&pb); + } + + pmc->pm_state = PMC_STATE_ALLOCATED; + pmc->pm_class = class; + + /* + * Mark row disposition. + */ + if (PMC_IS_SYSTEM_MODE(mode)) + PMC_MARK_ROW_STANDALONE(n); + else + PMC_MARK_ROW_THREAD(n); + + /* + * Register this PMC with the current thread as its owner. + */ + error = pmc_register_owner(p, pmc); + if (error != 0) { + pmc_release_pmc_descriptor(pmc); + pmc_destroy_pmc_descriptor(pmc); + return (error); + } + + /* + * Return the allocated index. + */ + pa->pm_pmcid = pmc->pm_id; + return (0); +} + /* * Main body of PMC_OP_PMCATTACH. */ @@ -3833,269 +4076,17 @@ pmc_syscall_handler(struct thread *td, void *syscall_args) /* * Allocate a PMC. */ - case PMC_OP_PMCALLOCATE: { - int adjri, n; - u_int cpu; - uint32_t caps; - struct pmc *pmc; - enum pmc_mode mode; - struct pmc_hw *phw; - struct pmc_binding pb; - struct pmc_classdep *pcd; struct pmc_op_pmcallocate pa; - if ((error = copyin(arg, &pa, sizeof(pa))) != 0) - break; - - caps = pa.pm_caps; - mode = pa.pm_mode; - cpu = pa.pm_cpu; - - if ((mode != PMC_MODE_SS && mode != PMC_MODE_SC && - mode != PMC_MODE_TS && mode != PMC_MODE_TC) || - (cpu != (u_int) PMC_CPU_ANY && cpu >= pmc_cpu_max())) { - error = EINVAL; - break; - } - - /* - * Virtual PMCs should only ask for a default CPU. - * System mode PMCs need to specify a non-default CPU. - */ - - if ((PMC_IS_VIRTUAL_MODE(mode) && cpu != (u_int) PMC_CPU_ANY) || - (PMC_IS_SYSTEM_MODE(mode) && cpu == (u_int) PMC_CPU_ANY)) { - error = EINVAL; - break; - } - - /* - * Check that an inactive CPU is not being asked for. - */ - - if (PMC_IS_SYSTEM_MODE(mode) && !pmc_cpu_is_active(cpu)) { - error = ENXIO; - break; - } - - /* - * Refuse an allocation for a system-wide PMC if this - * process has been jailed, or if this process lacks - * super-user credentials and the sysctl tunable - * 'security.bsd.unprivileged_syspmcs' is zero. - */ - - if (PMC_IS_SYSTEM_MODE(mode)) { - if (jailed(curthread->td_ucred)) { - error = EPERM; - break; - } - if (!pmc_unprivileged_syspmcs) { - error = priv_check(curthread, - PRIV_PMC_SYSTEM); - if (error) - break; - } - } - - /* - * Look for valid values for 'pm_flags' - */ - - if ((pa.pm_flags & ~(PMC_F_DESCENDANTS | PMC_F_LOG_PROCCSW | - PMC_F_LOG_PROCEXIT | PMC_F_CALLCHAIN | - PMC_F_USERCALLCHAIN)) != 0) { - error = EINVAL; - break; - } - - /* PMC_F_USERCALLCHAIN is only valid with PMC_F_CALLCHAIN */ - if ((pa.pm_flags & (PMC_F_CALLCHAIN | PMC_F_USERCALLCHAIN)) == - PMC_F_USERCALLCHAIN) { - error = EINVAL; - break; - } - - /* PMC_F_USERCALLCHAIN is only valid for sampling mode */ - if (pa.pm_flags & PMC_F_USERCALLCHAIN && - mode != PMC_MODE_TS && mode != PMC_MODE_SS) { - error = EINVAL; - break; - } - - /* process logging options are not allowed for system PMCs */ - if (PMC_IS_SYSTEM_MODE(mode) && (pa.pm_flags & - (PMC_F_LOG_PROCCSW | PMC_F_LOG_PROCEXIT))) { - error = EINVAL; - break; - } - - /* - * All sampling mode PMCs need to be able to interrupt the - * CPU. - */ - if (PMC_IS_SAMPLING_MODE(mode)) - caps |= PMC_CAP_INTERRUPT; - - /* A valid class specifier should have been passed in. */ - pcd = pmc_class_to_classdep(pa.pm_class); - if (pcd == NULL) { - error = EINVAL; - break; - } - - /* The requested PMC capabilities should be feasible. */ - if ((pcd->pcd_caps & caps) != caps) { - error = EOPNOTSUPP; - break; - } - - PMCDBG4(PMC,ALL,2, "event=%d caps=0x%x mode=%d cpu=%d", - pa.pm_ev, caps, mode, cpu); - - pmc = pmc_allocate_pmc_descriptor(); - pmc->pm_id = PMC_ID_MAKE_ID(cpu,pa.pm_mode,pa.pm_class, - PMC_ID_INVALID); - pmc->pm_event = pa.pm_ev; - pmc->pm_state = PMC_STATE_FREE; - pmc->pm_caps = caps; - pmc->pm_flags = pa.pm_flags; - - /* XXX set lower bound on sampling for process counters */ - if (PMC_IS_SAMPLING_MODE(mode)) { - /* - * Don't permit requested sample rate to be - * less than pmc_mincount. - */ - if (pa.pm_count < MAX(1, pmc_mincount)) - log(LOG_WARNING, "pmcallocate: passed sample " - "rate %ju - setting to %u\n", - (uintmax_t)pa.pm_count, - MAX(1, pmc_mincount)); - pmc->pm_sc.pm_reloadcount = MAX(MAX(1, pmc_mincount), - pa.pm_count); - } else - pmc->pm_sc.pm_initial = pa.pm_count; - - /* switch thread to CPU 'cpu' */ - pmc_save_cpu_binding(&pb); - -#define PMC_IS_SHAREABLE_PMC(cpu, n) \ - (pmc_pcpu[(cpu)]->pc_hwpmcs[(n)]->phw_state & \ - PMC_PHW_FLAG_IS_SHAREABLE) -#define PMC_IS_UNALLOCATED(cpu, n) \ - (pmc_pcpu[(cpu)]->pc_hwpmcs[(n)]->phw_pmc == NULL) - - if (PMC_IS_SYSTEM_MODE(mode)) { - pmc_select_cpu(cpu); - for (n = pcd->pcd_ri; n < (int) md->pmd_npmc; n++) { - pcd = pmc_ri_to_classdep(md, n, &adjri); - if (pmc_can_allocate_row(n, mode) == 0 && - pmc_can_allocate_rowindex( - curthread->td_proc, n, cpu) == 0 && - (PMC_IS_UNALLOCATED(cpu, n) || - PMC_IS_SHAREABLE_PMC(cpu, n)) && - pcd->pcd_allocate_pmc(cpu, adjri, pmc, - &pa) == 0) - break; - } - } else { - /* Process virtual mode */ - for (n = pcd->pcd_ri; n < (int) md->pmd_npmc; n++) { - pcd = pmc_ri_to_classdep(md, n, &adjri); - if (pmc_can_allocate_row(n, mode) == 0 && - pmc_can_allocate_rowindex( - curthread->td_proc, n, - PMC_CPU_ANY) == 0 && - pcd->pcd_allocate_pmc(curthread->td_oncpu, - adjri, pmc, &pa) == 0) - break; - } - } - -#undef PMC_IS_UNALLOCATED -#undef PMC_IS_SHAREABLE_PMC - - pmc_restore_cpu_binding(&pb); - - if (n == (int) md->pmd_npmc) { - pmc_destroy_pmc_descriptor(pmc); - pmc = NULL; - error = EINVAL; + error = copyin(arg, &pa, sizeof(pa)); + if (error != 0) break; - } - - /* Fill in the correct value in the ID field */ - pmc->pm_id = PMC_ID_MAKE_ID(cpu,mode,pa.pm_class,n); - - PMCDBG5(PMC,ALL,2, "ev=%d class=%d mode=%d n=%d -> pmcid=%x", - pmc->pm_event, pa.pm_class, mode, n, pmc->pm_id); - - /* Process mode PMCs with logging enabled need log files */ - if (pmc->pm_flags & (PMC_F_LOG_PROCEXIT | PMC_F_LOG_PROCCSW)) - pmc->pm_flags |= PMC_F_NEEDS_LOGFILE; - /* All system mode sampling PMCs require a log file */ - if (PMC_IS_SAMPLING_MODE(mode) && PMC_IS_SYSTEM_MODE(mode)) - pmc->pm_flags |= PMC_F_NEEDS_LOGFILE; - - /* - * Configure global pmc's immediately - */ - - if (PMC_IS_SYSTEM_MODE(PMC_TO_MODE(pmc))) { - - pmc_save_cpu_binding(&pb); - pmc_select_cpu(cpu); - - phw = pmc_pcpu[cpu]->pc_hwpmcs[n]; - pcd = pmc_ri_to_classdep(md, n, &adjri); - - if ((phw->phw_state & PMC_PHW_FLAG_IS_ENABLED) == 0 || - (error = pcd->pcd_config_pmc(cpu, adjri, pmc)) != 0) { - (void)pcd->pcd_release_pmc(cpu, adjri, pmc); - pmc_destroy_pmc_descriptor(pmc); - pmc = NULL; - pmc_restore_cpu_binding(&pb); - error = EPERM; - break; - } - - pmc_restore_cpu_binding(&pb); - } - - pmc->pm_state = PMC_STATE_ALLOCATED; - pmc->pm_class = pa.pm_class; - - /* - * mark row disposition - */ - - if (PMC_IS_SYSTEM_MODE(mode)) - PMC_MARK_ROW_STANDALONE(n); - else - PMC_MARK_ROW_THREAD(n); - - /* - * Register this PMC with the current thread as its owner. - */ - - if ((error = - pmc_register_owner(curthread->td_proc, pmc)) != 0) { - pmc_release_pmc_descriptor(pmc); - pmc_destroy_pmc_descriptor(pmc); - pmc = NULL; + error = pmc_do_op_pmcallocate(td, &pa); + if (error != 0) break; - } - - - /* - * Return the allocated index. - */ - - pa.pm_pmcid = pmc->pm_id; error = copyout(&pa, arg, sizeof(pa)); } From nobody Wed Jun 14 16:46:44 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCT5rK8z4dHpF; Wed, 14 Jun 2023 16:46:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCS6Ytjz4Q23; Wed, 14 Jun 2023 16:46:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761204; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bbumi9FncsGxkrVKaQS/Qnrtdcvotmbz3KCzKuY9a3Y=; b=oKIXZs8SPcVxII5LzPhrmxNMX5VP3MiWxglSzan/JjP1IyHHxf/C7HjIw7uCsZtB8KCRbW 9SPcnaWM/C2blPvvU8bjp+IeHdNtCuGJpPSQ/9jkK9lfX/tYh/DG44fb9p0ozJFO0IpS38 WVSc2FJLvq8Z4gsrJXSPyF2bkZHYqd2RzIulxWfe5/YC14Io8zBvj9LzPsOu8ozZqCNeC/ 21RxWjNZrFBgckt34UtsFqGIJ4bkSVBppl1jGTq+HcZ7AFvoVjqYPYAJs5ssbnhLt0z4h0 mWnE3jAcchPukTHJ5/BZbvhFdiDpb9DSWnk277WrZAOIPjOPkIZqCNF/NHUL3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761204; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bbumi9FncsGxkrVKaQS/Qnrtdcvotmbz3KCzKuY9a3Y=; b=wuNJMUNPnS4tzL5I05WlEubsJLWwRqGfCiCTzTN/KNw4BfJ6VVxsjmmf7B2sOL/WSO454N ThPzRa6Xj2bky/tZ99nogcc3f8D54y7cvvvlNbbsBZYJj5+a0l5onWx21WcLjtpUVio8Ec MvH/U5ti/mJHh8C93kwD1SMdVnM98rS0WuqWu4c/7Uaqk6XBHfb7ZV4IACE4Bwpass6T0h 8OTZ9Q7PeAcPiwogGidT0K/oECEvkj6XFXaeDBxN4A6qqjvW/SPgr1OKIxgbdMIaBKxn5e 0C2v/Dztor6jLMjUlnxe3Zn+j5UNOw/ULbPiIBJsvWhM+OeHS1z8cOzXXUe+nQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761204; a=rsa-sha256; cv=none; b=ez4/YrY1Ou6AsJt8W1RpQu0d3S3islcMgW4yPEWojoCbuQ+vVbnCOmYNrSIXeUcG0/MxhA yB2Z+9fcTjYWvkwBSNQPembzQvGyMqM7j8MQFaknqggI111lW/mQP8g75sDGht+wcRYoOW 4Q8Govg+kapGCVdDZFcG3uHEh/7/rW2EsXJ2r2j1IzhxsNBNLBudsx2pQ3TyOEKTldePxN L02EXVSOof5Ukh6jh29ZyebvQZ8lwdmJ7H6jfNrGcZ/uZLwjn+6j6H3D2fSEIx34T+33vC hYysBw8Vi/8ieZufyZuFMvCqBfcJnnaio3vmGFIUJjVbKLSe5y6XEhLazhOd3g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCS5gZZz1B2B; Wed, 14 Jun 2023 16:46:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGki7a028477; Wed, 14 Jun 2023 16:46:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkinA028476; Wed, 14 Jun 2023 16:46:44 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:44 GMT Message-Id: <202306141646.35EGkinA028476@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: f4fac946c6a5 - main - hwpmc: split out PMC_OP_PMCRELEASE List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f4fac946c6a5f682130b16e17bb4d9ffe219ea32 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=f4fac946c6a5f682130b16e17bb4d9ffe219ea32 commit f4fac946c6a5f682130b16e17bb4d9ffe219ea32 Author: Mitchell Horne AuthorDate: 2023-06-14 16:33:35 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:21 +0000 hwpmc: split out PMC_OP_PMCRELEASE Split out the functional logic from the syscall handler into a helper function. This keeps it separate from the syscall control-flow logic, resulting in better readability overall. It also wins back a level of indentation. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40293 --- sys/dev/hwpmc/hwpmc_mod.c | 66 +++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index fb6aa3ad4588..f9ea87769cae 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -3622,6 +3622,40 @@ pmc_do_op_pmcdetach(struct thread *td, struct pmc_op_pmcattach a) return (error); } +/* + * Main body of PMC_OP_PMCRELEASE. + */ +static int +pmc_do_op_pmcrelease(pmc_id_t pmcid) +{ + struct pmc_owner *po; + struct pmc *pm; + int error; + + /* + * Find PMC pointer for the named PMC. + * + * Use pmc_release_pmc_descriptor() to switch off the + * PMC, remove all its target threads, and remove the + * PMC from its owner's list. + * + * Remove the owner record if this is the last PMC + * owned. + * + * Free up space. + */ + error = pmc_find_pmc(pmcid, &pm); + if (error != 0) + return (error); + + po = pm->pm_owner; + pmc_release_pmc_descriptor(pm); + pmc_maybe_remove_owner(po); + pmc_destroy_pmc_descriptor(pm); + + return (error); +} + static int pmc_syscall_handler(struct thread *td, void *syscall_args) { @@ -4205,41 +4239,17 @@ pmc_syscall_handler(struct thread *td, void *syscall_args) break; /* - * Release an allocated PMC + * Release an allocated PMC. */ - case PMC_OP_PMCRELEASE: { - pmc_id_t pmcid; - struct pmc *pm; - struct pmc_owner *po; struct pmc_op_simple sp; - /* - * Find PMC pointer for the named PMC. - * - * Use pmc_release_pmc_descriptor() to switch off the - * PMC, remove all its target threads, and remove the - * PMC from its owner's list. - * - * Remove the owner record if this is the last PMC - * owned. - * - * Free up space. - */ - - if ((error = copyin(arg, &sp, sizeof(sp))) != 0) - break; - - pmcid = sp.pm_pmcid; - - if ((error = pmc_find_pmc(pmcid, &pm)) != 0) + error = copyin(arg, &sp, sizeof(sp)); + if (error != 0) break; - po = pm->pm_owner; - pmc_release_pmc_descriptor(pm); - pmc_maybe_remove_owner(po); - pmc_destroy_pmc_descriptor(pm); + error = pmc_do_op_pmcrelease(sp.pm_pmcid); } break; From nobody Wed Jun 14 16:46:45 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCV31Zdz4dHrv; Wed, 14 Jun 2023 16:46:46 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCV0LB2z4Q00; Wed, 14 Jun 2023 16:46:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9qmMPoyF9+k8xeO8H2g32ebFyW2pW09bxf1CLakLZGU=; b=t6Hz3GtAbF+Zr65IGhA1y9Mlyg7QUcuRaMBc3EYItis+Wcz/hfuNq1IbGylMbBSUG/gBzF tHxQs8XZpy+RklXLjw1S9SMthHS+Zq1QdYFKuBu5U9+8Dpq3wiCHVUjNCOM2JUJwpHykoO PcIRl73W7bb1BaDGWSfYtycoQBFgy+SC5hkiTBtrD92HzAY7Rr37ai9vAIZ55bmFBF2NOU YyxYhP4I7DajbHfLy/VQ6+SJG1RwW3Jt50jcuu5uuTiRTjnocgf/q3ZtL85m06PdcqeJFJ V+ecBVHnvVyag6i/lGWtHIoIpbR9jjPaVTGhw0l457CKYr3jkqG/onAM6INn1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9qmMPoyF9+k8xeO8H2g32ebFyW2pW09bxf1CLakLZGU=; b=Fy1P3SysQA0q+EoQQcop1XBZmktWR2LdGNdxqtFa6pMFziUgFeiXloCPq3TPbJp7c3Mjcq Wlmku6ZDFF80LC1azq3gE/HJntc6ev+Je3qP5Hi/hm2giw0sZ3qFLoqnWDu2RJgYxPrrcu qW+kQRFjqD4GXUXCBDsVRwzPcqG0fyG8p0EDxsj82qQeyfL+aayx171K8gvJmkl8RSx1Bu E+po2/W1XjjFECbKu3jzyMQyX/XcKjQ/qKhKC4PCBeGGLX5JdugsC8dDtbhia/xErghYGX /7WDFAykgPq4rTstMnMiy9k/9fwepBr4GHgOkPZmGGY6YOyjUPX5tSXTCgQvVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761206; a=rsa-sha256; cv=none; b=hVCABvJPnAzNJCR+CLM/85vNK29gI6rtWeZda0yXxtTHoK934Ak1yND98s0tbCnUzOmQQR LiiFI6Pmtc7kRGN2wMoausTI/xt3TROezi0EV9BRmhsfSTiaBzo2Lrn+siPPtfAbbRa8Ie RxgwP/BNMwtQ2qUPdGJl0w9KHQTFbnOk8RV4+S26w3k6efDoMZTKbWdcptr+vm7llT+jkd Dtnv47WEH6m50aW7x+2S8revoEdRvRUAvdsMSE9Nco3T0VD0IUfQu8wQR68RqYmNekZjDd Z+WnxAdMnTfGSxXxyKRXoGwHe1TtITXg35e3jJ6nskrcUDHUkBv4+7YjF4NUMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCT6VKGz1BDT; Wed, 14 Jun 2023 16:46:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkjdF028499; Wed, 14 Jun 2023 16:46:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkjrh028498; Wed, 14 Jun 2023 16:46:45 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:45 GMT Message-Id: <202306141646.35EGkjrh028498@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 93fe5909babb - main - hwpmc: split out PMC_OP_PMCRW List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 93fe5909babb0ef7dbe8f5e3e93d429500503704 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=93fe5909babb0ef7dbe8f5e3e93d429500503704 commit 93fe5909babb0ef7dbe8f5e3e93d429500503704 Author: Mitchell Horne AuthorDate: 2023-06-14 16:33:41 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:21 +0000 hwpmc: split out PMC_OP_PMCRW Split out the functional logic from the syscall handler into a helper function. This keeps it separate from the syscall control-flow logic, resulting in better readability overall. It also wins back a level of indentation. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40294 --- sys/dev/hwpmc/hwpmc_mod.c | 229 +++++++++++++++++++++++----------------------- 1 file changed, 114 insertions(+), 115 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index f9ea87769cae..b6e7baf1e7cd 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -3656,6 +3656,110 @@ pmc_do_op_pmcrelease(pmc_id_t pmcid) return (error); } +/* + * Main body of PMC_OP_PMCRW. + */ +static int +pmc_do_op_pmcrw(const struct pmc_op_pmcrw *prw, pmc_value_t *valp) +{ + struct pmc_binding pb; + struct pmc_classdep *pcd; + struct pmc *pm; + u_int cpu, ri, adjri; + int error; + + PMCDBG2(PMC,OPS,1, "rw id=%d flags=0x%x", prw->pm_pmcid, prw->pm_flags); + + /* Must have at least one flag set. */ + if ((prw->pm_flags & (PMC_F_OLDVALUE | PMC_F_NEWVALUE)) == 0) + return (EINVAL); + + /* Locate PMC descriptor. */ + error = pmc_find_pmc(prw->pm_pmcid, &pm); + if (error != 0) + return (error); + + /* Can't read a PMC that hasn't been started. */ + if (pm->pm_state != PMC_STATE_ALLOCATED && + pm->pm_state != PMC_STATE_STOPPED && + pm->pm_state != PMC_STATE_RUNNING) + return (EINVAL); + + /* Writing a new value is allowed only for 'STOPPED' PMCs. */ + if (pm->pm_state == PMC_STATE_RUNNING && + (prw->pm_flags & PMC_F_NEWVALUE) != 0) + return (EBUSY); + + if (PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm))) { + /* + * If this PMC is attached to its owner (i.e., the process + * requesting this operation) and is running, then attempt to + * get an upto-date reading from hardware for a READ. Writes + * are only allowed when the PMC is stopped, so only update the + * saved value field. + * + * If the PMC is not running, or is not attached to its owner, + * read/write to the savedvalue field. + */ + + ri = PMC_TO_ROWINDEX(pm); + pcd = pmc_ri_to_classdep(md, ri, &adjri); + + mtx_pool_lock_spin(pmc_mtxpool, pm); + cpu = curthread->td_oncpu; + + if ((prw->pm_flags & PMC_F_OLDVALUE) != 0) { + if ((pm->pm_flags & PMC_F_ATTACHED_TO_OWNER) && + (pm->pm_state == PMC_STATE_RUNNING)) { + error = (*pcd->pcd_read_pmc)(cpu, adjri, pm, + valp); + } else { + *valp = pm->pm_gv.pm_savedvalue; + } + } + + if ((prw->pm_flags & PMC_F_NEWVALUE) != 0) + pm->pm_gv.pm_savedvalue = prw->pm_value; + + mtx_pool_unlock_spin(pmc_mtxpool, pm); + } else { /* System mode PMCs */ + cpu = PMC_TO_CPU(pm); + ri = PMC_TO_ROWINDEX(pm); + pcd = pmc_ri_to_classdep(md, ri, &adjri); + + if (!pmc_cpu_is_active(cpu)) + return (ENXIO); + + /* Move this thread to CPU 'cpu'. */ + pmc_save_cpu_binding(&pb); + pmc_select_cpu(cpu); + critical_enter(); + + /* Save old value. */ + if ((prw->pm_flags & PMC_F_OLDVALUE) != 0) + error = (*pcd->pcd_read_pmc)(cpu, adjri, pm, valp); + + /* Write out new value. */ + if (error == 0 && (prw->pm_flags & PMC_F_NEWVALUE) != 0) + error = (*pcd->pcd_write_pmc)(cpu, adjri, pm, + prw->pm_value); + + critical_exit(); + pmc_restore_cpu_binding(&pb); + if (error != 0) + return (error); + } + +#ifdef HWPMC_DEBUG + if ((prw->pm_flags & PMC_F_NEWVALUE) != 0) + PMCDBG3(PMC,OPS,2, "rw id=%d new %jx -> old %jx", + ri, prw->pm_value, *valp); + else + PMCDBG2(PMC,OPS,2, "rw id=%d -> old %jx", ri, *valp); +#endif + return (error); +} + static int pmc_syscall_handler(struct thread *td, void *syscall_args) { @@ -4253,136 +4357,31 @@ pmc_syscall_handler(struct thread *td, void *syscall_args) } break; - /* * Read and/or write a PMC. */ - case PMC_OP_PMCRW: { - int adjri; - struct pmc *pm; - uint32_t cpu, ri; - pmc_value_t oldvalue; - struct pmc_binding pb; struct pmc_op_pmcrw prw; - struct pmc_classdep *pcd; struct pmc_op_pmcrw *pprw; + pmc_value_t oldvalue; PMC_DOWNGRADE_SX(); - if ((error = copyin(arg, &prw, sizeof(prw))) != 0) - break; - - PMCDBG2(PMC,OPS,1, "rw id=%d flags=0x%x", prw.pm_pmcid, - prw.pm_flags); - - /* must have at least one flag set */ - if ((prw.pm_flags & (PMC_F_OLDVALUE|PMC_F_NEWVALUE)) == 0) { - error = EINVAL; - break; - } - - /* locate pmc descriptor */ - if ((error = pmc_find_pmc(prw.pm_pmcid, &pm)) != 0) + error = copyin(arg, &prw, sizeof(prw)); + if (error != 0) break; - /* Can't read a PMC that hasn't been started. */ - if (pm->pm_state != PMC_STATE_ALLOCATED && - pm->pm_state != PMC_STATE_STOPPED && - pm->pm_state != PMC_STATE_RUNNING) { - error = EINVAL; + error = pmc_do_op_pmcrw(&prw, &oldvalue); + if (error != 0) break; - } - /* writing a new value is allowed only for 'STOPPED' pmcs */ - if (pm->pm_state == PMC_STATE_RUNNING && - (prw.pm_flags & PMC_F_NEWVALUE)) { - error = EBUSY; - break; + /* Return old value if requested. */ + if ((prw.pm_flags & PMC_F_OLDVALUE) != 0) { + pprw = arg; + error = copyout(&oldvalue, &pprw->pm_value, + sizeof(prw.pm_value)); } - - if (PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm))) { - - /* - * If this PMC is attached to its owner (i.e., - * the process requesting this operation) and - * is running, then attempt to get an - * upto-date reading from hardware for a READ. - * Writes are only allowed when the PMC is - * stopped, so only update the saved value - * field. - * - * If the PMC is not running, or is not - * attached to its owner, read/write to the - * savedvalue field. - */ - - ri = PMC_TO_ROWINDEX(pm); - pcd = pmc_ri_to_classdep(md, ri, &adjri); - - mtx_pool_lock_spin(pmc_mtxpool, pm); - cpu = curthread->td_oncpu; - - if (prw.pm_flags & PMC_F_OLDVALUE) { - if ((pm->pm_flags & PMC_F_ATTACHED_TO_OWNER) && - (pm->pm_state == PMC_STATE_RUNNING)) - error = (*pcd->pcd_read_pmc)(cpu, adjri, - pm, &oldvalue); - else - oldvalue = pm->pm_gv.pm_savedvalue; - } - if (prw.pm_flags & PMC_F_NEWVALUE) - pm->pm_gv.pm_savedvalue = prw.pm_value; - - mtx_pool_unlock_spin(pmc_mtxpool, pm); - - } else { /* System mode PMCs */ - cpu = PMC_TO_CPU(pm); - ri = PMC_TO_ROWINDEX(pm); - pcd = pmc_ri_to_classdep(md, ri, &adjri); - - if (!pmc_cpu_is_active(cpu)) { - error = ENXIO; - break; - } - - /* move this thread to CPU 'cpu' */ - pmc_save_cpu_binding(&pb); - pmc_select_cpu(cpu); - - critical_enter(); - /* save old value */ - if (prw.pm_flags & PMC_F_OLDVALUE) { - if ((error = (*pcd->pcd_read_pmc)(cpu, adjri, - pm, &oldvalue))) - goto error; - } - /* write out new value */ - if (prw.pm_flags & PMC_F_NEWVALUE) - error = (*pcd->pcd_write_pmc)(cpu, adjri, pm, - prw.pm_value); - error: - critical_exit(); - pmc_restore_cpu_binding(&pb); - if (error) - break; - } - - pprw = (struct pmc_op_pmcrw *) arg; - -#ifdef HWPMC_DEBUG - if (prw.pm_flags & PMC_F_NEWVALUE) - PMCDBG3(PMC,OPS,2, "rw id=%d new %jx -> old %jx", - ri, prw.pm_value, oldvalue); - else if (prw.pm_flags & PMC_F_OLDVALUE) - PMCDBG2(PMC,OPS,2, "rw id=%d -> old %jx", ri, oldvalue); -#endif - /* return old value if requested */ - if (prw.pm_flags & PMC_F_OLDVALUE) - if ((error = copyout(&oldvalue, &pprw->pm_value, - sizeof(prw.pm_value)))) - break; } break; From nobody Wed Jun 14 16:46:46 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBCW2xD1z4dJ0m; Wed, 14 Jun 2023 16:46:47 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBCW1qy3z4Q0L; Wed, 14 Jun 2023 16:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f+ct7X5wEZNHrXpyBFGQ8ukjccfqM+30lcpM6cQi9ZA=; b=sVtTtO/UM8g38l+28bpasq1P4KM4zTOwohAkCqQdeXdlg9r8XP53TmaGkVv/VVGSAnloFE hen8fU2stWycb9t3kvnwvY7flieQm9n2v++xLSR79yt1m1gmjVFdSCn3bkY/kqjabdN5FG XckrEg3cM/JVQouGti+g5ktu9P5jqvmqeHoQMEpHLX/8WhZD4K1ju+ENJ/n6gn7v52oLYJ jXSxt3Pe9Dh8ttl7WSxS5oAIkfsb5axWoTUf/ooy+Q5pHcjstgUQoQH0PcEGXd8ql9b005 aprGONE8Ccr1yQGeCajc3JDV1dh+hUBHmYsMXUguZ4mjPhDVdaqNF6q7bcab7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f+ct7X5wEZNHrXpyBFGQ8ukjccfqM+30lcpM6cQi9ZA=; b=BpYnhU3IYzS402LwW3WJDKC8jd1k2pkrbtzSnjliaxDzfiFh1iU9GtwzDGfhDrakC2ZwV6 GV4NPCoDoQtZOH1O5+yfar/Gv/zeQuIRbhsUNedCVtsrjJ3vqUqVRBylwUFo+8+DWF9tat gHtmsseBro+WeWfSo17ny33YsVbrv3/HEQZaErzG9MoF3uIR828ixhGMfVDc3Q9BL7YWzm UcOOr1UUsZ4p57cn8iS3E7MVM1U0MPYOrh+0WtZdHM78wd+QsfJNl25sYVIuc5PD44Mack IviYZ3Sr1Qfc4gGl1/X/U+/0GfbCQNXgQPMA3OYO5Xls9niStySmr/m1+YVBpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761207; a=rsa-sha256; cv=none; b=urmT9hhZXawIhO+WlzrOKT6AEAcRq0c0sY+SAZksJuVhjtaQVUtfYmFCJLDnfY6lpzfo3c jhRbyiR0Mpp1zDVjY7jq1Zi41qoc3l1WdkD5EMyOiC9LWo8QOD6GXPkKsKuaPIgY7Th7GA 5MuGQ5A4aV2Rj89RfZ+pmvgSvmdRhYMSsX5SCM5a0Yqg13ElkXX+F/3cAqmLU6+3FgiDeV qw4aX4YP0OUw62GZcP/WFGyY878olBxs3jpacRBlmJ7v7dNZHt+ZvYuHvWe6dIk77wQQPI QBL3Vk8lrzvwQPCXh4OpAao+0M+1DW068UWJn4rSixtllBH+x0HG1L5rxbnMzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBCW0hM6z19wQ; Wed, 14 Jun 2023 16:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGkl10028522; Wed, 14 Jun 2023 16:46:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGkkX6028521; Wed, 14 Jun 2023 16:46:46 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:46:46 GMT Message-Id: <202306141646.35EGkkX6028521@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 104e8215cc75 - main - hwpmc: flatten conditional in pmc_process_exit() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 104e8215cc7529a767b480a395ce97cf7a7037f8 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=104e8215cc7529a767b480a395ce97cf7a7037f8 commit 104e8215cc7529a767b480a395ce97cf7a7037f8 Author: Mitchell Horne AuthorDate: 2023-06-14 16:33:46 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:34:21 +0000 hwpmc: flatten conditional in pmc_process_exit() Use a goto to clarify the control flow when there is no process descriptor. This wins back a level of indentation. No functional change intended. Reviewed by: jkoshy MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40518 --- sys/dev/hwpmc/hwpmc_mod.c | 187 ++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 99 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c index b6e7baf1e7cd..781a2c116a40 100644 --- a/sys/dev/hwpmc/hwpmc_mod.c +++ b/sys/dev/hwpmc/hwpmc_mod.c @@ -4997,16 +4997,14 @@ pmc_process_exit(void *arg __unused, struct proc *p) p->p_comm); /* - * Since this code is invoked by the last thread in an exiting - * process, we would have context switched IN at some prior - * point. However, with PREEMPTION, kernel mode context - * switches may happen any time, so we want to disable a - * context switch OUT till we get any PMCs targeting this - * process off the hardware. + * Since this code is invoked by the last thread in an exiting process, + * we would have context switched IN at some prior point. However, with + * PREEMPTION, kernel mode context switches may happen any time, so we + * want to disable a context switch OUT till we get any PMCs targeting + * this process off the hardware. * - * We also need to atomically remove this process' - * entry from our target process hash table, using - * PMC_FLAG_REMOVE. + * We also need to atomically remove this process' entry from our + * target process hash table, using PMC_FLAG_REMOVE. */ PMCDBG3(PRC,EXT,1, "process-exit proc=%p (%d, %s)", p, p->p_pid, p->p_comm); @@ -5014,117 +5012,108 @@ pmc_process_exit(void *arg __unused, struct proc *p) critical_enter(); /* no preemption */ cpu = curthread->td_oncpu; - if ((pp = pmc_find_process_descriptor(p, PMC_FLAG_REMOVE)) != NULL) { - PMCDBG2(PRC,EXT,2, - "process-exit proc=%p pmc-process=%p", p, pp); + pp = pmc_find_process_descriptor(p, PMC_FLAG_REMOVE); + if (pp == NULL) { + critical_exit(); + goto out; + } + + PMCDBG2(PRC,EXT,2, "process-exit proc=%p pmc-process=%p", p, pp); + /* + * The exiting process could be the target of some PMCs which will be + * running on currently executing CPU. + * + * We need to turn these PMCs off like we would do at context switch + * OUT time. + */ + for (ri = 0; ri < md->pmd_npmc; ri++) { /* - * The exiting process could the target of - * some PMCs which will be running on - * currently executing CPU. - * - * We need to turn these PMCs off like we - * would do at context switch OUT time. + * Pick up the pmc pointer from hardware state similar to the + * CSW_OUT code. */ - for (ri = 0; ri < md->pmd_npmc; ri++) { - /* - * Pick up the pmc pointer from hardware - * state similar to the CSW_OUT code. - */ - pm = NULL; - - pcd = pmc_ri_to_classdep(md, ri, &adjri); + pm = NULL; + pcd = pmc_ri_to_classdep(md, ri, &adjri); - (void)(*pcd->pcd_get_config)(cpu, adjri, &pm); + (void)(*pcd->pcd_get_config)(cpu, adjri, &pm); - PMCDBG2(PRC,EXT,2, "ri=%d pm=%p", ri, pm); + PMCDBG2(PRC,EXT,2, "ri=%d pm=%p", ri, pm); - if (pm == NULL || !PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm))) - continue; + if (pm == NULL || !PMC_IS_VIRTUAL_MODE(PMC_TO_MODE(pm))) + continue; - PMCDBG4(PRC,EXT,2, "ppmcs[%d]=%p pm=%p " - "state=%d", ri, pp->pp_pmcs[ri].pp_pmc, - pm, pm->pm_state); + PMCDBG4(PRC,EXT,2, "ppmcs[%d]=%p pm=%p state=%d", ri, + pp->pp_pmcs[ri].pp_pmc, pm, pm->pm_state); - KASSERT(PMC_TO_ROWINDEX(pm) == ri, - ("[pmc,%d] ri mismatch pmc(%d) ri(%d)", - __LINE__, PMC_TO_ROWINDEX(pm), ri)); - KASSERT(pm == pp->pp_pmcs[ri].pp_pmc, - ("[pmc,%d] pm %p != pp_pmcs[%d] %p", - __LINE__, pm, ri, pp->pp_pmcs[ri].pp_pmc)); - KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, - ("[pmc,%d] bad runcount ri %d rc %ju", - __LINE__, ri, - (uintmax_t)counter_u64_fetch(pm->pm_runcount))); + KASSERT(PMC_TO_ROWINDEX(pm) == ri, + ("[pmc,%d] ri mismatch pmc(%d) ri(%d)", __LINE__, + PMC_TO_ROWINDEX(pm), ri)); + KASSERT(pm == pp->pp_pmcs[ri].pp_pmc, + ("[pmc,%d] pm %p != pp_pmcs[%d] %p", __LINE__, pm, ri, + pp->pp_pmcs[ri].pp_pmc)); + KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, + ("[pmc,%d] bad runcount ri %d rc %ju", __LINE__, ri, + (uintmax_t)counter_u64_fetch(pm->pm_runcount))); - /* - * Change desired state, and then stop if not - * stalled. This two-step dance should avoid - * race conditions where an interrupt re-enables - * the PMC after this code has already checked - * the pm_stalled flag. - */ - if (pm->pm_pcpu_state[cpu].pps_cpustate) { - pm->pm_pcpu_state[cpu].pps_cpustate = 0; - if (!pm->pm_pcpu_state[cpu].pps_stalled) { - (void)pcd->pcd_stop_pmc(cpu, adjri, pm); - - if (PMC_TO_MODE(pm) == PMC_MODE_TC) { - pcd->pcd_read_pmc(cpu, adjri, - pm, &newvalue); - tmp = newvalue - - PMC_PCPU_SAVED(cpu, ri); - - mtx_pool_lock_spin(pmc_mtxpool, - pm); - pm->pm_gv.pm_savedvalue += tmp; - pp->pp_pmcs[ri].pp_pmcval += - tmp; - mtx_pool_unlock_spin( - pmc_mtxpool, pm); - } + /* + * Change desired state, and then stop if not stalled. This + * two-step dance should avoid race conditions where an + * interrupt re-enables the PMC after this code has already + * checked the pm_stalled flag. + */ + if (pm->pm_pcpu_state[cpu].pps_cpustate) { + pm->pm_pcpu_state[cpu].pps_cpustate = 0; + if (!pm->pm_pcpu_state[cpu].pps_stalled) { + (void)pcd->pcd_stop_pmc(cpu, adjri, pm); + + if (PMC_TO_MODE(pm) == PMC_MODE_TC) { + pcd->pcd_read_pmc(cpu, adjri, pm, + &newvalue); + tmp = newvalue - PMC_PCPU_SAVED(cpu, ri); + + mtx_pool_lock_spin(pmc_mtxpool, pm); + pm->pm_gv.pm_savedvalue += tmp; + pp->pp_pmcs[ri].pp_pmcval += tmp; + mtx_pool_unlock_spin(pmc_mtxpool, pm); } } + } - KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, - ("[pmc,%d] runcount is %d", __LINE__, ri)); + KASSERT(counter_u64_fetch(pm->pm_runcount) > 0, + ("[pmc,%d] runcount is %d", __LINE__, ri)); - counter_u64_add(pm->pm_runcount, -1); - (void)pcd->pcd_config_pmc(cpu, adjri, NULL); - } + counter_u64_add(pm->pm_runcount, -1); + (void)pcd->pcd_config_pmc(cpu, adjri, NULL); + } - /* - * Inform the MD layer of this pseudo "context switch - * out" - */ - (void)md->pmd_switch_out(pmc_pcpu[cpu], pp); + /* + * Inform the MD layer of this pseudo "context switch out". + */ + (void)md->pmd_switch_out(pmc_pcpu[cpu], pp); - critical_exit(); /* ok to be pre-empted now */ + critical_exit(); /* ok to be pre-empted now */ - /* - * Unlink this process from the PMCs that are - * targeting it. This will send a signal to - * all PMC owner's whose PMCs are orphaned. - * - * Log PMC value at exit time if requested. - */ - for (ri = 0; ri < md->pmd_npmc; ri++) { - if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { - if ((pm->pm_flags & PMC_F_NEEDS_LOGFILE) != 0 && - PMC_IS_COUNTING_MODE(PMC_TO_MODE(pm))) { - pmclog_process_procexit(pm, pp); - } - pmc_unlink_target_process(pm, pp); + /* + * Unlink this process from the PMCs that are targeting it. This will + * send a signal to all PMC owner's whose PMCs are orphaned. + * + * Log PMC value at exit time if requested. + */ + for (ri = 0; ri < md->pmd_npmc; ri++) { + if ((pm = pp->pp_pmcs[ri].pp_pmc) != NULL) { + if ((pm->pm_flags & PMC_F_NEEDS_LOGFILE) != 0 && + PMC_IS_COUNTING_MODE(PMC_TO_MODE(pm))) { + pmclog_process_procexit(pm, pp); } + pmc_unlink_target_process(pm, pp); } - free(pp, M_PMC); - } else - critical_exit(); /* pp == NULL */ + } + free(pp, M_PMC); +out: /* - * If the process owned PMCs, free them up and free up - * memory. + * If the process owned PMCs, free them up and free up memory. */ if ((po = pmc_find_owner_descriptor(p)) != NULL) { pmc_remove_owner(po); From nobody Wed Jun 14 16:55:41 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhBPp1pnLz4dJSW; Wed, 14 Jun 2023 16:55:42 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhBPp1LWVz3FMN; Wed, 14 Jun 2023 16:55:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sH8iin7wP8XX8OTqRwBrW0tNACkpCedh2KHIP8Aq8rk=; b=JthnsF/82LA4gXcYrfwH4l53+rIOc4CcIkn6wdafmVBCkRGLNqqL00F7lrY/iQLA2TVUQe tUlVEqxF5+txNhseykVtyq7B8Gro4eyxGlbreI0K+l2qjR0hQLrtdIMl6acuzQjY4Z1rVh EHFQEtWQVcD9JUMKX4FRBDp/OID4wEBNQxitfFFgqxKpLA6G0Tzi9vQCxxdGB9T2/TK9xj k55nH91c94mnGf3ShBoqp2xUtEZhp1zSX7ci8FJvvpTiVzoQD/gBjCuORXFAxnSTHp4rPs wtbsyfwrbXZupfusWokfrQSDe9ykKIfYQbRqaj1yMMypR438UlhDTINGYslTEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686761742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sH8iin7wP8XX8OTqRwBrW0tNACkpCedh2KHIP8Aq8rk=; b=nrteUC1d/Mdq0EnreWlCW55zE9uPKwzrUmv60MPsylxVsBD9y4uuUCtdF3UxVT4Xv66CiT d3Gz4pDFD6hH7m77o2f4jEEIFsaiQIzlqIWaaR1zuRGfN4hacA09ttkR7JvFwt+17AR6EI 5sPnN5vnAv4XdrO+mnVr7BqlzZcQgRLqIFTGLUkXTkWzwKBuwAlptcRmaUE4b83KXumivu 0U6/jc0KFAPR2DhvhxR3S0iDLgOQzNj0m2SmC9b46uE09ziGaae+p8el1SbR1IC+uJ3CL9 WDurlHWQ3IjBnqGovhYbkb23m2q4zQUEdcXAz5G4bXLZwcp86BfE3bB+P7b1Gw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686761742; a=rsa-sha256; cv=none; b=Nyo5ed48q6PV5PCg12xF5NikUWRH4c7pI96aBmOmIYhOnA+tJQvucjtiaZ9Bl/lZ6GsCHn 3G7MtTtjBNQMpPqYuJr9inE9nySiYnzN1yKSD5vYNfhH7NsKzvVADQ0Q3ieF+W2DUEapug re4yxImkUrVOKNuQe8EsS6vphHkENrAn98kZqTZjs6+Mm8w004aVbHHOKIJG0FRshg98VM GtUjjJWgcJxm0S6nW5hoPPGcel+E8dc5TRPrbYml8bRcLhd/RY6Yk7tZxpSOsu1DIGQxAL STPaS6rHwO1WbEQo5sjtyX15Id1hWbLLw4oiRhMa4Jus1WqcznC2+nzj4XGRsA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhBPp0PzBz19xD; Wed, 14 Jun 2023 16:55:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EGtfS6044644; Wed, 14 Jun 2023 16:55:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EGtf2F044643; Wed, 14 Jun 2023 16:55:41 GMT (envelope-from git) Date: Wed, 14 Jun 2023 16:55:41 GMT Message-Id: <202306141655.35EGtf2F044643@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: 894492f5bf4e - stable/13 - linuxkpi: #ifdef guard fpu_kern(9) usage List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 894492f5bf4e74f49a927f4c584779aeed983cc7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=894492f5bf4e74f49a927f4c584779aeed983cc7 commit 894492f5bf4e74f49a927f4c584779aeed983cc7 Author: Mitchell Horne AuthorDate: 2023-06-12 13:51:16 +0000 Commit: Mitchell Horne CommitDate: 2023-06-14 16:54:52 +0000 linuxkpi: #ifdef guard fpu_kern(9) usage The recent revert of 8ca78eb03fd4 removed the guards around these calls. As a result, LINT builds for architectures which do not implement this API on the branch are failing -- armv7, powerpc, powerpc64, riscv. This is a direct commit to stable/13. Fixes: fa6603d4a725 (Revert "LinuxKPI: Make FPU sections thread-safe...") Differential Revision: https://reviews.freebsd.org/D40497 --- sys/compat/linuxkpi/common/src/linux_fpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_fpu.c b/sys/compat/linuxkpi/common/src/linux_fpu.c index 976e55e68ca1..2f05ef94d5ac 100644 --- a/sys/compat/linuxkpi/common/src/linux_fpu.c +++ b/sys/compat/linuxkpi/common/src/linux_fpu.c @@ -30,6 +30,7 @@ #include #include +#if defined(__aarch64__) || defined(__amd64__) || defined(__i386__) #include struct fpu_kern_ctx *__lkpi_fpu_ctx; @@ -48,3 +49,4 @@ linux_fpu_uninit(void *arg __unused) fpu_kern_free_ctx(__lkpi_fpu_ctx); } SYSUNINIT(linux_fpu, SI_SUB_EVENTHANDLER, SI_ORDER_SECOND, linux_fpu_uninit, NULL); +#endif From nobody Wed Jun 14 18:32:08 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhDY46RXyz4dWZB; Wed, 14 Jun 2023 18:32:08 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhDY45tj3z3P1X; Wed, 14 Jun 2023 18:32:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686767528; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C7IyeyIks7GGMwK0doyxBpvCakBy6yKN4VTjXDKuhf8=; b=MV1Dd4z5H0ohHgEqoevwOv0ephGN5uhguPTonbMDZdmJN8jzl4t3JSBTXHaFkcV+7cIWZ/ OzFATxyuwnB0h2RO+8Pyb0IRx9Gp7+VG80k3SZGNmWn8g7WLALRihSQ0uOb/gv02vBFc30 zfScNWP5xzNBYjBmgY3pzDZbggNEhZYxLFB99b70YtLLEI270ua4JBUOPLChDDmI+6eIYD KURSKmkV5xSzJUq+yriNOVWzSQk8zAv1iTxein6BJmax1v/XqZxRMQIJdNHevT3uXJKZuT VSIKOzVAT8GhtbRAdZeC/Pbm9zXZji3oBiLl+tDJxPb7Yp4HysUzA4lz/pTVBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686767528; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C7IyeyIks7GGMwK0doyxBpvCakBy6yKN4VTjXDKuhf8=; b=H4NDfir0yI02aWwXCLgXwvqHo4f7nlAPNpnTmUHi4XI8d5mJUnlmn0GBPsgl62zLl0KuB5 ov02fZIU+IAherFQFth9Fzqh7gog89QZNHqsFsu1eJ6LZITXv1iC4zpL+kaGo2lG1RRE5j Mr9t+C4BqhlP3mEzpMGkzv/yGo/i3xy+DfRgGotr8gmaMG72RcybI4W9WU8mNl9Iw5x0ry lzoYyArjw58woRRXZuFda8bb6TY/AWiD26RutHsONnhGOhiKJ4dHnSCEhtMGoWRSzrR8VO hBCYJcMRmHUFQTYcWZqbZuS9HuvC6BlXt1XgSJMuJA9RSM7MqKg+i74G/i8huA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686767528; a=rsa-sha256; cv=none; b=Pe+n6w/CLg8AS3lUD36B3F6pM6ZggtMFWgpktBESmBqV/DsV710yaEX/2NQxjxD0yVQrBG c98hFrR8xcLooSN+P7RYlRHTWvdbV5ia4TaX6yn3hvR6YtK19ar5T0RBT1/Yy1YdF0xW0L ZTDPvvyn9xB2LeqowJEV4QalPYBnM3/4fCQRDKuhXei44ANbeAM24CDbM3PcHU7N4Y1pW5 Jwn+RREi5cI3z7K9P8wqjWklzAdzOVlkkHgTrU9lZO/9MIlQqn9B+YVNo3vLRGiv+6hGJl ZbV8ZBQkYUIdq/Ympt+TYS7nBzMbN5iz0ysgYwZ/nc8PoiFbtdyUNCi5cHxSow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhDY44xmmzDyd; Wed, 14 Jun 2023 18:32:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EIW8aq006452; Wed, 14 Jun 2023 18:32:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EIW8ZW006451; Wed, 14 Jun 2023 18:32:08 GMT (envelope-from git) Date: Wed, 14 Jun 2023 18:32:08 GMT Message-Id: <202306141832.35EIW8ZW006451@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: bcf9147144f3 - main - EC2: Default to "uefi-preferred" boot mode List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bcf9147144f3499976a623f92712ecd0aca71912 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=bcf9147144f3499976a623f92712ecd0aca71912 commit bcf9147144f3499976a623f92712ecd0aca71912 Author: Colin Percival AuthorDate: 2023-06-07 22:17:12 +0000 Commit: Colin Percival CommitDate: 2023-06-14 18:31:10 +0000 EC2: Default to "uefi-preferred" boot mode In EC2, UEFI boots faster than BIOS, but not all amd64 instance types support UEFI. AMIs need to have their boot mode designated, which created a dilemma: Faster boots, or wider compatibility? The recently added "uefi-preferred" option solves this: AMIs can be marked to use UEFI where it's available, but fall back to BIOS on instance types which do not support UEFI. This uses bsdec2-image-upload 1.4.6, which recently landed in the ports tree. PR: 265697 Reviewed by: delphij, imp MFC after: 1 week Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D40470 --- release/Makefile.ec2 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/release/Makefile.ec2 b/release/Makefile.ec2 index b29f54715fb3..e26f4f705cc6 100644 --- a/release/Makefile.ec2 +++ b/release/Makefile.ec2 @@ -25,11 +25,14 @@ SSMOPTS= --ssm-name ${SSMPREFIX}/${TARGET_ARCH:S/aarch64/arm64/}/base/ufs/${REVI EC2ARCH= --${TARGET_ARCH:S/aarch64/arm64/} .endif .if !defined(AMIBOOTMETHOD) -AMIBOOTMETHOD= UEFI +AMIBOOTMETHOD= UEFI-PREFERRED .endif .if ${AMIBOOTMETHOD} == "UEFI" && ${TARGET_ARCH} == "amd64" BOOTMODEOPT= --uefi .endif +.if ${AMIBOOTMETHOD} == "UEFI-PREFERRED" && ${TARGET_ARCH} == "amd64" +BOOTMODEOPT= --uefi-preferred +.endif CLEANFILES+= ec2ami From nobody Wed Jun 14 21:22:34 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhJKl208yz4djkM; Wed, 14 Jun 2023 21:22:35 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhJKl0pL0z4FXv; Wed, 14 Jun 2023 21:22:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686777755; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aa922OktGnqohhhx0T11g0WxlCzNulut03gjNlEeY7o=; b=uyxFlJWIc+NBZVuPHGKWB/oTuIo+JQ8VxIBx6viwY6810xoNB4YyUhvDVQmxZrItli7ANH sabqbCLhCSmbaXQqQi7XGZO9drkBcGOYzEWxI2AWE+5LwDIwZi/2yiaKgaGeFu0Ktsp4cR D0x7jp9GASIR4LNlahC/LyDZ5t52BG428txjcTTSaS/YftP9IjItlK8MmSrSIz/i3EW0Zf 57/ogugBMcCjhvb4likRFfDeyuvrBH2e57WoCFBS6v+LxzviD8SKG3td2yexFgSv3CqsT7 Ls2H2Rmc7fa1ZxWCMOmHLmVAyA0lq2ik4TK6dPM6/cOdkZx2QuIhOMizP8Ls0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686777755; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aa922OktGnqohhhx0T11g0WxlCzNulut03gjNlEeY7o=; b=gYQvmANgk1CMT5yv/lgBISG65HdWY2chJ2PgeD5wBk6lO0AEFti0LQEKL5/t8A3WkuH5dJ KflacKKSB9taLGgKWRCp6dP2dN5n68ZiXCS2pR5nnBNKBUqTgdK1ffMRyCz0xnscV7MNvd hSy0cXgJOWBQR4ezyPMe3WJerU891Uji5X/o1Dag6Guq7H+ohj0Y1tmBI4Phwnaxff4EDV AMrMOJnWcL8gBbwT967p6xOj5NBkYnR7AvR9PMTuWi79Z7Lb44yI98af22nlcaW2YuqVze P5kBinV61ZUlY0KA7aJjteqa4YXYodF0+RHs5hlVxuAMDIoyAvoq1ruTl/oxWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686777755; a=rsa-sha256; cv=none; b=qD4yIfNXK2uSRwqWGm8xD0ULlSeOVrXzYtPWT3QA/Psmvd0+TarLDGXHcH3HhCe8jm3qPE L0JXbvqBMnJbdP3ut8A2BSz80o1FremAlqZ1njRG+ZsuhFRbqgQrgdGj+J1BokCofFHe7j B6MkvQfhqhwuwuXJuwTTGhEHa5hwYywCEWTm2yJnTgBfjEHhvrtCT+AZ0mE8ai9mkpdS1J fBZeGtyb0QHVt350QJgsH2eHji3Ttg1s+xsFcE2akl4KHFYLAYWnEXNgxrgePw/mb/a/eW w9DCImtv+Y39zuQg0W5KqROpfQLgcY4/6c8LsNVKi2hCTtxNnX3vroPLhxrkHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhJKk720TzKj1; Wed, 14 Jun 2023 21:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35ELMYT5090369; Wed, 14 Jun 2023 21:22:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35ELMYCs090368; Wed, 14 Jun 2023 21:22:34 GMT (envelope-from git) Date: Wed, 14 Jun 2023 21:22:34 GMT Message-Id: <202306142122.35ELMYCs090368@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 6eb2dbfa63e8 - main - tcp: add missing static keywords List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6eb2dbfa63e87a1cf624a44d97ebab9c9b63a474 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=6eb2dbfa63e87a1cf624a44d97ebab9c9b63a474 commit 6eb2dbfa63e87a1cf624a44d97ebab9c9b63a474 Author: Gleb Smirnoff AuthorDate: 2023-06-14 21:21:28 +0000 Commit: Gleb Smirnoff CommitDate: 2023-06-14 21:21:28 +0000 tcp: add missing static keywords Without them compilation with -O0 would produce kernel modules that depend on symbol that doesn't exist. --- sys/netinet/tcp_hpts.h | 2 +- sys/netinet/tcp_stacks/tcp_rack.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/netinet/tcp_hpts.h b/sys/netinet/tcp_hpts.h index 086669342bb8..6f4d40897563 100644 --- a/sys/netinet/tcp_hpts.h +++ b/sys/netinet/tcp_hpts.h @@ -192,7 +192,7 @@ tcp_tv_to_lusectick(const struct timeval *sv) extern int32_t tcp_min_hptsi_time; -__inline int32_t +static inline int32_t get_hpts_min_sleep_time(void) { return (tcp_min_hptsi_time + HPTS_TICKS_PER_SLOT); diff --git a/sys/netinet/tcp_stacks/tcp_rack.h b/sys/netinet/tcp_stacks/tcp_rack.h index ac9d759d0628..00906363437d 100644 --- a/sys/netinet/tcp_stacks/tcp_rack.h +++ b/sys/netinet/tcp_stacks/tcp_rack.h @@ -109,13 +109,13 @@ struct deferred_opt_list { * as well. */ -inline uint64_t +static inline uint64_t rack_to_usec_ts(struct timeval *tv) { return ((tv->tv_sec * HPTS_USEC_IN_SEC) + tv->tv_usec); } -inline uint32_t +static inline uint32_t rack_ts_to_msec(uint64_t ts) { return((uint32_t)(ts / HPTS_MSEC_IN_SEC)); From nobody Wed Jun 14 23:01:12 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhLWY1b7xz4cZy3; Wed, 14 Jun 2023 23:01:13 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhLWY15Dnz4W5B; Wed, 14 Jun 2023 23:01:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686783673; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hXfM5b9TWvXuzpOpflvxRdYRSJ4e+LrPPPcJqo+uGpc=; b=gCU4s3SPGvfoNpLHvTSKOTR1U9qc6Z/yheB5Dw3qR6b1mgLvN2Lbf6fg5JiY0SIPOgEwBQ bRnWfaNwzSw8OQaw+GIaPlnvO8lZvjSXmY12R7dM7n4JXvVnu8n2Lr1JSlZmRIzhcbuuv3 Yx8o93nw6M6oOAUwDYNffWyyTv55pFKyBE1eQxmuG297qGxBkjL/v1WoczFLyW9Q11v6eZ 4Adzmv2hJDNnXqLT0DLra5ojWnfq8aiMW9ofNYe9tIpPEGXqMLSKnfs/U9DPv33bVQYL1w Lyw07iBWcSbGrV2o+v9SvohRCa/Y+G65GC1n5hMApFzn7M4O/M9LFPmfx2gr0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686783673; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hXfM5b9TWvXuzpOpflvxRdYRSJ4e+LrPPPcJqo+uGpc=; b=imtXMDQdbFmMsjaBOITRF59Y+b5JXoMKTd0cbjWOxSadtVLoR3RAPmgotFxYdMNW19WRZm Joxf+IyOg9v3h5ApoboMeU7oFI7I3oEjwEbeKjdYHq8fZuN80t90PfBKtiGGE04B+8Ukmy 94j4gvxA0pf0onSJVVy0v+cLkAA6QTqKdt27+gYwYWhGoUnWrMQPOE0tqNsUVfcsd2/GPd XkE+p8jwAUl8HeagO2k9QxBAuT9zLLFqu2EWa4keMnykJZzcyrl72jEpg1PP8+cZv25XPF jpgFjgbsuJR/LM6nBxl3urJ4cKe5S8wT6KWAdyZU33F3v6gqFsGQQoJd9d9eZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686783673; a=rsa-sha256; cv=none; b=FwEn2OJNHA5WYYuxPNJWPvofLdp1Bl/k7EmeZzDDQFs4nmandr3nYYriOjCIqw5iIn50L9 TthpuR6EDyL10vcpIfM9dNsUaGPSL43uAXEu5OwDaoW+ODBrnoJljRpBANQjRg05PfJXaN meupZ6uplGXjA/b8zl+GUj6hEsRMFD94oW4QAvL98lKp9vcOnVI+UAmKi8VodxGF5TPgAZ WynxLyc1tRtqAcyLJ9pKfsVyG2e4Nne0ucJTIPs9TWp6FCuBxjnmbZUazV1atk3PyVeHm8 ulxDdEP4e0hdNMp7r3lhKW9BU1y8mG0YeChF5d1nQ3JZ0nSK9OP3vtyoxvw5oA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhLWY08JLzN26; Wed, 14 Jun 2023 23:01:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35EN1C2X052360; Wed, 14 Jun 2023 23:01:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35EN1C2l052359; Wed, 14 Jun 2023 23:01:12 GMT (envelope-from git) Date: Wed, 14 Jun 2023 23:01:12 GMT Message-Id: <202306142301.35EN1C2l052359@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jessica Clarke Subject: git: 456c1199d3b3 - main - resizewin: Stop printing bogus NUL to TTY List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 456c1199d3b3ee477463c6469940c0370de2b2ea Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=456c1199d3b3ee477463c6469940c0370de2b2ea commit 456c1199d3b3ee477463c6469940c0370de2b2ea Author: Jessica Clarke AuthorDate: 2023-06-14 22:58:36 +0000 Commit: Jessica Clarke CommitDate: 2023-06-14 22:58:36 +0000 resizewin: Stop printing bogus NUL to TTY A char array has an implicit NUL terminating it, which sizeof will include, so we need to subtract 1 here. Printing a NUL can cause issues for things like CI environments that aren't expecting it, especially with recent Jenkins being stricter about not putting NUL in XML files. Fixes: 3d222369acbe ("Add a small tool, resizewin(1), to query terminal for window size") MFC after: 1 week --- usr.bin/resizewin/resizewin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/resizewin/resizewin.c b/usr.bin/resizewin/resizewin.c index b6df862b8a49..e53364cf1254 100644 --- a/usr.bin/resizewin/resizewin.c +++ b/usr.bin/resizewin/resizewin.c @@ -101,7 +101,7 @@ main(int argc, char **argv) if (tcsetattr(fd, TCSAFLUSH, &new) == -1) exit(1); - if (write(fd, query, sizeof(query)) != sizeof(query)) { + if (write(fd, query, sizeof(query) - 1) != sizeof(query) - 1) { error = 1; goto out; } From nobody Thu Jun 15 04:31:03 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhTr81nTyz4d5CD; Thu, 15 Jun 2023 04:31:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhTr81cSPz3LX4; Thu, 15 Jun 2023 04:31:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686803464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j8lBpIg9CsbBmvSRn/Ps9lR7G0EErkCu+NgGDfbOKVw=; b=oEDZKY4TfOdz4uCbaV+0WsHv2ohKA14elstFyVdvnLS3DGkILwJQnsCv2oU/GHr7we05+A 75ZV8rzu8s/zKHfYL7dhUKYjrHFDWKa3BgxzSvW8Ydt93/fHa5ZcvuATAlKovzm5CQsqio DZ5X9oYavE2lhjdTqumzWcg5aIyrtvyJQSvkQGe40m00tU0m1INHbxekrCt6u7bGBpBs/J 43cZQ4vLH/dxuhZr6uZnCCE7S5n+1ftsdWdoanRJKmIHp9fM2aMUZoM8hiR7eNP4anFWHm bHVo3lo3hTy1a5sIIjDH00DZMnHlSZjyXdSzdjoVdd5AJYQ7rORGUolOuIxbGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686803464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j8lBpIg9CsbBmvSRn/Ps9lR7G0EErkCu+NgGDfbOKVw=; b=OF/VLhe8XWdTsnudbyUiQVVIZQe1V30VLtH0Izh5RfrcdBmsCX8UT3s0hJpIydqv39RnB6 Thb+6eSspvUcxGAQtick6tTSaiAGDk4djouBigsl7rM89YymoBnS12xuYQ9Tqwod3J/qxv FQaVxToEA5kB1I5S8yKQ9FL/LupPDxPwFu/fCj3cSJfoCWGppIetTf9Y50a/9zv4zCTCES Oubarf1E4rWAJ6rv5wyb6t9aE+cxjuyNZ61aoMUejMe4vomh7c3wV/y3MCDKrdKVX6D8J3 UhH0RPdnA7Oos7Ts92AjZgqM+mZdqnmBdnIcv4VsUK16YSgO4NTIFxT0KvTW3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686803464; a=rsa-sha256; cv=none; b=X/Euiid35Vd0WapSEId/ttkYj10+0hmvVhDfhmOS/NdW1RLSb+kKOnZqxycheBCXirM7vG oI3EMWd1VX+1NcPrujDyKxm3ei1Sj6YpaXr60QYaI3aY8QvwG3DrOtl4jToI/B6mp3flX8 mdaMqyxhuwrGs3MYgMvm8pb8X6jyiJHVTY0/Cq4EP1b0OAXTHRJSHt+AzF63JuNbkLUprl YP8WKIvUp3J1Z3fk4SveZDHFwNH+/ZhV+TIeu2w/ZYdZAbgFeKyLN2beATThIuKaf00vhr 4IgO7V/UyVIyPUCNZl9Dm6uUj3SLYDGXD1Nlb+ZDJ5OnqMB2LAMHc7cR0nLuuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhTr80NYrzXSH; Thu, 15 Jun 2023 04:31:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35F4V3Ov093483; Thu, 15 Jun 2023 04:31:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35F4V3ok093482; Thu, 15 Jun 2023 04:31:03 GMT (envelope-from git) Date: Thu, 15 Jun 2023 04:31:03 GMT Message-Id: <202306150431.35F4V3ok093482@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: f5e5dcdbeb69 - main - caroot: update the root bundle List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f5e5dcdbeb699bda5a43c5600b522108cc612ac8 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=f5e5dcdbeb699bda5a43c5600b522108cc612ac8 commit f5e5dcdbeb699bda5a43c5600b522108cc612ac8 Author: Kyle Evans AuthorDate: 2023-06-15 04:26:23 +0000 Commit: Kyle Evans CommitDate: 2023-06-15 04:30:19 +0000 caroot: update the root bundle Summary: - Zero (0) newly trusted - Five (5) modified - Nine (9) distrusted MFC after: 3 days --- ObsoleteFiles.inc | 11 ++ secure/caroot/trusted/GTS_Root_R1.pem | 122 ++++++++++----------- secure/caroot/trusted/GTS_Root_R2.pem | 122 ++++++++++----------- secure/caroot/trusted/GTS_Root_R3.pem | 40 +++---- secure/caroot/trusted/GTS_Root_R4.pem | 40 +++---- .../caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem | 35 +++--- .../Cybertrust_Global_Root.pem | 0 .../{trusted => untrusted}/DST_Root_CA_X3.pem | 0 .../GlobalSign_Root_CA_-_R2.pem | 0 ...demic_and_Research_Institutions_RootCA_2011.pem | 0 .../Network_Solutions_Certificate_Authority.pem | 0 .../Staat_der_Nederlanden_EV_Root_CA.pem | 0 .../{trusted => untrusted}/TrustCor_ECA-1.pem | 0 .../TrustCor_RootCert_CA-1.pem | 0 .../TrustCor_RootCert_CA-2.pem | 0 15 files changed, 190 insertions(+), 180 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index a67a95325dfd..9c054be72345 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -52,6 +52,17 @@ # xargs -n1 | sort | uniq -d; # done +# 20230614: caroot bundle updated +OLD_FILES+=usr/share/certs/trusted/Cybertrust_Global_Root.pem +OLD_FILES+=usr/share/certs/trusted/DST_Root_CA_X3.pem +OLD_FILES+=usr/share/certs/trusted/GlobalSign_Root_CA_-_R2.pem +OLD_FILES+=usr/share/certs/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem +OLD_FILES+=usr/share/certs/trusted/Network_Solutions_Certificate_Authority.pem +OLD_FILES+=usr/share/certs/trusted/Staat_der_Nederlanden_EV_Root_CA.pem +OLD_FILES+=usr/share/certs/trusted/TrustCor_ECA-1.pem +OLD_FILES+=usr/share/certs/trusted/TrustCor_RootCert_CA-1.pem +OLD_FILES+=usr/share/certs/trusted/TrustCor_RootCert_CA-2.pem + # 20230505: md5 tests are now self-contained OLD_FILES+=usr/tests/sbin/md5/1.inp OLD_FILES+=usr/tests/sbin/md5/1.sha512-p.chk diff --git a/secure/caroot/trusted/GTS_Root_R1.pem b/secure/caroot/trusted/GTS_Root_R1.pem index deb77731627f..4def2f4c2b7f 100644 --- a/secure/caroot/trusted/GTS_Root_R1.pem +++ b/secure/caroot/trusted/GTS_Root_R1.pem @@ -16,7 +16,7 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 6e:47:a9:c5:4b:47:0c:0d:ec:33:d0:89:b9:1c:f4:e1 + 02:03:e5:93:6f:31:b0:13:49:88:6b:a2:17 Signature Algorithm: sha384WithRSAEncryption Issuer: C = US, O = Google Trust Services LLC, CN = GTS Root R1 Validity @@ -65,70 +65,70 @@ Certificate: Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical - Certificate Sign, CRL Sign + Digital Signature, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: E4:AF:2B:26:71:1A:2B:48:27:85:2F:52:66:2C:EF:F0:89:13:71:3E Signature Algorithm: sha384WithRSAEncryption - 38:96:0a:ee:3d:b4:96:1e:5f:ef:9d:9c:0b:33:9f:2b:e0:ca: - fd:d2:8e:0a:1f:41:74:a5:7c:aa:84:d4:e5:f2:1e:e6:37:52: - 32:9c:0b:d1:61:1d:bf:28:c1:b6:44:29:35:75:77:98:b2:7c: - d9:bd:74:ac:8a:68:e3:a9:31:09:29:01:60:73:e3:47:7c:53: - a8:90:4a:27:ef:4b:d7:9f:93:e7:82:36:ce:9a:68:0c:82:e7: - cf:d4:10:16:6f:5f:0e:99:5c:f6:1f:71:7d:ef:ef:7b:2f:7e: - ea:36:d6:97:70:0b:15:ee:d7:5c:56:6a:33:a5:e3:49:38:0c: - b8:7d:fb:8d:85:a4:b1:59:5e:f4:6a:e1:dd:a1:f6:64:44:ae: - e6:51:83:21:66:c6:11:3e:f3:ce:47:ee:9c:28:1f:25:da:ff: - ac:66:95:dd:35:0f:5c:ef:20:2c:62:fd:91:ba:a9:cc:fc:5a: - 9c:93:81:83:29:97:4a:7c:5a:72:b4:39:d0:b7:77:cb:79:fd: - 69:3a:92:37:ed:6e:38:65:46:7e:e9:60:bd:79:88:97:5f:38: - 12:f4:ee:af:5b:82:c8:86:d5:e1:99:6d:8c:04:f2:76:ba:49: - f6:6e:e9:6d:1e:5f:a0:ef:27:82:76:40:f8:a6:d3:58:5c:0f: - 2c:42:da:42:c6:7b:88:34:c7:c1:d8:45:9b:c1:3e:c5:61:1d: - d9:63:50:49:f6:34:85:6a:e0:18:c5:6e:47:ab:41:42:29:9b: - f6:60:0d:d2:31:d3:63:98:23:93:5a:00:81:48:b4:ef:cd:8a: - cd:c9:cf:99:ee:d9:9e:aa:36:e1:68:4b:71:49:14:36:28:3a: - 3d:1d:ce:9a:8f:25:e6:80:71:61:2b:b5:7b:cc:f9:25:16:81: - e1:31:5f:a1:a3:7e:16:a4:9c:16:6a:97:18:bd:76:72:a5:0b: - 9e:1d:36:e6:2f:a1:2f:be:70:91:0f:a8:e6:da:f8:c4:92:40: - 6c:25:7e:7b:b3:09:dc:b2:17:ad:80:44:f0:68:a5:8f:94:75: - ff:74:5a:e8:a8:02:7c:0c:09:e2:a9:4b:0b:a0:85:0b:62:b9: - ef:a1:31:92:fb:ef:f6:51:04:89:6c:e8:a9:74:a1:bb:17:b3: - b5:fd:49:0f:7c:3c:ec:83:18:20:43:4e:d5:93:ba:b4:34:b1: - 1f:16:36:1f:0c:e6:64:39:16:4c:dc:e0:fe:1d:c8:a9:62:3d: - 40:ea:ca:c5:34:02:b4:ae:89:88:33:35:dc:2c:13:73:d8:27: - f1:d0:72:ee:75:3b:22:de:98:68:66:5b:f1:c6:63:47:55:1c: - ba:a5:08:51:75:a6:48:25 -SHA1 Fingerprint=E1:C9:50:E6:EF:22:F8:4C:56:45:72:8B:92:20:60:D7:D5:A7:A3:E8 + 9f:aa:42:26:db:0b:9b:be:ff:1e:96:92:2e:3e:a2:65:4a:6a: + 98:ba:22:cb:7d:c1:3a:d8:82:0a:06:c6:f6:a5:de:c0:4e:87: + 66:79:a1:f9:a6:58:9c:aa:f9:b5:e6:60:e7:e0:e8:b1:1e:42: + 41:33:0b:37:3d:ce:89:70:15:ca:b5:24:a8:cf:6b:b5:d2:40: + 21:98:cf:22:34:cf:3b:c5:22:84:e0:c5:0e:8a:7c:5d:88:e4: + 35:24:ce:9b:3e:1a:54:1e:6e:db:b2:87:a7:fc:f3:fa:81:55: + 14:62:0a:59:a9:22:05:31:3e:82:d6:ee:db:57:34:bc:33:95: + d3:17:1b:e8:27:a2:8b:7b:4e:26:1a:7a:5a:64:b6:d1:ac:37: + f1:fd:a0:f3:38:ec:72:f0:11:75:9d:cb:34:52:8d:e6:76:6b: + 17:c6:df:86:ab:27:8e:49:2b:75:66:81:10:21:a6:ea:3e:f4: + ae:25:ff:7c:15:de:ce:8c:25:3f:ca:62:70:0a:f7:2f:09:66: + 07:c8:3f:1c:fc:f0:db:45:30:df:62:88:c1:b5:0f:9d:c3:9f: + 4a:de:59:59:47:c5:87:22:36:e6:82:a7:ed:0a:b9:e2:07:a0: + 8d:7b:7a:4a:3c:71:d2:e2:03:a1:1f:32:07:dd:1b:e4:42:ce: + 0c:00:45:61:80:b5:0b:20:59:29:78:bd:f9:55:cb:63:c5:3c: + 4c:f4:b6:ff:db:6a:5f:31:6b:99:9e:2c:c1:6b:50:a4:d7:e6: + 18:14:bd:85:3f:67:ab:46:9f:a0:ff:42:a7:3a:7f:5c:cb:5d: + b0:70:1d:2b:34:f5:d4:76:09:0c:eb:78:4c:59:05:f3:33:42: + c3:61:15:10:1b:77:4d:ce:22:8c:d4:85:f2:45:7d:b7:53:ea: + ef:40:5a:94:0a:5c:20:5f:4e:40:5d:62:22:76:df:ff:ce:61: + bd:8c:23:78:d2:37:02:e0:8e:de:d1:11:37:89:f6:bf:ed:49: + 07:62:ae:92:ec:40:1a:af:14:09:d9:d0:4e:b2:a2:f7:be:ee: + ee:d8:ff:dc:1a:2d:de:b8:36:71:e2:fc:79:b7:94:25:d1:48: + 73:5b:a1:35:e7:b3:99:67:75:c1:19:3a:2b:47:4e:d3:42:8e: + fd:31:c8:16:66:da:d2:0c:3c:db:b3:8e:c9:a1:0d:80:0f:7b: + 16:77:14:bf:ff:db:09:94:b2:93:bc:20:58:15:e9:db:71:43: + f3:de:10:c3:00:dc:a8:2a:95:b6:c2:d6:3f:90:6b:76:db:6c: + fe:8c:bc:f2:70:35:0c:dc:99:19:35:dc:d7:c8:46:63:d5:36: + 71:ae:57:fb:b7:82:6d:dc +SHA1 Fingerprint=E5:8C:1C:C4:91:3B:38:63:4B:E9:10:6E:E3:AD:8E:6B:9D:D9:81:4A -----BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM -f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX -mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7 -zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P -fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc -vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4 -Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp -zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO -Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW -k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+ -DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF -lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW -Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z -XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR -gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3 -d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv -J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg -DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM -+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy -F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9 -SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws -E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo +27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w +Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw +TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl +qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH +szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 +Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk +MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p +aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN +VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb +C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy +h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 +7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J +ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef +MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ +Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT +6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ +0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm +2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c -----END CERTIFICATE----- diff --git a/secure/caroot/trusted/GTS_Root_R2.pem b/secure/caroot/trusted/GTS_Root_R2.pem index 8660b40deb91..4bc8cff4c812 100644 --- a/secure/caroot/trusted/GTS_Root_R2.pem +++ b/secure/caroot/trusted/GTS_Root_R2.pem @@ -16,7 +16,7 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 6e:47:a9:c6:5a:b3:e7:20:c5:30:9a:3f:68:52:f2:6f + 02:03:e5:ae:c5:8d:04:25:1a:ab:11:25:aa Signature Algorithm: sha384WithRSAEncryption Issuer: C = US, O = Google Trust Services LLC, CN = GTS Root R2 Validity @@ -65,70 +65,70 @@ Certificate: Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical - Certificate Sign, CRL Sign + Digital Signature, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: BB:FF:CA:8E:23:9F:4F:99:CA:DB:E2:68:A6:A5:15:27:17:1E:D9:0E Signature Algorithm: sha384WithRSAEncryption - b6:69:f0:a6:77:fe:9e:ee:0b:81:ad:e1:c0:a9:c7:f9:35:1d: - 40:82:ab:e6:04:b4:df:cb:f7:1d:0f:83:f0:7e:13:4d:8d:8c: - ee:e3:33:22:c3:39:fc:40:df:6e:41:4b:42:53:be:16:88:f1: - d2:38:5e:c4:68:99:1c:98:52:93:8c:e7:68:ed:1b:6a:73:7a: - 05:40:4d:7f:65:3b:d6:58:f1:ce:83:47:60:e3:ff:97:a9:9c: - 60:77:18:55:b5:7e:08:93:cf:d0:f6:3c:67:03:15:61:09:f9: - 81:79:f5:ec:53:a4:9f:c9:8f:01:8b:73:c4:77:76:dc:83:a2: - f5:0c:49:1a:a8:76:de:92:9b:64:f8:b3:2c:c5:27:d3:07:c0: - 08:80:a4:98:92:e3:01:96:02:aa:02:ee:8f:3b:c5:d1:6d:0a: - 33:30:73:78:b9:4f:54:16:bf:0b:07:a1:a4:5c:e6:cb:c9:5c: - 84:8f:0f:e0:15:77:2c:7e:26:7e:da:c4:4b:db:a7:16:77:07: - b0:cd:75:e8:72:42:d6:95:84:9d:86:83:f2:e4:90:cd:09:47: - d4:8b:03:70:da:5a:c6:03:42:f4:ed:37:a2:f0:1b:50:54:4b: - 0e:d8:84:de:19:28:99:81:47:ae:09:1b:3f:48:d1:c3:6f:e2: - b0:60:17:f5:ee:23:02:a5:da:00:5b:6d:90:ab:ee:a2:e9:1b: - 3b:e9:c7:44:27:45:8e:6b:9f:f5:a4:84:bc:77:f9:6b:97:ac: - 3e:51:45:a2:11:a6:cc:85:ee:0a:68:f2:3e:50:38:7a:24:62: - 1e:17:20:37:6d:6a:4d:b7:09:9b:c9:fc:a4:58:f5:b6:fb:9c: - 4e:18:bb:95:02:e7:a1:ad:9b:07:ee:36:6b:24:d2:39:86:c1: - 93:83:50:d2:81:46:a8:5f:62:57:2c:bb:6c:64:88:08:6e:ef: - 13:54:5f:dd:2d:c4:67:63:d3:cf:89:37:bf:9d:20:f4:fb:7a: - 83:9b:a0:1e:81:00:50:c2:e4:0c:22:59:52:10:ed:43:56:87: - 00:f8:14:52:a7:1d:8b:93:8c:a2:4d:46:7f:27:c6:71:9b:24: - de:e4:da:86:8b:0d:7e:6b:20:c1:c0:9e:e1:65:d8:6a:a3:a6: - e8:85:8b:3a:07:08:1c:ba:f5:8f:55:9a:18:75:7e:e5:ec:81: - 66:d1:21:73:a1:35:44:0b:80:3d:5b:9c:5e:6f:2a:17:96:d1: - 83:23:88:66:6d:e6:86:e2:70:32:2f:52:22:e7:c8:e7:7f:c4: - 2c:60:5d:2f:c3:af:9e:45:05:c3:84:02:b7:fd:2c:08:52:4f: - 82:dd:a3:f0:d4:86:09:02 -SHA1 Fingerprint=D2:73:96:2A:2A:5E:39:9F:73:3F:E1:C7:1E:64:3F:03:38:34:FC:4D + 1f:ca:ce:dd:c7:be:a1:9f:d9:27:4c:0b:dc:17:98:11:6a:88: + de:3d:e6:71:56:72:b2:9e:1a:4e:9c:d5:2b:98:24:5d:9b:6b: + 7b:b0:33:82:09:bd:df:25:46:ea:98:9e:b6:1b:fe:83:3c:d2: + 62:61:c1:04:ed:ce:e0:c5:c9:c8:13:13:55:e7:a8:63:ad:8c: + 7b:01:fe:77:30:e1:ce:68:9b:05:f8:12:ee:79:31:a0:41:45: + 35:28:0a:71:a4:24:4f:8c:dc:3c:82:07:5f:66:dc:7d:10:fe: + 0c:61:b3:05:95:ee:e1:ae:81:0f:a8:f8:c7:8f:4d:a8:23:02: + 26:6b:1d:83:52:55:ce:b5:2f:00:ca:80:40:e0:e1:74:ac:60: + f5:87:80:9d:ae:36:64:91:5d:b0:68:18:ea:8a:61:c9:77:a8: + 97:c4:c9:c7:a5:fc:55:4b:f3:f0:7f:b9:65:3d:27:68:d0:cc: + 6b:fa:53:9d:e1:91:1a:c9:5d:1a:96:6d:32:87:ed:03:20:c8: + 02:ce:5a:be:d9:ea:fd:b2:4d:c4:2f:1b:df:5f:7a:f5:f8:8b: + c6:ee:31:3a:25:51:55:67:8d:64:32:7b:e9:9e:c3:82:ba:2a: + 2d:e9:1e:b4:e0:48:06:a2:fc:67:af:1f:22:02:73:fb:20:0a: + af:9d:54:4b:a1:cd:ff:60:47:b0:3f:5d:ef:1b:56:bd:97:21: + 96:2d:0a:d1:5e:9d:38:02:47:6c:b9:f4:f6:23:25:b8:a0:6a: + 9a:2b:77:08:fa:c4:b1:28:90:26:58:08:3c:e2:7e:aa:d7:3d: + 6f:ba:31:88:0a:05:eb:27:b5:a1:49:ee:a0:45:54:7b:e6:27: + 65:99:20:21:a8:a3:bc:fb:18:96:bb:52:6f:0c:ed:83:51:4c: + e9:59:e2:20:60:c5:c2:65:92:82:8c:f3:10:1f:0e:8a:97:be: + 77:82:6d:3f:8f:1d:5d:bc:49:27:bd:cc:4f:0f:e1:ce:76:86: + 04:23:c5:c0:8c:12:5b:fd:db:84:a0:24:f1:48:ff:64:7c:d0: + be:5c:16:d1:ef:99:ad:c0:1f:fb:cb:ae:bc:38:22:06:26:64: + da:da:97:0e:3f:28:15:44:a8:4f:00:ca:f0:9a:cc:cf:74:6a: + b4:3e:3c:eb:95:ec:b5:d3:5a:d8:81:99:e9:43:18:37:eb:b3: + bb:d1:58:62:41:f3:66:d2:8f:aa:78:95:54:20:c3:5a:2e:74: + 2b:d5:d1:be:18:69:c0:ac:d5:a4:cf:39:ba:51:84:03:65:e9: + 62:c0:62:fe:d8:4d:55:96:e2:d0:11:fa:48:34:11:ec:9e:ed: + 05:1d:e4:c8:d6:1d:86:cb +SHA1 Fingerprint=9A:44:49:76:32:DB:DE:FA:D0:BC:FB:5A:7B:17:BD:9E:56:09:24:94 -----BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv -CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg -GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu -XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd -re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu -PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1 -mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K -8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj -x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR -nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0 -kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok -twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp -8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT -z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA -pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb -pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB -R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R -RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk -0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC -5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF -izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn -yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL -----END CERTIFICATE----- diff --git a/secure/caroot/trusted/GTS_Root_R3.pem b/secure/caroot/trusted/GTS_Root_R3.pem index 82c9a6ea5ab0..ca17a9220f72 100644 --- a/secure/caroot/trusted/GTS_Root_R3.pem +++ b/secure/caroot/trusted/GTS_Root_R3.pem @@ -16,7 +16,7 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 6e:47:a9:c7:6c:a9:73:24:40:89:0f:03:55:dd:8d:1d + 02:03:e5:b8:82:eb:20:f8:25:27:6d:3d:66 Signature Algorithm: ecdsa-with-SHA384 Issuer: C = US, O = Google Trust Services LLC, CN = GTS Root R3 Validity @@ -38,29 +38,29 @@ Certificate: NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical - Certificate Sign, CRL Sign + Digital Signature, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: C1:F1:26:BA:A0:2D:AE:85:81:CF:D3:F1:2A:12:BD:B8:0A:67:FD:BC Signature Algorithm: ecdsa-with-SHA384 - 30:66:02:31:00:80:5b:a4:7c:23:c0:95:a5:2c:dc:be:89:6f: - 23:b9:a3:dd:65:00:52:5e:91:ac:c8:9d:72:74:82:53:0b:7d: - a9:40:bd:68:60:c5:e1:b8:54:3b:c1:36:17:25:d8:c1:bd:02: - 31:00:9e:35:92:74:85:25:51:f5:24:ec:64:52:24:50:a5:1f: - db:e8:cb:c9:76:ec:ec:82:6e:f5:85:18:53:e8:b8:e3:9a:29: - aa:96:d3:83:23:c9:a4:7b:61:b3:cc:02:e8:5d -SHA1 Fingerprint=30:D4:24:6F:07:FF:DB:91:89:8A:0B:E9:49:66:11:EB:8C:5E:46:E5 + 30:66:02:31:00:f6:e1:20:95:14:7b:54:a3:90:16:11:bf:84: + c8:ea:6f:6b:17:9e:1e:46:98:20:9b:9f:d3:0d:d9:ac:d3:2f: + cd:7c:f8:5b:2e:55:bb:bf:dd:92:f7:a4:0c:dc:31:e1:a2:02: + 31:00:fc:97:66:66:e5:43:16:13:83:dd:c7:df:2f:be:14:38: + ed:01:ce:b1:17:1a:11:75:e9:bd:03:8f:26:7e:84:e5:c9:60: + a6:95:d7:54:59:b7:e7:11:2c:89:d4:b9:ee:17 +SHA1 Fingerprint=ED:E5:71:80:2B:C8:92:B9:5B:83:3C:D2:32:68:3F:09:CD:A0:1E:46 -----BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout -736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A -DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk -fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA -njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X -----END CERTIFICATE----- diff --git a/secure/caroot/trusted/GTS_Root_R4.pem b/secure/caroot/trusted/GTS_Root_R4.pem index 6986518db309..d8c21bf91bdc 100644 --- a/secure/caroot/trusted/GTS_Root_R4.pem +++ b/secure/caroot/trusted/GTS_Root_R4.pem @@ -16,7 +16,7 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 6e:47:a9:c8:8b:94:b6:e8:bb:3b:2a:d8:a2:b2:c1:99 + 02:03:e5:c0:68:ef:63:1a:9c:72:90:50:52 Signature Algorithm: ecdsa-with-SHA384 Issuer: C = US, O = Google Trust Services LLC, CN = GTS Root R4 Validity @@ -38,29 +38,29 @@ Certificate: NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical - Certificate Sign, CRL Sign + Digital Signature, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 80:4C:D6:EB:74:FF:49:36:A3:D5:D8:FC:B5:3E:C5:6A:F0:94:1D:8C Signature Algorithm: ecdsa-with-SHA384 - 30:64:02:30:6a:50:52:74:08:c4:70:dc:9e:50:74:21:e8:8d: - 7a:21:c3:4f:96:6e:15:d1:22:35:61:2d:fa:08:37:ee:19:6d: - ad:db:b2:cc:7d:07:34:f5:60:19:2c:b5:34:d9:6f:20:02:30: - 03:71:b1:ba:a3:60:0b:86:ed:9a:08:6a:95:68:9f:e2:b3:e1: - 93:64:7c:5e:93:a6:df:79:2d:8d:85:e3:94:cf:23:5d:71:cc: - f2:b0:4d:d6:fe:99:c8:94:a9:75:a2:e3 -SHA1 Fingerprint=2A:1D:60:27:D9:4A:B1:0A:1C:4D:91:5C:CD:33:A0:CB:3E:2D:54:CB + 30:66:02:31:00:e8:40:ff:83:de:03:f4:9f:ae:1d:7a:a7:2e: + b9:af:4f:f6:83:1d:0e:2d:85:01:1d:d1:d9:6a:ec:0f:c2:af: + c7:5e:56:5e:5c:d5:1c:58:22:28:0b:f7:30:b6:2f:b1:7c:02: + 31:00:f0:61:3c:a7:f4:a0:82:e3:21:d5:84:1d:73:86:9c:2d: + af:ca:34:9b:f1:9f:b9:23:36:e2:bc:60:03:9d:80:b3:9a:56: + c8:e1:e2:bb:14:79:ca:cd:21:d4:94:b5:49:43 +SHA1 Fingerprint=77:D3:03:67:B5:E0:0C:15:F6:0C:38:61:DF:7C:E1:3B:92:46:4D:47 -----BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu -hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l -xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0 -CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx -sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w== +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD -----END CERTIFICATE----- diff --git a/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem b/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem index 6263dcb9435e..0b773b02b88c 100644 --- a/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem +++ b/secure/caroot/trusted/GlobalSign_ECC_Root_CA_-_R4.pem @@ -16,7 +16,7 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - 2a:38:a4:1c:96:0a:04:de:42:b2:28:a5:0b:e8:34:98:02 + 02:03:e5:7e:f5:3f:93:fd:a5:09:21:b2:a6 Signature Algorithm: ecdsa-with-SHA256 Issuer: OU = GlobalSign ECC Root CA - R4, O = GlobalSign, CN = GlobalSign Validity @@ -36,27 +36,26 @@ Certificate: NIST CURVE: P-256 X509v3 extensions: X509v3 Key Usage: critical - Certificate Sign, CRL Sign + Digital Signature, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 54:B0:7B:AD:45:B8:E2:40:7F:FB:0A:6E:FB:BE:33:C9:3C:A3:84:D5 Signature Algorithm: ecdsa-with-SHA256 - 30:45:02:21:00:dc:92:a1:a0:13:a6:cf:03:b0:e6:c4:21:97: - 90:fa:14:57:2d:03:ec:ee:3c:d3:6e:ca:a8:6c:76:bc:a2:de: - bb:02:20:27:a8:85:27:35:9b:56:c6:a3:f2:47:d2:b7:6e:1b: - 02:00:17:aa:67:a6:15:91:de:fa:94:ec:7b:0b:f8:9f:84 -SHA1 Fingerprint=69:69:56:2E:40:80:F4:24:A1:E7:19:9F:14:BA:F3:EE:58:AB:6A:BB + 30:44:02:20:22:4f:74:72:b9:60:af:f1:e6:9c:a0:16:05:50: + 5f:c3:5e:3b:6e:61:74:ef:be:01:c4:be:18:48:59:61:82:32: + 02:20:26:9d:54:63:40:de:37:60:50:cf:c8:d8:ed:9d:82:ae: + 37:98:bc:a3:8f:4c:4c:a9:34:2b:6c:ef:fb:95:9b:26 +SHA1 Fingerprint=6B:A0:B0:98:E1:71:EF:5A:AD:FE:48:15:80:77:10:F4:BD:6F:0B:28 -----BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ -FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F -uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX -kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs -ewv4n4Q= +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm -----END CERTIFICATE----- diff --git a/secure/caroot/trusted/Cybertrust_Global_Root.pem b/secure/caroot/untrusted/Cybertrust_Global_Root.pem similarity index 100% rename from secure/caroot/trusted/Cybertrust_Global_Root.pem rename to secure/caroot/untrusted/Cybertrust_Global_Root.pem diff --git a/secure/caroot/trusted/DST_Root_CA_X3.pem b/secure/caroot/untrusted/DST_Root_CA_X3.pem similarity index 100% rename from secure/caroot/trusted/DST_Root_CA_X3.pem rename to secure/caroot/untrusted/DST_Root_CA_X3.pem diff --git a/secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem b/secure/caroot/untrusted/GlobalSign_Root_CA_-_R2.pem similarity index 100% rename from secure/caroot/trusted/GlobalSign_Root_CA_-_R2.pem rename to secure/caroot/untrusted/GlobalSign_Root_CA_-_R2.pem diff --git a/secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem b/secure/caroot/untrusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem similarity index 100% rename from secure/caroot/trusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem rename to secure/caroot/untrusted/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem diff --git a/secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem b/secure/caroot/untrusted/Network_Solutions_Certificate_Authority.pem similarity index 100% rename from secure/caroot/trusted/Network_Solutions_Certificate_Authority.pem rename to secure/caroot/untrusted/Network_Solutions_Certificate_Authority.pem diff --git a/secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem b/secure/caroot/untrusted/Staat_der_Nederlanden_EV_Root_CA.pem similarity index 100% rename from secure/caroot/trusted/Staat_der_Nederlanden_EV_Root_CA.pem rename to secure/caroot/untrusted/Staat_der_Nederlanden_EV_Root_CA.pem diff --git a/secure/caroot/trusted/TrustCor_ECA-1.pem b/secure/caroot/untrusted/TrustCor_ECA-1.pem similarity index 100% rename from secure/caroot/trusted/TrustCor_ECA-1.pem rename to secure/caroot/untrusted/TrustCor_ECA-1.pem diff --git a/secure/caroot/trusted/TrustCor_RootCert_CA-1.pem b/secure/caroot/untrusted/TrustCor_RootCert_CA-1.pem similarity index 100% rename from secure/caroot/trusted/TrustCor_RootCert_CA-1.pem rename to secure/caroot/untrusted/TrustCor_RootCert_CA-1.pem diff --git a/secure/caroot/trusted/TrustCor_RootCert_CA-2.pem b/secure/caroot/untrusted/TrustCor_RootCert_CA-2.pem similarity index 100% rename from secure/caroot/trusted/TrustCor_RootCert_CA-2.pem rename to secure/caroot/untrusted/TrustCor_RootCert_CA-2.pem From nobody Thu Jun 15 05:20:08 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhVwn1V1Pz4dlGG; Thu, 15 Jun 2023 05:20:09 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhVwm6DxSz3mSx; Thu, 15 Jun 2023 05:20:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686806408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gU89UJ3zYLeVQd85RZ27LxZcCoRcHljfKvdMxk29xgs=; b=uwxNan+YzPTs+baT6rv8DRpJ7mlKBaYeX+cJyYGNqwdR71J/IsjDH7nyc6DNb1iMp7ZnaR RSficGVS6XnEf+OevwDLFCD4H5V7LWoDi3O4juU9yYRJ1i8azFeAwPJz+HVlBNW70PIL1s 7DjpO5ukEtL7hfTEeLv/zSqi0YXypj/v+nMi653Nh6SzmZIEmBPVS/5f96qXFDuVQkRjqK 7wstVjECpnlZQtmHUOD41p2MC0sE0iuPr4vPZu9BU8EJD+SF9RujkTcm3AYzh7gLJBHtZ5 n20MajZSd8VIRshjGA+bAiIN6dKAjoZyvV/xFPXozdFR103nWMhlIGfQpy/CRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686806408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gU89UJ3zYLeVQd85RZ27LxZcCoRcHljfKvdMxk29xgs=; b=J3UMFSXrbBhMK+8nlWE0K6rf4xt9HLaWdZd5a02H2/1njgrfRjScekBuP5opIb7hMZGIPu 3jISHsfORTziPx/zUbbcRN35TpH1QmDSpc/FjDTvf8vv+wZ1wukHDYjrvNzuDOyEwxvmwO AiQAikMuHISz6QZnzjZMfvE7dwjzbzh7570mGRcNa8KbIFRijApE+8czQLJyNQHNz2ZM0E G9+JdEWYPASODbVkAAGOBalrngKZt4b3wH8GesYuSLObpMZq3IgqGmOJL4Otu3qCcs60Ek C5lbSrZDqTd3vds3Oo0jZjXkOHqE/MDydMrXCFGeHoEnAer9CZQN75/ShWupFw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686806408; a=rsa-sha256; cv=none; b=W1JIoHwo8l6XjPSBz5jqy18jXUJEVO4X9BtlskfksxMeks6F9EDWDoBU/InMvEBWau4YPk QbOK2h++h8nkZ7EbQ562ua4GdlwPvwm213exX8GhuT7KdtyCNmUJ9pnrDdwpPP/x4vDJrS K46TmyE3CSJma9skjfEyXppPifIp6Y8VKoLhkozz7+m/pqQcPn73L6v2M/u84h79Jfx6GA LcIF1vLDP/zzn1Xnlzga+TonXLxOaIfCtkyKuHLTjrinezNIiWeUs01wA9I9V8ZWnUMbQE bM9mm4wuw1VLveRRfvFfAT9/gMLgd4F5w9hXbtH32UG+ulEQ1059ZRNvD7M8/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhVwm5BLvzY14; Thu, 15 Jun 2023 05:20:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35F5K8Wt069358; Thu, 15 Jun 2023 05:20:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35F5K8qr069356; Thu, 15 Jun 2023 05:20:08 GMT (envelope-from git) Date: Thu, 15 Jun 2023 05:20:08 GMT Message-Id: <202306150520.35F5K8qr069356@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Marko Zec Subject: git: fc17cf76153d - stable/13 - Back out fb31ad53c471e01ba473b2fb038c0cff6253654b, which was committed in error directly to stable/13 instead to main. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zec X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: fc17cf76153da89ebdcd5d967c83f3b4d2dac0de Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zec: URL: https://cgit.FreeBSD.org/src/commit/?id=fc17cf76153da89ebdcd5d967c83f3b4d2dac0de commit fc17cf76153da89ebdcd5d967c83f3b4d2dac0de Author: Marko Zec AuthorDate: 2023-06-15 05:18:23 +0000 Commit: Marko Zec CommitDate: 2023-06-15 05:18:23 +0000 Back out fb31ad53c471e01ba473b2fb038c0cff6253654b, which was committed in error directly to stable/13 instead to main. --- sbin/route/route.8 | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/sbin/route/route.8 b/sbin/route/route.8 index 25aaf8087343..afcf55ab44c7 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -28,7 +28,7 @@ .\" @(#)route.8 8.3 (Berkeley) 3/19/94 .\" $FreeBSD$ .\" -.Dd May 27, 2023 +.Dd March 14, 2023 .Dt ROUTE 8 .Os .Sh NAME @@ -439,9 +439,7 @@ Lockless immutable radix, re-created on every rtable change, tailored for a small FIB with <1000 routes. .It dpdk_lpm DPDK DIR24-8-based lookups, lockless datastructure, optimized -for large FIBs. -DIR24-8 relies on a large flat lookup table (64 MB with IPv4) which is -directly indexed by the more significant portion of the lookup key. +for a large FIB. In order to use the dpdk_lpm algorithm one or both of the following kernel modules must be loaded via .Xr loader.conf 5 : @@ -451,16 +449,6 @@ DPDK implementation for IPv4. .It dpdk_lpm6.ko DPDK implementation for IPv6. .El -.It dxr -IPv4 only, lockless, compressed lookup structure -(below 2.5 Bytes per IPv4 prefix for large BGP FIBs) -which easily fits into modern CPU cache hierarchies, -lookup throughput scales linearly with CPU cores. -Loadable as a kernel module at runtime or via -.Xr loader.conf 5 : -.Bl -tag -width fib_dxr.ko -compact -.It fib_dxr.ko -.El .El .Pp The algorithms are selected automatically based on the size of the routing From nobody Thu Jun 15 05:23:34 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhW0k3QRNz4dmkC; Thu, 15 Jun 2023 05:23:34 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhW0k2xr0z3nS5; Thu, 15 Jun 2023 05:23:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686806614; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I5IN2mdQ095Qe2rd1PFDx0iFikNQoNpaqfCeU9qnBUs=; b=A1LIoVxpIf2RAFxJtnqCi/1A8WFOku0bvcnd03+AZi5AN+IaSYo6uM7pTgwcnQb0pZCnNd pJwc4b/gQlblQeN28WRIy4/g5TzkhFTwDWMWr8OZd4T1nbqinvpsnMmjCDml8qeQPRYo/i rGv262UsF/w30U/LpLfZdZM+S5cd7pR7R29aZO9+eYbFvvpxNkhtdxEuJR/TyABm3qWOzb 7FcgeMkUjq+DDq/fjcEPfcTk4YHQHNu5G6RBvW7Mto99QOPwEfSJqoy+VUCeSHX92iWr1L 5eQkTJ3+C6Y4n9gkoHl1KolcxthC2Y1+gj/6SvT6Z3GBFroN7rM08DArOBpZOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686806614; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I5IN2mdQ095Qe2rd1PFDx0iFikNQoNpaqfCeU9qnBUs=; b=KgSQQc7/JeOLO+XpEGO9j6zItNYbmGyRy6D0aehcrpBAjCh0TuW4EU0YpztxIge7kciJBI +31tBgULJ4RsH0O59rcVkue7UMQm7R4PRcaBwfDQiCtCtmLWs+hHgr3hg5kqk9x66sIYLI 5ZFo8N2OPY46MQ/daHl9FZklV75qXxPARVpWZq3aNWyriJ4okOp2gKwgvhGrMy34taag7v bcdkR5ypxsilt6MKU6XAR5AfAv57GIdT/pSlvOmwtXyz9m/KifSaiJyqiat+NHhLnAGiJI zpFdTXQNDoedapVtFq8p06aFwE3J/RcruNXYK/3jPuofdfhHbAt3Pjllt1XSuA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686806614; a=rsa-sha256; cv=none; b=NXXS5YeiuWG49+aBjpbaFmgWUFCB9DXtt2syeQHVODHBPjZfVzIokl4QF6iiFYTbFG59J3 /Cp3NxW3W8NavE+IRq8KKEuFvahVVquf4BNrw9aLdu4eYoynQlVKqhV4V8saVmyYNuE7fu Jw3NC03vQAeyLq3lh7oMVVbnlYkJJMeforJt5IkAl1OEFBY7ViVuWWsY6TF/0zJ3abXqRv wi+cG8PutgkstJN3FE3JBLVwmpHVO/efz/m3S8JuAddZbKvcuI6imkwIkpzOF4EfcGVFON U1SN5JAwu6GlypeH+dpopOjIReNGEhRAVuCWckZscjOgBAzyVnuISO6X9OyYOw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhW0k2086zY1V; Thu, 15 Jun 2023 05:23:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35F5NYuL081197; Thu, 15 Jun 2023 05:23:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35F5NY6b081196; Thu, 15 Jun 2023 05:23:34 GMT (envelope-from git) Date: Thu, 15 Jun 2023 05:23:34 GMT Message-Id: <202306150523.35F5NY6b081196@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Marko Zec Subject: git: 32b28e3ae28f - main - route.8: mention DXR in FIB_ALGO section List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zec X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 32b28e3ae28f4d48520ada6ca703b508da8761a7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by zec: URL: https://cgit.FreeBSD.org/src/commit/?id=32b28e3ae28f4d48520ada6ca703b508da8761a7 commit 32b28e3ae28f4d48520ada6ca703b508da8761a7 Author: Marko Zec AuthorDate: 2023-06-15 05:21:51 +0000 Commit: Marko Zec CommitDate: 2023-06-15 05:21:51 +0000 route.8: mention DXR in FIB_ALGO section While here, add a sentence describing DPDK DIR24-8 principle of operation. MFC after: 2 weeks. --- sbin/route/route.8 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sbin/route/route.8 b/sbin/route/route.8 index 72c22bee23ed..8103625decd4 100644 --- a/sbin/route/route.8 +++ b/sbin/route/route.8 @@ -28,7 +28,7 @@ .\" @(#)route.8 8.3 (Berkeley) 3/19/94 .\" $FreeBSD$ .\" -.Dd June 13, 2023 +.Dd June 16, 2023 .Dt ROUTE 8 .Os .Sh NAME @@ -442,7 +442,9 @@ Lockless immutable radix, re-created on every rtable change, tailored for a small FIB with <1000 routes. .It dpdk_lpm DPDK DIR24-8-based lookups, lockless datastructure, optimized -for a large FIB. +for large FIBs. +DIR24-8 relies on a large flat lookup table (64 MB with IPv4) which is +directly indexed by the more significant portion of the lookup key. In order to use the dpdk_lpm algorithm one or both of the following kernel modules must be loaded via .Xr loader.conf 5 : @@ -452,6 +454,16 @@ DPDK implementation for IPv4. .It dpdk_lpm6.ko DPDK implementation for IPv6. .El +.It dxr +IPv4 only, lockless, compressed lookup structure +(below 2.5 Bytes per IPv4 prefix for large BGP FIBs) +which easily fits into modern CPU cache hierarchies, +lookup throughput scales linearly with CPU cores. +Loadable as a kernel module at runtime or via +.Xr loader.conf 5 : +.Bl -tag -width fib_dxr.ko -compact +.It fib_dxr.ko +.El .El .Pp The algorithms are selected automatically based on the size of the routing From nobody Thu Jun 15 06:36:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhXd73Myjz4d8KC; Thu, 15 Jun 2023 06:36:43 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhXd72YmBz43xV; Thu, 15 Jun 2023 06:36:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686811003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IYJDTXMFM1u83qjW85st05cGpj9Cn96xoIS917NPsCs=; b=Yp5Y1e1qKhLJ4G81tgYS0w8uQ5p1HZRxJl3ZW3dEzxcaqZOc/HEpnZ2BqS6O/Ml36tkjYR A176dd8oJyPB34B7oNIKyKbJ9LyOSTurSGShl8gdcI20FfNv4vl/u6rv+6K+0CK4bRFNVx rY6f8mFt1zXQYPMcz45qUiXfLHygMGyoU3SLFno43BFeMXzLgaaUQh8XVHDKr9olkL8HAZ E/axcLLrsa5XNhZCMD9OPRjRbasqfPM6aassc75zFpFvsxRxUItz8ZaBfGI3g/mMCfX/te NDeTHTIPsFZ5hw0DC9IIX1keHTTkL+z56Y65MExSv+0hJHFcCueM1V7BBJ9Zug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686811003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IYJDTXMFM1u83qjW85st05cGpj9Cn96xoIS917NPsCs=; b=RtnAz04QoRCHWIg2JNYmLRAonIEWoinJLDfWrg/2JHJ/Rf0OCVO2GMic1OXsZsRMHqdaOw gwfaBV72Hzspt2U9lg9KwJeSp0W3khklEE/SXLLXKdjkHztsVSoWX2dZ8aJoTcTVjmFkqT Mu7I4m8826t3USuroRpQSs0VfACFrU4RIrNxmJjX6A6tfCaLaiDJ1qGnv0cPY+LOQLkNL8 7YF2YOV8/eD2+8c4geAnYbCX3KadCdHf7emuUqYz6z8kg37s20jWeuTuSSkJxliT1pwCfJ K+WIi3ERqbO13eUbpiWzHCrXCQcMHIOr7o1GlX8fgGr4KGywwSTmJFQjynQ64g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686811003; a=rsa-sha256; cv=none; b=c4Qsrif34DIebpy9gbu97Htbgt0eAyqXJ0nUro1GUVy/FZJ3WUmbYzg39kTNaU+TcvrrtK sMf35N6rTBhSNQ1WcBOQYNrSZ5Pr7LN0Vo7BhdIOHOBmmsF0anepAU/bO9EhRAvOLWapJ5 fIJPEgsW+VecuGtLFGZNITtLmxG2bpTh74ETNFlwY5O3lpKN1zEIz28sBcpL52BfZYiSTW yJMWvXx2PYPaw9R1/JtpF7/vVp+0mVgCOeG5N06fvwYMO/XA0IYWQIozYMq94GHrc+4pVv LIQvagEnBB5A+PoyWEl4CxKUbnrnXg1SDQ9SRYw8j+mEJBnlUInnR4Z/lsj0yw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhXd71dCLzbwT; Thu, 15 Jun 2023 06:36:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35F6ahKe096866; Thu, 15 Jun 2023 06:36:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35F6ahYh096865; Thu, 15 Jun 2023 06:36:43 GMT (envelope-from git) Date: Thu, 15 Jun 2023 06:36:43 GMT Message-Id: <202306150636.35F6ahYh096865@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 84b41342da1f - main - ipfw: add eaction tests List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 84b41342da1ff3b9cf4eb785752201575c5e4391 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=84b41342da1ff3b9cf4eb785752201575c5e4391 commit 84b41342da1ff3b9cf4eb785752201575c5e4391 Author: Alexander V. Chernikov AuthorDate: 2023-06-15 06:36:16 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-15 06:36:16 +0000 ipfw: add eaction tests MFC after: 2 weeks --- sbin/ipfw/tests/test_add_rule.py | 33 ++++++++++++++++++++++++++++++ tests/atf_python/sys/netpfil/ipfw/ioctl.py | 6 ++++++ 2 files changed, 39 insertions(+) diff --git a/sbin/ipfw/tests/test_add_rule.py b/sbin/ipfw/tests/test_add_rule.py index 65b4e7d33646..42c594a83bcf 100755 --- a/sbin/ipfw/tests/test_add_rule.py +++ b/sbin/ipfw/tests/test_add_rule.py @@ -173,6 +173,39 @@ class TestAddRule(BaseTest): }, id="test_comment", ), + pytest.param( + { + "in": "add tcp-setmss 123 ip from any to 1.2.3.4", + "out": { + "objs": [ + NTlv(IpFwTlvType.IPFW_TLV_EACTION, idx=1, name="tcp-setmss"), + ], + "insns": [ + InsnIp(IpFwOpcode.O_IP_DST, ip="1.2.3.4"), + Insn(IpFwOpcode.O_EXTERNAL_ACTION, arg1=1), + Insn(IpFwOpcode.O_EXTERNAL_DATA, arg1=123), + ], + }, + }, + id="test_eaction_tcp-setmss", + ), + pytest.param( + { + "in": "add eaction ntpv6 AAA ip from any to 1.2.3.4", + "out": { + "objs": [ + NTlv(IpFwTlvType.IPFW_TLV_EACTION, idx=1, name="ntpv6"), + NTlv(0, idx=2, name="AAA"), + ], + "insns": [ + InsnIp(IpFwOpcode.O_IP_DST, ip="1.2.3.4"), + Insn(IpFwOpcode.O_EXTERNAL_ACTION, arg1=1), + Insn(IpFwOpcode.O_EXTERNAL_INSTANCE, arg1=2), + ], + }, + }, + id="test_eaction_ntp", + ), ], ) def test_add_rule(self, rule): diff --git a/tests/atf_python/sys/netpfil/ipfw/ioctl.py b/tests/atf_python/sys/netpfil/ipfw/ioctl.py index 45ba96a7fb70..4c6d3f234c6c 100644 --- a/tests/atf_python/sys/netpfil/ipfw/ioctl.py +++ b/tests/atf_python/sys/netpfil/ipfw/ioctl.py @@ -90,6 +90,11 @@ class BaseTlv(object): for obj in self.obj_list: obj.print_obj(prepend) + def print_obj_hex(self, prepend=""): + print(prepend) + print() + print(" ".join(["x{:02X}".format(b) for b in bytes(self)])) + @classmethod def _validate(cls, data): if len(data) < sizeof(IpFwObjTlv): @@ -487,6 +492,7 @@ rule_attrs = prepare_attrs_map( [ AttrDescr(IpFwTlvType.IPFW_TLV_TBL_NAME, NTlv), AttrDescr(IpFwTlvType.IPFW_TLV_STATE_NAME, NTlv), + AttrDescr(IpFwTlvType.IPFW_TLV_EACTION, NTlv), ], True, ), From nobody Thu Jun 15 06:50:09 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhXwf0k37z4dGGx; Thu, 15 Jun 2023 06:50:10 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhXwf0J4cz46CZ; Thu, 15 Jun 2023 06:50:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686811810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dro98GS94BpsnwkRfCC+k5rQnZhe4590RajpHyj31dU=; b=cszg81FTi87Dky1rNkX3b4ZkWBtvxXULLht133wbOiqd7zDfriXE2WrEKesiaewXt6X5eR WkAcXW5EjSJQ2D1BufIQxFuQgNc/kPe/BwPNSm+clo2BhRJBD4j6sO9KLAXDFYspEoOofn vgLRl4MF8jZDcSzpSwdimfFsFXVMo1fL5Asvzz1s4OLvrwyIUUkdFMy+mIw1ZU9pxifmQv A/4lq+4FdNei2snSZi8h/5mzeriJXjr3kyoWRoSLCJpJZ0PmWmyhJtzCBsZC6Nt6i2cyJy uUMKBenGvgQbw6nrzHpqi2QpVK8FcdJE6V36LmWChUpioqagaznuRz7FfK3ERA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686811810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dro98GS94BpsnwkRfCC+k5rQnZhe4590RajpHyj31dU=; b=NEfNznr6Qw2ynIXuNaWqixvIfURisAD1loLm/glZm9QTP/+INe44ugjvkDHHYy5bMk8qDj B21s0qPbpVBz22JKB77Q8DLTUqjgAR41kXfiGvD7QhN+xvRRT0dAORtDGdn48jvXhgTXra px+TgjWi5haN0GP9nTfnHhiVzsabgW2cbVE838l0LmZGhKNOYpqAiniCGjsl0UV9HmJfdQ tWyXrm6uJrvExqDZAk3zaRAUAF47zeJp2ydJEoZ19NnqyiNoedJgIeFDhpBb+aMEbB5sX/ pIVFFV+vJ70jBXE3d4NlnTHhTrQNG4i9mZ6oCUbibDmWPBpWo6qgoARtebOPCA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686811810; a=rsa-sha256; cv=none; b=Xl82v684pQCjxHrVe3bBQYD1fZfLrUiaNurn3dwB3oaTH4cXh++7oenotYnwSAjb03MhEt zb04RNmsoHAic1G82TnjfVfpyBtAzQk/sveJMsQFsUQ1z0Y3bE0LneUvHT8ZnwH3L1cb/U aaGdZi21f02tNeW1LmZMYAyMCpFrZXPOh6UuCH9cktMYqTXFHJJsnUl80evGoLHW0xGFli XJpRyKqB18UkWvOh8qWZk0re4b35SJs+Qjrw2TaXV4dZXaypGn7NBHjrJ+LUt/0VgGCVGf uQj/0bSZfRxaErgPm+PphrwEgDk31XyiOg+BndtjfiO/QObgxnGvbfJZwvYaAw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhXwd6Snszc4y; Thu, 15 Jun 2023 06:50:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35F6o974017497; Thu, 15 Jun 2023 06:50:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35F6o9wU017487; Thu, 15 Jun 2023 06:50:09 GMT (envelope-from git) Date: Thu, 15 Jun 2023 06:50:09 GMT Message-Id: <202306150650.35F6o9wU017487@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 2b5dd8b89011 - main - ipfw: use function return value to fetch insn argument. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2b5dd8b89011098ff294dd58a5b61b087a4ef0b4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=2b5dd8b89011098ff294dd58a5b61b087a4ef0b4 commit 2b5dd8b89011098ff294dd58a5b61b087a4ef0b4 Author: Alexander V. Chernikov AuthorDate: 2023-06-15 06:46:42 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-15 06:46:42 +0000 ipfw: use function return value to fetch insn argument. This is a prerequsite for splitting compile_rule() into smaller chunks. MFC after: 2 weeks --- sbin/ipfw/ipfw2.c | 30 +++++++++++++----------------- sbin/ipfw/ipfw2.h | 2 +- sbin/ipfw/ipv6.c | 7 +++---- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index a711514cb5dc..95f70e882096 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -1203,8 +1203,8 @@ static struct _s_x icmpcodes[] = { { NULL, 0 } }; -static void -fill_reject_code(u_short *codep, char *str) +static uint16_t +get_reject_code(const char *str) { int val; char *s; @@ -1214,8 +1214,7 @@ fill_reject_code(u_short *codep, char *str) val = match_token(icmpcodes, str); if (val < 0) errx(EX_DATAERR, "unknown ICMP unreachable code ``%s''", str); - *codep = val; - return; + return (val); } static void @@ -3965,23 +3964,20 @@ arg_or_targ(const char *arg, const char *action) return (arg1); } -static void -fill_divert_port(ipfw_insn *cmd, char *arg, const char *action) +static uint16_t +get_divert_port(const char *arg, const char *action) { uint32_t arg1 = arg_or_targ_relaxed(arg, action); - if (arg1 != (uint32_t)(-1)) { - cmd->arg1 = arg1; - return; - } + if (arg1 != (uint32_t)(-1)) + return (arg1); struct servent *s; setservent(1); s = getservbyname(arg, "divert"); - if (s != NULL) - cmd->arg1 = ntohs(s->s_port); - else + if (s == NULL) errx(EX_DATAERR, "illegal divert/tee port"); + return (ntohs(s->s_port)); } /* @@ -4143,7 +4139,7 @@ compile_rule(char *av[], uint32_t *rbuf, int *rbufsize, struct tidx *tstate) case TOK_UNREACH: action->opcode = O_REJECT; NEED1("missing reject code"); - fill_reject_code(&action->arg1, *av); + action->arg1 = get_reject_code(*av); av++; if (action->arg1 == ICMP_UNREACH_NEEDFRAG && isdigit(**av)) { uint16_t mtu; @@ -4161,7 +4157,7 @@ compile_rule(char *av[], uint32_t *rbuf, int *rbufsize, struct tidx *tstate) case TOK_UNREACH6: action->opcode = O_UNREACH6; NEED1("missing unreach code"); - fill_unreach6_code(&action->arg1, *av); + action->arg1 = get_unreach6_code(*av); av++; break; @@ -4206,12 +4202,12 @@ compile_rule(char *av[], uint32_t *rbuf, int *rbufsize, struct tidx *tstate) break; case TOK_DIVERT: action->opcode = O_DIVERT; - fill_divert_port(action, av[0], *(av - 1)); + action->arg1 = get_divert_port(av[0], *(av - 1)); av++; break; case TOK_TEE: action->opcode = O_TEE; - fill_divert_port(action, av[0], *(av - 1)); + action->arg1 = get_divert_port(av[0], *(av - 1)); av++; break; case TOK_CALL: diff --git a/sbin/ipfw/ipfw2.h b/sbin/ipfw/ipfw2.h index 92fa05ae14b2..f787bbbb714d 100644 --- a/sbin/ipfw/ipfw2.h +++ b/sbin/ipfw/ipfw2.h @@ -448,7 +448,7 @@ struct _ipfw_insn *add_dstip6(struct _ipfw_insn *cmd, char *av, int cblen, struct tidx *tstate); void fill_flow6(struct _ipfw_insn_u32 *cmd, char *av, int cblen); -void fill_unreach6_code(u_short *codep, char *str); +uint16_t get_unreach6_code(const char *str); void fill_icmp6types(struct _ipfw_insn_icmp6 *cmd, char *av, int cblen); int fill_ext6hdr(struct _ipfw_insn *cmd, char *av); diff --git a/sbin/ipfw/ipv6.c b/sbin/ipfw/ipv6.c index eea313572f34..7cb12127548b 100644 --- a/sbin/ipfw/ipv6.c +++ b/sbin/ipfw/ipv6.c @@ -55,8 +55,8 @@ static struct _s_x icmp6codes[] = { { NULL, 0 } }; -void -fill_unreach6_code(u_short *codep, char *str) +uint16_t +get_unreach6_code(const char *str) { int val; char *s; @@ -66,8 +66,7 @@ fill_unreach6_code(u_short *codep, char *str) val = match_token(icmp6codes, str); if (val < 0) errx(EX_DATAERR, "unknown ICMPv6 unreachable code ``%s''", str); - *codep = val; - return; + return (val); } void From nobody Thu Jun 15 11:38:15 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhgK46PRsz4d8VP; Thu, 15 Jun 2023 11:38:16 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhgK45tCKz45FP; Thu, 15 Jun 2023 11:38:16 +0000 (UTC) (envelope-from danfe@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686829096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pMNMcE/RnCHSxxlVNb5igDmEDUBz7w0b3nDEZET0Ww8=; b=HwNdpug4aWAoHT5MSsOkDaIzTY+lXb2tganQVk+4wWX7W/jLGom300He9zh7BTqPAzwzcH oNBHmzKNZ8QcMNu97BiSA+Bj/AigdGtBR/lnKLA5JolThKtYkyXYREmEntYGR5CFrsr6kK +gtnSyzeqQpmbeqE0cgt2FzxQTWbvEaWs8IBR7+LY9NtVpLqxBwvSVzEfjY+2AGAGZ0tcE z0SFoTmHRfjZloxAstMbJf8lQnXMtIWFJ1bqftahRRkQHvUGPQlHUMKYNobmgxAdq1jtg9 boO/kSKAJbMEmidgNQ+44dGog4y9hncrrRnbgtG/HsSIgogxxDETfJ98Cm1QHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686829096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pMNMcE/RnCHSxxlVNb5igDmEDUBz7w0b3nDEZET0Ww8=; b=IElI4Xeo2pmuUEyoa4had8Yh826LwiIFohU0sBJ/gwq2cayBDH5JmvXepMUdBwaQ3SWx5Q oSkhAFPhHfew5w0ioMHaIgLHnqmjDIQpbw6ePBeX3i3gBHTrerWcjNPzK3CHJHVXQRJPBf odTp3mjR3mApR4m4UKK2bErxL/H8fi/NaPNOwhX4V5Nj8hZW+qBYv2WObjq8aQrBd9oWpk ExPbHXxkTeVV1rFrklE5+0xuvkmqxOCGXaS60Z51hTYP3Q/yBd+ir7OO8+XE+9YfSleXzf NUwePXkkIVHZEVZTCao5A397OAyjMQ27WmyA5R1ibQKzXvK9ifUorwuJoZeONQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686829096; a=rsa-sha256; cv=none; b=Ge0lu3fQMdaXgQQADOR8kzEhDBj4mGodOSfD+cSgjArkhOdybW4uT3BTQ7uOtN2KK4A3gw iKxo8hY7EDeTOA7ayhlkw2FWbh8/IAq/rQvOpSGkNS4OsSLUESWWLDZfGU59seNIOL6Gfj 6jxX9MpndCK0AD2GzBfxEYnuwzRQyYhKgZN3QnuHhBhdmcuZSKxVHQ7EjQRz2ViphF0ttY p/3/0jDBis8OtowJesVOKOifLe2OfDQ3aWb+objsnr/9sYbREtnXKgln1FWbXq+Alzm62+ JYH8pErqlAY/9uidk95hVO0xcmBi9gcrzybDmgZTR4o5bXs3iCyZiV9x4FjuAg== Received: by freefall.freebsd.org (Postfix, from userid 1033) id 347EB1197; Thu, 15 Jun 2023 11:38:15 +0000 (UTC) Date: Thu, 15 Jun 2023 11:38:15 +0000 From: Alexey Dokuchaev To: Kyle Evans Cc: "Piotr P. Stefaniak" , Colin Percival , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org, Cluster Administrators Subject: Re: git: df53ae0fdd98 - main - Remove portsnap(8) Message-ID: References: <202304230112.33N1ChPx076100@gitrepo.freebsd.org> List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ThisMailContainsUnwantedMimeParts: N On Sun, Apr 23, 2023 at 10:20:24AM -0500, Kyle Evans wrote: > On Sun, Apr 23, 2023 at 10:01???AM Alexey Dokuchaev wrote: > > ... > > My internet connection is roughly the same, and full "git clone" always > > fails. However, repeated "git fetch --depth=n ; n++" allowed me to get > > the ports tree in a few days, eventually. I have to use this trick for > > any large repo, it migth seem annoying, but it does work. > > I've mentioned it a couple times on lists, but this seems like a good > time to bring it up again: I maintain repo bundles of all of our > repositories, at least, on freefall: > https://people.freebsd.org/~kevans/bundles/ -- fetch this with > whatever hip thing you have that does resumable downloads and clone a > repository from it, then adjust the remote to point to the upstream > repo and incremental fetch to the current version. Thank you for those, Kyle: I've just tried it on fresh installation, and while it still took several hours to fetch that ~1GB ports.bundle from freefall, it was a lot more convenient than repeated "git fetch --depth=n++" to obtain full .git detadata. ./danfe From nobody Thu Jun 15 14:42:35 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhlPl57K0z4dFR2; Thu, 15 Jun 2023 14:42:35 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhlPl4Qhmz3kk7; Thu, 15 Jun 2023 14:42:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686840155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BPBBwPFY2iL0RJ/Pbr6N/Yt+hkEhdYH+mLvBU1KpB+k=; b=rFsyMwKkc4irQtDT9TmBsAMgYnCC8KPmuMrm0q6fjBr2xQbH3OuJEyO1y7qysfSlxPNq0a G1/s7/MuYuxfE4PqvOaq3KCVutmVBVTGCpjwx6PrP6CZPt2ldgETu4KCSEVUQtbLkV4Nnu x4f6lyCzE/D50YJYXQUltLXAW5pgctDLOu6UXFGgPtRQM/u3K+5mEi9OFDtNX/BpmxSzSx gakZ/tfMYuLNhBB35uu2JmpuptMYGwnm2oJnrIT6JKuFWrcTrRv66sCWCFsVZQKSB656C3 Veh4gouznxX8bjBk4rq3bggYtVXb90nBn+Gifl9CJYvDLo9+Z0etVqq5QSDt9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686840155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BPBBwPFY2iL0RJ/Pbr6N/Yt+hkEhdYH+mLvBU1KpB+k=; b=sseiehph781kupGNRNv9mix+bDMrjU5Mq/lE37B0qx+FsRPhHhOQKR/yUWiG1X1qlPJHbZ 2L8cvFZ6ddOUrPmlVx40JDsOMVdVZ/cxB+2W39JAhk8ou/+GKR9ww63kFNCeu2o1nTsVhQ 0tQAKzF4AEYytqNSubM9o9DPcnDet8XfLGe5kwReJJqEUW5f7Y5PELAOF5YCrzMV8WpQ1k hxb+C8ohB7VrjHRbxYKVSx0yRyGmlAOhPe+8+JitBz9mY8MBt+gmsYMufYanHuBL6qNgE3 VH37+szYY2bKHEylSvA3Xlc2p+4TIqcEZJi9L1KfZlJP3vWGnfvkTQCwhbJEGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686840155; a=rsa-sha256; cv=none; b=rYge+tPNWg6HLTp7ETf+LHnyjPOagdJzbOjIwM5II4XmfPQOqtmdag6+iZrFdO3NsVXtXo E7AtWfCXV4Vz88OCzng8TZEecj657bTddOYPmmPvEHtuVt0OJAMGHRTakpr2MOg57U6SIi 8NMWxMxWFh20xkaaTFF8yITOtXVzkA+bdwruH/NNycXByEbFeP9tDLnzFpHz1y7oXKE1ZH pxlKNLLPhCdcLWJt9q036wAWp/P8/kCK+ShtE3H8gOdltNzEm30juHvIVaN9tEV8rm218N MPXqCjp2R6W03FU9yhxAEd1ZEUd7LLURAoeC1BJ5N596u/2k861NpX9VTTHL8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhlPl3WKnzq5K; Thu, 15 Jun 2023 14:42:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FEgZ7b003289; Thu, 15 Jun 2023 14:42:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FEgZsN003288; Thu, 15 Jun 2023 14:42:35 GMT (envelope-from git) Date: Thu, 15 Jun 2023 14:42:35 GMT Message-Id: <202306151442.35FEgZsN003288@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 498b34f60d2f - stable/13 - libvmmapi: Remove some unneeded includes List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 498b34f60d2f0ab72778c872ab82d7d5ff2664a9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=498b34f60d2f0ab72778c872ab82d7d5ff2664a9 commit 498b34f60d2f0ab72778c872ab82d7d5ff2664a9 Author: Mark Johnston AuthorDate: 2023-06-08 19:03:46 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 14:41:56 +0000 libvmmapi: Remove some unneeded includes These are amd64-specific and so can't be used when targetting arm64, but they don't appear to be needed. No functional change intended. MFC after: 1 week Sponsored by: The FreeBSD Foundation (cherry picked from commit 1320520ba488386251a7d02bd90842e031931133) --- lib/libvmmapi/vmmapi.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/libvmmapi/vmmapi.c b/lib/libvmmapi/vmmapi.c index 451d679dbbba..9f69c79561ad 100644 --- a/lib/libvmmapi/vmmapi.c +++ b/lib/libvmmapi/vmmapi.c @@ -41,9 +41,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include - #include #include #include From nobody Thu Jun 15 15:13:28 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhm5P2Btxz4dmG5; Thu, 15 Jun 2023 15:13:29 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhm5P1FHDz3rHX; Thu, 15 Jun 2023 15:13:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686842009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3cYlDjU3m3E5PH8LVuvEfvZxAElSpXJldDr3Jo2kzFw=; b=AZ0p7nrN6VSRJJhJKfINn/SO4WFK7HNl+nVgL0yZqIW37DrU1IbDkzkY8wr8D8Z1Of1VP+ zDmIK2QWgHMUNJk42k9Fg3CMIWejQomwP+DSr/dXXPmR9y71JlFSKzM8C64UhUNr5e9kya QfSbSNNdjIFrU/YsmAD/wp0EbvquCH/a6nJ0iWFdnr+UQSxnhZCOT3UK6KL7lYMAeQZEIC 5VW3SMNfvpiA77WaBQ6Ty1VhFxuxAP7qqcMpxdCmFztmpvFEWkNP5yOvVtY7KlGkfN3ZAM /Mw1rS1DAnjH9lNd6GTi7wWk2CyWZDwbtyE7JnlnIDigfm5f+/39oxQr1rT/SQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686842009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3cYlDjU3m3E5PH8LVuvEfvZxAElSpXJldDr3Jo2kzFw=; b=PEoZyEDCri+mf4ot+zJYWDvQJAeMMogkSmf/GLoyI6YYY0oA2RVTTTVcu6laF7KhokFSjD 1O3XwefNze6y1co3qAOn87+SiVKjG0Bkdhti4Z34MYYpoVoTBBGBS57EG4/ASEbAJav1aw bjcphN4gDXM9gCg4Fg1TTQDqL43DjN6nb1RYB5EIsv0kmjXcgH+7XNuAD+1YtZxKBZVUhD hJ/6xJ1unUIa7av7wJk5RrjLmU2gTm5HmQleqTuE7Vh1I0XW5DNrQgVKCJADV2YRApIllq hWGC3jyhyYHIt9q3GKGhQbf05NrgDSz5hCbmJ9wXhfeCjDXr1OODU/QJ/MKLbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686842009; a=rsa-sha256; cv=none; b=jQtlV2BIAjvQdazMSWvxccOtq2+Uvzs1vBexOfxtj5w34AddnjUjR/HKc3TBI0LbLKJ5Dn C7YajmEI9l76r8VdB12/vI8HUw4ggPaaf93wUMOST2uPc5DhsoEqNMKRXuHgpSzaRa6dJY cDZDYkFm/bCpzIbp5WPRfauhAaQnmcQSq+qxCMTv0k32D6izq0vxceRFu9gXiZ42dNbHc1 bzuV40XHlxSwa1ygaHJN5hMt8UnUDt94jf+4vb/gENfgbMRal/9DOoe3WGmmxh3uYIbTVI ERotNnvFM4cLO6lqrQWKzVqCnu5z4xIRhRtqfX+ei+TKl41MlGETIfSpSgZ2HQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhm5N7509zrS3; Thu, 15 Jun 2023 15:13:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FFDS0H053615; Thu, 15 Jun 2023 15:13:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FFDSes053614; Thu, 15 Jun 2023 15:13:28 GMT (envelope-from git) Date: Thu, 15 Jun 2023 15:13:28 GMT Message-Id: <202306151513.35FFDSes053614@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 2d1d418e1e7b - main - mpi3mr: 3rd Generation Tri-Mode NVMe/SAS/SATA MegaRaid / eHBA List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2d1d418e1e7bc8325bb052185c17c81a674d0c4e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2d1d418e1e7bc8325bb052185c17c81a674d0c4e commit 2d1d418e1e7bc8325bb052185c17c81a674d0c4e Author: Sumit Saxena AuthorDate: 2023-06-14 22:22:30 +0000 Commit: Warner Losh CommitDate: 2023-06-15 14:52:40 +0000 mpi3mr: 3rd Generation Tri-Mode NVMe/SAS/SATA MegaRaid / eHBA This is Broadcom's mpi3mr driver for FreeBSD version 8.6.0.2.0. The mpi3mr driver supports Broadcom SAS4116-based cards in the 9600 series: 9670W-16i, 9670-24i, 9660-16i, 9620-16i, 9600-24i, 9600-16i, 9600W-16e, 9600-16e, 9600-8i8e. Initially only available as a module and on amd64/arm64, since that's how it has been tested to date. Future commits will add it to the kernel build and may expand the architectures it is supported on. Co-authored-by: Chandrakanth Patil Feedback-by: ken (prior versions) Reviewed-by: imp RelNotes: yes Differential-Revision: https://reviews.freebsd.org/D36771 Differential-Revision: https://reviews.freebsd.org/D36772 --- sys/dev/mpi3mr/mpi/mpi30_api.h | 57 + sys/dev/mpi3mr/mpi/mpi30_cnfg.h | 3839 +++++++++++++++++++++ sys/dev/mpi3mr/mpi/mpi30_image.h | 426 +++ sys/dev/mpi3mr/mpi/mpi30_init.h | 265 ++ sys/dev/mpi3mr/mpi/mpi30_ioc.h | 1615 +++++++++ sys/dev/mpi3mr/mpi/mpi30_pci.h | 97 + sys/dev/mpi3mr/mpi/mpi30_raid.h | 46 + sys/dev/mpi3mr/mpi/mpi30_sas.h | 99 + sys/dev/mpi3mr/mpi/mpi30_targ.h | 316 ++ sys/dev/mpi3mr/mpi/mpi30_tool.h | 476 +++ sys/dev/mpi3mr/mpi/mpi30_transport.h | 748 +++++ sys/dev/mpi3mr/mpi/mpi30_type.h | 99 + sys/dev/mpi3mr/mpi3mr.c | 6101 ++++++++++++++++++++++++++++++++++ sys/dev/mpi3mr/mpi3mr.h | 997 ++++++ sys/dev/mpi3mr/mpi3mr_app.c | 2206 ++++++++++++ sys/dev/mpi3mr/mpi3mr_app.h | 292 ++ sys/dev/mpi3mr/mpi3mr_cam.c | 2222 +++++++++++++ sys/dev/mpi3mr/mpi3mr_cam.h | 199 ++ sys/dev/mpi3mr/mpi3mr_pci.c | 698 ++++ sys/modules/Makefile | 6 + sys/modules/mpi3mr/Makefile | 13 + 21 files changed, 20817 insertions(+) diff --git a/sys/dev/mpi3mr/mpi/mpi30_api.h b/sys/dev/mpi3mr/mpi/mpi30_api.h new file mode 100644 index 000000000000..aa7b54ec470e --- /dev/null +++ b/sys/dev/mpi3mr/mpi/mpi30_api.h @@ -0,0 +1,57 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Support: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * 3. Neither the name of the Broadcom Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. + * + * The views and conclusions contained in the software and documentation are + * those of the authors and should not be interpreted as representing + * official policies,either expressed or implied, of the FreeBSD Project. + * + * Mail to: Broadcom Inc 1320 Ridder Park Dr, San Jose, CA 95131 + * + * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD + * + */ + +#ifndef MPI30_API_H +#define MPI30_API_H 1 + +#include "mpi30_type.h" +#include "mpi30_transport.h" +#include "mpi30_cnfg.h" +#include "mpi30_image.h" +#include "mpi30_init.h" +#include "mpi30_ioc.h" +#include "mpi30_pci.h" +#include "mpi30_raid.h" +#include "mpi30_sas.h" +#include "mpi30_targ.h" +#include "mpi30_tool.h" + +#endif /* MPI30_API_H */ diff --git a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h new file mode 100644 index 000000000000..d1ae2ebfa372 --- /dev/null +++ b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h @@ -0,0 +1,3839 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Support: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * 3. Neither the name of the Broadcom Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. + * + * The views and conclusions contained in the software and documentation are + * those of the authors and should not be interpreted as representing + * official policies,either expressed or implied, of the FreeBSD Project. + * + * Mail to: Broadcom Inc 1320 Ridder Park Dr, San Jose, CA 95131 + * + * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD + * + */ + +#ifndef MPI30_CNFG_H +#define MPI30_CNFG_H 1 + +/***************************************************************************** + * Configuration Page Types * + ****************************************************************************/ +#define MPI3_CONFIG_PAGETYPE_IO_UNIT (0x00) +#define MPI3_CONFIG_PAGETYPE_MANUFACTURING (0x01) +#define MPI3_CONFIG_PAGETYPE_IOC (0x02) +#define MPI3_CONFIG_PAGETYPE_DRIVER (0x03) +#define MPI3_CONFIG_PAGETYPE_SECURITY (0x04) +#define MPI3_CONFIG_PAGETYPE_ENCLOSURE (0x11) +#define MPI3_CONFIG_PAGETYPE_DEVICE (0x12) +#define MPI3_CONFIG_PAGETYPE_SAS_IO_UNIT (0x20) +#define MPI3_CONFIG_PAGETYPE_SAS_EXPANDER (0x21) +#define MPI3_CONFIG_PAGETYPE_SAS_PHY (0x23) +#define MPI3_CONFIG_PAGETYPE_SAS_PORT (0x24) +#define MPI3_CONFIG_PAGETYPE_PCIE_IO_UNIT (0x30) +#define MPI3_CONFIG_PAGETYPE_PCIE_SWITCH (0x31) +#define MPI3_CONFIG_PAGETYPE_PCIE_LINK (0x33) + +/***************************************************************************** + * Configuration Page Attributes * + ****************************************************************************/ +#define MPI3_CONFIG_PAGEATTR_MASK (0xF0) +#define MPI3_CONFIG_PAGEATTR_READ_ONLY (0x00) +#define MPI3_CONFIG_PAGEATTR_CHANGEABLE (0x10) +#define MPI3_CONFIG_PAGEATTR_PERSISTENT (0x20) + +/***************************************************************************** + * Configuration Page Actions * + ****************************************************************************/ +#define MPI3_CONFIG_ACTION_PAGE_HEADER (0x00) +#define MPI3_CONFIG_ACTION_READ_DEFAULT (0x01) +#define MPI3_CONFIG_ACTION_READ_CURRENT (0x02) +#define MPI3_CONFIG_ACTION_WRITE_CURRENT (0x03) +#define MPI3_CONFIG_ACTION_READ_PERSISTENT (0x04) +#define MPI3_CONFIG_ACTION_WRITE_PERSISTENT (0x05) + +/***************************************************************************** + * Configuration Page Addressing * + ****************************************************************************/ + +/**** Device PageAddress Format ****/ +#define MPI3_DEVICE_PGAD_FORM_MASK (0xF0000000) +#define MPI3_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) +#define MPI3_DEVICE_PGAD_FORM_HANDLE (0x20000000) +#define MPI3_DEVICE_PGAD_HANDLE_MASK (0x0000FFFF) + +/**** SAS Expander PageAddress Format ****/ +#define MPI3_SAS_EXPAND_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SAS_EXPAND_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) +#define MPI3_SAS_EXPAND_PGAD_FORM_HANDLE_PHY_NUM (0x10000000) +#define MPI3_SAS_EXPAND_PGAD_FORM_HANDLE (0x20000000) +#define MPI3_SAS_EXPAND_PGAD_PHYNUM_MASK (0x00FF0000) +#define MPI3_SAS_EXPAND_PGAD_PHYNUM_SHIFT (16) +#define MPI3_SAS_EXPAND_PGAD_HANDLE_MASK (0x0000FFFF) + +/**** SAS Phy PageAddress Format ****/ +#define MPI3_SAS_PHY_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SAS_PHY_PGAD_FORM_PHY_NUMBER (0x00000000) +#define MPI3_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x000000FF) + +/**** SAS Port PageAddress Format ****/ +#define MPI3_SASPORT_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SASPORT_PGAD_FORM_GET_NEXT_PORT (0x00000000) +#define MPI3_SASPORT_PGAD_FORM_PORT_NUM (0x10000000) +#define MPI3_SASPORT_PGAD_PORT_NUMBER_MASK (0x000000FF) + +/**** Enclosure PageAddress Format ****/ +#define MPI3_ENCLOS_PGAD_FORM_MASK (0xF0000000) +#define MPI3_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) +#define MPI3_ENCLOS_PGAD_FORM_HANDLE (0x10000000) +#define MPI3_ENCLOS_PGAD_HANDLE_MASK (0x0000FFFF) + +/**** PCIe Switch PageAddress Format ****/ +#define MPI3_PCIE_SWITCH_PGAD_FORM_MASK (0xF0000000) +#define MPI3_PCIE_SWITCH_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) +#define MPI3_PCIE_SWITCH_PGAD_FORM_HANDLE_PORT_NUM (0x10000000) +#define MPI3_PCIE_SWITCH_PGAD_FORM_HANDLE (0x20000000) +#define MPI3_PCIE_SWITCH_PGAD_PORTNUM_MASK (0x00FF0000) +#define MPI3_PCIE_SWITCH_PGAD_PORTNUM_SHIFT (16) +#define MPI3_PCIE_SWITCH_PGAD_HANDLE_MASK (0x0000FFFF) + +/**** PCIe Link PageAddress Format ****/ +#define MPI3_PCIE_LINK_PGAD_FORM_MASK (0xF0000000) +#define MPI3_PCIE_LINK_PGAD_FORM_GET_NEXT_LINK (0x00000000) +#define MPI3_PCIE_LINK_PGAD_FORM_LINK_NUM (0x10000000) +#define MPI3_PCIE_LINK_PGAD_LINKNUM_MASK (0x000000FF) + +/**** Security PageAddress Format ****/ +#define MPI3_SECURITY_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SECURITY_PGAD_FORM_GET_NEXT_SLOT (0x00000000) +#define MPI3_SECURITY_PGAD_FORM_SLOT_NUM (0x10000000) +#define MPI3_SECURITY_PGAD_SLOT_GROUP_MASK (0x0000FF00) +#define MPI3_SECURITY_PGAD_SLOT_GROUP_SHIFT (8) +#define MPI3_SECURITY_PGAD_SLOT_MASK (0x000000FF) + +/***************************************************************************** + * Configuration Request Message * + ****************************************************************************/ +typedef struct _MPI3_CONFIG_REQUEST +{ + U16 HostTag; /* 0x00 */ + U8 IOCUseOnly02; /* 0x02 */ + U8 Function; /* 0x03 */ + U16 IOCUseOnly04; /* 0x04 */ + U8 IOCUseOnly06; /* 0x06 */ + U8 MsgFlags; /* 0x07 */ + U16 ChangeCount; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ + U8 PageVersion; /* 0x0C */ + U8 PageNumber; /* 0x0D */ + U8 PageType; /* 0x0E */ + U8 Action; /* 0x0F */ + U32 PageAddress; /* 0x10 */ + U16 PageLength; /* 0x14 */ + U16 Reserved16; /* 0x16 */ + U32 Reserved18[2]; /* 0x18 */ + MPI3_SGE_UNION SGL; /* 0x20 */ +} MPI3_CONFIG_REQUEST, MPI3_POINTER PTR_MPI3_CONFIG_REQUEST, + Mpi3ConfigRequest_t, MPI3_POINTER pMpi3ConfigRequest_t; + +/***************************************************************************** + * Configuration Pages * + ****************************************************************************/ + +/***************************************************************************** + * Configuration Page Header * + ****************************************************************************/ +typedef struct _MPI3_CONFIG_PAGE_HEADER +{ + U8 PageVersion; /* 0x00 */ + U8 Reserved01; /* 0x01 */ + U8 PageNumber; /* 0x02 */ + U8 PageAttribute; /* 0x03 */ + U16 PageLength; /* 0x04 */ + U8 PageType; /* 0x06 */ + U8 Reserved07; /* 0x07 */ +} MPI3_CONFIG_PAGE_HEADER, MPI3_POINTER PTR_MPI3_CONFIG_PAGE_HEADER, + Mpi3ConfigPageHeader_t, MPI3_POINTER pMpi3ConfigPageHeader_t; + +/***************************************************************************** + * Common definitions used by Configuration Pages * + ****************************************************************************/ + +/**** Defines for Negotiated Link Rates ****/ +#define MPI3_SAS_NEG_LINK_RATE_LOGICAL_MASK (0xF0) +#define MPI3_SAS_NEG_LINK_RATE_LOGICAL_SHIFT (4) +#define MPI3_SAS_NEG_LINK_RATE_PHYSICAL_MASK (0x0F) +#define MPI3_SAS_NEG_LINK_RATE_PHYSICAL_SHIFT (0) +/*** Below defines are used in both the PhysicalLinkRate and ***/ +/*** LogicalLinkRate fields above. ***/ +/*** (by applying the proper _SHIFT value) ***/ +#define MPI3_SAS_NEG_LINK_RATE_UNKNOWN_LINK_RATE (0x00) +#define MPI3_SAS_NEG_LINK_RATE_PHY_DISABLED (0x01) +#define MPI3_SAS_NEG_LINK_RATE_NEGOTIATION_FAILED (0x02) +#define MPI3_SAS_NEG_LINK_RATE_SATA_OOB_COMPLETE (0x03) +#define MPI3_SAS_NEG_LINK_RATE_PORT_SELECTOR (0x04) +#define MPI3_SAS_NEG_LINK_RATE_SMP_RESET_IN_PROGRESS (0x05) +#define MPI3_SAS_NEG_LINK_RATE_UNSUPPORTED_PHY (0x06) +#define MPI3_SAS_NEG_LINK_RATE_1_5 (0x08) +#define MPI3_SAS_NEG_LINK_RATE_3_0 (0x09) +#define MPI3_SAS_NEG_LINK_RATE_6_0 (0x0A) +#define MPI3_SAS_NEG_LINK_RATE_12_0 (0x0B) +#define MPI3_SAS_NEG_LINK_RATE_22_5 (0x0C) + +/**** Defines for the AttachedPhyInfo field ****/ +#define MPI3_SAS_APHYINFO_INSIDE_ZPSDS_PERSISTENT (0x00000040) +#define MPI3_SAS_APHYINFO_REQUESTED_INSIDE_ZPSDS (0x00000020) +#define MPI3_SAS_APHYINFO_BREAK_REPLY_CAPABLE (0x00000010) + +#define MPI3_SAS_APHYINFO_REASON_MASK (0x0000000F) +#define MPI3_SAS_APHYINFO_REASON_UNKNOWN (0x00000000) +#define MPI3_SAS_APHYINFO_REASON_POWER_ON (0x00000001) +#define MPI3_SAS_APHYINFO_REASON_HARD_RESET (0x00000002) +#define MPI3_SAS_APHYINFO_REASON_SMP_PHY_CONTROL (0x00000003) +#define MPI3_SAS_APHYINFO_REASON_LOSS_OF_SYNC (0x00000004) +#define MPI3_SAS_APHYINFO_REASON_MULTIPLEXING_SEQ (0x00000005) +#define MPI3_SAS_APHYINFO_REASON_IT_NEXUS_LOSS_TIMER (0x00000006) +#define MPI3_SAS_APHYINFO_REASON_BREAK_TIMEOUT (0x00000007) +#define MPI3_SAS_APHYINFO_REASON_PHY_TEST_STOPPED (0x00000008) +#define MPI3_SAS_APHYINFO_REASON_EXP_REDUCED_FUNC (0x00000009) + +/**** Defines for the PhyInfo field ****/ +#define MPI3_SAS_PHYINFO_STATUS_MASK (0xC0000000) +#define MPI3_SAS_PHYINFO_STATUS_SHIFT (30) +#define MPI3_SAS_PHYINFO_STATUS_ACCESSIBLE (0x00000000) +#define MPI3_SAS_PHYINFO_STATUS_NOT_EXIST (0x40000000) +#define MPI3_SAS_PHYINFO_STATUS_VACANT (0x80000000) + +#define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_MASK (0x18000000) +#define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_ACTIVE (0x00000000) +#define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_PARTIAL (0x08000000) +#define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_SLUMBER (0x10000000) + +#define MPI3_SAS_PHYINFO_REQUESTED_INSIDE_ZPSDS_CHANGED_MASK (0x04000000) +#define MPI3_SAS_PHYINFO_REQUESTED_INSIDE_ZPSDS_CHANGED_SHIFT (26) +#define MPI3_SAS_PHYINFO_INSIDE_ZPSDS_PERSISTENT_MASK (0x02000000) +#define MPI3_SAS_PHYINFO_INSIDE_ZPSDS_PERSISTENT_SHIFT (25) +#define MPI3_SAS_PHYINFO_REQUESTED_INSIDE_ZPSDS_MASK (0x01000000) +#define MPI3_SAS_PHYINFO_REQUESTED_INSIDE_ZPSDS_SHIFT (24) + +#define MPI3_SAS_PHYINFO_ZONE_GROUP_PERSISTENT (0x00400000) +#define MPI3_SAS_PHYINFO_INSIDE_ZPSDS_WITHIN (0x00200000) +#define MPI3_SAS_PHYINFO_ZONING_ENABLED (0x00100000) + +#define MPI3_SAS_PHYINFO_REASON_MASK (0x000F0000) +#define MPI3_SAS_PHYINFO_REASON_UNKNOWN (0x00000000) +#define MPI3_SAS_PHYINFO_REASON_POWER_ON (0x00010000) +#define MPI3_SAS_PHYINFO_REASON_HARD_RESET (0x00020000) +#define MPI3_SAS_PHYINFO_REASON_SMP_PHY_CONTROL (0x00030000) +#define MPI3_SAS_PHYINFO_REASON_LOSS_OF_SYNC (0x00040000) +#define MPI3_SAS_PHYINFO_REASON_MULTIPLEXING_SEQ (0x00050000) +#define MPI3_SAS_PHYINFO_REASON_IT_NEXUS_LOSS_TIMER (0x00060000) +#define MPI3_SAS_PHYINFO_REASON_BREAK_TIMEOUT (0x00070000) +#define MPI3_SAS_PHYINFO_REASON_PHY_TEST_STOPPED (0x00080000) +#define MPI3_SAS_PHYINFO_REASON_EXP_REDUCED_FUNC (0x00090000) + +#define MPI3_SAS_PHYINFO_SATA_PORT_ACTIVE (0x00004000) +#define MPI3_SAS_PHYINFO_SATA_PORT_SELECTOR_PRESENT (0x00002000) +#define MPI3_SAS_PHYINFO_VIRTUAL_PHY (0x00001000) + +#define MPI3_SAS_PHYINFO_PARTIAL_PATHWAY_TIME_MASK (0x00000F00) +#define MPI3_SAS_PHYINFO_PARTIAL_PATHWAY_TIME_SHIFT (8) + +#define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_MASK (0x000000F0) +#define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_DIRECT (0x00000000) +#define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_SUBTRACTIVE (0x00000010) +#define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_TABLE (0x00000020) + +/**** Defines for the ProgrammedLinkRate field ****/ +#define MPI3_SAS_PRATE_MAX_RATE_MASK (0xF0) +#define MPI3_SAS_PRATE_MAX_RATE_NOT_PROGRAMMABLE (0x00) +#define MPI3_SAS_PRATE_MAX_RATE_1_5 (0x80) +#define MPI3_SAS_PRATE_MAX_RATE_3_0 (0x90) +#define MPI3_SAS_PRATE_MAX_RATE_6_0 (0xA0) +#define MPI3_SAS_PRATE_MAX_RATE_12_0 (0xB0) +#define MPI3_SAS_PRATE_MAX_RATE_22_5 (0xC0) +#define MPI3_SAS_PRATE_MIN_RATE_MASK (0x0F) +#define MPI3_SAS_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) +#define MPI3_SAS_PRATE_MIN_RATE_1_5 (0x08) +#define MPI3_SAS_PRATE_MIN_RATE_3_0 (0x09) +#define MPI3_SAS_PRATE_MIN_RATE_6_0 (0x0A) +#define MPI3_SAS_PRATE_MIN_RATE_12_0 (0x0B) +#define MPI3_SAS_PRATE_MIN_RATE_22_5 (0x0C) + +/**** Defines for the HwLinkRate field ****/ +#define MPI3_SAS_HWRATE_MAX_RATE_MASK (0xF0) +#define MPI3_SAS_HWRATE_MAX_RATE_1_5 (0x80) +#define MPI3_SAS_HWRATE_MAX_RATE_3_0 (0x90) +#define MPI3_SAS_HWRATE_MAX_RATE_6_0 (0xA0) +#define MPI3_SAS_HWRATE_MAX_RATE_12_0 (0xB0) +#define MPI3_SAS_HWRATE_MAX_RATE_22_5 (0xC0) +#define MPI3_SAS_HWRATE_MIN_RATE_MASK (0x0F) +#define MPI3_SAS_HWRATE_MIN_RATE_1_5 (0x08) +#define MPI3_SAS_HWRATE_MIN_RATE_3_0 (0x09) +#define MPI3_SAS_HWRATE_MIN_RATE_6_0 (0x0A) +#define MPI3_SAS_HWRATE_MIN_RATE_12_0 (0x0B) +#define MPI3_SAS_HWRATE_MIN_RATE_22_5 (0x0C) + +/**** Defines for the Slot field ****/ +#define MPI3_SLOT_INVALID (0xFFFF) + +/**** Defines for the SlotIndex field ****/ +#define MPI3_SLOT_INDEX_INVALID (0xFFFF) + +/**** Defines for the LinkChangeCount fields ****/ +#define MPI3_LINK_CHANGE_COUNT_INVALID (0xFFFF) + +/**** Defines for the RateChangeCount fields ****/ +#define MPI3_RATE_CHANGE_COUNT_INVALID (0xFFFF) + +/**** Defines for the Temp Sensor Location field ****/ +#define MPI3_TEMP_SENSOR_LOCATION_INTERNAL (0x0) +#define MPI3_TEMP_SENSOR_LOCATION_INLET (0x1) +#define MPI3_TEMP_SENSOR_LOCATION_OUTLET (0x2) +#define MPI3_TEMP_SENSOR_LOCATION_DRAM (0x3) + +/***************************************************************************** + * Manufacturing Configuration Pages * + ****************************************************************************/ + +#define MPI3_MFGPAGE_VENDORID_BROADCOM (0x1000) + +/* MPI v3.0 SAS Products */ +#define MPI3_MFGPAGE_DEVID_SAS4116 (0x00A5) +#define MPI3_MFGPAGE_DEVID_SAS5116_MPI (0x00B3) +#define MPI3_MFGPAGE_DEVID_SAS5116_NVME (0x00B4) +#define MPI3_MFGPAGE_DEVID_SAS5116_MPI_NS (0x00B5) +#define MPI3_MFGPAGE_DEVID_SAS5116_NVME_NS (0x00B6) +#define MPI3_MFGPAGE_DEVID_SAS5116_PCIE_SWITCH (0x00B8) + +/***************************************************************************** + * Manufacturing Page 0 * + ****************************************************************************/ +typedef struct _MPI3_MAN_PAGE0 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 ChipRevision[8]; /* 0x08 */ + U8 ChipName[32]; /* 0x10 */ + U8 BoardName[32]; /* 0x30 */ + U8 BoardAssembly[32]; /* 0x50 */ + U8 BoardTracerNumber[32]; /* 0x70 */ + U32 BoardPower; /* 0x90 */ + U32 Reserved94; /* 0x94 */ + U32 Reserved98; /* 0x98 */ + U8 OEM; /* 0x9C */ + U8 ProfileIdentifier; /* 0x9D */ + U16 Flags; /* 0x9E */ + U8 BoardMfgDay; /* 0xA0 */ + U8 BoardMfgMonth; /* 0xA1 */ + U16 BoardMfgYear; /* 0xA2 */ + U8 BoardReworkDay; /* 0xA4 */ + U8 BoardReworkMonth; /* 0xA5 */ + U16 BoardReworkYear; /* 0xA6 */ + U8 BoardRevision[8]; /* 0xA8 */ + U8 EPackFRU[16]; /* 0xB0 */ + U8 ProductName[256]; /* 0xC0 */ +} MPI3_MAN_PAGE0, MPI3_POINTER PTR_MPI3_MAN_PAGE0, + Mpi3ManPage0_t, MPI3_POINTER pMpi3ManPage0_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN0_PAGEVERSION (0x00) + +/**** Defines for the Flags field ****/ +#define MPI3_MAN0_FLAGS_SWITCH_PRESENT (0x0002) +#define MPI3_MAN0_FLAGS_EXPANDER_PRESENT (0x0001) + +/***************************************************************************** + * Manufacturing Page 1 * + ****************************************************************************/ + +#define MPI3_MAN1_VPD_SIZE (512) + +typedef struct _MPI3_MAN_PAGE1 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U32 Reserved08[2]; /* 0x08 */ + U8 VPD[MPI3_MAN1_VPD_SIZE]; /* 0x10 */ +} MPI3_MAN_PAGE1, MPI3_POINTER PTR_MPI3_MAN_PAGE1, + Mpi3ManPage1_t, MPI3_POINTER pMpi3ManPage1_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN1_PAGEVERSION (0x00) + + +/***************************************************************************** + * Manufacturing Page 2 * + ****************************************************************************/ + +typedef struct _MPI3_MAN_PAGE2 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 Flags; /* 0x08 */ + U8 Reserved09[3]; /* 0x09 */ + U32 Reserved0C[3]; /* 0x0C */ + U8 OEMBoardTracerNumber[32]; /* 0x18 */ +} MPI3_MAN_PAGE2, MPI3_POINTER PTR_MPI3_MAN_PAGE2, + Mpi3ManPage2_t, MPI3_POINTER pMpi3ManPage2_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN2_PAGEVERSION (0x00) + +/**** Defines for the Flags field ****/ +#define MPI3_MAN2_FLAGS_TRACER_PRESENT (0x01) + +/***************************************************************************** + * Manufacturing Page 5 * + ****************************************************************************/ +typedef struct _MPI3_MAN5_PHY_ENTRY +{ + U64 IOC_WWID; /* 0x00 */ + U64 DeviceName; /* 0x08 */ + U64 SATA_WWID; /* 0x10 */ +} MPI3_MAN5_PHY_ENTRY, MPI3_POINTER PTR_MPI3_MAN5_PHY_ENTRY, + Mpi3Man5PhyEntry_t, MPI3_POINTER pMpi3Man5PhyEntry_t; + +#ifndef MPI3_MAN5_PHY_MAX +#define MPI3_MAN5_PHY_MAX (1) +#endif /* MPI3_MAN5_PHY_MAX */ + +typedef struct _MPI3_MAN_PAGE5 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 NumPhys; /* 0x08 */ + U8 Reserved09[3]; /* 0x09 */ + U32 Reserved0C; /* 0x0C */ + MPI3_MAN5_PHY_ENTRY Phy[MPI3_MAN5_PHY_MAX]; /* 0x10 */ +} MPI3_MAN_PAGE5, MPI3_POINTER PTR_MPI3_MAN_PAGE5, + Mpi3ManPage5_t, MPI3_POINTER pMpi3ManPage5_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN5_PAGEVERSION (0x00) + +/***************************************************************************** + * Manufacturing Page 6 * + ****************************************************************************/ +typedef struct _MPI3_MAN6_GPIO_ENTRY +{ + U8 FunctionCode; /* 0x00 */ + U8 FunctionFlags; /* 0x01 */ + U16 Flags; /* 0x02 */ + U8 Param1; /* 0x04 */ + U8 Param2; /* 0x05 */ + U16 Reserved06; /* 0x06 */ + U32 Param3; /* 0x08 */ +} MPI3_MAN6_GPIO_ENTRY, MPI3_POINTER PTR_MPI3_MAN6_GPIO_ENTRY, + Mpi3Man6GpioEntry_t, MPI3_POINTER pMpi3Man6GpioEntry_t; + +/**** Defines for the FunctionCode field ****/ +#define MPI3_MAN6_GPIO_FUNCTION_GENERIC (0x00) +#define MPI3_MAN6_GPIO_FUNCTION_ALTERNATE (0x01) +#define MPI3_MAN6_GPIO_FUNCTION_EXT_INTERRUPT (0x02) +#define MPI3_MAN6_GPIO_FUNCTION_GLOBAL_ACTIVITY (0x03) +#define MPI3_MAN6_GPIO_FUNCTION_OVER_TEMPERATURE (0x04) +#define MPI3_MAN6_GPIO_FUNCTION_PORT_STATUS_GREEN (0x05) +#define MPI3_MAN6_GPIO_FUNCTION_PORT_STATUS_YELLOW (0x06) +#define MPI3_MAN6_GPIO_FUNCTION_CABLE_MANAGEMENT (0x07) +#define MPI3_MAN6_GPIO_FUNCTION_BKPLANE_MGMT_TYPE (0x08) +#define MPI3_MAN6_GPIO_FUNCTION_ISTWI_RESET (0x0A) +#define MPI3_MAN6_GPIO_FUNCTION_BACKEND_PCIE_RESET (0x0B) +#define MPI3_MAN6_GPIO_FUNCTION_GLOBAL_FAULT (0x0C) +#define MPI3_MAN6_GPIO_FUNCTION_PBLP_STATUS_CHANGE (0x0D) +#define MPI3_MAN6_GPIO_FUNCTION_EPACK_ONLINE (0x0E) +#define MPI3_MAN6_GPIO_FUNCTION_EPACK_FAULT (0x0F) +#define MPI3_MAN6_GPIO_FUNCTION_CTRL_TYPE (0x10) +#define MPI3_MAN6_GPIO_FUNCTION_LICENSE (0x11) +#define MPI3_MAN6_GPIO_FUNCTION_REFCLK_CONTROL (0x12) +#define MPI3_MAN6_GPIO_FUNCTION_BACKEND_PCIE_RESET_CLAMP (0x13) +#define MPI3_MAN6_GPIO_FUNCTION_AUXILIARY_POWER (0x14) +#define MPI3_MAN6_GPIO_FUNCTION_RAID_DATA_CACHE_DIRTY (0x15) +#define MPI3_MAN6_GPIO_FUNCTION_BOARD_FAN_CONTROL (0x16) +#define MPI3_MAN6_GPIO_FUNCTION_BOARD_FAN_FAULT (0x17) +#define MPI3_MAN6_GPIO_FUNCTION_POWER_BRAKE (0x18) +#define MPI3_MAN6_GPIO_FUNCTION_MGMT_CONTROLLER_RESET (0x19) + +/**** Defines for FunctionFlags when FunctionCode is ISTWI_RESET ****/ +#define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_MASK (0x01) +#define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_ISTWI (0x00) +#define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_RECEPTACLEID (0x01) + +/**** Defines for Param1 (Flags) when FunctionCode is EXT_INTERRUPT ****/ +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_MASK (0xF0) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_GENERIC (0x00) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_CABLE_MGMT (0x10) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_ACTIVE_CABLE_OVERCURRENT (0x20) + +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_MASK (0x01) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_EDGE (0x00) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_LEVEL (0x01) + +/**** Defines for Param1 (PHY STATE) when FunctionCode is PORT_STATUS_GREEN ****/ +#define MPI3_MAN6_GPIO_PORT_GREEN_PARAM1_PHY_STATUS_ALL_UP (0x00) +#define MPI3_MAN6_GPIO_PORT_GREEN_PARAM1_PHY_STATUS_ONE_OR_MORE_UP (0x01) + +/**** Defines for Param1 (INTERFACE_SIGNAL) when FunctionCode is CABLE_MANAGEMENT ****/ +#define MPI3_MAN6_GPIO_CABLE_MGMT_PARAM1_INTERFACE_MODULE_PRESENT (0x00) +#define MPI3_MAN6_GPIO_CABLE_MGMT_PARAM1_INTERFACE_ACTIVE_CABLE_ENABLE (0x01) +#define MPI3_MAN6_GPIO_CABLE_MGMT_PARAM1_INTERFACE_CABLE_MGMT_ENABLE (0x02) + +/**** Defines for Param1 (LICENSE_TYPE) when FunctionCode is LICENSE ****/ +#define MPI3_MAN6_GPIO_LICENSE_PARAM1_TYPE_IBUTTON (0x00) + + +/**** Defines for the Flags field ****/ +#define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_MASK (0x0100) +#define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_FAST_EDGE (0x0100) +#define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_SLOW_EDGE (0x0000) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_MASK (0x00C0) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_100OHM (0x0000) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_66OHM (0x0040) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_50OHM (0x0080) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_33OHM (0x00C0) +#define MPI3_MAN6_GPIO_FLAGS_ALT_DATA_SEL_MASK (0x0030) +#define MPI3_MAN6_GPIO_FLAGS_ALT_DATA_SEL_SHIFT (4) +#define MPI3_MAN6_GPIO_FLAGS_ACTIVE_HIGH (0x0008) +#define MPI3_MAN6_GPIO_FLAGS_BI_DIR_ENABLED (0x0004) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_MASK (0x0003) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_INPUT (0x0000) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_OPEN_DRAIN_OUTPUT (0x0001) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_OPEN_SOURCE_OUTPUT (0x0002) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_PUSH_PULL_OUTPUT (0x0003) + +#ifndef MPI3_MAN6_GPIO_MAX +#define MPI3_MAN6_GPIO_MAX (1) +#endif /* MPI3_MAN6_GPIO_MAX */ + +typedef struct _MPI3_MAN_PAGE6 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U16 Flags; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ + U8 NumGPIO; /* 0x0C */ + U8 Reserved0D[3]; /* 0x0D */ + MPI3_MAN6_GPIO_ENTRY GPIO[MPI3_MAN6_GPIO_MAX]; /* 0x10 */ +} MPI3_MAN_PAGE6, MPI3_POINTER PTR_MPI3_MAN_PAGE6, + Mpi3ManPage6_t, MPI3_POINTER pMpi3ManPage6_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN6_PAGEVERSION (0x00) + +/**** Defines for the Flags field ****/ +#define MPI3_MAN6_FLAGS_HEARTBEAT_LED_DISABLED (0x0001) + +/***************************************************************************** + * Manufacturing Page 7 * + ****************************************************************************/ +typedef struct _MPI3_MAN7_RECEPTACLE_INFO +{ + U32 Name[4]; /* 0x00 */ + U8 Location; /* 0x10 */ + U8 ConnectorType; /* 0x11 */ + U8 PEDClk; /* 0x12 */ + U8 ConnectorID; /* 0x13 */ + U32 Reserved14; /* 0x14 */ +} MPI3_MAN7_RECEPTACLE_INFO, MPI3_POINTER PTR_MPI3_MAN7_RECEPTACLE_INFO, + Mpi3Man7ReceptacleInfo_t, MPI3_POINTER pMpi3Man7ReceptacleInfo_t; + +/**** Defines for Location field ****/ +#define MPI3_MAN7_LOCATION_UNKNOWN (0x00) +#define MPI3_MAN7_LOCATION_INTERNAL (0x01) +#define MPI3_MAN7_LOCATION_EXTERNAL (0x02) +#define MPI3_MAN7_LOCATION_VIRTUAL (0x03) +#define MPI3_MAN7_LOCATION_HOST (0x04) + +/**** Defines for ConnectorType - Use definitions from SES-4 ****/ +#define MPI3_MAN7_CONNECTOR_TYPE_NO_INFO (0x00) + +/**** Defines for PEDClk field ****/ +#define MPI3_MAN7_PEDCLK_ROUTING_MASK (0x10) +#define MPI3_MAN7_PEDCLK_ROUTING_DIRECT (0x00) +#define MPI3_MAN7_PEDCLK_ROUTING_CLOCK_BUFFER (0x10) +#define MPI3_MAN7_PEDCLK_ID_MASK (0x0F) + +#ifndef MPI3_MAN7_RECEPTACLE_INFO_MAX +#define MPI3_MAN7_RECEPTACLE_INFO_MAX (1) +#endif /* MPI3_MAN7_RECEPTACLE_INFO_MAX */ + +typedef struct _MPI3_MAN_PAGE7 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U32 Flags; /* 0x08 */ + U8 NumReceptacles; /* 0x0C */ + U8 Reserved0D[3]; /* 0x0D */ + U32 EnclosureName[4]; /* 0x10 */ + MPI3_MAN7_RECEPTACLE_INFO ReceptacleInfo[MPI3_MAN7_RECEPTACLE_INFO_MAX]; /* 0x20 */ /* variable length array */ +} MPI3_MAN_PAGE7, MPI3_POINTER PTR_MPI3_MAN_PAGE7, + Mpi3ManPage7_t, MPI3_POINTER pMpi3ManPage7_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN7_PAGEVERSION (0x00) + +/**** Defines for Flags field ****/ +#define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_MASK (0x01) +#define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_0 (0x00) +#define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_1 (0x01) + + +/***************************************************************************** + * Manufacturing Page 8 * + ****************************************************************************/ + +typedef struct _MPI3_MAN8_PHY_INFO +{ + U8 ReceptacleID; /* 0x00 */ + U8 ConnectorLane; /* 0x01 */ + U16 Reserved02; /* 0x02 */ + U16 Slotx1; /* 0x04 */ + U16 Slotx2; /* 0x06 */ + U16 Slotx4; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C; /* 0x0C */ +} MPI3_MAN8_PHY_INFO, MPI3_POINTER PTR_MPI3_MAN8_PHY_INFO, + Mpi3Man8PhyInfo_t, MPI3_POINTER pMpi3Man8PhyInfo_t; + +/**** Defines for ReceptacleID field ****/ +#define MPI3_MAN8_PHY_INFO_RECEPTACLE_ID_NOT_ASSOCIATED (0xFF) + +/**** Defines for ConnectorLane field ****/ +#define MPI3_MAN8_PHY_INFO_CONNECTOR_LANE_NOT_ASSOCIATED (0xFF) + +#ifndef MPI3_MAN8_PHY_INFO_MAX +#define MPI3_MAN8_PHY_INFO_MAX (1) +#endif /* MPI3_MAN8_PHY_INFO_MAX */ + +typedef struct _MPI3_MAN_PAGE8 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U32 Reserved08; /* 0x08 */ + U8 NumPhys; /* 0x0C */ + U8 Reserved0D[3]; /* 0x0D */ + MPI3_MAN8_PHY_INFO PhyInfo[MPI3_MAN8_PHY_INFO_MAX]; /* 0x10 */ /* variable length array */ +} MPI3_MAN_PAGE8, MPI3_POINTER PTR_MPI3_MAN_PAGE8, + Mpi3ManPage8_t, MPI3_POINTER pMpi3ManPage8_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN8_PAGEVERSION (0x00) + +/***************************************************************************** + * Manufacturing Page 9 * + ****************************************************************************/ +typedef struct _MPI3_MAN9_RSRC_ENTRY +{ + U32 Maximum; /* 0x00 */ + U32 Decrement; /* 0x04 */ + U32 Minimum; /* 0x08 */ + U32 Actual; /* 0x0C */ +} MPI3_MAN9_RSRC_ENTRY, MPI3_POINTER PTR_MPI3_MAN9_RSRC_ENTRY, + Mpi3Man9RsrcEntry_t, MPI3_POINTER pMpi3Man9RsrcEntry_t; + +typedef enum _MPI3_MAN9_RESOURCES +{ + MPI3_MAN9_RSRC_OUTSTANDING_REQS = 0, + MPI3_MAN9_RSRC_TARGET_CMDS = 1, + MPI3_MAN9_RSRC_RESERVED02 = 2, + MPI3_MAN9_RSRC_NVME = 3, + MPI3_MAN9_RSRC_INITIATORS = 4, + MPI3_MAN9_RSRC_VDS = 5, + MPI3_MAN9_RSRC_ENCLOSURES = 6, + MPI3_MAN9_RSRC_ENCLOSURE_PHYS = 7, + MPI3_MAN9_RSRC_EXPANDERS = 8, + MPI3_MAN9_RSRC_PCIE_SWITCHES = 9, + MPI3_MAN9_RSRC_RESERVED10 = 10, + MPI3_MAN9_RSRC_HOST_PD_DRIVES = 11, + MPI3_MAN9_RSRC_ADV_HOST_PD_DRIVES = 12, + MPI3_MAN9_RSRC_RAID_PD_DRIVES = 13, + MPI3_MAN9_RSRC_DRV_DIAG_BUF = 14, + MPI3_MAN9_RSRC_NAMESPACE_COUNT = 15, + MPI3_MAN9_RSRC_NUM_RESOURCES +} MPI3_MAN9_RESOURCES; + +#define MPI3_MAN9_MIN_OUTSTANDING_REQS (1) +#define MPI3_MAN9_MAX_OUTSTANDING_REQS (65000) + +#define MPI3_MAN9_MIN_TARGET_CMDS (0) +#define MPI3_MAN9_MAX_TARGET_CMDS (65535) + +#define MPI3_MAN9_MIN_NVME_TARGETS (0) +/* Max NVMe Targets is product specific */ + +#define MPI3_MAN9_MIN_INITIATORS (0) +/* Max Initiators is product specific */ + +#define MPI3_MAN9_MIN_VDS (0) +/* Max VDs is product specific */ + +#define MPI3_MAN9_MIN_ENCLOSURES (1) +#define MPI3_MAN9_MAX_ENCLOSURES (65535) + +#define MPI3_MAN9_MIN_ENCLOSURE_PHYS (0) +/* Max Enclosure Phys is product specific */ + +#define MPI3_MAN9_MIN_EXPANDERS (0) +#define MPI3_MAN9_MAX_EXPANDERS (65535) + +#define MPI3_MAN9_MIN_PCIE_SWITCHES (0) +/* Max PCIe Switches is product specific */ + +#define MPI3_MAN9_MIN_HOST_PD_DRIVES (0) +/* Max Host PD Drives is product specific */ + +#define MPI3_MAN9_ADV_HOST_PD_DRIVES (0) +/* Max Advanced Host PD Drives is product specific */ + +#define MPI3_MAN9_RAID_PD_DRIVES (0) +/* Max RAID PD Drives is product specific */ + +#define MPI3_MAN9_DRIVER_DIAG_BUFFER (0) +/* Max Driver Diag Buffer is product specific */ + +#define MPI3_MAN9_MIN_NAMESPACE_COUNT (1) + +#define MPI3_MAN9_MIN_EXPANDERS (0) +#define MPI3_MAN9_MAX_EXPANDERS (65535) + + +typedef struct _MPI3_MAN_PAGE9 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 NumResources; /* 0x08 */ + U8 Reserved09; /* 0x09 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C; /* 0x0C */ + U32 Reserved10; /* 0x10 */ + U32 Reserved14; /* 0x14 */ + U32 Reserved18; /* 0x18 */ + U32 Reserved1C; /* 0x1C */ + MPI3_MAN9_RSRC_ENTRY Resource[MPI3_MAN9_RSRC_NUM_RESOURCES]; /* 0x20 */ +} MPI3_MAN_PAGE9, MPI3_POINTER PTR_MPI3_MAN_PAGE9, + Mpi3ManPage9_t, MPI3_POINTER pMpi3ManPage9_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN9_PAGEVERSION (0x00) + +/***************************************************************************** + * Manufacturing Page 10 * + ****************************************************************************/ +typedef struct _MPI3_MAN10_ISTWI_CTRLR_ENTRY +{ + U16 TargetAddress; /* 0x00 */ + U16 Flags; /* 0x02 */ + U8 SCLLowOverride; /* 0x04 */ + U8 SCLHighOverride; /* 0x05 */ + U16 Reserved06; /* 0x06 */ +} MPI3_MAN10_ISTWI_CTRLR_ENTRY, MPI3_POINTER PTR_MPI3_MAN10_ISTWI_CTRLR_ENTRY, + Mpi3Man10IstwiCtrlrEntry_t, MPI3_POINTER pMpi3Man10IstwiCtrlrEntry_t; + +/**** Defines for the Flags field ****/ + +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I2C_GLICH_FLTR_MASK (0xC000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I2C_GLICH_FLTR_SHIFT (14) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I2C_GLICH_FLTR_50_NS (0x0000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I2C_GLICH_FLTR_10_NS (0x4000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I2C_GLICH_FLTR_5_NS (0x8000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I2C_GLICH_FLTR_0_NS (0xC000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_TYPE_MASK (0x3000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_TYPE_SHIFT (12) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_TYPE_I2C (0x0000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_TYPE_I3C (0x1000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_TYPE_AUTO (0x2000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_MASK (0x0E00) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_SHIFT (9) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_12_5_MHZ (0x0000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_8_MHZ (0x0200) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_6_MHZ (0x0400) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_4_MHZ (0x0600) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_I3C_MAX_DATA_RATE_2_MHZ (0x0800) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_SPEED_MASK (0x000C) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_SPEED_SHIFT (0) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_SPEED_100_KHZ (0x0000) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_BUS_SPEED_400_KHZ (0x0004) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_TARGET_ENABLED (0x0002) +#define MPI3_MAN10_ISTWI_CTRLR_FLAGS_INITIATOR_ENABLED (0x0001) + +#ifndef MPI3_MAN10_ISTWI_CTRLR_MAX +#define MPI3_MAN10_ISTWI_CTRLR_MAX (1) +#endif /* MPI3_MAN10_ISTWI_CTRLR_MAX */ + +typedef struct _MPI3_MAN_PAGE10 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U32 Reserved08; /* 0x08 */ + U8 NumISTWICtrl; /* 0x0C */ + U8 Reserved0D[3]; /* 0x0D */ + MPI3_MAN10_ISTWI_CTRLR_ENTRY ISTWIController[MPI3_MAN10_ISTWI_CTRLR_MAX]; /* 0x10 */ +} MPI3_MAN_PAGE10, MPI3_POINTER PTR_MPI3_MAN_PAGE10, + Mpi3ManPage10_t, MPI3_POINTER pMpi3ManPage10_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN10_PAGEVERSION (0x00) + +/***************************************************************************** + * Manufacturing Page 11 * + ****************************************************************************/ +typedef struct _MPI3_MAN11_MUX_DEVICE_FORMAT +{ + U8 MaxChannel; /* 0x00 */ + U8 Reserved01[3]; /* 0x01 */ + U32 Reserved04; /* 0x04 */ +} MPI3_MAN11_MUX_DEVICE_FORMAT, MPI3_POINTER PTR_MPI3_MAN11_MUX_DEVICE_FORMAT, + Mpi3Man11MuxDeviceFormat_t, MPI3_POINTER pMpi3Man11MuxDeviceFormat_t; + +typedef struct _MPI3_MAN11_TEMP_SENSOR_DEVICE_FORMAT +{ + U8 Type; /* 0x00 */ + U8 Reserved01[3]; /* 0x01 */ + U8 TempChannel[4]; /* 0x04 */ +} MPI3_MAN11_TEMP_SENSOR_DEVICE_FORMAT, MPI3_POINTER PTR_MPI3_MAN11_TEMP_SENSOR_DEVICE_FORMAT, + Mpi3Man11TempSensorDeviceFormat_t, MPI3_POINTER pMpi3Man11TempSensorDeviceFormat_t; + +/**** Defines for the Type field ****/ +#define MPI3_MAN11_TEMP_SENSOR_TYPE_MAX6654 (0x00) +#define MPI3_MAN11_TEMP_SENSOR_TYPE_EMC1442 (0x01) +#define MPI3_MAN11_TEMP_SENSOR_TYPE_ADT7476 (0x02) +#define MPI3_MAN11_TEMP_SENSOR_TYPE_SE97B (0x03) + +/**** Define for the TempChannel field ****/ +#define MPI3_MAN11_TEMP_SENSOR_CHANNEL_LOCATION_MASK (0xE0) +#define MPI3_MAN11_TEMP_SENSOR_CHANNEL_LOCATION_SHIFT (5) +/**** for the Location field values - use MPI3_TEMP_SENSOR_LOCATION_ defines ****/ +#define MPI3_MAN11_TEMP_SENSOR_CHANNEL_ENABLED (0x01) + + +typedef struct _MPI3_MAN11_SEEPROM_DEVICE_FORMAT +{ + U8 Size; /* 0x00 */ + U8 PageWriteSize; /* 0x01 */ + U16 Reserved02; /* 0x02 */ + U32 Reserved04; /* 0x04 */ +} MPI3_MAN11_SEEPROM_DEVICE_FORMAT, MPI3_POINTER PTR_MPI3_MAN11_SEEPROM_DEVICE_FORMAT, + Mpi3Man11SeepromDeviceFormat_t, MPI3_POINTER pMpi3Man11SeepromDeviceFormat_t; + +/**** Defines for the Size field ****/ +#define MPI3_MAN11_SEEPROM_SIZE_1KBITS (0x01) +#define MPI3_MAN11_SEEPROM_SIZE_2KBITS (0x02) +#define MPI3_MAN11_SEEPROM_SIZE_4KBITS (0x03) +#define MPI3_MAN11_SEEPROM_SIZE_8KBITS (0x04) +#define MPI3_MAN11_SEEPROM_SIZE_16KBITS (0x05) +#define MPI3_MAN11_SEEPROM_SIZE_32KBITS (0x06) +#define MPI3_MAN11_SEEPROM_SIZE_64KBITS (0x07) +#define MPI3_MAN11_SEEPROM_SIZE_128KBITS (0x08) + +typedef struct _MPI3_MAN11_DDR_SPD_DEVICE_FORMAT +{ + U8 Channel; /* 0x00 */ + U8 Reserved01[3]; /* 0x01 */ + U32 Reserved04; /* 0x04 */ +} MPI3_MAN11_DDR_SPD_DEVICE_FORMAT, MPI3_POINTER PTR_MPI3_MAN11_DDR_SPD_DEVICE_FORMAT, + Mpi3Man11DdrSpdDeviceFormat_t, MPI3_POINTER pMpi3Man11DdrSpdDeviceFormat_t; + +typedef struct _MPI3_MAN11_CABLE_MGMT_DEVICE_FORMAT +{ + U8 Type; /* 0x00 */ + U8 ReceptacleID; /* 0x01 */ + U16 Reserved02; /* 0x02 */ + U32 Reserved04; /* 0x04 */ +} MPI3_MAN11_CABLE_MGMT_DEVICE_FORMAT, MPI3_POINTER PTR_MPI3_MAN11_CABLE_MGMT_DEVICE_FORMAT, + Mpi3Man11CableMgmtDeviceFormat_t, MPI3_POINTER pMpi3Man11CableMgmtDeviceFormat_t; + +/**** Defines for the Type field ****/ +#define MPI3_MAN11_CABLE_MGMT_TYPE_SFF_8636 (0x00) + +typedef struct _MPI3_MAN11_BKPLANE_SPEC_UBM_FORMAT +{ + U16 Flags; /* 0x00 */ *** 20019 LINES SKIPPED *** From nobody Thu Jun 15 15:13:29 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhm5Q5KYyz4dm58; Thu, 15 Jun 2023 15:13:30 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhm5Q1WC6z3rLS; Thu, 15 Jun 2023 15:13:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686842010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TvEqa8m8EIiHdfx8FCM1aiU7MMxZrXwgrFk7USqrKcE=; b=G/PtOm+XSWKGnMx1smheiDBoBa4uUGLmFgoH5yshLUCPdU9OtVjzg+/dYDELF0euV74V7Y NYf7u9BoGmmqQyuJQ4tB2fXrTXYgRtxXzmcPY4V9RXEJcqnhy1m7CF08tvIi8ZQ1b8v0xx XcYLxWED1Oqn5GkRlSEJr56R/qJOf7Cf+e99zFtbwdH9cpFT9zeCHKSer9purmpxEVLKD5 Q5AHevXEXdbufb4ImdfcESDGnVFrxhdQD6qpu9PvPkoisuYonQljj1TOHkZeP2IUuj5Qdy cB3D3wpeFiLDQU555wrk+CmrwDpy06NWgJ1Iaxx2ArgYSqm6piNKyvVOMdFvnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686842010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TvEqa8m8EIiHdfx8FCM1aiU7MMxZrXwgrFk7USqrKcE=; b=FgSulAFGe1/rSmDBtSBlb89XKCB1y0VJlf1hcw8F3uJKpzekpY5TjNkrQV4ebRyJCsZE7z VZ9M+27fUzb6ArXC6Yw3wv8hYlIEzs8qowaweqhJajPuBinjDS2nu1v6dCO6sAUvPQ0PGF ZL396pZbg4SQcF9JbhlOdJlWiHwJvh/r2ppnGf7j7ksteaOboQ1Qz4W2V0hjQkK2YlzvDf 2EZTWkhk2h96x8gOSXOQEN9oK9JKth0mjYKv5sZI2Smw2RpmQyxC+S+Owox1Gx4KTZGO9o MDiym0JlXeLFGRcESNkxluv5+5sDeNFec7433y7KK/bd4aIYj0Bqs/f72YevBA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686842010; a=rsa-sha256; cv=none; b=I1oAzWPKpK4BOtnV82Pn1sS5wsWjntAckLWRXun32xPfEy/DQmB8MFeFNUOXaXqEtVIwP1 RDqS/jSAiQCHAfSDWai3wF/34Ne+63gX8GPnzXOT6zL6nIJcBagVjlDVIBqhdNXBOANn3I pkh0mf48S8VN+9EcXQoecmCG7M7wApTv4JtAj+yg/H9W4UDGNbraPnt98r8ellE3pGMiZe ZG2T1xcgWXUgHbhU1FypaOZLRIxfnZSvrgS+91P3S1nQOHZ26AGt7zRgHCOPLFT8Hn4xTx iCG3Uy/yCpagnBv1WQIxRsghD951196JFAPXGNEKVwmks9K9yMA36qzU7jN4Xw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhm5Q0RhkzrS4; Thu, 15 Jun 2023 15:13:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FFDT5I053641; Thu, 15 Jun 2023 15:13:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FFDTo3053640; Thu, 15 Jun 2023 15:13:29 GMT (envelope-from git) Date: Thu, 15 Jun 2023 15:13:29 GMT Message-Id: <202306151513.35FFDTo3053640@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: e27c618e20cd - main - mpi3mr: Add bare-bones manual List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e27c618e20cd4055c295c4e867c4782a0e3a8763 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e27c618e20cd4055c295c4e867c4782a0e3a8763 commit e27c618e20cd4055c295c4e867c4782a0e3a8763 Author: Warner Losh AuthorDate: 2023-06-14 22:12:28 +0000 Commit: Warner Losh CommitDate: 2023-06-15 15:03:41 +0000 mpi3mr: Add bare-bones manual The mpi3mr driver is written by Broadcom for the 9600 Series 24G PCIe 4.0 Tri-Mode RAID Adapters and eHBAs boards. This is 3rd-Generation Tri-Mode x8 and x16 NVMe/SAS/SATA (although Broadcom/Avago did muddy the waters by having multiple 2nd generations cards and referring to them inconsistently). Sponsored by: Netflix --- share/man/man4/Makefile | 1 + share/man/man4/mpi3mr.4 | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 2567cde793ee..d42f77461805 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -320,6 +320,7 @@ MAN= aac.4 \ mod_cc.4 \ mos.4 \ mouse.4 \ + mpi3mr.4 \ mpr.4 \ mps.4 \ mpt.4 \ diff --git a/share/man/man4/mpi3mr.4 b/share/man/man4/mpi3mr.4 new file mode 100644 index 000000000000..981979e37187 --- /dev/null +++ b/share/man/man4/mpi3mr.4 @@ -0,0 +1,81 @@ +.\" +.\" Copyright (c) 2023 Netflix, Inc +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" mpi3mr driver man page. +.\" +.Dd June 14, 2023 +.Dt MPI3MR 4 +.Os +.Sh NAME +.Nm mpi3mr +.Nd "Broadcom MPIMR 3.0 IT/IR 24Gb/s SAS Tri-Mode RAID PCIe 4.0 driver" +.Sh SYNOPSIS +.\" To compile this driver into the kernel, place these lines in the kernel +.\" configuration file: +.\" .Bd -ragged -offset indent +.\" .Cd "device pci" +.\" .Cd "device scbus" +.\" .Cd "device mpi3mr" +.\" .Ed +.\" .Pp +The driver can be loaded as a module at boot time by placing this line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +mpi3mr_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for Broadcom Ltd. MPIMR 3.0 IT/IR PCIe 4 controller. +.Sh HARDWARE +These controllers are supported by the +.Nm +driver: +.Pp +.Bl -bullet -compact +.It +Broadcom Ltd. SAS 4116 Tri-Mode RAID Adapter +.It +Broadcom Ltd. 9670W-16i 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9670-24i 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9660-16i 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9620-16i 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9600-24i 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9600-16i 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9600W-16e 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9600-16e 24G PCIe 4.0 Tri-Mode RAID Adapters +.It +Broadcom Ltd. 9600-8i8e 24G PCIe 4.0 Tri-Mode RAID Adapters +.El +.Sh SEE ALSO +.Xr cam 4 , +.Xr cd 4 , +.Xr ch 4 , +.Xr da 4 , +.Xr mpr 4 , +.Xr pci 4 , +.Xr sa 4 , +.Xr scsi 4 . +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 14.0 . +.Sh AUTHORS +The +.Nm +driver was written by +.An Sumit Saxena Aq Mt sumit.saxena@broadcom.com , +and +.An Chandrakanth Patil Aq Mt chandrakanth.patil@broadcom.com . +This manual page was written by +.An Warner Losh Aq Mt imp@FreeBSD.org . From nobody Thu Jun 15 16:35:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhnwB4M7pz4fQNF; Thu, 15 Jun 2023 16:35:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhnwB3xpjz4Ds9; Thu, 15 Jun 2023 16:35:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686846938; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ELxQ4jP1dEG84JGvP0obGUZ42VXtgBylduIYR23eZts=; b=aQHSYDjtBz0z0i4xsLfxvf29r2UJVy5Wxe3ahWtSMegW8TNhp4hDS9f5wWzBTDiLtsVbr/ Dk0mKwU1s1W3zd1eYjL9Zx22L58IHfiC3VvifIEDaswY1TmTEPHFU4dlkp251bB5K7sLL5 D/V34mxeSP2bD7IAKpmBfJHFLr4I4y7dWK6fA6yop6f8dZmKQJxG3trwE/ZDLysZvkjuCI wDnXeQE2OCCTN5kEmCqEIio4EOCg7/6CjG9VVSXCngWChJl0e0vFQ7YOf+JRogSeJtp+mY wzWy5VXy+tRTKl1D8IZ0w9ezzg+u5VLCKa3TpNUn4jb2wRGPdNxlP76kmLbBTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686846938; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ELxQ4jP1dEG84JGvP0obGUZ42VXtgBylduIYR23eZts=; b=ZHUjiAnp6d0Vhl4MT7PkiJNTAf/ujh0sh64Oc8qC0e2rLB4pXOp6ynW10XT1n0VAk5U97W Y2zKGsLnlMzCzwGhlU1BO7biHugLog+PuiasTvuodKc24GX0k+0nn++sVspLo7ZKDSTqZN 98hkJAca2uwwi5iShRAbuZu5w9+FjhsZMxBCiU4ZVFl827hlHHgHBFXkN9NyWveB/D/UH4 sYc28tA/cFu1URZTA1x/KcjQXZNacES93PJ9hZddoF8bE0HKFDxnL6hGfpi58jLA/LJYgF dnNy2lhIISr3T1mTZIJZ9AKOeYiSQTuTumYGHP26LHlu56YwINoyBh945Pp/1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686846938; a=rsa-sha256; cv=none; b=J4LzhulFQL1MNmvYESArmD4e3fnXDCk+83XvB4c+W9mk4axLAnsYIQ3NuI3R4wqgtpEyAK 2zk5KQJpez0folaQhnvzJVOJ968ZxR0VEyeEPh/h+zdrqwiYCvOQueRL2XQudxSkDAWzc2 /UCilYGCkd9s6RZ3W47seq7YkA/7koquSG/sgZE3ZFoHOKFfZwCz9VCkaYbNjZptKqrJAi qzbaG+ZRLXTOw8ac3abuSYd4p8wKjNamOzhUAt43h4U9XPUqyKDyMIijQ3YdIMMu6B2/N0 M+RGZoF63kYSCUdyO7dOnrclmp9I25d+xdS3D1BH0gmwmoFJCxoBMhAKKIauMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhnwB315gztB3; Thu, 15 Jun 2023 16:35:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGZcgX085221; Thu, 15 Jun 2023 16:35:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGZckD085220; Thu, 15 Jun 2023 16:35:38 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:35:38 GMT Message-Id: <202306151635.35FGZckD085220@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brooks Davis Subject: git: 758927a982db - main - oce(4): Don't directly access usespace List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 758927a982db0ae3ebb02c05aec8a53bcc0c20cb Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=758927a982db0ae3ebb02c05aec8a53bcc0c20cb commit 758927a982db0ae3ebb02c05aec8a53bcc0c20cb Author: Brooks Davis AuthorDate: 2023-06-14 17:55:41 +0000 Commit: Brooks Davis CommitDate: 2023-06-15 16:34:54 +0000 oce(4): Don't directly access usespace Replace direct stores to userspace addresses (never safe and broken on modern CPUs) with a copyout. Use a static assert on the size to ensure we don't overflow the field. Reviewed by: markj, jhb Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D40519 --- sys/dev/oce/oce_if.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sys/dev/oce/oce_if.c b/sys/dev/oce/oce_if.c index 5d250fcac0bd..bde7bf9b208a 100644 --- a/sys/dev/oce/oce_if.c +++ b/sys/dev/oce/oce_if.c @@ -2246,7 +2246,6 @@ oce_handle_passthrough(if_t ifp, caddr_t data) uint32_t req_size; struct mbx_hdr req; OCE_DMA_MEM dma_mem; - struct mbx_common_get_cntl_attr *fw_cmd; if (copyin(priv_data, cookie, strlen(IOCTL_COOKIE))) return EFAULT; @@ -2278,17 +2277,25 @@ oce_handle_passthrough(if_t ifp, caddr_t data) goto dma_free; } - if (copyout(OCE_DMAPTR(&dma_mem,char), ioctl_ptr, req_size)) + if (copyout(OCE_DMAPTR(&dma_mem,char), ioctl_ptr, req_size)) { rc = EFAULT; + goto dma_free; + } /* firmware is filling all the attributes for this ioctl except the driver version..so fill it */ if(req.u0.rsp.opcode == OPCODE_COMMON_GET_CNTL_ATTRIBUTES) { - fw_cmd = (struct mbx_common_get_cntl_attr *) ioctl_ptr; - strncpy(fw_cmd->params.rsp.cntl_attr_info.hba_attr.drv_ver_str, - COMPONENT_REVISION, strlen(COMPONENT_REVISION)); + struct mbx_common_get_cntl_attr *fw_cmd = + (struct mbx_common_get_cntl_attr *)ioctl_ptr; + _Static_assert(sizeof(COMPONENT_REVISION) <= + sizeof(fw_cmd->params.rsp.cntl_attr_info.hba_attr.drv_ver_str), + "driver version string too long"); + + rc = copyout(COMPONENT_REVISION, + fw_cmd->params.rsp.cntl_attr_info.hba_attr.drv_ver_str, + sizeof(COMPONENT_REVISION)); } dma_free: From nobody Thu Jun 15 16:35:39 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhnwC5m8Kz4fQD4; Thu, 15 Jun 2023 16:35:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhnwC4y3vz4F2D; Thu, 15 Jun 2023 16:35:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686846939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=98XG9LySF9BZ/E/q93suhasnVc3Thprb9XglWIrFTWY=; b=WCGkRYLo67Rld4Makmu8gmUdxViaJgK3uBEnwrvhsciLZ6t65XHjIBnHb6TSNKsOz3ozCa t+JPawxH0b1Jkj32GwwVQshA5n8IbfHez4bBIWlgQb6Vrb+ZaL79mSZOd1PmL6V9umeCDw e59461AGowvQZ3GRInmNp5v/KDExOd0CefhMwZXMvUc3rgPLakv/FZBoOArOBwkvqL7JH0 iYRSkTg3HLpumTU5lhT3gGYdTx8R49ucOhuzoEaEEvyDOAvYpelquyqKnRa/Lyg16KsU94 Uv33VKdQbrB6bIJOdsWyugGZtEFx+EfND9BIQN60BsIJ5/yexLJL0nYCqgl+mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686846939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=98XG9LySF9BZ/E/q93suhasnVc3Thprb9XglWIrFTWY=; b=jNxmzKpLcynGAU4HU+rfd8CEJju1Jjm4D69nGzlvPan8gHGukiMwoOhO+Mt/qrMpPG4nIh uRNVbg1NkhHV+LLWusf62L58Q2tXvXZaxsbijU+rR6XzQ7doirTtro/jiFyTWUBi3Vmd55 eeFN6m8oY++31e3twAS+NaZd/LyeiOlDnfPxbOC1IfVS4Z9ydLc0zAQVBv7fSe8q1axA4I 4KpEQsku5Y/aGnwWy06qzT6eG/d2IrHo5EV8WzDRJLG9pv2+vk/Jksc6akbrHJnSKQF7nn fnIgKoPSHTiESm5iu2GKzO8xl0pj78TGbqYzEB94lPglR4hQT+bulRY+3EBEww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686846939; a=rsa-sha256; cv=none; b=YjOvdsTNXPnMCxxlH0yYNC10X8jSclxC3SwYGaKd2NVhjp2sCQkrv3C3deKzj+76LQdCK1 w+WmqW/ruF3SP2VeZ7j6N/XRohkB4012tdLbp81T5VUSf1m7kk/l1+GJd9l+cw0kkr1In3 Y8cGV/rpmVUKae5TgCFvRZ71///CkXA11mBqMqsFRMRebUV2AlGg0elJn0Zh5f1VvUukGg 9YV1KkZVPQ0gudj/VjqYLtBqkdxkPg6ehuZLcKhRTT2Z86vSFlPE6rZq5l0zfH2NV2o79r lt8Q9esI42onjFwdOr53haBAjUQ+/lizTNYA1HnJ9tnVwpwgdImoaawT6dcCEQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhnwC3tqsztB4; Thu, 15 Jun 2023 16:35:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGZdqB085240; Thu, 15 Jun 2023 16:35:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGZds5085239; Thu, 15 Jun 2023 16:35:39 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:35:39 GMT Message-Id: <202306151635.35FGZds5085239@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brooks Davis Subject: git: 4591322980a3 - main - oce(4): deprecate List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4591322980a37d6ee38a3ed70569366e16ca71f6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=4591322980a37d6ee38a3ed70569366e16ca71f6 commit 4591322980a37d6ee38a3ed70569366e16ca71f6 Author: Brooks Davis AuthorDate: 2023-06-14 17:55:54 +0000 Commit: Brooks Davis CommitDate: 2023-06-15 16:35:12 +0000 oce(4): deprecate The Emulex OneConnect NIC driver hasn't seen any commits other than ioctl bug fixes (some severe) and sweeping commits since 2016. There is no indication of new parts since 2014 or earlier. As such, deprecate the driver with the aim of removing it prior to FreeBSD 15. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D40531 --- share/man/man4/oce.4 | 8 +++++++- sys/dev/oce/oce_if.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/share/man/man4/oce.4 b/share/man/man4/oce.4 index c5022833e8b5..4dfa8e15aaaf 100644 --- a/share/man/man4/oce.4 +++ b/share/man/man4/oce.4 @@ -36,7 +36,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 19, 2012 +.Dd June 13, 2023 .Dt OCE 4 .Os .Sh NAME @@ -57,6 +57,12 @@ module at boot time, place the following line in .Bd -literal -offset indent if_oce_load="YES" .Ed +.Sh DEPRECATION NOTICE +The +.Nm +driver may not be present in +.Fx 15.0 +and later. .Sh DESCRIPTION Emulex OneConnect adapters come in various skews and with different combinations of NIC, FCoE and iSCSI functions. diff --git a/sys/dev/oce/oce_if.c b/sys/dev/oce/oce_if.c index bde7bf9b208a..2f0727871ba1 100644 --- a/sys/dev/oce/oce_if.c +++ b/sys/dev/oce/oce_if.c @@ -374,6 +374,8 @@ oce_attach(device_t dev) } softc_tail = sc; + gone_in_dev(dev, 15, "relatively uncommon 10GbE NIC"); + return 0; stats_free: From nobody Thu Jun 15 16:39:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0q1fmKz4fRmr; Thu, 15 Jun 2023 16:39:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0q1Cz8z4Fw3; Thu, 15 Jun 2023 16:39:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ccoGXnPf4GOIG7Zl1moi4031fm2z7ApCYctaOBcq9vw=; b=B8SEJnLFGdQXhPbINsHZII/YSk9ks4kcAJc9qf4PXc0TtlFYGD8/qigxH659AFVpwinTbg lZ2FXNZ08Aq8tbSyhL23+hXKCxJR+I02iWtc3t/oJdcB2lbLQ4nRp7vmwaTMYsLIuxq6i/ BGMafqnyyeYW71K4ktrNymmOA3VMWSgyzz4rAxGVTMxYrypfybRGJek0KCrcNEybp665zB qbrq3BfCltPM82fMqxcWGPFKXQmiU/EmrLZpArQrtfWl4VtD0/pwygbKUImK3Eo4SfRvb1 YvxUgH0uLas2lz5UlHPLeuZwJerJ96hDHKOZ1zIrRjQm/RfP5A6wL5P3FPowLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ccoGXnPf4GOIG7Zl1moi4031fm2z7ApCYctaOBcq9vw=; b=R09q2TUkpoAZ+RCnhuOxPli+nfLTQ//mddDx1tpowc2kaRh7m601pfR47nMiIVeYhuchDM u1bOh0eW+adF93fenYFKDw5DX4DaduWuoQykijAg9lYNzjkX9BihAUvSHvYv87HmeKTwh2 nvGJWH6YdwLo0X9jffBTHmdu6SWjv71+n3QvIZgjh2St4/Slkiq/VYdExy6HXceRqLN48E Eyr/B8rt/prBpvLe/k9VJfezIBolQ0/QPf6Hb1KgoSIumUGxFDhTScm0l3/Lcs5AYHhP5o 8jtX7EeJgrYgMdD4o3QbM5B6MvKy6m4zllMNrT8IC7Uf85aokTgunJNJ3iibTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847179; a=rsa-sha256; cv=none; b=VaM3m0MNn16WAay9p+JahDCy8ur3o2M2obp8zl3RAoGXnZTc7rdEXpfYPkbAm93vWkKA5L Lhj+nEsLWpBU05jPE/k8tXerfiJfK2sMcSlj3geIUNQcQUVmls44o695E+2z4uwDpQti4v oeQJ6Wo4E2rzzLuGEuLgD7x/DL0sTMbMUFykdiqyPx/767vjDBUr/MMSfJDAk+QvhIv9H1 ZKmd0nTNXb/Lg2mwFnR8ZJkJ1DmLK+ol1z5mw14fK0xL5swg7gDdJtbBtGUHwCi6OXd7I2 LbZ53OXFOSmOXYsoztbI6NfZo6oOReVKvrrGRMm3OkYEuNhjjndAffgJ+SfYRQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0q096jztB5; Thu, 15 Jun 2023 16:39:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdcnY085865; Thu, 15 Jun 2023 16:39:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdcQh085864; Thu, 15 Jun 2023 16:39:38 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:38 GMT Message-Id: <202306151639.35FGdcQh085864@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 1ee66195db08 - main - armv8crypto: Avoid overriding -march when compiling some source files List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1ee66195db08c7f1f902e139ecdb63587ee36364 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1ee66195db08c7f1f902e139ecdb63587ee36364 commit 1ee66195db08c7f1f902e139ecdb63587ee36364 Author: Mark Johnston AuthorDate: 2023-06-15 16:10:19 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:38:45 +0000 armv8crypto: Avoid overriding -march when compiling some source files At least one downstream (CheriBSD) overrides -march here. Instead of hard-coding the target, simply append the crypto extension to whatever's already there. No functional change intended. Reviewed by: imp, andrew MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40537 --- sys/conf/files.arm64 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index 1fed31af0761..da71606a4b84 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -119,17 +119,17 @@ dev/iommu/iommu_gas.c optional iommu crypto/armv8/armv8_crypto.c optional armv8crypto armv8_crypto_wrap.o optional armv8crypto \ dependency "$S/crypto/armv8/armv8_crypto_wrap.c" \ - compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} -march=armv8-a+crypto ${.IMPSRC}" \ + compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ no-implicit-rule \ clean "armv8_crypto_wrap.o" aesv8-armx.o optional armv8crypto | ossl \ dependency "$S/crypto/openssl/aarch64/aesv8-armx.S" \ - compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} -march=armv8-a+crypto ${.IMPSRC}" \ + compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ no-implicit-rule \ clean "aesv8-armx.o" ghashv8-armx.o optional armv8crypto \ dependency "$S/crypto/openssl/aarch64/ghashv8-armx.S" \ - compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} -march=armv8-a+crypto ${.IMPSRC}" \ + compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ no-implicit-rule \ clean "ghashv8-armx.o" From nobody Thu Jun 15 16:39:40 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0r47nmz4fRvs; Thu, 15 Jun 2023 16:39:40 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0r27djz4G3h; Thu, 15 Jun 2023 16:39:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BQ3WTv30EcMVuWPv6do/HdbScVSnd0AiB62mTUNm9ks=; b=bk8Hzt8kDZuVJpCtSVhZkmjJoZybQGGehQG9CmltnrdXL+ssewwEBCXUbMhL6dgXOTCAoM 4lcGzbpNS+N7dFhUx8Uvo8C9sMOwC//+k2l3930AbEixxsLjotwySBVvaBilMpEcCTCWdg 6CQFL8rDHqqBgstWxl5tFucFZo9M/vaITW6b8w5Sdyx8g8hLTS2MaO0oKyMNkuYMShke/H 9NHeaDvgUpQSOsQiK3xRrDaSBaFLzvnwOo7HWSG1lru4d580mkaYy1ecTlQkRbVMlGYTRr yMlSp6KEnIgP4GkKaXMGtt216cnWDEuxVauYc2ECRgDYDfo5vGnEMdm2IfVf5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BQ3WTv30EcMVuWPv6do/HdbScVSnd0AiB62mTUNm9ks=; b=J2TLkT7BVpPjFW14zM5+fEj5xXqh0LoXYAXOXGTvdIvPlss1bnLrlaVVpo7xvZote1HJjX Gb6CfGy+iK4ON53Q1Iag27Pd7r95sPDlBolL9waGAbq88NRa576MjuToE6Syye37TkLT+d wy++TF1+VQIhHAPjcNt4Nbr//5xahb39Bq5iEcUlbxyRxTVONmdke0qoaYqm0Go2OLKUIV KFuGTfZlJ3RvULjFAwPebiFsBd78HDW7wEALR4AY+wIGLSH2GuhYXaoVBkTuP+D1HdmCYb w1E3XJRF86MtHSx/6P02FN6GBK4KXEyLRG6jd5CRFKhmZT3Yjj6OTcwsMQ1VuA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847180; a=rsa-sha256; cv=none; b=vAk22xcyXe48Dxt/e5bP9nJy0vFMJ8FWxLeR5/TYAWIdDgtBOLbKm2oWwvRx5enGNRwyW6 SN7B8aYqi3jVKUL8RPHU2g5DcnGSMcT1yxVFKpi5cU7WgJjRQMAVIhdNHVGAr1Ma349ZXj NAluTA2huHraZiYk1Hn/48mHF03F55ifH2Oxid/Fje/0iWUu3CThFeQKjX8oAdrm5t0gND ZdmuJwXwQown7XWAXM1jARxaTC4CptNi17HnRkXk+cZDR9T58pYiYM25oZb2NCEv0pFIfp OapMYctXcBTs5Vr9PcouwAHLNaR9SNxN2Rdc8xm5KSJOLJuvUJ8GWNDf4mp9ow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0r14L5ztP5; Thu, 15 Jun 2023 16:39:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdeIt085891; Thu, 15 Jun 2023 16:39:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdeZX085890; Thu, 15 Jun 2023 16:39:40 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:40 GMT Message-Id: <202306151639.35FGdeZX085890@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: d3251842321e - main - arm64: Remove struct arm64_frame List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d3251842321e7a5ac8bbb2aec128328cd10f3a84 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d3251842321e7a5ac8bbb2aec128328cd10f3a84 commit d3251842321e7a5ac8bbb2aec128328cd10f3a84 Author: Mark Johnston AuthorDate: 2023-06-15 16:10:44 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:38:45 +0000 arm64: Remove struct arm64_frame It was used in one place and was added specifically to support dtrace stack unwinding code. Write an equivalent expression using struct unwind_state instead. No functional change intended. Reviewed by: andrew MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40538 --- sys/arm64/include/frame.h | 5 ----- sys/cddl/dev/dtrace/aarch64/dtrace_isa.c | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/sys/arm64/include/frame.h b/sys/arm64/include/frame.h index fc10f8574161..c838193bee9e 100644 --- a/sys/arm64/include/frame.h +++ b/sys/arm64/include/frame.h @@ -51,11 +51,6 @@ struct trapframe { uint64_t tf_x[30]; }; -struct arm64_frame { - struct arm64_frame *f_frame; - u_long f_retaddr; -}; - /* * Signal frame, pushed onto the user stack. */ diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c b/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c index 1641ad246419..d8ef65cfb6d9 100644 --- a/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c +++ b/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c @@ -133,7 +133,7 @@ dtrace_getustack_common(uint64_t *pcstack, int pcstack_limit, uintptr_t pc, break; pc = dtrace_fuword64((void *)(fp + - offsetof(struct arm64_frame, f_retaddr))); + offsetof(struct unwind_state, pc))); fp = dtrace_fuword64((void *)fp); if (fp == oldfp) { From nobody Thu Jun 15 16:39:41 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0s3x0gz4fRks; Thu, 15 Jun 2023 16:39:41 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0s33Jmz4G6l; Thu, 15 Jun 2023 16:39:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aFgRrxhWAYXRx5uiQXXLohMmfAPeR0cRpEW1CzaTcU4=; b=a1FeeASFWrnuzYBjiZXIl2CMV76qjnQpJcwkGstpsQJ/bL2qPodkps5UDi7Elg0rfBLsGp G0n6xbsZP9MK5eDNLKcjhBISkBU/NUEY6Dl12q8iecE/QIw9JKIEjPKNW09lbp98T/0lcb +7LxAphbg3ehtK0YEtPtmzUiePAjAvE2nHDg2SW3xzT1JCnUOvtUeduVNYVBysKhYd3SZG DEVQR2CPQoRGfi4nEEhBMWUH0ypF9b358vHKM9ZwYgki0qVigSbnvzWbq6LkxPEgK6dTL2 cci9dyK5lZ8b0wi/LlXyyTGxgKf6ECDjcDxBRTd73LXHpu9UpgVi1Kp4JLQS/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aFgRrxhWAYXRx5uiQXXLohMmfAPeR0cRpEW1CzaTcU4=; b=iVpHVCtM0UwVARSSasXTZ2rBScbh2UREpDqbLLsCHRVN9ZCStm/EXxT/ceQ5w/6RPbgr5h wXIB0UE7myhRql5YI/2nyHPmx5CQCLqjhecoWjdwMhSlhAVfJeTDjr5D8vFiwobz2ONzSO 51LmX0uoQKE0DoOivVjVWvsUOPTadYcYh1OIgvkAxEMbZuBN36UDwywtiDqz4imJoVBwsa 9qpbtw66FBbj8K1idx8e/qyfCt/rXn4xlVKfAUhkR4otJ+FG9rAmuGQ2KPqI2Qdzou8xPA /MCoGEyJiSyjsxD8Cug9mJsjgfF7mOM23fcBu6gGyU6NRCNQGafaqu7CueDATA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847181; a=rsa-sha256; cv=none; b=VPRh48tLuWDu8qBhlLjAIYJkan/bxAjKJD+bAWPMxgcIwb6htCT64uHlP9zf6IUc4wEoxs rUa+RtWjc1IrAcwLH6+n3BbGcHzYAvkkXqbmgEVh4zXMx/3g9FnAifzjPNAigI+fyXtJYj +q7HyqK3L3HDYHgpgnwTpNmEpx0/SPx3bClPw3VERveew9Q7SQuY8HkB5/62zQ9y4Ad+JE ENKeC40Pde23+9IWGo1/DBuLQOxd8phCPsppgBA7KqaKF3AkLHqOUlRuVyRt5ln7mRCpRa m0dBqX/7ys+VPiogEPiAlcieFCQw0BQfT+CT5dBIe7dpL/XYb91io4JlAj9AnA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0s209tztZx; Thu, 15 Jun 2023 16:39:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdfoq085910; Thu, 15 Jun 2023 16:39:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdfR5085909; Thu, 15 Jun 2023 16:39:41 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:41 GMT Message-Id: <202306151639.35FGdfR5085909@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 91522683d49f - main - dtrace/arm64: Store the fault address when suppressing a page fault List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 91522683d49ff9757b9c5bb6e7de69266e26dcef Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=91522683d49ff9757b9c5bb6e7de69266e26dcef commit 91522683d49ff9757b9c5bb6e7de69266e26dcef Author: Mark Johnston AuthorDate: 2023-06-15 16:11:11 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:38:45 +0000 dtrace/arm64: Store the fault address when suppressing a page fault Reviewed by: andrew Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40539 --- sys/cddl/dev/dtrace/aarch64/dtrace_subr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c b/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c index 694e3c70ae2d..06d20d7d9cd3 100644 --- a/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c +++ b/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c @@ -208,7 +208,7 @@ dtrace_trap(struct trapframe *frame, u_int type) case EXCP_DATA_ABORT: /* Flag a bad address. */ cpu_core[curcpu].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR; - cpu_core[curcpu].cpuc_dtrace_illval = 0; + cpu_core[curcpu].cpuc_dtrace_illval = frame->tf_far; /* * Offset the instruction pointer to the instruction From nobody Thu Jun 15 16:39:42 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0t4PCHz4fRw0; Thu, 15 Jun 2023 16:39:42 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0t3Z6qz4G28; Thu, 15 Jun 2023 16:39:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3Cqa/mW7SL8nmbYHruXnM3vC3rLAGQbPpwHvRt/okBY=; b=WvyBZnBWXIeeVHH1ZmtS+G1DYA1G9XL5VQ0k562qdU/q63IHl2qNbfMFb6bK/zEL5BuTqn 0KeMZItWj0cQ8Lv8StymC2i4YNyEr68uHaZJC5ps5nYYEhYBRpfRY+N+swYlcDBazc0HiY oO1DX91c+o96wH3h+Qfu7ORk3MyLkF2F2f4AP8vUqvaB3jaKE881mQ1RW7Lfnt46odzNLr BjWaJvulugUb1/8DJ8tJi7RMWIlBqlIP5btqhbr439GkfEaj4suAXmHGvIM6uroi6uii5W 4GZM5D3oYk1UmLuzYmK/3K5FwQ1P+SiSfDR2TjKRQNFul4clfXUMB44wI8RVMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3Cqa/mW7SL8nmbYHruXnM3vC3rLAGQbPpwHvRt/okBY=; b=EhmFaIqoaVupcpdd1hhna8F0+slBA4oxW7XR8orM/a7z0F1YZCPAuD1HD6G3zSO3X3kGbc 1RBTt50pNV9eel2gk7zfu1d3KbANTv/MyxrkBfwu+AhJKys+TDR/IplMo0dFRv3StJIcUl /4M1St3btVaZySaixhxRmbq1wtVjiA7VhFQVhy8Jx6kNx8dZjZ9cl+qtxHTrCEWHvL5ofp xmhmco4LgXM8zkNKIyw5POW8eCRtvWgmnYKy3IwL4KN7W6+1PLK/gB2XbvraX6hBv835GK LXZGFBvkKTrBhdqSouTciDi74XcBzr1vrV1YQHeZ+ewQAZ75NVk2rniIZ+Bpiw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847182; a=rsa-sha256; cv=none; b=HRGHGEcSHFdW+pvtxfMl0SeyquViqK6nmenf3McwFXsXUd1y6JXHjBrhTXijJaxt2c7zZG oZi1FcxAvQ1zcZV0r/8RVVBKHVDI4v//77hY/JPgQAuxdwkwVkyAxrZD/vPyqWHflsqpiW wKeuS0LoKwt6yjAQ8foJ7r2CQ0S5C5+iYvbW1+nghoZ1UqTKJToajVToUx++zSC0XKYJgu bmdBEgdmeXKg3gpAKAAccGJ+Jyts9GUYbahd4RjLzSpRrfez6a4b4R41JZyge6xUzity5X yo1CaWlX2qUokx4dug30DsN2zXX7PJAciWLdM9A9RWZWFOZ2U7PQVe4k7ealEA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0t2d60ztB6; Thu, 15 Jun 2023 16:39:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdgV2085930; Thu, 15 Jun 2023 16:39:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdgcI085929; Thu, 15 Jun 2023 16:39:42 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:42 GMT Message-Id: <202306151639.35FGdgcI085929@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 6281147a963b - main - dtrace/arm64: Fix user memory access routines List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6281147a963b02bb5d7b4db15ee295d6d65d0fff Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6281147a963b02bb5d7b4db15ee295d6d65d0fff commit 6281147a963b02bb5d7b4db15ee295d6d65d0fff Author: Mark Johnston AuthorDate: 2023-06-15 16:39:21 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:39:21 +0000 dtrace/arm64: Fix user memory access routines Use unprivileged loads to access user memory. Without this, the accesses trap and various dtrace actions such as ustack() fail. Reviewed by: andrew MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40540 --- sys/cddl/dev/dtrace/aarch64/dtrace_asm.S | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S b/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S index 710232a0d428..913429865421 100644 --- a/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S +++ b/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S @@ -72,7 +72,7 @@ uint8_t dtrace_fuword8_nocheck(void *addr) */ ENTRY(dtrace_fuword8_nocheck) - ldrb w0, [x0] + ldtrb w0, [x0] RET END(dtrace_fuword8_nocheck) @@ -81,7 +81,7 @@ uint16_t dtrace_fuword16_nocheck(void *addr) */ ENTRY(dtrace_fuword16_nocheck) - ldrh w0, [x0] + ldtrh w0, [x0] RET END(dtrace_fuword16_nocheck) @@ -90,7 +90,7 @@ uint32_t dtrace_fuword32_nocheck(void *addr) */ ENTRY(dtrace_fuword32_nocheck) - ldr w0, [x0] + ldtr w0, [x0] RET END(dtrace_fuword32_nocheck) @@ -99,7 +99,7 @@ uint64_t dtrace_fuword64_nocheck(void *addr) */ ENTRY(dtrace_fuword64_nocheck) - ldr x0, [x0] + ldtr x0, [x0] RET END(dtrace_fuword64_nocheck) @@ -110,7 +110,8 @@ dtrace_copy(uintptr_t uaddr, uintptr_t kaddr, size_t size) ENTRY(dtrace_copy) cbz x2, 2f /* If len == 0 then skip loop */ 1: - ldrb w4, [x0], #1 /* Load from uaddr */ + ldtrb w4, [x0] /* Load from uaddr */ + add x0, x0, #1 strb w4, [x1], #1 /* Store in kaddr */ sub x2, x2, #1 /* len-- */ cbnz x2, 1b @@ -126,8 +127,9 @@ XXX: Check for flags? */ ENTRY(dtrace_copystr) cbz x2, 2f /* If len == 0 then skip loop */ - -1: ldrb w4, [x0], #1 /* Load from uaddr */ +1: + ldtrb w4, [x0] /* Load from uaddr */ + add x0, x0, #1 strb w4, [x1], #1 /* Store in kaddr */ cbz w4, 2f /* If == 0 then break */ sub x2, x2, #1 /* len-- */ From nobody Thu Jun 15 16:39:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0v5N8Gz4fRn2; Thu, 15 Jun 2023 16:39:43 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0v4F1Mz4GBF; Thu, 15 Jun 2023 16:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bvtGz5+XwICv7tx455ajUHyi/OBHnWIK3PJ9HD8Wu7Q=; b=aejMGGBkx2yHvvx8z1FN/jOwgOzXV7W952Fg8n33UiVObyIt1b8YKcVTcwOhIqZ4U5U9HV /07yW/1xBW/KWOw2T4Z6QH3Eit4lpLJrNPVx1Kd/VQix8qerBg0OccXBRnR2RfxRgki4bT j9lu5k2JJ4raTbAwvGQ9H9X86efwyAccUwyh48HnjscfU7GcudA3Ful9s3e9uGY+ZnwMkj XQ+C8SBDXWlLtN3MGYbriHTVZNlbrtYec1ABSh+2NHZVt2JpMWvRy0OSAIi2uUvGoRergf 9SJhO8exzml5YISLxWc/Ui+9Bnjmic4D1WfOgoUX27GKGAxDuTs5dWWsWiETFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bvtGz5+XwICv7tx455ajUHyi/OBHnWIK3PJ9HD8Wu7Q=; b=LOvJCw42XfC2km3ZIE6FN2D+glYwjU3PyvrdV2WbrUmMGQ833ZPH6Q5Hu7paRo9COQtTCF +xlpoy76cRkc2iLghTiz2ZBJW+M0njlCDXejsVogg8QouLHenizztX0JcIHwsKZdVKgNhB BiA75i5KefUNRZvCSXTe8OvHIauohAy2WfBuQjeJqlc/2kDQmhpgUVNs+YbVhGdNUYd8Nt nA/FD0/c1O9AZ2g7JWxcHE55Fq1dj/Hbod8Vfgh+Igofe/TYUjR6SSVvqt+C8uYbLvMEb3 tfl/CWmjxTJxx9ZvO12vi/766mWRAwldXBKBEbcVJdnq14YZ5QXmxdddA5CgiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847183; a=rsa-sha256; cv=none; b=LmF1kGR/sOo8CGRiCU93ojOj1u7OP6oINLCcMJCGfeXdlpgNs7yLrVU9aP7qnx0ZRIn4Tl 33AZk7nE84UoK1Z4Tar/Z69K2mkduubByA364cbSmNR/f4kIZyhpcP+GyQ/Clb9xg2lQ91 qFrtSQKO4NEwY9r+4dyBO/qEJwHAf1B+TNxvkcprtqu573fR/ELDP3N321fOi+xU6FKNjq CwefudSvY3QidPwzCp4sJeHeDdBXfq60jH8cshwRh2dYDSZ3rZPYmbvlXEdWvdOfc503hM daRd/4+dh9wFgJywQ4/b+SMJ5sqx341SfH+hbmJJ8OcurxL5F0WjuiQBY0DyMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0v3KBrztZy; Thu, 15 Jun 2023 16:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdhhg085949; Thu, 15 Jun 2023 16:39:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdhT8085948; Thu, 15 Jun 2023 16:39:43 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:43 GMT Message-Id: <202306151639.35FGdhT8085948@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: e1390215af4e - main - bhyve: Remove special no-op handling for I/O port 0x488 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e1390215af4ed975b43ccc41b75c30bdc0995d06 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e1390215af4ed975b43ccc41b75c30bdc0995d06 commit e1390215af4ed975b43ccc41b75c30bdc0995d06 Author: Mark Johnston AuthorDate: 2023-06-15 16:12:25 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:39:27 +0000 bhyve: Remove special no-op handling for I/O port 0x488 This appears to have been reserved for some kind of debug hook, but it's not implemented and appears never to have been used. Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40555 --- usr.sbin/bhyve/bhyverun.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index d56a1575e65d..052657a50dbf 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -112,8 +112,6 @@ __FBSDID("$FreeBSD$"); #include "rtc.h" #include "vmgenc.h" -#define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */ - #define MB (1024UL * 1024) #define GB (1024UL * MB) @@ -564,36 +562,17 @@ fbsdrun_deletecpu(int vcpu) return (CPU_EMPTY(&cpumask)); } -static int -vmexit_handle_notify(struct vmctx *ctx __unused, struct vcpu *vcpu __unused, - struct vm_exit *vme __unused, uint32_t eax __unused) -{ -#if BHYVE_DEBUG - /* - * put guest-driven debug here - */ -#endif - return (VMEXIT_CONTINUE); -} - static int vmexit_inout(struct vmctx *ctx, struct vcpu *vcpu, struct vm_run *vmrun) { struct vm_exit *vme; int error; - int bytes, port, in, out; + int bytes, port, in; vme = vmrun->vm_exit; port = vme->u.inout.port; bytes = vme->u.inout.bytes; in = vme->u.inout.in; - out = !in; - - /* Extra-special case of host notifications */ - if (out && port == GUEST_NIO_PORT) { - error = vmexit_handle_notify(ctx, vcpu, vme, vme->u.inout.eax); - return (error); - } error = emulate_inout(ctx, vcpu, vme); if (error) { From nobody Thu Jun 15 16:39:44 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0x0XwCz4fS1R; Thu, 15 Jun 2023 16:39:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0w5kh0z4GP9; Thu, 15 Jun 2023 16:39:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UFIUIj48C9VowRPljY+YIlNFDHsOdCFZ/QIHL7nVmkg=; b=O2G3lGS3NzqS2yR78z5/ouhg9Vy/kSEkh2Ig8WRQFOgvqZ4FXRex6n0e0Ws3ao5nO0TUtd 8YkYFnp9ZIfWoHDkQmtQLUqWdsufwlV5xkft8RZwPcDne/N53W740bxkq9vRdHS0vG4rUd T+xQwqNuYcsxdIZX82CGmROE8ckuQbFQmjIUhZFWeKpjtSERc1HLSZ/PrMQjkxul3Rru+f cflIpHyEcPp/4hmKYBHGg27LWTbUhEmeyKA0oHB2Y/+VYFhbYfxpCWeFVs+Jt4Dls2zbQp ZFz+PEn0GFa3luuiytwsvvUlsq77Aew7zRxGr+kZMzqUoZ2MGTkOw2dcnHkgCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UFIUIj48C9VowRPljY+YIlNFDHsOdCFZ/QIHL7nVmkg=; b=KPwGLe7A2imEdy9uoClU2W0WxmNIfHOC9Lkj9uG7adetwXyw4xjvqmXUyN0y7zFsLxLvtX dezuz7t+llj2kYfEXaQ915eSbTRjyzdqowc6G3Jnc4kuOfBavxUkvPGFJzLtqptDC3x0UD KVci6wWRw07ebFBdkouS9WrtfkgROOOiaDp8gk+Vu0ztaNslMdH/gFn8uUZp7YDgOm++SF Pju+Y/wliKwS6I3YbMWpvBK5wax96cBsqSYEns2VDO1vZcOZddzfxoP76wecW/qn3N667Y lDQdd+HuEYbXoIEMCUY8qMmllSYId1Rj6pNRl2Qi6MTSK8+jqdgu/6AxEkUZXA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847184; a=rsa-sha256; cv=none; b=Xj1hl+B7uymrN7sII5p2/h8sDygcBpnjbifTEFhmxxXKfFcOhNcf+0hz/He8G0BjFA3z9X 5J3yxZsJylUh3nSVyuCbEv4Z64rESjyPP9t0VmsWFgJMAM7MwdRBnOZhHMZrkhd7VKjvBw s4IA08YNEjHSczZoNLEfS0n/Kw1+8dFm+iagBcISi3hLKKeaX5q1m1YiZ63xDcdSohSifr XMuTFc8GFG+/Ma7I23p+YSD4gdzr35XYsndjgtdcfO3ilhphnvsFn1OXswgjvXhLVH2DVb TrEwFm1zLHUeiGkKqX+3JgToIx/xEYczDbT/3tkaRV19e8jqk3+5SwiHytau/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0w4TnZztRx; Thu, 15 Jun 2023 16:39:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdiKT085972; Thu, 15 Jun 2023 16:39:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdiR6085971; Thu, 15 Jun 2023 16:39:44 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:44 GMT Message-Id: <202306151639.35FGdiR6085971@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 50e1cc94a138 - main - arm64: Make a debug print conditional on bootverbose List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 50e1cc94a138f8886588eabe0b849b487d9925a3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=50e1cc94a138f8886588eabe0b849b487d9925a3 commit 50e1cc94a138f8886588eabe0b849b487d9925a3 Author: Mark Johnston AuthorDate: 2023-06-15 16:13:05 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:39:27 +0000 arm64: Make a debug print conditional on bootverbose It doesn't seem particularly useful to have it enabled by default, and it spits several dozen lines into the dmesg on a test system. Reviewed by: andrew MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D40499 --- sys/arm64/arm64/efirt_machdep.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/efirt_machdep.c b/sys/arm64/arm64/efirt_machdep.c index 9f13dea5b698..37248e53d87b 100644 --- a/sys/arm64/arm64/efirt_machdep.c +++ b/sys/arm64/arm64/efirt_machdep.c @@ -220,7 +220,10 @@ efi_create_1t1_map(struct efi_md *map, int ndesc, int descsz) else mode = VM_MEMATTR_DEVICE; - printf("MAP %lx mode %x pages %lu\n", p->md_phys, mode, p->md_pages); + if (bootverbose) { + printf("MAP %lx mode %x pages %lu\n", + p->md_phys, mode, p->md_pages); + } l3_attr = ATTR_DEFAULT | ATTR_S1_IDX(mode) | ATTR_S1_AP(ATTR_S1_AP_RW) | ATTR_S1_nG | L3_PAGE; From nobody Thu Jun 15 16:39:45 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhp0x6dK0z4fRql; Thu, 15 Jun 2023 16:39:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhp0x5yvXz4GPT; Thu, 15 Jun 2023 16:39:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847185; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gCvUmLxdjiBtiGhVCiNYnFRYQtDI4v4L2vXZxmy3tz4=; b=MFjTK4C5gUyv/mZA6XZ/+tcHa6L2oWEztlxMkplkNDSqO8PSe4BhUPb88X4sWAE7U+7Cu+ gXlF9krwZoIBz/Xz1weu7RLEOhb9K770XITrHJclVK/xpP9j017ehsv1Uim1LKaM7NaTJ+ ToKpFTeHopxy5NyECGSatzsjs6IdqDq91VQTc+DOKywUhLJfI0ufnD4FB25V85dhs6Yhbe YtjEAq0WjEQz+Z8Xuc2eazuJzWBGrcQLtN5jRIrP0a5LIqxQFcqb71bN33ZZpZt8DqFSEc igj1WmrBJb5J1sTZevL00kx4OaKidl1CAnlOXHFdYHl8SD1GA4r9b0BhqEjjXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686847185; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gCvUmLxdjiBtiGhVCiNYnFRYQtDI4v4L2vXZxmy3tz4=; b=Tm/1vRsMV/m55oO8fBd539d1Aatjza8m2GUSzJJFdJJXJti2ZT03Ec8h8t3/9l33O8XavJ VQPTaXP4rtdlbO4kK9sBL0FTZZA+PS5ikqxi2UbgItWpYSYAJUldE+hAl54uwvMdkJWVDW rRXxl/NdkNFqXRsWWGPBS7rNwefVxGhdP0Npff3Nk4NxiidIPY/c1WJRR+fKgBUOXSMX9/ oaBS7m+IF/PwW3VmNNi1MUlntZ8YW2KRD5U5Rw5rM5geXtW6asUxf3pKPqyYUmv+ntW8aw LFk495e5yMrDIyDsycpBlx8GMn39C1X5TYqWouGkfWi3awuWVkqDyXQN1xBLSw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686847185; a=rsa-sha256; cv=none; b=LJJl4hCZi+qF6XUpwHzjxCEBgjBEXi906B3BAoHeAhXXuQYVP/maZfGL6VQDQFy6icW0CJ KdZ2ZuPJLqIsbZM+LF7OkrDeohIyE/QDdQzWh9lwh9dbqdrlS6R5KVDGaF3K8HHCvWIrpC Z41oFgsNgrb3GjDqaAsimP7MUrQ50sc5EmseVXYOzxz2G1aHe/glKCM3spiOz+Obz2dkCA 16a0jTB80eS653dX+MTUecAWN+F1YwVduueCYVkUTNjAH8g1oYuW44XtGpl//hZOoC/UNo pf02KWruSE3oICl5iCRnRSI1GJ3Xx/MRi8W06GyCCdZXrTnlTHpkZmHc632ICQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhp0x54g7ztVK; Thu, 15 Jun 2023 16:39:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FGdjDE085997; Thu, 15 Jun 2023 16:39:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FGdjHT085996; Thu, 15 Jun 2023 16:39:45 GMT (envelope-from git) Date: Thu, 15 Jun 2023 16:39:45 GMT Message-Id: <202306151639.35FGdjHT085996@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 19aebfbf80b3 - main - bhyve: Sort SRCS List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 19aebfbf80b375ecaa807b36b06d55b34b953f3e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=19aebfbf80b375ecaa807b36b06d55b34b953f3e commit 19aebfbf80b375ecaa807b36b06d55b34b953f3e Author: Mark Johnston AuthorDate: 2023-06-15 16:21:54 +0000 Commit: Mark Johnston CommitDate: 2023-06-15 16:39:27 +0000 bhyve: Sort SRCS No functional change intended. Reviewed by: corvink, jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D40553 --- usr.sbin/bhyve/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile index ae1e82e7b828..f01f16d56e6c 100644 --- a/usr.sbin/bhyve/Makefile +++ b/usr.sbin/bhyve/Makefile @@ -15,9 +15,9 @@ MAN= bhyve.8 bhyve_config.5 BHYVE_SYSDIR?=${SRCTOP} SRCS= \ + acpi.c \ acpi_device.c \ atkbdc.c \ - acpi.c \ audio.c \ basl.c \ bhyvegc.c \ @@ -27,14 +27,15 @@ SRCS= \ config.c \ console.c \ crc16.c \ - ctl_util.c \ ctl_scsi_all.c \ + ctl_util.c \ e820.c \ fwctl.c \ gdb.c \ hda_codec.c \ inout.c \ ioapic.c \ + iov.c \ kernemu_dev.c \ mem.c \ mevent.c \ @@ -44,13 +45,14 @@ SRCS= \ pci_ahci.c \ pci_e82545.c \ pci_emul.c \ - pci_hda.c \ pci_fbuf.c \ + pci_hda.c \ pci_hostbridge.c \ pci_irq.c \ pci_lpc.c \ pci_nvme.c \ pci_passthru.c \ + pci_uart.c \ pci_virtio_9p.c \ pci_virtio_block.c \ pci_virtio_console.c \ @@ -58,7 +60,6 @@ SRCS= \ pci_virtio_net.c \ pci_virtio_rnd.c \ pci_virtio_scsi.c \ - pci_uart.c \ pci_xhci.c \ pctestdev.c \ pm.c \ @@ -71,17 +72,16 @@ SRCS= \ rtc.c \ smbiostbl.c \ sockstream.c \ + spinup_ap.c \ task_switch.c \ tpm_device.c \ uart_emul.c \ usb_emul.c \ usb_mouse.c \ - virtio.c \ vga.c \ + virtio.c \ vmgenc.c \ - xmsr.c \ - spinup_ap.c \ - iov.c + xmsr.c .if ${MK_BHYVE_SNAPSHOT} != "no" SRCS+= snapshot.c From nobody Thu Jun 15 18:33:58 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QhrXk5Nxdz4dxr7; Thu, 15 Jun 2023 18:33:58 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QhrXk4tBQz3LN4; Thu, 15 Jun 2023 18:33:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686854038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=knq1QYftQolNgoTk7Z238JwJNX86BhkQ7RSY2s82XFw=; b=dmo0BPtU+h9oUamF749lcZsTjnyI8LFtzBtxW3dAyGIF0KozUTTT5xX8XV6dqeZuzdBQrL qjDGZl/i4V8PcoezR9OVyG9aDb5V1gdAAYb1SXSw8KCr3NJannPQKJzB7+IySUGFZOYa6q tTV/TZZdysCu3BIqEcOxStAGQn5vzAxYxrjYe5P8kWodzt6x7+7dTVraTUQw4GK/JzKK4/ 52Hb+Yeuq1A6Fbmr6gAy9daBOUOKNksAKExS+JbH+AaJgm8FA2KywVWj5dqhqlkEZYw+II pf+GmL3yYjoEKcOrxEGrvTGaD+UGsbRyqhYZSpdXLiC5FFWzOIUMg6cvG9VijA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686854038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=knq1QYftQolNgoTk7Z238JwJNX86BhkQ7RSY2s82XFw=; b=VLxX7X29rJAbfxCwKuKVngjWPWBAjASppKP+LWYWVnu4G1HlF1exSg65bpzRoaSu/TR3oJ 3txY7Au/NVM9YxbJj9obMABCD8MoGN35vDKjPtg3AY626BkLd+Mc6WbNiSvzUNWlGYzxBf gaKoGDJdlHWy44Y2b2mHK7r+lThoX9MBrva9G7/TUmuQ3b7k0CrNxaZHekYn1VB33PYZwo bVAwXJdDkdngAXUtc80nnmLrxrz4Ym9/7E55dhV/TPY0nRN6XochXpFU7ctshMNN9+Odjr vMQl0yPFQomYaYZqmh7qvcckAbUYEXwKpWUSC2GY6LMmJnZHJODa3APmrW7viA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686854038; a=rsa-sha256; cv=none; b=FW4lYfY3azUswqhYED1BGweEIhWjkT8Tr9Ys9L7aDhTEq1TauNIyJ266WGTHic0+AlpT2p OskMnbo59TRnbk1cyVfr4KkYDMEzHDPciHtfOXAzwXYrvvtW/ByWEWLq2+3SNWhU2QUY0/ 1FZA/613nmQ85ePt7xE3ciIf63kNk2k71KT0bTHxojVo3ZH7QM12xhWjSSZ88T4YRB9Hvy Bdogm7bDliDtnl5Dog/fzIITsRU79C8UylXOEmb+jN848cSX//wWnu0QqLENcO1wJ2W0BJ 4tfSzkfNxriig+DOwGJ5oQgDU56tfqWnqEvns7HwaRWCgdJlb7Nw/elbtEwlPQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QhrXk3yjYzx4n; Thu, 15 Jun 2023 18:33:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FIXwgh082212; Thu, 15 Jun 2023 18:33:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FIXwg4082211; Thu, 15 Jun 2023 18:33:58 GMT (envelope-from git) Date: Thu, 15 Jun 2023 18:33:58 GMT Message-Id: <202306151833.35FIXwg4082211@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 9f2e54d1b330 - stable/13 - EC2: Chase awscli package rename List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9f2e54d1b330c904734619672c944d8a25265758 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=9f2e54d1b330c904734619672c944d8a25265758 commit 9f2e54d1b330c904734619672c944d8a25265758 Author: Colin Percival AuthorDate: 2023-06-08 04:22:25 +0000 Commit: Colin Percival CommitDate: 2023-06-15 18:33:50 +0000 EC2: Chase awscli package rename MFC after: 1 week (cherry picked from commit 267411d164d4d38a701599e3afe8d9e9261f65dd) --- release/tools/ec2.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/tools/ec2.conf b/release/tools/ec2.conf index c5eef404bf3b..d44fe9ff2f27 100644 --- a/release/tools/ec2.conf +++ b/release/tools/ec2.conf @@ -61,7 +61,7 @@ vm_extra_pre_umount() { # The AWS CLI tools are generally useful, and small enough that they # will download quickly; but users will often override this setting # via EC2 user-data. - echo 'firstboot_pkgs_list="awscli"' >> ${DESTDIR}/etc/rc.conf + echo 'firstboot_pkgs_list="devel/py-awscli"' >> ${DESTDIR}/etc/rc.conf # Enable IPv6 on all interfaces, and spawn DHCPv6 via rtsold echo 'ipv6_activate_all_interfaces="YES"' >> ${DESTDIR}/etc/rc.conf From nobody Thu Jun 15 19:28:01 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhsl52J9Zz4d90j; Thu, 15 Jun 2023 19:28:01 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhsl51wPMz3nLq; Thu, 15 Jun 2023 19:28:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686857281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O/Dllh/6pKeNOZUR8BYiiW68cy68nyN7oC1SqBNJsZQ=; b=skr89TCoN4QLt2720dUDgwy78Hi/QDyXMPmvjK4nVQY8w0ez3MfLvT5ZFYBA13SAyT4vrq 6rHjbjTW5z2qKYhd9JtEefIcDmafj681AaBQL/pn8rl35q5rAI5/c03bBwS+bVxUhgKI3v 2OG8fUGoQtt6IEubFbq4/L6bKE1PDE262ONSCjQV4rLq9FIJpeVDqxETF1fnM/McK6Uvud Zdye+kSONKf1sSKj4hlcxl0ngN1uCuarRBbJszRTzpDCYbL/gJrY3YAqELXsysjIkRra2f 6ktwMxVJQ7unw7raJf0WzlegesZ71yifzQ99tqTDZUhnVmRoRDGDdZY4h8IUNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686857281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O/Dllh/6pKeNOZUR8BYiiW68cy68nyN7oC1SqBNJsZQ=; b=CWU1wfesDUaEMZZ98jlELHF8rfp58Q2EZs2QlF57RGvewbt5NtPwgqeJsikHlHrPWRiSl0 r+gAWQSe8Fdy3KV95nnVI0rcqiekk2HX4ZKU2NA8fB0oD8PfA55xDS3Kwkb2XUU6N3f/NB nO+xQq3JuZlsYdjpjnrryE2+JkulWPZz+IlWz1drb31AvetDmEhG0WzRffpGnr71N0gzfb 7LKN+WsVxmo41A01i41ec42eI4XeNKsqnS3tikfsH25shUHg7iQPKLBiDI3RWfOAP76bqV /xXAZDNi9rQvryo27oPDUR2FFiZN1ag37259Y1+ftJnqxoWjDQZB9FibHjZKdA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686857281; a=rsa-sha256; cv=none; b=q2PMBX8nFiDqs/6ZvO5AfVkCsBpCjv6BN0PLCFW0g4QC9FJj5jYj2MjXQhHg0Q4yKswawq SG/Md7mLvPuyqAC2rs1+/DxCoJH7OjcfulvPbeVfUO9k5pxpbhZto2/bhaRq+OZ5arCZ36 7pbZkrDHFBiVWcfJ5yzy2WfPtIJ5Bxc7rf3k8CmTtu4ZFbaCVE4isTEmsBu27S4HzCrwiq ZAvYGOnlDRH1ntHSbL+m/rxrkL8+v10aQVEYk8sEjj6i1ldL08phNx2f1tgMbWBq0GXYxO zpsmX+8J3VHyIs78544MzdUWRV1A9SvudF4p70aqeLmimRIG/qP+5Uue1i0mrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhsl50vnpzyXG; Thu, 15 Jun 2023 19:28:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FJS1Cc065362; Thu, 15 Jun 2023 19:28:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FJS11I065361; Thu, 15 Jun 2023 19:28:01 GMT (envelope-from git) Date: Thu, 15 Jun 2023 19:28:01 GMT Message-Id: <202306151928.35FJS11I065361@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: 9e379f9639d5 - main - asa: Error out if writing to stdout failed. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9e379f9639d51442ad1d5e1800c687ef2c954901 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=9e379f9639d51442ad1d5e1800c687ef2c954901 commit 9e379f9639d51442ad1d5e1800c687ef2c954901 Author: Dag-Erling Smørgrav AuthorDate: 2023-06-15 19:23:19 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-15 19:24:58 +0000 asa: Error out if writing to stdout failed. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D40562 --- usr.bin/asa/asa.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/usr.bin/asa/asa.c b/usr.bin/asa/asa.c index 22174ed340cd..11438b607466 100644 --- a/usr.bin/asa/asa.c +++ b/usr.bin/asa/asa.c @@ -81,6 +81,9 @@ main(int argc, char *argv[]) } } + if (fflush(stdout) != 0) + err(1, "stdout"); + exit(exval); } @@ -140,4 +143,7 @@ asa(FILE *f) putchar('\n'); } + + if (ferror(stdout) != 0) + err(1, "stdout"); } From nobody Thu Jun 15 19:28:02 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhsl63l3mz4d98s; Thu, 15 Jun 2023 19:28:02 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhsl62xt0z3nXP; Thu, 15 Jun 2023 19:28:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686857282; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7WkMoDcLgs3XnPZmzJ4KdUUZio6/Ahy8yYbDGc0QAS4=; b=OfdMF+BieFwX7nnPMzuVgZlx7gVvz1cb2ocZz/tSOLSyaat9+dNLIn/aeUfBYilwAajhzM kvbHei5f1P4IyUALEkRGMd4ih5bjRy6eBvUX1KkTuE0AFdS+2mvBvmwFO2g/VMk1wYp2ze A3Bwi2e1aeBkcfdR2itRRvQjnc1vDvHS8OWEhL0Rrq+AaJ/ecYCncWU1Fci5GwbfbrV6fL ShtvPNYdKGKo5EGp6xEbl7+3uV16T66+ohVDVnG5CCWnYAsz92qPBmm7OPxg3eWWKOqxRu FlyB3ik6LbeYQzuBe6+ySJHY7TVV4MUsAF/By5w4KAcxtLQfnJVQrf7+HCvHeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686857282; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7WkMoDcLgs3XnPZmzJ4KdUUZio6/Ahy8yYbDGc0QAS4=; b=ZU8vfDfLTkiqkS9F5s+ZRXaK0d6YrFpHT3q7bu0y+ZnG7up1aAG9lKqGl+SZ7Nvr0Uucqf iqfx7+SbOJM+iF/3WWdIC9EKOxp8ymdF0anbfRUuuf25HkrlHPZHyskiAaRrysT+AldGko 0cGlAUH+D/FLMAXwDUr65xd1VPkPDWw5Vg16JBjIlIUmwy+JZP82N2yY+QIJ6AH3l6uFs/ pf66sPgflvRIzbWdEwLmu03seCB1VPQoXHrh6b/9+l5OB1ZpeuwsplO7GK1wIIwCE45OZB yU2W7rUsbVyeWkxyDANoe128kR8SqHex7NJs0lKGdjT7JhrUiLqpTgc0Kclcag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686857282; a=rsa-sha256; cv=none; b=RAzzC+UrDPYAlbRPHKYT21pTNCkzDxehQyal9aKv6cvA8UlKrVwDkkpVwMcBd270PX0KyJ 50BkN9UFLoxQOrc1OXyY+van5mjNTpP5/d3AOD2CSDNMkBCVCsshIcValZAkp6ZjhqAlU+ aWdGDH03PNbtmu4ed/hk7BvYoBxAbzcv7s47W2DZi2BiFeMiVOuXak2DGTZHl7KUE/l51O O5WTCvoi+uYpq9M1wUlFogWEz9KbgOTeIvumMd6VJ2OPb/chC0l3WdHFNPyR3yOSzo4HwE xtJ+tycjA74gfKsknnFsmLdDM/cjUpJCLpphIH2dIXvACJtUUrosJHe5D2gLug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhsl61r4mzy1n; Thu, 15 Jun 2023 19:28:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FJS2s7065386; Thu, 15 Jun 2023 19:28:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FJS2JE065385; Thu, 15 Jun 2023 19:28:02 GMT (envelope-from git) Date: Thu, 15 Jun 2023 19:28:02 GMT Message-Id: <202306151928.35FJS2JE065385@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: f08f90e69877 - main - asa: Read from stdin if *argv is "-". List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f08f90e6987775f88d25efbd8762c361819f40ba Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=f08f90e6987775f88d25efbd8762c361819f40ba commit f08f90e6987775f88d25efbd8762c361819f40ba Author: Dag-Erling Smørgrav AuthorDate: 2023-06-15 19:23:22 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-15 19:24:58 +0000 asa: Read from stdin if *argv is "-". MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D40563 --- usr.bin/asa/asa.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/usr.bin/asa/asa.c b/usr.bin/asa/asa.c index 11438b607466..a6c3d7d7c1e5 100644 --- a/usr.bin/asa/asa.c +++ b/usr.bin/asa/asa.c @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include static void asa(FILE *); @@ -71,13 +72,17 @@ main(int argc, char *argv[]) asa(stdin); else { while ((fn = *argv++) != NULL) { - if ((fp = fopen(fn, "r")) == NULL) { - warn("%s", fn); - exval = 1; - continue; - } - asa(fp); - fclose(fp); + if (strcmp(fn, "-") == 0) { + asa(stdin); + } else { + if ((fp = fopen(fn, "r")) == NULL) { + warn("%s", fn); + exval = 1; + continue; + } + asa(fp); + fclose(fp); + } } } From nobody Thu Jun 15 19:28:03 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qhsl76JR7z4d8ww; Thu, 15 Jun 2023 19:28:03 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qhsl73sXRz3nW4; Thu, 15 Jun 2023 19:28:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686857283; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SM+/lNOQhc6doFjTxbK1dz4Dt0Giz6jW5dmBaicPkRw=; b=TEvZ+rcYgOFkpdHT4u/pCJwpCJHO4vvRf0MdJW9M0Ry7j4k8/Xgra/t8293tK1beWKMNfv 3Tnpr26vRi1qIsRUvh1PqlNcFpn1JH4VCIeATQeItjWqWar9pvxNMqK9FPTYKezbaPPHhy ukWuGggEccvF97T6l8H0B4QXcWYK80+RnLnkxgn92IrV28TU4JbkEDMcMbEihJ2TEOfSTx 8Hmgxn3QERfgaNHCGLjvnxCy3wClII+zIF3GqpJzwO8jiu5d5W3URKWkr7DghpURWClGSf EV+AA1a4jTgTRQeAwmtoZGbxVTzi4DiyPu65BGxiv/Y00bu/3WfxPFsehnFD5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686857283; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SM+/lNOQhc6doFjTxbK1dz4Dt0Giz6jW5dmBaicPkRw=; b=MRjht4+T7WICBEY19Myd0bPfTo6d9ODxGRzSI3d/ie5Txm3+fXLGkKtEVLTXxQgGDANutx EqLjBHYF3jNTshiD6YH7dBcPTFzVdB58RnSrqRBHtcETagKwNQt4qxilVMfv6kKpuGuGwh PxcueOEdSi5NGxf7H0o4CSbY2PjeZmbLgOQjN42CWC80e1iascgbe+b13G7MsVfYCDRNlb DF5S0VcM9ezQUFRVC6eJ3b8pPufs/ha6o2asYo2zA21yfmSzKAbe3AJBN0e3Mxj6RG4jCZ bvokY07tfzKLbzqJDISSzOrlfwE11KTUG7H4RSAogzOEaqsHxMcUX/uV5NuU8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686857283; a=rsa-sha256; cv=none; b=pqDQrj0+D4dxv7xUjEad546jyjyE60fZfRLHeYBw3c+AgOo6JKQO3/HsEhtTt0lG0ksJNl rHwxZzV9k1rIyduRki3CLLc0TbG1NtqNVU/bcC007Kvo5LY+D/sZQDkXUJrVXOA8LQc3s9 jIQqihHALYzPVbdts/+wBUjuOxvGvTHFDHyuaa0C1QLRmNijcECpV5w7njbiGHNeCyLiYc dOAo3KEMrMYTOGngYNa8FwHP84+g8xshSm+5skFWZ/sYiAUlcEj1G0pxKJtMK8nVl3qVMW y/JiOHf/6smQzpKpdfIKK24QE/aM6kzVC9b2bvsiteMAc2W+QQXbrGi8a2wW/A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qhsl72kJBzy8T; Thu, 15 Jun 2023 19:28:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FJS3cH065417; Thu, 15 Jun 2023 19:28:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FJS3vr065416; Thu, 15 Jun 2023 19:28:03 GMT (envelope-from git) Date: Thu, 15 Jun 2023 19:28:03 GMT Message-Id: <202306151928.35FJS3vr065416@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= Subject: git: b7412da2e122 - main - asa: Add some unit tests. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b7412da2e122d9274341ef840c6918409bc523b3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=b7412da2e122d9274341ef840c6918409bc523b3 commit b7412da2e122d9274341ef840c6918409bc523b3 Author: Dag-Erling Smørgrav AuthorDate: 2023-06-15 19:23:26 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2023-06-15 19:24:59 +0000 asa: Add some unit tests. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D40564 --- etc/mtree/BSD.tests.dist | 2 + usr.bin/asa/Makefile | 5 ++- usr.bin/asa/tests/Makefile | 4 ++ usr.bin/asa/tests/asa_test.sh | 99 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+), 2 deletions(-) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 8b9d0ac6bccd..d23ea1ac5b03 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -902,6 +902,8 @@ usr.bin apply .. + asa + .. awk bugs-fixed .. diff --git a/usr.bin/asa/Makefile b/usr.bin/asa/Makefile index c2a221ae027b..a29db0f31781 100644 --- a/usr.bin/asa/Makefile +++ b/usr.bin/asa/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.2 1995/03/25 18:04:51 glass Exp $ -# $FreeBSD$ +.include PROG= asa +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests .include diff --git a/usr.bin/asa/tests/Makefile b/usr.bin/asa/tests/Makefile new file mode 100644 index 000000000000..c8c0cde1b3a2 --- /dev/null +++ b/usr.bin/asa/tests/Makefile @@ -0,0 +1,4 @@ +PACKAGE= tests +ATF_TESTS_SH= asa_test + +.include diff --git a/usr.bin/asa/tests/asa_test.sh b/usr.bin/asa/tests/asa_test.sh new file mode 100644 index 000000000000..429342d530e4 --- /dev/null +++ b/usr.bin/asa/tests/asa_test.sh @@ -0,0 +1,99 @@ +# +# Copyright (c) 2023 Klara, Inc. +# +# SPDX-License-Identifier: BSD-2-Clause +# + +a="The magic words are" +b="Squeamish Ossifrage" + +atf_check_asa() { + atf_check -o file:"$2" asa "$1" + atf_check -o file:"$2" asa <"$1" + atf_check -o file:"$2" asa - <"$1" +} + +atf_test_case space +space_head() { + atf_set descr "First character on line is ' '" +} +space_body() { + printf " %s\n %s\n" "$a" "$b" >infile + printf "%s\n%s\n" "$a" "$b" >outfile + atf_check_asa infile outfile +} + +atf_test_case zero +zero_head() { + atf_set descr "First character on line is '0'" +} +zero_body() { + printf " %s\n0%s\n" "$a" "$b" >infile + printf "%s\n\n%s\n" "$a" "$b" >outfile + atf_check_asa infile outfile +} + +atf_test_case one +one_head() { + atf_set descr "First character on line is '1'" +} +one_body() { + printf " %s\n1%s\n" "$a" "$b" >infile + printf "%s\f%s\n" "$a" "$b" >outfile + atf_check_asa infile outfile +} + +atf_test_case plus +plus_head() { + atf_set descr "First character on line is '+'" +} +plus_body() { + printf " %s\n+%s\n" "$a" "$b" >infile + printf "%s\r%s\n" "$a" "$b" >outfile + atf_check_asa infile outfile +} + +atf_test_case plus_top +plus_top_head() { + atf_set descr "First character in input is '+'" +} +plus_top_body() { + printf "+%s\n+%s\n" "$a" "$b" >infile + printf "%s\r%s\n" "$a" "$b" >outfile + atf_check_asa infile outfile +} + +atf_test_case stdout +stdout_head() { + atf_set descr "Failure to write to stdout" +} +stdout_body() { + ( + trap "" PIPE + echo " $a $b" | asa 2>stderr + echo $? >result + ) | true + atf_check -o inline:"1\n" cat result + atf_check -o match:"stdout" cat stderr +} + +atf_test_case dashdash +dashdash_head() { + atf_set descr "Use -- to end options" +} +dashdash_body() { + echo " $a $b" >-infile + atf_check -s not-exit:0 -e match:"illegal option" asa -infile + atf_check -o inline:"$a $b\n" asa -- -infile +} + +atf_init_test_cases() +{ + atf_add_test_case space + atf_add_test_case zero + atf_add_test_case one + atf_add_test_case plus + atf_add_test_case plus_top + atf_add_test_case stdout + atf_add_test_case dashdash +} From nobody Thu Jun 15 19:42:45 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qht452KQsz4dHbV; Thu, 15 Jun 2023 19:42:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qht451wJdz3sTr; Thu, 15 Jun 2023 19:42:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686858165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WeXzDrwBR0hK7HNVNClgs82KO/vAdiOdXEWfSQmYS9M=; b=F7bhBP9EygA4/XEjNDhdx1dAFCfndMp6ZOSFGPc5Kk/jeorOaxeaekXOgx3zk1Sej9g4T4 1FN+/n0UV8lkgH55b8RpEOo3fY+/xqV0b3FVeEBZqlA+R7Td7C8wGPG4+8MRYIQI45Bbay Ny1YSITnUO9tufnXaKNgcYqHIHphGY5jMcuCDzl0r2mV/eDQxeF2T+ImI+P4BYfj3iqqv0 KSv3qVFPJrZTCI6SUM3zIh68M9f80BuDSwGtfOP7xYsmQsUBzbkYvGX+2FxbIQG6A4Vekm zcFnVnDlKv9vsMO42Tv0ksOUov5L9RRjpNn2bKZ/fLjnFVT3NmRfY58prmvWOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686858165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WeXzDrwBR0hK7HNVNClgs82KO/vAdiOdXEWfSQmYS9M=; b=OajCpWQVSrQjPu8ymCE4bjdJm5GO5p8/8sgb/D/T5yCZqA4KgaxX89Y8QEJeTQAolNPy1u fa9vM+jZNRctmrwg/Sp8RJ9MinvUHc2vp1yycvD46mLykU9B1hGr/YXriPbGqy+c47HKIl y3zic4+7Cmg8aJgMqR7/XAKZjDbsGj9KCbBnf6tOk9+qGuCGVrdbcoEIaUCcFrlDdhG9Pk pWE4Cz02WnVzWxSJ+umkUWu5hrnoU13U803xlKBfPpayT6/XkpEMDn8+tc6tCtmRuFAHp0 jNzdeFKtJZnzIHkCiH1eQTRLzHN8UzyXzEw8GuiVDJAFC0RZPFpO5B/Gf6YUDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686858165; a=rsa-sha256; cv=none; b=NWPZTI2ijL54ZF3yNMx6jKWNjpar5m0nf65SRga8JEB1QAlIz+rTl/+BWE2TjCyonMJJMo R1d46dKHyDLRg7YEHp2p7ERs+Pe8WwHhQfEin2RgggKJTZkIIgT5AbOi2mgh6deIyP/t+I aQWTsPYpQlyKrK7eleITSnzBFPH+bRTm3Ti/LIZiB3nHewqu/BDvGloGNF+T1f3xZXIEv7 K5yu7tWV/VsGs6is5wMihDVISpisDuQfiklYrDFY2+NiCUmxz9gzF5nQ//+HyfKWRWuJnx pXKYSHHnVkgm388be6Mifus25bvLaVq5NcA/gXehKwexw+H/TmaeD7JdTKS59w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qht450wTczyrW; Thu, 15 Jun 2023 19:42:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35FJgjRq097391; Thu, 15 Jun 2023 19:42:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35FJgjte097390; Thu, 15 Jun 2023 19:42:45 GMT (envelope-from git) Date: Thu, 15 Jun 2023 19:42:45 GMT Message-Id: <202306151942.35FJgjte097390@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ka Ho Ng Subject: git: 9f135336f505 - main - SYSCALL_MODULE(9): fix references to modfind(2) and modstat(2) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: khng X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9f135336f5057ae5a3f54fd9b1aa517cff0f9d3b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by khng: URL: https://cgit.FreeBSD.org/src/commit/?id=9f135336f5057ae5a3f54fd9b1aa517cff0f9d3b commit 9f135336f5057ae5a3f54fd9b1aa517cff0f9d3b Author: Ka Ho Ng AuthorDate: 2023-06-15 19:37:53 +0000 Commit: Ka Ho Ng CommitDate: 2023-06-15 19:39:53 +0000 SYSCALL_MODULE(9): fix references to modfind(2) and modstat(2) Sponsored by: Juniper Networks, Inc. Reviewed by: delphij MFC after: 1 week --- share/man/man9/SYSCALL_MODULE.9 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/share/man/man9/SYSCALL_MODULE.9 b/share/man/man9/SYSCALL_MODULE.9 index aec57a89e9b3..cd4eeb65724d 100644 --- a/share/man/man9/SYSCALL_MODULE.9 +++ b/share/man/man9/SYSCALL_MODULE.9 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 24, 2015 +.Dd June 15, 2023 .Dt SYSCALL_MODULE 9 .Os .Sh NAME @@ -78,10 +78,10 @@ event handler when it is called. .El .Pp The syscall number assigned to the module can be retrieved using the -.Xr modstat 3 +.Xr modstat 2 and -.Xr modfind 3 -library functions in libc. +.Xr modfind 2 +system calls. The MACRO .Fn SYSCALL_MODULE_HELPER includes From nobody Fri Jun 16 06:14:13 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84j5hrwz4fGYs; Fri, 16 Jun 2023 06:14:13 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84j5Fxjz3q5F; Fri, 16 Jun 2023 06:14:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XI4XJmGlMtHJ7i0Lj1AENei0+QH36lmQmNpEWzEDKaQ=; b=VORQUMhR+bGwGGs6SQ02aETZzcUKlTj/shzSRtt0I+L25gKHfDLnLKCfQJf7YuW8JryVEY nv1K+DcEmJMyW4cWLGs/wmRIREJCCrzjiMQMu/01e+PAN808iqoMtcAPy0FTdMO9wNiZ/r V6r8f2CS/wogN6OuIe+/6oAUsNj6HWUGWOcUezIcqJqQTVuAsA5LC7Gq9UMP5rnoZGLjhE 0cFdHDZXXkx1ROEXXe+6Ih2bS6P+YuwT3Hzb+IWdQ82nBLGec3HfqMrDVJb/pX7iqQV0vO zjkKl0adAp1zKgHMF3YBh0wA+P58SMg3kRt1yjFP3YbC8MAiSmd06qCW4Wl2aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XI4XJmGlMtHJ7i0Lj1AENei0+QH36lmQmNpEWzEDKaQ=; b=SEKIEGktU58syCxrX8gpXw4n6YAMJJqUPfHeuuTLQ1PUG3f3IBkoQ54zA5AC4VAdhdbU36 wqCOS67CUTowUvGkvI7FW5GFruwU3mNbbzecU5Ec86P2fagdYK2bqPfU9yRMGcAOMvVtde 2RKTp9Akor8gixsEn+FqCOWGMFaZ4f6A+8YB5vEfJei8kdg0Rk0KINTvZpjaPkMmZ8l6Of TubdsE92Py6iowui6rAc0GmimZAON63osa8rihvDyZZiEP8mcjliuJpnRzxUJV2Hs08bFa SPUcf1YB3dGT+j52F9ZUXX+Ii/XxwIshbdGnkhcTQjVyJ8It3p1u2TOAo3yl/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896053; a=rsa-sha256; cv=none; b=Di8NZKUtuaVed3h4IzTqxMraAKLJi4yuQiCg1ceXoQPNzugyX2z5r+ZXz628l4TmoasShF tRPAbIqFD+m60342i6PmCV0A7ODXxW5DKtw2wwnsc9F9Pexv2rH07TEvgogC/O+8JF5GBN yBk9ATs6JYM7pvcYq7dXSFvAg92iRUFCNwV0tXt7j6EgzxnqmlTW7yW6P5aUqI+ZxBjBj3 l2BVcv1H0bQMtCniW2apY2K3RqJEfTjPqwIKe8XWq07scx9+RdChbVsbDu+BJm3o7dfBXF kCokLA6ROXZ9kij5+eQ1CAbnCeIsxlXVjaLEopGARIzkBC0g30xTn9l9t0LI4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84j4KCJzHXl; Fri, 16 Jun 2023 06:14:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EDt4035094; Fri, 16 Jun 2023 06:14:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EDPg035093; Fri, 16 Jun 2023 06:14:13 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:13 GMT Message-Id: <202306160614.35G6EDPg035093@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 90c3a1b6629c - main - bhyve: add empty GVT-d emulation List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 90c3a1b6629c80a7e4c3fa86d6b794596fdf06b4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=90c3a1b6629c80a7e4c3fa86d6b794596fdf06b4 commit 90c3a1b6629c80a7e4c3fa86d6b794596fdf06b4 Author: Corvin Köhne AuthorDate: 2023-05-10 10:31:50 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:53:44 +0000 bhyve: add empty GVT-d emulation Don't emulate anything yet. Just check if the user would like to pass an Intel GPU to the guest. Reviewed by: jhb, markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40038 --- usr.sbin/bhyve/Makefile | 1 + usr.sbin/bhyve/pci_gvt-d.c | 55 +++++++++++++++++++++++++++++++++++++++++++ usr.sbin/bhyve/pci_passthru.c | 22 ++++++++++++++++- usr.sbin/bhyve/pci_passthru.h | 10 ++++++++ 4 files changed, 87 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile index f01f16d56e6c..08eb41c430d5 100644 --- a/usr.sbin/bhyve/Makefile +++ b/usr.sbin/bhyve/Makefile @@ -46,6 +46,7 @@ SRCS= \ pci_e82545.c \ pci_emul.c \ pci_fbuf.c \ + pci_gvt-d.c \ pci_hda.c \ pci_hostbridge.c \ pci_irq.c \ diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c new file mode 100644 index 000000000000..767b8ee3127f --- /dev/null +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -0,0 +1,55 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#include + +#include + +#include + +#include "pci_gvt-d-opregion.h" +#include "pci_passthru.h" + +#define PCI_VENDOR_INTEL 0x8086 + +static int +gvt_d_probe(struct pci_devinst *const pi) +{ + struct passthru_softc *sc; + uint16_t vendor; + uint8_t class; + + sc = pi->pi_arg; + + vendor = read_config(passthru_get_sel(sc), PCIR_VENDOR, 0x02); + if (vendor != PCI_VENDOR_INTEL) + return (ENXIO); + + class = read_config(passthru_get_sel(sc), PCIR_CLASS, 0x01); + if (class != PCIC_DISPLAY) + return (ENXIO); + + return (0); +} + +static int +gvt_d_init(struct pci_devinst *const pi __unused, nvlist_t *const nvl __unused) +{ + return (0); +} + +static void +gvt_d_deinit(struct pci_devinst *const pi __unused) +{ +} + +static struct passthru_dev gvt_d_dev = { + .probe = gvt_d_probe, + .init = gvt_d_init, + .deinit = gvt_d_deinit, +}; +PASSTHRU_DEV_SET(gvt_d_dev); diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c index 3d908b25e445..ac1350833924 100644 --- a/usr.sbin/bhyve/pci_passthru.c +++ b/usr.sbin/bhyve/pci_passthru.c @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include -#include "config.h" #include "debug.h" #include "mem.h" #include "pci_passthru.h" @@ -82,6 +81,8 @@ __FBSDID("$FreeBSD$"); static int pcifd = -1; +SET_DECLARE(passthru_dev_set, struct passthru_dev); + struct passthru_softc { struct pci_devinst *psc_pi; /* ROM is handled like a BAR */ @@ -856,6 +857,8 @@ passthru_init(struct pci_devinst *pi, nvlist_t *nvl) { int bus, slot, func, error, memflags; struct passthru_softc *sc; + struct passthru_dev **devpp; + struct passthru_dev *devp, *dev = NULL; const char *value; sc = NULL; @@ -919,9 +922,26 @@ passthru_init(struct pci_devinst *pi, nvlist_t *nvl) if ((error = set_pcir_handler(sc, PCIR_COMMAND, 0x04, NULL, NULL)) != 0) goto done; + SET_FOREACH(devpp, passthru_dev_set) { + devp = *devpp; + assert(devp->probe != NULL); + if (devp->probe(pi) == 0) { + dev = devp; + break; + } + } + + if (dev != NULL) { + error = dev->init(pi, nvl); + if (error != 0) + goto done; + } + error = 0; /* success */ done: if (error) { + if (dev != NULL) + dev->deinit(pi); free(sc); vm_unassign_pptdev(pi->pi_vmctx, bus, slot, func); } diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h index 7ce12a27bba4..49d2bb309f71 100644 --- a/usr.sbin/bhyve/pci_passthru.h +++ b/usr.sbin/bhyve/pci_passthru.h @@ -7,8 +7,11 @@ #pragma once +#include + #include +#include "config.h" #include "pci_emul.h" struct passthru_mmio_mapping { @@ -21,6 +24,13 @@ struct passthru_mmio_mapping { struct passthru_softc; +struct passthru_dev { + int (*probe)(struct pci_devinst *pi); + int (*init)(struct pci_devinst *pi, nvlist_t *nvl); + void (*deinit)(struct pci_devinst *pi); +}; +#define PASSTHRU_DEV_SET(x) DATA_SET(passthru_dev_set, x) + typedef int (*cfgread_handler)(struct passthru_softc *sc, struct pci_devinst *pi, int coff, int bytes, uint32_t *rv); typedef int (*cfgwrite_handler)(struct passthru_softc *sc, From nobody Fri Jun 16 06:14:14 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84k71LCz4fG8t; Fri, 16 Jun 2023 06:14:14 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84k6Kkcz3qMp; Fri, 16 Jun 2023 06:14:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6d5jlzF8K47Z7sEhazRPZ66/HVAyKCOkjO+ZjLHbaZg=; b=n3EM/VpjYzUtkm6WzzEUMSkBYUyRFBovZR/vxEXDvNBohz8DQQZ7KvpV31gPY4V9Z7rZNa n1PL38wZK/kO1grCTujO1A+yvk5WYW2eH2BpHKGwF7YD+LofOd16wR85DPfPPjgTzK0DG/ qBDY7+FQkgnwdGtf3ldU56ukb8XtJdXAORFNHYVWmpNADq61gH67S5QWRFKR4OESepkRqy b88JxOn81Im9Cx9LJ7ypHsqFzBapsb3SnHiIvPMQ4LhQU6EAGNtJMZnakQWwtNtCYDQ0L8 D8OfkiyrY54M9L6gd6/VAAXXiFqoloG3dQoKkR5dYYdu/ghxMnegipg9bFBnKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6d5jlzF8K47Z7sEhazRPZ66/HVAyKCOkjO+ZjLHbaZg=; b=iTwFGKsNDwEFOXgEAJnUbOC/DDdpO99KcTceOSy6qic5i8d/peXOH4OARq3kbvt5aiOwAr DGXSVyt/Pe7bnBN9M8BDLMwIh/kwKg8SFgVK4Mk/wvR36kMOYSSZmpbXJIaGyrj5KhLDYd goO+97jxnjLmxEGkkHEPwIazyVZ0gys2fi8DAg/CwUcLa/cKnfXXVJ2pf2rttWFHd9CxwV 2cPnI+99b+berXb68lkrUmLGcETFis0jMHEpRWWqe1QSzTi5Z/NKQw/tHU2y2KiFLuAu+N +CLv0vANN8iWNDwUjgs3i2EurlQ/2n9kiK+GIDSZOvHcuancOkEqawpOwH3IIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896054; a=rsa-sha256; cv=none; b=C4wDGDFmjbMbfgbnVPkIlNUtLiCBOBgQ+M/yakYWYXkcbZU6HeNsr99t0/hcEd9h1FWD9P 7Zn+lZBTlwaTgaBeNZtf2tEbkj4veuwlQ/SJuOXhZ3Le4pY2D1ui7UdJOgnGnA43h+Pn7L GYiGEE8pO5CLt+pgDOSSD4aUSikLRDtcodMRBcGkwdlrGutGygbX9SVPVCYd2d4R5MH3Wk 7VYResEnKlxw4vEH/d8WixIgpvxMG9KUcVHCULgeYQ3NbnEFqwLviI3oZQAYMOC5IziLIk hj234ZxZxgX4e9HXa2TgMNnGblc0GH90GK99jMVmMz3wmgMSv7jvbE7k9143uA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84k5CBTzHGF; Fri, 16 Jun 2023 06:14:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EEpR035124; Fri, 16 Jun 2023 06:14:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EEPb035123; Fri, 16 Jun 2023 06:14:14 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:14 GMT Message-Id: <202306160614.35G6EEPb035123@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 4a9bf50f408e - main - bhyve: read out graphics stolen memory address and size List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4a9bf50f408eb9f1acc220dba2b260ec610fd15b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=4a9bf50f408eb9f1acc220dba2b260ec610fd15b commit 4a9bf50f408eb9f1acc220dba2b260ec610fd15b Author: Corvin Köhne AuthorDate: 2023-05-11 08:53:15 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:53:46 +0000 bhyve: read out graphics stolen memory address and size This is the first step to emulate the graphics stolen memory register. Note that the graphics stolen memory is somehow confusing. On the one hand the Intel Open Source HD Graphics Programmers' Reference Manual states that it's only GPU accessible. As the CPU can't access the area, the guest shouldn't need it. On the other hand, the Intel GOP driver refuses to work properly, if it's not set to a proper address. Intel itself maps it into the guest by EPT [1]. At the moment, we're not aware of any situation where this EPT mapping is required, so we don't do it yet. Intel also states that the Windows driver for Tiger Lake reads the address of the graphics stolen memory [2]. As the GVT-d code doesn't support Tiger Lake in its first implementation, we can't check how it behaves. We should keep an eye on it. [1] https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L655-L657 [2] https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629 Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40039 --- usr.sbin/bhyve/pci_gvt-d.c | 73 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 767b8ee3127f..0be740921c92 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -6,6 +6,9 @@ */ #include +#include + +#include #include @@ -16,6 +19,8 @@ #define PCI_VENDOR_INTEL 0x8086 +#define GVT_D_MAP_GSM 0 + static int gvt_d_probe(struct pci_devinst *const pi) { @@ -36,12 +41,78 @@ gvt_d_probe(struct pci_devinst *const pi) return (0); } +/* + * Note that the graphics stolen memory is somehow confusing. On the one hand + * the Intel Open Source HD Graphics Programmers' Reference Manual states that + * it's only GPU accessible. As the CPU can't access the area, the guest + * shouldn't need it. On the other hand, the Intel GOP driver refuses to work + * properly, if it's not set to a proper address. + * + * Intel itself maps it into the guest by EPT [1]. At the moment, we're not + * aware of any situation where this EPT mapping is required, so we don't do it + * yet. + * + * Intel also states that the Windows driver for Tiger Lake reads the address of + * the graphics stolen memory [2]. As the GVT-d code doesn't support Tiger Lake + * in its first implementation, we can't check how it behaves. We should keep an + * eye on it. + * + * [1] + * https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L655-L657 + * [2] + * https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629 + */ static int -gvt_d_init(struct pci_devinst *const pi __unused, nvlist_t *const nvl __unused) +gvt_d_setup_gsm(struct pci_devinst *const pi) { + struct passthru_softc *sc; + struct passthru_mmio_mapping *gsm; + size_t sysctl_len; + int error; + + sc = pi->pi_arg; + + gsm = passthru_get_mmio(sc, GVT_D_MAP_GSM); + if (gsm == NULL) { + warnx("%s: Unable to access gsm", __func__); + return (-1); + } + + sysctl_len = sizeof(gsm->hpa); + error = sysctlbyname("hw.intel_graphics_stolen_base", &gsm->hpa, + &sysctl_len, NULL, 0); + if (error) { + warn("%s: Unable to get graphics stolen memory base", + __func__); + return (-1); + } + sysctl_len = sizeof(gsm->len); + error = sysctlbyname("hw.intel_graphics_stolen_size", &gsm->len, + &sysctl_len, NULL, 0); + if (error) { + warn("%s: Unable to get graphics stolen memory length", + __func__); + return (-1); + } + gsm->hva = NULL; /* unused */ + return (0); } +static int +gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused) +{ + int error; + + if ((error = gvt_d_setup_gsm(pi)) != 0) { + warnx("%s: Unable to setup Graphics Stolen Memory", __func__); + goto done; + } + +done: + return (error); +} + static void gvt_d_deinit(struct pci_devinst *const pi __unused) { From nobody Fri Jun 16 06:14:15 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84m0W4jz4fGbb; Fri, 16 Jun 2023 06:14:16 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84m00Vsz3qb5; Fri, 16 Jun 2023 06:14:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WQ93rTByRAvXF9WXABTeFbLKf1HFHnW2+Mk2sLJMvrg=; b=iKoYjeJnN+wH3xagmA1r99TgfmzZAO02gIXmll9hrAg83MZ2+cxIVa+ph3Gx4/y5UmdkON bEl0rY4Hbk4LhLgIUDBJh4s13IQOdG1qgyy26szCept6UAFM+Htk0jFK3j/vfmU/Dcoq3P XO7uEGI4U7smKjeEGiZnY2nWo3rcfwUveYIaALyclsCMK7MrVh5GkOrBGuMI6rXk3lhI+4 j79zYmNB3djdK9Rga/PNGhKkiY4oZkxJGg+XSZY9dVvF2KTnZXfcwGvoJFiw68FBZkMLVE PO985DA+OaSmZRzPbfY6EkEAxRU4KkAXgGhQtY6bal+oCb8Fh/bPEVyzegGvmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WQ93rTByRAvXF9WXABTeFbLKf1HFHnW2+Mk2sLJMvrg=; b=vgmEyb7+LQJ27XAHeeSfO+DqfKYXKRSNDLuH8aIweOBfHcgWx0K8MoS+6zpX90kjGFtkZe LKiomcQWogX6dQ2sQ/rY7bvRuFEFS6GTdrIN5BALIcNLV+IFs29Om6wR4lzyZ6HiiwptsV Js/CGWIGTOo+byQIxcRCiZ4sts4NjuqVEpQa1mh1Uawi6Vp4TfkpC7LK/uxFAQybDlTJt8 B0+g+mtV3LKUTwx+YzWowRkpcKokutp87/qzyX7X4fB4nF5VKgfhkMzwaeLaoiUZ5ZMOs8 ykBewvlbdSrIBMWt+vaBhfi7vRfp6O5vFagOnwCi9ifpS+RuxeKQhSpTySwmGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896056; a=rsa-sha256; cv=none; b=tWqvXrr2HyKhI1df7HD+oUxPrTqwKCAgT98bd1cg8DtZ8lyEhC0DVDeeyyNo64ymvmoBIL usFw8tBxl4gZ/RSz+o3zjIcOfVVxwBWvxSZI0B3qL7IsvL9Ak7Jk58EaLyxwsmZc2F6Fra CfsJy9fnIhJhRFy5neCMAGRJTnT6KiXoUDLP/L88vjcUweuUd4HFrGFkOO2elK1KyFrnZo eMSrEUaXAj01pKXGxsbcZyyZjJbDrIY/wnWiJhfWaClFALy3b+6W1iclILmupGArsM3LPL YSZgQMCnx2CYGERiS4nKW0KF8FFsvfs5YmHmG3KzbIHASTm6pmpSoj7EUzNPNw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84l69j1zGy5; Fri, 16 Jun 2023 06:14:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EFUg035149; Fri, 16 Jun 2023 06:14:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EFJp035148; Fri, 16 Jun 2023 06:14:15 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:15 GMT Message-Id: <202306160614.35G6EFJp035148@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 1bd361eea28a - main - bhyve: allocate guest memory for graphics stolen memory List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1bd361eea28ae74b42d49bfc96b109a7eae9f3d3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=1bd361eea28ae74b42d49bfc96b109a7eae9f3d3 commit 1bd361eea28ae74b42d49bfc96b109a7eae9f3d3 Author: Corvin Köhne AuthorDate: 2023-05-11 09:10:07 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:54:02 +0000 bhyve: allocate guest memory for graphics stolen memory The graphics stolen memory is only GPU accessible. So, we don't have to copy any data to it as the guest will be unable to access it anyway. We just have to allocate and reserve some memory. That's done by adding an E820 entry for the graphics stolen memory. The guest firmware will pick up the E820 and reserve this range. Note that we try to reuse the host address as Intel states that newer Tiger Lake platforms need this [1]. [1] https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629 Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40059 --- usr.sbin/bhyve/pci_gvt-d.c | 64 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 0be740921c92..9c5b0906ec29 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -8,17 +8,24 @@ #include #include -#include - #include +#include #include +#include "e820.h" #include "pci_gvt-d-opregion.h" #include "pci_passthru.h" +#define KB (1024UL) +#define MB (1024 * KB) +#define GB (1024 * MB) + #define PCI_VENDOR_INTEL 0x8086 +#define PCIM_BDSM_GSM_ALIGNMENT \ + 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ + #define GVT_D_MAP_GSM 0 static int @@ -41,6 +48,27 @@ gvt_d_probe(struct pci_devinst *const pi) return (0); } +static vm_paddr_t +gvt_d_alloc_mmio_memory(const vm_paddr_t host_address, const vm_paddr_t length, + const vm_paddr_t alignment, const enum e820_memory_type type) +{ + vm_paddr_t address; + + /* Try to reuse host address. */ + address = e820_alloc(host_address, length, E820_ALIGNMENT_NONE, type, + E820_ALLOCATE_SPECIFIC); + if (address != 0) { + return (address); + } + + /* + * We're not able to reuse the host address. Fall back to the highest usable + * address below 4 GB. + */ + return ( + e820_alloc(4 * GB, length, alignment, type, E820_ALLOCATE_HIGHEST)); +} + /* * Note that the graphics stolen memory is somehow confusing. On the one hand * the Intel Open Source HD Graphics Programmers' Reference Manual states that @@ -95,6 +123,38 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) return (-1); } gsm->hva = NULL; /* unused */ + gsm->gva = NULL; /* unused */ + gsm->gpa = gvt_d_alloc_mmio_memory(gsm->hpa, gsm->len, + PCIM_BDSM_GSM_ALIGNMENT, E820_TYPE_RESERVED); + if (gsm->gpa == 0) { + warnx( + "%s: Unable to add Graphics Stolen Memory to E820 table (hpa 0x%lx len 0x%lx)", + __func__, gsm->hpa, gsm->len); + e820_dump_table(); + return (-1); + } + if (gsm->gpa != gsm->hpa) { + /* + * ACRN source code implies that graphics driver for newer Intel + * platforms like Tiger Lake will read the Graphics Stolen Memory + * address from an MMIO register. We have three options to solve this + * issue: + * 1. Patch the value in the MMIO register + * This could have unintended side effects. Without any + * documentation how this register is used by the GPU, don't do + * it. + * 2. Trap the MMIO register + * It's not possible to trap a single MMIO register. We need to + * trap a whole page. Trapping a bunch of MMIO register could + * degrade the performance noticeably. We have to test it. + * 3. Use an 1:1 host to guest mapping + * Maybe not always possible. As far as we know, no supported + * platform requires a 1:1 mapping. For that reason, just log a + * warning. + */ + warnx( + "Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly."); + } return (0); } From nobody Fri Jun 16 06:14:16 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84n1ZnJz4fGJD; Fri, 16 Jun 2023 06:14:17 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84n17bCz3qkR; Fri, 16 Jun 2023 06:14:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=549bD7md6+ILFVfgDjMbRQpJ2QhIqjRw/c9GCOeVNLw=; b=f1T+unZ/pDcygdNlrPU0y4t+lKJKqaX5nHw9HjnWlUC3fkG4brE/uTwWQMST0OGc+nHD2E ogl8Ku3Km9PWgt2Vufq0NPxZ3jdY/1LF3TIHYX+ZROzhqqKEHBrFYujgVZbDTIMumlyEpL aH51O+PwprzTJncRtjYe+RGxeCjjjlPAYBf+BKayTmIqZLl/qg4zVH+4zyHCjHSDQ8i3QP hKzbfmOd3dvqaeIvYG+Vxmnir3stX5j/gx3388/IVAAUbw52BMs4hMUmtFl3ag8bKuoAiw c/FniHDtCY10GXl1/pxfZz49qZrWaCKHEiULirnkXmp7O01ETGavhFDuQoxdnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=549bD7md6+ILFVfgDjMbRQpJ2QhIqjRw/c9GCOeVNLw=; b=YP9IwKzth8JdwVdJqYYlMhxfzOrXT+0lI1gHl0NV7/k4sPgxs7vkpYHgYiZAzm25ub8usG JyL3jMWgl+r/2b2a9WYr0QYg2p8Z1Af2ftBDqKutYwFPyh2qY32c3sT5pUnHSUjJCEc5fH UIXN9+8hu8/eRFz4p7RXTeYEMDde+7xx3+R32FOn+lCBaaFEaJNQxJVvW1GjKj7HM9bGo2 Aang2D65Dcc3+aBMI1jKjpIQvwSQ6owUM3OhJ8PgCTCl8eNe8/279fjXfYx20f6PIRnPlC 9CM8/IzHwnBs4xzW3BICqgy+VgC760B2nnhSAMOGvB5BIKFUEHimGRE4HFVr4w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896057; a=rsa-sha256; cv=none; b=tgaeEjlL3N9j2+Cu6TEn2u0doaafAPBeoBMmYCIhC1wN3bKyxE2ox1KqHLWMYbo/3FfmMo KxRtlB5BnuFO4cqcc+4cfyJrjJsBeHBeExhSvEFhPdFRxQbWv0ZmTPSkTYu/fsJJisQgci DWjouQHfxrc+nZmdbQ7nv4VqDrCF5Wp6u2ohcMDpPnMO79/giTHXEHNvluEhx0anUfKIYL p4J2GsmDNDxCnszY8RXrOxqNVPJaZR4LXoZHVZEwwodcvh6Bc94yWLsF7rMEO6KRFKrOn8 Vb6dQGJwdHLr3Gk6eD5md1RUb+ckXr6Zr0wWQWtPM8W1TLu1OKwvgp/oEA7Ugg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84m73lZzGy6; Fri, 16 Jun 2023 06:14:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EGsG035173; Fri, 16 Jun 2023 06:14:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EGmd035172; Fri, 16 Jun 2023 06:14:16 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:16 GMT Message-Id: <202306160614.35G6EGmd035172@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: d9fa7c113df2 - main - bhyve: emulate graphics stolen memory register List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d9fa7c113df254b237e5a573d0567eb686e5fcde Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=d9fa7c113df254b237e5a573d0567eb686e5fcde commit d9fa7c113df254b237e5a573d0567eb686e5fcde Author: Corvin Köhne AuthorDate: 2023-05-11 09:18:56 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:54:27 +0000 bhyve: emulate graphics stolen memory register This register contains a host physical address. This address is meaningless for the guest. We have to emulate it and set it to a valid guest physical address. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40060 --- usr.sbin/bhyve/pci_gvt-d.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 9c5b0906ec29..3109bc06be82 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -23,6 +23,8 @@ #define PCI_VENDOR_INTEL 0x8086 +#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ + #define PCIM_BDSM_GSM_ALIGNMENT \ 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ @@ -96,6 +98,7 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) struct passthru_softc *sc; struct passthru_mmio_mapping *gsm; size_t sysctl_len; + uint32_t bdsm; int error; sc = pi->pi_arg; @@ -156,7 +159,12 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) "Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly."); } - return (0); + bdsm = read_config(passthru_get_sel(sc), PCIR_BDSM, 4); + pci_set_cfgdata32(pi, PCIR_BDSM, + gsm->gpa | (bdsm & (PCIM_BDSM_GSM_ALIGNMENT - 1))); + + return (set_pcir_handler(sc, PCIR_BDSM, 4, passthru_cfgread_emulate, + passthru_cfgwrite_emulate)); } static int From nobody Fri Jun 16 06:14:18 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84p3zXpz4fGTV; Fri, 16 Jun 2023 06:14:18 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84p1mW9z3qbl; Fri, 16 Jun 2023 06:14:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mRBOhNbpPTJMozl4FzoftgcX5Xqs/Mj5zOTgq52KlBE=; b=APyqOmjh6pei2BnZtfJCGpKdwPLSmwZ8uYvkqEkQrRmgO7PcgykhxgzHt4rt0GJauHYlYC 7GCCEFb4C5rD0w5KJNKL/JN1PcDGNHbRlYT8/Dqj121erO7vadL6HFT8lpEqRdqiDf2ifu nHDIRoa7JTdCRjA2eEswogorZhvkcEXtcFoMsXv+0cq0IC1jHvB5aKdfFvgb4moOqLN/El o2pF2MSPchCxlE98vFo9i+koBxObz9Ppl4+ZrTTwo6m+XvivfO42jU1e95yvQPZx3DflXd /dssFtpCzpfJExOMBxzF7VBN4OZsjn5HsJJzyDB/557T0IFJBhg3ITLD/ODTSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mRBOhNbpPTJMozl4FzoftgcX5Xqs/Mj5zOTgq52KlBE=; b=K415v15xoqHfUlhVfBD/CfGzEAxpo8JaqyuM+m6bH3eiVSNjQ4jngkKiaIo/55nhUa/S65 6VPXrBDwxhm28BNKfJ/6sjr3yU1I0uKua5vduiIUi20npKQ4iwFfVvwMZaOyrEjHDeavio rfMBjwfm9B6PYm2rTSagqX9jnO0h2MIxiEGXiN+LBZVsgWAKXU1CAVEvIkmvCCBdMO63TI AWrrBoGW4OzK3zLwIAbESHJAVAxomUFKaOF2FF2Nqk0LFfdwPb9BkKtGpHES/eqh4qRH+k x9c/TRBjW1gBEiB12fvnQyCMS+usynl2Jh2abFJwD0RSL1rfhUX9wTA3yp49zQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896058; a=rsa-sha256; cv=none; b=gpIX9CNtDlMSMDU4Nvcl5fISU2IQwgqPqMt0zBLv2+j5nETjb6H4YxUFNPT87mIOOA5Ni+ T4sopxUC9ZcNbaPrrIPDxDUl7twqLORvOGYLKtithSQqJooPv26jTts7UNiiwFxPo92l8T ACbiHI+YczlNlb3gzEgLcW8CQsP25YuZj4P/c4GR9qL0zvsB2I5bsHZCN63xmK7wCm8CmX 4uvRIyhdWDbXkg+OecHu/3n5sCRJn95UYpzM8gWmozzNDB2FAP5voqKfeBGMKTqXmjTyAg jj61986qJO5SlcIRvnqQToWV0aDOPGSnafC0e8aQLuLMTPCufrJ8cTRcWacBqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84p0tgHzGy7; Fri, 16 Jun 2023 06:14:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EIsL035198; Fri, 16 Jun 2023 06:14:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EIJQ035197; Fri, 16 Jun 2023 06:14:18 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:18 GMT Message-Id: <202306160614.35G6EIJQ035197@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 6952b9d25e18 - main - bhyve: read OpRegion address and size for GVT-d List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6952b9d25e18fd3a4bf0d1bb7d6b44ff6edf6737 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=6952b9d25e18fd3a4bf0d1bb7d6b44ff6edf6737 commit 6952b9d25e18fd3a4bf0d1bb7d6b44ff6edf6737 Author: Corvin Köhne AuthorDate: 2023-05-10 11:38:02 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:54:53 +0000 bhyve: read OpRegion address and size for GVT-d The OpRegion provides some configuration bits and ACPI methods used by some Intel drivers. The guest needs access to it. In the first step, we're reading it's address and size. Reviewed by: jhb MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40040 --- usr.sbin/bhyve/pci_gvt-d.c | 67 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 3109bc06be82..fd3b48c3e5b7 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -6,12 +6,16 @@ */ #include +#include #include #include #include #include +#include +#include +#include #include "e820.h" #include "pci_gvt-d-opregion.h" @@ -21,14 +25,20 @@ #define MB (1024 * KB) #define GB (1024 * MB) +#ifndef _PATH_MEM +#define _PATH_MEM "/dev/mem" +#endif + #define PCI_VENDOR_INTEL 0x8086 -#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ +#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ +#define PCIR_ASLS_CTL 0xFC /* Opregion start address register */ #define PCIM_BDSM_GSM_ALIGNMENT \ 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ #define GVT_D_MAP_GSM 0 +#define GVT_D_MAP_OPREGION 1 static int gvt_d_probe(struct pci_devinst *const pi) @@ -167,6 +177,56 @@ gvt_d_setup_gsm(struct pci_devinst *const pi) passthru_cfgwrite_emulate)); } +static int +gvt_d_setup_opregion(struct pci_devinst *const pi) +{ + struct passthru_softc *sc; + struct passthru_mmio_mapping *opregion; + struct igd_opregion_header *header; + uint64_t asls; + int memfd; + + sc = pi->pi_arg; + + memfd = open(_PATH_MEM, O_RDONLY, 0); + if (memfd < 0) { + warn("%s: Failed to open %s", __func__, _PATH_MEM); + return (-1); + } + + opregion = passthru_get_mmio(sc, GVT_D_MAP_OPREGION); + if (opregion == NULL) { + warnx("%s: Unable to access opregion", __func__); + close(memfd); + return (-1); + } + + asls = read_config(passthru_get_sel(sc), PCIR_ASLS_CTL, 4); + + header = mmap(NULL, sizeof(*header), PROT_READ, MAP_SHARED, memfd, + asls); + if (header == MAP_FAILED) { + warn("%s: Unable to map OpRegion header", __func__); + close(memfd); + return (-1); + } + if (memcmp(header->sign, IGD_OPREGION_HEADER_SIGN, + sizeof(header->sign)) != 0) { + warnx("%s: Invalid OpRegion signature", __func__); + munmap(header, sizeof(*header)); + close(memfd); + return (-1); + } + + opregion->hpa = asls; + opregion->len = header->size * KB; + munmap(header, sizeof(header)); + + close(memfd); + + return (0); +} + static int gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused) { @@ -177,6 +237,11 @@ gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused) goto done; } + if ((error = gvt_d_setup_opregion(pi)) != 0) { + warnx("%s: Unable to setup OpRegion", __func__); + goto done; + } + done: return (error); } From nobody Fri Jun 16 06:14:19 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84q49h9z4fGZD; Fri, 16 Jun 2023 06:14:19 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84q31Hdz3qR1; Fri, 16 Jun 2023 06:14:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cJ1plMSe7BqQf/5C3py8MynClIljKbDSbkuyIjF2Bus=; b=SywCda7GCgOaUq501mfzIbwhVh4xKtsfo9AO6IRQQzBX4BdAX06Ov5NgA/gtSpmJ/nnRW+ 7zgZw5iMWyLgue3bji23VGQffKDZwA8jME/ECLkqtvSVP3B8jdvY+v7lBve3utemc6itJn W67o67CJaZSB2afp2UyehB9/nlqszPVYBXyNVu3bNq3jOh/7PJunlBzb+jl6fthKoHiIR3 H55hvbT/IBndPxyKCnWiitrTosGYv+hT31sTZBRDk74zQLYZZ6guxKrX4+KpUTZrMC3I7P 0JyBj7p0Z/PPcXAA25/fi6ems7+IBYK8JPWIxvyRLTgmNhq852Oy+m/pYOe3vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cJ1plMSe7BqQf/5C3py8MynClIljKbDSbkuyIjF2Bus=; b=upiXqYO5HVmUYMBty4cEniqpkqb0qZjr1Lpmc3o24q3xHgf6jEfKmr4Tj0uB9KoTrzOnog Dfc3q4F2Q+6zvuWpStbA+rEyXlp6xvTMgEsIygrFPQwyNm/2rppTfEZIWPUcIuk1gUtTA0 3kw++YCq9FCwhGo0l+uYA9XOd9zmrujZmWN37wa9QZC+t9tMKi75sxteqjEQpO9zkdXahw tGikNx7dGAfLi/I14hCGborBki5atHh4sj1URcAa8+hSypZJNPUqF/G3m9jCg63bsQRS8Z ZHhK8GqYLH2aTtDjdAnd79PaAHTM39eoIMsVfETgWhj4BHAP+QPe7wpJZfhMMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896059; a=rsa-sha256; cv=none; b=yp24yKi6NRDffL34IQfxRBM3GfPnrXleNW8xnTB5lh8/Odp18pi7028/xEBZoZ1k4pbvGa g21zdCZ1qrlve72ZdEo3CWzNlwV0BS8Bn5FJw8weUoJZD7xjgK5D+/zHQ9QKHqXvOzupZZ 3dXY9Rj3J7Sji9bnrchTQ1cDYEpFtUg8KgTMnyFtWO3hpMEZU15g7iS7n3a3sYEuZ99LTO P5NSKfTypRgdTzhieJadSE5Ihe9dTTuVeTUkSnTxpFhSFnmAzeClkNAHdgMDc+mAIiYyA+ Cem5XiQUxUk5mDyM8DFGcerob1wRvIc4FUxMtO9fKH74kOziRrRL4s+KguF6CQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84q1qhSzHbL; Fri, 16 Jun 2023 06:14:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EJ7G035222; Fri, 16 Jun 2023 06:14:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EJhK035221; Fri, 16 Jun 2023 06:14:19 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:19 GMT Message-Id: <202306160614.35G6EJhK035221@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 1115cdcf7af1 - main - bhyve: copy OpRegion into guest memory List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1115cdcf7af12fd06ca255b981cb579a7bb7a147 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=1115cdcf7af12fd06ca255b981cb579a7bb7a147 commit 1115cdcf7af12fd06ca255b981cb579a7bb7a147 Author: Corvin Köhne AuthorDate: 2023-05-10 11:39:56 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:55:05 +0000 bhyve: copy OpRegion into guest memory This makes the OpRegion accessible by the guest. However, the guest doesn't know the address of the OpRegion. This will be fixed by an upcoming commit. The range of the OpRegion is added to the e820 table. This allows the guest firmware to easily pick up this range and to reserve it properly. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40041 --- usr.sbin/bhyve/pci_gvt-d.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index fd3b48c3e5b7..4616bc84d275 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -222,8 +222,40 @@ gvt_d_setup_opregion(struct pci_devinst *const pi) opregion->len = header->size * KB; munmap(header, sizeof(header)); + opregion->hva = mmap(NULL, opregion->len * KB, PROT_READ, MAP_SHARED, + memfd, opregion->hpa); + if (opregion->hva == MAP_FAILED) { + warn("%s: Unable to map host OpRegion", __func__); + close(memfd); + return (-1); + } close(memfd); + opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len, + E820_ALIGNMENT_NONE, E820_TYPE_NVS); + if (opregion->gpa == 0) { + warnx( + "%s: Unable to add OpRegion to E820 table (hpa 0x%lx len 0x%lx)", + __func__, opregion->hpa, opregion->len); + e820_dump_table(); + return (-1); + } + opregion->gva = vm_map_gpa(pi->pi_vmctx, opregion->gpa, opregion->len); + if (opregion->gva == NULL) { + warnx("%s: Unable to map guest OpRegion", __func__); + return (-1); + } + if (opregion->gpa != opregion->hpa) { + /* + * A 1:1 host to guest mapping is not required but this could + * change in the future. + */ + warnx( + "Warning: Unable to reuse host address of OpRegion. GPU passthrough might not work properly."); + } + + memcpy(opregion->gva, opregion->hva, opregion->len); + return (0); } @@ -247,8 +279,18 @@ done: } static void -gvt_d_deinit(struct pci_devinst *const pi __unused) +gvt_d_deinit(struct pci_devinst *const pi) { + struct passthru_softc *sc; + struct passthru_mmio_mapping *opregion; + + sc = pi->pi_arg; + + opregion = passthru_get_mmio(sc, GVT_D_MAP_OPREGION); + + /* HVA is only set, if it's initialized */ + if (opregion->hva) + munmap((void *)opregion->hva, opregion->len); } static struct passthru_dev gvt_d_dev = { From nobody Fri Jun 16 06:14:20 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj84r4V2Pz4fGfK; Fri, 16 Jun 2023 06:14:20 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj84r3vwTz3qcd; Fri, 16 Jun 2023 06:14:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Grofehpb/m4+jfOuVGH+Kzqj3YidguWyyHMaN6tdb/4=; b=jPW3LHzNdU/dt8DhM9azZgS2PGce+ysfqT+a2qChL5vUoUgr+wPNjXXQBbsEODx7u+/Ul8 XYjmWjhydaqUPlG3ME71KclX5O71YwASEMI1wfx59Q9XQc/EbinWL9ObPNNY3KskcARXNX m3RBCuBwZN2n1X7iGFRzNn0OK66fZmz2Im78RdY8mtvCuC1PRzdk86wnOa1ETgdEyOjvPW ++OLCYKJ08PPUS4ZLtXOgEJglJnc3J1DrdN5U4JquvsQjwbi6GU3Mq/oIiPbXmWpGg4fwz zTlTu3BaWtIMhJYQskmr5g0VR/CIiuEez/wEzRh4DUWWOy5r4uvdmsfjWZYw6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Grofehpb/m4+jfOuVGH+Kzqj3YidguWyyHMaN6tdb/4=; b=DV6l/nyLgzpHEDyIFV26QeB7uP3GzBGr1Qe6WX6UQIWE9/9+0gPb54somHZXMN7Gv6Ozci TaghG/qFNo70qipiL3Yl15vR6ckzBYF5mwUTdltokUV89G3ZUezsiWrh2iDjLi14Cneich E2oUwCdoZtlwJBCtOb3kbAxzMknNH3yFlcwOpGjDhcmUdJE6TQ6/4dc6qAR/jDh4PDlUVo RNP+XiBVdCkZ+ylcMimM8Bxt0Ign5bCBnO1TOXpQ2lUqhRVlbBhNYx5AkJ1XrcBnbUZwye XpMC1ldoqRArknt5mLvrKvLh1RMLPhJXFx4FWsPS1emZtOL3YzfUoedCxh18JA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896060; a=rsa-sha256; cv=none; b=DccZJXgbFk7r2o36pv/JoyCRSpV9VQudCP/pJZeumBtlEIdova+l66EmCphlHExMlhGVtP om1mr6zU+94vAffH/FAfG7XoyI8QU36vsvla0aF3oI6tyFnhTSVwHzIsCXvyJsa7bwszre 9x5wtgJqQ9gXRhVyDoKb8ii8QXiolU/5bUkNTvk2cYZcopbarbx82k3srGb2zqpeTMm9vr JC2ylY5cCqhvLpllMWUayXDxNVukUSZT/bdsLstZgfJ4ySn+GgE6mKt8WYazRpvoibN1yk F8p2fj2VrRo4nxE+XyD82lZ8ML12zKanN3LdiVIlOAcoIHV+zNTwfqCoyax1zg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj84r2lh5zHGG; Fri, 16 Jun 2023 06:14:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6EKht035251; Fri, 16 Jun 2023 06:14:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6EKEg035250; Fri, 16 Jun 2023 06:14:20 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:14:20 GMT Message-Id: <202306160614.35G6EKEg035250@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 71fb2dcb0023 - main - bhyve: pass address of OpRegion to the guest List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 71fb2dcb0023d49fc048e1f7b610ad05bd2efc32 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=71fb2dcb0023d49fc048e1f7b610ad05bd2efc32 commit 71fb2dcb0023d49fc048e1f7b610ad05bd2efc32 Author: Corvin Köhne AuthorDate: 2023-05-10 11:44:28 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 05:55:16 +0000 bhyve: pass address of OpRegion to the guest Don't allow access to the physical ASLS register. It contains a host address which is meaningless for the guest. Additionally, it allows the guest to safely rewrite this register. This is the last commit required for GVT-d. Nevertheless, it might not work due to missing firmware support. MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D26209 --- usr.sbin/bhyve/pci_gvt-d.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c index 4616bc84d275..35c7f30dd292 100644 --- a/usr.sbin/bhyve/pci_gvt-d.c +++ b/usr.sbin/bhyve/pci_gvt-d.c @@ -256,7 +256,10 @@ gvt_d_setup_opregion(struct pci_devinst *const pi) memcpy(opregion->gva, opregion->hva, opregion->len); - return (0); + pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa); + + return (set_pcir_handler(sc, PCIR_ASLS_CTL, 4, passthru_cfgread_emulate, + passthru_cfgwrite_emulate)); } static int From nobody Fri Jun 16 06:23:01 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj8Gt0Wgyz4fJw6; Fri, 16 Jun 2023 06:23:02 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj8Gt04Z3z3w0B; Fri, 16 Jun 2023 06:23:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896582; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vXSNu0YUtrmGXn7n9NyA+YCRumpyxxr074mQOYWjdXc=; b=xt+DUvdc5PBTc/I5eJuN7EMnYfI7il8nzQlV2uI0vZVaEQgCV5hHtkR0dbriUollfrYEn8 O7AoOwOB0nZ73L+Qzlyn+MftckCTFBU4e312Str0yOaC/tkBd3AU8qcJoD+/XSzi1eG0nw KSMz7rFV0kudreGYgnpfNexA5m58MiEFhu1C/O9Xa9qIJY9DO+aZkH8jRx16qA+SOMtUxl +yfB6Hzssoq4FbhOiFzjQgG8YEXPEUttOEOwEI8xFuTrZj4zF9RA2alkP9EREZguRWPA0z ZtOtXFG/wvhnSIyLV/MT2ITm9e+TZJvLiP4tvhL2KB88UquAZ0gvcdIpvnOU8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896582; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vXSNu0YUtrmGXn7n9NyA+YCRumpyxxr074mQOYWjdXc=; b=b/bom2bm6G6xS4WE0ZVpq5tLX9pm7NnVKiT5PbzYiN/eJBtNZ2Eakpao7CHmKcRb9oXLHA n9QwHgzjg8VpEu7nEdRaJ6atgs/PAWE0KT6IrxWHSCZeQEHwpZiqmLmPP+EQOHMitJ+k7q 1nImSCqQcZmcRRtG4SxkOeSaXPnJXFODzNcD6wLuwJ28tgR87n+7qc/H8uXFeh0haXUkAT dtQ49V3VeVAdI4VJlj3VUfSlH4XuSHHi9sN32JD5g4PQmEDTKb4CwCwFIBqSBN0+iKs2Hx vh5FC2HqtP/KdrgBU/AXlQQkh7ftENL3/6tSSeCOtgmmdQ5BVSke+W3xsGkgiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896582; a=rsa-sha256; cv=none; b=K//cTD2EDdKGnvdpXFCKVujtTHVp2x3xcfv41gotBBwoWhC/1rMp1MHlIRl8nsK018U5XX iH5XVM5ZIAl4p4/Lc0gm/t38E08jhz3mLaw1A0vKwiW73xl8o4Pv2JR4OZ54+YvM40DcTx lDb+tfI9CaON/VV/4iKH/1yToCieWSQXSL1wECIScLOMjw+KPVZizzu9ECf2hOcR/6/42I Sy+eAtHW/7OlMV3iVX0cBL422j74gCH0c3gqWdlyP96j1+s2p2bDxsgQ3xF5W7X/La9R5f lxPnbnnUDQXtUCMQQ60XxJM5H2LYvnNYBnB4jQULXVKz3VwigRXy6iEMrzoCWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj8Gs6H8WzHq0; Fri, 16 Jun 2023 06:23:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6N1vZ051579; Fri, 16 Jun 2023 06:23:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6N1Ma051578; Fri, 16 Jun 2023 06:23:01 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:23:01 GMT Message-Id: <202306160623.35G6N1Ma051578@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: b3564c233749 - main - bhyve: use assert for missing TPM version List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b3564c2337490f40747198dae3206459fa186ac1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=b3564c2337490f40747198dae3206459fa186ac1 commit b3564c2337490f40747198dae3206459fa186ac1 Author: Corvin Köhne AuthorDate: 2023-06-15 08:36:37 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 06:18:08 +0000 bhyve: use assert for missing TPM version The TPM version config node should always be set. If it's not set, there's a bug in our code. An assertion is the correct way to check for this. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40558 --- usr.sbin/bhyve/tpm_device.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/tpm_device.c b/usr.sbin/bhyve/tpm_device.c index 56df6ab0e30c..e48f9df14701 100644 --- a/usr.sbin/bhyve/tpm_device.c +++ b/usr.sbin/bhyve/tpm_device.c @@ -7,6 +7,7 @@ #include +#include #include #include #include @@ -54,7 +55,8 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, } value = get_config_value_node(nvl, "version"); - if (value == NULL || strcmp(value, "2.0")) { + assert(value != NULL); + if (strcmp(value, "2.0")) { warnx("%s: unsupported tpm version %s", __func__, value); error = EINVAL; goto err_out; From nobody Fri Jun 16 06:23:02 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj8Gv2TvHz4fK1t; Fri, 16 Jun 2023 06:23:03 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj8Gv1Nmxz3w4g; Fri, 16 Jun 2023 06:23:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896583; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j2EGhL/LF9jIRODXoYdKIwsx1FlHGF3H2zoxfNGDi1o=; b=R8vhdSdiuLLbjbgx7Rzp3L2f3v//r8EfWJApnD8M86/52OosBR3OLpdottdvmr649N/+kX qa71raVs659xlEj5Qk6s4zNsm5/LYnIIK5s7oRZ1dJxbglWHObwsu38HBmSgWgADogGJln MRBSvOtxoWZOeB8XrnphO9w5UfPTPAdp6IHiOcri4XmrEEnKpaMKQLyHnMze2ifF4dsR+v 9poSVGp7Est309KfXbysbNeh0y7W1nZ58Gw53MOddHeEo5up0oVq9Mzw9qssgHDLhPZ82V pESj2EbfO7U1pNH3yi3Zg+tDaM3GJ0GQp0gXwTDkk2zuEjseq3VuhcP3pbkzcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896583; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j2EGhL/LF9jIRODXoYdKIwsx1FlHGF3H2zoxfNGDi1o=; b=mhFoCX3BXr6BqxrdS1iV4KuZomRjaOebNostpHEr7dy0TWf6JJvwGu/W17FTo5tgOaphkP qLuNIKapvDRg/RY5l6EEKBCAPd59U2TDcJhVsIQwIjSz9ADVihj++EEZVKou7RYLE9N2Iu 49kNpxykklzQp67MYWeVIx/bluVX2zXh9G3CjeF4AcJsXFpuG1cjeHhdhu/qZboP6zrOOP RJHCIWvBboqiBUlTZTvr75c39AJ60r2QbWMx8qmixFZPviwAPZw1wUupWyZ7azeinzJZGI QwL4+Q305TtiPt70cCBWXrhq8/e3mHtbMbjJbyqj2ZqaOITalN5hrjylGgkbjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896583; a=rsa-sha256; cv=none; b=JBdlYR1iPpgXaaoP9qRLfMVOiehdiC8JWh5Wxkw0ZLsjE1Um1p/FEw7DCa+79lnqDnd0oK wuUIVR537Eq2ycz6Er+Eg9AbdW6QbsYex0TmDH3dMuz3l+zENldm/spTHvxQoJiJYCUn9o 2YZ16jG4OTlXsX/NPVJj70nR5klkqEaHFWF3Y/5pec+TEQRug9MHhXHrgtTvTvRjVJMjVp lifULBDs6aUvW30108SqQUv1GKWCjNF3FkYyWP4svRGBNBZT/gMOYjKCH2m//mNfLYJfuu WqhHTlXDvGdJ0Jq+mBWD61lPrvt4F6sdFdjBiL56fgGzj57JcZ7Vuy7E1XXafQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj8Gv05zPzHZ1; Fri, 16 Jun 2023 06:23:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6N2ee051603; Fri, 16 Jun 2023 06:23:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6N2KX051602; Fri, 16 Jun 2023 06:23:02 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:23:02 GMT Message-Id: <202306160623.35G6N2KX051602@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: e09778575817 - main - bhyve: add basic TPM emulation struct List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e09778575817badd574389382317b46b4213ecf4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=e09778575817badd574389382317b46b4213ecf4 commit e09778575817badd574389382317b46b4213ecf4 Author: Corvin Köhne AuthorDate: 2023-05-15 11:49:42 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 06:18:39 +0000 bhyve: add basic TPM emulation struct This struct will be used to implement various TPM emulations like a TPM passthrough or a virtual TPM. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40454 --- usr.sbin/bhyve/tpm_device.c | 29 +++++++++++++++++++++++++++++ usr.sbin/bhyve/tpm_emul.h | 22 ++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/usr.sbin/bhyve/tpm_device.c b/usr.sbin/bhyve/tpm_device.c index e48f9df14701..3a847cc53a9b 100644 --- a/usr.sbin/bhyve/tpm_device.c +++ b/usr.sbin/bhyve/tpm_device.c @@ -17,13 +17,18 @@ #include "acpi_device.h" #include "config.h" #include "tpm_device.h" +#include "tpm_emul.h" #define TPM_ACPI_DEVICE_NAME "TPM" #define TPM_ACPI_HARDWARE_ID "MSFT0101" +SET_DECLARE(tpm_emul_set, struct tpm_emul); + struct tpm_device { struct vmctx *vm_ctx; struct acpi_device *acpi_dev; + struct tpm_emul *emul; + void *emul_sc; }; static const struct acpi_device_emul tpm_acpi_device_emul = { @@ -37,6 +42,9 @@ tpm_device_destroy(struct tpm_device *const dev) if (dev == NULL) return; + if (dev->emul != NULL && dev->emul->deinit != NULL) + dev->emul->deinit(dev->emul_sc); + acpi_device_destroy(dev->acpi_dev); free(dev); } @@ -46,6 +54,7 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, nvlist_t *const nvl) { struct tpm_device *dev = NULL; + struct tpm_emul **ppemul; const char *value; int error; @@ -75,6 +84,26 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, if (error) goto err_out; + value = get_config_value_node(nvl, "type"); + assert(value != NULL); + SET_FOREACH(ppemul, tpm_emul_set) { + if (strcmp(value, (*ppemul)->name)) + continue; + dev->emul = *ppemul; + break; + } + if (dev->emul == NULL) { + warnx("TPM emulation \"%s\" not found", value); + error = EINVAL; + goto err_out; + } + + if (dev->emul->init) { + error = dev->emul->init(&dev->emul_sc, nvl); + if (error) + goto err_out; + } + *new_dev = dev; return (0); diff --git a/usr.sbin/bhyve/tpm_emul.h b/usr.sbin/bhyve/tpm_emul.h new file mode 100644 index 000000000000..f75c0318d37e --- /dev/null +++ b/usr.sbin/bhyve/tpm_emul.h @@ -0,0 +1,22 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#pragma once + +#include + +#include "config.h" + +struct tpm_device; + +struct tpm_emul { + const char *name; + + int (*init)(void **sc, nvlist_t *nvl); + void (*deinit)(void *sc); +}; +#define TPM_EMUL_SET(x) DATA_SET(tpm_emul_set, x) From nobody Fri Jun 16 06:23:04 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj8Gw5tvjz4fJyM; Fri, 16 Jun 2023 06:23:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj8Gw240Rz3w14; Fri, 16 Jun 2023 06:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896584; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+shP/edntlcnVD0YCxU+14v6cm2l5XiWMs9ljBZUwjc=; b=ELjy9VPepcl1B01gki82m4HqyvQGiWsbznocSJZiUZw6iipuEC6zOka1uPO/8tl5VSJw5r NewqYXMjlvRH+reH3QeZolQKliRP4/OPebLXDkuQf/IJg3aHJ3DamQLoieEKszCsuMdOCl A4mde2O9BSs9AMTndgRK3qchjyzLXU2/aOu+6BPXIbPJpxSkhwSCg0T7MMcmXMk57k4TxF ekeRxs/zHg0nVB5wizv77CvGMyqloeg5sFhSP1Cti+026KWwLWOpvXBPZfaLp79fOOYZmD jOujSmPP9n6c7YH+YKRrDUucRJqNBZmvDYqF6YT1Zla2fw+htLudwiu1ahbTMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896584; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+shP/edntlcnVD0YCxU+14v6cm2l5XiWMs9ljBZUwjc=; b=FKV2lo5V+pYIza27PSFLym0zxOC4uN6tsnqt1g0mA0nnDSLUEQlnRCh3TZ3pxN5u7rDTO/ e/s52sTSnrhjX/VrrURzdO3Ogi49UaEHva/uwfYOGTRtXnGt0y08caH6kIFGuC7uPcZQJ+ p18ezzQCDXvsgOTT+3ORhAppwmv0x09KWT8HktdIUy68at33YrtiEp+5INMFdQgJb/arN1 Xk7979tWgy+SbGpjA1whNTlI6P23iPPe6UJGIE/lBSyoLR19iApFC/ij3/V5ZpdzoIeUaz eeX5kaOZoHOjPOebL8L2uembzvC1Do102DoZOglwL+j18m/1cAC2WbyCPHot7Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896584; a=rsa-sha256; cv=none; b=EbUb2f5sfMQzqO3lBGrxdzNVqZwqcCqa6CZOyfccMPjuDZ2ADApxLdYNZR0riVF3EJq/Na OHttxz5+WPCevQuoG22tYXy4BZLP6+QtjwfT/nB0FcpejLh/Y5c1qGdZuStvEOwI0+asvB hK8oXeG/c/XnVwTFyL0omqyKe9ynvpyoZR7O5q04BEhPbX1My+d9LdOnkd4HFpbGTXtPxp aP1fetfYyXQCktUKnzztcVhTMr8dXkrtTiU9q+++OfeqwKkPEk6KdBWf1CzQhh/ZjXvSQC A3gzjzjHBXO0fXEVUyPRNlM1DZp7JduwPzSuaa8eotiiNIBJmUcOdEDQGtmcHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj8Gw0rhMzHZ2; Fri, 16 Jun 2023 06:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6N4hs051627; Fri, 16 Jun 2023 06:23:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6N4qM051626; Fri, 16 Jun 2023 06:23:04 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:23:04 GMT Message-Id: <202306160623.35G6N4qM051626@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 11ba214629b1 - main - bhyve: add basic TPM passthrough emulation List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 11ba214629b1c1379a29451af8af7e399713aa5a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=11ba214629b1c1379a29451af8af7e399713aa5a commit 11ba214629b1c1379a29451af8af7e399713aa5a Author: Corvin Köhne AuthorDate: 2023-05-15 12:04:15 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 06:18:55 +0000 bhyve: add basic TPM passthrough emulation At the moment, the emulation only opens a file descriptor to the TPM device. Some subsequent commits will read and write from it. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40455 --- usr.sbin/bhyve/Makefile | 1 + usr.sbin/bhyve/tpm_emul_passthru.c | 69 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile index 08eb41c430d5..fc880566228b 100644 --- a/usr.sbin/bhyve/Makefile +++ b/usr.sbin/bhyve/Makefile @@ -76,6 +76,7 @@ SRCS= \ spinup_ap.c \ task_switch.c \ tpm_device.c \ + tpm_emul_passthru.c \ uart_emul.c \ usb_emul.c \ usb_mouse.c \ diff --git a/usr.sbin/bhyve/tpm_emul_passthru.c b/usr.sbin/bhyve/tpm_emul_passthru.c new file mode 100644 index 000000000000..9d706dee7120 --- /dev/null +++ b/usr.sbin/bhyve/tpm_emul_passthru.c @@ -0,0 +1,69 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#include + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "tpm_device.h" +#include "tpm_emul.h" + +struct tpm_passthru { + int fd; +}; + +static int +tpm_passthru_init(void **sc, nvlist_t *nvl) +{ + struct tpm_passthru *tpm; + const char *path; + + tpm = calloc(1, sizeof(struct tpm_passthru)); + if (tpm == NULL) { + warnx("%s: failed to allocate tpm passthru", __func__); + return (ENOMEM); + } + + path = get_config_value_node(nvl, "path"); + tpm->fd = open(path, O_RDWR); + if (tpm->fd < 0) { + warnx("%s: unable to open tpm device \"%s\"", __func__, path); + return (ENOENT); + } + + *sc = tpm; + + return (0); +} + +static void +tpm_passthru_deinit(void *sc) +{ + struct tpm_passthru *tpm; + + tpm = sc; + if (tpm == NULL) + return; + + if (tpm->fd >= 0) + close(tpm->fd); + + free(tpm); +} + +static const struct tpm_emul tpm_emul_passthru = { + .name = "passthru", + .init = tpm_passthru_init, + .deinit = tpm_passthru_deinit, +}; +TPM_EMUL_SET(tpm_emul_passthru); From nobody Fri Jun 16 06:23:05 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj8Gx3Nf2z4fJc4; Fri, 16 Jun 2023 06:23:05 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj8Gx2pzJz3w3P; Fri, 16 Jun 2023 06:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896585; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mijnsl1vNQEV+ILTNzPYJEbKSBTh6cao4+QCjkG0NMU=; b=nG5JipzPw0Gtulq+wd66LOmFGli5elhOzPeygCkM39QRD96Ag648ID6PYHSu1+3MEH4Zva rXiEtTEfO3c/RV43QpIPjnMllzqN+JCzdKtYJMzy17DSbkwSAdIDFyejK4RKVsbArTFE0J jKaxW3WFidUvM2efi6fAtPuVjtiWK5AS5Q5BC6ow8E0A7M9BArMIGnpwF94Tjw+mR/rW4G Dc+120gJh098iYIqhhMD14S/pTM6qpXCVSiERFT6s50oq+h8kz1Mbtvrf9Ydvicoy/Zx/j k0sPrZQ9kWuZ8Z/KcWVygbbH3+zSrcqvYLV6WFCimQK+xDwxgZIfWlYh2RlNag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686896585; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mijnsl1vNQEV+ILTNzPYJEbKSBTh6cao4+QCjkG0NMU=; b=KXQrD2Xr0KTXvFF5TpBm15koFmGb5VieHdkn1U6qz6CfoHr5sLRit2H7dYbtPG4DPC416B O0Ily4pyOYZ3SUVU9GfpxmZ6CL2ljz2CISJtc9m5BtLT5XC+lk5lGvjEPRC3BjTF2zVYoP /udVolitkJdklA6EGAmp4G69KcB0wvCWA/MjjYRjgvg1nYaMvinSYiJzP92n/C5HhhKwS5 deQnNLV176UvxtNB7MiOmuLzCJAtgXKk6PLl+Hg/Mf0y6lgMbo2JNvtE1vC20htTg+gSWc U2Re1T7wBtVZMEZh0W40OZuys7b3S45QbXolIR6EPptDDr7NyQHRGmhROhYXaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686896585; a=rsa-sha256; cv=none; b=PfrzKZ9GrcIOGPP5MgM4aZSaRpX0Vy2UDoYylDeYkmHCSlOCBN2fTeoIKk4Ire+m2jn9jj aBiybwS9IF5f10CxxiZn45Jvs7QxY3Hy1OoyEFrOm3NKWiAYYz/86xNxRD8x5ejMGcmnjI manDz3mv76AvebQPbYEq9c7xAIg5gI3lYiJ7yJfkJj3zN0vhgr5HHScgbN/VartgLWHfxW 7QMr20V14PT1nf4dKrDaUVAj+0L3GsIu+KmTMNTTsdR7YfGdF/rmuliVE3vvErGG0D4YfH OX2FoTY4N6NoJVfWJM6i//6x3sQGUbFaG/mwIfccD3FC50clsDBftnxHanyfRA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj8Gx1sn8zHH8; Fri, 16 Jun 2023 06:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6N55r051651; Fri, 16 Jun 2023 06:23:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6N5E7051650; Fri, 16 Jun 2023 06:23:05 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:23:05 GMT Message-Id: <202306160623.35G6N5E7051650@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 0917f925b46e - main - bhyve: add basic CRB interface for TPM devices List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0917f925b46e3142c4373d1591bf22014d0f338e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=0917f925b46e3142c4373d1591bf22014d0f338e commit 0917f925b46e3142c4373d1591bf22014d0f338e Author: Corvin Köhne AuthorDate: 2022-08-29 10:10:43 +0000 Commit: Corvin Köhne CommitDate: 2023-06-16 06:22:53 +0000 bhyve: add basic CRB interface for TPM devices Add a basic emulation for the command and response buffer interface of TPM devices. This commit only implements some CRB register and resets them. Reviewed by: markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D40456 --- usr.sbin/bhyve/Makefile | 1 + usr.sbin/bhyve/tpm_device.c | 29 ++++++ usr.sbin/bhyve/tpm_intf.h | 35 +++++++ usr.sbin/bhyve/tpm_intf_crb.c | 232 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 297 insertions(+) diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile index fc880566228b..9b8a7274d793 100644 --- a/usr.sbin/bhyve/Makefile +++ b/usr.sbin/bhyve/Makefile @@ -77,6 +77,7 @@ SRCS= \ task_switch.c \ tpm_device.c \ tpm_emul_passthru.c \ + tpm_intf_crb.c \ uart_emul.c \ usb_emul.c \ usb_mouse.c \ diff --git a/usr.sbin/bhyve/tpm_device.c b/usr.sbin/bhyve/tpm_device.c index 3a847cc53a9b..e1db0bab1ee9 100644 --- a/usr.sbin/bhyve/tpm_device.c +++ b/usr.sbin/bhyve/tpm_device.c @@ -18,17 +18,21 @@ #include "config.h" #include "tpm_device.h" #include "tpm_emul.h" +#include "tpm_intf.h" #define TPM_ACPI_DEVICE_NAME "TPM" #define TPM_ACPI_HARDWARE_ID "MSFT0101" SET_DECLARE(tpm_emul_set, struct tpm_emul); +SET_DECLARE(tpm_intf_set, struct tpm_intf); struct tpm_device { struct vmctx *vm_ctx; struct acpi_device *acpi_dev; struct tpm_emul *emul; void *emul_sc; + struct tpm_intf *intf; + void *intf_sc; }; static const struct acpi_device_emul tpm_acpi_device_emul = { @@ -42,6 +46,8 @@ tpm_device_destroy(struct tpm_device *const dev) if (dev == NULL) return; + if (dev->intf != NULL && dev->intf->deinit != NULL) + dev->intf->deinit(dev->intf_sc); if (dev->emul != NULL && dev->emul->deinit != NULL) dev->emul->deinit(dev->emul_sc); @@ -55,6 +61,7 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, { struct tpm_device *dev = NULL; struct tpm_emul **ppemul; + struct tpm_intf **ppintf; const char *value; int error; @@ -63,6 +70,8 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, goto err_out; } + set_config_value_node_if_unset(nvl, "intf", "crb"); + value = get_config_value_node(nvl, "version"); assert(value != NULL); if (strcmp(value, "2.0")) { @@ -104,6 +113,26 @@ tpm_device_create(struct tpm_device **const new_dev, struct vmctx *const vm_ctx, goto err_out; } + value = get_config_value_node(nvl, "intf"); + SET_FOREACH(ppintf, tpm_intf_set) { + if (strcmp(value, (*ppintf)->name)) { + continue; + } + dev->intf = *ppintf; + break; + } + if (dev->intf == NULL) { + warnx("TPM interface \"%s\" not found", value); + error = EINVAL; + goto err_out; + } + + if (dev->intf->init) { + error = dev->intf->init(&dev->intf_sc); + if (error) + goto err_out; + } + *new_dev = dev; return (0); diff --git a/usr.sbin/bhyve/tpm_intf.h b/usr.sbin/bhyve/tpm_intf.h new file mode 100644 index 000000000000..7de7bc6d4435 --- /dev/null +++ b/usr.sbin/bhyve/tpm_intf.h @@ -0,0 +1,35 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2022 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#pragma once + +#include "config.h" +#include "tpm_device.h" + +#define TPM_INTF_TYPE_FIFO_PTP 0x0 +#define TPM_INTF_TYPE_CRB 0x1 +#define TPM_INTF_TYPE_FIFO_TIS 0xF + +#define TPM_INTF_VERSION_FIFO 0 +#define TPM_INTF_VERSION_CRB 1 + +#define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_4 0 +#define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_8 1 +#define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_32 2 +#define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_64 3 + +#define TPM_INTF_SELECTOR_FIFO 0 +#define TPM_INTF_SELECTOR_CRB 1 + +struct tpm_intf { + const char *name; + + int (*init)(void **sc); + void (*deinit)(void *sc); + int (*build_acpi_table)(void *sc); +}; +#define TPM_INTF_SET(x) DATA_SET(tpm_intf_set, x) diff --git a/usr.sbin/bhyve/tpm_intf_crb.c b/usr.sbin/bhyve/tpm_intf_crb.c new file mode 100644 index 000000000000..5fd640b2d5c9 --- /dev/null +++ b/usr.sbin/bhyve/tpm_intf_crb.c @@ -0,0 +1,232 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2022 Beckhoff Automation GmbH & Co. KG + * Author: Corvin Köhne + */ + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "basl.h" +#include "config.h" +#include "mem.h" +#include "qemu_fwcfg.h" +#include "tpm_intf.h" + +#define TPM_CRB_ADDRESS 0xFED40000 +#define TPM_CRB_REGS_SIZE 0x1000 + +#define TPM_CRB_DATA_BUFFER_ADDRESS \ + (TPM_CRB_ADDRESS + offsetof(struct tpm_crb_regs, data_buffer)) +#define TPM_CRB_DATA_BUFFER_SIZE 0xF80 + +#define TPM_CRB_LOCALITIES_MAX 5 + +struct tpm_crb_regs { + union tpm_crb_reg_loc_state { + struct { + uint32_t tpm_established : 1; + uint32_t loc_assigned : 1; + uint32_t active_locality : 3; + uint32_t _reserved : 2; + uint32_t tpm_req_valid_sts : 1; + }; + uint32_t val; + } loc_state; /* 0h */ + uint8_t _reserved1[4]; /* 4h */ + union tpm_crb_reg_loc_ctrl { + struct { + uint32_t request_access : 1; + uint32_t relinquish : 1; + uint32_t seize : 1; + uint32_t reset_establishment_bit : 1; + }; + uint32_t val; + } loc_ctrl; /* 8h */ + union tpm_crb_reg_loc_sts { + struct { + uint32_t granted : 1; + uint32_t been_seized : 1; + }; + uint32_t val; + } loc_sts; /* Ch */ + uint8_t _reserved2[0x20]; /* 10h */ + union tpm_crb_reg_intf_id { + struct { + uint64_t interface_type : 4; + uint64_t interface_version : 4; + uint64_t cap_locality : 1; + uint64_t cap_crb_idle_bypass : 1; + uint64_t _reserved1 : 1; + uint64_t cap_data_xfer_size_support : 2; + uint64_t cap_fifo : 1; + uint64_t cap_crb : 1; + uint64_t _reserved2 : 2; + uint64_t interface_selector : 2; + uint64_t intf_sel_lock : 1; + uint64_t _reserved3 : 4; + uint64_t rid : 8; + uint64_t vid : 16; + uint64_t did : 16; + }; + uint64_t val; + } intf_id; /* 30h */ + union tpm_crb_reg_ctrl_ext { + struct { + uint32_t clear; + uint32_t remaining_bytes; + }; + uint64_t val; + } ctrl_ext; /* 38 */ + union tpm_crb_reg_ctrl_req { + struct { + uint32_t cmd_ready : 1; + uint32_t go_idle : 1; + }; + uint32_t val; + } ctrl_req; /* 40h */ + union tpm_crb_reg_ctrl_sts { + struct { + uint32_t tpm_sts : 1; + uint32_t tpm_idle : 1; + }; + uint32_t val; + } ctrl_sts; /* 44h */ + union tpm_crb_reg_ctrl_cancel { + struct { + uint32_t cancel : 1; + }; + uint32_t val; + } ctrl_cancel; /* 48h */ + union tpm_crb_reg_ctrl_start { + struct { + uint32_t start : 1; + }; + uint32_t val; + } ctrl_start; /* 4Ch*/ + uint32_t int_enable; /* 50h */ + uint32_t int_sts; /* 54h */ + uint32_t cmd_size; /* 58h */ + uint32_t cmd_addr_lo; /* 5Ch */ + uint32_t cmd_addr_hi; /* 60h */ + uint32_t rsp_size; /* 64h */ + uint64_t rsp_addr; /* 68h */ + uint8_t _reserved3[0x10]; /* 70h */ + uint8_t data_buffer[TPM_CRB_DATA_BUFFER_SIZE]; /* 80h */ +} __packed; +static_assert(sizeof(struct tpm_crb_regs) == TPM_CRB_REGS_SIZE, + "Invalid size of tpm_crb"); + +#define CRB_CMD_SIZE_READ(regs) (regs.cmd_size) +#define CRB_CMD_SIZE_WRITE(regs, val) \ + do { \ + regs.cmd_size = val; \ + } while (0) +#define CRB_CMD_ADDR_READ(regs) \ + (((uint64_t)regs.cmd_addr_hi << 32) | regs.cmd_addr_lo) +#define CRB_CMD_ADDR_WRITE(regs, val) \ + do { \ + regs.cmd_addr_lo = val & 0xFFFFFFFF; \ + regs.cmd_addr_hi = val >> 32; \ + } while (0) +#define CRB_RSP_SIZE_READ(regs) (regs.rsp_size) +#define CRB_RSP_SIZE_WRITE(regs, val) \ + do { \ + regs.rsp_size = val; \ + } while (0) +#define CRB_RSP_ADDR_READ(regs) (regs.rsp_addr) +#define CRB_RSP_ADDR_WRITE(regs, val) \ + do { \ + regs.rsp_addr = val; \ + } while (0) + +struct tpm_crb { + struct tpm_crb_regs regs; +}; + +static int +tpm_crb_init(void **sc) +{ + struct tpm_crb *crb = NULL; + int error; + + assert(sc != NULL); + + crb = calloc(1, sizeof(struct tpm_crb)); + if (crb == NULL) { + warnx("%s: failed to allocate tpm crb", __func__); + error = ENOMEM; + goto err_out; + } + + memset(crb, 0, sizeof(*crb)); + + crb->regs.loc_state.tpm_req_valid_sts = true; + crb->regs.loc_state.tpm_established = true; + + crb->regs.intf_id.interface_type = TPM_INTF_TYPE_CRB; + crb->regs.intf_id.interface_version = TPM_INTF_VERSION_CRB; + crb->regs.intf_id.cap_locality = false; + crb->regs.intf_id.cap_crb_idle_bypass = false; + crb->regs.intf_id.cap_data_xfer_size_support = + TPM_INTF_CAP_CRB_DATA_XFER_SIZE_64; + crb->regs.intf_id.cap_fifo = false; + crb->regs.intf_id.cap_crb = true; + crb->regs.intf_id.interface_selector = TPM_INTF_SELECTOR_CRB; + crb->regs.intf_id.intf_sel_lock = false; + crb->regs.intf_id.rid = 0; + crb->regs.intf_id.vid = 0x1014; /* IBM */ + crb->regs.intf_id.did = 0x1014; /* IBM */ + + crb->regs.ctrl_sts.tpm_idle = true; + + CRB_CMD_SIZE_WRITE(crb->regs, TPM_CRB_DATA_BUFFER_SIZE); + CRB_CMD_ADDR_WRITE(crb->regs, TPM_CRB_DATA_BUFFER_ADDRESS); + CRB_RSP_SIZE_WRITE(crb->regs, TPM_CRB_DATA_BUFFER_SIZE); + CRB_RSP_ADDR_WRITE(crb->regs, TPM_CRB_DATA_BUFFER_ADDRESS); + + *sc = crb; + + return (0); + +err_out: + free(crb); + + return (error); +} + +static void +tpm_crb_deinit(void *sc) +{ + struct tpm_crb *crb; + + if (sc == NULL) { + return; + } + + crb = sc; + + free(crb); +} + +static struct tpm_intf tpm_intf_crb = { + .name = "crb", + .init = tpm_crb_init, + .deinit = tpm_crb_deinit, +}; +TPM_INTF_SET(tpm_intf_crb); From nobody Fri Jun 16 06:52:23 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj8wl3sxxz4fTsR; Fri, 16 Jun 2023 06:52:23 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj8wl3Qg6z450p; Fri, 16 Jun 2023 06:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686898343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cg4q7W2eVbYHhcWq844DfmLC9GTncWjAnZBobr+y38c=; b=BhL3EsnDRklxtajFJ8zOd5WxN/E1j5Zwh6CdDJDqI5AfSK6vQ6nZTMzOjCapMZwGWSoCMZ U0p/0cIMGR8WKtJgU+bBgG6vGnnAIZywztVy2q38SyAfVAXTZ95FrIq0TBd8r3o24e7MuA 0DYObvyy5ZVDmbUW4khN2jYulub+rCUpsD2P+zCOVJ1zfaxNnvFGQGnyLoxydQbAcB4+fW BO5bWqkbh2xXShvoydW4VI9H8hD+B1+nFEb16WZhZoydvECc5W7xmFknNXwwgaUUWCRpZu M/vFHqbBzFG8tdM/5+Kx+Z+TBGg01O/gyDnyb7Ry6HxXC1egqSKBVyMVnwJnmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686898343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cg4q7W2eVbYHhcWq844DfmLC9GTncWjAnZBobr+y38c=; b=U+EDkOsr7EdGaqk5n9M6aq5DzCMFnVuWGJ8I7XdM8qsGO8wnZGcas9fwJxjbgSajul29ZF nF4lKSIoNrl5O2Kr/tPPFIv67+Rgvv6A8stBKbLzJ3w2IXWiSZksMP5oss+64OZu30DsTd 5gYEf+kApmbAiMffE8PHNjSVTmCX+jM/Vypr6NvPpVR7WPIIyLmomQvRf6XNHhhvp4Te9Y CJDAKRavESaCl5TUr/aIEK+wryS+cK3osvl/0JW/Kwog7EqLmsyHmTBWL7BuMg1jfms1ud ZRb9jiO1efSTDvrvVyB2fCtTo1zHaKlz0cfn00PJv03m4sfN4N5urYtM2SXJ6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686898343; a=rsa-sha256; cv=none; b=HQnkEqq5B502JtKEIDWt+COrqrucraFVDj4gM2m5Aec629NaxWeXzXhp0NYKOx3kMqxjpi Y58Jn9I7lhcZEPjduR7djjhr8wt97IuZhyADr837f19JDILNfr1AgtsNhJmTfisup2s/6b O7690uuPCJmi45/ASNXT968XS56osLoxXiZs6+7KFlYBSXgbBVmY+VbB1OVQZB06+JQl+q 9ErAqNRPPX11+s/FQMiXM0ZVs6ARQKLr12KbegRnuKPGosQhsOouTuL8V4UI/+a/b9XKtt P0Yy3W7iPQEVp9NuMurbb6MFpyYh7DDKVw36L88EguP5Anca1rI2vJdbydSxSw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj8wl2W5LzJj2; Fri, 16 Jun 2023 06:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G6qN0F000191; Fri, 16 Jun 2023 06:52:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G6qNMd000190; Fri, 16 Jun 2023 06:52:23 GMT (envelope-from git) Date: Fri, 16 Jun 2023 06:52:23 GMT Message-Id: <202306160652.35G6qNMd000190@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore Subject: git: 9e8174289236 - main - vm_phys: add binary segment search List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9e8174289236de996199aadc6357c05eafba3b38 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=9e8174289236de996199aadc6357c05eafba3b38 commit 9e8174289236de996199aadc6357c05eafba3b38 Author: Doug Moore AuthorDate: 2023-06-16 06:43:45 +0000 Commit: Doug Moore CommitDate: 2023-06-16 06:43:45 +0000 vm_phys: add binary segment search Replace several sequential searches for a segment that contains a phyiscal address with a call to a function that does it by binary search. In vm_page_reclaim_contig_domain_ext, find the first segment to reclaim from, and reclaim from each subsequent appropriate segment. Eliminate vm_phys_scan_contig. Reviewed by: alc, markj Differential Revision: https://reviews.freebsd.org/D40058 --- sys/arm64/arm64/pmap.c | 10 +++----- sys/vm/vm_page.c | 26 +++++++++---------- sys/vm/vm_page.h | 2 -- sys/vm/vm_phys.c | 69 ++++++++++++++++---------------------------------- sys/vm/vm_phys.h | 48 +++++++++++++++++++++++++++++++++-- 5 files changed, 84 insertions(+), 71 deletions(-) diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 4bd1e86ffd5f..3166b3d7959b 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -210,14 +210,10 @@ static struct pmap_large_md_page * _pa_to_pmdp(vm_paddr_t pa) { struct vm_phys_seg *seg; - int segind; - for (segind = 0; segind < vm_phys_nsegs; segind++) { - seg = &vm_phys_segs[segind]; - if (pa >= seg->start && pa < seg->end) - return ((struct pmap_large_md_page *)seg->md_first + - pmap_l2_pindex(pa) - pmap_l2_pindex(seg->start)); - } + if ((seg = vm_phys_paddr_to_seg(pa)) != NULL) + return ((struct pmap_large_md_page *)seg->md_first + + pmap_l2_pindex(pa) - pmap_l2_pindex(seg->start)); return (NULL); } diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 5d822d34ed7c..5e613ff4db4c 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -2627,7 +2627,7 @@ vm_page_zone_release(void *arg, void **store, int cnt) * span a hole (or discontiguity) in the physical address space. Both * "alignment" and "boundary" must be a power of two. */ -vm_page_t +static vm_page_t vm_page_scan_contig(u_long npages, vm_page_t m_start, vm_page_t m_end, u_long alignment, vm_paddr_t boundary, int options) { @@ -3028,10 +3028,9 @@ vm_page_reclaim_contig_domain_ext(int domain, int req, u_long npages, int desired_runs) { struct vm_domain *vmd; - vm_paddr_t curr_low; - vm_page_t m_run, _m_runs[NRUNS], *m_runs; + vm_page_t bounds[2], m_run, _m_runs[NRUNS], *m_runs; u_long count, minalign, reclaimed; - int error, i, min_reclaim, nruns, options, req_class; + int error, i, min_reclaim, nruns, options, req_class, segind; bool ret; KASSERT(npages > 0, ("npages is 0")); @@ -3098,16 +3097,17 @@ vm_page_reclaim_contig_domain_ext(int domain, int req, u_long npages, * Find the highest runs that satisfy the given constraints * and restrictions, and record them in "m_runs". */ - curr_low = low; count = 0; - for (;;) { - m_run = vm_phys_scan_contig(domain, npages, curr_low, - high, alignment, boundary, options); - if (m_run == NULL) - break; - curr_low = VM_PAGE_TO_PHYS(m_run) + ptoa(npages); - m_runs[RUN_INDEX(count, nruns)] = m_run; - count++; + segind = vm_phys_lookup_segind(low); + while ((segind = vm_phys_find_range(bounds, segind, domain, + npages, low, high)) != -1) { + while ((m_run = vm_page_scan_contig(npages, bounds[0], + bounds[1], alignment, boundary, options))) { + bounds[0] = m_run + npages; + m_runs[RUN_INDEX(count, nruns)] = m_run; + count++; + } + segind++; } /* diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h index 824a853fb0f7..8ac99da21c59 100644 --- a/sys/vm/vm_page.h +++ b/sys/vm/vm_page.h @@ -683,8 +683,6 @@ int vm_page_rename(vm_page_t, vm_object_t, vm_pindex_t); void vm_page_replace(vm_page_t mnew, vm_object_t object, vm_pindex_t pindex, vm_page_t mold); int vm_page_sbusied(vm_page_t m); -vm_page_t vm_page_scan_contig(u_long npages, vm_page_t m_start, - vm_page_t m_end, u_long alignment, vm_paddr_t boundary, int options); vm_page_bits_t vm_page_set_dirty(vm_page_t m); void vm_page_set_valid_range(vm_page_t m, int base, int size); vm_offset_t vm_page_startup(vm_offset_t vaddr); diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c index 8db6529b8c80..a0b53f0f7c4b 100644 --- a/sys/vm/vm_phys.c +++ b/sys/vm/vm_phys.c @@ -898,13 +898,9 @@ vm_page_t vm_phys_paddr_to_vm_page(vm_paddr_t pa) { struct vm_phys_seg *seg; - int segind; - for (segind = 0; segind < vm_phys_nsegs; segind++) { - seg = &vm_phys_segs[segind]; - if (pa >= seg->start && pa < seg->end) - return (&seg->first_page[atop(pa - seg->start)]); - } + if ((seg = vm_phys_paddr_to_seg(pa)) != NULL) + return (&seg->first_page[atop(pa - seg->start)]); return (NULL); } @@ -1238,55 +1234,34 @@ vm_phys_free_contig(vm_page_t m, u_long npages) } /* - * Scan physical memory between the specified addresses "low" and "high" for a - * run of contiguous physical pages that satisfy the specified conditions, and - * return the lowest page in the run. The specified "alignment" determines - * the alignment of the lowest physical page in the run. If the specified - * "boundary" is non-zero, then the run of physical pages cannot span a - * physical address that is a multiple of "boundary". - * - * "npages" must be greater than zero. Both "alignment" and "boundary" must - * be a power of two. + * Identify the first address range within segment segind or greater + * that matches the domain, lies within the low/high range, and has + * enough pages. Return -1 if there is none. */ -vm_page_t -vm_phys_scan_contig(int domain, u_long npages, vm_paddr_t low, vm_paddr_t high, - u_long alignment, vm_paddr_t boundary, int options) +int +vm_phys_find_range(vm_page_t bounds[], int segind, int domain, + u_long npages, vm_paddr_t low, vm_paddr_t high) { - vm_paddr_t pa_end; - vm_page_t m_end, m_run, m_start; - struct vm_phys_seg *seg; - int segind; + vm_paddr_t pa_end, pa_start; + struct vm_phys_seg *end_seg, *seg; - KASSERT(npages > 0, ("npages is 0")); - KASSERT(powerof2(alignment), ("alignment is not a power of 2")); - KASSERT(powerof2(boundary), ("boundary is not a power of 2")); - if (low >= high) - return (NULL); - for (segind = 0; segind < vm_phys_nsegs; segind++) { - seg = &vm_phys_segs[segind]; + KASSERT(npages > 0, ("npages is zero")); + KASSERT(domain >= 0 && domain < vm_ndomain, ("domain out of range")); + end_seg = &vm_phys_segs[vm_phys_nsegs]; + for (seg = &vm_phys_segs[segind]; seg < end_seg; seg++) { if (seg->domain != domain) continue; if (seg->start >= high) - break; - if (low >= seg->end) - continue; - if (low <= seg->start) - m_start = seg->first_page; - else - m_start = &seg->first_page[atop(low - seg->start)]; - if (high < seg->end) - pa_end = high; - else - pa_end = seg->end; - if (pa_end - VM_PAGE_TO_PHYS(m_start) < ptoa(npages)) + return (-1); + pa_start = MAX(low, seg->start); + pa_end = MIN(high, seg->end); + if (pa_end - pa_start < ptoa(npages)) continue; - m_end = &seg->first_page[atop(pa_end - seg->start)]; - m_run = vm_page_scan_contig(npages, m_start, m_end, - alignment, boundary, options); - if (m_run != NULL) - return (m_run); + bounds[0] = &seg->first_page[atop(pa_start - seg->start)]; + bounds[1] = &seg->first_page[atop(pa_end - seg->start)]; + return (seg - vm_phys_segs); } - return (NULL); + return (-1); } /* diff --git a/sys/vm/vm_phys.h b/sys/vm/vm_phys.h index a294bbaad80a..fed20bbaae1e 100644 --- a/sys/vm/vm_phys.h +++ b/sys/vm/vm_phys.h @@ -42,6 +42,8 @@ #ifdef _KERNEL +#include + extern vm_paddr_t phys_avail[]; /* Domains must be dense (non-sparse) and zero-based. */ @@ -71,14 +73,14 @@ int vm_phys_fictitious_reg_range(vm_paddr_t start, vm_paddr_t end, vm_memattr_t memattr); void vm_phys_fictitious_unreg_range(vm_paddr_t start, vm_paddr_t end); vm_page_t vm_phys_fictitious_to_vm_page(vm_paddr_t pa); +int vm_phys_find_range(vm_page_t bounds[], int segind, int domain, + u_long npages, vm_paddr_t low, vm_paddr_t high); void vm_phys_free_contig(vm_page_t m, u_long npages); void vm_phys_free_pages(vm_page_t m, int order); void vm_phys_init(void); vm_page_t vm_phys_paddr_to_vm_page(vm_paddr_t pa); void vm_phys_register_domains(int ndomains, struct mem_affinity *affinity, int *locality); -vm_page_t vm_phys_scan_contig(int domain, u_long npages, vm_paddr_t low, - vm_paddr_t high, u_long alignment, vm_paddr_t boundary, int options); bool vm_phys_unfree_page(vm_page_t m); int vm_phys_mem_affinity(int f, int t); void vm_phys_early_add_seg(vm_paddr_t start, vm_paddr_t end); @@ -106,5 +108,47 @@ vm_phys_domain(vm_paddr_t pa) #endif } +/* + * Find the segind for the first segment at or after the given physical address. + */ +static inline int +vm_phys_lookup_segind(vm_paddr_t pa) +{ + u_int hi, lo, mid; + + lo = 0; + hi = vm_phys_nsegs; + while (lo != hi) { + /* + * for i in [0, lo), segs[i].end <= pa + * for i in [hi, nsegs), segs[i].end > pa + */ + mid = lo + (hi - lo) / 2; + if (vm_phys_segs[mid].end <= pa) + lo = mid + 1; + else + hi = mid; + } + return (lo); +} + +/* + * Find the segment corresponding to the given physical address. + */ +static inline struct vm_phys_seg * +vm_phys_paddr_to_seg(vm_paddr_t pa) +{ + struct vm_phys_seg *seg; + int segind; + + segind = vm_phys_lookup_segind(pa); + if (segind < vm_phys_nsegs) { + seg = &vm_phys_segs[segind]; + if (pa >= seg->start) + return (seg); + } + return (NULL); +} + #endif /* _KERNEL */ #endif /* !_VM_PHYS_H_ */ From nobody Fri Jun 16 07:19:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj9XJ02TJz4fZPx; Fri, 16 Jun 2023 07:19:44 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj9XH6VVkz47hl; Fri, 16 Jun 2023 07:19:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686899983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gBncSd/sO6bunxfov2QDc55kqpXKdrVEw21xlayG43k=; b=Vf1ylP+235jhkgeXJyiCnyzwyzl2tQf7Vx5voho0GE5utAXtFo3esvpwWpsdGpwS7+avlL 0SDkiPWzoblNw3SMaY56q1fMhcLosyzyLHFA+48B2uNZtfKOGMMon5+Jo7pknnUkjBl1qR HfPNvdUT/nxY3YTrY3wzKXVAOoMTKirO07Kg1g3qSZ7vq+rRTpNF97iQp70x79G6rsK9e5 9N+FkYtSSB4oLKPbGJ6ylrINJ2SLMKB/DX+nl1kboEKClQJYidoa4KBpUEK6QoPt9+Ryr1 mWfRysIYRbmpnTDefIX1a1WbF2wnmzRm6pCnviDhxsySX8L/QOT1xpO2lxwlVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686899983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gBncSd/sO6bunxfov2QDc55kqpXKdrVEw21xlayG43k=; b=i5QQS4R64jWJTivd24Mw2OUPE8hY72/nqsVQO2SApTYcHlmH7+jJndFUHsjf+En1kzos7S il854wrrxTwLE+U4oNAxxBxH/LbJXdbFXYiBVyh0zSapp7sEOBQV9tWqoaPmaXFMwVt+ZK 1FAAulMzQpDsfP5Rmzy0VNssBvO9GYjr/pL6F9hxAkz/Sz2MENV/w6L8M2sIfDA/+LHQVX Qabu4tlkkP/0+zAiM9t3DitbMr5rrOLg8nllasMcOTHaEdi0hREpg/d16cXvw1v0ZzSoeK EcGLB9nz2OboetY23JeF4JWQLapG8fHG76pKugqISc3bTyOGN1dNLQZPZ8AZAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686899983; a=rsa-sha256; cv=none; b=rNpOl66iCCYb8qzQdqhNMUQlJuGOf1MxSZh2S7JP9yzSW2CIBcNDu64bDaQE60btOxy90r o+umY7XzfXjgImN3t3ao5H2SX7Z517izLN3lrPSJJ/KDB79c9XrxwwI20z9ozDNhCJuvuY ejLsFKBivEEEASOUU2t4J7UpVvq4YDqoYtY1HVKKmXRricEQWMCMj87chfM4pIEDGE7z8l 9sqdHmc9y0ubHbi/oGAOxe0N7NavEeaQD3EhpeSN09Sm4207lfj6QgQ2dSBrl0JJYFInqX +YnJWUBnDhQQAppxfy1+49gOGcrp8s/PQEWh0sbU2xJQU8OAdn3DpTf7q4EKdg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj9XH5S1ZzJyf; Fri, 16 Jun 2023 07:19:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G7JhZs034706; Fri, 16 Jun 2023 07:19:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G7JhLk034705; Fri, 16 Jun 2023 07:19:43 GMT (envelope-from git) Date: Fri, 16 Jun 2023 07:19:43 GMT Message-Id: <202306160719.35G7JhLk034705@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 7fa282e616c3 - main - ifconfig: remove (most of) the usages of global 'struct ifreq ifr'. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7fa282e616c303261904cb6158959d5a784dc3ee Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=7fa282e616c303261904cb6158959d5a784dc3ee commit 7fa282e616c303261904cb6158959d5a784dc3ee Author: Alexander V. Chernikov AuthorDate: 2023-06-14 13:00:49 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 07:19:21 +0000 ifconfig: remove (most of) the usages of global 'struct ifreq ifr'. It is hard to reason about the contents of 'ifr' at any given time as nearly every function sets random fields or pointers in this structure. Use local on-stack clean 'struct ifreq' for each function instead. Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D40534 MFC after: 2 weeks --- sbin/ifconfig/af_inet6.c | 4 +- sbin/ifconfig/af_link.c | 10 +-- sbin/ifconfig/af_nd6.c | 30 ++++----- sbin/ifconfig/ifclone.c | 5 +- sbin/ifconfig/ifconfig.c | 128 +++++++++++++++++++++++---------------- sbin/ifconfig/ifconfig.h | 5 +- sbin/ifconfig/ifconfig_netlink.c | 5 +- sbin/ifconfig/iffib.c | 8 +-- sbin/ifconfig/ifgif.c | 8 +-- sbin/ifconfig/ifgre.c | 22 +++---- sbin/ifconfig/ifipsec.c | 9 ++- sbin/ifconfig/ifpfsync.c | 35 +++++------ sbin/ifconfig/ifstf.c | 6 +- sbin/ifconfig/ifvlan.c | 44 ++++++-------- sbin/ifconfig/ifvxlan.c | 8 +-- 15 files changed, 170 insertions(+), 157 deletions(-) diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index b8a5cb3012ed..1acfc28cad94 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -291,7 +291,7 @@ print_lifetime(const char *prepend, time_t px_time, struct timespec *now) #ifdef WITHOUT_NETLINK static void -in6_status(if_ctx *ctx __unused, const struct ifaddrs *ifa) +in6_status(if_ctx *ctx, const struct ifaddrs *ifa) { struct sockaddr_in6 *sin, null_sin = {}; struct in6_ifreq ifr6; @@ -303,7 +303,7 @@ in6_status(if_ctx *ctx __unused, const struct ifaddrs *ifa) if (sin == NULL) return; - strlcpy(ifr6.ifr_name, ifr.ifr_name, sizeof(ifr.ifr_name)); + strlcpy(ifr6.ifr_name, ctx->ifname, sizeof(ifr6.ifr_name)); if ((s6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { warn("socket(AF_INET6,SOCK_DGRAM)"); return; diff --git a/sbin/ifconfig/af_link.c b/sbin/ifconfig/af_link.c index 7b7c5259d6c9..e66266ece86b 100644 --- a/sbin/ifconfig/af_link.c +++ b/sbin/ifconfig/af_link.c @@ -101,9 +101,11 @@ print_lladdr(struct sockaddr_dl *sdl) } static void -print_pcp(int s) +print_pcp(if_ctx *ctx) { - if (ioctl(s, SIOCGLANPCP, (caddr_t)&ifr) == 0 && + struct ifreq ifr = {}; + + if (ioctl_ctx_ifr(ctx, SIOCGLANPCP, &ifr) == 0 && ifr.ifr_lan_pcp != IFNET_PCP_NONE) printf("\tpcp %d\n", ifr.ifr_lan_pcp); } @@ -159,7 +161,7 @@ link_status(if_ctx *ctx, const struct ifaddrs *ifa) print_ether((const struct ether_addr *)&ifr.ifr_addr.sa_data, "hwaddr"); pcp: - print_pcp(ctx->io_s); + print_pcp(ctx); } #else @@ -196,7 +198,7 @@ link_status_nl(if_ctx *ctx, if_link_t *link, if_addr_t *ifa __unused) } } if (convert_iftype(link->ifi_type) == IFT_ETHER) - print_pcp(ctx->io_s); + print_pcp(ctx); } #endif diff --git a/sbin/ifconfig/af_nd6.c b/sbin/ifconfig/af_nd6.c index ef46f5694cc0..7eeb86585197 100644 --- a/sbin/ifconfig/af_nd6.c +++ b/sbin/ifconfig/af_nd6.c @@ -69,7 +69,7 @@ static const char rcsid[] = "\007NO_RADR\010NO_PREFER_IFACE\011NO_DAD\020DEFAULTIF" #endif -static int isnd6defif(int); +static int isnd6defif(if_ctx *ctx, int s); void setnd6flags(if_ctx *, const char *, int); void setnd6defif(if_ctx *,const char *, int); void nd6_status(if_ctx *); @@ -77,11 +77,10 @@ void nd6_status(if_ctx *); void setnd6flags(if_ctx *ctx, const char *dummyaddr __unused, int d) { - struct in6_ndireq nd; + struct in6_ndireq nd = {}; int error; - memset(&nd, 0, sizeof(nd)); - strlcpy(nd.ifname, ifr.ifr_name, sizeof(nd.ifname)); + strlcpy(nd.ifname, ctx->ifname, sizeof(nd.ifname)); error = ioctl_ctx(ctx, SIOCGIFINFO_IN6, &nd); if (error) { warn("ioctl(SIOCGIFINFO_IN6)"); @@ -99,15 +98,14 @@ setnd6flags(if_ctx *ctx, const char *dummyaddr __unused, int d) void setnd6defif(if_ctx *ctx, const char *dummyaddr __unused, int d) { - struct in6_ndifreq ndifreq; + struct in6_ndifreq ndifreq = {}; int ifindex; int error; - memset(&ndifreq, 0, sizeof(ndifreq)); - strlcpy(ndifreq.ifname, ifr.ifr_name, sizeof(ndifreq.ifname)); + strlcpy(ndifreq.ifname, ctx->ifname, sizeof(ndifreq.ifname)); if (d < 0) { - if (isnd6defif(ctx->io_s)) { + if (isnd6defif(ctx, ctx->io_s)) { /* ifindex = 0 means to remove default if */ ifindex = 0; } else @@ -124,14 +122,13 @@ setnd6defif(if_ctx *ctx, const char *dummyaddr __unused, int d) } static int -isnd6defif(int s) +isnd6defif(if_ctx *ctx, int s) { - struct in6_ndifreq ndifreq; + struct in6_ndifreq ndifreq = {}; unsigned int ifindex; int error; - memset(&ndifreq, 0, sizeof(ndifreq)); - strlcpy(ndifreq.ifname, ifr.ifr_name, sizeof(ndifreq.ifname)); + strlcpy(ndifreq.ifname, ctx->ifname, sizeof(ndifreq.ifname)); ifindex = if_nametoindex(ndifreq.ifname); error = ioctl(s, SIOCGDEFIFACE_IN6, (caddr_t)&ndifreq); @@ -143,15 +140,14 @@ isnd6defif(int s) } void -nd6_status(if_ctx *ctx __unused) +nd6_status(if_ctx *ctx) { - struct in6_ndireq nd; + struct in6_ndireq nd = {}; int s6; int error; int isdefif; - memset(&nd, 0, sizeof(nd)); - strlcpy(nd.ifname, ifr.ifr_name, sizeof(nd.ifname)); + strlcpy(nd.ifname, ctx->ifname, sizeof(nd.ifname)); if ((s6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { if (errno != EAFNOSUPPORT && errno != EPROTONOSUPPORT) warn("socket(AF_INET6, SOCK_DGRAM)"); @@ -164,7 +160,7 @@ nd6_status(if_ctx *ctx __unused) close(s6); return; } - isdefif = isnd6defif(s6); + isdefif = isnd6defif(ctx, s6); close(s6); if (nd.ndi.flags == 0 && !isdefif) return; diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c index f0ae93ec792c..8b378cbe341f 100644 --- a/sbin/ifconfig/ifclone.c +++ b/sbin/ifconfig/ifclone.c @@ -159,8 +159,9 @@ clone_create(if_ctx *ctx __unused, const char *cmd __unused, int d __unused) static void clone_destroy(if_ctx *ctx, const char *cmd __unused, int d __unused) { - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - if (ioctl(ctx->io_s, SIOCIFDESTROY, &ifr) < 0) + struct ifreq ifr = {}; + + if (ioctl_ctx_ifr(ctx, SIOCIFDESTROY, &ifr) < 0) err(1, "SIOCIFDESTROY"); } diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 6a80ad5763b2..5ac217858057 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -206,6 +206,19 @@ ifname_update(if_ctx *ctx, const char *name) strlcpy(ifname_to_print, name, sizeof(ifname_to_print)); } +static void +ifr_set_name(struct ifreq *ifr, const char *name) +{ + strlcpy(ifr->ifr_name, name, sizeof(ifr->ifr_name)); +} + +int +ioctl_ctx_ifr(if_ctx *ctx, unsigned long cmd, struct ifreq *ifr) +{ + ifr_set_name(ifr, ctx->ifname); + return (ioctl_ctx(ctx, cmd, ifr)); +} + void ifcreate_ioctl(if_ctx *ctx, struct ifreq *ifr) { @@ -1105,6 +1118,7 @@ ifconfig_ioctl(if_ctx *orig_ctx, int iscreate, const struct afswtch *uafp) }; struct ifconfig_context *ctx = &_ctx; + struct ifreq ifr = {}; strlcpy(ifr.ifr_name, ctx->ifname, sizeof ifr.ifr_name); afp = NULL; if (uafp != NULL) @@ -1282,8 +1296,9 @@ settunnel(if_ctx *ctx, const char *src, const char *dst) static void deletetunnel(if_ctx *ctx, const char *vname __unused, int param __unused) { + struct ifreq ifr = {}; - if (ioctl_ctx(ctx, SIOCDIFPHYADDR, &ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCDIFPHYADDR, &ifr) < 0) err(1, "SIOCDIFPHYADDR"); } @@ -1291,27 +1306,25 @@ deletetunnel(if_ctx *ctx, const char *vname __unused, int param __unused) static void setifvnet(if_ctx *ctx, const char *jname, int dummy __unused) { - struct ifreq my_ifr; + struct ifreq ifr = {}; - memcpy(&my_ifr, &ifr, sizeof(my_ifr)); - my_ifr.ifr_jid = jail_getid(jname); - if (my_ifr.ifr_jid < 0) + ifr.ifr_jid = jail_getid(jname); + if (ifr.ifr_jid < 0) errx(1, "%s", jail_errmsg); - if (ioctl(ctx->io_s, SIOCSIFVNET, &my_ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSIFVNET, &ifr) < 0) err(1, "SIOCSIFVNET"); } static void setifrvnet(if_ctx *ctx, const char *jname, int dummy __unused) { - struct ifreq my_ifr; + struct ifreq ifr = {}; - memcpy(&my_ifr, &ifr, sizeof(my_ifr)); - my_ifr.ifr_jid = jail_getid(jname); - if (my_ifr.ifr_jid < 0) + ifr.ifr_jid = jail_getid(jname); + if (ifr.ifr_jid < 0) errx(1, "%s", jail_errmsg); - if (ioctl(ctx->io_s, SIOCSIFRVNET, &my_ifr) < 0) - err(1, "SIOCSIFRVNET(%d, %s)", my_ifr.ifr_jid, my_ifr.ifr_name); + if (ioctl_ctx_ifr(ctx, SIOCSIFRVNET, &ifr) < 0) + err(1, "SIOCSIFRVNET(%d, %s)", ifr.ifr_jid, ifr.ifr_name); } #endif @@ -1413,9 +1426,10 @@ setifflags(if_ctx *ctx, const char *vname, int value) void setifcap(if_ctx *ctx, const char *vname, int value) { + struct ifreq ifr = {}; int flags; - if (ioctl(ctx->io_s, SIOCGIFCAP, (caddr_t)&ifr) < 0) { + if (ioctl_ctx_ifr(ctx, SIOCGIFCAP, &ifr) < 0) { Perror("ioctl (SIOCGIFCAP)"); exit(1); } @@ -1430,7 +1444,7 @@ setifcap(if_ctx *ctx, const char *vname, int value) if (ifr.ifr_curcap == flags) return; ifr.ifr_reqcap = flags; - if (ioctl(ctx->io_s, SIOCSIFCAP, (caddr_t)&ifr) < 0) + if (ioctl_ctx(ctx, SIOCSIFCAP, &ifr) < 0) Perror(vname); } @@ -1442,8 +1456,9 @@ setifcapnv(if_ctx *ctx, const char *vname, const char *arg) char *marg, *mopt; size_t nvbuflen; bool neg; + struct ifreq ifr = {}; - if (ioctl(ctx->io_s, SIOCGIFCAP, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCGIFCAP, &ifr) < 0) Perror("ioctl (SIOCGIFCAP)"); if ((ifr.ifr_curcap & IFCAP_NV) == 0) { warnx("IFCAP_NV not supported"); @@ -1474,7 +1489,7 @@ setifcapnv(if_ctx *ctx, const char *vname, const char *arg) } ifr.ifr_cap_nv.buf_length = ifr.ifr_cap_nv.length = nvbuflen; ifr.ifr_cap_nv.buffer = buf; - if (ioctl(ctx->io_s, SIOCSIFCAPNV, (caddr_t)&ifr) < 0) + if (ioctl_ctx(ctx, SIOCSIFCAPNV, (caddr_t)&ifr) < 0) Perror(vname); free(buf); nvlist_destroy(nvcap); @@ -1484,24 +1499,27 @@ setifcapnv(if_ctx *ctx, const char *vname, const char *arg) static void setifmetric(if_ctx *ctx, const char *val, int dummy __unused) { - strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); + struct ifreq ifr = {}; + ifr.ifr_metric = atoi(val); - if (ioctl(ctx->io_s, SIOCSIFMETRIC, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSIFMETRIC, &ifr) < 0) err(1, "ioctl SIOCSIFMETRIC (set metric)"); } static void setifmtu(if_ctx *ctx, const char *val, int dummy __unused) { - strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); + struct ifreq ifr = {}; + ifr.ifr_mtu = atoi(val); - if (ioctl(ctx->io_s, SIOCSIFMTU, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSIFMTU, &ifr) < 0) err(1, "ioctl SIOCSIFMTU (set mtu)"); } static void setifpcp(if_ctx *ctx, const char *val, int arg __unused) { + struct ifreq ifr = {}; u_long ul; char *endp; @@ -1511,31 +1529,32 @@ setifpcp(if_ctx *ctx, const char *val, int arg __unused) if (ul > 7) errx(1, "value for pcp out of range"); ifr.ifr_lan_pcp = ul; - if (ioctl(ctx->io_s, SIOCSLANPCP, (caddr_t)&ifr) == -1) + if (ioctl_ctx_ifr(ctx, SIOCSLANPCP, &ifr) == -1) err(1, "SIOCSLANPCP"); } static void disableifpcp(if_ctx *ctx, const char *val __unused, int arg __unused) { + struct ifreq ifr = {}; ifr.ifr_lan_pcp = IFNET_PCP_NONE; - if (ioctl_ctx(ctx, SIOCSLANPCP, (caddr_t)&ifr) == -1) + if (ioctl_ctx_ifr(ctx, SIOCSLANPCP, &ifr) == -1) err(1, "SIOCSLANPCP"); } static void setifname(if_ctx *ctx, const char *val, int dummy __unused) { + struct ifreq ifr = {}; char *newname; - - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); + ifr_set_name(&ifr, ctx->ifname); newname = strdup(val); if (newname == NULL) err(1, "no memory to set ifname"); ifr.ifr_data = newname; - if (ioctl(ctx->io_s, SIOCSIFNAME, (caddr_t)&ifr) < 0) { + if (ioctl_ctx(ctx, SIOCSIFNAME, (caddr_t)&ifr) < 0) { free(newname); err(1, "ioctl SIOCSIFNAME (set name)"); } @@ -1546,10 +1565,9 @@ setifname(if_ctx *ctx, const char *val, int dummy __unused) static void setifdescr(if_ctx *ctx, const char *val, int dummy __unused) { + struct ifreq ifr = {}; char *newdescr; - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - ifr.ifr_buffer.length = strlen(val) + 1; if (ifr.ifr_buffer.length == 1) { ifr.ifr_buffer.buffer = newdescr = NULL; @@ -1563,7 +1581,7 @@ setifdescr(if_ctx *ctx, const char *val, int dummy __unused) } } - if (ioctl(ctx->io_s, SIOCSIFDESCR, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSIFDESCR, &ifr) < 0) err(1, "ioctl SIOCSIFDESCR (set descr)"); free(newdescr); @@ -1588,8 +1606,9 @@ unsetifdescr(if_ctx *ctx, const char *val __unused, int value __unused) "\36VXLAN_HWCSUM\37VXLAN_HWTSO\40TXTLS_RTLMT" static void -print_ifcap_nv(struct ifconfig_args *args, int s) +print_ifcap_nv(if_ctx *ctx) { + struct ifreq ifr = {}; nvlist_t *nvcap; const char *nvname; void *buf, *cookie; @@ -1601,7 +1620,7 @@ print_ifcap_nv(struct ifconfig_args *args, int s) Perror("malloc"); ifr.ifr_cap_nv.buffer = buf; ifr.ifr_cap_nv.buf_length = IFR_CAP_NV_MAXBUFSIZE; - if (ioctl(s, SIOCGIFCAPNV, (caddr_t)&ifr) != 0) + if (ioctl_ctx_ifr(ctx, SIOCGIFCAPNV, &ifr) != 0) Perror("ioctl (SIOCGIFCAPNV)"); nvcap = nvlist_unpack(ifr.ifr_cap_nv.buffer, ifr.ifr_cap_nv.length, 0); @@ -1623,7 +1642,7 @@ print_ifcap_nv(struct ifconfig_args *args, int s) } } } - if (args->supmedia) { + if (ctx->args->supmedia) { printf("\tcapabilities"); cookie = NULL; for (first = true;; first = false) { @@ -1641,24 +1660,25 @@ print_ifcap_nv(struct ifconfig_args *args, int s) nvlist_destroy(nvcap); free(buf); - if (ioctl(s, SIOCGIFCAP, (caddr_t)&ifr) != 0) + if (ioctl_ctx(ctx, SIOCGIFCAP, (caddr_t)&ifr) != 0) Perror("ioctl (SIOCGIFCAP)"); } void -print_ifcap(struct ifconfig_args *args, int s) +print_ifcap(if_ctx *ctx) { - if (ioctl(s, SIOCGIFCAP, (caddr_t)&ifr) != 0) + struct ifreq ifr = {}; + + if (ioctl_ctx_ifr(ctx, SIOCGIFCAP, &ifr) != 0) return; if ((ifr.ifr_curcap & IFCAP_NV) != 0) - print_ifcap_nv(args, s); + print_ifcap_nv(ctx); else { printb("\toptions", ifr.ifr_curcap, IFCAPBITS); putchar('\n'); - if (args->supmedia && ifr.ifr_reqcap != 0) { - printb("\tcapabilities", ifr.ifr_reqcap, - IFCAPBITS); + if (ctx->args->supmedia && ifr.ifr_reqcap != 0) { + printb("\tcapabilities", ifr.ifr_reqcap, IFCAPBITS); putchar('\n'); } } @@ -1675,28 +1695,35 @@ print_ifstatus(if_ctx *ctx) } void -print_metric(int s) +print_metric(if_ctx *ctx) { - if (ioctl(s, SIOCGIFMETRIC, &ifr) != -1) + struct ifreq ifr = {}; + + if (ioctl_ctx_ifr(ctx, SIOCGIFMETRIC, &ifr) != -1) printf(" metric %d", ifr.ifr_metric); } #ifdef WITHOUT_NETLINK static void -print_mtu(int s) +print_mtu(if_ctx *ctx) { - if (ioctl(s, SIOCGIFMTU, &ifr) != -1) + struct ifreq ifr = {}; + + if (ioctl_ctx_ifr(ctx, SIOCGIFMTU, &ifr) != -1) printf(" mtu %d", ifr.ifr_mtu); } static void -print_description(int s) +print_description(if_ctx *ctx) { + struct ifreq ifr = {}; + + ifr_set_name(&ifr, ctx->ifname); for (;;) { if ((descr = reallocf(descr, descrlen)) != NULL) { ifr.ifr_buffer.buffer = descr; ifr.ifr_buffer.length = descrlen; - if (ioctl(s, SIOCGIFDESCR, &ifr) == 0) { + if (ioctl_ctx(ctx, SIOCGIFDESCR, &ifr) == 0) { if (ifr.ifr_buffer.buffer == descr) { if (strlen(descr) > 0) printf("\tdescription: %s\n", @@ -1725,14 +1752,13 @@ status(if_ctx *ctx, const struct sockaddr_dl *sdl, int s, old_s; struct ifconfig_args *args = ctx->args; bool allfamilies = args->afp == NULL; - char *ifname = ifa->ifa_name; + struct ifreq ifr = {}; if (args->afp == NULL) ifr.ifr_addr.sa_family = AF_LOCAL; else ifr.ifr_addr.sa_family = args->afp->af_af == AF_LINK ? AF_LOCAL : args->afp->af_af; - strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0); if (s < 0) @@ -1740,15 +1766,15 @@ status(if_ctx *ctx, const struct sockaddr_dl *sdl, old_s = ctx->io_s; ctx->io_s = s; - printf("%s: ", ifname); + printf("%s: ", ctx->ifname); printb("flags", ifa->ifa_flags, IFFBITS); - print_metric(s); - print_mtu(s); + print_metric(ctx); + print_mtu(ctx); putchar('\n'); - print_description(s); + print_description(ctx); - print_ifcap(args, s); + print_ifcap(ctx); tunnel_status(ctx); diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 7001725543d8..334027c36d89 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -153,6 +153,7 @@ void callback_register(callback_func *, void *); } #define ioctl_ctx(ctx, _req, ...) ioctl((ctx)->io_s, _req, ## __VA_ARGS__) +int ioctl_ctx_ifr(if_ctx *ctx, unsigned long cmd, struct ifreq *ifr); struct ifaddrs; struct addrinfo; @@ -275,12 +276,12 @@ bool match_ether(const struct sockaddr_dl *sdl); bool match_if_flags(struct ifconfig_args *args, int if_flags); int ifconfig_ioctl(if_ctx *ctx, int iscreate, const struct afswtch *uafp); bool group_member(const char *ifname, const char *match, const char *nomatch); -void print_ifcap(struct ifconfig_args *args, int s); +void print_ifcap(if_ctx *ctx); void tunnel_status(if_ctx *ctx); struct afswtch *af_getbyfamily(int af); void af_other_status(if_ctx *ctx); void print_ifstatus(if_ctx *ctx); -void print_metric(int s); +void print_metric(if_ctx *ctx); /* Netlink-related functions */ void list_interfaces_nl(struct ifconfig_args *args); diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index a7d3cfe6f300..2460d8c60109 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -354,15 +354,14 @@ status_nl(if_ctx *ctx, struct iface *iface) printf("flags=%x", link->ifi_flags); print_bits("IFF", &link->ifi_flags, 1, IFFBITS, nitems(IFFBITS)); - print_metric(ctx->io_s); + print_metric(ctx); printf(" mtu %d\n", link->ifla_mtu); if (link->ifla_ifalias != NULL) printf("\tdescription: %s\n", link->ifla_ifalias); /* TODO: convert to netlink */ - strlcpy(ifr.ifr_name, link->ifla_ifname, sizeof(ifr.ifr_name)); - print_ifcap(args, ctx->io_s); + print_ifcap(ctx); tunnel_status(ctx); if (args->allfamilies | (args->afp != NULL && args->afp->af_af == AF_LINK)) { diff --git a/sbin/ifconfig/iffib.c b/sbin/ifconfig/iffib.c index 684c57c88f64..0f44168fe7dc 100644 --- a/sbin/ifconfig/iffib.c +++ b/sbin/ifconfig/iffib.c @@ -66,6 +66,7 @@ fib_status(if_ctx *ctx) static void setiffib(if_ctx *ctx, const char *val, int dummy __unused) { + struct ifreq ifr = {}; unsigned long fib; char *ep; @@ -75,15 +76,15 @@ setiffib(if_ctx *ctx, const char *val, int dummy __unused) return; } - strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); ifr.ifr_fib = fib; - if (ioctl(ctx->io_s, SIOCSIFFIB, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSIFFIB, &ifr) < 0) warn("ioctl (SIOCSIFFIB)"); } static void settunfib(if_ctx *ctx, const char *val, int dummy __unused) { + struct ifreq ifr = {}; unsigned long fib; char *ep; @@ -93,9 +94,8 @@ settunfib(if_ctx *ctx, const char *val, int dummy __unused) return; } - strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); ifr.ifr_fib = fib; - if (ioctl(ctx->io_s, SIOCSTUNFIB, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSTUNFIB, &ifr) < 0) warn("ioctl (SIOCSTUNFIB)"); } diff --git a/sbin/ifconfig/ifgif.c b/sbin/ifconfig/ifgif.c index 759360bf2f00..3a41ef63d1d3 100644 --- a/sbin/ifconfig/ifgif.c +++ b/sbin/ifconfig/ifgif.c @@ -59,9 +59,9 @@ static void gif_status(if_ctx *ctx) { int opts; + struct ifreq ifr = { .ifr_data = (caddr_t)&opts }; - ifr.ifr_data = (caddr_t)&opts; - if (ioctl_ctx(ctx, GIFGOPTS, &ifr) == -1) + if (ioctl_ctx_ifr(ctx, GIFGOPTS, &ifr) == -1) return; if (opts == 0) return; @@ -73,9 +73,9 @@ static void setgifopts(if_ctx *ctx, const char *val __unused, int d) { int opts; + struct ifreq ifr = { .ifr_data = (caddr_t)&opts }; - ifr.ifr_data = (caddr_t)&opts; - if (ioctl_ctx(ctx, GIFGOPTS, &ifr) == -1) { + if (ioctl_ctx_ifr(ctx, GIFGOPTS, &ifr) == -1) { warn("ioctl(GIFGOPTS)"); return; } diff --git a/sbin/ifconfig/ifgre.c b/sbin/ifconfig/ifgre.c index 67732981228e..018167a32046 100644 --- a/sbin/ifconfig/ifgre.c +++ b/sbin/ifconfig/ifgre.c @@ -49,10 +49,9 @@ __FBSDID("$FreeBSD$"); static void gre_status(if_ctx *ctx) { - uint32_t opts, port; + uint32_t opts = 0, port; + struct ifreq ifr = { .ifr_data = (caddr_t)&opts }; - opts = 0; - ifr.ifr_data = (caddr_t)&opts; if (ioctl_ctx(ctx, GREGKEY, &ifr) == 0) if (opts != 0) printf("\tgrekey: 0x%x (%u)\n", opts, opts); @@ -62,7 +61,7 @@ gre_status(if_ctx *ctx) port = 0; ifr.ifr_data = (caddr_t)&port; - if (ioctl_ctx(ctx, GREGPORT, &ifr) == 0 && port != 0) + if (ioctl_ctx_ifr(ctx, GREGPORT, &ifr) == 0 && port != 0) printf("\tudpport: %u\n", port); printb("\toptions", opts, GREBITS); putchar('\n'); @@ -72,10 +71,10 @@ static void setifgrekey(if_ctx *ctx, const char *val, int dummy __unused) { uint32_t grekey = strtol(val, NULL, 0); + struct ifreq ifr = { .ifr_data = (caddr_t)&grekey }; - strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); ifr.ifr_data = (caddr_t)&grekey; - if (ioctl(ctx->io_s, GRESKEY, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, GRESKEY, &ifr) < 0) warn("ioctl (set grekey)"); } @@ -83,10 +82,9 @@ static void setifgreport(if_ctx *ctx, const char *val, int dummy __unused) { uint32_t udpport = strtol(val, NULL, 0); + struct ifreq ifr = { .ifr_data = (caddr_t)&udpport }; - strlcpy(ifr.ifr_name, ctx->ifname, sizeof (ifr.ifr_name)); - ifr.ifr_data = (caddr_t)&udpport; - if (ioctl(ctx->io_s, GRESPORT, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, GRESPORT, &ifr) < 0) warn("ioctl (set udpport)"); } @@ -94,9 +92,9 @@ static void setifgreopts(if_ctx *ctx, const char *val __unused, int d) { uint32_t opts; + struct ifreq ifr = { .ifr_data = (caddr_t)&opts }; - ifr.ifr_data = (caddr_t)&opts; - if (ioctl(ctx->io_s, GREGOPTS, &ifr) == -1) { + if (ioctl_ctx_ifr(ctx, GREGOPTS, &ifr) == -1) { warn("ioctl(GREGOPTS)"); return; } @@ -106,7 +104,7 @@ setifgreopts(if_ctx *ctx, const char *val __unused, int d) else opts |= d; - if (ioctl(ctx->io_s, GRESOPTS, &ifr) == -1) { + if (ioctl_ctx(ctx, GRESOPTS, &ifr) == -1) { warn("ioctl(GIFSOPTS)"); return; } diff --git a/sbin/ifconfig/ifipsec.c b/sbin/ifconfig/ifipsec.c index 929cc56bdcdf..2d9790208858 100644 --- a/sbin/ifconfig/ifipsec.c +++ b/sbin/ifconfig/ifipsec.c @@ -54,9 +54,9 @@ static void ipsec_status(if_ctx *ctx) { uint32_t reqid; + struct ifreq ifr = { .ifr_data = (caddr_t)&reqid }; - ifr.ifr_data = (caddr_t)&reqid; - if (ioctl_ctx(ctx, IPSECGREQID, &ifr) == -1) + if (ioctl_ctx_ifr(ctx, IPSECGREQID, &ifr) == -1) return; printf("\treqid: %u\n", reqid); } @@ -66,15 +66,14 @@ setreqid(if_ctx *ctx, const char *val, int dummy __unused) { char *ep; uint32_t v; + struct ifreq ifr = { .ifr_data = (caddr_t)&v }; v = strtoul(val, &ep, 0); if (*ep != '\0') { warn("Invalid reqid value %s", val); return; } - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - ifr.ifr_data = (char *)&v; - if (ioctl_ctx(ctx, IPSECSREQID, &ifr) == -1) { + if (ioctl_ctx_ifr(ctx, IPSECSREQID, &ifr) == -1) { warn("ioctl(IPSECSREQID)"); return; } diff --git a/sbin/ifconfig/ifpfsync.c b/sbin/ifconfig/ifpfsync.c index 81bf463db117..b97b9925c644 100644 --- a/sbin/ifconfig/ifpfsync.c +++ b/sbin/ifconfig/ifpfsync.c @@ -51,10 +51,11 @@ #include "ifconfig.h" static int -pfsync_do_ioctl(int s, uint cmd, nvlist_t **nvl) +pfsync_do_ioctl(if_ctx *ctx, uint cmd, nvlist_t **nvl) { void *data; size_t nvlen; + struct ifreq ifr = {}; data = nvlist_pack(*nvl, &nvlen); @@ -64,7 +65,7 @@ pfsync_do_ioctl(int s, uint cmd, nvlist_t **nvl) ifr.ifr_cap_nv.length = nvlen; free(data); - if (ioctl(s, cmd, (caddr_t)&ifr) == -1) { + if (ioctl_ctx_ifr(ctx, cmd, &ifr) == -1) { free(ifr.ifr_cap_nv.buffer); return -1; } @@ -172,7 +173,7 @@ setpfsync_syncdev(if_ctx *ctx, const char *val, int dummy __unused) if (strlen(val) > IFNAMSIZ) errx(1, "interface name %s is too long", val); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); if (nvlist_exists_string(nvl, "syncdev")) @@ -180,7 +181,7 @@ setpfsync_syncdev(if_ctx *ctx, const char *val, int dummy __unused) nvlist_add_string(nvl, "syncdev", val); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); } @@ -189,7 +190,7 @@ unsetpfsync_syncdev(if_ctx *ctx, const char *val __unused, int dummy __unused) { nvlist_t *nvl = nvlist_create(0); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); if (nvlist_exists_string(nvl, "syncdev")) @@ -197,7 +198,7 @@ unsetpfsync_syncdev(if_ctx *ctx, const char *val __unused, int dummy __unused) nvlist_add_string(nvl, "syncdev", ""); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); } @@ -210,7 +211,7 @@ setpfsync_syncpeer(if_ctx *ctx, const char *val, int dummy __unused) nvlist_t *nvl = nvlist_create(0); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); if ((ecode = getaddrinfo(val, NULL, NULL, &peerres)) != 0) @@ -239,7 +240,7 @@ setpfsync_syncpeer(if_ctx *ctx, const char *val, int dummy __unused) nvlist_add_nvlist(nvl, "syncpeer", pfsync_sockaddr_to_syncpeer_nvlist(&addr)); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); nvlist_destroy(nvl); @@ -254,7 +255,7 @@ unsetpfsync_syncpeer(if_ctx *ctx, const char *val __unused, int dummy __unused) nvlist_t *nvl = nvlist_create(0); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); if (nvlist_exists_nvlist(nvl, "syncpeer")) @@ -263,7 +264,7 @@ unsetpfsync_syncpeer(if_ctx *ctx, const char *val __unused, int dummy __unused) nvlist_add_nvlist(nvl, "syncpeer", pfsync_sockaddr_to_syncpeer_nvlist(&addr)); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); nvlist_destroy(nvl); @@ -279,13 +280,13 @@ setpfsync_maxupd(if_ctx *ctx, const char *val, int dummy __unused) if ((maxupdates < 0) || (maxupdates > 255)) errx(1, "maxupd %s: out of range", val); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); nvlist_free_number(nvl, "maxupdates"); nvlist_add_number(nvl, "maxupdates", maxupdates); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); nvlist_destroy(nvl); @@ -296,13 +297,13 @@ setpfsync_defer(if_ctx *ctx, const char *val __unused, int d) { nvlist_t *nvl = nvlist_create(0); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); nvlist_free_number(nvl, "flags"); nvlist_add_number(nvl, "flags", d ? PFSYNCF_DEFER : 0); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); nvlist_destroy(nvl); @@ -317,13 +318,13 @@ setpfsync_version(if_ctx *ctx, const char *val, int dummy __unused) /* Don't verify, kernel knows which versions are supported.*/ version = atoi(val); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) err(1, "SIOCGETPFSYNCNV"); nvlist_free_number(nvl, "version"); nvlist_add_number(nvl, "version", version); - if (pfsync_do_ioctl(ctx->io_s, SIOCSETPFSYNCNV, &nvl) == -1) + if (pfsync_do_ioctl(ctx, SIOCSETPFSYNCNV, &nvl) == -1) err(1, "SIOCSETPFSYNCNV"); nvlist_destroy(nvl); @@ -343,7 +344,7 @@ pfsync_status(if_ctx *ctx) nvl = nvlist_create(0); - if (pfsync_do_ioctl(ctx->io_s, SIOCGETPFSYNCNV, &nvl) == -1) { + if (pfsync_do_ioctl(ctx, SIOCGETPFSYNCNV, &nvl) == -1) { nvlist_destroy(nvl); return; } diff --git a/sbin/ifconfig/ifstf.c b/sbin/ifconfig/ifstf.c index 0089cedf7a6b..a99592b4801f 100644 --- a/sbin/ifconfig/ifstf.c +++ b/sbin/ifconfig/ifstf.c @@ -54,11 +54,9 @@ static int do_cmd(if_ctx *ctx, u_long op, void *arg, size_t argsize, int set) { - struct ifdrv ifd; + struct ifdrv ifd = {}; - memset(&ifd, 0, sizeof(ifd)); - - strlcpy(ifd.ifd_name, ifr.ifr_name, sizeof(ifd.ifd_name)); + strlcpy(ifd.ifd_name, ctx->ifname, sizeof(ifd.ifd_name)); ifd.ifd_cmd = op; ifd.ifd_len = argsize; ifd.ifd_data = arg; diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c index 2d0d15fdd828..b871e953c44a 100644 --- a/sbin/ifconfig/ifvlan.c +++ b/sbin/ifconfig/ifvlan.c @@ -75,21 +75,13 @@ static struct vlanreq params = { .vlr_proto = ETHERTYPE_VLAN, }; -static int -getvlan(int s, struct ifreq *ifr, struct vlanreq *vreq) -{ - bzero((char *)vreq, sizeof(*vreq)); - ifr->ifr_data = (caddr_t)vreq; - - return ioctl(s, SIOCGETVLAN, (caddr_t)ifr); -} - static void vlan_status(if_ctx *ctx) { - struct vlanreq vreq; + struct vlanreq vreq = {}; + struct ifreq ifr = { .ifr_data = (caddr_t)&vreq }; - if (getvlan(ctx->io_s, &ifr, &vreq) == -1) + if (ioctl_ctx_ifr(ctx, SIOCGETVLAN, &ifr) == -1) return; printf("\tvlan: %d", vreq.vlr_tag); printf(" vlanproto: "); @@ -103,7 +95,7 @@ vlan_status(if_ctx *ctx) default: printf("0x%04x", vreq.vlr_proto); *** 121 LINES SKIPPED *** From nobody Fri Jun 16 07:19:44 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj9XK4Xn9z4fZ5w; Fri, 16 Jun 2023 07:19:45 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj9XK0gkPz47fg; Fri, 16 Jun 2023 07:19:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686899985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C5dGkOkmDEw/WQ2ySSo3TI+Wp7HQhowv/ifchSB2h+s=; b=rIpBeP7kfZtgC+Bq3E1rUQA1PrFwn2L6gLM3gWfcqzAE5c0TFtXtOX8sGrk7iM0GUr2qJ4 NtV/rdCF5gjV4qVTkdar9ukVM/mltOwYZjwMNAVDScSRj5JrRCsr47HGoyovccFVK5GA73 2lYGICcUb5wRNqGxWLkC5B6msrCDQgEXs8QtJhNAaDMgRFvS/WBWHpbbikRmF9T6Hvq7zl NOSRAN1Ufox6tt0cYaF4TEYTh4808O4SmfyPGhOs4W0qXOfnF/1KpA47KlBkYt12SnIpiV 4QsJxHRBofyXEeQUlVKa60Y1zG4Gjrok7U67HQ4Sox/4AJX2WVaHn0gxeuwl8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686899985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C5dGkOkmDEw/WQ2ySSo3TI+Wp7HQhowv/ifchSB2h+s=; b=wr97j/Ce1PbHTgZED1SFxq/wwlwVG5nvFGzljQ7/PgtiFYK5DXDTr+JcgZvMGT82D5/Drt a3Dxq/krLi03A7oONFaUNWQQ+jjDa7D+VLtIRHVbkoH3ym9t0q3qffP9ukuMvqcYxqeCWf HE4EwRDhCrKGhiT26MHdAKCm0H2tvp/AARqRTtF3OEl1fkwfjKTrrzSXw9iTWojoKJKEW+ ZvA+DalKkbLsOeqvUwGjz3IKaWtwMflzwtT1Kv6PMxPVRxTpZc5gStw5Ek1vaekfvT9Qz3 449EEXPZau7EY39m61bFGV7pLXsrSQispA+sTXN8isy1s1Nwuf0Sdc7fBJvJ1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686899985; a=rsa-sha256; cv=none; b=gwLAbYuKqugfNDHOGLv1yCGVC/iecdZEYUF+JKXbLTwQxKWLRuPsaon5oO371QMJ2N7MJV prKATql8nGeAzyhBA7pIQm8NV2HgA8LJkiCRihMPlpPD5FQ26L++GDBp5Ri2L9Bpb3DyI6 Gd7gCs90PuYbUeIey4tuGpcrhnjUNQN+pDkC1Jd+ItY0ad9ASClHcvRZMXdUhyx0Kqwvau TAL+wX8PHowK/QOr79VOG9A56IM9bkLOJTH9fAkiNzc6yRdZuYEBrWrB91qN3Uen+N6ar7 Ws3A9/wDo5XRtMTlDdMKNNPAt0b26qd6WDzqkqefgQSBfnp2l4rIql+UnAC/vA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj9XJ65H8zK1p; Fri, 16 Jun 2023 07:19:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G7JiQV034725; Fri, 16 Jun 2023 07:19:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G7JiOE034724; Fri, 16 Jun 2023 07:19:44 GMT (envelope-from git) Date: Fri, 16 Jun 2023 07:19:44 GMT Message-Id: <202306160719.35G7JiOE034724@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: f414f37e3861 - main - ifconfig: remove global 'ifr' usage from ifmedia.c & remove 'ifr'. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f414f37e38614daabc1d10e37efec9ef7fa620f3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=f414f37e38614daabc1d10e37efec9ef7fa620f3 commit f414f37e38614daabc1d10e37efec9ef7fa620f3 Author: Alexander V. Chernikov AuthorDate: 2023-06-14 13:04:10 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 07:19:21 +0000 ifconfig: remove global 'ifr' usage from ifmedia.c & remove 'ifr'. Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D40535 MFC after: 2 weeks --- sbin/ifconfig/ifconfig.c | 8 -------- sbin/ifconfig/ifconfig.h | 1 - sbin/ifconfig/ifmedia.c | 24 ++++++++---------------- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 5ac217858057..24462f76e96c 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -85,14 +85,6 @@ static const char rcsid[] = ifconfig_handle_t *lifh; -/* - * Since "struct ifreq" is composed of various union members, callers - * should pay special attention to interpret the value. - * (.e.g. little/big endian difference in the structure.) - */ -struct ifreq ifr; - -//char name[IFNAMSIZ]; #ifdef WITHOUT_NETLINK static char *descr = NULL; static size_t descrlen = 64; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 334027c36d89..49f907367b7a 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -251,7 +251,6 @@ struct option { void opt_register(struct option *); extern ifconfig_handle_t *lifh; -extern struct ifreq ifr; extern int allmedia; extern int exit_code; extern char *f_inet, *f_inet6, *f_ether, *f_addr; diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c index 122756207d1b..395789916edb 100644 --- a/sbin/ifconfig/ifmedia.c +++ b/sbin/ifconfig/ifmedia.c @@ -179,10 +179,11 @@ setifmediacallback(if_ctx *ctx, void *arg) { struct ifmediareq *ifmr = (struct ifmediareq *)arg; static bool did_it = false; + struct ifreq ifr = {}; if (!did_it) { ifr.ifr_media = ifmr->ifm_current; - if (ioctl_ctx(ctx, SIOCSIFMEDIA, (caddr_t)&ifr) < 0) + if (ioctl_ctx_ifr(ctx, SIOCSIFMEDIA, &ifr) < 0) err(1, "SIOCSIFMEDIA (media)"); free(ifmr); did_it = true; @@ -208,11 +209,9 @@ setmedia(if_ctx *ctx, const char *val, int d __unused) */ subtype = get_media_subtype(ifmr->ifm_ulist[0], val); - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - ifr.ifr_media = (ifmr->ifm_current & IFM_IMASK) | + ifmr->ifm_current = (ifmr->ifm_current & IFM_IMASK) | IFM_TYPE(ifmr->ifm_ulist[0]) | subtype; - ifmr->ifm_current = ifr.ifr_media; callback_register(setifmediacallback, (void *)ifmr); } @@ -240,18 +239,15 @@ domediaopt(if_ctx *ctx, const char *val, bool clear) options = get_media_options(ifmr->ifm_ulist[0], val); - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - ifr.ifr_media = ifmr->ifm_current; if (clear) - ifr.ifr_media &= ~options; + ifmr->ifm_current &= ~options; else { if (options & IFM_HDX) { - ifr.ifr_media &= ~IFM_FDX; + ifmr->ifm_current &= ~IFM_FDX; options &= ~IFM_HDX; } - ifr.ifr_media |= options; + ifmr->ifm_current |= options; } - ifmr->ifm_current = ifr.ifr_media; callback_register(setifmediacallback, (void *)ifmr); } @@ -267,10 +263,8 @@ setmediainst(if_ctx *ctx, const char *val, int d __unused) if (inst < 0 || inst > (int)IFM_INST_MAX) errx(1, "invalid media instance: %s", val); - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - ifr.ifr_media = (ifmr->ifm_current & ~IFM_IMASK) | inst << IFM_ISHIFT; + ifmr->ifm_current = (ifmr->ifm_current & ~IFM_IMASK) | inst << IFM_ISHIFT; - ifmr->ifm_current = ifr.ifr_media; callback_register(setifmediacallback, (void *)ifmr); } @@ -284,10 +278,8 @@ setmediamode(if_ctx *ctx, const char *val, int d __unused) mode = get_media_mode(ifmr->ifm_ulist[0], val); - strlcpy(ifr.ifr_name, ctx->ifname, sizeof(ifr.ifr_name)); - ifr.ifr_media = (ifmr->ifm_current & ~IFM_MMASK) | mode; + ifmr->ifm_current = (ifmr->ifm_current & ~IFM_MMASK) | mode; - ifmr->ifm_current = ifr.ifr_media; callback_register(setifmediacallback, (void *)ifmr); } From nobody Fri Jun 16 07:19:45 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj9XL2F6Fz4fZF8; Fri, 16 Jun 2023 07:19:46 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj9XL0fP3z47fn; Fri, 16 Jun 2023 07:19:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686899986; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4GUS4MVCj0+w4mufTNfH8BJ8nhWMzz/E/mEqrW8YOgk=; b=YAPRNjVkREjjGga+Paj+T2OKKmVAsD4m4bw3abCUotUSdsXKUrFHgkpzUGnwhn25sQV3PQ 0aMVJJmqpdgccBAgPLDtmcB6jrm3fUb+izremivYnf2i+9+RHNj3BMqlKORncx7DAMdo7h 6tnMvTRTJ2phppH6hS50s8BcXnbZIeW9WYqNLQ5TBWpB8afHIzORgWiR3wtOouG/XAYhTd F1RBkPhbntdMPUWjLmeivwclAgLSUy8ouneuOrbver2/j8J/v9QYpM9O4v5Hi46RrR06rm k2xTi217w73wItMinxbGtKHxwHbEU2cDGaY3eox41p3v5+vs5bjIH7ExNlqYQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686899986; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4GUS4MVCj0+w4mufTNfH8BJ8nhWMzz/E/mEqrW8YOgk=; b=KWwNPb08ILo9cUvWssQBkD9VHhzKTWY+qDtSOvS+CT2EtU6KJxklrThpD4RGppv+YSU+4E 5Dafto7/HZWA3fmQ77q6OBZ2Bx4/GhflZWpSqGFfMecWp03r+FXdDGPejqvgpZkrGk7iwM ECxy62fc89eICcEVjUlYxXCM4rx/KLfdOWdiTfrWlleTS0yfJ4MIT62xOOd6bZMbVE1rlt aIqfAXUjDxGYY6RXFhDpZ63bO+5Ro3zIxYJOlLrHNEJBQUnjKtRvivmEkBOWWW44tZ7Xp2 nfMeriddDXAGMkru69VI7VHo7iGrMYV3/9znrF3WTebHuzwkMJIpmgFYh+xYtw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686899986; a=rsa-sha256; cv=none; b=ZlKvwXLiBr3AQ34A+h2juxWAhOrbBKg79Kx50F0jyLiQY1CxKidbwMnvmkm1pyEIQ/hITd gURQDEoHpmMBMheMt9jL4YBuYEVaCZzhepHtw2/X4ClfQGCdoMbu1N/o1azORpW5RKgI9V tdsg+cmB1c0W0FP+f51yXzaA+HXaZPRjMhBKUeaxzMWoPu8O7NEmRd+giOVdki9MgThvN4 GyJG5i913A4V868zhcYGZuaSt3jwDOPIXc6KsMqCyAlpaaV5MqNcnNqnIMWE/8GZYcXvO0 pxmUv4dP/o/XtE8buFpDf9sVLJqdOVzVW+TZYrHUW22nInhb6t73YswPsWwEwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj9XK6sTTzKBd; Fri, 16 Jun 2023 07:19:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G7Jjj9034744; Fri, 16 Jun 2023 07:19:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G7JjS7034743; Fri, 16 Jun 2023 07:19:45 GMT (envelope-from git) Date: Fri, 16 Jun 2023 07:19:45 GMT Message-Id: <202306160719.35G7JjS7034743@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: a3930cd46ce6 - main - ifconfig: use default (more rigid) WARNS level. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a3930cd46ce6b3d6234044c5ed6970851ef3b967 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=a3930cd46ce6b3d6234044c5ed6970851ef3b967 commit a3930cd46ce6b3d6234044c5ed6970851ef3b967 Author: Alexander V. Chernikov AuthorDate: 2023-06-14 13:21:17 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 07:19:22 +0000 ifconfig: use default (more rigid) WARNS level. It helps catch more errors at compile time. Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D40536 MFC after: 2 weeks --- sbin/ifconfig/Makefile | 1 - sbin/ifconfig/af_inet.c | 10 +++++----- sbin/ifconfig/af_inet6.c | 23 +++++++++++------------ sbin/ifconfig/af_link.c | 2 +- sbin/ifconfig/ifconfig.c | 5 ++--- sbin/ifconfig/ifconfig.h | 12 ++++++++++++ sbin/ifconfig/ifieee80211.c | 6 +++--- 7 files changed, 34 insertions(+), 25 deletions(-) diff --git a/sbin/ifconfig/Makefile b/sbin/ifconfig/Makefile index 9b9df6ab9f78..4b2f92b1597c 100644 --- a/sbin/ifconfig/Makefile +++ b/sbin/ifconfig/Makefile @@ -80,7 +80,6 @@ CFLAGS+=-DWITHOUT_NETLINK MAN= ifconfig.8 CFLAGS+= -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wnested-externs -WARNS?= 2 HAS_TESTS= SUBDIR.${MK_TESTS}+= tests diff --git a/sbin/ifconfig/af_inet.c b/sbin/ifconfig/af_inet.c index 0c6ae253cbd4..83b605e8c4cb 100644 --- a/sbin/ifconfig/af_inet.c +++ b/sbin/ifconfig/af_inet.c @@ -105,20 +105,20 @@ in_status(if_ctx *ctx __unused, const struct ifaddrs *ifa) { struct sockaddr_in *sin, null_sin = {}; - sin = (struct sockaddr_in *)ifa->ifa_addr; + sin = satosin(ifa->ifa_addr); if (sin == NULL) return; print_addr(sin); if (ifa->ifa_flags & IFF_POINTOPOINT) { - sin = (struct sockaddr_in *)ifa->ifa_dstaddr; + sin = satosin(ifa->ifa_dstaddr); if (sin == NULL) sin = &null_sin; printf(" --> %s", inet_ntoa(sin->sin_addr)); } - sin = (struct sockaddr_in *)ifa->ifa_netmask; + sin = satosin(ifa->ifa_netmask); if (sin == NULL) sin = &null_sin; if (f_inet != NULL && strcmp(f_inet, "cidr") == 0) { @@ -139,7 +139,7 @@ in_status(if_ctx *ctx __unused, const struct ifaddrs *ifa) printf(" netmask 0x%lx", (unsigned long)ntohl(sin->sin_addr.s_addr)); if (ifa->ifa_flags & IFF_BROADCAST) { - sin = (struct sockaddr_in *)ifa->ifa_broadaddr; + sin = satosin(ifa->ifa_broadaddr); if (sin != NULL && sin->sin_addr.s_addr != 0) printf(" broadcast %s", inet_ntoa(sin->sin_addr)); } @@ -202,7 +202,7 @@ static struct sockaddr_in *sintab[] = { }; static void -in_copyaddr(if_ctx *ctx, int to, int from) +in_copyaddr(if_ctx *ctx __unused, int to, int from) { memcpy(sintab[to], sintab[from], sizeof(struct sockaddr_in)); } diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index 1acfc28cad94..a0138e9b3de6 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -299,7 +299,7 @@ in6_status(if_ctx *ctx, const struct ifaddrs *ifa) u_int32_t flags6; struct in6_addrlifetime lifetime; - sin = (struct sockaddr_in6 *)ifa->ifa_addr; + sin = satosin6(ifa->ifa_addr); if (sin == NULL) return; @@ -328,7 +328,7 @@ in6_status(if_ctx *ctx, const struct ifaddrs *ifa) print_addr(sin); if (ifa->ifa_flags & IFF_POINTOPOINT) { - sin = (struct sockaddr_in6 *)ifa->ifa_dstaddr; + sin = satosin6(ifa->ifa_dstaddr); /* * some of the interfaces do not have valid destination * address. @@ -337,16 +337,16 @@ in6_status(if_ctx *ctx, const struct ifaddrs *ifa) print_p2p(sin); } - sin = (struct sockaddr_in6 *)ifa->ifa_netmask; + sin = satosin6(ifa->ifa_netmask); if (sin == NULL) sin = &null_sin; print_mask(prefix(&sin->sin6_addr, sizeof(struct in6_addr))); print_flags(flags6); - if (((struct sockaddr_in6 *)(ifa->ifa_addr))->sin6_scope_id) + if ((satosin6(ifa->ifa_addr))->sin6_scope_id) printf(" scopeid 0x%x", - ((struct sockaddr_in6 *)(ifa->ifa_addr))->sin6_scope_id); + (satosin6(ifa->ifa_addr))->sin6_scope_id); if (ip6lifetime && (lifetime.ia6t_preferred || lifetime.ia6t_expire)) { struct timespec now; @@ -510,7 +510,7 @@ static struct sockaddr_in6 *sin6tab[] = { }; static void -in6_copyaddr(if_ctx *ctx, int to, int from) +in6_copyaddr(if_ctx *ctx __unused, int to, int from) { memcpy(sin6tab[to], sin6tab[from], sizeof(struct sockaddr_in6)); } @@ -675,15 +675,14 @@ in6_status_tunnel(if_ctx *ctx) static void in6_set_tunnel(if_ctx *ctx, struct addrinfo *srcres, struct addrinfo *dstres) { - struct in6_aliasreq in6_addreq; + struct in6_aliasreq in6_req = {}; - memset(&in6_addreq, 0, sizeof(in6_addreq)); - strlcpy(in6_addreq.ifra_name, ctx->ifname, sizeof(in6_addreq.ifra_name)); - memcpy(&in6_addreq.ifra_addr, srcres->ai_addr, srcres->ai_addr->sa_len); - memcpy(&in6_addreq.ifra_dstaddr, dstres->ai_addr, + strlcpy(in6_req.ifra_name, ctx->ifname, sizeof(in6_req.ifra_name)); + memcpy(&in6_req.ifra_addr, srcres->ai_addr, srcres->ai_addr->sa_len); + memcpy(&in6_req.ifra_dstaddr, dstres->ai_addr, dstres->ai_addr->sa_len); - if (ioctl_ctx(ctx, SIOCSIFPHYADDR_IN6, &in6_addreq) < 0) + if (ioctl_ctx(ctx, SIOCSIFPHYADDR_IN6, &in6_req) < 0) warn("SIOCSIFPHYADDR_IN6"); } diff --git a/sbin/ifconfig/af_link.c b/sbin/ifconfig/af_link.c index e66266ece86b..17de87539d9a 100644 --- a/sbin/ifconfig/af_link.c +++ b/sbin/ifconfig/af_link.c @@ -120,7 +120,7 @@ link_status(if_ctx *ctx, const struct ifaddrs *ifa) int rc, sock_hw; static const u_char laggaddr[6] = {0}; - sdl = (struct sockaddr_dl *) ifa->ifa_addr; + sdl = satosdl(ifa->ifa_addr); if (sdl == NULL || sdl->sdl_alen == 0) return; diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 24462f76e96c..f3d16fc052f6 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -811,7 +811,7 @@ list_interfaces_ioctl(if_ctx *ctx) if (args->ifname != NULL && strcmp(args->ifname, ifa->ifa_name) != 0) continue; if (ifa->ifa_addr->sa_family == AF_LINK) - sdl = (const struct sockaddr_dl *) ifa->ifa_addr; + sdl = satosdl_c(ifa->ifa_addr); else sdl = NULL; if (cp != NULL && strcmp(cp, ifa->ifa_name) == 0 && !args->namesonly) @@ -1737,8 +1737,7 @@ print_description(if_ctx *ctx) * specified, show only it; otherwise, show them all. */ static void -status(if_ctx *ctx, const struct sockaddr_dl *sdl, - struct ifaddrs *ifa) +status(if_ctx *ctx, const struct sockaddr_dl *sdl __unused, struct ifaddrs *ifa) { struct ifaddrs *ift; int s, old_s; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index 49f907367b7a..c97ef447a3b3 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -314,3 +314,15 @@ satosin(struct sockaddr *sa) { return ((struct sockaddr_in *)(void *)sa); } + +static inline struct sockaddr_dl * +satosdl(struct sockaddr *sa) +{ + return ((struct sockaddr_dl *)(void *)sa); +} + +static inline const struct sockaddr_dl * +satosdl_c(const struct sockaddr *sa) +{ + return ((const struct sockaddr_dl *)(const void *)sa); +} diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index 480a8472f293..967385b2377d 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -196,7 +196,7 @@ static struct ieee80211_txparams_req txparams; static int gottxparams = 0; static struct ieee80211_channel curchan; static int gotcurchan = 0; -static struct ifmediareq *ifmr; +static struct ifmediareq *global_ifmr; static int htconf = 0; static int gothtconf = 0; @@ -239,7 +239,7 @@ getchaninfo(if_ctx *ctx) if (get80211(ctx, IEEE80211_IOC_CHANINFO, chaninfo, IEEE80211_CHANINFO_SIZE(MAXCHAN)) < 0) err(1, "unable to get channel information"); - ifmr = ifmedia_getstate(ctx); + global_ifmr = ifmedia_getstate(ctx); gethtconf(ctx); getvhtconf(ctx); } @@ -317,7 +317,7 @@ promote(unsigned int i) * the socket descriptor down to here so we can make * the ifmedia_getstate call ourselves. */ - int chanmode = ifmr != NULL ? IFM_MODE(ifmr->ifm_current) : IFM_AUTO; + int chanmode = global_ifmr != NULL ? IFM_MODE(global_ifmr->ifm_current) : IFM_AUTO; /* when ambiguous promote to ``best'' */ /* NB: we abitrarily pick HT40+ over HT40- */ From nobody Fri Jun 16 07:24:39 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qj9f01Cfwz4fZTB; Fri, 16 Jun 2023 07:24:40 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qj9f00fF8z4B6v; Fri, 16 Jun 2023 07:24:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686900280; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+BRNk1KEfrsbrk7U07U+v/QKZI24GCd7R3ts3BHHhis=; b=TGq672T0+aojsXJqv8FLZoIJ0pWu5VAt6lDdbTUrUPgusn8mNRA8cbhsj1W79anxHqhmoN xIAihTK1Ni5Rj3YdN0dvSXsXQPN855WxV02/tyErlo3yP1sTB9KFKjpwkjlmWQZz6nXp3f XThJ22lx/jAETbtOvOd/s3x3xHvej5yXOA1R/bXte5V3v2IaiKW76/k1XtA6QBKL40h/Xs BmW1R+Fyqg92PaqflZl4m55GtWhkID48oEyD66AUsspRIYGM5ViL441mBJJU8lXLwLWXqJ kjpy+fTZEv3KS8lcbmpkgbrr350sSA1Y9WnV7+iSUVhTyDuor1BCf4AzieAPEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686900280; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+BRNk1KEfrsbrk7U07U+v/QKZI24GCd7R3ts3BHHhis=; b=DghyBh3R+fdEYeFBZwViGroazRGpG9aMmQyKjvGNzrSfZhJVXh5qNSANjxRInZ0kXew+GB j9BIijle880O2xnePGLXZAaVPdeD6ZHYB+dWxRqOipJSXDzok34/35mI0I/2RdcX1/W+1P uBNpdWWBB+CyAvF0v+2kq2we4r/+2DsptsOFvLmY7OA0hnnP3+oBb+aA4hKFr4V2Vf5SSC j55e59peEE3hZ5F/xEvt7eENSk4M1uQno+/6p1QcUxbD+1aeUByvHiP7m5cKKiY3N9yO+i Dz7lqFAPpvz1vuT6OjsZXePiDnclGRvdg4H5YhU3To9LHg4wHzd2KMpx2xRniQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686900280; a=rsa-sha256; cv=none; b=uYgweTbqUdwgm2LM0GocWDEJh/DXwPmpUMJ70gsMZzGo6NEjZGZljpr4+IFul0m3qbizJE zoAUtVzAOeb19wGVdOrC+hhKDeV+8hcifdINmdTyccDAjwK2QhzeK6xXZkBu7zrOHhrKXo ne3agF7jIFlgVHleJWxCfWHX3s3z2fm2lA0S3MG9E2xOd4XUZfOaRek8glRVfvAvCxIZ4m 9F5a5Mq+mvzwETWp08gH2fadg8FqAes81Xlmccdl5m9W27P0ylzqjdOACg3baf3NIViWlh rrTtO6XGLt6Bst2fGfg5yxMByQdapcX2xLkCs0WElcrz7Zxkw8yK/QSVWjFbxg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qj9dz6s9czKK5; Fri, 16 Jun 2023 07:24:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G7Od10050748; Fri, 16 Jun 2023 07:24:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G7Od7u050747; Fri, 16 Jun 2023 07:24:39 GMT (envelope-from git) Date: Fri, 16 Jun 2023 07:24:39 GMT Message-Id: <202306160724.35G7Od7u050747@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 7e1ec25c8b6d - main - ipfw: add state/comment tests List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7e1ec25c8b6d4090ab0c1fcac4f048015c216267 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=7e1ec25c8b6d4090ab0c1fcac4f048015c216267 commit 7e1ec25c8b6d4090ab0c1fcac4f048015c216267 Author: Alexander V. Chernikov AuthorDate: 2023-06-16 07:24:19 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 07:24:19 +0000 ipfw: add state/comment tests --- sbin/ipfw/tests/test_add_rule.py | 63 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/sbin/ipfw/tests/test_add_rule.py b/sbin/ipfw/tests/test_add_rule.py index 42c594a83bcf..60c8cebaceaa 100755 --- a/sbin/ipfw/tests/test_add_rule.py +++ b/sbin/ipfw/tests/test_add_rule.py @@ -57,7 +57,7 @@ def differ(w_obj, g_obj, w_stack=[], g_stack=[]): return True num_objects = 0 for i, w_child in enumerate(w_obj.obj_list): - if i > len(g_obj.obj_list): + if i >= len(g_obj.obj_list): print("MISSING object from chain {}".format(" / ".join(w_stack))) w_child.print_obj() print("==========================") @@ -206,6 +206,66 @@ class TestAddRule(BaseTest): }, id="test_eaction_ntp", ), + pytest.param( + { + "in": "add // test comment", + "out": { + "insns": [ + InsnComment(comment="test comment"), + Insn(IpFwOpcode.O_COUNT), + ], + }, + }, + id="test_action_comment", + ), + pytest.param( + { + "in": "add check-state :OUT // test comment", + "out": { + "objs": [ + NTlv(IpFwTlvType.IPFW_TLV_STATE_NAME, idx=1, name="OUT"), + ], + "insns": [ + InsnComment(comment="test comment"), + Insn(IpFwOpcode.O_CHECK_STATE, arg1=1), + ], + }, + }, + id="test_check_state", + ), + pytest.param( + { + "in": "add allow tcp from any to any keep-state :OUT", + "out": { + "objs": [ + NTlv(IpFwTlvType.IPFW_TLV_STATE_NAME, idx=1, name="OUT"), + ], + "insns": [ + Insn(IpFwOpcode.O_PROBE_STATE, arg1=1), + Insn(IpFwOpcode.O_PROTO, arg1=6), + Insn(IpFwOpcode.O_KEEP_STATE, arg1=1), + InsnEmpty(IpFwOpcode.O_ACCEPT), + ], + }, + }, + id="test_keep_state", + ), + pytest.param( + { + "in": "add allow tcp from any to any record-state", + "out": { + "objs": [ + NTlv(IpFwTlvType.IPFW_TLV_STATE_NAME, idx=1, name="default"), + ], + "insns": [ + Insn(IpFwOpcode.O_PROTO, arg1=6), + Insn(IpFwOpcode.O_KEEP_STATE, arg1=1), + InsnEmpty(IpFwOpcode.O_ACCEPT), + ], + }, + }, + id="test_record_state", + ), ], ) def test_add_rule(self, rule): @@ -329,7 +389,6 @@ class TestAddRule(BaseTest): ("call 420", Insn(IpFwOpcode.O_CALLRETURN, arg1=420)), id="call_420" ), # TOK_FORWARD - # TOK_COMMENT pytest.param( ("setfib 1", Insn(IpFwOpcode.O_SETFIB, arg1=1 | 0x8000)), id="setfib_1", From nobody Fri Jun 16 08:15:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjBmq1M9nz4d8qS; Fri, 16 Jun 2023 08:15:39 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjBmq0mKnz4G4Q; Fri, 16 Jun 2023 08:15:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686903339; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RqBBGmvGBxS/oKSVinJvCb2srPAZKu0HJYWdhsoIKds=; b=YQvjtyCzdMM8SYMEHD+S21AXQLK4Tp74KWUIUBCAC4LZLzs+GtuoNJzAlt3VRvZQZ1VxQZ 4Cq/C87Y4BBWDIQK2r9OilUBpntOrrrJEudZ3WK2ZE6CDKKPBxyr79OSCDL50YeFjsEhUY PU09zXP33j3mladRDFAz3cQSJBsUJdn+Ya6NscMn5VfUb6vS3ILi6GXKPMaTdUT8iyyIOU JEVGGFU24DjdSIxQqs5O8YZW5eJkfg8EPpIU856tvY1Givqo30ymnsjJOnJeuBlN+28L/M jOYmbO7e6Irtiobfi3ixmfhLR5zAxr8QeIKifZKXC8/JpIwQYSg8hwYiswpUsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686903339; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RqBBGmvGBxS/oKSVinJvCb2srPAZKu0HJYWdhsoIKds=; b=lEKNbAZ3AYaJw0+LPdwsAuQsf606hY92MTEGyjFgiMJECQYaohXvgPjbs5MFrUUDHU/ga2 VhEPiI2xtuUIM+AVgMp+MG6uS5dpJ7ZJViAjU843Y3A4oXIz3IUSRdUo6VDuE4CRL5eIwy p1jtveQ8Z5CSliY8u0qnv01njXh+TPle2VajprotLWvgXqPapGW7OSb4rUHu1Q8/Uwtw4k /jHGtAtDQNDmqnGJI6AwEJDMFOjUVyPvtEiZSzeIL8pilgz4GWRIx63JX8EM+wFaeZXpW6 pCfMkpnNekoJ6Ny2HMRpstzQXfi5fBNnMEhWjIpuxHHW/L9b9xr0++DQg5RVMw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686903339; a=rsa-sha256; cv=none; b=cEJI456nFP5LBLcRK7b57etYTgomH8BxkRtn+TTnYVVX+mPxho9h8/y14AcdD9PSM+9QsK +UC0F+h2u0sTUtH87j9QdQ0CA1FeD1K3NszSxdhJ+F4CBODKx0Br/IIGUvAkCsKfT6hySI SUyaFjZBznL8Sed8fDNDhw0pQWTow8OlQ13oUxy41TNk20Fox4z8BlpxS+rpA/udqVadzn XYTX49UFSNdszZDsYqL4A7oayWPXYOwhJa113HsSx1T5b6SE3u06JApeG8+Y+mA+LeI4+v gl3FX71TkfFGTOR8VkRH5n6zz5gGHbbRlE6cX/Gb+WciRWmGSDy/xWSSGGdvtw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjBmp6wK6zLGV; Fri, 16 Jun 2023 08:15:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G8FcIE033193; Fri, 16 Jun 2023 08:15:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G8FcGS033192; Fri, 16 Jun 2023 08:15:38 GMT (envelope-from git) Date: Fri, 16 Jun 2023 08:15:38 GMT Message-Id: <202306160815.35G8FcGS033192@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alan Cox Subject: git: 58d427172157 - main - vm_phys: Fix typo in 9e8174289236 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: alc X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 58d427172157dedf82e46014e7d19cf973186dd9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by alc: URL: https://cgit.FreeBSD.org/src/commit/?id=58d427172157dedf82e46014e7d19cf973186dd9 commit 58d427172157dedf82e46014e7d19cf973186dd9 Author: Alan Cox AuthorDate: 2023-06-16 08:12:42 +0000 Commit: Alan Cox CommitDate: 2023-06-16 08:12:42 +0000 vm_phys: Fix typo in 9e8174289236 --- sys/vm/vm_phys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c index a0b53f0f7c4b..28f12231e01c 100644 --- a/sys/vm/vm_phys.c +++ b/sys/vm/vm_phys.c @@ -1246,7 +1246,7 @@ vm_phys_find_range(vm_page_t bounds[], int segind, int domain, struct vm_phys_seg *end_seg, *seg; KASSERT(npages > 0, ("npages is zero")); - KASSERT(domain >= 0 && domain < vm_ndomain, ("domain out of range")); + KASSERT(domain >= 0 && domain < vm_ndomains, ("domain out of range")); end_seg = &vm_phys_segs[vm_phys_nsegs]; for (seg = &vm_phys_segs[segind]; seg < end_seg; seg++) { if (seg->domain != domain) From nobody Fri Jun 16 08:23:55 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjByN1H3Zz4d9F0; Fri, 16 Jun 2023 08:23:56 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjByN0Btjz4H7F; Fri, 16 Jun 2023 08:23:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686903836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HmEvZMbqpueZYiwlkhFW8stpJItIwpX3vcgr2kfEaPM=; b=ZG0ae68Jc9uAj87Ws9q202VtIrUpr6Wb+6OrEZ6WeeFNXs8a0DJ65p8FaT9hiKGXJWZoqV +i6aGfzozJbAgrMYhHjB95Pl83Q5qjT6YTh3SXQGymyGX+BOCo6d79PHvqr4/3twA4Xc5b 1PpAUDVT/xEIqqGphKCH3bSNsuVWxo/MsQOeyfQozTTdq6kf1kYe6gPaKNb6T+i/2dPp5n RnSAr/1XW2S3dF5GUViRwzCAj0SZLc041rPdsmZ80266QkHNi74iWOnLtjcd8xiG5EJFPi Qw9EZeyMId6hLRURrPHMBE0KfLoMxOdkOED32po4bV80jaED4XSF+MZ0vM9wHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686903836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HmEvZMbqpueZYiwlkhFW8stpJItIwpX3vcgr2kfEaPM=; b=Lz1Ie9fLF3Z0tHTSAQ0KbVKXxIxn1xTveyVzI4iNYp0YZNSAkvbtSk652Qyl5Gb9on1mVz nhTmDdg2JXHnR8dwKbknMdqJFNyVmTf9BNacGwH9YXwMDW+qC0PPWQIq3Yhp/WsELtKMhS btAWiW/k+WGzrIldXnaqOxJsJ1sbZmFHRU3RoTa85UcKhFRkkWCWDdN9Aj9PDZyb2JirE2 u/nfZhNeNpCdMxxNXLgG7GwynjlrI7Ej0VpluEbnhC7I6XkA29g1HOMlAw9IgFqk3btxqT W5PM6b2VL+xV8N22MwXehgxllM37+27ESinFW8INWylQa69jJP+TO97QMF5y+g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686903836; a=rsa-sha256; cv=none; b=EkFuiQkwKF4SXPOrTouR22kxvlgw47ETsjDWSXYpsAcXD5GApYsYDIU164pozkMJIJdxYL HVMBddeI+IKW0qVwoCYTLBLuCL3JGvgqIqO4xp5tFyEfvgOsw23x28JieN0nBpRG/nvuwR Yshl4S0lm1Miwa1nLq1VPxkFZwZCzuJW6EU3tsUvhI+3GYoApEeowxG1HHQXOp3cyCzH4d rShRDDqqvuV/OD40GcGtQa6pqDAGwzVwWxZPluhlXZTFQuOr+2ne/6kd2V9yZgG/KDZ8js gBDZcSNJ2Cc2N8MFDij8y9e5qBnRd6Zsy5jva/hcKwZP7IhtaZjWBaxkKIS2bA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjByM6N75zLVy; Fri, 16 Jun 2023 08:23:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35G8NttW049232; Fri, 16 Jun 2023 08:23:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35G8NtTG049231; Fri, 16 Jun 2023 08:23:55 GMT (envelope-from git) Date: Fri, 16 Jun 2023 08:23:55 GMT Message-Id: <202306160823.35G8NtTG049231@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 0fcc603a072f - main - ifconfig: fix armv6 build List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0fcc603a072fc5fb0121114e539ac557fbe1a7e5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=0fcc603a072fc5fb0121114e539ac557fbe1a7e5 commit 0fcc603a072fc5fb0121114e539ac557fbe1a7e5 Author: Alexander V. Chernikov AuthorDate: 2023-06-16 08:23:14 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 08:23:50 +0000 ifconfig: fix armv6 build --- sbin/ifconfig/ifieee80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index 967385b2377d..d5a1dab4e064 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -3825,7 +3825,7 @@ scan_and_wait(if_ctx *ctx) perror("read(PF_ROUTE)"); break; } - rtm = (struct rt_msghdr *) buf; + rtm = (struct rt_msghdr *)(void *)buf; if (rtm->rtm_version != RTM_VERSION) break; ifan = (struct if_announcemsghdr *) rtm; From nobody Fri Jun 16 13:59:14 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjLPG5gW3z4dxYW; Fri, 16 Jun 2023 13:59:14 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjLPG3fnYz3tpy; Fri, 16 Jun 2023 13:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686923954; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E8iGncyFsLs1aQfJIaVRGGZR0biOnx8RGEZAO1ATmyM=; b=pFcAhgulO3Nralosro7X0DKoO3zvB6NZPRMsq94Bb21qmWL2H5l9yBKP9PTq9z61Vx6fKJ Li7u+kS39L9EQa7+UW44nlPHMKGFld04x1/w4Jp+w3tuj8dI+zxwUkjab8rfwuESpUYgCL FS1hUBYsL9B6fWYoGn+u5N/TFjIGXan1LGLgjLMfA8KEc/h5FqHLIqfa0qsesrtREfJmnf mYmRsuEogs1pc6UChInBeyns8OnqZQ35V15C8bdAmNsm85Kmesg5sMJS2jzTPoffJTHjoc StpLb0SfcGOZYtNEfbeMFwZnyE/VmVxB+tYDlU+qsbt+9dJkiaiPOsJJ35XI1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686923954; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E8iGncyFsLs1aQfJIaVRGGZR0biOnx8RGEZAO1ATmyM=; b=FbVRdEz2o3mZUYi5KtGP6FXZ8rH/w9SlVaT+FXqhV+zu8dsHLuU1jyULT4Os8QAZhKyT0v zlU8P4+MXKJyJ320Lt7NdILu3YxrCthErzAJPy/VtT278OVpghkOiEgU2w67Sx9b/rkdjy LOS/WX80Y9ubim4wdIduVFvQpquEpX1+52YSxwuCPysP2uOESGGionpuiSs2W99/qy2P/o ZINjXPjmNVkMiQthCs1UgRZ77M+O3CN0vjAKdFlOhmuyuKyAhE8CFb+AQHeGxy3wJaExBa JFvT5nEfBUw9D7DxS+mpZgFUnViJ8U7pSdfo7IdzBRqqdom2viZi7WOgQwaGCQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686923954; a=rsa-sha256; cv=none; b=BtDTtKqiFe4JDvWywK5O3XOS23ckUzCTOolT+nSCy3W6TSZjx4CYhEkPFqULHPE7+einY5 2bBSq/WPoTpJPKGe9zFCbPfYzpTN6gRpx62udvSLxqMrmP1p1WnwM8Z4YcAmPpqEgnqUVf olFGrBXggasnWjliwzrETUtJVfHwr/Akjd8bKVzvPLVq5hbCENkaNsc4qzSwSsXZJJ6ksj x0Ovr24gF/yoHueZ4q3EecrDLy5fLCi2GZGlMYTuObDGzD3MNsJxkplK4Zlg/g1G8S26Qo S6FzJchb7V68L6WYmX8T41uEg3LE6gudR1K0DgWQFjEe76LbG2cCvilU2AavKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjLPG2l19zWM3; Fri, 16 Jun 2023 13:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GDxEn0092700; Fri, 16 Jun 2023 13:59:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GDxEbI092699; Fri, 16 Jun 2023 13:59:14 GMT (envelope-from git) Date: Fri, 16 Jun 2023 13:59:14 GMT Message-Id: <202306161359.35GDxEbI092699@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: ded54059fddd - stable/13 - kevent: Make references to filter definitions const List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ded54059fddd6cbe0a2dea7c3f8d35cff5661505 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ded54059fddd6cbe0a2dea7c3f8d35cff5661505 commit ded54059fddd6cbe0a2dea7c3f8d35cff5661505 Author: Mark Johnston AuthorDate: 2023-06-02 17:14:13 +0000 Commit: Mark Johnston CommitDate: 2023-06-16 13:59:00 +0000 kevent: Make references to filter definitions const Follow-up revisions can make individual filter definitions const. No functional change intended. Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D35842 (cherry picked from commit 67f938c5ff1a4c90fcb9372132c8458ed67aba57) --- sys/kern/kern_event.c | 17 ++++++++--------- sys/sys/event.h | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index f580ed10eb8d..a8aabd276d54 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -108,7 +108,7 @@ static int kqueue_acquire(struct file *fp, struct kqueue **kqp); static void kqueue_release(struct kqueue *kq, int locked); static void kqueue_destroy(struct kqueue *kq); static void kqueue_drain(struct kqueue *kq, struct thread *td); -static int kqueue_expand(struct kqueue *kq, struct filterops *fops, +static int kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, int mflag); static void kqueue_task(void *arg, int pending); static int kqueue_scan(struct kqueue *kq, int maxevents, @@ -116,7 +116,7 @@ static int kqueue_scan(struct kqueue *kq, int maxevents, const struct timespec *timeout, struct kevent *keva, struct thread *td); static void kqueue_wakeup(struct kqueue *kq); -static struct filterops *kqueue_fo_find(int filt); +static const struct filterops *kqueue_fo_find(int filt); static void kqueue_fo_release(int filt); struct g_kevent_args; static int kern_kevent_generic(struct thread *td, @@ -342,10 +342,9 @@ extern struct filterops fs_filtops; * Table for all system-defined filters. */ static struct mtx filterops_lock; -MTX_SYSINIT(kqueue_filterops, &filterops_lock, "protect sysfilt_ops", - MTX_DEF); +MTX_SYSINIT(kqueue_filterops, &filterops_lock, "protect sysfilt_ops", MTX_DEF); static struct { - struct filterops *for_fop; + const struct filterops *for_fop; int for_nolock; int for_refcnt; } sysfilt_ops[EVFILT_SYSCOUNT] = { @@ -1401,7 +1400,7 @@ kern_kevent_anonymous(struct thread *td, int nevents, } int -kqueue_add_filteropts(int filt, struct filterops *filtops) +kqueue_add_filteropts(int filt, const struct filterops *filtops) { int error; @@ -1449,7 +1448,7 @@ kqueue_del_filteropts(int filt) return error; } -static struct filterops * +static const struct filterops * kqueue_fo_find(int filt) { @@ -1492,7 +1491,7 @@ static int kqueue_register(struct kqueue *kq, struct kevent *kev, struct thread *td, int mflag) { - struct filterops *fops; + const struct filterops *fops; struct file *fp; struct knote *kn, *tkn; struct knlist *knl; @@ -1818,7 +1817,7 @@ kqueue_schedtask(struct kqueue *kq) * Return 0 on success (or no work necessary), return errno on failure. */ static int -kqueue_expand(struct kqueue *kq, struct filterops *fops, uintptr_t ident, +kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, int mflag) { struct klist *list, *tmp_knhash, *to_free; diff --git a/sys/sys/event.h b/sys/sys/event.h index 1141a22b8109..d413428a528a 100644 --- a/sys/sys/event.h +++ b/sys/sys/event.h @@ -306,7 +306,7 @@ struct knote { struct aioliojob *p_lio; /* LIO job pointer */ void *p_v; /* generic other pointer */ } kn_ptr; - struct filterops *kn_fop; + const struct filterops *kn_fop; #define kn_id kn_kevent.ident #define kn_filter kn_kevent.filter @@ -349,7 +349,7 @@ void knlist_cleardel(struct knlist *knl, struct thread *td, void knote_fdclose(struct thread *p, int fd); int kqfd_register(int fd, struct kevent *kev, struct thread *p, int mflag); -int kqueue_add_filteropts(int filt, struct filterops *filtops); +int kqueue_add_filteropts(int filt, const struct filterops *filtops); int kqueue_del_filteropts(int filt); void kqueue_drain_schedtask(void); From nobody Fri Jun 16 14:45:18 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjMQQ3HHGz4fKmh; Fri, 16 Jun 2023 14:45:18 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjMQQ2qpbz45PG; Fri, 16 Jun 2023 14:45:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686926718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6qmuu4Bkhjc+XZg0t+8yPAaG7FUFOKlgnrBNfUZG1/U=; b=SrdZz+YNxnClYy9sFgw8QMKe3QV+5U11Efgr8qw23rg9psvCIDvF7Izcm7iipC1zkzSnWH OjFzFBIijXCMJHL55pzjgt6DgPR90st3hwiRw2LHiItYv1o3BUDhFAn/7dLf6cuyQyIofZ nDUUEnRJreQB724O6U7nV7rq+5L3h6b41Ns1KS0oI0w1Kp/3DhVdxDpB5+EpQm4W1JQEOX /bJ3MYp4aagSydPpMf+hq7DFNKpOvGT0ddkws8Q1mokOciKPI+h3Bk1roHLRYb+w7uAv/r B/D1CUKvcI8258Lv6iiQ0ZI1ELBjxwUXvaHgeQX154acaOlF6RpQcARDQVltGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686926718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6qmuu4Bkhjc+XZg0t+8yPAaG7FUFOKlgnrBNfUZG1/U=; b=uc7yMV5KOrSmLggCy9gRzQRT4OMQh02TyuwIRCFo7xORaB0QsFloxD1z+EeeYI2h0ueWms VVEVUY+/6jeYTI5zk7q0vYfv1+st2RJlp3imLoyJPVmt171bBL0mhGTNHP3KUE87zwvThi KsknoVZcetEBVpcwS69qglX2O8AVNiuZQfAflsPatG4IkXNRU8D3GuIIhuMRxDOXwrDKJF bY3HKxKCi1gMxlSF2gmMBJhPEqdjEfSCEp9tkju+wHu+lxY1A3DYftywuCzde9nrrLjUjt HZlWl9P6YtC3UEF8bKLF9kRth75+w+LMTkfuvo7ZH4cJLKfwuQuMYD/67BoC/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686926718; a=rsa-sha256; cv=none; b=EOMI1o46rfPhyFQuIPljYRHQPSISYamHjsBhsH9JHrYSSNzU0/NTSBTuMvHacevpWp6bKP jMTHU7dRHmdNGOGQvX8FRzAInQFEDybsPDb3MQQCdMcTkl+15XW9H0xlHINsf/m9M+ltIA p/r0rK5Js5zfDliS9x3CgMtiq6xgOlKv3avv6dsAI5k4q7Vd4cjmPqaLcqjpnprf10JOKF YuokABC00wS8cperNy8h6oKmkz4Joys+0qq9HMuqRE5cBBQWtDKMSXMhfIW6azQPHcogix RKThHrxgRZ4kLyPjDaJ46NWlVj6BM9W717mztdzte5XFlDIfMQatf4Rv0tp1Iw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjMQQ1vLkzX9X; Fri, 16 Jun 2023 14:45:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GEjIkJ074854; Fri, 16 Jun 2023 14:45:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GEjIBi074853; Fri, 16 Jun 2023 14:45:18 GMT (envelope-from git) Date: Fri, 16 Jun 2023 14:45:18 GMT Message-Id: <202306161445.35GEjIBi074853@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Juraj Lutter Subject: git: e5d7100c09e0 - main - periodic: Honor kern.localbase List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: otis X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e5d7100c09e03e66535eee69d7e454c01e4a9d28 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by otis: URL: https://cgit.FreeBSD.org/src/commit/?id=e5d7100c09e03e66535eee69d7e454c01e4a9d28 commit e5d7100c09e03e66535eee69d7e454c01e4a9d28 Author: Juraj Lutter AuthorDate: 2023-06-06 11:40:49 +0000 Commit: Juraj Lutter CommitDate: 2023-06-16 14:39:04 +0000 periodic: Honor kern.localbase Take kern.localbase into account with fallback to /usr/local and also allow for LOCALBASE/etc/periodic.conf (similarly to what many other utilities do). Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D40435 MFC after: 2 weeks --- usr.sbin/periodic/periodic.8 | 9 +++++++-- usr.sbin/periodic/periodic.conf | 6 +++--- usr.sbin/periodic/periodic.sh | 6 +++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/usr.sbin/periodic/periodic.8 b/usr.sbin/periodic/periodic.8 index 2fda1db157f5..fd09fbf1b368 100644 --- a/usr.sbin/periodic/periodic.8 +++ b/usr.sbin/periodic/periodic.8 @@ -183,7 +183,7 @@ and the standard and .Pa security scripts -.It Pa /etc/periodic.conf +.It Pa /etc/periodic.conf , ${LOCALBASE}/etc/periodic.conf this file contains local overrides for the default .Nm configuration @@ -207,7 +207,12 @@ system registry will typically have a .Va local_periodic variable reading: .Pp -.Dl local_periodic="/usr/local/etc/periodic" +.Dl local_periodic="${_localbase}/etc/periodic" +.Pp +where +.Pa ${_localbase} +is being set from within +.Pa /usr/sbin/periodic . .Pp To log .Nm diff --git a/usr.sbin/periodic/periodic.conf b/usr.sbin/periodic/periodic.conf index 61cebe858372..c22ff6fe652d 100644 --- a/usr.sbin/periodic/periodic.conf +++ b/usr.sbin/periodic/periodic.conf @@ -17,10 +17,10 @@ # # What files override these defaults ? -periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local" +periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local ${_localbase}/etc/periodic.conf" -# periodic script dirs -local_periodic="/usr/local/etc/periodic" +# periodic script dirs. _localbase is being set in /usr/sbin/periodic +local_periodic="${_localbase}/etc/periodic" # Max time to sleep to avoid causing congestion on download servers anticongestion_sleeptime=3600 diff --git a/usr.sbin/periodic/periodic.sh b/usr.sbin/periodic/periodic.sh index cdbd1b3b57fb..bec13bc4fe89 100644 --- a/usr.sbin/periodic/periodic.sh +++ b/usr.sbin/periodic/periodic.sh @@ -30,9 +30,13 @@ if [ $# -lt 1 ] ; then usage fi +_localbase=`/sbin/sysctl -n user.localbase 2> /dev/null` +# Set default value of _localbase if not previously set +: ${_localbase:="/usr/local"} + # Use a deterministic path to match the preset from /etc/crontab in case # periodic is run interactively. -export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin +export PATH=/sbin:/bin:/usr/sbin:/usr/bin:${_localbase}/sbin:${_localbase}/bin # If possible, check the global system configuration file, # to see if there are additional dirs to check From nobody Fri Jun 16 15:34:03 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjNVh4WPkz4d954; Fri, 16 Jun 2023 15:34:04 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjNVh0h0yz4Gkm; Fri, 16 Jun 2023 15:34:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686929644; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V7kU8U1dPCfruFQWwyb2oAWQW7VSJsBUGJt3oIRDjqg=; b=ABg3QAsQvNbjr1XSVUW+n9B+z+nckgAXvzcWm0WxDW3+nmx2fjTc7ItHS/KBDZQmcFRsns fR+8Iw80seOzilkHgZRo9xR6UvdeKuXRQXzu6Gp/9kk58eqVddQS/8dUJsedxITS5ANXTk t9cwFabUyc0WisQLOzSRNSpOK7P+IpKCblR8gJXl5mME1XQrHReg0RBM/+Vl9OXPwoAcLt OVxaairi4z+qJwTJrr4z5J5qYNUO3neBTFH8Zinc1cibGFlQJ6+3+NbF/Do4fUHwm6vcLy rWgzfvHPubUwGJ6TPTYIwQaAuhxEPgCtb4zsRIpIU7mCTtoiFD82BDxBtqJH4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686929644; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V7kU8U1dPCfruFQWwyb2oAWQW7VSJsBUGJt3oIRDjqg=; b=RbRRYXz8HgjMW7Y/Bjm9BtzKEix7WxSd/K6455hIZyor7cGwpw6vFoAcRlm8We25JHTV8U JTc0YaFsYJqNkWGXUgbPyLtMDOJy8LohaQl+p8+OD2adyNXga1dSvhiDcxapX1/DSzvzae KtRj0OSJzMILBCCDV6uNDbFJ4wkzewnRfQBIPXlHzFQrY+9ZEcB4qnuFdNHVwbytGOBePq AHOVqBY0aZ/e4T+BgfIrbEUDmh2oTXGzx9CjQfcZddh6XAstFrZziovr4VIE2gx7rnpw/y Q1vSpJQAMrHtThQv7hbeikLIc5m366y8TJT7BkSdGpyoNL70f8uZtS/pWZw9lg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686929644; a=rsa-sha256; cv=none; b=FCsJusVBtJqwgnbvwXWOZF1H09XAPXruwL+cgHEI5w2eMUz6C1w7Ou9+o30MDvZQfML0/j hCc2DnqYmUf1A4udQKF5JGU2x0bCfNkXLUGjvJH5r0tfd3TYlwpoMJbJxSGpi+qFfRTz+C 8heoX2MI6jehT8qbOZmkAqu0UfGA7fzJYeaXpUvqzFv1xC/6PB0gQVQKJWgGyN6hJh5Wky ynzGGHz67EWBaMu86EoefjM3PLaIwCHsP0hGtFwsBph7BFBVXagia40rZRTyZ7si0BdrzL Hk4OtqZnCXmILxVZ+ZuVZP3zTr43OohEGug/WAyhBdsfrT9bkSpoWpouZ8BR8g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjNVg6pPvzYJQ; Fri, 16 Jun 2023 15:34:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GFY3T3057076; Fri, 16 Jun 2023 15:34:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GFY38a057075; Fri, 16 Jun 2023 15:34:03 GMT (envelope-from git) Date: Fri, 16 Jun 2023 15:34:03 GMT Message-Id: <202306161534.35GFY38a057075@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: c344eff91070 - main - netlink: dump interface capabilities with other interface data. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c344eff91070ccb15e81baf7897224882b417ae4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=c344eff91070ccb15e81baf7897224882b417ae4 commit c344eff91070ccb15e81baf7897224882b417ae4 Author: Alexander V. Chernikov AuthorDate: 2023-06-16 14:56:39 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 15:33:49 +0000 netlink: dump interface capabilities with other interface data. This change exports interface capabilities using the standard Netlink attribute type, bitset, and switches `ifconfig(8)` to use it when displaying interface data. Bitset comes in two representations. The first one is "compact", where the bits are exported via two arrays - "mask" listing the "valid" bits and "values, providing the values for those bits. The second one is more verbose, listing each bit as a separate item, with its name, id and value. The latter option is handy when submitting update requests. The support for setting capabilities will be added in the upcoming diffs. Differential Revision: https://reviews.freebsd.org/D40331 --- sbin/ifconfig/ifconfig.c | 6 +- sbin/ifconfig/ifconfig.h | 1 - sbin/ifconfig/ifconfig_netlink.c | 26 +++++- sys/net/if.c | 1 + sys/net/if.h | 146 +++++++++++++++++--------------- sys/net/if_strings.h | 106 +++++++++++++++++++++++ sys/netlink/netlink_bitset.h | 57 +++++++++++++ sys/netlink/netlink_route.h | 1 + sys/netlink/netlink_snl.h | 88 ++++++++++++++++++- sys/netlink/netlink_snl_route_parsers.h | 2 + sys/netlink/route/iface.c | 28 ++++++ sys/netlink/route/interface.h | 1 + 12 files changed, 390 insertions(+), 73 deletions(-) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index f3d16fc052f6..fa22f09f8100 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -55,6 +55,7 @@ static const char rcsid[] = #include #include #include +#include #include #include @@ -1585,6 +1586,8 @@ unsetifdescr(if_ctx *ctx, const char *val __unused, int value __unused) setifdescr(ctx, "", 0); } +#ifdef WITHOUT_NETLINK + #define IFFBITS \ "\020\1UP\2BROADCAST\3DEBUG\4LOOPBACK\5POINTOPOINT\7RUNNING" \ "\10NOARP\11PROMISC\12ALLMULTI\13OACTIVE\14SIMPLEX\15LINK0\16LINK1\17LINK2" \ @@ -1656,7 +1659,7 @@ print_ifcap_nv(if_ctx *ctx) Perror("ioctl (SIOCGIFCAP)"); } -void +static void print_ifcap(if_ctx *ctx) { struct ifreq ifr = {}; @@ -1675,6 +1678,7 @@ print_ifcap(if_ctx *ctx) } } } +#endif void print_ifstatus(if_ctx *ctx) diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index c97ef447a3b3..e33a2c63aec1 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -275,7 +275,6 @@ bool match_ether(const struct sockaddr_dl *sdl); bool match_if_flags(struct ifconfig_args *args, int if_flags); int ifconfig_ioctl(if_ctx *ctx, int iscreate, const struct afswtch *uafp); bool group_member(const char *ifname, const char *match, const char *nomatch); -void print_ifcap(if_ctx *ctx); void tunnel_status(if_ctx *ctx); struct afswtch *af_getbyfamily(int af); void af_other_status(if_ctx *ctx); diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index 2460d8c60109..f09023c1477c 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include "ifconfig.h" #include "ifconfig_netlink.h" @@ -343,6 +344,28 @@ sort_iface_ifaddrs(struct snl_state *ss, struct iface *iface) } } +static void +print_ifcaps(if_ctx *ctx, if_link_t *link) +{ + uint32_t sz_u32 = roundup2(link->iflaf_caps.nla_bitset_size, 32) / 32; + + if (sz_u32 > 0) { + uint32_t *caps = link->iflaf_caps.nla_bitset_value; + + printf("\toptions=%x", caps[0]); + print_bits("IFCAPS", caps, sz_u32, ifcap_bit_names, nitems(ifcap_bit_names)); + putchar('\n'); + } + + if (ctx->args->supmedia && sz_u32 > 0) { + uint32_t *caps = link->iflaf_caps.nla_bitset_mask; + + printf("\tcapabilities=%x", caps[0]); + print_bits("IFCAPS", caps, sz_u32, ifcap_bit_names, nitems(ifcap_bit_names)); + putchar('\n'); + } +} + static void status_nl(if_ctx *ctx, struct iface *iface) { @@ -360,8 +383,7 @@ status_nl(if_ctx *ctx, struct iface *iface) if (link->ifla_ifalias != NULL) printf("\tdescription: %s\n", link->ifla_ifalias); - /* TODO: convert to netlink */ - print_ifcap(ctx); + print_ifcaps(ctx, link); tunnel_status(ctx); if (args->allfamilies | (args->afp != NULL && args->afp->af_af == AF_LINK)) { diff --git a/sys/net/if.c b/sys/net/if.c index 975f4498073e..c5f0a65721fc 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -82,6 +82,7 @@ #include #include #include +#include #include #include #include diff --git a/sys/net/if.h b/sys/net/if.h index 4003b33e5de4..bd2787516f01 100644 --- a/sys/net/if.h +++ b/sys/net/if.h @@ -221,42 +221,86 @@ struct if_data { * to do the right thing. However, having the filter here * avoids replication of the same code in all individual drivers. */ -#define IFCAP_RXCSUM 0x00001 /* can offload checksum on RX */ -#define IFCAP_TXCSUM 0x00002 /* can offload checksum on TX */ -#define IFCAP_NETCONS 0x00004 /* can be a network console */ -#define IFCAP_VLAN_MTU 0x00008 /* VLAN-compatible MTU */ -#define IFCAP_VLAN_HWTAGGING 0x00010 /* hardware VLAN tag support */ -#define IFCAP_JUMBO_MTU 0x00020 /* 9000 byte MTU supported */ -#define IFCAP_POLLING 0x00040 /* driver supports polling */ -#define IFCAP_VLAN_HWCSUM 0x00080 /* can do IFCAP_HWCSUM on VLANs */ -#define IFCAP_TSO4 0x00100 /* can do TCP Segmentation Offload */ -#define IFCAP_TSO6 0x00200 /* can do TCP6 Segmentation Offload */ -#define IFCAP_LRO 0x00400 /* can do Large Receive Offload */ -#define IFCAP_WOL_UCAST 0x00800 /* wake on any unicast frame */ -#define IFCAP_WOL_MCAST 0x01000 /* wake on any multicast frame */ -#define IFCAP_WOL_MAGIC 0x02000 /* wake on any Magic Packet */ -#define IFCAP_TOE4 0x04000 /* interface can offload TCP */ -#define IFCAP_TOE6 0x08000 /* interface can offload TCP6 */ -#define IFCAP_VLAN_HWFILTER 0x10000 /* interface hw can filter vlan tag */ -#define IFCAP_NV 0x20000 /* can do SIOCGIFCAPNV/SIOCSIFCAPNV */ -#define IFCAP_VLAN_HWTSO 0x40000 /* can do IFCAP_TSO on VLANs */ -#define IFCAP_LINKSTATE 0x80000 /* the runtime link state is dynamic */ -#define IFCAP_NETMAP 0x100000 /* netmap mode supported/enabled */ -#define IFCAP_RXCSUM_IPV6 0x200000 /* can offload checksum on IPv6 RX */ -#define IFCAP_TXCSUM_IPV6 0x400000 /* can offload checksum on IPv6 TX */ -#define IFCAP_HWSTATS 0x800000 /* manages counters internally */ -#define IFCAP_TXRTLMT 0x1000000 /* hardware supports TX rate limiting */ -#define IFCAP_HWRXTSTMP 0x2000000 /* hardware rx timestamping */ -#define IFCAP_MEXTPG 0x4000000 /* understands M_EXTPG mbufs */ -#define IFCAP_TXTLS4 0x8000000 /* can do TLS encryption and segmentation for TCP */ -#define IFCAP_TXTLS6 0x10000000 /* can do TLS encryption and segmentation for TCP6 */ -#define IFCAP_VXLAN_HWCSUM 0x20000000 /* can do IFCAN_HWCSUM on VXLANs */ -#define IFCAP_VXLAN_HWTSO 0x40000000 /* can do IFCAP_TSO on VXLANs */ -#define IFCAP_TXTLS_RTLMT 0x80000000 /* can do TLS with rate limiting */ + +/* IFCAP values as bit indexes */ + +#define IFCAP_B_RXCSUM 0 /* can offload checksum on RX */ +#define IFCAP_B_TXCSUM 1 /* can offload checksum on TX */ +#define IFCAP_B_NETCONS 2 /* can be a network console */ +#define IFCAP_B_VLAN_MTU 3 /* VLAN-compatible MTU */ +#define IFCAP_B_VLAN_HWTAGGING 4 /* hardware VLAN tag support */ +#define IFCAP_B_JUMBO_MTU 5 /* 9000 byte MTU supported */ +#define IFCAP_B_POLLING 6 /* driver supports polling */ +#define IFCAP_B_VLAN_HWCSUM 7 /* can do IFCAP_HWCSUM on VLANs */ +#define IFCAP_B_TSO4 8 /* can do TCP Segmentation Offload */ +#define IFCAP_B_TSO6 9 /* can do TCP6 Segmentation Offload */ +#define IFCAP_B_LRO 10 /* can do Large Receive Offload */ +#define IFCAP_B_WOL_UCAST 11 /* wake on any unicast frame */ +#define IFCAP_B_WOL_MCAST 12 /* wake on any multicast frame */ +#define IFCAP_B_WOL_MAGIC 13 /* wake on any Magic Packet */ +#define IFCAP_B_TOE4 14 /* interface can offload TCP */ +#define IFCAP_B_TOE6 15 /* interface can offload TCP6 */ +#define IFCAP_B_VLAN_HWFILTER 16 /* interface hw can filter vlan tag */ +#define IFCAP_B_NV 17 /* can do SIOCGIFCAPNV/SIOCSIFCAPNV */ +#define IFCAP_B_VLAN_HWTSO 18 /* can do IFCAP_TSO on VLANs */ +#define IFCAP_B_LINKSTATE 19 /* the runtime link state is dynamic */ +#define IFCAP_B_NETMAP 20 /* netmap mode supported/enabled */ +#define IFCAP_B_RXCSUM_IPV6 21 /* can offload checksum on IPv6 RX */ +#define IFCAP_B_TXCSUM_IPV6 22 /* can offload checksum on IPv6 TX */ +#define IFCAP_B_HWSTATS 23 /* manages counters internally */ +#define IFCAP_B_TXRTLMT 24 /* hardware supports TX rate limiting */ +#define IFCAP_B_HWRXTSTMP 25 /* hardware rx timestamping */ +#define IFCAP_B_MEXTPG 26 /* understands M_EXTPG mbufs */ +#define IFCAP_B_TXTLS4 27 /* can do TLS encryption and segmentation for TCP */ +#define IFCAP_B_TXTLS6 28 /* can do TLS encryption and segmentation for TCP6 */ +#define IFCAP_B_VXLAN_HWCSUM 29 /* can do IFCAN_HWCSUM on VXLANs */ +#define IFCAP_B_VXLAN_HWTSO 30 /* can do IFCAP_TSO on VXLANs */ +#define IFCAP_B_TXTLS_RTLMT 31 /* can do TLS with rate limiting */ +#define IFCAP_B_RXTLS4 32 /* can to TLS receive for TCP */ +#define IFCAP_B_RXTLS6 33 /* can to TLS receive for TCP6 */ +#define __IFCAP_B_SIZE 34 + +#define IFCAP_B_MAX (__IFCAP_B_MAX - 1) +#define IFCAP_B_SIZE (__IFCAP_B_SIZE) + +#define IFCAP_BIT(x) (1 << (x)) + +#define IFCAP_RXCSUM IFCAP_BIT(IFCAP_B_RXCSUM) +#define IFCAP_TXCSUM IFCAP_BIT(IFCAP_B_TXCSUM) +#define IFCAP_NETCONS IFCAP_BIT(IFCAP_B_NETCONS) +#define IFCAP_VLAN_MTU IFCAP_BIT(IFCAP_B_VLAN_MTU) +#define IFCAP_VLAN_HWTAGGING IFCAP_BIT(IFCAP_B_VLAN_HWTAGGING) +#define IFCAP_JUMBO_MTU IFCAP_BIT(IFCAP_B_JUMBO_MTU) +#define IFCAP_POLLING IFCAP_BIT(IFCAP_B_POLLING) +#define IFCAP_VLAN_HWCSUM IFCAP_BIT(IFCAP_B_VLAN_HWCSUM) +#define IFCAP_TSO4 IFCAP_BIT(IFCAP_B_TSO4) +#define IFCAP_TSO6 IFCAP_BIT(IFCAP_B_TSO6) +#define IFCAP_LRO IFCAP_BIT(IFCAP_B_LRO) +#define IFCAP_WOL_UCAST IFCAP_BIT(IFCAP_B_WOL_UCAST) +#define IFCAP_WOL_MCAST IFCAP_BIT(IFCAP_B_WOL_MCAST) +#define IFCAP_WOL_MAGIC IFCAP_BIT(IFCAP_B_WOL_MAGIC) +#define IFCAP_TOE4 IFCAP_BIT(IFCAP_B_TOE4) +#define IFCAP_TOE6 IFCAP_BIT(IFCAP_B_TOE6) +#define IFCAP_VLAN_HWFILTER IFCAP_BIT(IFCAP_B_VLAN_HWFILTER) +#define IFCAP_NV IFCAP_BIT(IFCAP_B_NV) +#define IFCAP_VLAN_HWTSO IFCAP_BIT(IFCAP_B_VLAN_HWTSO) +#define IFCAP_LINKSTATE IFCAP_BIT(IFCAP_B_LINKSTATE) +#define IFCAP_NETMAP IFCAP_BIT(IFCAP_B_NETMAP) +#define IFCAP_RXCSUM_IPV6 IFCAP_BIT(IFCAP_B_RXCSUM_IPV6) +#define IFCAP_TXCSUM_IPV6 IFCAP_BIT(IFCAP_B_TXCSUM_IPV6) +#define IFCAP_HWSTATS IFCAP_BIT(IFCAP_B_HWSTATS) +#define IFCAP_TXRTLMT IFCAP_BIT(IFCAP_B_TXRTLMT) +#define IFCAP_HWRXTSTMP IFCAP_BIT(IFCAP_B_HWRXTSTMP) +#define IFCAP_MEXTPG IFCAP_BIT(IFCAP_B_MEXTPG) +#define IFCAP_TXTLS4 IFCAP_BIT(IFCAP_B_TXTLS4) +#define IFCAP_TXTLS6 IFCAP_BIT(IFCAP_B_TXTLS6) +#define IFCAP_VXLAN_HWCSUM IFCAP_BIT(IFCAP_B_VXLAN_HWCSUM) +#define IFCAP_VXLAN_HWTSO IFCAP_BIT(IFCAP_B_VXLAN_HWTSO) +#define IFCAP_TXTLS_RTLMT IFCAP_BIT(IFCAP_B_TXTLS_RTLMT) /* IFCAP2_* are integers, not bits. */ -#define IFCAP2_RXTLS4 0 -#define IFCAP2_RXTLS6 1 +#define IFCAP2_RXTLS4 (IFCAP_B_RXTLS4 - 32) +#define IFCAP2_RXTLS6 (IFCAP_B_RXTLS6 - 32) #define IFCAP2_BIT(x) (1UL << (x)) @@ -271,40 +315,6 @@ struct if_data { #define IFCAP_CANTCHANGE (IFCAP_NETMAP | IFCAP_NV) #define IFCAP_ALLCAPS 0xffffffff -#define IFCAP_RXCSUM_NAME "RXCSUM" -#define IFCAP_TXCSUM_NAME "TXCSUM" -#define IFCAP_NETCONS_NAME "NETCONS" -#define IFCAP_VLAN_MTU_NAME "VLAN_MTU" -#define IFCAP_VLAN_HWTAGGING_NAME "VLAN_HWTAGGING" -#define IFCAP_JUMBO_MTU_NAME "JUMBO_MTU" -#define IFCAP_POLLING_NAME "POLLING" -#define IFCAP_VLAN_HWCSUM_NAME "VLAN_HWCSUM" -#define IFCAP_TSO4_NAME "TSO4" -#define IFCAP_TSO6_NAME "TSO6" -#define IFCAP_LRO_NAME "LRO" -#define IFCAP_WOL_UCAST_NAME "WOL_UCAST" -#define IFCAP_WOL_MCAST_NAME "WOL_MCAST" -#define IFCAP_WOL_MAGIC_NAME "WOL_MAGIC" -#define IFCAP_TOE4_NAME "TOE4" -#define IFCAP_TOE6_NAME "TOE6" -#define IFCAP_VLAN_HWFILTER_NAME "VLAN_HWFILTER" -#define IFCAP_VLAN_HWTSO_NAME "VLAN_HWTSO" -#define IFCAP_LINKSTATE_NAME "LINKSTATE" -#define IFCAP_NETMAP_NAME "NETMAP" -#define IFCAP_RXCSUM_IPV6_NAME "RXCSUM_IPV6" -#define IFCAP_TXCSUM_IPV6_NAME "TXCSUM_IPV6" -#define IFCAP_HWSTATS_NAME "HWSTATS" -#define IFCAP_TXRTLMT_NAME "TXRTLMT" -#define IFCAP_HWRXTSTMP_NAME "HWRXTSTMP" -#define IFCAP_MEXTPG_NAME "MEXTPG" -#define IFCAP_TXTLS4_NAME "TXTLS4" -#define IFCAP_TXTLS6_NAME "TXTLS6" -#define IFCAP_VXLAN_HWCSUM_NAME "VXLAN_HWCSUM" -#define IFCAP_VXLAN_HWTSO_NAME "VXLAN_HWTSO" -#define IFCAP_TXTLS_RTLMT_NAME "TXTLS_RTLMT" -#define IFCAP2_RXTLS4_NAME "RXTLS4" -#define IFCAP2_RXTLS6_NAME "RXTLS6" - #define IFQ_MAXLEN 50 #define IFNET_SLOWHZ 1 /* granularity is 1 second */ diff --git a/sys/net/if_strings.h b/sys/net/if_strings.h new file mode 100644 index 000000000000..95d85f5370ed --- /dev/null +++ b/sys/net/if_strings.h @@ -0,0 +1,106 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * 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. + */ + +#ifndef _NET_IF_STRINGS_H_ +#define _NET_IF_STRINGS_H_ + +#define IFCAP_RXCSUM_NAME "RXCSUM" +#define IFCAP_TXCSUM_NAME "TXCSUM" +#define IFCAP_NETCONS_NAME "NETCONS" +#define IFCAP_VLAN_MTU_NAME "VLAN_MTU" +#define IFCAP_VLAN_HWTAGGING_NAME "VLAN_HWTAGGING" +#define IFCAP_JUMBO_MTU_NAME "JUMBO_MTU" +#define IFCAP_POLLING_NAME "POLLING" +#define IFCAP_VLAN_HWCSUM_NAME "VLAN_HWCSUM" +#define IFCAP_TSO4_NAME "TSO4" +#define IFCAP_TSO6_NAME "TSO6" +#define IFCAP_LRO_NAME "LRO" +#define IFCAP_WOL_UCAST_NAME "WOL_UCAST" +#define IFCAP_WOL_MCAST_NAME "WOL_MCAST" +#define IFCAP_WOL_MAGIC_NAME "WOL_MAGIC" +#define IFCAP_TOE4_NAME "TOE4" +#define IFCAP_TOE6_NAME "TOE6" +#define IFCAP_VLAN_HWFILTER_NAME "VLAN_HWFILTER" +#define IFCAP_NV_NAME "NV" +#define IFCAP_VLAN_HWTSO_NAME "VLAN_HWTSO" +#define IFCAP_LINKSTATE_NAME "LINKSTATE" +#define IFCAP_NETMAP_NAME "NETMAP" +#define IFCAP_RXCSUM_IPV6_NAME "RXCSUM_IPV6" +#define IFCAP_TXCSUM_IPV6_NAME "TXCSUM_IPV6" +#define IFCAP_HWSTATS_NAME "HWSTATS" +#define IFCAP_TXRTLMT_NAME "TXRTLMT" +#define IFCAP_HWRXTSTMP_NAME "HWRXTSTMP" +#define IFCAP_MEXTPG_NAME "MEXTPG" +#define IFCAP_TXTLS4_NAME "TXTLS4" +#define IFCAP_TXTLS6_NAME "TXTLS6" +#define IFCAP_VXLAN_HWCSUM_NAME "VXLAN_HWCSUM" +#define IFCAP_VXLAN_HWTSO_NAME "VXLAN_HWTSO" +#define IFCAP_TXTLS_RTLMT_NAME "TXTLS_RTLMT" +#define IFCAP_RXTLS4_NAME "RXTLS4" +#define IFCAP_RXTLS6_NAME "RXTLS6" + +#define IFCAP2_RXTLS4_NAME IFCAP_RXTLS4_NAME +#define IFCAP2_RXTLS6_NAME IFCAP_RXTLS6_NAME + +static const char *ifcap_bit_names[] = { + IFCAP_RXCSUM_NAME, + IFCAP_TXCSUM_NAME, + IFCAP_NETCONS_NAME, + IFCAP_VLAN_MTU_NAME, + IFCAP_VLAN_HWTAGGING_NAME, + IFCAP_JUMBO_MTU_NAME, + IFCAP_POLLING_NAME, + IFCAP_VLAN_HWCSUM_NAME, + IFCAP_TSO4_NAME, + IFCAP_TSO6_NAME, + IFCAP_LRO_NAME, + IFCAP_WOL_UCAST_NAME, + IFCAP_WOL_MCAST_NAME, + IFCAP_WOL_MAGIC_NAME, + IFCAP_TOE4_NAME, + IFCAP_TOE6_NAME, + IFCAP_VLAN_HWFILTER_NAME, + IFCAP_NV_NAME, + IFCAP_VLAN_HWTSO_NAME, + IFCAP_LINKSTATE_NAME, + IFCAP_NETMAP_NAME, + IFCAP_RXCSUM_IPV6_NAME, + IFCAP_TXCSUM_IPV6_NAME, + IFCAP_HWSTATS_NAME, + IFCAP_TXRTLMT_NAME, + IFCAP_HWRXTSTMP_NAME, + IFCAP_MEXTPG_NAME, + IFCAP_TXTLS4_NAME, + IFCAP_TXTLS6_NAME, + IFCAP_VXLAN_HWCSUM_NAME, + IFCAP_VXLAN_HWTSO_NAME, + IFCAP_TXTLS_RTLMT_NAME, + IFCAP_RXTLS4_NAME, + IFCAP_RXTLS6_NAME, +}; +_Static_assert(sizeof(ifcap_bit_names) >= IFCAP_B_SIZE * sizeof(char *), + "ifcap bit names missing from ifcap_bit_names"); + +#endif diff --git a/sys/netlink/netlink_bitset.h b/sys/netlink/netlink_bitset.h new file mode 100644 index 000000000000..9a918bd20997 --- /dev/null +++ b/sys/netlink/netlink_bitset.h @@ -0,0 +1,57 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Alexander V. Chernikov + * + * 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. + */ + +/* + * Generic netlink message header and attributes + */ +#ifndef _NETLINK_NETLINK_BITSET_H_ +#define _NETLINK_NETLINK_BITSET_H_ + +#include + +/* Bitset type nested attributes */ +enum { + NLA_BITSET_UNSPEC, + NLA_BITSET_NOMASK = 1, /* flag: mask of valid bits not provided */ + NLA_BITSET_SIZE = 2, /* u32: max valid bit # */ + NLA_BITSET_BITS = 3, /* nested: array of NLA_BITSET_BIT */ + NLA_BITSET_VALUE = 4, /* binary: array of bit values */ + NLA_BITSET_MASK = 5, /* binary: array of valid bits */ + __NLA_BITSET_MAX, +}; +#define NLA_BITSET_MAX (__NLA_BITSET_MAX - 1) + +enum { + NLA_BITSET_BIT_UNSPEC, + NLA_BITSET_BIT_INDEX = 1, /* u32: index of the bit */ + NLA_BITSET_BIT_NAME = 2, /* string: bit description */ + NLA_BITSET_BIT_VALUE = 3, /* flag: provided if bit is set */ + __NLA_BITSET_BIT_MAX, +}; +#define NLA_BITSET_BIT_MAX (__NLA_BITSET_BIT_MAX - 1) + +#endif diff --git a/sys/netlink/netlink_route.h b/sys/netlink/netlink_route.h index 0c328d941bd5..ecdad83312de 100644 --- a/sys/netlink/netlink_route.h +++ b/sys/netlink/netlink_route.h @@ -33,6 +33,7 @@ #include #include +#include #include #include #include diff --git a/sys/netlink/netlink_snl.h b/sys/netlink/netlink_snl.h index 6d97c1afd4ee..0292725bd135 100644 --- a/sys/netlink/netlink_snl.h +++ b/sys/netlink/netlink_snl.h @@ -43,6 +43,7 @@ #include #include #include +#include #define _roundup2(x, y) (((x)+((y)-1))&(~((y)-1))) @@ -732,7 +733,7 @@ snl_attr_get_nla(struct snl_state *ss __unused, struct nlattr *nla, } static inline bool -snl_attr_dup_nla(struct snl_state *ss __unused, struct nlattr *nla, +snl_attr_dup_nla(struct snl_state *ss, struct nlattr *nla, const void *arg __unused, void *target) { void *ptr = snl_allocz(ss, nla->nla_len); @@ -773,6 +774,90 @@ snl_attr_dup_struct(struct snl_state *ss, struct nlattr *nla, return (false); } +struct snl_attr_bit { + uint32_t bit_index; + char *bit_name; + int bit_value; +}; + +struct snl_attr_bits { + uint32_t num_bits; + struct snl_attr_bit **bits; +}; + +#define _OUT(_field) offsetof(struct snl_attr_bit, _field) +static const struct snl_attr_parser _nla_p_bit[] = { + { .type = NLA_BITSET_BIT_INDEX, .off = _OUT(bit_index), .cb = snl_attr_get_uint32 }, + { .type = NLA_BITSET_BIT_NAME, .off = _OUT(bit_name), .cb = snl_attr_dup_string }, + { .type = NLA_BITSET_BIT_VALUE, .off = _OUT(bit_value), .cb = snl_attr_get_flag }, +}; +#undef _OUT +SNL_DECLARE_ATTR_PARSER_EXT(_nla_bit_parser, sizeof(struct snl_attr_bit), _nla_p_bit, NULL); + +struct snl_attr_bitset { + uint32_t nla_bitset_size; + uint32_t *nla_bitset_mask; + uint32_t *nla_bitset_value; + struct snl_attr_bits bits; +}; + +#define _OUT(_field) offsetof(struct snl_attr_bitset, _field) +static const struct snl_attr_parser _nla_p_bitset[] = { + { .type = NLA_BITSET_SIZE, .off = _OUT(nla_bitset_size), .cb = snl_attr_get_uint32 }, + { .type = NLA_BITSET_BITS, .off = _OUT(bits), .cb = snl_attr_get_parray, .arg = &_nla_bit_parser }, + { .type = NLA_BITSET_VALUE, .off = _OUT(nla_bitset_mask), .cb = snl_attr_dup_nla }, + { .type = NLA_BITSET_MASK, .off = _OUT(nla_bitset_value), .cb = snl_attr_dup_nla }, +}; + +static inline bool +_cb_p_bitset(struct snl_state *ss __unused, void *_target) +{ + struct snl_attr_bitset *target = _target; + + uint32_t sz_bytes = _roundup2(target->nla_bitset_size, 32) / 8; + + if (target->nla_bitset_mask != NULL) { + struct nlattr *nla = (struct nlattr *)target->nla_bitset_mask; + uint32_t data_len = NLA_DATA_LEN(nla); + + if (data_len != sz_bytes || _roundup2(data_len, 4) != data_len) + return (false); + target->nla_bitset_mask = (uint32_t *)NLA_DATA(nla); + } + + if (target->nla_bitset_value != NULL) { + struct nlattr *nla = (struct nlattr *)target->nla_bitset_value; + uint32_t data_len = NLA_DATA_LEN(nla); + + if (data_len != sz_bytes || _roundup2(data_len, 4) != data_len) + return (false); + target->nla_bitset_value = (uint32_t *)NLA_DATA(nla); + } + return (true); +} +#undef _OUT +SNL_DECLARE_ATTR_PARSER_EXT(_nla_bitset_parser, + sizeof(struct snl_attr_bitset), + _nla_p_bitset, _cb_p_bitset); + +/* + * Parses the compact bitset representation. + */ +static inline bool +snl_attr_get_bitset_c(struct snl_state *ss, struct nlattr *nla, + const void *arg __unused, void *_target) +{ + const struct snl_hdr_parser *p = &_nla_bitset_parser; + struct snl_attr_bitset *target = _target; + + /* Assumes target points to the beginning of the structure */ + if (!snl_parse_header(ss, NLA_DATA(nla), NLA_DATA_LEN(nla), p, _target)) + return (false); + if (target->nla_bitset_mask == NULL || target->nla_bitset_value == NULL) + return (false); + return (true); +} + static inline void snl_field_get_uint8(struct snl_state *ss __unused, void *src, void *target) { @@ -1184,6 +1269,7 @@ snl_send_msgs(struct snl_writer *nw) static const struct snl_hdr_parser *snl_all_core_parsers[] = { &snl_errmsg_parser, &snl_donemsg_parser, + &_nla_bit_parser, &_nla_bitset_parser, }; #endif diff --git a/sys/netlink/netlink_snl_route_parsers.h b/sys/netlink/netlink_snl_route_parsers.h index 1e9320a4559e..7e4bcad4010b 100644 --- a/sys/netlink/netlink_snl_route_parsers.h +++ b/sys/netlink/netlink_snl_route_parsers.h @@ -186,12 +186,14 @@ struct snl_parsed_link { uint32_t ifla_promiscuity; struct rtnl_link_stats64 *ifla_stats64; struct nlattr *iflaf_orig_hwaddr; + struct snl_attr_bitset iflaf_caps; }; #define _IN(_field) offsetof(struct ifinfomsg, _field) #define _OUT(_field) offsetof(struct snl_parsed_link, _field) static const struct snl_attr_parser _nla_p_link_fbsd[] = { { .type = IFLAF_ORIG_HWADDR, .off = _OUT(iflaf_orig_hwaddr), .cb = snl_attr_dup_nla }, + { .type = IFLAF_CAPS, .off = _OUT(iflaf_caps), .cb = snl_attr_get_bitset_c }, }; SNL_DECLARE_ATTR_PARSER(_link_fbsd_parser, _nla_p_link_fbsd); diff --git a/sys/netlink/route/iface.c b/sys/netlink/route/iface.c index 16bbe4d000cc..3d7f752fa613 100644 --- a/sys/netlink/route/iface.c +++ b/sys/netlink/route/iface.c @@ -253,6 +253,33 @@ dump_sa(struct nl_writer *nw, int attr, const struct sockaddr *sa) return (nlattr_add(nw, attr, addr_len, addr_data)); } +static bool +dump_iface_caps(struct nl_writer *nw, struct ifnet *ifp) +{ + int off = nlattr_add_nested(nw, IFLAF_CAPS); + uint32_t active_caps[roundup2(IFCAP_B_SIZE, 32) / 32] = {}; + uint32_t all_caps[roundup2(IFCAP_B_SIZE, 32) / 32] = {}; + + MPASS(sizeof(active_caps) >= 8); + MPASS(sizeof(all_caps) >= 8); + + if (off == 0) + return (false); + + active_caps[0] = (uint32_t)if_getcapabilities(ifp); + all_caps[0] = (uint32_t)if_getcapenable(ifp); + active_caps[1] = (uint32_t)if_getcapabilities2(ifp); + all_caps[1] = (uint32_t)if_getcapenable2(ifp); + + nlattr_add_u32(nw, NLA_BITSET_SIZE, IFCAP_B_SIZE); + nlattr_add(nw, NLA_BITSET_MASK, sizeof(all_caps), all_caps); + nlattr_add(nw, NLA_BITSET_VALUE, sizeof(active_caps), active_caps); + + nlattr_set_len(nw, off); + + return (true); +} + /* * Dumps interface state, properties and metrics. * @nw: message writer @@ -320,6 +347,7 @@ dump_iface(struct nl_writer *nw, struct ifnet *ifp, const struct nlmsghdr *hdr, int off = nlattr_add_nested(nw, IFLA_FREEBSD); if (off != 0) { get_hwaddr(nw, ifp); + dump_iface_caps(nw, ifp); nlattr_set_len(nw, off); } diff --git a/sys/netlink/route/interface.h b/sys/netlink/route/interface.h index 97270d8234a1..667bf2c96151 100644 --- a/sys/netlink/route/interface.h +++ b/sys/netlink/route/interface.h @@ -151,6 +151,7 @@ enum { IFLAF_UNSPEC = 0, IFLAF_ORIG_IFNAME = 1, /* string, original interface name at creation */ IFLAF_ORIG_HWADDR = 2, /* binary, original hardware address */ + IFLAF_CAPS = 3, /* bitset, interface capabilities */ __IFLAF_MAX }; #define IFLAF_MAX (__IFLAF_MAX - 1) From nobody Fri Jun 16 15:54:36 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjNyN3qdcz4dGsF; Fri, 16 Jun 2023 15:54:36 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjNyN3Pscz4KTG; Fri, 16 Jun 2023 15:54:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686930876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7MaV+v3P2t7Y71vqBVg7Y+wZfVmymebZQ9qDTwIQsjQ=; b=kaOttbPo47IRKA5OuQCq7vB/wZ7ijKt6lukljIESP7fMw9RVrMv7jjeuXMqxemowd9D7QQ 7nLh713z9eLbu/HCGKsBXCvnKdSYLL8T0QxlKWWYqGEQC522jvXTWYVZaZjXvD4c2D7YuN L7nEtoYdZzLGhCxPDG4EjQt6T7kXchbU0P3gVb5n2Vd8wAyUaahv9PMUwk8WKq9QbVHXng 03+dwtQZWkiqwT3W6KT/yWXZYl2oGa2XvuzBFOP2Wn87Fjb6HRZcfFYOPjLjGPb+LjT0uw yQAl524aOtUnFi+wZUywj7vxTgFziQiU1dxdHetoNYFnISW3ALnOb7ncPBeYQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686930876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7MaV+v3P2t7Y71vqBVg7Y+wZfVmymebZQ9qDTwIQsjQ=; b=HLJXKNNO6BeyViOJ/BPVnheytIt8SF9Q+pk8vxek+tEDn3QbMANH0dyHbKztjXuhro2lDX O4ysWFM06FlYwf93SYFvYZ+gaawUS7Uji5N6hamN7EcL838AWenZ/D7KlNfxWTU6Gt4kao nTzXAqJ3Gh14hp0PPiQOOS3OGvLC40g5Wvw+IyYGGT+6/YplZX3fPYMUThCdsrKNw5lLVA 0o4k6WILkAQ/s/MPr1Hb1unYxGGwe8cH7ig9tBcwNK4s73U+r2c53yrfRfn3GsaejAzly2 jnD5SzTo9VQBiyBsw1ZzVvV62H3IpDYnjV28xADLXf3WUsJ7T2t9vycFqEpVHg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686930876; a=rsa-sha256; cv=none; b=grDyb3jp2KmHtgWkMjGQe9PxTs/5enT3GanPlCApOGJ/DpgHbE3+kFa4KZ/qqyMQPhzFxR ZOAWev9bDudlNOLUezI3w5ixY/EFMzsUtEdBJ+Btl07+GZmIaYwTHBtjIElbLIiB1gHog4 DyZHyfs+5DytrboNo4CxvDQCg6kb2PZusJSmi5I33oHzE0Q3oONiHPNNG8rjXK2svalouU oa1wb2ivOn9R7q+nMGU9MnZq1d0DrS7cknFjZxYmcf/yXbMKBxfS+k1DzaKlo6E5rOuP09 lkZK+2ekrND28JbWXYCz54DWwOVSJQYtwCjh5YmGF8Qf9MuUnO3/jXVNgFyIMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjNyN2StJzYkw; Fri, 16 Jun 2023 15:54:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GFsard089902; Fri, 16 Jun 2023 15:54:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GFsaLQ089901; Fri, 16 Jun 2023 15:54:36 GMT (envelope-from git) Date: Fri, 16 Jun 2023 15:54:36 GMT Message-Id: <202306161554.35GFsaLQ089901@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 511b35866a8a - main - ifnet: fix if_strings.h build check List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 511b35866a8af69998f37be3b67859daddf5824e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=511b35866a8af69998f37be3b67859daddf5824e commit 511b35866a8af69998f37be3b67859daddf5824e Author: Alexander V. Chernikov AuthorDate: 2023-06-16 15:54:29 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 15:54:29 +0000 ifnet: fix if_strings.h build check --- sys/net/if_strings.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/net/if_strings.h b/sys/net/if_strings.h index 95d85f5370ed..bea15cfa9de5 100644 --- a/sys/net/if_strings.h +++ b/sys/net/if_strings.h @@ -100,7 +100,10 @@ static const char *ifcap_bit_names[] = { IFCAP_RXTLS4_NAME, IFCAP_RXTLS6_NAME, }; + +#ifdef IFCAP_B_SIZE _Static_assert(sizeof(ifcap_bit_names) >= IFCAP_B_SIZE * sizeof(char *), "ifcap bit names missing from ifcap_bit_names"); +#endif #endif From nobody Fri Jun 16 16:00:05 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjP4k0Hh0z4dJX2; Fri, 16 Jun 2023 16:00:06 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjP4k053hz4LpF; Fri, 16 Jun 2023 16:00:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686931206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Gll9OBto39ORilkZMi9OqjOpeiFR2dvNtYBsH3UJcjc=; b=fpIqCryTh21W5EpkleankEApZ/y6uz8FwuWzdhdq96qJDGGyb28hqRkpVXOGW576yBLt7H m20W+jrJvfBzU3Gn3rTpY9HlyzhxIbEnLAhD6AAjC1+EmyXgZ0elj7aDO+95i7xtDhK9SL keplu+yhMMz3ML682S3oxUwJ8MMPSwz3HPDTCJF39vOR0seMQ9+7SLSzD2tDZunjnn4viQ vG5ljnfKwEh5bKKNuGJVN8xEcuiq9mdDpkY9HGpaH4PZldhjP+u7ScgVaQ/AznubmICXYP +hOVrniCJ7C00nnURKQK3v2fktJt5/FBMnPF03jkBBOsH8VWvr4Bp4O2DYAxaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686931206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Gll9OBto39ORilkZMi9OqjOpeiFR2dvNtYBsH3UJcjc=; b=bJabM7GuNj1BLfic7WZdCqcVq5RvKqJhzC3Ev3NMmm8Emi/laD/7hnvMq3xQ+hWf3ZZH9E 0w9liepebYrhw1mjFIW+I/0pODw/lUmG+VnZOoruU1uo3jI8V2wksswbb821fMx7VM0s6i 0OcezO1BBqOHcNGkr43Bo6cspCoQuVhC5Svy5UJ3VpZV3L1bvnLGbBdB1cIeILB4u4pkez MOEAm/91pMTm93J/JsTRlQ52ZVsrcS+IdccJtW6xgJSqkxYL0K/EgaXbylN7/+fyE5lZUK GqOX7ZI+GyvJ2eUd+NCQTS38EH92PqqJvSr3Tyt0vPQZunWZtLLUoXOhpkBRcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686931206; a=rsa-sha256; cv=none; b=q3FHGudXwNJUCqUtk9GayI2RKamEaOr/GJ4T7mik7uB96tDDVbf9r1id/6ACNf0BlhJv8Y kr/vhM0lKc7LWM3t4xkxX7x0LafCGRz8SdGeFk4/SbvvBr0pjCAs+SU2WXvb/NXa8z5trR 3oka1AJGThmS8Gam83r/nD8P7M6NTUy4r6UFbW/FzDcXRLfJ9B29mWVC4tZN/ohG/b5mFD frH3ghM7Qu1ckbTho2v28+gnrwgKJqK0DquA9GjuLG2WNeZjJpBnpQBfG7/gSro6r9090G lphfQrQKIkfTl9XVRWLMzdTxteGGNYuIj+LWwgpaWjCaVez+/Hy4UWGv6GqLyA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjP4j6GqQzZFY; Fri, 16 Jun 2023 16:00:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GG05Bx094469; Fri, 16 Jun 2023 16:00:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GG05wu094464; Fri, 16 Jun 2023 16:00:05 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:00:05 GMT Message-Id: <202306161600.35GG05wu094464@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 793793553558 - main - netlink: convert to IfAPI. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 793793553558bc0b0b0e731e33b1608e685fe72b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=793793553558bc0b0b0e731e33b1608e685fe72b commit 793793553558bc0b0b0e731e33b1608e685fe72b Author: Alexander V. Chernikov AuthorDate: 2023-06-16 15:58:57 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-06-16 15:59:34 +0000 netlink: convert to IfAPI. Convert to IfAPI everything except `IF_AFDATA_WLOCK` usage in neigh.c. Reviewed By: jhibbits Differential Revision: https://reviews.freebsd.org/D40577 --- sys/net/if.c | 50 +++++++++++++++ sys/net/if_var.h | 11 ++++ sys/netlink/route/iface.c | 124 ++++++++++++++++++++------------------ sys/netlink/route/iface_drivers.c | 4 +- sys/netlink/route/neigh.c | 29 +++++---- sys/netlink/route/nexthop.c | 12 ++-- sys/netlink/route/rt.c | 4 +- 7 files changed, 154 insertions(+), 80 deletions(-) diff --git a/sys/net/if.c b/sys/net/if.c index c5f0a65721fc..2d3d85ca5ee8 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -4327,6 +4327,12 @@ if_getidxgen(const if_t ifp) return (ifp->if_idxgen); } +const char * +if_getdescr(if_t ifp) +{ + return (ifp->if_description); +} + void if_setdescr(if_t ifp, char *descrbuf) { @@ -4357,6 +4363,12 @@ if_getalloctype(const if_t ifp) return (ifp->if_alloctype); } +void +if_setlastchange(if_t ifp) +{ + getmicrotime(&ifp->if_lastchange); +} + /* * This is largely undesirable because it ties ifnet to a device, but does * provide flexiblity for an embedded product vendor. Should be used with @@ -4714,6 +4726,38 @@ if_foreach_addr_type(if_t ifp, int type, if_addr_cb_t cb, void *cb_arg) return (count); } +struct ifaddr * +ifa_iter_start(if_t ifp, struct ifa_iter *iter) +{ + struct ifaddr *ifa; + + NET_EPOCH_ASSERT(); + + bzero(iter, sizeof(*iter)); + ifa = CK_STAILQ_FIRST(&ifp->if_addrhead); + if (ifa != NULL) + iter->context[0] = CK_STAILQ_NEXT(ifa, ifa_link); + else + iter->context[0] = NULL; + return (ifa); +} + +struct ifaddr * +ifa_iter_next(struct ifa_iter *iter) +{ + struct ifaddr *ifa = iter->context[0]; + + if (ifa != NULL) + iter->context[0] = CK_STAILQ_NEXT(ifa, ifa_link); + return (ifa); +} + +void +ifa_iter_finish(struct ifa_iter *iter) +{ + /* Nothing to do here for now. */ +} + int if_setsoftc(if_t ifp, void *softc) { @@ -4825,6 +4869,12 @@ if_resolvemulti(if_t ifp, struct sockaddr **srcs, struct sockaddr *dst) return (ifp->if_resolvemulti(ifp, srcs, dst)); } +int +if_ioctl(if_t ifp, u_long cmd, void *data) +{ + return (ifp->if_ioctl(ifp, cmd, data)); +} + struct mbuf * if_dequeue(if_t ifp) { diff --git a/sys/net/if_var.h b/sys/net/if_var.h index 13a82d772c37..89d1c0c039c0 100644 --- a/sys/net/if_var.h +++ b/sys/net/if_var.h @@ -573,9 +573,11 @@ void if_setdname(if_t ifp, const char *name); const char *if_name(if_t ifp); int if_setname(if_t ifp, const char *name); int if_rename(if_t ifp, char *new_name); +const char *if_getdescr(if_t ifp); void if_setdescr(if_t ifp, char *descrbuf); char *if_allocdescr(size_t sz, int malloc_flag); void if_freedescr(char *descrbuf); +void if_setlastchange(if_t ifp); int if_getalloctype(const if_t ifp); int if_gettype(const if_t ifp); int if_setdev(if_t ifp, void *dev); @@ -633,6 +635,7 @@ void if_etherbpfmtap(if_t ifp, struct mbuf *m); void if_vlancap(if_t ifp); int if_transmit(if_t ifp, struct mbuf *m); void if_init(if_t ifp, void *ctx); +int if_ioctl(if_t ifp, u_long cmd, void *data); int if_resolvemulti(if_t ifp, struct sockaddr **, struct sockaddr *); uint64_t if_getcounter(if_t ifp, ift_counter counter); struct label *if_getmaclabel(if_t ifp); @@ -677,6 +680,14 @@ if_t if_iter_start(struct if_iter *); if_t if_iter_next(struct if_iter *); void if_iter_finish(struct if_iter *); +struct ifa_iter { + void *context[4]; +}; + +struct ifaddr *ifa_iter_start(if_t ifp, struct ifa_iter *iter); +struct ifaddr *ifa_iter_next(struct ifa_iter *iter); +void ifa_iter_finish(struct ifa_iter *iter); + /* Functions */ void if_setinitfn(if_t ifp, if_init_fn_t); void if_setinputfn(if_t ifp, if_input_fn_t); diff --git a/sys/netlink/route/iface.c b/sys/netlink/route/iface.c index 3d7f752fa613..0874b73a5c98 100644 --- a/sys/netlink/route/iface.c +++ b/sys/netlink/route/iface.c @@ -120,11 +120,11 @@ struct if_state { }; static void -get_operstate_ether(struct ifnet *ifp, struct if_state *pstate) +get_operstate_ether(if_t ifp, struct if_state *pstate) { struct ifmediareq ifmr = {}; int error; - error = (*ifp->if_ioctl)(ifp, SIOCGIFMEDIA, (void *)&ifmr); + error = if_ioctl(ifp, SIOCGIFMEDIA, (void *)&ifmr); if (error != 0) { NL_LOG(LOG_DEBUG, "error calling SIOCGIFMEDIA on %s: %d", @@ -136,7 +136,7 @@ get_operstate_ether(struct ifnet *ifp, struct if_state *pstate) case IFM_ETHER: if (ifmr.ifm_status & IFM_ACTIVE) { pstate->ifla_carrier = 1; - if (ifp->if_flags & IFF_MONITOR) + if (if_getflags(ifp) & IFF_MONITOR) pstate->ifla_operstate = IF_OPER_DORMANT; else pstate->ifla_operstate = IF_OPER_UP; @@ -146,7 +146,7 @@ get_operstate_ether(struct ifnet *ifp, struct if_state *pstate) } static bool -get_stats(struct nl_writer *nw, struct ifnet *ifp) +get_stats(struct nl_writer *nw, if_t ifp) { struct rtnl_link_stats64 *stats; @@ -158,34 +158,34 @@ get_stats(struct nl_writer *nw, struct ifnet *ifp) nla->nla_len = nla_len; stats = (struct rtnl_link_stats64 *)(nla + 1); - stats->rx_packets = ifp->if_get_counter(ifp, IFCOUNTER_IPACKETS); - stats->tx_packets = ifp->if_get_counter(ifp, IFCOUNTER_OPACKETS); - stats->rx_bytes = ifp->if_get_counter(ifp, IFCOUNTER_IBYTES); - stats->tx_bytes = ifp->if_get_counter(ifp, IFCOUNTER_OBYTES); - stats->rx_errors = ifp->if_get_counter(ifp, IFCOUNTER_IERRORS); - stats->tx_errors = ifp->if_get_counter(ifp, IFCOUNTER_OERRORS); - stats->rx_dropped = ifp->if_get_counter(ifp, IFCOUNTER_IQDROPS); - stats->tx_dropped = ifp->if_get_counter(ifp, IFCOUNTER_OQDROPS); - stats->multicast = ifp->if_get_counter(ifp, IFCOUNTER_IMCASTS); - stats->rx_nohandler = ifp->if_get_counter(ifp, IFCOUNTER_NOPROTO); + stats->rx_packets = if_getcounter(ifp, IFCOUNTER_IPACKETS); + stats->tx_packets = if_getcounter(ifp, IFCOUNTER_OPACKETS); + stats->rx_bytes = if_getcounter(ifp, IFCOUNTER_IBYTES); + stats->tx_bytes = if_getcounter(ifp, IFCOUNTER_OBYTES); + stats->rx_errors = if_getcounter(ifp, IFCOUNTER_IERRORS); + stats->tx_errors = if_getcounter(ifp, IFCOUNTER_OERRORS); + stats->rx_dropped = if_getcounter(ifp, IFCOUNTER_IQDROPS); + stats->tx_dropped = if_getcounter(ifp, IFCOUNTER_OQDROPS); + stats->multicast = if_getcounter(ifp, IFCOUNTER_IMCASTS); + stats->rx_nohandler = if_getcounter(ifp, IFCOUNTER_NOPROTO); return (true); } static void -get_operstate(struct ifnet *ifp, struct if_state *pstate) +get_operstate(if_t ifp, struct if_state *pstate) { pstate->ifla_operstate = IF_OPER_UNKNOWN; pstate->ifla_carrier = 0; /* no carrier */ - switch (ifp->if_type) { + switch (if_gettype(ifp)) { case IFT_ETHER: case IFT_L2VLAN: get_operstate_ether(ifp, pstate); break; default: /* Map admin state to the operstate */ - if (ifp->if_flags & IFF_UP) { + if (if_getflags(ifp) & IFF_UP) { pstate->ifla_operstate = IF_OPER_UP; pstate->ifla_carrier = 1; } else @@ -195,7 +195,7 @@ get_operstate(struct ifnet *ifp, struct if_state *pstate) } static void -get_hwaddr(struct nl_writer *nw, struct ifnet *ifp) +get_hwaddr(struct nl_writer *nw, if_t ifp) { struct ifreq ifr = {}; @@ -206,9 +206,9 @@ get_hwaddr(struct nl_writer *nw, struct ifnet *ifp) } static unsigned -ifp_flags_to_netlink(const struct ifnet *ifp) +ifp_flags_to_netlink(const if_t ifp) { - return (ifp->if_flags | ifp->if_drv_flags); + return (if_getflags(ifp) | if_getdrvflags(ifp)); } #define LLADDR_CONST(s) ((const void *)((s)->sdl_data + (s)->sdl_nlen)) @@ -290,7 +290,7 @@ dump_iface_caps(struct nl_writer *nw, struct ifnet *ifp) * This function is called without epoch and MAY sleep. */ static bool -dump_iface(struct nl_writer *nw, struct ifnet *ifp, const struct nlmsghdr *hdr, +dump_iface(struct nl_writer *nw, if_t ifp, const struct nlmsghdr *hdr, int if_flags_mask) { struct ifinfomsg *ifinfo; @@ -303,8 +303,8 @@ dump_iface(struct nl_writer *nw, struct ifnet *ifp, const struct nlmsghdr *hdr, ifinfo = nlmsg_reserve_object(nw, struct ifinfomsg); ifinfo->ifi_family = AF_UNSPEC; ifinfo->__ifi_pad = 0; - ifinfo->ifi_type = ifp->if_type; - ifinfo->ifi_index = ifp->if_index; + ifinfo->ifi_type = if_gettype(ifp); + ifinfo->ifi_index = if_getindex(ifp); ifinfo->ifi_flags = ifp_flags_to_netlink(ifp); ifinfo->ifi_change = if_flags_mask; @@ -328,20 +328,20 @@ dump_iface(struct nl_writer *nw, struct ifnet *ifp, const struct nlmsghdr *hdr, dump_sa(nw, IFLA_ADDRESS, ifa->ifa_addr); } - if ((ifp->if_broadcastaddr != NULL)) { - nlattr_add(nw, IFLA_BROADCAST, ifp->if_addrlen, - ifp->if_broadcastaddr); + if ((if_getbroadcastaddr(ifp) != NULL)) { + nlattr_add(nw, IFLA_BROADCAST, if_getaddrlen(ifp), + if_getbroadcastaddr(ifp)); } - nlattr_add_u32(nw, IFLA_MTU, ifp->if_mtu); + nlattr_add_u32(nw, IFLA_MTU, if_getmtu(ifp)); /* nlattr_add_u32(nw, IFLA_MIN_MTU, 60); nlattr_add_u32(nw, IFLA_MAX_MTU, 9000); nlattr_add_u32(nw, IFLA_GROUP, 0); */ - if (ifp->if_description != NULL) - nlattr_add_string(nw, IFLA_IFALIAS, ifp->if_description); + if (if_getdescr(ifp) != NULL) + nlattr_add_string(nw, IFLA_IFALIAS, if_getdescr(ifp)); /* Store FreeBSD-specific attributes */ int off = nlattr_add_nested(nw, IFLA_FREEBSD); @@ -354,7 +354,7 @@ dump_iface(struct nl_writer *nw, struct ifnet *ifp, const struct nlmsghdr *hdr, get_stats(nw, ifp); - uint32_t val = (ifp->if_flags & IFF_PROMISC) != 0; + uint32_t val = (if_getflags(ifp) & IFF_PROMISC) != 0; nlattr_add_u32(nw, IFLA_PROMISCUITY, val); ifc_dump_ifp_nl(ifp, nw); @@ -412,13 +412,13 @@ static const struct nlattr_parser nla_p_if[] = { NL_DECLARE_STRICT_PARSER(ifmsg_parser, struct ifinfomsg, check_ifmsg, nlf_p_if, nla_p_if); static bool -match_iface(struct ifnet *ifp, void *_arg) +match_iface(if_t ifp, void *_arg) { struct nl_parsed_link *attrs = (struct nl_parsed_link *)_arg; - if (attrs->ifi_index != 0 && attrs->ifi_index != ifp->if_index) + if (attrs->ifi_index != 0 && attrs->ifi_index != if_getindex(ifp)) return (false); - if (attrs->ifi_type != 0 && attrs->ifi_index != ifp->if_type) + if (attrs->ifi_type != 0 && attrs->ifi_index != if_gettype(ifp)) return (false); if (attrs->ifla_ifname != NULL && strcmp(attrs->ifla_ifname, if_name(ifp))) return (false); @@ -428,7 +428,7 @@ match_iface(struct ifnet *ifp, void *_arg) } static int -dump_cb(struct ifnet *ifp, void *_arg) +dump_cb(if_t ifp, void *_arg) { struct netlink_walkargs *wa = (struct netlink_walkargs *)_arg; if (!dump_iface(wa->nw, ifp, &wa->hdr, 0)) @@ -448,7 +448,7 @@ static int rtnl_handle_getlink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt) { struct epoch_tracker et; - struct ifnet *ifp; + if_t ifp; int error = 0; struct nl_parsed_link attrs = {}; @@ -529,7 +529,7 @@ static int rtnl_handle_dellink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt) { struct epoch_tracker et; - struct ifnet *ifp; + if_t ifp; int error; struct nl_parsed_link attrs = {}; @@ -609,7 +609,7 @@ static int modify_link(struct nlmsghdr *hdr, struct nl_parsed_link *lattrs, struct nlattr_bmask *bm, struct nlpcb *nlp, struct nl_pstate *npt) { - struct ifnet *ifp = NULL; + if_t ifp = NULL; struct epoch_tracker et; if (lattrs->ifi_index == 0 && lattrs->ifla_ifname == NULL) { @@ -948,7 +948,7 @@ export_cache_info(struct nl_writer *nw, struct ifaddr *ifa) ('IFA_CACHEINFO', {'ifa_preferred': 4294967295, 'ifa_valid': 4294967295, 'cstamp': 63745746, 'tstamp': 63745746})], */ static bool -dump_iface_addr(struct nl_writer *nw, struct ifnet *ifp, struct ifaddr *ifa, +dump_iface_addr(struct nl_writer *nw, if_t ifp, struct ifaddr *ifa, const struct nlmsghdr *hdr) { struct ifaddrmsg *ifamsg; @@ -966,9 +966,9 @@ dump_iface_addr(struct nl_writer *nw, struct ifnet *ifp, struct ifaddr *ifa, ifamsg->ifa_prefixlen = get_sa_plen(ifa->ifa_netmask); ifamsg->ifa_flags = 0; // ifa_flags is useless ifamsg->ifa_scope = ifa_get_scope(ifa); - ifamsg->ifa_index = ifp->if_index; + ifamsg->ifa_index = if_getindex(ifp); - if ((ifp->if_flags & IFF_POINTOPOINT) && sa_dst != NULL && sa_dst->sa_family != 0) { + if ((if_getflags(ifp) & IFF_POINTOPOINT) && sa_dst != NULL && sa_dst->sa_family != 0) { /* P2P interface may have IPv6 LL with no dst address */ dump_sa(nw, IFA_ADDRESS, sa_dst); dump_sa(nw, IFA_LOCAL, sa); @@ -983,7 +983,7 @@ dump_iface_addr(struct nl_writer *nw, struct ifnet *ifp, struct ifaddr *ifa, dump_sa(nw, IFA_LOCAL, sa); #endif } - if (ifp->if_flags & IFF_BROADCAST) + if (if_getflags(ifp) & IFF_BROADCAST) dump_sa(nw, IFA_BROADCAST, ifa->ifa_broadaddr); nlattr_add_string(nw, IFA_LABEL, if_name(ifp)); @@ -1027,11 +1027,13 @@ enomem: } static int -dump_iface_addrs(struct netlink_walkargs *wa, struct ifnet *ifp) +dump_iface_addrs(struct netlink_walkargs *wa, if_t ifp) { struct ifaddr *ifa; + struct ifa_iter it; + int error = 0; - CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { + for (ifa = ifa_iter_start(ifp, &it); ifa != NULL; ifa = ifa_iter_next(&it)) { if (wa->family != 0 && wa->family != ifa->ifa_addr->sa_family) continue; if (ifa->ifa_addr->sa_family == AF_LINK) @@ -1039,18 +1041,21 @@ dump_iface_addrs(struct netlink_walkargs *wa, struct ifnet *ifp) if (prison_if(wa->cred, ifa->ifa_addr) != 0) continue; wa->count++; - if (!dump_iface_addr(wa->nw, ifp, ifa, &wa->hdr)) - return (ENOMEM); + if (!dump_iface_addr(wa->nw, ifp, ifa, &wa->hdr)) { + error = ENOMEM; + break; + } wa->dumped++; } + ifa_iter_finish(&it); - return (0); + return (error); } static int rtnl_handle_getaddr(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt) { - struct ifnet *ifp; + if_t ifp; int error = 0; struct nl_parsed_ifa attrs = {}; @@ -1078,11 +1083,14 @@ rtnl_handle_getaddr(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *n else error = dump_iface_addrs(&wa, ifp); } else { - CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { + struct if_iter it; + + for (ifp = if_iter_start(&it); ifp != NULL; ifp = if_iter_next(&it)) { error = dump_iface_addrs(&wa, ifp); if (error != 0) break; } + if_iter_finish(&it); } NL_LOG(LOG_DEBUG2, "End dump, iterated %d dumped %d", wa.count, wa.dumped); @@ -1098,7 +1106,7 @@ rtnl_handle_getaddr(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *n #ifdef INET static int handle_newaddr_inet(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, - struct ifnet *ifp, struct nlpcb *nlp, struct nl_pstate *npt) + if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt) { int plen = attrs->ifa_prefixlen; int if_flags = if_getflags(ifp); @@ -1182,7 +1190,7 @@ handle_newaddr_inet(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, static int handle_deladdr_inet(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, - struct ifnet *ifp, struct nlpcb *nlp, struct nl_pstate *npt) + if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt) { struct sockaddr_in *addr = (struct sockaddr_in *)attrs->ifa_local; @@ -1203,7 +1211,7 @@ handle_deladdr_inet(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, #ifdef INET6 static int handle_newaddr_inet6(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, - struct ifnet *ifp, struct nlpcb *nlp, struct nl_pstate *npt) + if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt) { struct sockaddr_in6 *addr, *dst; @@ -1266,7 +1274,7 @@ handle_newaddr_inet6(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, static int handle_deladdr_inet6(struct nlmsghdr *hdr, struct nl_parsed_ifa *attrs, - struct ifnet *ifp, struct nlpcb *nlp, struct nl_pstate *npt) + if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt) { struct sockaddr_in6 *addr = (struct sockaddr_in6 *)attrs->ifa_local; @@ -1297,7 +1305,7 @@ rtnl_handle_addr(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt) return (error); NET_EPOCH_ENTER(et); - struct ifnet *ifp = ifnet_byindex_ref(attrs.ifa_index); + if_t ifp = ifnet_byindex_ref(attrs.ifa_index); NET_EPOCH_EXIT(et); if (ifp == NULL) { @@ -1386,7 +1394,7 @@ rtnl_handle_ifaddr(void *arg __unused, struct ifaddr *ifa, int cmd) } static void -rtnl_handle_ifevent(struct ifnet *ifp, int nlmsg_type, int if_flags_mask) +rtnl_handle_ifevent(if_t ifp, int nlmsg_type, int if_flags_mask) { struct nlmsghdr hdr = { .nlmsg_type = nlmsg_type }; struct nl_writer nw = {}; @@ -1403,28 +1411,28 @@ rtnl_handle_ifevent(struct ifnet *ifp, int nlmsg_type, int if_flags_mask) } static void -rtnl_handle_ifattach(void *arg, struct ifnet *ifp) +rtnl_handle_ifattach(void *arg, if_t ifp) { NL_LOG(LOG_DEBUG2, "ifnet %s", if_name(ifp)); rtnl_handle_ifevent(ifp, NL_RTM_NEWLINK, 0); } static void -rtnl_handle_ifdetach(void *arg, struct ifnet *ifp) +rtnl_handle_ifdetach(void *arg, if_t ifp) { NL_LOG(LOG_DEBUG2, "ifnet %s", if_name(ifp)); rtnl_handle_ifevent(ifp, NL_RTM_DELLINK, 0); } static void -rtnl_handle_iflink(void *arg, struct ifnet *ifp) +rtnl_handle_iflink(void *arg, if_t ifp) { NL_LOG(LOG_DEBUG2, "ifnet %s", if_name(ifp)); rtnl_handle_ifevent(ifp, NL_RTM_NEWLINK, 0); } void -rtnl_handle_ifnet_event(struct ifnet *ifp, int if_flags_mask) +rtnl_handle_ifnet_event(if_t ifp, int if_flags_mask) { NL_LOG(LOG_DEBUG2, "ifnet %s", if_name(ifp)); rtnl_handle_ifevent(ifp, NL_RTM_NEWLINK, if_flags_mask); diff --git a/sys/netlink/route/iface_drivers.c b/sys/netlink/route/iface_drivers.c index 1e839695d960..a0f9ef925a04 100644 --- a/sys/netlink/route/iface_drivers.c +++ b/sys/netlink/route/iface_drivers.c @@ -77,7 +77,7 @@ _nl_modify_ifp_generic(struct ifnet *ifp, struct nl_parsed_link *lattrs, memcpy(buf, lattrs->ifla_ifalias, len); if_setdescr(ifp, buf); - getmicrotime(&ifp->if_lastchange); + if_setlastchange(ifp); } else { nlmsg_report_err_msg(npt, "Not enough privileges to set descr"); return (EPERM); @@ -122,7 +122,7 @@ void _nl_store_ifp_cookie(struct nl_pstate *npt, struct ifnet *ifp) { int ifname_len = strlen(if_name(ifp)); - uint32_t ifindex = (uint32_t)ifp->if_index; + uint32_t ifindex = (uint32_t)if_getindex(ifp); int nla_len = sizeof(struct nlattr) * 3 + sizeof(ifindex) + NL_ITEM_ALIGN(ifname_len + 1); diff --git a/sys/netlink/route/neigh.c b/sys/netlink/route/neigh.c index 74a162bb9464..55749fcbe761 100644 --- a/sys/netlink/route/neigh.c +++ b/sys/netlink/route/neigh.c @@ -39,6 +39,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include #include #include #include @@ -62,7 +64,7 @@ struct netlink_walkargs { struct nl_writer *nw; struct nlmsghdr hdr; struct nlpcb *so; - struct ifnet *ifp; + if_t ifp; int family; int error; int count; @@ -156,7 +158,7 @@ dump_lle_locked(struct llentry *lle, void *arg) ndm = nlmsg_reserve_object(nw, struct ndmsg); ndm->ndm_family = wa->family; - ndm->ndm_ifindex = wa->ifp->if_index; + ndm->ndm_ifindex = if_getindex(wa->ifp); ndm->ndm_state = lle_state_to_nl_state(wa->family, lle); ndm->ndm_flags = lle_flags_to_nl_flags(lle); @@ -178,7 +180,7 @@ dump_lle_locked(struct llentry *lle, void *arg) if (lle->r_flags & RLLE_VALID) { /* Has L2 */ - int addrlen = wa->ifp->if_addrlen; + int addrlen = if_getaddrlen(wa->ifp); nlattr_add(nw, NDA_LLADDR, addrlen, lle->ll_addr); } @@ -226,7 +228,7 @@ dump_llt(struct lltable *llt, struct netlink_walkargs *wa) } static int -dump_llts_iface(struct netlink_walkargs *wa, struct ifnet *ifp, int family) +dump_llts_iface(struct netlink_walkargs *wa, if_t ifp, int family) { int error = 0; @@ -248,21 +250,24 @@ dump_llts_iface(struct netlink_walkargs *wa, struct ifnet *ifp, int family) } static int -dump_llts(struct netlink_walkargs *wa, struct ifnet *ifp, int family) +dump_llts(struct netlink_walkargs *wa, if_t ifp, int family) { - NL_LOG(LOG_DEBUG, "Start dump ifp=%s family=%d", ifp ? if_name(ifp) : "NULL", family); + NL_LOG(LOG_DEBUG2, "Start dump ifp=%s family=%d", ifp ? if_name(ifp) : "NULL", family); wa->hdr.nlmsg_flags |= NLM_F_MULTI; if (ifp != NULL) { dump_llts_iface(wa, ifp, family); } else { - CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { + struct if_iter it; + + for (ifp = if_iter_start(&it); ifp != NULL; ifp = if_iter_next(&it)) { dump_llts_iface(wa, ifp, family); } + if_iter_finish(&it); } - NL_LOG(LOG_DEBUG, "End dump, iterated %d dumped %d", wa->count, wa->dumped); + NL_LOG(LOG_DEBUG2, "End dump, iterated %d dumped %d", wa->count, wa->dumped); if (!nlmsg_end_dump(wa->nw, wa->error, &wa->hdr)) { NL_LOG(LOG_DEBUG, "Unable to add new message"); @@ -273,7 +278,7 @@ dump_llts(struct netlink_walkargs *wa, struct ifnet *ifp, int family) } static int -get_lle(struct netlink_walkargs *wa, struct ifnet *ifp, int family, struct sockaddr *dst) +get_lle(struct netlink_walkargs *wa, if_t ifp, int family, struct sockaddr *dst) { struct lltable *llt = lltable_get(ifp, family); if (llt == NULL) @@ -290,7 +295,7 @@ get_lle(struct netlink_walkargs *wa, struct ifnet *ifp, int family, struct socka } static void -set_scope6(struct sockaddr *sa, struct ifnet *ifp) +set_scope6(struct sockaddr *sa, if_t ifp) { #ifdef INET6 if (sa != NULL && sa->sa_family == AF_INET6 && ifp != NULL) { @@ -382,7 +387,7 @@ rtnl_handle_newneigh(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate * return (EINVAL); } - int addrlen = attrs.nda_ifp->if_addrlen; + int addrlen = if_getaddrlen(attrs.nda_ifp); if (attrs.nda_lladdr->nla_len != sizeof(struct nlattr) + addrlen) { NLMSG_REPORT_ERR_MSG(npt, "NDA_LLADDR address length (%d) is different from expected (%d)", @@ -552,7 +557,7 @@ static const struct rtnl_cmd_handler cmd_handlers[] = { static void rtnl_lle_event(void *arg __unused, struct llentry *lle, int evt) { - struct ifnet *ifp; + if_t ifp; int family; LLE_WLOCK_ASSERT(lle); diff --git a/sys/netlink/route/nexthop.c b/sys/netlink/route/nexthop.c index d1652cfb1508..fd3ef021a042 100644 --- a/sys/netlink/route/nexthop.c +++ b/sys/netlink/route/nexthop.c @@ -455,7 +455,7 @@ dump_nhop(const struct nhop_object *nh, uint32_t uidx, struct nlmsghdr *hdr, nlattr_add_flag(nw, NHA_BLACKHOLE); goto done; } - nlattr_add_u32(nw, NHA_OIF, nh->nh_ifp->if_index); + nlattr_add_u32(nw, NHA_OIF, if_getindex(nh->nh_ifp)); switch (nh->gw_sa.sa_family) { #ifdef INET @@ -476,7 +476,7 @@ dump_nhop(const struct nhop_object *nh, uint32_t uidx, struct nlmsghdr *hdr, int off = nlattr_add_nested(nw, NHA_FREEBSD); if (off != 0) { - nlattr_add_u32(nw, NHAF_AIF, nh->nh_aifp->if_index); + nlattr_add_u32(nw, NHAF_AIF, if_getindex(nh->nh_aifp)); if (uidx == 0) { nlattr_add_u32(nw, NHAF_KID, nhop_get_idx(nh)); @@ -679,7 +679,7 @@ nlattr_get_nhg(struct nlattr *nla, struct nl_pstate *npt, const void *arg, void } static void -set_scope6(struct sockaddr *sa, struct ifnet *ifp) +set_scope6(struct sockaddr *sa, if_t ifp) { #ifdef INET6 if (sa != NULL && sa->sa_family == AF_INET6 && ifp != NULL) { @@ -799,7 +799,7 @@ newnhg(struct unhop_ctl *ctl, struct nl_parsed_nhop *attrs, struct user_nhop *un * Returns 0 on success or errno. */ int -nl_set_nexthop_gw(struct nhop_object *nh, struct sockaddr *gw, struct ifnet *ifp, +nl_set_nexthop_gw(struct nhop_object *nh, struct sockaddr *gw, if_t ifp, struct nl_pstate *npt) { #ifdef INET6 @@ -810,7 +810,7 @@ nl_set_nexthop_gw(struct nhop_object *nh, struct sockaddr *gw, struct ifnet *ifp NLMSG_REPORT_ERR_MSG(npt, "interface not set"); return (EINVAL); } - in6_set_unicast_scopeid(&gw6->sin6_addr, ifp->if_index); + in6_set_unicast_scopeid(&gw6->sin6_addr, if_getindex(ifp)); } } #endif @@ -908,7 +908,7 @@ rtnl_handle_newnhop(struct nlmsghdr *hdr, struct nlpcb *nlp, } } - NL_LOG(LOG_DEBUG, "IFINDEX %d", attrs.nha_oif ? attrs.nha_oif->if_index : 0); + NL_LOG(LOG_DEBUG, "IFINDEX %d", attrs.nha_oif ? if_getindex(attrs.nha_oif) : 0); unhop = malloc(sizeof(struct user_nhop), M_NETLINK, M_NOWAIT | M_ZERO); if (unhop == NULL) { diff --git a/sys/netlink/route/rt.c b/sys/netlink/route/rt.c index e194b8f009c1..70101680e2c0 100644 --- a/sys/netlink/route/rt.c +++ b/sys/netlink/route/rt.c @@ -201,7 +201,7 @@ dump_rc_nhg(struct nl_writer *nw, const struct nhgrp_object *nhg, struct rtmsg * if (rtnh == NULL) return; rtnh->rtnh_flags = 0; - rtnh->rtnh_ifindex = wn[i].nh->nh_ifp->if_index; + rtnh->rtnh_ifindex = if_getindex(wn[i].nh->nh_ifp); rtnh->rtnh_hops = wn[i].weight; dump_rc_nhop_gw(nw, wn[i].nh); uint32_t rtflags = nhop_get_rtflags(wn[i].nh); @@ -256,7 +256,7 @@ dump_rc_nhop(struct nl_writer *nw, const struct route_nhop_data *rnd, struct rtm nlattr_add_u32(nw, NL_RTA_EXPIRES, nh_expire - time_uptime); /* In any case, fill outgoing interface */ - nlattr_add_u32(nw, NL_RTA_OIF, nh->nh_ifp->if_index); + nlattr_add_u32(nw, NL_RTA_OIF, if_getindex(nh->nh_ifp)); if (rnd->rnd_weight != RT_DEFAULT_WEIGHT) nlattr_add_u32(nw, NL_RTA_WEIGHT, rnd->rnd_weight); From nobody Fri Jun 16 16:00:41 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjP5P4vFVz4dJxD for ; Fri, 16 Jun 2023 16:00:41 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjP5P4Rjjz4MlG; Fri, 16 Jun 2023 16:00:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686931241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K6ZJfzJmuHO8uE8gOdT2C/Qj9M/08W7NfwsBrAAcBow=; b=OxjnQ8MetG7JNVGftOkfstz5MhlkKSAd2Dz2ACJIRHQbJQkWnsXdNNRxAdtjh27liMrxLn j/Bcq+ehbNqRqswdPS06KK+o3+3Rc4CKovkYFtkrX6bFuaCuxKa+3h/Hm6ZP+na8q2W9gw yiOWfIsVIpTGm1TaTg5KP+apMO9S9GVOgjRYTSy81X3KVMXwQQh/Ti9bXQZIuDuuVxArOy fcuD6+dWx1fyTQZMYkXpA2asb+d+Ifg2d4SkyHZICXZuRZw/1Kp/wm0hk0fMijXUDq3lUJ I0Q5fcxdq7zg7G3wIDOAPf3EnVRL+xyQ4Nimvb4BAflONTbwpSuQSpoIOYaasw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686931241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K6ZJfzJmuHO8uE8gOdT2C/Qj9M/08W7NfwsBrAAcBow=; b=Mp7h7Gnb2AkAFBTxUet/ZLaAgdsO093uJt2wtuEJQSDm3J1TakrPMGRJ4HSTzWGygdwztN LNY982LmhHIVQH/QEML+8VVPh+heXu/e0EDb9wtTYTukpXbJfoULubTiBfmDXFHv+URiuZ iNhweEGkIFSN7IfyAxR7sy7Uqnr70syLqRRLvMAwGhipLvedNT8L7/9llODHyHfNe1aGra sP3pId76Am2WaFyFK0e21kTRfqnT98emP62h8uPHMOHkw0QPegP1I4Ro1IILdzmFlSNelv U2QzpqHXCD59c+aXZjL5X4seu6gCnRhxfMelui8L4N95x71bxKKiDORseZzRFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686931241; a=rsa-sha256; cv=none; b=T5OUDECmF1Wkw1ZGtoUbgX7B7xJlFGYEnZeHu0pY6MKgYAXYHUEDQup8iZMz8JsAeJnnUu x93Vc7ji+Fi719XHTGYntrb11vLxDYa92p4zrcPM++T1yPNoMc6o7caD23m5mic4t9fmno wvejJ29ci7CFz40TQPTJSccDLqf4mtRmPnagrZDaUy2VngHa8xTZInBnvhmqp5hu8eGE5U cfgNTPzb3E1WSvxhYo9SCoCq+XQnMrmze1lo/zG7KMEiLksNBsPtDhhSR7/SPLY9jjnn2d olOU+28stieZ2W2DN2OWLkkybXQxCa3PGDRgrWUENrZMD1Lp25Qj5wNX5RiBxQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjP5P3XPPzYtL; Fri, 16 Jun 2023 16:00:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GG0fBE000478; Fri, 16 Jun 2023 16:00:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GG0f0l000477; Fri, 16 Jun 2023 16:00:41 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:00:41 GMT Message-Id: <202306161600.35GG0f0l000477@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Martin Matuska Subject: git: feff9dfed3df..10e36e17612b - vendor/openzfs/master - vendor branch updated List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/vendor/openzfs/master X-Git-Reftype: branch X-Git-Commit: 10e36e17612ba9c634b140ae76847bb62b5be68f X-Git-Oldrev: feff9dfed3df1bbae5dd74959a6ad87d11f27ffb X-Git-Newrev: 10e36e17612ba9c634b140ae76847bb62b5be68f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch vendor/openzfs/master has been updated by mm: URL: https://cgit.FreeBSD.org/src/log/?id=feff9dfed3df..10e36e17612b 8af1104f83eb Store the L2ARC device ashift in the vdev label d057807ede05 Switch refcount tracking from lists to AVL-trees. e32e326c5b3c ZTS: Skip send_raw_ashift on FreeBSD ccec7fbe1c66 Remove ARC/ZIO physdone callbacks. 10e36e17612b Shorten arcstat_quiescence sleep time From nobody Fri Jun 16 16:45:05 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjQ4d29gtz4dvG5; Fri, 16 Jun 2023 16:45:05 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjQ4d1lLvz3Hqs; Fri, 16 Jun 2023 16:45:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OFRCLSrw4gqGnhn5FEWDJBh5tgD+D46zcCkh7pCDkF0=; b=BbMu8TMmtDSBFcwAPNyTQNFqqeMVo57m20GIztxtJoGOLg6bI2LsUcssii341WILzobQjp eTZRBby1f66vgrN9eL7+GyWXK5wDZgU1ebkuyRPGwTkPziFkKhyMctfRYLIWMxUMRrywdn pira9zSIWiGfQAuZ3f7Js8u+/Nv+s6SGubr97P1tQG2H6zAkzwmwxxZjvNXQdfnUDqCz4+ n5uznxk25WuU0HV67llnqJGb7q7bdmIVcM5QdoZy8Ca10A7MUzIA3aBYo3Uoa3hlWWkxWP tFmz0VEsVQ5OEqatc1iMeZy5yoHnl4LRxUXHt+i81yduyrPstA6Y7c7rFRvOmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OFRCLSrw4gqGnhn5FEWDJBh5tgD+D46zcCkh7pCDkF0=; b=xv+g6Y4KCrLmR2LB0ZAzaMrP4ldIplcR210obD60prKKW4GrdOccvigYB5arh5nwogFJcN hATXdspmWK/SZWDg730d0nQ2ib6dGD6gUGb9Qo74juanoppIaERY2j3nRwAqPdMTlx+1JW oebzkbShn2gLk+SjnU4qo6wG0NTp8o7o0QyaQMNnL+dgW5j+4VUId+4ogV3WTWUJ+zFEGW VsyQzSGHclLboSqfcUiB3E4zgQi48cHsuJTZSFDVlD0bs2OZVm9pynvMFMMh/fcfjPEWyL abQO/vzads+0xZq65isk5nT53dlc89pgJykk2PoEhNJ86pB+POkAwikRTqzCKA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686933905; a=rsa-sha256; cv=none; b=sLgTVZWgWsnruf/tTbpo/aub+07VPqg/2UGkEv2xW5OEPrsNQG9YBJHqjQRHTZjYBqYHCo jslF57+IX/fLlRi4IawD1AUbYC0MVmMMh060XW3eZgNXm3k0qlZQobxzLGj7fvZ5a+v6wE hQz5lKpLKM9Q9STtGN3LV8/QoCTirzRvysvaRf7SmpFNywaNvK52YeO7w6BqjYhh4SCqc7 Lhk00r/pVZfI0p2Ay3eSq0rN/iW1qmRPkk+YzTt38MkhRlsRCaUcW80iyMwME6E9rIqjaC Peked3wkPqhflxvwD5CDpOE2pRRz4Q1WTBbYqjwk06U8+R3lQWC6lnzItjoaqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjQ4d0rb8zbRx; Fri, 16 Jun 2023 16:45:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GGj5Mb072824; Fri, 16 Jun 2023 16:45:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GGj5Vu072823; Fri, 16 Jun 2023 16:45:05 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:45:05 GMT Message-Id: <202306161645.35GGj5Vu072823@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 0a0c599ab9a5 - main - hwpmc(4): remove paragraph about Pentium Pro handling List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0a0c599ab9a578dd175e626144eacdbb4c5ac6bc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=0a0c599ab9a578dd175e626144eacdbb4c5ac6bc commit 0a0c599ab9a578dd175e626144eacdbb4c5ac6bc Author: Mitchell Horne AuthorDate: 2023-06-16 16:34:02 +0000 Commit: Mitchell Horne CommitDate: 2023-06-16 16:44:53 +0000 hwpmc(4): remove paragraph about Pentium Pro handling Support for these CPUs was removed in 2018 (e92a1350b50e). Reviewed by: jkoshy, emaste MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40541 --- share/man/man4/hwpmc.4 | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/share/man/man4/hwpmc.4 b/share/man/man4/hwpmc.4 index 05fecf816a10..de38041bf640 100644 --- a/share/man/man4/hwpmc.4 +++ b/share/man/man4/hwpmc.4 @@ -473,28 +473,6 @@ PMCs, then the driver will reject allocation requests for process-private PMCs that request counting of hardware events that cannot be counted separately for each logical CPU. -.Ss Intel Pentium-Pro Handling -Writing a value to the PMC MSRs found in Intel Pentium-Pro style PMCs -(found in -.Tn "Intel Pentium Pro" , -.Tn "Pentium II" , -.Tn "Pentium III" , -.Tn "Pentium M" -and -.Tn "Celeron" -processors) will replicate bit 31 of the -value being written into the upper 8 bits of the MSR, -bringing down the usable width of these PMCs to 31 bits. -For process-virtual PMCs, the -.Nm -driver implements a workaround in software and makes the corrected 64 -bit count available via the -.Dv PMC_OP_RW -operation. -Processes that intend to use RDPMC instructions directly or -that intend to write values larger than 2^31 into these PMCs with -.Dv PMC_OP_RW -need to be aware of this hardware limitation. .Sh DIAGNOSTICS .Bl -diag .It "hwpmc: [class/npmc/capabilities]..." From nobody Fri Jun 16 16:45:06 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjQ4f55V0z4dvJH; Fri, 16 Jun 2023 16:45:06 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjQ4f2h5sz3HgS; Fri, 16 Jun 2023 16:45:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qL+dOpmZmiZp3IFp9bkRU6P7RimdQffH+0F3j7wYXhs=; b=XGgbwthsNG0lwzR1HjLRqB/43A9r9tFvrAWqjyUAIR8f+XnPnVbB7/gGfyiHrqtzZlsUpD W3bBWhSXVx05hRVnb013VONIOz8OBPQ8uPeyDu6JLpi1qgIbeTK89FXKhun9mXuEptTG3l cnz565Hj3wYVNxUMvH7VpK3OBrrlI9yKybKGAQeUNzTtTWXQ8aiZcn+l6YFi6oyzhTLoVj 8gYFsZCKh7FVaM/IgbSdgciPYzl92gId+P0aszGsRkkB0TscDahl50vOas9kEOGr04qLvO soKRWyhHEOFO7/NG2d+W1AL20ualIPY1yx9bTPS/1crON8Cc/gBxRVL0uvJAxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qL+dOpmZmiZp3IFp9bkRU6P7RimdQffH+0F3j7wYXhs=; b=yR+T2ACzpJMNfANRxXE6MPcyMGzx1ArL6PjytHFxD8qMkHlSoQNwe5epyfVeOrKPEBxJL1 zAepJuHRihc5/GBotf/8leO5n+E9kfyO/5ySCG2/EM4v89ofvF9thp6zghyGm+SdF3zieO 6B5T9fb9+a9iWr8d8xAr+sKZBdOSovPYuBPzmrjfCDRKaiFDdhZCwfk40T2tUj7W5tHvbo LKWIvmHXEB/6CXssEiuqTx/K8BYJDXDAhW12PAg9hVJcYdSrYUpeXAsR+NBmtOWRrbmwFM j4FpRYd/w3h8CRYW/ZQQUBGgs/G7BRgsUIAsE8G5ms5Ahh36YFoT46htMNsCvQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686933906; a=rsa-sha256; cv=none; b=CcqsFxIKv1kA5ZpbFWV80rEmXHZA8OiJhi1GuuFGkMVkoxgq7G9E0/ZHKnFGPq+upnVb5E JHouyO+CsAlRve3Tjm/7m46aIt0TorYoLcIo7673rCnCCSI76E/DlsKMC9GP8m/f+Ma4kV 3WHqaQPePl4BEjFPNnodlh+HflpaTn+Ce18tAwSWln9hfSu2HCTOWzABUXLvADojNAoABT y5LzERqWvorVITH84w32WEwfv6L1/H3h5PK1zlHWMUDjxDugnukGmezj1lp/MFbE6X00eY TRZ+WWnsaVZ3gJXWtUH/kAFFwgkL6yYVfJwnczDWYQvVwEWn0nmDcRL2JlfbsA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjQ4f1kZWzbm6; Fri, 16 Jun 2023 16:45:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GGj6Un072846; Fri, 16 Jun 2023 16:45:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GGj6jo072845; Fri, 16 Jun 2023 16:45:06 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:45:06 GMT Message-Id: <202306161645.35GGj6jo072845@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 0a1a48148ccd - main - hwpmc(4): more detailed SYNOPSYS List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0a1a48148ccd561464d643c05597cec2ae9e88b8 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=0a1a48148ccd561464d643c05597cec2ae9e88b8 commit 0a1a48148ccd561464d643c05597cec2ae9e88b8 Author: Mitchell Horne AuthorDate: 2023-06-16 16:38:03 +0000 Commit: Mitchell Horne CommitDate: 2023-06-16 16:44:54 +0000 hwpmc(4): more detailed SYNOPSYS Include some boilerplate similar to other section 4 man pages, describing how to load the module at boot-time or include it in the kernel. Reviewed by: jkoshy, emaste MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40542 --- share/man/man4/hwpmc.4 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/share/man/man4/hwpmc.4 b/share/man/man4/hwpmc.4 index de38041bf640..6c9e90b36c2d 100644 --- a/share/man/man4/hwpmc.4 +++ b/share/man/man4/hwpmc.4 @@ -35,11 +35,27 @@ .Nm hwpmc .Nd "Hardware Performance Monitoring Counter support" .Sh SYNOPSIS +The following option must be present in the kernel configuration file: +.Bd -ragged -offset indent .Cd "options HWPMC_HOOKS" -.Cd "device hwpmc" +.Ed .Pp Additionally, for i386 systems: +.Bd -ragged -offset indent .Cd "device apic" +.Ed +.Pp +To load the driver as a module at boot time, place the +following line in +.Xr rc.conf 5 : +.Bd -literal -offset indent +kld_list="${kld_list} hwpmc" +.Ed +.Pp +Alternatively, to compile this driver into the kernel: +.Bd -ragged -offset indent +.Cd "device hwpmc" +.Ed .Sh DESCRIPTION The .Nm From nobody Fri Jun 16 16:45:07 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjQ4g57zcz4dv3H; Fri, 16 Jun 2023 16:45:07 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjQ4g3Xwqz3HpY; Fri, 16 Jun 2023 16:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=klvEhejoxoSTjLbqTQLwewfkNetTx3sLIBvjL8dLW8s=; b=uEik9UjSTfAYLTIAg/gHzBva1qFOf7s8TBLROZEfuP2YiZA/WNeKnwIiwITlocazVtGgvf 8GI+jjrFw9WaZRpEZ+gdS658avrkdfmCpLQM6yiQ45bAWtCulD7TAWACLiwywFDGkkGI2M PU5ZrR7hfQ8sPdAznIF8P/5OoZkMAZRFFXS3+oPxFfRHLS5x4QYAWC7flbU+3+5Iz4vDCX +W55dkBHCOvZickmwRJopIKurNpsti91Xyb0nn30IbMvze/RwgJJfRoFPttaaPj9EU31i+ heDzlzqlPRDh17gUNp3zEr29I0nHK1gY3op7pAA5Zl7CgNzQ60BSknGzNIllzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=klvEhejoxoSTjLbqTQLwewfkNetTx3sLIBvjL8dLW8s=; b=hCp9rwwQ/+/4tUj0Jv488ZvVysqXMAXhyG5amAk3sfYt0YLqZf/B6DcI6qwUl/s+jrZ65g ANmpJCMuDoKlDfIFEXUJCCZE6lMTYU8clNXv2fVWAahNOGW2ywrUQMTTc1t3jodVhuu6ae 7IF87bXNRo55dN7AigdAF4VDOKYNVSyuLwQnhUFBF1EvhOTgMMk+QxAD7R1QGYV2XlnPfa Wt5Ipmw4tcBSXFIRv06BFaNleOaJ5rZZwVTJXCYzZFECNpmh7Zq+Boxc9wm1n2dLaG3Gta +vpLdv3iGbn2TySqKZqhMcUIWmslB8uc/lW/6vyph1KpC87K1KaYknSeIJp9Xw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686933907; a=rsa-sha256; cv=none; b=XqxmXFZkO9srMcv5AKvfonxAt/0o8keGjmXlNROFUJLZikcjjYZ56qxRWYGox6nCZBvBnI Nw5JE4Ib4dXKojo7pwJ9CR3mCmEytLrIwe9bLH/ZwxlfRrV4NP7zXjeNfQ68lxZSQ6+67P YTAneeOoOeTkpEoaMFFIPSN35vEwGJonFOrDHsBKjEO0VBH8dOdbrMQ4QxsQJ973FkJDjj 9UatluRSp2miXDCX5+NARiX5gUkE7gWJYPazt6mX8cmq9+bSwD6O2BWmDvrTOyoTVWUeur 7QVS5qpu20ZHotmLfN+xYzczCXUjtPwMzVW+GNX+j/ejR+Uibx8mq3wgDzM9vg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjQ4g2dzZzbPQ; Fri, 16 Jun 2023 16:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GGj7HX072867; Fri, 16 Jun 2023 16:45:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GGj7OU072866; Fri, 16 Jun 2023 16:45:07 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:45:07 GMT Message-Id: <202306161645.35GGj7OU072866@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 3977781b987e - main - pmc: clarify and strengthen statements about API/ABI List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3977781b987e369a9fe23bb642b9680b0a3887c1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=3977781b987e369a9fe23bb642b9680b0a3887c1 commit 3977781b987e369a9fe23bb642b9680b0a3887c1 Author: Mitchell Horne AuthorDate: 2023-06-16 16:38:19 +0000 Commit: Mitchell Horne CommitDate: 2023-06-16 16:44:54 +0000 pmc: clarify and strengthen statements about API/ABI - Make it clear that applications are not only encouraged to use the pmc(3) library, but use of the hwpmc(4) interface directly is a use-case we do not support - Move the COMPATIBILITY section above PROGRAMMING API in hwpmc(4) - Drop statements about the driver and library being "under development" Reviewed by: jkoshy, emaste MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40543 --- lib/libpmc/pmc.3 | 8 ++------ share/man/man4/hwpmc.4 | 27 +++++++++------------------ 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/lib/libpmc/pmc.3 b/lib/libpmc/pmc.3 index 83f555a5a770..83906a8d9e44 100644 --- a/lib/libpmc/pmc.3 +++ b/lib/libpmc/pmc.3 @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 5, 2023 +.Dd June 16, 2023 .Dt PMC 3 .Os .Sh NAME @@ -542,11 +542,7 @@ In order to ease forward compatibility with future versions of the driver, applications are urged to dynamically link with the .Nm pmc library. -.Pp -The -.Nm pmc -API is -.Ud +Doing otherwise is unsupported. .Sh SEE ALSO .Xr pmc.atom 3 , .Xr pmc.core 3 , diff --git a/share/man/man4/hwpmc.4 b/share/man/man4/hwpmc.4 index 6c9e90b36c2d..c394af90cd8d 100644 --- a/share/man/man4/hwpmc.4 +++ b/share/man/man4/hwpmc.4 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 31, 2023 +.Dd June 16, 2023 .Dt HWPMC 4 .Os .Sh NAME @@ -281,14 +281,15 @@ Non-disabled hardware counters in such a row may be used for satisfying system scope allocation requests. No process scope PMCs will use hardware counters in this row. .El -.Sh PROGRAMMING API -The recommended way for application programs to use the facilities of -the -.Nm -driver is using the API provided by the +.Sh COMPATIBILITY +The API and ABI documented in this manual page may change in the future. +This interface is intended to be consumed by the .Xr pmc 3 -library. -.Pp +library; other consumers are unsupported. +Applications targeting PMCs should use the +.Xr pmc 3 +library API. +.Sh PROGRAMMING API The .Nm driver operates using a system call number that is dynamically @@ -519,16 +520,6 @@ The value for tunable .Va kern.hwpmc.nsamples was negative or greater than 65535. .El -.Sh COMPATIBILITY -The -.Nm -driver is -.Ud -The API and ABI documented in this manual page may change in -the future. -The recommended method of accessing this driver is using the -.Xr pmc 3 -API. .Sh ERRORS A command issued to the .Nm From nobody Fri Jun 16 16:45:08 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjQ4h5FsBz4dv0b; Fri, 16 Jun 2023 16:45:08 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjQ4h4Vc6z3HxZ; Fri, 16 Jun 2023 16:45:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0ZAkc1ThKiKygyUfQflHvYi0qBvkGMinI38RteeAxGU=; b=PRSIHKGTcyHAP8fZQp4lvpPmgBWKqvaTtHx6b+yp09IgurJd1G9lYR4CdcP21WXJOiRdLr cFy7USe5H+MKQ/y24WvupSKANSFgm2B3JtxNgKDnEmKSinu6pDYhff06P4YHOUrk6AdeEv gVK3KZqr3Qj6U8O8CK95LIx/bkRCtrzfYngLM6R0gJ4hlHkS3hXZ2wAF3YoMc52BnwF4qJ b9wda1CwkISEaWYL7SWED6mhPul/FqyQ3XF/gv54GTsvOtBf4Bt62M6nf7uCSuEaovJ6aj GRqB/SKsVtjFMbIvSWKnDlcHVDv9M5rcHYAEjFRjnsEKnPHc8nRD+6HfrYAJgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0ZAkc1ThKiKygyUfQflHvYi0qBvkGMinI38RteeAxGU=; b=H7opjMFUVdvPWIKo+Eyd1ikgpi6kK8n0cjyKmHQ1FlDsEqla2YtNVBD82n0TYBOyinC7fc TJtrVUsOp9omYObeQskL71Oy8tCFKF6i3JoqYGfJc60N+Iw1OY4lQt1wb7MnDtoVowi3B6 e07HqD8DeTUt2bowMc5DdK9SSL7GIjgSZGH8LOKvidiu+KLLdGwdov14uI2QyrzX+fnlRB jJ3czXtqfrGERleqJxXRkCO9noW6It2Il6szMLg6N3CRRjSaGZ7sY8y6m/aU07jC1SmwXp D26ajlxqzA+yljv7eLd6b/md+U121IAaTa8lfNuwT1LuORueH5yizkFOPCHF/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686933908; a=rsa-sha256; cv=none; b=iypR4jnDWJiZIMnXURC9a4ndpVWDfoev5bBdvkFma2vCgOyLh/oMD2Lx3O5ydQ3p37w/D+ SVks3FXW8Pn5VMimZ/zYjrUKuCbHPGpEdnWbWtT/Esr2ej7c1+dvv1MQUVxkmWLZhZrKik 7RcCwMrRdq/pTbJcBtosthaBlMAM0YIKyqEPnfhokJ+Qa+bV6fQu1Drrav53eWcWtuwbQR 3Jy98Qs6o4ZGGeG6yD1dTYCPqWNTLP5i4FcRsoUjHORI56FPLIA5IKpT6ti9y3wdFnoRZY fbndu0R82zxoI1OU57GWh7tlv6oy28/BeLEE9H8EiLyv/OfI5ly+KJD9s2nxow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjQ4h3ZFhzbRy; Fri, 16 Jun 2023 16:45:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GGj8n0072890; Fri, 16 Jun 2023 16:45:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GGj8kK072889; Fri, 16 Jun 2023 16:45:08 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:45:08 GMT Message-Id: <202306161645.35GGj8kK072889@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 569f89b2f442 - main - hwpmc: add error for HWPMC_DEBUG without KTR List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 569f89b2f442e2187f750a5892a1662390364cc6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=569f89b2f442e2187f750a5892a1662390364cc6 commit 569f89b2f442e2187f750a5892a1662390364cc6 Author: Mitchell Horne AuthorDate: 2023-06-16 16:38:26 +0000 Commit: Mitchell Horne CommitDate: 2023-06-16 16:44:54 +0000 hwpmc: add error for HWPMC_DEBUG without KTR The option is a no-op otherwise, but this is not necessarily obvious. Failing the compile gives the user a hint. Reviewed by: jkoshy, emaste MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40544 --- sys/sys/pmc.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/sys/pmc.h b/sys/sys/pmc.h index cc8c4108aecc..cbb82408dcbf 100644 --- a/sys/sys/pmc.h +++ b/sys/sys/pmc.h @@ -1069,6 +1069,12 @@ extern struct pmc_cpu **pmc_pcpu; extern struct pmc_driverstats pmc_stats; #if defined(HWPMC_DEBUG) + +/* HWPMC_DEBUG without KTR will compile but is a no-op. */ +#if !defined(KTR) || !defined(KTR_COMPILE) || ((KTR_COMPILE & KTR_SUBSYS) == 0) +#error "HWPMC_DEBUG requires KTR and KTR_COMPILE=KTR_SUBSYS -- see ktr(4)" +#endif + #include #define __pmcdbg_used /* unused variable annotation */ From nobody Fri Jun 16 16:45:09 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjQ4j5p6Sz4dvDR; Fri, 16 Jun 2023 16:45:09 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjQ4j5M4pz3J7d; Fri, 16 Jun 2023 16:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f8I370R3F+56Ew3DAW65wKppUzrpJMYndy3Op3zHYhA=; b=u2k6TF/6RHzoyvK7Up2TXQro3aoGH3NlovTMN71xoJJkCj1WGGKJHxoal5ILTi4HeyJocO cP769R8oz16E2kZK4b8ODO039In9UenoZ3n0OccvbM7oucxlHrMWvUjeTUPSJ811/CqzmV tZXOhIkWbyqpBVmzNFbOs3IpA/DXbbjpztr4ifV6JFMFkVCqNNM0bJIYCTYeHgMxYFk7lp ywkXX/V2DFt+iPL6g6IlPO17bElLl5ufxRq2/CjoyHrFbMoCKRNw/yAXE0yGWOVb60rJn3 aV6pqJYE99WlhyYp0RkjuA7BBOTGjVzSbQDfii7LGHml8kUWgx0QegByC11lKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686933909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f8I370R3F+56Ew3DAW65wKppUzrpJMYndy3Op3zHYhA=; b=ED8CqdvO9UvZZqwv/DdLVGR2VxpjBfCHDKvKyx31RY+3nQMwx2ScGn1uWMC7kawcSluxLm VGiIsLLAb8tb0IpRwMEA7kNEUfAAeIXZKyKBhesJuvFdK5SKWwFHunwgAD4Tlmw243xcl6 XPQVkYEoDDePvRDQb5B9CCemzqSLEE7/+CkWHcDzTjY3648ntR6drh6psbSuKr2txRAida k9P7HgH4/p7sZEhSUwQLldnrTueuct0H/sFGPuGnEkernTECIy2LeTdceTiq4qxkjPpulA f+n9K6qPDtuhtgJ5u373sdl46Jdc2wPAr0BGt9KzoN1JDO+dK5c3hZdSiPBgRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686933909; a=rsa-sha256; cv=none; b=YR4jx1aMHjfKx6IF3avTe/h9TsYCQ2wbuPXn6rQQf0RdGCScoYBBjJ54OoyeOON9xKdAF9 AJ0++0AwVEPOQMPBKogldg2EH/EXo3/NRinviGlZuROd8d81Fa/VHbz+45YHRal2Bs+xwR PihM+uLVocA9NiPoJW8qHdrVUy2gUQfCH0ELZyWh+3SPktXFyl4IT2P+lN+NFUXcwhPz1S yl15FyHRVY+Uqw5NTgKCBGl4TDtHoQ1qiae71OSXlg6TW8OOPt/cr63S1kwcTZxlrUkXIK d4ZeXN7PQtPtIokdum5yUT4jdc32KsIvXUcwjcczr3w0D7xz5+GuwWrnQ0oLOQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjQ4j4CYVzbPR; Fri, 16 Jun 2023 16:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GGj9ks072909; Fri, 16 Jun 2023 16:45:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GGj9tb072908; Fri, 16 Jun 2023 16:45:09 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:45:09 GMT Message-Id: <202306161645.35GGj9tb072908@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 5fc97cc32553 - main - hwpmc(4): document debugging options List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5fc97cc32553c4073c7dafd67a2d489b8af8563e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=5fc97cc32553c4073c7dafd67a2d489b8af8563e commit 5fc97cc32553c4073c7dafd67a2d489b8af8563e Author: Mitchell Horne AuthorDate: 2023-06-16 16:38:43 +0000 Commit: Mitchell Horne CommitDate: 2023-06-16 16:44:54 +0000 hwpmc(4): document debugging options The debug options for hwpmc are not documented in detail anywhere, and setting it up was error-prone the first time I had to figure it out (and each time I've had to remember it). Add some explanation of the required options and describe the kern.hwpmc.debugflags sysctl format. Reviewed by: emaste MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40545 --- share/man/man4/hwpmc.4 | 106 ++++++++++++++++++++++++++++++++++++++++++++++++- sys/sys/pmc.h | 6 ++- 2 files changed, 109 insertions(+), 3 deletions(-) diff --git a/share/man/man4/hwpmc.4 b/share/man/man4/hwpmc.4 index c394af90cd8d..3ae3ce726395 100644 --- a/share/man/man4/hwpmc.4 +++ b/share/man/man4/hwpmc.4 @@ -1,10 +1,12 @@ .\" Copyright (c) 2003-2008 Joseph Koshy -.\" Copyright (c) 2007 The FreeBSD Foundation -.\" All rights reserved. +.\" Copyright (c) 2007,2023 The FreeBSD Foundation .\" .\" Portions of this software were developed by A. Joseph Koshy under .\" sponsorship from the FreeBSD Foundation and Google, Inc. .\" +.\" Portions of this documentation were written by Mitchell Horne +.\" under sponsorship from the FreeBSD Foundation. +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -56,6 +58,17 @@ Alternatively, to compile this driver into the kernel: .Bd -ragged -offset indent .Cd "device hwpmc" .Ed +.Pp +To enable debugging features +.Po see +.Sx DEBUGGING +.Pc : +.Bd -ragged -offset indent +.Cd "options KTR" +.Cd "options KTR_COMPILE=(KTR_SUBSYS)" +.Cd "options KTR_MASK=(KTR_SUBSYS)" +.Cd "options HWPMC_DEBUG" +.Ed .Sh DESCRIPTION The .Nm @@ -520,6 +533,92 @@ The value for tunable .Va kern.hwpmc.nsamples was negative or greater than 65535. .El +.Sh DEBUGGING +The +.Nm +module can be configured to record trace entries using the +.Xr ktr 4 +interface. +This is useful for debugging the driver's functionality, primarily during +development. +This debugging functionality is not enabled by default, and requires +recompiling the kernel and +.Nm +module after adding the following to the kernel config: +.Bd -literal -offset indent +.Cd options KTR +.Cd options KTR_COMPILE=(KTR_SUBSYS) +.Cd options KTR_MASK=(KTR_SUBSYS) +.Cd options HWPMC_DEBUG +.Ed +.Pp +This alone is not enough to enable tracing; one must also configure the +.Va kern.hwpmc.debugflags +.Xr sysctl 8 +variable, which provides fine-grained control over which types of events are +logged to the trace buffer. +.Pp +.Nm +trace events are grouped by 'major' and 'minor' flag types. +The major flag groups are as follows: +.Pp +.Bl -tag -compact -offset indent +.It CPU +CPU events +.It CSW +Context switch events +.It LOG +Logging events +.It MDP +Machine-dependent/class-dependent events +.It MOD +Miscellaneous events +.It OWN +PMC owner events +.It PMC +PMC management events +.It PRC +Process events +.It SAM +Sampling events +.El +.Pp +The minor flags for each major flag group can vary. +For the full list of flag groups, consult +.In sys/pmc.h . +.Pp +The +.Va kern.hwpmc.debugflags +variable is a string with a custom format. +The string should contain a space-separated list of event specifiers. +Each event specifier consists of the major flag name, followed by an equal sign +(=), followed by a comma-separated list of minor event types. +To track all events for a major group, an asterisk (*) can be given instead. +.Pp +For example, to trace all allocation and release events, set +.Va debugflags +as follows: +.Bd -literal -offset indent +kern.hwpmc.debugflags="pmc=all,rel mdp=all,rel" +.Ed +.Pp +To trace all process events, as well as context switches: +.Bd -literal -offset indent +kern.hwpmc.debugflags="prc=* csw=*" +.Ed +.Pp +To disable all trace events, set the variable to an empty string. +.Bd -literal -offset indent +kern.hwpmc.debugflags="" +.Ed +.Pp +Trace events are recorded by +.Xr ktr 4 , +and can be inspected at run-time using the +.Xr ktrdump 8 +utility, or at the +.Xr ddb 4 +prompt after a panic with the 'show ktr' command. .Sh ERRORS A command issued to the .Nm @@ -751,7 +850,10 @@ operation is not being monitored by .Xr kenv 1 , .Xr pmc 3 , .Xr pmclog 3 , +.Xr ddb 4 , +.Xr ktr 4 , .Xr kldload 8 , +.Xr ktrdump 8 , .Xr pmccontrol 8 , .Xr pmcstat 8 , .Xr sysctl 8 , diff --git a/sys/sys/pmc.h b/sys/sys/pmc.h index cbb82408dcbf..d1b688df6c2b 100644 --- a/sys/sys/pmc.h +++ b/sys/sys/pmc.h @@ -1079,7 +1079,11 @@ extern struct pmc_driverstats pmc_stats; #define __pmcdbg_used /* unused variable annotation */ -/* debug flags, major flag groups */ +/* + * Debug flags, major flag groups. + * + * Please keep the DEBUGGING section of the hwpmc(4) man page in sync. + */ struct pmc_debugflags { int pdb_CPU; int pdb_CSW; From nobody Fri Jun 16 16:52:07 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjQDm13K8z4dy8F; Fri, 16 Jun 2023 16:52:08 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjQDm0Y3Zz3M18; Fri, 16 Jun 2023 16:52:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686934328; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r8+IgWefBgfGKVWDPiopMo6BAqhu5+bdql2Z5+8wptE=; b=xUZTiNQxNgWkfgt4tTeN75Ctdf/p169BjAkwLsMLxMJek9IkkdtCCOu/erOQTWolbroZPD H4osf1VEva1lgVE75eDTO5V9IUlRcByAIU6KYtp3Cw51Re3/10BbrQhNuDxGcuX1yOmlBb GOWhsafIrBla+kOrnnZ/d7r56PxWIlrw6gD8C+c+eaVqSqoGZRp2COJ8LIzdhgY4Nd8G4d VOa0q7IPRQEdR0PZDcVDxbAYFiWL6kpCDEeN1UqMatRvWL6zFCSZ7fAHX6Rqy2hVn12juP 701c0tppxx/a9VFxfmmT80XcnyFzO3p3ZZ85V/wtZWxVBOjv1jMTK0mkhFiwyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686934328; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r8+IgWefBgfGKVWDPiopMo6BAqhu5+bdql2Z5+8wptE=; b=Ful+CGSvrbRd4j0Ku/zD/jImvghZf2Obo40EB5INbqO4vVEE19P26JNt3GqNP9svh8dEcU mLtszx2cw/A8j9w07gDe4aNNIkcR9JM2IzG3b1h0XScO1MN8rauecyztOkP7QrX3BYz+6n 9LPmjlyITsCTZs2Fe6dCtI6Ed11JP2IT8dudjvcxHIVt6AQ2qMxt8KNZdO4Ol1+xOe5NIf w7SlVhl8DCsMfifV/tG//5nxTEW9qCprUAtfvWNrYg5j4Y+/rRb0Ril8hn3DlHsOhQkDFb 62/GqmsK0GdGwuZHFopUJ2jHwIYG7dHpfcTVk6gJTfLTF8VDVWnkoInj0k7ceg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686934328; a=rsa-sha256; cv=none; b=Jndm0dRhujB78zCIJYntdmH9cqAFCLRuHXz7Od6WqzHfVa0Hz4fhgb6EEcY0amxxj14Ywe 7OL0QbwL4ohzaMUar6hXiwC8IMIEiGQ7LmCSa25V1ABX0gqg7gPHYrS4LqQZ03TaVi0Mh0 /72RCqlDOgUPUzSU4T8fgasPCda3H3OAnS2cLWzpfymy4OjeI2Wkf/KIjEiFuxYnWxgXRu zm3QGjXW0896SoWVPaldgMqUtDpm8n7cXAQHeJcOR/YFjbJObTCjyVh3EyDINW1zbZf/PT 5vK/RycWphYhXUMfI/hEiq36MBvZ6trT82OcnnvFZ2EaQ+h5fzHTYAlvig2LAA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjQDl6TRGzbSx; Fri, 16 Jun 2023 16:52:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GGq7Ll087690; Fri, 16 Jun 2023 16:52:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GGq7Ew087689; Fri, 16 Jun 2023 16:52:07 GMT (envelope-from git) Date: Fri, 16 Jun 2023 16:52:07 GMT Message-Id: <202306161652.35GGq7Ew087689@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: ec0bd8b07f79 - main - rc.suspend: update man pages for new keyword List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ec0bd8b07f79b1533890740e38701a44748d639d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=ec0bd8b07f79b1533890740e38701a44748d639d commit ec0bd8b07f79b1533890740e38701a44748d639d Author: Johannes Totz AuthorDate: 2023-06-16 16:48:17 +0000 Commit: Mitchell Horne CommitDate: 2023-06-16 16:51:10 +0000 rc.suspend: update man pages for new keyword rc.suspend has gained an rcorder keyword recently. Document it alongside the existing resume keyword. Reviewed By: mhorne, Pau Amma Differential Revision: https://reviews.freebsd.org/D40484 --- sbin/rcorder/rcorder.8 | 6 ++++-- usr.sbin/acpi/acpiconf/acpiconf.8 | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/sbin/rcorder/rcorder.8 b/sbin/rcorder/rcorder.8 index 96cd1c9b6a97..c99ea92668b1 100644 --- a/sbin/rcorder/rcorder.8 +++ b/sbin/rcorder/rcorder.8 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 13, 2022 +.Dd June 10, 2023 .Dt RCORDER 8 .Os .Sh NAME @@ -153,8 +153,10 @@ in use: .It Sy firstboot , nojail , nojailvnet , nostart Used by .Xr rc 8 . -.It Sy resume +.It Sy suspend , resume Used by +.Nm /etc/rc.suspend +and .Nm /etc/rc.resume (see .Xr acpiconf 8 ) diff --git a/usr.sbin/acpi/acpiconf/acpiconf.8 b/usr.sbin/acpi/acpiconf/acpiconf.8 index 53888d8489ea..92b607a2c310 100644 --- a/usr.sbin/acpi/acpiconf/acpiconf.8 +++ b/usr.sbin/acpi/acpiconf/acpiconf.8 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 27, 2018 +.Dd June 16, 2023 .Dt ACPICONF 8 .Os .Sh NAME @@ -81,27 +81,30 @@ or before and after entering the given sleep state. .Pp The +.Pa /etc/rc.suspend +and .Pa /etc/rc.resume -script uses the +scripts use the .Xr rcorder 8 utility to call scripts in .Pa /etc/rc.d/ and the .Va $local_startup -directories that have a "resume" KEYWORD. -Called scripts are supplied with single "resume" -command line argument. See +directories that have a "suspend" or "resume" KEYWORD, respectively. +Called scripts are supplied with a single "suspend" / "resume" +command line argument. +See .Xr rc.conf 5 for more information about .Va $local_startup . .El .Sh SEE ALSO .Xr acpi 4 , +.Xr rc.conf 5 , .Xr acpidump 8 , .Xr apm 8 , .Xr apmd 8 , .Xr devd 8 , -.Xr rc.conf 5 , .Xr rcorder 8 .Sh HISTORY The From nobody Fri Jun 16 19:15:14 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjTPt4rCMz4fZlw; Fri, 16 Jun 2023 19:15:14 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjTPt4Pwmz3xq1; Fri, 16 Jun 2023 19:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686942914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PZ7dPMdj57D+hNUZJclKsENVVn5PKcKN81lZeAU0sJg=; b=BnnzdVYzTd6IcKTFPqtCce21nUDF38ezagNDwG+7ZsC/d+plHV6SNn7x5O28y7m4dpJlOF AiX+OmytTqRD2UpuaxYbSo9aP3Jl5sPFcWRqjuJMDZfiUMhaixPmgtE+XSstRzsd1Uf+yh 9NHucsPcL3WIV3dCUhMNHnn01PrBrGJjb6yj+Y3nNOQPrOxRkF4ZDzGpldXWB+uKjnPptx DPnpHrIYhZVN0lPCjuSEdnpBqxO2Rhwq17wtc/BE1U6tPu49gJN+bGzOqYWvStsdVBuPvG mbzs5Co/VURHcaWvPLOfbW8un1NlijMjt3ccoy0Af36d4UDedjYMno2SLN/M+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686942914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PZ7dPMdj57D+hNUZJclKsENVVn5PKcKN81lZeAU0sJg=; b=CQ4Q0D+LZiocAg+7084fEXck+/l86SZ4cSqnYDbQ+TH9MQrPUfcUrVMWunjFiVsyubNcvX RaBrr8aID9ed0Y7hK2fBtEgVyuG2H8jTBd3q9DMEJoJiC5EPuWpCPw7e+3JwH6ell+l/uC 3W5eZ2yKPe9WbZeJ3Va7AFxGOM1LDeC2UI6kLxjaQGnpLktWogfU13+XoMQQjl6sdGQ79q kWHF/kAYJpE7wbgxEIQcQjQ4/+GHqdRGkUNl45Bg9+r8unlqJ7oDW+pOgIHKOn54PTvvRo 0mLwUBsgqWqXW/kpR9rGfYUwtLphCdDGVOTUG5zGue6+VgLXNlhcGDIleuL7uw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686942914; a=rsa-sha256; cv=none; b=fEky+ZDG+muThYcHF7waaPZ5axCS+MazdgOcXHymdtWZYIr41SzhfksB9PTQLcogOnhdt0 +O3GmjVdVAtboQvYBciuhCKBdd6LDmwLALKI9ldKAyMRYe8RBwT2E4iqvHj7IDkYGS66BB AMFFZFrecnORwHtD0oAJTt2auy5ueQs5/20e1Au0O0/ayQPJBBYM3HddLEpyfLuhlArxSA K9FKaT4Ybgu4vaDoJwesEADuz6qUc0OqGw4me1HRxnJx8AWKOKqYNlhNHI7z3jnfOuRb6+ u2Lq2+ab4X+01pCSvVes4bN6+52P0c2TFUmC2QLkwRQFAkx98GSnLWb9l+jAJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjTPt3VfczgKP; Fri, 16 Jun 2023 19:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GJFEaj022767; Fri, 16 Jun 2023 19:15:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GJFEoQ022766; Fri, 16 Jun 2023 19:15:14 GMT (envelope-from git) Date: Fri, 16 Jun 2023 19:15:14 GMT Message-Id: <202306161915.35GJFEoQ022766@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Kubaj Subject: git: 2c7279bae776 - main - share/mk/bsd.cpu.mk: handle the default case when CPUTYPE is not specified on powerpc* List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pkubaj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2c7279bae7767e9b10a73f44817adb168b69b522 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/src/commit/?id=2c7279bae7767e9b10a73f44817adb168b69b522 commit 2c7279bae7767e9b10a73f44817adb168b69b522 Author: Piotr Kubaj AuthorDate: 2023-06-16 09:43:42 +0000 Commit: Piotr Kubaj CommitDate: 2023-06-16 19:15:03 +0000 share/mk/bsd.cpu.mk: handle the default case when CPUTYPE is not specified on powerpc* Approved by: imp Differential Revision: https://reviews.freebsd.org/D40576 --- share/mk/bsd.cpu.mk | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk index ba18204b9230..e47ee30d2ce6 100644 --- a/share/mk/bsd.cpu.mk +++ b/share/mk/bsd.cpu.mk @@ -14,8 +14,12 @@ MACHINE_CPU = amd64 sse2 sse mmx MACHINE_CPU = arm . elif ${MACHINE_CPUARCH} == "i386" MACHINE_CPU = i486 -. elif ${MACHINE_CPUARCH} == "powerpc" +. elif ${MACHINE_ARCH} == "powerpc" MACHINE_CPU = aim +. elif ${MACHINE_ARCH} == "powerpc64" +MACHINE_CPU = aim altivec +. elif ${MACHINE_ARCH} == "powerpc64le" +MACHINE_CPU = aim altivec vsx vsx2 . elif ${MACHINE_CPUARCH} == "riscv" MACHINE_CPU = riscv . endif @@ -277,7 +281,9 @@ MACHINE_CPU += amd64 sse2 sse mmx . if ${CPUTYPE} == "e500" MACHINE_CPU = booke softfp . elif ${CPUTYPE} == "g4" -MACHINE_CPU = altivec +MACHINE_CPU = aim altivec +. else +MACHINE_CPU= aim . endif . elif ${MACHINE_ARCH} == "powerpc64" . if ${CPUTYPE} == "e5500" @@ -289,10 +295,10 @@ MACHINE_CPU = altivec vsx vsx2 . elif ${CPUTYPE} == power9 MACHINE_CPU = altivec vsx vsx2 vsx3 . else -MACHINE_CPU = altivec +MACHINE_CPU = aim altivec . endif . elif ${MACHINE_ARCH} == "powerpc64le" -MACHINE_CPU = altivec vsx vsx2 +MACHINE_CPU = aim altivec vsx vsx2 . if ${CPUTYPE} == power9 MACHINE_CPU += vsx3 . endif From nobody Fri Jun 16 21:13:32 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjX2V4dB9z4fMY7; Fri, 16 Jun 2023 21:13:38 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjX2V4CSQz3FN5; Fri, 16 Jun 2023 21:13:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686950018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wDCRyAuS7aGahaNu3XQWYNclzn0bOBBFXEBEJyzo2rI=; b=yEnL7U0vNM38A10x8PxgH+oDg2wTOJSuFu8BGDfZF/PZcHQ0QhYTNFGvknVRMSe1v1ubf/ g5j6s9h61cnhOoQ/KJ252xaBbauCwfG9SfYxFnEQORA1A40EPatYp4Zubpxtm2Foj4byQ7 qin6sN15MqVewuKmzFZlZRP1yJprusTr22R9r9BQtguRRfwhpcSQX8nJUerxAx10ww7MiY DSfI44fGAIoVd2I+BqfZf9jpdQbwMv2eiUGoK3E5bEWycg00k31xcX7XOfuHBlGAJbzF3d k+nCY63Z4cjoSRNQ5vKUhqiXL87zJfCB/IA69HNao3HNlyDJb5WbZdr1g4M9Mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686950018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wDCRyAuS7aGahaNu3XQWYNclzn0bOBBFXEBEJyzo2rI=; b=a9FWFNLZ4VzzrVXL1VPYZdTieTp+d0B+aglm+54NAwPM2GMX1LwwEJsjBEZWQ7HFHYdn+z MLN87LiOeKw9vXOUu3l/8nvrNnJvOOBOsiAe3JphKHDKDM8i2n+wS8pNT9lFkMiMXbZpK2 FYS1Ae/qhm9tNIpoKHi9CX2sQI7JbQLL0p/47QktFp/7XbRxUdNU65c9wvSCuueDvEUFq7 Y0bhkjYgAal9SHnqswH+gmxcP8sT2Oyw/jYhtgNuYmSbPqzoLCSra2AAGUgmXGZJ94ZbUU tA4nwBa+PGgcBvTIZEdZwnhOtayYhul3xElIFoZZwDoyT215s1YeFQ8Ds+SFCQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686950018; a=rsa-sha256; cv=none; b=NW/K161epFCTlm4mMD0j/jo0w69n2YNed+aiJ1SQuPMsSwhD592e7lZHOiBc7UTq48Oz/e T3WOQR415JT4OYgM0iCTxawSJHLP4iN+HZG+2yyYmbNx0EHLNiqXaq4Wz/6ArLu4BhCCP3 U58zq0iAmWyTx9I9Zw7WJ22IqxlQ9YuYhx+H7P21ra3YiyzCEFwfPyvQFYZ7JD1bFyfRZ4 gopOSx9Z/ix1dZ/XnSBa1IbT04/Dx2iDTjiNbEdmcHlg9VigHNOE30S9B2CmBtIBICw96O 4/1CVwrwp+LAzZrKo8RQCgKhK69H9yGI5BD87o2aslAz6a0ScR70uoT3Q9ciSg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjX2V34N2zkGn; Fri, 16 Jun 2023 21:13:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35GLDcxJ020388; Fri, 16 Jun 2023 21:13:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35GLDWUT020359; Fri, 16 Jun 2023 21:13:32 GMT (envelope-from git) Date: Fri, 16 Jun 2023 21:13:32 GMT Message-Id: <202306162113.35GLDWUT020359@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Martin Matuska Subject: git: b7198dcfc039 - main - zfs: merge openzfs/zfs@10e36e176 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b7198dcfc03967cba191a373d99df47ee52d6e2a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=b7198dcfc03967cba191a373d99df47ee52d6e2a commit b7198dcfc03967cba191a373d99df47ee52d6e2a Merge: 2c7279bae776 10e36e17612b Author: Martin Matuska AuthorDate: 2023-06-16 21:12:27 +0000 Commit: Martin Matuska CommitDate: 2023-06-16 21:13:05 +0000 zfs: merge openzfs/zfs@10e36e176 Notable upstream pull request merges: #14948 Remove ARC/ZIO physdone callbacks #14963 Store the L2ARC device ashift in the vdev label #14970 Switch refcount tracking from lists to AVL-trees #14981 Shorten arcstat_quiescence sleep time Obtained from: OpenZFS OpenZFS commit: 10e36e17612ba9c634b140ae76847bb62b5be68f sys/contrib/openzfs/include/sys/arc.h | 5 +- sys/contrib/openzfs/include/sys/arc_impl.h | 1 - sys/contrib/openzfs/include/sys/zfs_refcount.h | 16 +- sys/contrib/openzfs/include/sys/zio.h | 9 +- sys/contrib/openzfs/module/zfs/arc.c | 22 +-- sys/contrib/openzfs/module/zfs/dbuf.c | 94 +---------- sys/contrib/openzfs/module/zfs/dmu.c | 4 +- sys/contrib/openzfs/module/zfs/dmu_objset.c | 2 +- sys/contrib/openzfs/module/zfs/refcount.c | 187 +++++++++++---------- sys/contrib/openzfs/module/zfs/vdev_label.c | 3 + sys/contrib/openzfs/module/zfs/zio.c | 32 +--- .../openzfs/tests/test-runner/bin/zts-report.py.in | 1 + .../openzfs/tests/zfs-tests/include/libtest.shlib | 2 +- .../functional/l2arc/persist_l2arc_001_pos.ksh | 19 +-- .../tests/functional/rsend/send_raw_ashift.ksh | 4 + sys/modules/zfs/zfs_config.h | 4 +- sys/modules/zfs/zfs_gitrev.h | 2 +- 17 files changed, 154 insertions(+), 253 deletions(-) diff --cc sys/modules/zfs/zfs_config.h index dc40483fe785,000000000000..caf1b68f8728 mode 100644,000000..100644 --- a/sys/modules/zfs/zfs_config.h +++ b/sys/modules/zfs/zfs_config.h @@@ -1,1090 -1,0 +1,1090 @@@ +/* + * $FreeBSD$ + */ + +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* bio_end_io_t wants 1 arg */ +/* #undef HAVE_1ARG_BIO_END_IO_T */ + +/* lookup_bdev() wants 1 arg */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ + +/* submit_bio() wants 1 arg */ +/* #undef HAVE_1ARG_SUBMIT_BIO */ + +/* bdi_setup_and_register() wants 2 args */ +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 2 args */ +/* #undef HAVE_2ARGS_VFS_GETATTR */ + +/* zlib_deflate_workspacesize() wants 2 args */ +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ + +/* bdi_setup_and_register() wants 3 args */ +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 3 args */ +/* #undef HAVE_3ARGS_VFS_GETATTR */ + +/* vfs_getattr wants 4 args */ +/* #undef HAVE_4ARGS_VFS_GETATTR */ + +/* kernel has access_ok with 'type' parameter */ +/* #undef HAVE_ACCESS_OK_TYPE */ + +/* posix_acl has refcount_t */ +/* #undef HAVE_ACL_REFCOUNT */ + +/* add_disk() returns int */ +/* #undef HAVE_ADD_DISK_RET */ + +/* Define if host toolchain supports AES */ +#define HAVE_AES 1 + +/* Define if you have [rt] */ +#define HAVE_AIO_H 1 + +#ifdef __amd64__ +#ifndef RESCUE +/* Define if host toolchain supports AVX */ +#define HAVE_AVX 1 +#endif + +/* Define if host toolchain supports AVX2 */ +#define HAVE_AVX2 1 + +/* Define if host toolchain supports AVX512BW */ +#define HAVE_AVX512BW 1 + +/* Define if host toolchain supports AVX512CD */ +#define HAVE_AVX512CD 1 + +/* Define if host toolchain supports AVX512DQ */ +#define HAVE_AVX512DQ 1 + +/* Define if host toolchain supports AVX512ER */ +#define HAVE_AVX512ER 1 + +/* Define if host toolchain supports AVX512F */ +#define HAVE_AVX512F 1 + +/* Define if host toolchain supports AVX512IFMA */ +#define HAVE_AVX512IFMA 1 + +/* Define if host toolchain supports AVX512PF */ +#define HAVE_AVX512PF 1 + +/* Define if host toolchain supports AVX512VBMI */ +#define HAVE_AVX512VBMI 1 + +/* Define if host toolchain supports AVX512VL */ +#define HAVE_AVX512VL 1 +#endif + +/* bdevname() is available */ +/* #undef HAVE_BDEVNAME */ + +/* bdev_check_media_change() exists */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_63 */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_OLD */ + +/* bdev_kobj() exists */ +/* #undef HAVE_BDEV_KOBJ */ + +/* bdev_max_discard_sectors() is available */ +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ + +/* bdev_max_secure_erase_sectors() is available */ +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ + +/* block_device_operations->submit_bio() returns void */ +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ + +/* bdev_whole() is available */ +/* #undef HAVE_BDEV_WHOLE */ + +/* bio_alloc() takes 4 arguments */ +/* #undef HAVE_BIO_ALLOC_4ARG */ + +/* bio->bi_bdev->bd_disk exists */ +/* #undef HAVE_BIO_BDEV_DISK */ + +/* bio->bi_opf is defined */ +/* #undef HAVE_BIO_BI_OPF */ + +/* bio->bi_status exists */ +/* #undef HAVE_BIO_BI_STATUS */ + +/* bio has bi_iter */ +/* #undef HAVE_BIO_BVEC_ITER */ + +/* bio_*_io_acct() available */ +/* #undef HAVE_BIO_IO_ACCT */ + +/* bio_max_segs() is implemented */ +/* #undef HAVE_BIO_MAX_SEGS */ + +/* bio_set_dev() is available */ +/* #undef HAVE_BIO_SET_DEV */ + +/* bio_set_dev() GPL-only */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ + +/* bio_set_dev() is a macro */ +/* #undef HAVE_BIO_SET_DEV_MACRO */ + +/* bio_set_op_attrs is available */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ + +/* blkdev_get_by_path() handles ERESTARTSYS */ +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ + +/* blkdev_issue_discard() is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD */ + +/* blkdev_issue_secure_erase() is available */ +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ + +/* blkdev_reread_part() exists */ +/* #undef HAVE_BLKDEV_REREAD_PART */ + +/* blkg_tryget() is available */ +/* #undef HAVE_BLKG_TRYGET */ + +/* blkg_tryget() GPL-only */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ + +/* blk_alloc_disk() exists */ +/* #undef HAVE_BLK_ALLOC_DISK */ + +/* blk_alloc_queue() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ + +/* blk_alloc_queue_rh() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ + +/* blk_cleanup_disk() exists */ +/* #undef HAVE_BLK_CLEANUP_DISK */ + +/* block multiqueue is available */ +/* #undef HAVE_BLK_MQ */ + +/* blk queue backing_dev_info is dynamic */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ + +/* blk_queue_discard() is available */ +/* #undef HAVE_BLK_QUEUE_DISCARD */ + +/* blk_queue_flag_clear() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */ + +/* blk_queue_flag_set() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_SET */ + +/* blk_queue_flush() is available */ +/* #undef HAVE_BLK_QUEUE_FLUSH */ + +/* blk_queue_flush() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */ + +/* blk_queue_secdiscard() is available */ +/* #undef HAVE_BLK_QUEUE_SECDISCARD */ + +/* blk_queue_secure_erase() is available */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ + +/* blk_queue_update_readahead() exists */ +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ + +/* blk_queue_write_cache() exists */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */ + +/* blk_queue_write_cache() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */ + +/* Define if revalidate_disk() in block_device_operations */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* check_disk_change() exists */ +/* #undef HAVE_CHECK_DISK_CHANGE */ + +/* clear_inode() is available */ +/* #undef HAVE_CLEAR_INODE */ + +/* dentry uses const struct dentry_operations */ +/* #undef HAVE_CONST_DENTRY_OPERATIONS */ + +/* copy_from_iter() is available */ +/* #undef HAVE_COPY_FROM_ITER */ + +/* copy_to_iter() is available */ +/* #undef HAVE_COPY_TO_ITER */ + +/* cpu_has_feature() is GPL-only */ +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ + +/* yes */ +/* #undef HAVE_CPU_HOTPLUG */ + +/* current_time() exists */ +/* #undef HAVE_CURRENT_TIME */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* DECLARE_EVENT_CLASS() is available */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ + +/* dentry aliases are in d_u member */ +/* #undef HAVE_DENTRY_D_U_ALIASES */ + +/* dequeue_signal() takes 4 arguments */ +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ + +/* lookup_bdev() wants dev_t arg */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ + +/* sops->dirty_inode() wants flags */ +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */ + +/* disk_*_io_acct() available */ +/* #undef HAVE_DISK_IO_ACCT */ + +/* disk_update_readahead() exists */ +/* #undef HAVE_DISK_UPDATE_READAHEAD */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* d_make_root() is available */ +/* #undef HAVE_D_MAKE_ROOT */ + +/* d_prune_aliases() is available */ +/* #undef HAVE_D_PRUNE_ALIASES */ + +/* dops->d_revalidate() operation takes nameidata */ +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */ + +/* eops->encode_fh() wants child and parent inodes */ +/* #undef HAVE_ENCODE_FH_WITH_INODE */ + +/* sops->evict_inode() exists */ +/* #undef HAVE_EVICT_INODE */ + +/* FALLOC_FL_ZERO_RANGE is defined */ +/* #undef HAVE_FALLOC_FL_ZERO_RANGE */ + +/* fault_in_iov_iter_readable() is available */ +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ + +/* filemap_range_has_page() is available */ +/* #undef HAVE_FILEMAP_RANGE_HAS_PAGE */ + +/* fops->aio_fsync() exists */ +/* #undef HAVE_FILE_AIO_FSYNC */ + +/* file_dentry() is available */ +/* #undef HAVE_FILE_DENTRY */ + +/* fops->fadvise() exists */ +/* #undef HAVE_FILE_FADVISE */ + +/* file_inode() is available */ +/* #undef HAVE_FILE_INODE */ + +/* flush_dcache_page() is GPL-only */ +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ + +/* iops->follow_link() cookie */ +/* #undef HAVE_FOLLOW_LINK_COOKIE */ + +/* iops->follow_link() nameidata */ +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */ + +/* Define if compiler supports -Wformat-overflow */ +/* #undef HAVE_FORMAT_OVERFLOW */ + +/* fops->fsync() with range */ +/* #undef HAVE_FSYNC_RANGE */ + +/* fops->fsync() without dentry */ +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */ + +/* yes */ +/* #undef HAVE_GENERIC_FADVISE */ + +/* generic_fillattr requires struct mnt_idmap* */ +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ + +/* generic_fillattr requires struct user_namespace* */ +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ + +/* generic_*_io_acct() 3 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */ + +/* generic_*_io_acct() 4 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ + +/* generic_readlink is global */ +/* #undef HAVE_GENERIC_READLINK */ + +/* generic_setxattr() exists */ +/* #undef HAVE_GENERIC_SETXATTR */ + +/* generic_write_checks() takes kiocb */ +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* iops->get_acl() exists */ +/* #undef HAVE_GET_ACL */ + +/* iops->get_acl() takes rcu */ +/* #undef HAVE_GET_ACL_RCU */ + +/* has iops->get_inode_acl() */ +/* #undef HAVE_GET_INODE_ACL */ + +/* iops->get_link() cookie */ +/* #undef HAVE_GET_LINK_COOKIE */ + +/* iops->get_link() delayed */ +/* #undef HAVE_GET_LINK_DELAYED */ + +/* group_info->gid exists */ +/* #undef HAVE_GROUP_INFO_GID */ + +/* has_capability() is available */ +/* #undef HAVE_HAS_CAPABILITY */ + +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ +/* #undef HAVE_IATTR_VFSID */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* iops->getattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_GETATTR */ + +/* iops->setattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_SETATTR */ + +/* APIs for idmapped mount are present */ +/* #undef HAVE_IDMAP_MNT_API */ + +/* Define if compiler supports -Wimplicit-fallthrough */ +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_INFINITE_RECURSION */ + +/* yes */ +/* #undef HAVE_INODE_LOCK_SHARED */ + +/* inode_owner_or_capable() exists */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ + +/* inode_owner_or_capable() takes mnt_idmap */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ + +/* inode_owner_or_capable() takes user_ns */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ + +/* inode_set_flags() exists */ +/* #undef HAVE_INODE_SET_FLAGS */ + +/* inode_set_iversion() exists */ +/* #undef HAVE_INODE_SET_IVERSION */ + +/* inode->i_*time's are timespec64 */ +/* #undef HAVE_INODE_TIMESPEC64_TIMES */ + +/* timestamp_truncate() exists */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* in_compat_syscall() is available */ +/* #undef HAVE_IN_COMPAT_SYSCALL */ + +/* iops->create() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_CREATE_IDMAP */ + +/* iops->create() takes struct user_namespace* */ +/* #undef HAVE_IOPS_CREATE_USERNS */ + +/* iops->mkdir() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKDIR_IDMAP */ + +/* iops->mkdir() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKDIR_USERNS */ + +/* iops->mknod() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKNOD_IDMAP */ + +/* iops->mknod() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKNOD_USERNS */ + +/* iops->permission() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ + +/* iops->permission() takes struct user_namespace* */ +/* #undef HAVE_IOPS_PERMISSION_USERNS */ + +/* iops->rename() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_RENAME_IDMAP */ + +/* iops->rename() takes struct user_namespace* */ +/* #undef HAVE_IOPS_RENAME_USERNS */ + +/* iops->setattr() exists */ +/* #undef HAVE_IOPS_SETATTR */ + +/* iops->symlink() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ + +/* iops->symlink() takes struct user_namespace* */ +/* #undef HAVE_IOPS_SYMLINK_USERNS */ + +/* iov_iter_advance() is available */ +/* #undef HAVE_IOV_ITER_ADVANCE */ + +/* iov_iter_count() is available */ +/* #undef HAVE_IOV_ITER_COUNT */ + +/* iov_iter_fault_in_readable() is available */ +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */ + +/* iov_iter_revert() is available */ +/* #undef HAVE_IOV_ITER_REVERT */ + +/* iov_iter_type() is available */ +/* #undef HAVE_IOV_ITER_TYPE */ + +/* iov_iter types are available */ +/* #undef HAVE_IOV_ITER_TYPES */ + +/* yes */ +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */ + +/* Define to 1 if you have the `issetugid' function. */ +#define HAVE_ISSETUGID 1 + +/* kernel has kernel_fpu_* functions */ +/* #undef HAVE_KERNEL_FPU */ + +/* kernel has asm/fpu/api.h */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ + +/* kernel fpu internal */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ + +/* kernel has asm/fpu/internal.h */ +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ + +/* uncached_acl_sentinel() exists */ +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ + +/* kernel does stack verification */ +/* #undef HAVE_KERNEL_OBJTOOL */ + +/* kernel has linux/objtool.h */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ + +/* kernel_read() take loff_t pointer */ +/* #undef HAVE_KERNEL_READ_PPOS */ + +/* timer_list.function gets a timer_list */ +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */ + +/* struct timer_list has a flags member */ +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */ + +/* timer_setup() is available */ +/* #undef HAVE_KERNEL_TIMER_SETUP */ + +/* kernel_write() take loff_t pointer */ +/* #undef HAVE_KERNEL_WRITE_PPOS */ + +/* kmem_cache_create_usercopy() exists */ +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */ + +/* kstrtoul() exists */ +/* #undef HAVE_KSTRTOUL */ + +/* ktime_get_coarse_real_ts64() exists */ +/* #undef HAVE_KTIME_GET_COARSE_REAL_TS64 */ + +/* ktime_get_raw_ts64() exists */ +/* #undef HAVE_KTIME_GET_RAW_TS64 */ + +/* kvmalloc exists */ +/* #undef HAVE_KVMALLOC */ + +/* Define if you have [aio] */ +/* #undef HAVE_LIBAIO */ + +/* Define if you have [blkid] */ +/* #undef HAVE_LIBBLKID */ + +/* Define if you have [crypto] */ +#define HAVE_LIBCRYPTO 1 + +/* Define if you have [tirpc] */ +/* #undef HAVE_LIBTIRPC */ + +/* Define if you have [udev] */ +/* #undef HAVE_LIBUDEV */ + +/* Define if you have [uuid] */ +/* #undef HAVE_LIBUUID */ + +/* linux/blk-cgroup.h exists */ +/* #undef HAVE_LINUX_BLK_CGROUP_HEADER */ + +/* lseek_execute() is available */ +/* #undef HAVE_LSEEK_EXECUTE */ + +/* makedev() is declared in sys/mkdev.h */ +/* #undef HAVE_MAKEDEV_IN_MKDEV */ + +/* makedev() is declared in sys/sysmacros.h */ +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ + +/* Noting that make_request_fn() returns blk_qc_t */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ + +/* Noting that make_request_fn() returns void */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_VOID */ + +/* iops->mkdir() takes umode_t */ +/* #undef HAVE_MKDIR_UMODE_T */ + +/* Define to 1 if you have the `mlockall' function. */ +#define HAVE_MLOCKALL 1 + +/* lookup_bdev() wants mode arg */ +/* #undef HAVE_MODE_LOOKUP_BDEV */ + +/* Define if host toolchain supports MOVBE */ +#define HAVE_MOVBE 1 + +/* new_sync_read()/new_sync_write() are available */ +/* #undef HAVE_NEW_SYNC_READ */ + +/* folio_wait_bit() exists */ +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ + +/* part_to_dev() exists */ +/* #undef HAVE_PART_TO_DEV */ + +/* iops->getattr() takes a path */ +/* #undef HAVE_PATH_IOPS_GETATTR */ + +/* Define if host toolchain supports PCLMULQDQ */ +#define HAVE_PCLMULQDQ 1 + +/* percpu_counter_add_batch() is defined */ +/* #undef HAVE_PERCPU_COUNTER_ADD_BATCH */ + +/* percpu_counter_init() wants gfp_t */ +/* #undef HAVE_PERCPU_COUNTER_INIT_WITH_GFP */ + +/* posix_acl_chmod() exists */ +/* #undef HAVE_POSIX_ACL_CHMOD */ + +/* posix_acl_from_xattr() needs user_ns */ +/* #undef HAVE_POSIX_ACL_FROM_XATTR_USERNS */ + +/* posix_acl_release() is available */ +/* #undef HAVE_POSIX_ACL_RELEASE */ + +/* posix_acl_release() is GPL-only */ +/* #undef HAVE_POSIX_ACL_RELEASE_GPL_ONLY */ + +/* posix_acl_valid() wants user namespace */ +/* #undef HAVE_POSIX_ACL_VALID_WITH_NS */ + +/* proc_ops structure exists */ +/* #undef HAVE_PROC_OPS_STRUCT */ + +/* iops->put_link() cookie */ +/* #undef HAVE_PUT_LINK_COOKIE */ + +/* iops->put_link() delayed */ +/* #undef HAVE_PUT_LINK_DELAYED */ + +/* iops->put_link() nameidata */ +/* #undef HAVE_PUT_LINK_NAMEIDATA */ + +/* If available, contains the Python version number currently in use. */ +#define HAVE_PYTHON "3.7" + +/* qat is enabled and existed */ +/* #undef HAVE_QAT */ + +/* struct reclaim_state has reclaimed */ +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ + +/* register_shrinker is vararg */ +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ + +/* iops->rename2() exists */ +/* #undef HAVE_RENAME2 */ + +/* struct inode_operations_wrapper takes .rename2() */ +/* #undef HAVE_RENAME2_OPERATIONS_WRAPPER */ + +/* iops->rename() wants flags */ +/* #undef HAVE_RENAME_WANTS_FLAGS */ + +/* REQ_DISCARD is defined */ +/* #undef HAVE_REQ_DISCARD */ + +/* REQ_FLUSH is defined */ +/* #undef HAVE_REQ_FLUSH */ + +/* REQ_OP_DISCARD is defined */ +/* #undef HAVE_REQ_OP_DISCARD */ + +/* REQ_OP_FLUSH is defined */ +/* #undef HAVE_REQ_OP_FLUSH */ + +/* REQ_OP_SECURE_ERASE is defined */ +/* #undef HAVE_REQ_OP_SECURE_ERASE */ + +/* REQ_PREFLUSH is defined */ +/* #undef HAVE_REQ_PREFLUSH */ + +/* revalidate_disk() is available */ +/* #undef HAVE_REVALIDATE_DISK */ + +/* revalidate_disk_size() is available */ +/* #undef HAVE_REVALIDATE_DISK_SIZE */ + +/* struct rw_semaphore has member activity */ +/* #undef HAVE_RWSEM_ACTIVITY */ + +/* struct rw_semaphore has atomic_long_t member count */ +/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */ + +/* linux/sched/signal.h exists */ +/* #undef HAVE_SCHED_SIGNAL_HEADER */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SECURITY_PAM_MODULES_H 1 + +/* setattr_prepare() accepts mnt_idmap */ +/* #undef HAVE_SETATTR_PREPARE_IDMAP */ + +/* setattr_prepare() is available, doesn't accept user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ + +/* setattr_prepare() accepts user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_USERNS */ + +/* iops->set_acl() exists, takes 3 args */ +/* #undef HAVE_SET_ACL */ + +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ + +/* iops->set_acl() takes 4 args */ +/* #undef HAVE_SET_ACL_USERNS */ + +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ + +/* set_cached_acl() is usable */ +/* #undef HAVE_SET_CACHED_ACL_USABLE */ + +/* set_special_state() exists */ +/* #undef HAVE_SET_SPECIAL_STATE */ + +/* struct shrink_control exists */ +/* #undef HAVE_SHRINK_CONTROL_STRUCT */ + +/* kernel_siginfo_t exists */ +/* #undef HAVE_SIGINFO */ + +/* signal_stop() exists */ +/* #undef HAVE_SIGNAL_STOP */ + +/* new shrinker callback wants 2 args */ +/* #undef HAVE_SINGLE_SHRINKER_CALLBACK */ + +/* cs->count_objects exists */ +/* #undef HAVE_SPLIT_SHRINKER_CALLBACK */ + +#if defined(__amd64__) || defined(__i386__) +/* Define if host toolchain supports SSE */ +#define HAVE_SSE 1 + +/* Define if host toolchain supports SSE2 */ +#define HAVE_SSE2 1 + +/* Define if host toolchain supports SSE3 */ +#define HAVE_SSE3 1 + +/* Define if host toolchain supports SSE4.1 */ +#define HAVE_SSE4_1 1 + +/* Define if host toolchain supports SSE4.2 */ +#define HAVE_SSE4_2 1 + +/* Define if host toolchain supports SSSE3 */ +#define HAVE_SSSE3 1 +#endif + +/* STACK_FRAME_NON_STANDARD is defined */ +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ + +/* standalone exists */ +/* #undef HAVE_STANDALONE_LINUX_STDARG */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcat' function. */ +#define HAVE_STRLCAT 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* submit_bio is member of struct block_device_operations */ +/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */ + +/* super_setup_bdi_name() exits */ +/* #undef HAVE_SUPER_SETUP_BDI_NAME */ + +/* super_block->s_user_ns exists */ +/* #undef HAVE_SUPER_USER_NS */ + +/* struct kobj_type has default_groups */ +/* #undef HAVE_SYSFS_DEFAULT_GROUPS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* i_op->tmpfile() exists */ +/* #undef HAVE_TMPFILE */ + +/* i_op->tmpfile() uses old dentry signature */ +/* #undef HAVE_TMPFILE_DENTRY */ + +/* i_op->tmpfile() has mnt_idmap */ +/* #undef HAVE_TMPFILE_IDMAP */ + +/* i_op->tmpfile() has userns */ +/* #undef HAVE_TMPFILE_USERNS */ + +/* totalhigh_pages() exists */ +/* #undef HAVE_TOTALHIGH_PAGES */ + +/* kernel has totalram_pages() */ +/* #undef HAVE_TOTALRAM_PAGES_FUNC */ + +/* Define to 1 if you have the `udev_device_get_is_initialized' function. */ +/* #undef HAVE_UDEV_DEVICE_GET_IS_INITIALIZED */ + +/* kernel has __kernel_fpu_* functions */ +/* #undef HAVE_UNDERSCORE_KERNEL_FPU */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* iops->getattr() takes struct user_namespace* */ +/* #undef HAVE_USERNS_IOPS_GETATTR */ + +/* iops->setattr() takes struct user_namespace* */ +/* #undef HAVE_USERNS_IOPS_SETATTR */ + +/* user_namespace->ns.inum exists */ +/* #undef HAVE_USER_NS_COMMON_INUM */ + +/* iops->getattr() takes a vfsmount */ +/* #undef HAVE_VFSMOUNT_IOPS_GETATTR */ + +/* aops->direct_IO() uses iovec */ +/* #undef HAVE_VFS_DIRECT_IO_IOVEC */ + +/* aops->direct_IO() uses iov_iter without rw */ +/* #undef HAVE_VFS_DIRECT_IO_ITER */ + +/* aops->direct_IO() uses iov_iter with offset */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_OFFSET */ + +/* aops->direct_IO() uses iov_iter with rw and offset */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET */ + +/* filemap_dirty_folio exists */ +/* #undef HAVE_VFS_FILEMAP_DIRTY_FOLIO */ + +/* All required iov_iter interfaces are available */ +/* #undef HAVE_VFS_IOV_ITER */ + +/* fops->iterate() is available */ +/* #undef HAVE_VFS_ITERATE */ + +/* fops->iterate_shared() is available */ +/* #undef HAVE_VFS_ITERATE_SHARED */ + +/* fops->readdir() is available */ +/* #undef HAVE_VFS_READDIR */ + +/* address_space_operations->readpages exists */ +/* #undef HAVE_VFS_READPAGES */ + +/* read_folio exists */ +/* #undef HAVE_VFS_READ_FOLIO */ + +/* fops->read/write_iter() are available */ +/* #undef HAVE_VFS_RW_ITERATE */ + +/* __set_page_dirty_nobuffers exists */ +/* #undef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS */ + +/* __vmalloc page flags exists */ +/* #undef HAVE_VMALLOC_PAGE_KERNEL */ + +/* yes */ +/* #undef HAVE_WAIT_ON_BIT_ACTION */ + +/* wait_queue_entry_t exists */ +/* #undef HAVE_WAIT_QUEUE_ENTRY_T */ + +/* wq_head->head and wq_entry->entry exist */ +/* #undef HAVE_WAIT_QUEUE_HEAD_ENTRY */ + +/* int (*writepage_t)() takes struct folio* */ +/* #undef HAVE_WRITEPAGE_T_FOLIO */ + +/* xattr_handler->get() wants dentry */ +/* #undef HAVE_XATTR_GET_DENTRY */ + +/* xattr_handler->get() wants both dentry and inode */ +/* #undef HAVE_XATTR_GET_DENTRY_INODE */ + +/* xattr_handler->get() wants dentry and inode and flags */ +/* #undef HAVE_XATTR_GET_DENTRY_INODE_FLAGS */ + +/* xattr_handler->get() wants xattr_handler */ +/* #undef HAVE_XATTR_GET_HANDLER */ + +/* xattr_handler has name */ +/* #undef HAVE_XATTR_HANDLER_NAME */ + +/* xattr_handler->list() wants dentry */ +/* #undef HAVE_XATTR_LIST_DENTRY */ + +/* xattr_handler->list() wants xattr_handler */ +/* #undef HAVE_XATTR_LIST_HANDLER */ + +/* xattr_handler->list() wants simple */ +/* #undef HAVE_XATTR_LIST_SIMPLE */ + +/* xattr_handler->set() wants dentry */ +/* #undef HAVE_XATTR_SET_DENTRY */ + +/* xattr_handler->set() wants both dentry and inode */ +/* #undef HAVE_XATTR_SET_DENTRY_INODE */ + +/* xattr_handler->set() wants xattr_handler */ +/* #undef HAVE_XATTR_SET_HANDLER */ + +/* xattr_handler->set() takes mnt_idmap */ *** 160 LINES SKIPPED *** From nobody Sat Jun 17 08:49:55 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjqTv45HZz4fdY9; Sat, 17 Jun 2023 08:49:55 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjqTv3gF6z3K0D; Sat, 17 Jun 2023 08:49:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686991795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kMJiPrxPOg76RPy0NGs5xbO0vuVubpQR19XCPGjcT1k=; b=flhnHJkDLwCQCtNnLFovEmU19rRsLAfmulbqv2lz8ICmX/9gx7mrTGWPjjM3geiorZJk7m 4NGQHekjPEMOA0R2iiHea+zhclXvnyeWbrGNAIi+53FMIF1arZlFuykEOabXhHZ357evEb kgDpuB3EwxCD/7JPzg3rZKfz03Fj6ndxwmReq8vJ+vCI37SlhBgmKWkRCXSFmEr8LlHoTi Cuk/ysbSI8w0uNFnnP7CE9e5W4WP+MpoQhDvI2epvsPVsDqMErfQtwX1PZL3ZhRIajluG7 EcfQW/b/PlKni10TxEwNa+a7XVC2Sq5gPQ+Lza2fmW3SWozh7Kq76vvGfaKCWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686991795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kMJiPrxPOg76RPy0NGs5xbO0vuVubpQR19XCPGjcT1k=; b=d3tpQSmZRgSiSGKIsNjzEXyDD9pbFMx8BWcB6RhCE1jR8n+OseQKSzzcg334xoNRbM5PfY swM+9aQL9Fa3XyTmG8q4CK2Qp16EcNcOKMYc8OSZU+zuuXGEt8Pkxi/FBGzhv3VRY5ultH ZXKpSgQg1uF9ySpJXG2D781m245jzYLqVMo32dnu9hFLkQAfzZDEQAwfhXRZMyix29ZLE2 G3v7BjMNt9f77wzRIIM9ST5FEiTDHiNvB7kVahcJheSv2dalFMTjiKH1+hRJg6bxBiSzQT FAOP2grSM7dnPH1d3VMrO21mYW+bhsaJtWJ+FbVAGSQUGqrnhvhNmO/X245jeQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686991795; a=rsa-sha256; cv=none; b=biIo53y+8kmWixME4VSACOJVWxNMsMtlpopLGqEHcfkE7ajc8mQPx54mZs40RZpwu4iiB5 uWombHxvUqHi5m969IzT95csaJZAs/CEqrWYXtN/qthyV8UD5XIoSowBenkHOqpwNNbAZw arrUzrBw9KI8MMSRdtPyQRjUoAHbNqQItBfNQgXT8piyuKDG4xM4f+0QiJYGjEH0xtReJi xe1WGjm3IfcdgxUeNJJxXuFiaYQ+DwVMzuHPNerywjpJg1eJDBofmDVAnh9qNlefBTUaig d2qyherlzEiXplX98SjwKd8PezCQBegYU7duFxhythnlKg9l+fFGm7837MsG4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjqTv2jk2z13Kf; Sat, 17 Jun 2023 08:49:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35H8ntuF059078; Sat, 17 Jun 2023 08:49:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35H8ntD2059077; Sat, 17 Jun 2023 08:49:55 GMT (envelope-from git) Date: Sat, 17 Jun 2023 08:49:55 GMT Message-Id: <202306170849.35H8ntD2059077@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: 85604f7008ee - main - xdr(3): Fix a typo in a source code comment List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 85604f7008ee7c963bb6dc8417582f9c31bb4ad3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=85604f7008ee7c963bb6dc8417582f9c31bb4ad3 commit 85604f7008ee7c963bb6dc8417582f9c31bb4ad3 Author: Gordon Bergling AuthorDate: 2023-06-17 08:49:40 +0000 Commit: Gordon Bergling CommitDate: 2023-06-17 08:49:40 +0000 xdr(3): Fix a typo in a source code comment - s/curren/current/ MFC after: 3 days --- lib/libc/xdr/xdr_rec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/xdr/xdr_rec.c b/lib/libc/xdr/xdr_rec.c index 3ecae9a1ab44..30980c378f51 100644 --- a/lib/libc/xdr/xdr_rec.c +++ b/lib/libc/xdr/xdr_rec.c @@ -119,7 +119,7 @@ typedef struct rec_strm { char *out_base; /* output buffer (points to frag header) */ char *out_finger; /* next output position */ char *out_boundry; /* data cannot up to this address */ - u_int32_t *frag_header; /* beginning of curren fragment */ + u_int32_t *frag_header; /* beginning of current fragment */ bool_t frag_sent; /* true if buffer sent in middle of record */ /* * in-coming bits From nobody Sat Jun 17 08:51:33 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjqWp1FsQz4ff3q; Sat, 17 Jun 2023 08:51:34 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjqWn6sgnz3KQl; Sat, 17 Jun 2023 08:51:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686991894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pZJEvfiPtx8aag194Hui1jhE6PM4kvmritpQQMqtexw=; b=ZVaYtrrATkiTZwNmwoYUdPflepMnyXN3wWSsc1mB7gEfQOm3e6AIT0Pit3kREwTRKvZSR/ DMx32UqpoxOQsHya7i3qBaEvulXFuH6LwEdCHRgwNutbgURh9LzOCLt6l/VpFoPnwP2vm3 j9RimrknL5/vh0k0Sy64V2uCK1khH1N2TkUo3y32JC9Ayujs6su6yA3FfB4ESFPBxUuVY3 afjph0o+bzboDDYkqxnArrl/Ug2Gds2aVZfop/Deh8LO3uC5ttGpOZSRcoz+cN9fcGkN9w qWLJM2zZktIzWGMHoT0iK7uqR4thMSZ+KBlPLe2yiaKDfg7TBBdujDmXql2VPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686991894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pZJEvfiPtx8aag194Hui1jhE6PM4kvmritpQQMqtexw=; b=qu1aNqNpBsNhCqNKbajsHAGqQSlfT3iytTecJH2f1lRbgZzbARggRSWDD4zGqgQxjRGLOq JqsG7w3jBDgXpWUS0nXYR5qLUYPxQLA1q1wIjPRS0/0KILN+eYVYzKY0/GxuYqTHh0o6rB ep4D7XjJfAS/7rBQOFBLfYBvrOe0/zUueLKLJNjjG1riqOhFkE1RDq7p1KgcbC18hIauEA 17hOnv/tKDbb5EV/NTf/kW//TsUDTSJ8bN2+AcL3QsP+plTclVZoz2RnOZqfUKNW+rufqF r7eFI3/pnxpdc3Ntyqs3FdwMrthV09v1KOHQv9iVIexTJgr0HdKQWygHIwFdeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686991894; a=rsa-sha256; cv=none; b=tvB1u2hWHmFF019Utkzh94eFqx5VmLrc+LKZLuIu3KmDy82+Lh6ivvxQl/IBfSWIz9Wqtg VNC70Czj2+AIIWUD7edK8eSwZzKBDItPJadeIvLqrjIMyPnlBpsYu91qCvQHjvf2J7fK2J /iUgmohoGtovb70D8Bg129iQui+mY0UBmRqOCfeArDh4xhEWITV6nvS+9AnbC9/NxRPRwb JTkOjLzR236T2Wc/rTlBJuCOckKnJxrMI07c1o0Ix8bqJ6enYWAU5+m2T0BpSQsGbRmtbN uokCErugeWWELvlXabmcHNDDi1QIsq0if3U5SRilTCi8H6az9sqRlHCEetB8bg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjqWn5yWVz13m4; Sat, 17 Jun 2023 08:51:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35H8pXJB068642; Sat, 17 Jun 2023 08:51:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35H8pXS6068641; Sat, 17 Jun 2023 08:51:33 GMT (envelope-from git) Date: Sat, 17 Jun 2023 08:51:33 GMT Message-Id: <202306170851.35H8pXS6068641@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: 85b3169b78f7 - main - hifn(4): Fix a typo in a source code comment List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 85b3169b78f763aa7102621c349485cd5509efd3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=85b3169b78f763aa7102621c349485cd5509efd3 commit 85b3169b78f763aa7102621c349485cd5509efd3 Author: Gordon Bergling AuthorDate: 2023-06-17 08:51:23 +0000 Commit: Gordon Bergling CommitDate: 2023-06-17 08:51:23 +0000 hifn(4): Fix a typo in a source code comment - s/regesters/registers/ MFC after: 3 days --- sys/dev/hifn/hifn7751.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/hifn/hifn7751.c b/sys/dev/hifn/hifn7751.c index 0b1d79dc4e1e..3b4d09638478 100644 --- a/sys/dev/hifn/hifn7751.c +++ b/sys/dev/hifn/hifn7751.c @@ -880,7 +880,7 @@ hifn_set_retry(struct hifn_softc *sc) } /* - * Resets the board. Values in the regesters are left as is + * Resets the board. Values in the registers are left as is * from the reset (i.e. initial values are assigned elsewhere). */ static void From nobody Sat Jun 17 09:29:09 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QjrMJ0ls6z4dk45; Sat, 17 Jun 2023 09:29:16 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QjrMH6GJGz3hx0; Sat, 17 Jun 2023 09:29:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686994155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mnmcweZNVAcwXpnazSlWJQwVmT6ugk+0iS0WTNss4EM=; b=MguOTWl6vZxyYr5KTBL/pjm2YCmY596ZhrOGGsbbVto6YZfa7F1LTmoQc8/6xwnXWdIfgI M+bpDJ4gs7m/KN2YwOAGaH6wJ9kEhLc/izA62cZVNPpxkw56W0am64vNFbA61A8X30XUvR cW3aFw/A1ZbOjo410rw/WmBVOi8cziCGYR2iVI7YfwswlNLJBSsUcOObOQd0+PNw1z8pgV 4DC0wC/W4KLlhQn93hBQQYJZ5srgCNlAhRB+2OM/JmayDkmHmsUmSvpnaYYZK9YG/TT1Zb aP5o3n/l6W62zurg4vKUlCJniE0qmWNGLEPCwVZ0yzebUW+qlK7fEuQlrUp/8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686994155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mnmcweZNVAcwXpnazSlWJQwVmT6ugk+0iS0WTNss4EM=; b=XyM39gkJW4xvtvlyvWgeOkFVNlfnu3Ui1Lvp/2tRRVG38Fi8DwEQg6lDFC1nUODfPuhYkq ZsW6gzn+1Ynhuh4yxOdtz01k3Ht0lmAT82yAAKXign7zaR6frp9Von/Kn04tVJfuT/kbdF FbbSSf5WdI8MjJegwCPqI1iTfXVo52YjpanNyyT9J/6UiG4QJ+RF7UI/VEs3GinORV71X9 vfsIoxuwcU56wbtzFWmzMuZj7n+ILXxjiiH0UP3SgUgwgDWvFdnbBJgIlULw7LqyYM0/5V ynNFpx5TvJClzh4g/pXJozQ+QWg6eLS29A1GcawoLB/q7LxuTlYtYvgPqbtWRw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686994155; a=rsa-sha256; cv=none; b=JeBjARKgO0DmGMWJjQ9pxdaqpHt/N3PTbL7HHmKUN/og6rtHHBqAV7vIsPjnJgJ9AxogNS my4oqYpVlqDlJ4jiMZcnPU5Jl/QlNKK1csh+IJ1LNQ/MjD0noOwx344J+3W+ualk/F7oGO 93kvkiFbXeuvD/42N9IaEyUjsgGC3lnbl2hoWf3ubGBFMrjQpgL+eUr791UA2BZY7n+69s wYI/DM8lUhTsbe5MIc8n+pNE9s0k9ETNy1wqhnGnUlOEy1R42/Xc7mtkRXmOasQl6d8eMd HC750j8hQQ2olT+EJvgD/8u6nRBcV0fJim2Yy2OijZGWHUPxyRLwBj43nVliYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QjrMH5HLgz14Y6; Sat, 17 Jun 2023 09:29:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35H9TFDA024955; Sat, 17 Jun 2023 09:29:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35H9T9Bw024937; Sat, 17 Jun 2023 09:29:09 GMT (envelope-from git) Date: Sat, 17 Jun 2023 09:29:09 GMT Message-Id: <202306170929.35H9T9Bw024937@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Martin Matuska Subject: git: e6c1e181ba7f - stable/13 - zfs: merge openzfs/zfs@86783d7d9 (zfs-2.1-release) into stable/13 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e6c1e181ba7f666e02b073be104eb3e241097d83 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=e6c1e181ba7f666e02b073be104eb3e241097d83 commit e6c1e181ba7f666e02b073be104eb3e241097d83 Merge: ded54059fddd 86783d7d92cf Author: Martin Matuska AuthorDate: 2023-06-17 07:14:08 +0000 Commit: Martin Matuska CommitDate: 2023-06-17 07:14:08 +0000 zfs: merge openzfs/zfs@86783d7d9 (zfs-2.1-release) into stable/13 OpenZFS release 2.1.12 Notable upstream pull requeset merges: #14145 Storage device expansion "silently" fails on degraded vdev #14358 Wait for txg sync if the last DRR_FREEOBJECTS might result in a hole #14410 Improve resilver ETAs #14428 Resilver performance tuning #14501 FreeBSD: don't verify recycled vnode for zfs control directory #14524 Ignore too large stack in case of dsl_deadlist_merge #14659 Allow MMP to bypass waiting for other threads #14722 Fix "Detach spare vdev in case if resilvering does not happen" #14774 FreeBSD .zfs fixups #14776 FreeBSD: make zfs_vfs_held() definition consistent with declaration #14788 FreeBSD: add missing vop_fplookup assignments #14794 zpool import -m also removing spare and cache when log device is missing #14795 Fix positive ABD size assertion in abd_verify() #14798 Mark TX_COMMIT transaction with TXG_NOTHROTTLE #14811 Refine special_small_blocks property validation #14816 Fix two abd_gang_add_gang() issues #14819 Add dmu_tx_hold_append() interface #14823 Remove single parent assertion from zio_nowait() #14853 zil: Don't expect zio_shrink() to succeed #14861 Probe vdevs before marking removed #14873 Add the ability to uninitialize a zpool #14892 Fix concurrent resilvers initiated at same time #14903 Fix NULL pointer dereference when doing concurrent 'send' operations #14910 ZIL: Allow to replay blocks of any size Obtained from: OpenZFS OpenZFS tag: zfs-2.1.12 OpenZFS commit: 86783d7d92cf7a859464719a917fdff845b9a9e1 Relnotes: yes sys/contrib/openzfs/META | 4 +- sys/contrib/openzfs/cmd/zdb/zdb.c | 11 +- sys/contrib/openzfs/cmd/zed/agents/zfs_retire.c | 8 +- sys/contrib/openzfs/cmd/zpool/zpool_main.c | 77 +++++-- .../openzfs/config/always-compiler-options.m4 | 31 +++ sys/contrib/openzfs/config/kernel-acl.m4 | 34 +++- .../openzfs/config/kernel-cpu_has_feature.m4 | 29 +++ sys/contrib/openzfs/config/kernel-filemap.m4 | 26 +++ .../openzfs/config/kernel-flush_dcache_page.m4 | 26 +++ .../openzfs/config/kernel-generic_fillattr.m4 | 33 ++- sys/contrib/openzfs/config/kernel-inode-create.m4 | 41 +++- sys/contrib/openzfs/config/kernel-inode-getattr.m4 | 63 ++++-- sys/contrib/openzfs/config/kernel-inode-setattr.m4 | 87 ++++++++ .../openzfs/config/kernel-is_owner_or_cap.m4 | 25 ++- sys/contrib/openzfs/config/kernel-mkdir.m4 | 55 +++-- sys/contrib/openzfs/config/kernel-mknod.m4 | 34 +++- sys/contrib/openzfs/config/kernel-reclaim_state.m4 | 26 +++ sys/contrib/openzfs/config/kernel-rename.m4 | 40 +++- .../openzfs/config/kernel-setattr-prepare.m4 | 44 +++- sys/contrib/openzfs/config/kernel-symlink.m4 | 33 ++- sys/contrib/openzfs/config/kernel-tmpfile.m4 | 33 ++- sys/contrib/openzfs/config/kernel-writepage_t.m4 | 26 +++ sys/contrib/openzfs/config/kernel-xattr-handler.m4 | 91 ++++++--- sys/contrib/openzfs/config/kernel.m4 | 24 ++- sys/contrib/openzfs/config/zfs-build.m4 | 3 +- sys/contrib/openzfs/configure.ac | 1 + sys/contrib/openzfs/contrib/initramfs/scripts/zfs | 6 +- .../openzfs/contrib/pam_zfs_key/pam_zfs_key.c | 13 +- .../include/os/freebsd/zfs/sys/zfs_znode_impl.h | 3 +- .../include/os/linux/kernel/linux/dcache_compat.h | 15 ++ .../include/os/linux/kernel/linux/simd_powerpc.h | 11 + .../include/os/linux/kernel/linux/vfs_compat.h | 21 +- .../include/os/linux/kernel/linux/xattr_compat.h | 27 ++- .../openzfs/include/os/linux/spl/sys/cred.h | 2 + .../openzfs/include/os/linux/spl/sys/types.h | 14 ++ .../openzfs/include/os/linux/zfs/sys/trace_acl.h | 20 +- .../include/os/linux/zfs/sys/zfs_vnops_os.h | 7 +- .../include/os/linux/zfs/sys/zfs_znode_impl.h | 16 +- sys/contrib/openzfs/include/os/linux/zfs/sys/zpl.h | 11 +- sys/contrib/openzfs/include/sys/dmu.h | 3 + sys/contrib/openzfs/include/sys/dmu_objset.h | 7 + sys/contrib/openzfs/include/sys/dmu_tx.h | 1 + sys/contrib/openzfs/include/sys/dnode.h | 10 +- sys/contrib/openzfs/include/sys/fs/zfs.h | 1 + sys/contrib/openzfs/include/sys/spa.h | 3 + sys/contrib/openzfs/include/sys/vdev_initialize.h | 1 + sys/contrib/openzfs/include/sys/zfs_znode.h | 3 +- sys/contrib/openzfs/lib/libzfs/libzfs.abi | 3 +- sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 8 +- sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 15 +- .../openzfs/lib/libzfs_core/libzfs_core.abi | 3 +- sys/contrib/openzfs/man/man4/zfs.4 | 11 +- sys/contrib/openzfs/man/man8/zpool-initialize.8 | 10 +- sys/contrib/openzfs/module/Kbuild.in | 1 + sys/contrib/openzfs/module/icp/algs/edonr/edonr.c | 4 +- .../openzfs/module/icp/algs/skein/skein_block.c | 2 + sys/contrib/openzfs/module/lua/ldo.c | 3 +- .../openzfs/module/os/freebsd/zfs/zfs_ctldir.c | 19 +- .../openzfs/module/os/freebsd/zfs/zfs_znode.c | 8 + sys/contrib/openzfs/module/os/linux/spl/spl-cred.c | 12 ++ .../openzfs/module/os/linux/spl/spl-generic.c | 4 + .../openzfs/module/os/linux/spl/spl-kmem-cache.c | 5 +- sys/contrib/openzfs/module/os/linux/zfs/arc_os.c | 4 + sys/contrib/openzfs/module/os/linux/zfs/policy.c | 2 +- .../openzfs/module/os/linux/zfs/zfs_ctldir.c | 4 + .../openzfs/module/os/linux/zfs/zfs_ioctl_os.c | 4 + .../openzfs/module/os/linux/zfs/zfs_vfsops.c | 4 +- .../openzfs/module/os/linux/zfs/zfs_vnops_os.c | 225 ++++++++++++--------- .../openzfs/module/os/linux/zfs/zfs_znode.c | 18 +- .../openzfs/module/os/linux/zfs/zpl_ctldir.c | 57 +++++- sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 100 ++++++--- .../openzfs/module/os/linux/zfs/zpl_inode.c | 52 ++++- .../openzfs/module/os/linux/zfs/zpl_xattr.c | 41 +++- sys/contrib/openzfs/module/zcommon/Makefile.in | 4 + sys/contrib/openzfs/module/zfs/Makefile.in | 5 + sys/contrib/openzfs/module/zfs/abd.c | 17 +- sys/contrib/openzfs/module/zfs/dmu_recv.c | 26 +++ sys/contrib/openzfs/module/zfs/dmu_send.c | 8 +- sys/contrib/openzfs/module/zfs/dmu_tx.c | 105 ++++++++++ sys/contrib/openzfs/module/zfs/dsl_deadlist.c | 26 ++- sys/contrib/openzfs/module/zfs/dsl_scan.c | 56 +++-- sys/contrib/openzfs/module/zfs/mmp.c | 2 +- sys/contrib/openzfs/module/zfs/spa.c | 27 ++- sys/contrib/openzfs/module/zfs/spa_misc.c | 30 ++- sys/contrib/openzfs/module/zfs/vdev.c | 36 +++- sys/contrib/openzfs/module/zfs/vdev_initialize.c | 66 +++++- sys/contrib/openzfs/module/zfs/vdev_rebuild.c | 27 ++- sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 3 +- sys/contrib/openzfs/module/zfs/zfs_vnops.c | 10 +- sys/contrib/openzfs/module/zfs/zil.c | 52 ++--- sys/contrib/openzfs/module/zfs/zio.c | 2 +- sys/contrib/openzfs/tests/runfiles/common.run | 17 +- sys/contrib/openzfs/tests/runfiles/sanity.run | 1 + .../tests/test-runner/bin/test-runner.py.in | 4 +- .../openzfs/tests/test-runner/bin/zts-report.py.in | 17 +- .../openzfs/tests/zfs-tests/cmd/Makefile.am | 1 + .../tests/zfs-tests/cmd/mmap_sync/.gitignore | 1 + .../tests/zfs-tests/cmd/mmap_sync/Makefile.am | 6 + .../tests/zfs-tests/cmd/mmap_sync/mmap_sync.c | 152 ++++++++++++++ .../openzfs/tests/zfs-tests/include/commands.cfg | 1 + .../tests/functional/alloc_class/Makefile.am | 4 +- .../functional/alloc_class/alloc_class_013_pos.ksh | 3 +- .../functional/alloc_class/alloc_class_014_neg.ksh | 38 ++++ .../functional/alloc_class/alloc_class_015_pos.ksh | 45 +++++ .../functional/cli_root/zpool_import/Makefile.am | 1 + .../cli_root/zpool_import/import_log_missing.ksh | 75 +++++++ .../cli_root/zpool_initialize/Makefile.am | 1 + .../zpool_initialize/zpool_initialize_uninit.ksh | 141 +++++++++++++ .../functional/cli_root/zpool_resilver/Makefile.am | 3 +- .../zpool_resilver/zpool_resilver_concurrent.ksh | 101 +++++++++ .../zpool_trim/zpool_trim_start_and_cancel_pos.ksh | 2 +- .../zfs-tests/tests/functional/mmap/Makefile.am | 4 +- .../zfs-tests/tests/functional/mmap/mmap_mixed.ksh | 86 ++++++++ .../tests/functional/mmap/mmap_sync_001_pos.ksh | 63 ++++++ .../zfs-tests/tests/functional/rsend/Makefile.am | 1 + .../tests/functional/rsend/send-c_volume.ksh | 9 +- .../rsend/send_encrypted_freeobjects.ksh | 87 ++++++++ sys/modules/zfs/zfs_config.h | 73 ++++++- sys/modules/zfs/zfs_gitrev.h | 2 +- 119 files changed, 2707 insertions(+), 453 deletions(-) diff --cc sys/contrib/openzfs/config/kernel-cpu_has_feature.m4 index 000000000000,608faf0f89fe..608faf0f89fe mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-cpu_has_feature.m4 +++ b/sys/contrib/openzfs/config/kernel-cpu_has_feature.m4 diff --cc sys/contrib/openzfs/config/kernel-filemap.m4 index 000000000000,745928168f92..745928168f92 mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-filemap.m4 +++ b/sys/contrib/openzfs/config/kernel-filemap.m4 diff --cc sys/contrib/openzfs/config/kernel-flush_dcache_page.m4 index 000000000000,2340c386ef57..2340c386ef57 mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-flush_dcache_page.m4 +++ b/sys/contrib/openzfs/config/kernel-flush_dcache_page.m4 diff --cc sys/contrib/openzfs/config/kernel-inode-setattr.m4 index 000000000000,45755b4eb273..45755b4eb273 mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-inode-setattr.m4 +++ b/sys/contrib/openzfs/config/kernel-inode-setattr.m4 diff --cc sys/contrib/openzfs/config/kernel-reclaim_state.m4 index 000000000000,9936b3c1001f..9936b3c1001f mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-reclaim_state.m4 +++ b/sys/contrib/openzfs/config/kernel-reclaim_state.m4 diff --cc sys/contrib/openzfs/config/kernel-writepage_t.m4 index 000000000000,3a0cffd98570..3a0cffd98570 mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-writepage_t.m4 +++ b/sys/contrib/openzfs/config/kernel-writepage_t.m4 diff --cc sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/.gitignore index 000000000000,c721f472ba44..c721f472ba44 mode 000000,100644..100644 --- a/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/.gitignore +++ b/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/.gitignore diff --cc sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/Makefile.am index 000000000000,313e8db5c0f4..313e8db5c0f4 mode 000000,100644..100644 --- a/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/Makefile.am +++ b/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/Makefile.am diff --cc sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/mmap_sync.c index 000000000000,226e71be2f57..226e71be2f57 mode 000000,100644..100644 --- a/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/mmap_sync.c +++ b/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_sync/mmap_sync.c diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/alloc_class/alloc_class_014_neg.ksh index 000000000000,1b52014fd2d9..1b52014fd2d9 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/alloc_class/alloc_class_014_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/alloc_class/alloc_class_014_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/alloc_class/alloc_class_015_pos.ksh index 000000000000,49c468af6702..49c468af6702 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/alloc_class/alloc_class_015_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/alloc_class/alloc_class_015_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_import/import_log_missing.ksh index 000000000000,f12cac78540f..f12cac78540f mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_import/import_log_missing.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_import/import_log_missing.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_initialize/zpool_initialize_uninit.ksh index 000000000000,17f776cfbc20..17f776cfbc20 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_initialize/zpool_initialize_uninit.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_initialize/zpool_initialize_uninit.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_resilver/zpool_resilver_concurrent.ksh index 000000000000,4c3b09796869..4c3b09796869 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_resilver/zpool_resilver_concurrent.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_resilver/zpool_resilver_concurrent.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/mmap/mmap_mixed.ksh index 000000000000,6c8246d48acf..6c8246d48acf mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/mmap/mmap_mixed.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/mmap/mmap_mixed.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/mmap/mmap_sync_001_pos.ksh index 000000000000,b764d6607ba6..b764d6607ba6 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/mmap/mmap_sync_001_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/mmap/mmap_sync_001_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/rsend/send_encrypted_freeobjects.ksh index 000000000000,92451bd1ab6f..92451bd1ab6f mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/rsend/send_encrypted_freeobjects.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/rsend/send_encrypted_freeobjects.ksh diff --cc sys/modules/zfs/zfs_config.h index 36a8a00a1d44,000000000000..cc4b81a2cb8a mode 100644,000000..100644 --- a/sys/modules/zfs/zfs_config.h +++ b/sys/modules/zfs/zfs_config.h @@@ -1,993 -1,0 +1,1056 @@@ +/* + * $FreeBSD$ + */ + +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* bio_end_io_t wants 1 arg */ +/* #undef HAVE_1ARG_BIO_END_IO_T */ + +/* lookup_bdev() wants 1 arg */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ + +/* submit_bio() wants 1 arg */ +/* #undef HAVE_1ARG_SUBMIT_BIO */ + +/* bdi_setup_and_register() wants 2 args */ +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 2 args */ +/* #undef HAVE_2ARGS_VFS_GETATTR */ + +/* zlib_deflate_workspacesize() wants 2 args */ +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ + +/* bdi_setup_and_register() wants 3 args */ +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 3 args */ +/* #undef HAVE_3ARGS_VFS_GETATTR */ + +/* vfs_getattr wants 4 args */ +/* #undef HAVE_4ARGS_VFS_GETATTR */ + +/* kernel has access_ok with 'type' parameter */ +/* #undef HAVE_ACCESS_OK_TYPE */ + +/* posix_acl has refcount_t */ +/* #undef HAVE_ACL_REFCOUNT */ + +/* add_disk() returns int */ +/* #undef HAVE_ADD_DISK_RET */ + +/* Define if host toolchain supports AES */ +#define HAVE_AES 1 + +#ifdef __amd64__ +#ifndef RESCUE +/* Define if host toolchain supports AVX */ +#define HAVE_AVX 1 +#endif + +/* Define if host toolchain supports AVX2 */ +#define HAVE_AVX2 1 + +/* Define if host toolchain supports AVX512BW */ +#define HAVE_AVX512BW 1 + +/* Define if host toolchain supports AVX512CD */ +#define HAVE_AVX512CD 1 + +/* Define if host toolchain supports AVX512DQ */ +#define HAVE_AVX512DQ 1 + +/* Define if host toolchain supports AVX512ER */ +#define HAVE_AVX512ER 1 + +/* Define if host toolchain supports AVX512F */ +#define HAVE_AVX512F 1 + +/* Define if host toolchain supports AVX512IFMA */ +#define HAVE_AVX512IFMA 1 + +/* Define if host toolchain supports AVX512PF */ +#define HAVE_AVX512PF 1 + +/* Define if host toolchain supports AVX512VBMI */ +#define HAVE_AVX512VBMI 1 + +/* Define if host toolchain supports AVX512VL */ +#define HAVE_AVX512VL 1 +#endif + +/* bdevname() is available */ +/* #undef HAVE_BDEVNAME */ + +/* bdev_check_media_change() exists */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_63 */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_OLD */ + +/* bdev_kobj() exists */ +/* #undef HAVE_BDEV_KOBJ */ + +/* bdev_max_discard_sectors() is available */ +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ + +/* bdev_max_secure_erase_sectors() is available */ +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ + +/* block_device_operations->submit_bio() returns void */ +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ + +/* bdev_whole() is available */ +/* #undef HAVE_BDEV_WHOLE */ + +/* bio_alloc() takes 4 arguments */ +/* #undef HAVE_BIO_ALLOC_4ARG */ + +/* bio->bi_bdev->bd_disk exists */ +/* #undef HAVE_BIO_BDEV_DISK */ + +/* bio->bi_opf is defined */ +/* #undef HAVE_BIO_BI_OPF */ + +/* bio->bi_status exists */ +/* #undef HAVE_BIO_BI_STATUS */ + +/* bio has bi_iter */ +/* #undef HAVE_BIO_BVEC_ITER */ + +/* bio_*_io_acct() available */ +/* #undef HAVE_BIO_IO_ACCT */ + +/* bio_max_segs() is implemented */ +/* #undef HAVE_BIO_MAX_SEGS */ + +/* bio_set_dev() is available */ +/* #undef HAVE_BIO_SET_DEV */ + +/* bio_set_dev() GPL-only */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ + +/* bio_set_dev() is a macro */ +/* #undef HAVE_BIO_SET_DEV_MACRO */ + +/* bio_set_op_attrs is available */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ + +/* blkdev_get_by_path() handles ERESTARTSYS */ +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ + +/* blkdev_issue_discard() is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD */ + +/* blkdev_issue_secure_erase() is available */ +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ + +/* blkdev_reread_part() exists */ +/* #undef HAVE_BLKDEV_REREAD_PART */ + +/* blkg_tryget() is available */ +/* #undef HAVE_BLKG_TRYGET */ + +/* blkg_tryget() GPL-only */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ + +/* blk_alloc_disk() exists */ +/* #undef HAVE_BLK_ALLOC_DISK */ + +/* blk_alloc_queue() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ + +/* blk_alloc_queue_rh() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ + +/* blk_cleanup_disk() exists */ +/* #undef HAVE_BLK_CLEANUP_DISK */ + +/* blk queue backing_dev_info is dynamic */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ + +/* blk_queue_discard() is available */ +/* #undef HAVE_BLK_QUEUE_DISCARD */ + +/* blk_queue_flag_clear() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */ + +/* blk_queue_flag_set() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_SET */ + +/* blk_queue_flush() is available */ +/* #undef HAVE_BLK_QUEUE_FLUSH */ + +/* blk_queue_flush() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */ + +/* blk_queue_secdiscard() is available */ +/* #undef HAVE_BLK_QUEUE_SECDISCARD */ + +/* blk_queue_secure_erase() is available */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ + +/* blk_queue_update_readahead() exists */ +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ + +/* blk_queue_write_cache() exists */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */ + +/* blk_queue_write_cache() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */ + +/* Define if revalidate_disk() in block_device_operations */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* check_disk_change() exists */ +/* #undef HAVE_CHECK_DISK_CHANGE */ + +/* clear_inode() is available */ +/* #undef HAVE_CLEAR_INODE */ + +/* dentry uses const struct dentry_operations */ +/* #undef HAVE_CONST_DENTRY_OPERATIONS */ + +/* copy_from_iter() is available */ +/* #undef HAVE_COPY_FROM_ITER */ + +/* copy_to_iter() is available */ +/* #undef HAVE_COPY_TO_ITER */ + ++/* cpu_has_feature() is GPL-only */ ++/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ ++ +/* yes */ +/* #undef HAVE_CPU_HOTPLUG */ + +/* current_time() exists */ +/* #undef HAVE_CURRENT_TIME */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* DECLARE_EVENT_CLASS() is available */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ + +/* dentry aliases are in d_u member */ +/* #undef HAVE_DENTRY_D_U_ALIASES */ + +/* dequeue_signal() takes 4 arguments */ +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ + +/* lookup_bdev() wants dev_t arg */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ + +/* sops->dirty_inode() wants flags */ +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */ + +/* disk_*_io_acct() available */ +/* #undef HAVE_DISK_IO_ACCT */ + +/* disk_update_readahead() exists */ +/* #undef HAVE_DISK_UPDATE_READAHEAD */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* d_make_root() is available */ +/* #undef HAVE_D_MAKE_ROOT */ + +/* d_prune_aliases() is available */ +/* #undef HAVE_D_PRUNE_ALIASES */ + +/* dops->d_revalidate() operation takes nameidata */ +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */ + +/* eops->encode_fh() wants child and parent inodes */ +/* #undef HAVE_ENCODE_FH_WITH_INODE */ + +/* sops->evict_inode() exists */ +/* #undef HAVE_EVICT_INODE */ + +/* FALLOC_FL_ZERO_RANGE is defined */ +/* #undef HAVE_FALLOC_FL_ZERO_RANGE */ + +/* fault_in_iov_iter_readable() is available */ +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ + ++/* filemap_range_has_page() is available */ ++/* #undef HAVE_FILEMAP_RANGE_HAS_PAGE */ ++ +/* fops->aio_fsync() exists */ +/* #undef HAVE_FILE_AIO_FSYNC */ + +/* file_dentry() is available */ +/* #undef HAVE_FILE_DENTRY */ + +/* file_inode() is available */ +/* #undef HAVE_FILE_INODE */ + ++/* flush_dcache_page() is GPL-only */ ++/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ ++ +/* iops->follow_link() cookie */ +/* #undef HAVE_FOLLOW_LINK_COOKIE */ + +/* iops->follow_link() nameidata */ +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */ + +/* fops->fsync() with range */ +/* #undef HAVE_FSYNC_RANGE */ + +/* fops->fsync() without dentry */ +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */ + ++/* generic_fillattr requires struct mnt_idmap* */ ++/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ ++ +/* generic_fillattr requires struct user_namespace* */ +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ + +/* generic_*_io_acct() 3 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */ + +/* generic_*_io_acct() 4 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ + +/* generic_readlink is global */ +/* #undef HAVE_GENERIC_READLINK */ + +/* generic_setxattr() exists */ +/* #undef HAVE_GENERIC_SETXATTR */ + +/* generic_write_checks() takes kiocb */ +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* iops->get_acl() exists */ +/* #undef HAVE_GET_ACL */ + +/* iops->get_acl() takes rcu */ +/* #undef HAVE_GET_ACL_RCU */ + +/* has iops->get_inode_acl() */ +/* #undef HAVE_GET_INODE_ACL */ + +/* iops->get_link() cookie */ +/* #undef HAVE_GET_LINK_COOKIE */ + +/* iops->get_link() delayed */ +/* #undef HAVE_GET_LINK_DELAYED */ + +/* group_info->gid exists */ +/* #undef HAVE_GROUP_INFO_GID */ + +/* has_capability() is available */ +/* #undef HAVE_HAS_CAPABILITY */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + ++/* iops->getattr() takes struct mnt_idmap* */ ++/* #undef HAVE_IDMAP_IOPS_GETATTR */ ++ ++/* iops->setattr() takes struct mnt_idmap* */ ++/* #undef HAVE_IDMAP_IOPS_SETATTR */ ++ ++/* Define if compiler supports -Wimplicit-fallthrough */ ++/* #define HAVE_IMPLICIT_FALLTHROUGH 1 */ ++ +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_INFINITE_RECURSION */ + +/* yes */ +/* #undef HAVE_INODE_LOCK_SHARED */ + +/* inode_owner_or_capable() exists */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ + ++/* inode_owner_or_capable() takes mnt_idmap */ ++/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ ++ +/* inode_owner_or_capable() takes user_ns */ - /* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAPPED */ ++/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ + +/* inode_set_flags() exists */ +/* #undef HAVE_INODE_SET_FLAGS */ + +/* inode_set_iversion() exists */ +/* #undef HAVE_INODE_SET_IVERSION */ + +/* inode->i_*time's are timespec64 */ +/* #undef HAVE_INODE_TIMESPEC64_TIMES */ + +/* timestamp_truncate() exists */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* in_compat_syscall() is available */ +/* #undef HAVE_IN_COMPAT_SYSCALL */ + ++/* iops->create() takes struct mnt_idmap* */ ++/* #undef HAVE_IOPS_CREATE_IDMAP */ ++ +/* iops->create() takes struct user_namespace* */ +/* #undef HAVE_IOPS_CREATE_USERNS */ + ++/* iops->mkdir() takes struct mnt_idmap* */ ++/* #undef HAVE_IOPS_MKDIR_IDMAP */ ++ +/* iops->mkdir() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKDIR_USERNS */ + ++/* iops->mknod() takes struct mnt_idmap* */ ++/* #undef HAVE_IOPS_MKNOD_IDMAP */ ++ +/* iops->mknod() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKNOD_USERNS */ + ++/* iops->rename() takes struct mnt_idmap* */ ++/* #undef HAVE_IOPS_RENAME_IDMAP */ ++ +/* iops->rename() takes struct user_namespace* */ +/* #undef HAVE_IOPS_RENAME_USERNS */ + ++/* iops->setattr() exists */ ++/* #undef HAVE_IOPS_SETATTR */ ++ ++/* iops->symlink() takes struct mnt_idmap* */ ++/* #undef HAVE_IOPS_SYMLINK_IDMAP */ ++ +/* iops->symlink() takes struct user_namespace* */ +/* #undef HAVE_IOPS_SYMLINK_USERNS */ + +/* iov_iter_advance() is available */ +/* #undef HAVE_IOV_ITER_ADVANCE */ + +/* iov_iter_count() is available */ +/* #undef HAVE_IOV_ITER_COUNT */ + +/* iov_iter_fault_in_readable() is available */ +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */ + +/* iov_iter_revert() is available */ +/* #undef HAVE_IOV_ITER_REVERT */ + +/* iov_iter_type() is available */ +/* #undef HAVE_IOV_ITER_TYPE */ + +/* iov_iter types are available */ +/* #undef HAVE_IOV_ITER_TYPES */ + +/* yes */ +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */ + +/* Define to 1 if you have the `issetugid' function. */ +#define HAVE_ISSETUGID 1 + +/* kernel has kernel_fpu_* functions */ +/* #undef HAVE_KERNEL_FPU */ + +/* kernel has asm/fpu/api.h */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ + +/* kernel fpu internal */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ + +/* kernel has asm/fpu/internal.h */ +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ + +/* kernel has asm/fpu/xcr.h */ +/* #undef HAVE_KERNEL_FPU_XCR_HEADER */ + +/* kernel fpu and XSAVE internal */ +/* #undef HAVE_KERNEL_FPU_XSAVE_INTERNAL */ + +/* uncached_acl_sentinel() exists */ +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */ + +/* kernel does stack verification */ +/* #undef HAVE_KERNEL_OBJTOOL */ + +/* kernel has linux/objtool.h */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ + +/* kernel_read() take loff_t pointer */ +/* #undef HAVE_KERNEL_READ_PPOS */ + +/* timer_list.function gets a timer_list */ +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */ + +/* struct timer_list has a flags member */ +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */ + +/* timer_setup() is available */ +/* #undef HAVE_KERNEL_TIMER_SETUP */ + +/* kernel_write() take loff_t pointer */ +/* #undef HAVE_KERNEL_WRITE_PPOS */ + +/* kmem_cache_create_usercopy() exists */ +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */ + +/* kstrtoul() exists */ +/* #undef HAVE_KSTRTOUL */ + +/* ktime_get_coarse_real_ts64() exists */ +/* #undef HAVE_KTIME_GET_COARSE_REAL_TS64 */ + +/* ktime_get_raw_ts64() exists */ +/* #undef HAVE_KTIME_GET_RAW_TS64 */ + +/* kvmalloc exists */ +/* #undef HAVE_KVMALLOC */ + +/* Define if you have [aio] */ +/* #undef HAVE_LIBAIO */ + +/* Define if you have [blkid] */ +/* #undef HAVE_LIBBLKID */ + +/* Define if you have [crypto] */ +#define HAVE_LIBCRYPTO 1 + +/* Define if you have [tirpc] */ +/* #undef HAVE_LIBTIRPC */ + +/* Define if you have [udev] */ +/* #undef HAVE_LIBUDEV */ + +/* Define if you have [uuid] */ +/* #undef HAVE_LIBUUID */ + +/* linux/blk-cgroup.h exists */ +/* #undef HAVE_LINUX_BLK_CGROUP_HEADER */ + +/* lseek_execute() is available */ +/* #undef HAVE_LSEEK_EXECUTE */ + +/* makedev() is declared in sys/mkdev.h */ +/* #undef HAVE_MAKEDEV_IN_MKDEV */ + +/* makedev() is declared in sys/sysmacros.h */ +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ + +/* Noting that make_request_fn() returns blk_qc_t */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ + +/* Noting that make_request_fn() returns void */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_VOID */ + +/* iops->mkdir() takes umode_t */ +/* #undef HAVE_MKDIR_UMODE_T */ + +/* Define to 1 if you have the `mlockall' function. */ +#define HAVE_MLOCKALL 1 + +/* lookup_bdev() wants mode arg */ +/* #undef HAVE_MODE_LOOKUP_BDEV */ + +/* Define if host toolchain supports MOVBE */ +#define HAVE_MOVBE 1 + +/* new_sync_read()/new_sync_write() are available */ +/* #undef HAVE_NEW_SYNC_READ */ + +/* folio_wait_bit() exists */ +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ + +/* part_to_dev() exists */ +/* #undef HAVE_PART_TO_DEV */ + +/* iops->getattr() takes a path */ +/* #undef HAVE_PATH_IOPS_GETATTR */ + +/* Define if host toolchain supports PCLMULQDQ */ +#define HAVE_PCLMULQDQ 1 + +/* percpu_counter_add_batch() is defined */ +/* #undef HAVE_PERCPU_COUNTER_ADD_BATCH */ + +/* percpu_counter_init() wants gfp_t */ +/* #undef HAVE_PERCPU_COUNTER_INIT_WITH_GFP */ + +/* posix_acl_chmod() exists */ +/* #undef HAVE_POSIX_ACL_CHMOD */ + +/* posix_acl_from_xattr() needs user_ns */ +/* #undef HAVE_POSIX_ACL_FROM_XATTR_USERNS */ + +/* posix_acl_release() is available */ +/* #undef HAVE_POSIX_ACL_RELEASE */ + +/* posix_acl_release() is GPL-only */ +/* #undef HAVE_POSIX_ACL_RELEASE_GPL_ONLY */ + +/* posix_acl_valid() wants user namespace */ +/* #undef HAVE_POSIX_ACL_VALID_WITH_NS */ + +/* proc_ops structure exists */ +/* #undef HAVE_PROC_OPS_STRUCT */ + +/* iops->put_link() cookie */ +/* #undef HAVE_PUT_LINK_COOKIE */ + +/* iops->put_link() delayed */ +/* #undef HAVE_PUT_LINK_DELAYED */ + +/* iops->put_link() nameidata */ +/* #undef HAVE_PUT_LINK_NAMEIDATA */ + +/* If available, contains the Python version number currently in use. */ +#define HAVE_PYTHON "3.7" + +/* qat is enabled and existed */ +/* #undef HAVE_QAT */ + ++/* struct reclaim_state has reclaimed */ ++/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ ++ +/* register_shrinker is vararg */ +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ + +/* iops->rename() wants flags */ +/* #undef HAVE_RENAME_WANTS_FLAGS */ + +/* REQ_DISCARD is defined */ +/* #undef HAVE_REQ_DISCARD */ + +/* REQ_FLUSH is defined */ +/* #undef HAVE_REQ_FLUSH */ + +/* REQ_OP_DISCARD is defined */ +/* #undef HAVE_REQ_OP_DISCARD */ + +/* REQ_OP_FLUSH is defined */ +/* #undef HAVE_REQ_OP_FLUSH */ + +/* REQ_OP_SECURE_ERASE is defined */ +/* #undef HAVE_REQ_OP_SECURE_ERASE */ + +/* REQ_PREFLUSH is defined */ +/* #undef HAVE_REQ_PREFLUSH */ + +/* revalidate_disk() is available */ +/* #undef HAVE_REVALIDATE_DISK */ + +/* revalidate_disk_size() is available */ +/* #undef HAVE_REVALIDATE_DISK_SIZE */ + +/* struct rw_semaphore has member activity */ +/* #undef HAVE_RWSEM_ACTIVITY */ + +/* struct rw_semaphore has atomic_long_t member count */ +/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */ + +/* linux/sched/signal.h exists */ +/* #undef HAVE_SCHED_SIGNAL_HEADER */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SECURITY_PAM_MODULES_H 1 + ++/* setattr_prepare() accepts mnt_idmap */ ++/* #undef HAVE_SETATTR_PREPARE_IDMAP */ ++ +/* setattr_prepare() is available, doesn't accept user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ + +/* setattr_prepare() accepts user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_USERNS */ + +/* iops->set_acl() exists, takes 3 args */ +/* #undef HAVE_SET_ACL */ + ++/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ ++/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ ++ +/* iops->set_acl() takes 4 args */ +/* #undef HAVE_SET_ACL_USERNS */ + +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ + +/* set_cached_acl() is usable */ +/* #undef HAVE_SET_CACHED_ACL_USABLE */ + +/* set_special_state() exists */ +/* #undef HAVE_SET_SPECIAL_STATE */ + +/* struct shrink_control exists */ +/* #undef HAVE_SHRINK_CONTROL_STRUCT */ + +/* kernel_siginfo_t exists */ +/* #undef HAVE_SIGINFO */ + +/* signal_stop() exists */ +/* #undef HAVE_SIGNAL_STOP */ + +/* new shrinker callback wants 2 args */ +/* #undef HAVE_SINGLE_SHRINKER_CALLBACK */ + +/* cs->count_objects exists */ +/* #undef HAVE_SPLIT_SHRINKER_CALLBACK */ + +#if defined(__amd64__) || defined(__i386__) +/* Define if host toolchain supports SSE */ +#define HAVE_SSE 1 + +/* Define if host toolchain supports SSE2 */ +#define HAVE_SSE2 1 *** 344 LINES SKIPPED *** From nobody Sat Jun 17 10:06:03 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qjs9l2J9Xz4f3Vg; Sat, 17 Jun 2023 10:06:03 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qjs9l1qJ8z3qMW; Sat, 17 Jun 2023 10:06:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686996363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3vSGKZFdyu/zAL9NRW5fvoChZj/qT30vs4l8rsuInOc=; b=FPahwvrHn2LqAr7nmbkj4p4urcV8hE60VcxpFgpHyYCFhtDQHoHe9yS7vwFUwWzT8E7JRb N9AzJexrzwl6ibBleFhf9babAydmx75rc9cCmJTWibWH+rOU2z/DbjtfzroRCYAepHz2ad kmpxrOqZXUG8ionJooEPpr42j0O3whNZvcDUJ86hgTTRtPM98mJnYOajsH2ToB8FuRw5Ho mWgCa82RAxRy9Ws4s99pnmuiMU6x14SXtMaFS/rGupCfB/7XTQ8sykYQwQlayHSRp6UnAQ XFaF58miR7n7SSQJYhOkJKYl4bnsqWrWWkxcZod0eHTJ5fqZVlckPcmXiN9oSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1686996363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3vSGKZFdyu/zAL9NRW5fvoChZj/qT30vs4l8rsuInOc=; b=QxpK+DyZKVggfomCObZlRtBmL29KcPDdnFv4rlnZwM3PECLlY2Zysvh163K4PpoAtWbQUN 9Dez5Dhh/GsEdAQcgbBrtPiMDnEqZLiUWJosJGtEw8Yzu/sG6iIeMIkcSOh3JQzjuSg79k 094F6lE9YnOsPCc+GHUvka9J8uz+oOmucFpWmE2MsJLaBRinlTx/lW9G90z/Kl4K7rBdUd 4UpQNEDgYDSqWb9doykEQgk/4p1DYjm+RUixCZV/H5itQFSAiUY6O57oqGuGh1nuuQ/GO4 y4Bl21H2EiIfBilwr+KP6u0wd/w066NS2wEDVjgnBABGjbQcB2fYmkoI568jtw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1686996363; a=rsa-sha256; cv=none; b=UEpuFh3ZyK8Hv/hXAQu4SqTSIw264at6UyiS1Uf9nu/Sngr9YMK2Aj0qFxU3mp9hcTN42X nA2tcHfGWwkSd8JEKQxjHFoosYzHZJK7JFTT4GcSDRVKbkZIg/vdbcWdkYs9CBok1eAPAR CCBvWO2cJwMo1bQVPZJ0c2gBMUGUuSs/KIvd1Papec7tDyl83bNeM+i6Lsq0CWfTiGpa/a ZbJTD6051YB4tdvjOTxnjwqpH2/Ynhzv2tcUr0QSp8vaD2X/5VYvaA9heA2eZNvEtCtc9H KMhbqoFvwyZh5bqDqYe0me/T76D3ToIomN7T5ImRkJZ0sqWa3keoDOCwBHNv5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qjs9l0sZvz159f; Sat, 17 Jun 2023 10:06:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35HA63V0091044; Sat, 17 Jun 2023 10:06:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35HA6329091043; Sat, 17 Jun 2023 10:06:03 GMT (envelope-from git) Date: Sat, 17 Jun 2023 10:06:03 GMT Message-Id: <202306171006.35HA6329091043@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Joseph Mingrone Subject: git: 1ad8d2ee1f7d - main - tcpdump: Reconnect pfsync printer List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1ad8d2ee1f7dec1d747ec955a68fbbb362958315 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jrm: URL: https://cgit.FreeBSD.org/src/commit/?id=1ad8d2ee1f7dec1d747ec955a68fbbb362958315 commit 1ad8d2ee1f7dec1d747ec955a68fbbb362958315 Author: Joseph Mingrone AuthorDate: 2023-06-16 13:40:00 +0000 Commit: Joseph Mingrone CommitDate: 2023-06-17 10:05:58 +0000 tcpdump: Reconnect pfsync printer Fixes: ee67461e (tpcdump: Update to 4.99.4) Reported by: glebius Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D40578 --- contrib/tcpdump/netdissect.h | 2 +- contrib/tcpdump/print-pfsync.c | 4 ++-- contrib/tcpdump/print.c | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/contrib/tcpdump/netdissect.h b/contrib/tcpdump/netdissect.h index a4b05b557616..7696c4e41cd8 100644 --- a/contrib/tcpdump/netdissect.h +++ b/contrib/tcpdump/netdissect.h @@ -698,7 +698,7 @@ extern int ospf_grace_lsa_print(netdissect_options *, const u_char *, u_int); extern int ospf_te_lsa_print(netdissect_options *, const u_char *, u_int); extern void otv_print(netdissect_options *, const u_char *, u_int); extern void pfsync_ip_print(netdissect_options *, const u_char *, u_int); -extern u_int pfsync_if_print(netdissect_options *, const struct pcap_pkthdr *, const u_char *); +extern void pfsync_if_print(netdissect_options *, const struct pcap_pkthdr *, const u_char *); extern void pgm_print(netdissect_options *, const u_char *, u_int, const u_char *); extern void pim_print(netdissect_options *, const u_char *, u_int, const u_char *); extern void pimv1_print(netdissect_options *, const u_char *, u_int); diff --git a/contrib/tcpdump/print-pfsync.c b/contrib/tcpdump/print-pfsync.c index 83670481d40f..5710e36ded6c 100644 --- a/contrib/tcpdump/print-pfsync.c +++ b/contrib/tcpdump/print-pfsync.c @@ -57,7 +57,7 @@ static void print_src_dst(netdissect_options *, const struct pfsync_state_peer *, uint8_t); static void print_state(netdissect_options *, union pfsync_state_union *, int); -u_int +void pfsync_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, register const u_char *p) { @@ -78,7 +78,7 @@ out: hex_print(ndo, "\n\t", p, caplen); } fn_print_char(ndo, '\n'); - return (caplen); + return; } void diff --git a/contrib/tcpdump/print.c b/contrib/tcpdump/print.c index 42a4548e8689..41a6b524fbf8 100644 --- a/contrib/tcpdump/print.c +++ b/contrib/tcpdump/print.c @@ -188,6 +188,9 @@ static const struct printer printers[] = { #if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H) { pflog_if_print, DLT_PFLOG }, #endif +#if defined(DLT_PFSYNC) && defined(HAVE_NET_PFVAR_H) + { pfsync_if_print, DLT_PFSYNC}, +#endif #ifdef DLT_PKTAP { pktap_if_print, DLT_PKTAP }, #endif From nobody Sat Jun 17 16:19:59 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Qk1TD1ZjPz4fn0q; Sat, 17 Jun 2023 16:20:00 +0000 (UTC) (envelope-from git@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) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Qk1TD18whz4JJC; Sat, 17 Jun 2023 16:20:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1687018800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ye/FPOFOGlEmw1NpSxYFxFmV5aCtkCKYTFUgKYAYMlw=; b=oyWyeGVO7XtEjQfaQvkvaAZxpLvcpxGjnQUI7VUgJv9YJ+Y7tpsvpGudNcnsk5D7DZJ/3R Hx2/GG+tKwrkNlvQvyQfh6k1Fptg9LDRb+rlQLmY2ku3bPUaJaQg5GgVXt7dwZ8vtLDrke JbfS2p1d61H9LEOKnghhjExrzEAprUx0hFMc4wS9ioYk4NP3UnUlmidgQe16fI4qze/b2u lrDt0Xnp3KiXdfKvAREEhLiX44nUiATwjH7QwHkdqcsbzAqH+bAgOuHC3JisD+Aa7f+jLI JGADrJlBEvSxjmq7rpSNt45TmW6Aa9JhERv06t9HDGd8J37+zdt7oDCFZZFwzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1687018800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ye/FPOFOGlEmw1NpSxYFxFmV5aCtkCKYTFUgKYAYMlw=; b=cyLmTIwWY05ACMGRXrYC26W6/YMLvxO2re4N9UmXVJi3GFOkprwqJukXV433zGpO7hHZLm sG9tA8UQ456mh7yl2ilDbzJ7E4dCFhzzs0Bq4ZOOsQ1+m6oQBa9JoE7gwSFm8WeKcVOuRu 1yD6srI2zDPPWB/Q8AnfbxGNnaRVBmgEyNg+f91yXWFf4NbdrsLNLZnBj9TmG+a0OT1tbY RNr9EuXhoyvP72zYV8nAtR5lJa/t//HBH+f1Mg1fIH+4Am1Tq5yVto5uBxoT4zuFukTpt6 O+mZRdQJr8Nkw5Lo3Va5lYQCneWv6tJ5roYU8Nn9F7G083ihXOVy6kGHafw5uQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1687018800; a=rsa-sha256; cv=none; b=XbuPTu1b2j0OrOY4UHK/esL/2zbowTu+053/OufDlkn+Tqp7C57+nI/EWHwN7A4TDKllR6 t//Fku1WIHbc38Db6DGok8J9kfmtlmoikI5vwA8ax48G4MjiYK7wEQavuGxlaXxifBi+nN PUKL8T3uWCamjW8OSOiMku+KLR0OuKZz2n/S6ynF4LafwlIyPbCtkOBdGo/UEFoqxw5x27 siFj9JZ5XNot95bmKFO1FXMPxpFTtpwXNT547ANlvZUDQ6hIWu8o40BmGiqhLc6ofBRVp0 lqZ7swp6w1uxS42VB3BJsHNM0+DbmHLIFwRYnTev0pFKxPJ7c80tm48bIzbsbA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Qk1TC6qnvz1Fy8; Sat, 17 Jun 2023 16:19:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 35HGJxPs000681; Sat, 17 Jun 2023 16:19:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 35HGJxP7000680; Sat, 17 Jun 2023 16:19:59 GMT (envelope-from git) Date: Sat, 17 Jun 2023 16:19:59 GMT Message-Id: <202306171619.35HGJxP7000680@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 9aef25d2686b - main - arm64/disassem.c: Add shifted register definitions with ror List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9aef25d2686b9e7fb9cb700d63291338e8e30bb6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=9aef25d2686b9e7fb9cb700d63291338e8e30bb6 commit 9aef25d2686b9e7fb9cb700d63291338e8e30bb6 Author: Mykola Hohsadze AuthorDate: 2023-06-17 15:31:25 +0000 Commit: Mitchell Horne CommitDate: 2023-06-17 16:19:37 +0000 arm64/disassem.c: Add shifted register definitions with ror Add disassembly support for the following shifted register instructions: * mvn * orn * orr * and * ands * bic * bics * eon * eor * tst According to Arm64 documenation, operational pseuducode of shifted register instruction must return `UNDEFINED` if shift type is `RESERVED` ('11'). Hence, removed "rsv" from `shift_2` array and add "ror". In case of shift type is 3 and this type is `RESERVED`, we will return `undefined`. Reviewed by: mhorne MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D40386 --- sys/arm64/arm64/disassem.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/disassem.c b/sys/arm64/arm64/disassem.c index f1a4f9206c1b..5dc0bf5100ef 100644 --- a/sys/arm64/arm64/disassem.c +++ b/sys/arm64/arm64/disassem.c @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #define OP_RT_SP (1UL << 8) /* Use sp for RT otherwise xzr */ #define OP_RN_SP (1UL << 9) /* Use sp for RN otherwise xzr */ #define OP_RM_SP (1UL << 10) /* Use sp for RM otherwise xzr */ +#define OP_SHIFT_ROR (1UL << 11) /* Use ror shift type */ static const char *w_reg[] = { "w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", @@ -69,7 +70,7 @@ static const char *x_reg[] = { }; static const char *shift_2[] = { - "lsl", "lsr", "asr", "rsv" + "lsl", "lsr", "asr", "ror" }; /* @@ -232,6 +233,28 @@ static struct arm64_insn arm64_i[] = { TYPE_01, 0 }, /* negs shifted register */ { "subs", "SF(1)|1101011|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|RD(5)", TYPE_01, 0 }, /* subs shifted register */ + { "mvn", "SF(1)|0101010|SHIFT(2)|1|RM(5)|IMM(6)|11111|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* mvn shifted register */ + { "orn", "SF(1)|0101010|SHIFT(2)|1|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* orn shifted register */ + { "mov", "SF(1)|0101010000|RM(5)|000000|11111|RD(5)", + TYPE_01, 0 }, /* mov register */ + { "orr", "SF(1)|0101010|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* orr shifted register */ + { "and", "SF(1)|0001010|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* and shifted register */ + { "tst", "SF(1)|1101010|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|11111", + TYPE_01, OP_SHIFT_ROR }, /* tst shifted register */ + { "ands", "SF(1)|1101010|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* ands shifted register */ + { "bic", "SF(1)|0001010|SHIFT(2)|1|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* bic shifted register */ + { "bics", "SF(1)|1101010|SHIFT(2)|1|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* bics shifted register */ + { "eon", "SF(1)|1001010|SHIFT(2)|1|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* eon shifted register */ + { "eor", "SF(1)|1001010|SHIFT(2)|0|RM(5)|IMM(6)|RN(5)|RD(5)", + TYPE_01, OP_SHIFT_ROR }, /* eor shifted register */ { NULL, NULL } }; @@ -420,6 +443,8 @@ disasm(const struct disasm_interface *di, vm_offset_t loc, int altfmt) int pre; /* Indicate if x31 register should be printed as sp or xzr */ int rm_sp, rt_sp, rd_sp, rn_sp; + /* Indicate if shift type ror is supported */ + bool has_shift_ror; /* Initialize defaults, all are 0 except SF indicating 64bit access */ shift = rd = rm = rn = imm = idx = option = amount = scale = 0; @@ -464,6 +489,8 @@ disasm(const struct disasm_interface *di, vm_offset_t loc, int altfmt) rd_sp = i_ptr->special_ops & OP_RD_SP; rn_sp = i_ptr->special_ops & OP_RN_SP; + has_shift_ror = i_ptr->special_ops & OP_SHIFT_ROR; + /* Print opcode by type */ switch (i_ptr->type) { case TYPE_01: @@ -479,6 +506,13 @@ disasm(const struct disasm_interface *di, vm_offset_t loc, int altfmt) rm_absent = arm64_disasm_read_token(i_ptr, insn, "RM", &rm); arm64_disasm_read_token(i_ptr, insn, "SHIFT", &shift); + /* + * if shift type is RESERVED for shifted register instruction, + * print undefined + */ + if (shift == 3 && !has_shift_ror) + goto undefined; + di->di_printf("%s\t", i_ptr->name); /*