From nobody Mon Sep 9 00:02:14 2024 X-Original-To: dev-commits-src-main@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 4X26TM1Btjz5WZQX; Mon, 09 Sep 2024 00:02:15 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X26TM0Zdnz4pyW; Mon, 9 Sep 2024 00:02:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725840135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QRV41b/mcucFzcQeyfyMfv7WSJ7RlQWXKHlVUZdyHvA=; b=bnNWus4CF5nD1fhVX7q1ulDhPSFb5ywVY3Yagm4UaL/AbwFcOjdpIp1T2o1QWzpH2Rz36d Q+fIP3DsLu2C975ROhb/uTDbw4fA8dFhtJ6Tb2dnCQTUvj/YFUJJ0CmZiU+kOABeT9uhAo PyO8V/1lcdEobBWM0kQ8uRXGz3miW/vqveG358EnwvllnjK22WFnxrEstXwiyUiOb7H5pz +m02ooEdn4Leo3q0asIN1JGiCwOFKKDjvuitaN5cVAsoWRURu+HMyeO2hFwkFRDaGqydRq cQshXZVBqg7+VXmI6pRk9tI6ggtOXVsjQSj+lKxtx1KpPuUR5n0N3aMSc8F2jA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725840135; a=rsa-sha256; cv=none; b=cefwM2OD/uaA2lx//p0LMbypN2lI4nH91xtG9/j/r54SYirMetpSM+Sl/wgEGOAE2mJbON kAXlpM0ir13fEoaUBgjCNcjacJcT6vj0NpLjbmr6gtyy9cVC2yzxZ6DvQkG3utZ4XDadGa V5V9gEvwv208pe8er/dpG9uslO8mYjZmWmUEisfwbTanQ+U7g8cOirjkp2b2lLcTFjFusX 9pM7KggqyTW+a61KWz32xxepbaxouj5Gfw5c47ZFevTESuYtr+dwYQmNmpt+EiKWKsUPom Ea/NVkoV893+ZhCBkSBDJjfJAcs2E7+hb0fGMN4E4r7qSnKyYzum8YrPJuXXsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725840135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QRV41b/mcucFzcQeyfyMfv7WSJ7RlQWXKHlVUZdyHvA=; b=PmBMiMRWv0xkE6xi/1s4aQbrV/VAiSjaiJWbu974ySu5w79Hry0EVbXJbPZpy/Jfz+ElRF JGtOSj3Un6cuzhryO6i5XKMpe9FLihGU5HUSAYYq7PXHOC8ZtzSVsNuCI9M1niVxh9j9rk eqvLYlqJHtcBiBBMPgYSQZX9UEq7PBkpYfLioVm9B/IjZlWeHKeZE+G7r0CnT8NgEQMbNq p+nZCEq1sZqpobq8hXPxAwqbBcQJKOqU3YGduUZR7I5CMhkWc/3JSHddzOjAPlSI89CmUN BB1lnum4SIjI3zSD81vPVAzRN6KGITaw6b/BC4AhtfTWwypcPnhbJ0LJNPZ3Hw== 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 4X26TM08bHzgxy; Mon, 9 Sep 2024 00:02:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48902EDq006683; Mon, 9 Sep 2024 00:02:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48902Ejd006680; Mon, 9 Sep 2024 00:02:14 GMT (envelope-from git) Date: Mon, 9 Sep 2024 00:02:14 GMT Message-Id: <202409090002.48902Ejd006680@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Jason A. Harmening" Subject: git: 2ed053cde558 - main - vfs: Add IGNOREWHITEOUT flag and adopt it in UFS/unionfs List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jah X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2ed053cde55869d3440377d479deb00f42ba1cf8 Auto-Submitted: auto-generated The branch main has been updated by jah: URL: https://cgit.FreeBSD.org/src/commit/?id=2ed053cde55869d3440377d479deb00f42ba1cf8 commit 2ed053cde55869d3440377d479deb00f42ba1cf8 Author: Jason A. Harmening AuthorDate: 2024-08-06 04:12:36 +0000 Commit: Jason A. Harmening CommitDate: 2024-09-08 23:34:14 +0000 vfs: Add IGNOREWHITEOUT flag and adopt it in UFS/unionfs This flag is meant to request that the VOP implementation ignore whiteout entries when processing directory contents. Employ this flag (initially) in UFS when determining whether a directory is empty for the purpose of deleting it or renaming another directory over it. The previous UFS behavior was to always ignore whiteouts and to therefore always allow directories containing only whiteouts to be deleted or overwritten. This makes sense when the directory in question is being accessed through a unionfs view in which the whiteouts produce a unionfs directory that is logically empty, but it makes less sense when directly operating against the UFS directory in which case silently discarding the whiteouts may produce unexpected behavior in a current or future unionfs view. IGNOREWHITEOUT is therefore treated as opt-in and only specified by unionfs_rmdir() when invoking VOP_RMDIR() against the upper filesystem. IGNOREWHITEOUT is not currently used for unionfs rename operations, as the current implementation of unionfs_rename() simply forbids renaming over any existing upper filesystem directory in the first place. Differential Revision: https://reviews.freebsd.org/D45987 Reviewed by: olce Tested by: pho --- sys/fs/unionfs/union_vnops.c | 2 +- sys/sys/namei.h | 2 +- sys/ufs/ufs/ufs_extern.h | 2 +- sys/ufs/ufs/ufs_lookup.c | 6 ++++-- sys/ufs/ufs/ufs_vnops.c | 6 ++++-- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index 3f39352ea5c0..e1048e4ba7ab 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -1732,7 +1732,7 @@ unionfs_rmdir(struct vop_rmdir_args *ap) } ump = MOUNTTOUNIONFSMOUNT(ap->a_vp->v_mount); if (ump->um_whitemode == UNIONFS_WHITE_ALWAYS || lvp != NULLVP) - cnp->cn_flags |= DOWHITEOUT; + cnp->cn_flags |= (DOWHITEOUT | IGNOREWHITEOUT); int udvp_lkflags, uvp_lkflags; unionfs_forward_vop_start_pair(udvp, &udvp_lkflags, uvp, &uvp_lkflags); diff --git a/sys/sys/namei.h b/sys/sys/namei.h index 2ea4f502e8fd..1416ff983f32 100644 --- a/sys/sys/namei.h +++ b/sys/sys/namei.h @@ -159,7 +159,7 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, */ #define RDONLY 0x00000200 /* lookup with read-only semantics */ #define ISRESTARTED 0x00000400 /* restarted namei */ -/* UNUSED 0x00000800 */ +#define IGNOREWHITEOUT 0x00000800 /* ignore whiteouts, e.g. when checking if a dir is empty */ #define ISWHITEOUT 0x00001000 /* found whiteout */ #define DOWHITEOUT 0x00002000 /* do whiteouts */ #define WILLBEDIR 0x00004000 /* new files will be dirs; allow trailing / */ diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h index b1d55ed1f180..ccd9046a5fa8 100644 --- a/sys/ufs/ufs/ufs_extern.h +++ b/sys/ufs/ufs/ufs_extern.h @@ -59,7 +59,7 @@ int ufs_bmap_seekdata(struct vnode *, off_t *); int ufs_checkpath(ino_t, ino_t, struct inode *, struct ucred *, ino_t *); void ufs_dirbad(struct inode *, doff_t, char *); int ufs_dirbadentry(struct vnode *, struct direct *, int); -int ufs_dirempty(struct inode *, ino_t, struct ucred *); +int ufs_dirempty(struct inode *, ino_t, struct ucred *, int); int ufs_extread(struct vop_read_args *); int ufs_extwrite(struct vop_write_args *); void ufs_makedirentry(struct inode *, struct componentname *, diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c index 2d6c79970c96..eaf37c58756b 100644 --- a/sys/ufs/ufs/ufs_lookup.c +++ b/sys/ufs/ufs/ufs_lookup.c @@ -1298,7 +1298,8 @@ ufs_dirrewrite(struct inode *dp, struct inode *oip, ino_t newinum, int newtype, * NB: does not handle corrupted directories. */ int -ufs_dirempty(struct inode *ip, ino_t parentino, struct ucred *cred) +ufs_dirempty(struct inode *ip, ino_t parentino, struct ucred *cred, + int skipwhiteout) { doff_t off; struct dirtemplate dbuf; @@ -1321,7 +1322,8 @@ ufs_dirempty(struct inode *ip, ino_t parentino, struct ucred *cred) if (dp->d_reclen == 0) return (0); /* skip empty entries */ - if (dp->d_ino == 0 || dp->d_ino == UFS_WINO) + if (dp->d_ino == 0 || + (skipwhiteout != 0 && dp->d_ino == UFS_WINO)) continue; /* accept only "." and ".." */ # if (BYTE_ORDER == LITTLE_ENDIAN) diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index c62583afaab6..0bca40199071 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -1625,7 +1625,8 @@ relock: */ if ((tip->i_mode & IFMT) == IFDIR) { if ((tip->i_effnlink > 2) || - !ufs_dirempty(tip, tdp->i_number, tcnp->cn_cred)) { + !ufs_dirempty(tip, tdp->i_number, tcnp->cn_cred, + (tcnp->cn_flags & IGNOREWHITEOUT) != 0)) { error = ENOTEMPTY; goto bad; } @@ -2281,7 +2282,8 @@ ufs_rmdir( error = EINVAL; goto out; } - if (!ufs_dirempty(ip, dp->i_number, cnp->cn_cred)) { + if (!ufs_dirempty(ip, dp->i_number, cnp->cn_cred, + (cnp->cn_flags & IGNOREWHITEOUT) != 0)) { error = ENOTEMPTY; goto out; } From nobody Mon Sep 9 00:02:16 2024 X-Original-To: dev-commits-src-main@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 4X26TN2pPnz5WZTH; Mon, 09 Sep 2024 00:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X26TN1d0Pz4qQc; Mon, 9 Sep 2024 00:02:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725840136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0HZYezLdql+igcBX9XuUV2FtBpLovIbzQKHU3sb5DNc=; b=KOy5J+ewtnRUTYbXFqYu6GpxPgVxh0cDzet8lHqlZTAWatzrFoK43Ph/XGE37h70ceAxk1 LTqSBmbMCGGu4MHLVX9eaMiVtQ16wdJ4iOA4FW4M0A9+QakY0zM/F/BSE9veskSjqePbWQ zO4yywkZrbgzQTR/8//jxHDDsEQTP2iIJL9mYUju3syf2Ut6eB4my1IW7nb7gmACRyQjl3 Tw8XKLmrcRvjDd3WfrpsUSEUY3Ut1GbsKRDEd7wtNxBoxvVZ1kusoW9q6SG96RqWzFNMlu CsgUp4efezL/+ZTCAJsnLthHexWEFvde+anQFVvCCbt92EhX2X1woFhrZwOAow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725840136; a=rsa-sha256; cv=none; b=B2u3PhpaXuNF75DGoZmWF4C8xtEWrPbhtgucQElGeYJbAk9RCVKMr3NX16fNxAqtrsAViF Z2I/rqE01Bui83PTiceMJ6XPqf1X96Ck6SZjCffl+BZeFiaOGseUdHSVhsicpZONki0EHR kzuB0uOXGanPviScpTdfNq7XqSHbyfdw+JX76ZIWWi0uWXQdc/xy8tWukmj04PL4NK5lE2 IGdDcvKIAnCUWUQGq0E5GPIY3pVP/rZh01O0NAYXBZVU+vZsMFIK/nY9zGZQqFzmNSg2ud cEwQZDU4FVMQn8t/t0wb7Atu5hWlJB0Q5BqAAPEFUPiG6iIkvCob6cknB+ygcQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725840136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0HZYezLdql+igcBX9XuUV2FtBpLovIbzQKHU3sb5DNc=; b=tPMWqgPU8avbQZ9QcoxbW74S2GLyquGRsBQ8kCr0nCJ6v7lf6szSZ02EEgYN5k7EOjnqXU lw04cpBzMsD0+W3gC+cew2tyQdcsLgHtbyCSxIXknxGHKm0jV/9iv3p0RMiPcLsupQ2T6p o6S/Ztv4Ov3M/Ov1NB8Zv0fRrH7q5wEpC1yVyKj2bHzz+bwXiS/4N8N+RvOVSPwz1ArBZH 7aMI+TYopokEXEX4xwKIO0pFu1QN/U79h0BMHItnKLZGYpALZWudQSYGeSSozwidSDEclT AWYiKDeZReaZqGCRv1JpmTa+TZ7xBzRqv1i5lOE3y3uHGspu1vZpVdhX/Sj8AQ== 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 4X26TN1DKrzgrw; Mon, 9 Sep 2024 00:02:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48902GJU006732; Mon, 9 Sep 2024 00:02:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48902GZm006729; Mon, 9 Sep 2024 00:02:16 GMT (envelope-from git) Date: Mon, 9 Sep 2024 00:02:16 GMT Message-Id: <202409090002.48902GZm006729@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Jason A. Harmening" Subject: git: 8fa5e0f21fd1 - main - tmpfs: Account for whiteouts during rename/rmdir List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jah X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8fa5e0f21fd14bb3f5d977ae9130dae3e197f2ba Auto-Submitted: auto-generated The branch main has been updated by jah: URL: https://cgit.FreeBSD.org/src/commit/?id=8fa5e0f21fd14bb3f5d977ae9130dae3e197f2ba commit 8fa5e0f21fd14bb3f5d977ae9130dae3e197f2ba Author: Jason A. Harmening AuthorDate: 2024-08-06 04:30:30 +0000 Commit: Jason A. Harmening CommitDate: 2024-09-08 23:34:15 +0000 tmpfs: Account for whiteouts during rename/rmdir The existing tmpfs implementation will return ENOTEMPTY for VOP_RMDIR, or for the destination directory of VOP_RENAME, for any case in which the directory is non-empty, even if the directory only contains whiteouts. Fix this by tracking total whiteout dirent allocation separately for each directory, and avoid returning ENOTEMPTY if IGNOREWHITEOUT has been specified by the caller and the total allocation of dirents is not greater than the total whiteout allocation. This addresses "directory not empty" failures seen on some recently-added unionfs stress2 tests which use tmpfs as a base-layer filesystem. A separate issue for independent consideration is that unionfs' default behavior when deleting files or directories is to create whiteouts even when it does not truly need to do so. Differential Revision: https://reviews.freebsd.org/D45987 Reviewed by: kib (prior version), olce Tested by: pho --- sys/fs/tmpfs/tmpfs.h | 12 +++++++++++ sys/fs/tmpfs/tmpfs_subr.c | 36 ++++++++++++++++++++++++++++++- sys/fs/tmpfs/tmpfs_vnops.c | 54 +++++++++++++++++++++++++++++++++++----------- 3 files changed, 88 insertions(+), 14 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs.h b/sys/fs/tmpfs/tmpfs.h index c28f3a02a7bf..58f8720c3f84 100644 --- a/sys/fs/tmpfs/tmpfs.h +++ b/sys/fs/tmpfs/tmpfs.h @@ -292,6 +292,15 @@ struct tmpfs_node { */ off_t tn_readdir_lastn; struct tmpfs_dirent * tn_readdir_lastp; + + /* + * Total size of whiteout directory entries. This + * must be a multiple of sizeof(struct tmpfs_dirent) + * and is used to determine whether a directory is + * empty (excluding whiteout entries) during rename/ + * rmdir operations. + */ + off_t tn_wht_size; /* (v) */ } tn_dir; /* Valid when tn_type == VLNK. */ @@ -484,6 +493,7 @@ int tmpfs_dir_getdents(struct tmpfs_mount *, struct tmpfs_node *, struct uio *, int, uint64_t *, int *); int tmpfs_dir_whiteout_add(struct vnode *, struct componentname *); void tmpfs_dir_whiteout_remove(struct vnode *, struct componentname *); +void tmpfs_dir_clear_whiteouts(struct vnode *); int tmpfs_reg_resize(struct vnode *, off_t, boolean_t); int tmpfs_reg_punch_hole(struct vnode *vp, off_t *, off_t *); int tmpfs_chflags(struct vnode *, u_long, struct ucred *, struct thread *); @@ -533,6 +543,8 @@ tmpfs_update(struct vnode *vp) #define TMPFS_VALIDATE_DIR(node) do { \ MPASS((node)->tn_type == VDIR); \ MPASS((node)->tn_size % sizeof(struct tmpfs_dirent) == 0); \ + MPASS((node)->tn_dir.tn_wht_size % sizeof(struct tmpfs_dirent) == 0); \ + MPASS((node)->tn_dir.tn_wht_size <= (node)->tn_size); \ } while (0) /* diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c index a5eb865f2996..41d1f27caf13 100644 --- a/sys/fs/tmpfs/tmpfs_subr.c +++ b/sys/fs/tmpfs/tmpfs_subr.c @@ -646,6 +646,7 @@ tmpfs_alloc_node(struct mount *mp, struct tmpfs_mount *tmp, __enum_uint8(vtype) nnode->tn_dir.tn_parent = (parent == NULL) ? nnode : parent; nnode->tn_dir.tn_readdir_lastn = 0; nnode->tn_dir.tn_readdir_lastp = NULL; + nnode->tn_dir.tn_wht_size = 0; nnode->tn_links++; TMPFS_NODE_LOCK(nnode->tn_dir.tn_parent); nnode->tn_dir.tn_parent->tn_links++; @@ -1831,13 +1832,16 @@ int tmpfs_dir_whiteout_add(struct vnode *dvp, struct componentname *cnp) { struct tmpfs_dirent *de; + struct tmpfs_node *dnode; int error; error = tmpfs_alloc_dirent(VFS_TO_TMPFS(dvp->v_mount), NULL, cnp->cn_nameptr, cnp->cn_namelen, &de); if (error != 0) return (error); + dnode = VP_TO_TMPFS_DIR(dvp); tmpfs_dir_attach(dvp, de); + dnode->tn_dir.tn_wht_size += sizeof(*de); return (0); } @@ -1845,13 +1849,43 @@ void tmpfs_dir_whiteout_remove(struct vnode *dvp, struct componentname *cnp) { struct tmpfs_dirent *de; + struct tmpfs_node *dnode; - de = tmpfs_dir_lookup(VP_TO_TMPFS_DIR(dvp), NULL, cnp); + dnode = VP_TO_TMPFS_DIR(dvp); + de = tmpfs_dir_lookup(dnode, NULL, cnp); MPASS(de != NULL && de->td_node == NULL); + MPASS(dnode->tn_dir.tn_wht_size >= sizeof(*de)); + dnode->tn_dir.tn_wht_size -= sizeof(*de); tmpfs_dir_detach(dvp, de); tmpfs_free_dirent(VFS_TO_TMPFS(dvp->v_mount), de); } +/* + * Frees any dirents still associated with the directory represented + * by dvp in preparation for the removal of the directory. This is + * required when removing a directory which contains only whiteout + * entries. + */ +void +tmpfs_dir_clear_whiteouts(struct vnode *dvp) +{ + struct tmpfs_dir_cursor dc; + struct tmpfs_dirent *de; + struct tmpfs_node *dnode; + + dnode = VP_TO_TMPFS_DIR(dvp); + + while ((de = tmpfs_dir_first(dnode, &dc)) != NULL) { + KASSERT(de->td_node == NULL, ("%s: non-whiteout dirent %p", + __func__, de)); + dnode->tn_dir.tn_wht_size -= sizeof(*de); + tmpfs_dir_detach(dvp, de); + tmpfs_free_dirent(VFS_TO_TMPFS(dvp->v_mount), de); + } + MPASS(dnode->tn_size == 0); + MPASS(dnode->tn_dir.tn_wht_size == 0); +} + /* * Resizes the aobj associated with the regular file pointed to by 'vp' to the * size 'newsize'. 'vp' must point to a vnode that represents a regular file. diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c index 718cfef6bfa3..b278c3153863 100644 --- a/sys/fs/tmpfs/tmpfs_vnops.c +++ b/sys/fs/tmpfs/tmpfs_vnops.c @@ -1078,7 +1078,9 @@ tmpfs_rename(struct vop_rename_args *v) } if (fnode->tn_type == VDIR && tnode->tn_type == VDIR) { - if (tnode->tn_size > 0) { + if (tnode->tn_size != 0 && + ((tcnp->cn_flags & IGNOREWHITEOUT) == 0 || + tnode->tn_size > tnode->tn_dir.tn_wht_size)) { error = ENOTEMPTY; goto out_locked; } @@ -1239,6 +1241,16 @@ tmpfs_rename(struct vop_rename_args *v) tde = tmpfs_dir_lookup(tdnode, tnode, tcnp); tmpfs_dir_detach(tdvp, tde); + /* + * If we are overwriting a directory, per the ENOTEMPTY check + * above it must either be empty or contain only whiteout + * entries. In the latter case (which can only happen if + * IGNOREWHITEOUT was passed in tcnp->cn_flags), clear the + * whiteout entries to avoid leaking memory. + */ + if (tnode->tn_type == VDIR && tnode->tn_size > 0) + tmpfs_dir_clear_whiteouts(tvp); + /* Update node's ctime because of possible hardlinks. */ tnode->tn_status |= TMPFS_NODE_CHANGED; tmpfs_update(tvp); @@ -1309,6 +1321,7 @@ tmpfs_rmdir(struct vop_rmdir_args *v) { struct vnode *dvp = v->a_dvp; struct vnode *vp = v->a_vp; + struct componentname *cnp = v->a_cnp; int error; struct tmpfs_dirent *de; @@ -1320,12 +1333,16 @@ tmpfs_rmdir(struct vop_rmdir_args *v) dnode = VP_TO_TMPFS_DIR(dvp); node = VP_TO_TMPFS_DIR(vp); - /* Directories with more than two entries ('.' and '..') cannot be - * removed. */ - if (node->tn_size > 0) { - error = ENOTEMPTY; - goto out; - } + /* + * Directories with more than two non-whiteout entries ('.' and '..') + * cannot be removed. + */ + if (node->tn_size != 0 && + ((cnp->cn_flags & IGNOREWHITEOUT) == 0 || + node->tn_size > node->tn_dir.tn_wht_size)) { + error = ENOTEMPTY; + goto out; + } if ((dnode->tn_flags & APPEND) || (node->tn_flags & (NOUNLINK | IMMUTABLE | APPEND))) { @@ -1334,15 +1351,15 @@ tmpfs_rmdir(struct vop_rmdir_args *v) } /* This invariant holds only if we are not trying to remove "..". - * We checked for that above so this is safe now. */ + * We checked for that above so this is safe now. */ MPASS(node->tn_dir.tn_parent == dnode); /* Get the directory entry associated with node (vp). This was * filled by tmpfs_lookup while looking up the entry. */ - de = tmpfs_dir_lookup(dnode, node, v->a_cnp); + de = tmpfs_dir_lookup(dnode, node, cnp); MPASS(TMPFS_DIRENT_MATCHES(de, - v->a_cnp->cn_nameptr, - v->a_cnp->cn_namelen)); + cnp->cn_nameptr, + cnp->cn_namelen)); /* Check flags to see if we are allowed to remove the directory. */ if ((dnode->tn_flags & APPEND) != 0 || @@ -1353,8 +1370,19 @@ tmpfs_rmdir(struct vop_rmdir_args *v) /* Detach the directory entry from the directory (dnode). */ tmpfs_dir_detach(dvp, de); - if (v->a_cnp->cn_flags & DOWHITEOUT) - tmpfs_dir_whiteout_add(dvp, v->a_cnp); + + /* + * If we are removing a directory, per the ENOTEMPTY check above it + * must either be empty or contain only whiteout entries. In the + * latter case (which can only happen if IGNOREWHITEOUT was passed + * in cnp->cn_flags), clear the whiteout entries to avoid leaking + * memory. + */ + if (node->tn_size > 0) + tmpfs_dir_clear_whiteouts(vp); + + if (cnp->cn_flags & DOWHITEOUT) + tmpfs_dir_whiteout_add(dvp, cnp); /* No vnode should be allocated for this entry from this point */ TMPFS_NODE_LOCK(node); From nobody Mon Sep 9 13:16:02 2024 X-Original-To: dev-commits-src-main@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 4X2S5G2M8Zz5WMXy; Mon, 09 Sep 2024 13:16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2S5G1tRRz4JjC; Mon, 9 Sep 2024 13:16:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725887762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z98lueAYVf2lNzZHVFwlEevLd3jxPg2vSkVlfuwPNw4=; b=Vr2mxDwKpuoVSEtsSgaduwT0P0JD7m7ywny06rUDbAFGCklOjZEXjGxIvQjt5+PAwEIqq4 GpMKDJvabaKHH9OAIaENpCVN0qti4ErIkIm5zRds6NDP7N/M2sX9ntYtTfLbWpyozpv2Gw QR7mPk6hFbEJLClui7coCfy/JeIDoCOVLRjmmSLkVQiw3S3dwjaJDST+M11M7Fhy3X4Phf xFX5znmugoBiUnw9+5RRSgIIEb4TzruPdazIXRSqFJYzf6cgGq6q49MhOHB9Z7YM10P95l SiYLiQPFzfnCBJSVmmnqL0t4NKUTz6unWVAoeEGLZ7dGMC5PNXTgwN64uDVQKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725887762; a=rsa-sha256; cv=none; b=N6Xb7YbSTrHd+wC+Y9GVvK5EaHIQeAr2bfoBB1GhS6CRHVn6Kr+G4IwnPw54p84xiHj71E 74CTyXHOqsmka0n85k0wfjMK3XBcKeyb1T6ieaOJiZP+2Iwmy5trs/NRfbhGH3iqArmOXf zfEyHT54rf4VhCiFklfmC2jTogdcQRq8xBJx62gvNTnViUbPI40ap4d26KlDokjfMT8ezp scvNGxSlxuZqnWA+KWBHOXQnhjlCCZM/e0MOKXOoTcyNLxy7WPy93DSzIRni69PVivoNSo 4GZmVtfIjnmfu+W/eQHzaP/AceL8Ae5c2QJFy4tCmHJGv3CFJ+sOC3NyGIBvcA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725887762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z98lueAYVf2lNzZHVFwlEevLd3jxPg2vSkVlfuwPNw4=; b=dL/wUnsemNtgsbRrQn9lExMRbPQC3Spq7pE7aXMjyZ8aFJvObqwxmTXYQs14dJJU0tnsXK bBakxJdfq6HvrnPR2p3Cnm+Ag4IzZlvmXVwQb4rkJAuFvh5/jSEA3qpNi8CWo/be4AqhFr Bjq9xt+e6+iD+FYj3z0oW7iTPrg7QtmzazWwpMp2GRLr+VaQRP4BcXtR9Bsm/XszLsYLPv FcrqWuVofU00QPBV9nP6PyXgfMBujqEYRTqZz/W6yNOkVYfMQI4w+NWeFEgCZkvkbHs3P5 Qy+0Mjy/I+vVloqJe5C6dFp8R7+w8QSI0Mb2Vlh9Wo3ANHy2Vwc1bvEkvBWxsA== 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 4X2S5G17qDz14f9; Mon, 9 Sep 2024 13:16:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489DG2KC051330; Mon, 9 Sep 2024 13:16:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489DG2cq051327; Mon, 9 Sep 2024 13:16:02 GMT (envelope-from git) Date: Mon, 9 Sep 2024 13:16:02 GMT Message-Id: <202409091316.489DG2cq051327@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: 31ca046e2250 - main - arm: Only define get_cntxct_a64_unstable when used List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 31ca046e2250e30cb92a546ecad7ec07e4b016ca Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=31ca046e2250e30cb92a546ecad7ec07e4b016ca commit 31ca046e2250e30cb92a546ecad7ec07e4b016ca Author: Andrew Turner AuthorDate: 2024-09-09 13:15:39 +0000 Commit: Andrew Turner CommitDate: 2024-09-09 13:15:39 +0000 arm: Only define get_cntxct_a64_unstable when used When building an ACPI only kernel get_cntxct_a64_unstable in the Arm generic tiner driver is unused. Add an #ifdef FDT check around it. Sponsored by: Arm Ltd --- sys/arm/arm/generic_timer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index d3e264527a7f..9b5f0f52368b 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -187,6 +187,7 @@ get_freq(void) return (get_el0(cntfrq)); } +#ifdef FDT static uint64_t get_cntxct_a64_unstable(bool physical) { @@ -208,6 +209,7 @@ get_cntxct_a64_unstable(bool physical) return (val); } +#endif static uint64_t get_cntxct(bool physical) From nobody Mon Sep 9 13:16:03 2024 X-Original-To: dev-commits-src-main@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 4X2S5H3mZSz5WMsh; Mon, 09 Sep 2024 13:16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2S5H2MRYz4JV3; Mon, 9 Sep 2024 13:16:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725887763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EYfjR52Br0SwgZ14CV28R5jK2iL21V2lcCRCf+F52P0=; b=AFMPrHHZJ11lM0C+iIkNevHNJyHSzIY/eGnjSO2qEi3PlNKa30IG2TGFXY5uRl0BCMvJFi jLNE1jE8+n2PShs0pCFRkenY5zyqZale9ODkJwfiL4E/maBPL54uf8f6uApT1DDuqbACxD 3xpRb29eH8Xqrkb65h4d+rGn5UQuVHqqPq3U53QPRUWq0Q2wetbQM7gdOhWJb3zbNJARiO SPbkiFR+x6RLo8wd59ThDcgFFsTa7CBxlO1HtirXkD0lnQ2obbfkVe1ui5SUuFheL2nEKX uk5Q73Jx+tZ7IKzQwL0/+MyWv3Q7vGRiDznR7MsPTx2My2DwqBkMAIT3phh+PA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725887763; a=rsa-sha256; cv=none; b=NV/za428AZ5i6Ui5O2DMPNkiYQUtBpHPxFyjCLPongZKBz/9l1KbfzfSV9dsBueKmP5HZr ANCY/E24K1TZ8dZUnYkYpi/xWJ2yqhUpShVq9OA/TRSPm/b8D46vO0UYU+niYbRb4oVfSs hlTKJHf8bR6xw++H9SCb5QKj7DwLLKpkfYFm1vPDUt+L7Ogf2GHFZtt2l0cfLclt3ipQAo K/t0rZk0jhMstECX/rPLI+qUUe1gv1PN2UBlcXGY+kBGoBlQ2E2mniT9PO1kDcleYX5s+p Zuelf/VioD47lYMAmJvOFLyE7eQBjJb/6bgi+D3orD5vB3lI6ELKT3u17PkvsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725887763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EYfjR52Br0SwgZ14CV28R5jK2iL21V2lcCRCf+F52P0=; b=JYg/AzYA9Bu1ULGj5SA5pmoHiDhiy/WqMZZKdtyEr3E773ZSoQOYwloPNuIP4rT6strRpe /yktCM12KdPEAO0UHOz5ME3vkaNqlcUwKBMZ7NWE0C/r/g/1+FlRU4rUBO0T/0KuFzHsy2 0sQGH0/xJsvjhu7SMvVAW1lHppOJ8ETbD1P8fligjzyeFl9SJWe/VOr7Fn3voGrz23IInk U0ujQgo05dTSyO6IUiWHn5UFDxTFvQGC84jRPeDVxXjnvgT860+tKJyd+MOy5UzHgLhM/M aB5IHa3iqOhKXhXqQuoySa0GhFthj4JmayOrRBUzh7SDnTB120iwsDnSskNJ/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 4X2S5H1tVnz14fB; Mon, 9 Sep 2024 13:16:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489DG38k051392; Mon, 9 Sep 2024 13:16:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489DG3Ef051389; Mon, 9 Sep 2024 13:16:03 GMT (envelope-from git) Date: Mon, 9 Sep 2024 13:16:03 GMT Message-Id: <202409091316.489DG3Ef051389@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: ecde7bb28567 - main - arm64/vmm: Fix when VMM is built into the kernel List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: ecde7bb2856722e493a3799e8498fe83b3b1ac2b Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=ecde7bb2856722e493a3799e8498fe83b3b1ac2b commit ecde7bb2856722e493a3799e8498fe83b3b1ac2b Author: Andrew Turner AuthorDate: 2024-09-09 13:15:42 +0000 Commit: Andrew Turner CommitDate: 2024-09-09 13:15:42 +0000 arm64/vmm: Fix when VMM is built into the kernel Sponsored by: Arm Ltd --- sys/conf/files.arm64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index 4cfe87f5a508..fc7c770683fe 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -117,7 +117,7 @@ dev/iommu/busdma_iommu.c optional iommu dev/iommu/iommu_gas.c optional iommu arm64/vmm/vmm.c optional vmm -arm64/vmm/vmm_dev.c optional vmm +arm64/vmm/vmm_dev_machdep.c optional vmm arm64/vmm/vmm_instruction_emul.c optional vmm arm64/vmm/vmm_arm64.c optional vmm arm64/vmm/vmm_reset.c optional vmm From nobody Mon Sep 9 13:16:04 2024 X-Original-To: dev-commits-src-main@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 4X2S5J52HBz5WMY0; Mon, 09 Sep 2024 13:16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2S5J31h3z4JV9; Mon, 9 Sep 2024 13:16:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725887764; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=grBBQs8DP0PVuYuwPBTQ7UvQDHPuZD20/e7YyX4WdPY=; b=n8uVXPx9djCYMBhUViD4qLbzJIRGDfGdcN/uDEvl/bDj57MLwRVzLGatGcqsA9KifZGwS6 vOlpYm9qvBD08AuCHCITED5dQ0db+mbgw1qxZ5/0aD8DZtlhdKI1dp3vavbZ+oWv1q022y GA3fph7xGnjbgnptm2R4LDrPYxJwcfJDWywsjNu8RaTBw0EN3G2LNqrzzsm0UEIjCdO815 3KmhgGY/ifQMkLIhQ9jCj206jaUN/PGoj2wH8sQMawX8ilXUo1nQuXGQuL8ikVLj27XhhC yfZFYmWUiibnCeiW0l1hf7By9ijwU6ZkzlTQSDRefK4XqSvKL0ZnbBaLhns3Dw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725887764; a=rsa-sha256; cv=none; b=XuxPT29ZX1xt50AUBjPEnnFPhbLcrSIcwrOMoEiph8BfrzLoyyCoDOeDuP/HjM6+5LxQdd wyp2mD7uJiRlw6UhZ7G9WyaxJea6sXQf7NGbKo3FT0+pjF+QmbfZUtv242Pb3JLsQil0GQ LebFuzcAZzz1BfFKG7xcqlb3j/WXykLruVXYkzi9Iq8cSyyaP66zAKqc08ac3ghoAlCubc Wn5VgUcbr02T3UX9MxVCA72tV0c8/wplIBKGlt6PlbD3t6L9p7agFCi9VC7zbE3eO5JtH3 sO7Fz1eogVfRw/gaUD63+kP+nT567861mS0qaowzSBIL0YQWf3wgvuss85u9PQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725887764; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=grBBQs8DP0PVuYuwPBTQ7UvQDHPuZD20/e7YyX4WdPY=; b=WwsYBobkMWST6ZC+T3cRAxlCudxngTs3sti8ItMWYQfktJePTUIoRM+RYe5k6WXyspD5S7 Ga7oWdKikNu2d57xZ/AHcvVtZ6PMDxi7RPghD5Hr3YuzOkb/sqgiF07hnZ+zHAWMF/Qp18 VwLKONCj0CmdMq0nV6nfRlepnsjIYlB39Ivi91RNtY6rXcci57jt6Kcgmqm2Jr2CeihgWg gFiatx8hoLx8c0MXx5MV73eAdzhUv7YkOhr3log3XvuDLtPH0olQxRBuvdoHoDqvooW+so r7tPDNajkxI1GXIIxZd3I6r3Msp2NXT1lhTcFFNi8MRONqS/Kc0Wv2yyKX8d0g== 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 4X2S5J2Y4tz14hF; Mon, 9 Sep 2024 13:16:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489DG4Mf051444; Mon, 9 Sep 2024 13:16:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489DG4pk051441; Mon, 9 Sep 2024 13:16:04 GMT (envelope-from git) Date: Mon, 9 Sep 2024 13:16:04 GMT Message-Id: <202409091316.489DG4pk051441@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: 33ba37525b1d - main - sys/conf: Check for FDT in FDT only files List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 33ba37525b1d3f6ef21e6aadc089e67e30e06264 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=33ba37525b1d3f6ef21e6aadc089e67e30e06264 commit 33ba37525b1d3f6ef21e6aadc089e67e30e06264 Author: Andrew Turner AuthorDate: 2024-09-09 13:15:44 +0000 Commit: Andrew Turner CommitDate: 2024-09-09 13:15:44 +0000 sys/conf: Check for FDT in FDT only files Fix the arm64 ACPI only build by adding FDT checks to files.arm64. Sponsored by: Arm Ltd --- sys/conf/files.arm64 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index fc7c770683fe..cd161a18500f 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -599,10 +599,10 @@ arm64/freescale/imx/clk/imx_clk_frac_pll.c optional fdt soc_freescale_imx8 # iMX drivers arm/freescale/imx/imx_gpio.c optional gpio soc_freescale_imx8 fdt -arm/freescale/imx/imx_i2c.c optional fsliic +arm/freescale/imx/imx_i2c.c optional fdt fsliic arm/freescale/imx/imx_machdep.c optional fdt soc_freescale_imx8 arm64/freescale/imx/imx7gpc.c optional fdt soc_freescale_imx8 -dev/ffec/if_ffec.c optional ffec +dev/ffec/if_ffec.c optional fdt ffec # Marvell arm/mv/a37x0_gpio.c optional a37x0_gpio gpio fdt From nobody Mon Sep 9 14:55:42 2024 X-Original-To: dev-commits-src-main@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 4X2VJH0RcGz5Wc7k; Mon, 09 Sep 2024 14: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2VJH0057z4drv; Mon, 9 Sep 2024 14: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=1725893743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RbGHJ2JEoO7/0VplPMDcelJmBqMA5ixT8KfxCf/CQ0E=; b=b6FrpRs5FYd/zjUHX/WUESCgBel2xniGTaNmursBQxBzQ3tdw7Dev1LQDYRsMXQYhtNL1P y4I9EsCMHUIS1wwNUpSE2BaL01xF8DrLKmzl5sOLyIdfZImzo0n03bnlY5YYsYYhf4VO2W ZHBtd1yBKA6RbWx3hv7EhaKzoolEVV0tgYuYSKCTVJiepSB1cqwHEWX4DcoWm7J1OQ8JZG iTq5BH+s/LhoPpqjkHyT9ahhP8RE8biSTR81jDQdi1bu2h7UbmZuDSjuxh5dZkBBOhMFJm a+uLV6oq7UrSkdpEQKWHCQjFeax6FQAynbKfFtA8FgtqvdvTkjHRVvDRGUPW1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725893743; a=rsa-sha256; cv=none; b=GW12CqJROz3oMghsGFYEbGnqkvmbYHhbQstYxTerW2QImNTq+Ivj00V8pxLdAw9ipFPUae k3mZt6Rg3wv3sHXEbwtnrwKHIaxrx9kP7V1LjZXhDObWgRLQBf0bIaiUk0IRh1u4+VLBoa CcRdcdimD2IYtu4Y9CPbbILhoBd8k3RjQCiMbpJ30MUjMwrz/yt/xqEeuUTLLUyACzX6xr fVX1k3dT9nOXUHYzH7DDQH+UdO1mAGV3TbQmQLdBVst3uri1QtyNk6GIRnLFB4eP8Gjp4Z Aja/RGvuPmSBJS5GuEnLcm2fweN8TQ4yTyhQmLcxYYCWv6GXcon2rKxZFqj2aQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725893743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RbGHJ2JEoO7/0VplPMDcelJmBqMA5ixT8KfxCf/CQ0E=; b=wbJOxVJwtiy6LUSDfVlN/kTyHxv4Hhh10G8CzwOemNiZjgEoVTRSVf+/m+4WSIFW0Xi39q w1nTJSt2zVnyyA5O7vArONn5TYZ52wVqXX2YSDYe03LfZMpa15BUiMENDhgty79H/uHNqK kfQHY8Yq/W7mJxAvmXbhQ9aPBU3QAEcKHNE9M4bde7KxXwnslAkXp1qVU3A+3iXAnBu2Ie MWWXsUNBaSm8Wt4SSy9oVDilseSB9Y9gAqFdKEt0H+eUY5ksg6tcgEPAp+faR3nkUI1Cv4 ZtYBY/HzuvHB5uZ3lbxvuAok9vWtwaHHE+xy0hrlVCpwOLN88sPNCdHHTEoLVg== 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 4X2VJG6bM3z16vd; Mon, 9 Sep 2024 14:55:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489Etgo0020997; Mon, 9 Sep 2024 14:55:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489EtgX8020994; Mon, 9 Sep 2024 14:55:42 GMT (envelope-from git) Date: Mon, 9 Sep 2024 14:55:42 GMT Message-Id: <202409091455.489EtgX8020994@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Wolfram Schneider Subject: git: c77ca9a72c99 - main - stale-symlink-buildworld.sh: improve documentation List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wosch X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c77ca9a72c9934c407852f00d88cba09f5c9e31f Auto-Submitted: auto-generated The branch main has been updated by wosch: URL: https://cgit.FreeBSD.org/src/commit/?id=c77ca9a72c9934c407852f00d88cba09f5c9e31f commit c77ca9a72c9934c407852f00d88cba09f5c9e31f Author: Wolfram Schneider AuthorDate: 2024-09-09 14:55:29 +0000 Commit: Wolfram Schneider CommitDate: 2024-09-09 14:55:29 +0000 stale-symlink-buildworld.sh: improve documentation --- tools/build/stale-symlink-buildworld.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/build/stale-symlink-buildworld.sh b/tools/build/stale-symlink-buildworld.sh index 32ebc1f9d66d..acc3fb0baaf2 100755 --- a/tools/build/stale-symlink-buildworld.sh +++ b/tools/build/stale-symlink-buildworld.sh @@ -4,8 +4,17 @@ # # stale-symlink-buildworld.sh - check for stale symlinks on a FreeBSD system # -# You can run the script before or after `make installworld' +# The purpose of this script is to detect stale symlinks, report them to +# stderr and exit with a non-zero status. All other cases are ignored, +# such as no symlinks, missing directories, permission problems, etc. # +# You can run the script before or after `make installworld', or any other +# make targets thats installs files. +# +# You can also check your local ports with: +# +# env STALE_SYMLINK_BUILDWORLD_DIRS=/usr/local ./stale-symlink-buildworld.sh + PATH="/bin:/usr/bin"; export PATH From nobody Mon Sep 9 15:28:45 2024 X-Original-To: dev-commits-src-main@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 4X2W2P3XJVz5WgFH; Mon, 09 Sep 2024 15:28: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2W2P2yGzz4m3g; Mon, 9 Sep 2024 15:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725895725; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wAW71jmb5Bl3hjBvzNF1Gv0HPPh55T3TwSfzn3wMj8c=; b=lSVG3ZFOlFkufJr3TM4BWwlTNfs1eXSvbON0hdWoY3B0H7xk3L1SofSB+ecHXROsgjs5Vb 5CzDSwaZWuFVYZSlsdeVPSYwhLDZiWUDYajMy0tr19+LwVw+u92FupEBwSnHwVgfwMryxP Pg/X7nR3kG/gHKMkI3LgZb9NjNc4t9koqGaXcMo8Zp5oxJwG5O6ILDoefq4JNPJe7gvUi7 jGRdD4EaWxicnLVUsU7NSzPSRyRqbqH29+Gdoa7SLH+PHT0CFBfoT131ODpPXqC++HD3Un sME1G2nLhu8JkJEGaTqMIQdMI0QvyomADIC4DyL302qd1S5Df5TUDX262PcTUQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725895725; a=rsa-sha256; cv=none; b=KoCOSupQz5XouT1uNUVDydpxk4dkmC9wGLv2OLRzU1TuyPjrHC7678BSyQWGYkezDE4iNv bE+6/wLlS4IAYxdnWEa4JgzBAkD0IBO+dKlGqxYW4DBg3yvnENTMOciyz6dzz6U077QfAG p8hcu1w2zDHPNyj0V+RBhes/Nyp3hm5nocXb1pgBl2xPBQf9KLhl3ob9cTdonkaNONMPu+ YocevR3gLS2v84/mIVbCRXMEh19p5umc8JCISFrjglBjk0AnyQrZnx7phLh4o01TL4uplo Vr/cxf+oJWGHyiCuq14MUd6TLwhlTXonbo3wjaM1uu/bbC89f7qSTaZPmUFDRA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725895725; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wAW71jmb5Bl3hjBvzNF1Gv0HPPh55T3TwSfzn3wMj8c=; b=Bt3rE1/oYJzHJ9PR9GNZMwIkgtBdL0avGRMeewF5RKPVnbrkj6QKHt+xMC3nQGu89m1CKT EPIDgqv4Mw3cTiqpBqwBhLc2+PmCCVyT8v1gKFZSNiQv0dj5YD3o+jAXPsICuIzdjof7cN BiCpCaR6IEhlHUvmamEWSn80/ezZLTmRbvczDBjSjAh8erkz6spVmWZFUtPC4x6qRkVQwz TRJFweGrsPpo55DlB894H2XHg3qGlJZ81orBBjbgOinS2XVRqwnHWSCpmyT1MMXuUUgslY vBQvet+B9zDobkCXSSc27scDlWUiHC+BY8J+XekPn3BN8A7hrswe+mGAvOL4WA== 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 4X2W2P2Ywzz17nZ; Mon, 9 Sep 2024 15:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489FSjul073698; Mon, 9 Sep 2024 15:28:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489FSjjU073695; Mon, 9 Sep 2024 15:28:45 GMT (envelope-from git) Date: Mon, 9 Sep 2024 15:28:45 GMT Message-Id: <202409091528.489FSjjU073695@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: b103fc49ae16 - main - netinet tests: Make some tests more reliable when run in parallel List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: b103fc49ae160fdce221c2fffa98dde9bc0ff3b0 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b103fc49ae160fdce221c2fffa98dde9bc0ff3b0 commit b103fc49ae160fdce221c2fffa98dde9bc0ff3b0 Author: Mark Johnston AuthorDate: 2024-09-09 15:28:24 +0000 Commit: Mark Johnston CommitDate: 2024-09-09 15:28:24 +0000 netinet tests: Make some tests more reliable when run in parallel Many of the modified tests add epair interfaces to the host, though most of the tests themselves run in a VNET jail. scapy in particular becomes unhappy when the list of interfaces changes as it is running, so, to improve reliability of parallel test runs, isolate tests which add epairs to the host. Also serialize arp tests, as they examine the dmesg as part of the test. The list of modified tests is not exhaustive, it was determined by running the test suite with parallelization enabled and looking at failures. It may be easier to just automatically enable VNET jailing of all netinet tests, but let's be more particular for now. Reviewed by: kp MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D46606 --- tests/sys/netinet/Makefile | 11 +++++++++-- tests/sys/netinet6/Makefile | 18 +++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/tests/sys/netinet/Makefile b/tests/sys/netinet/Makefile index 7e12dae6a4fa..a6f07d135724 100644 --- a/tests/sys/netinet/Makefile +++ b/tests/sys/netinet/Makefile @@ -27,8 +27,15 @@ ATF_TESTS_SH= arp \ ATF_TESTS_PYTEST+= carp.py ATF_TESTS_PYTEST+= igmp.py -TEST_METADATA.divert+= required_programs="python" -TEST_METADATA.forward+= required_programs="python" +# Some of the arp tests look for log messages in the dmesg buffer, so run them +# serially to avoid problems with interleaved output. +TEST_METADATA.arp+= is_exclusive="true" +TEST_METADATA.divert+= required_programs="python" \ + execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.forward+= required_programs="python" \ + execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" TEST_METADATA.output+= required_programs="python" TEST_METADATA.redirect+= required_programs="python" TEST_METADATA.tcp6_v4mapped_bind_test+= is_exclusive="true" diff --git a/tests/sys/netinet6/Makefile b/tests/sys/netinet6/Makefile index 45e88b50164b..753571fbf7a1 100644 --- a/tests/sys/netinet6/Makefile +++ b/tests/sys/netinet6/Makefile @@ -16,7 +16,23 @@ ATF_TESTS_SH= exthdr \ ndp \ proxy_ndp -TEST_METADATA.output6+= required_programs="python" +TEST_METADATA.divert+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.exthdr+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.forward6+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.ndp+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.output6+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" \ + required_programs="python" +TEST_METADATA.proxy_ndp+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.redirect+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" +TEST_METADATA.scapyi386+= execenv="jail" \ + execenv_jail_params="vnet allow.raw_sockets" ${PACKAGE}FILES+= exthdr.py \ mld.py \ From nobody Mon Sep 9 15:28:46 2024 X-Original-To: dev-commits-src-main@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 4X2W2Q4dBKz5Wg9P; Mon, 09 Sep 2024 15:28: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2W2Q3vmtz4mDN; Mon, 9 Sep 2024 15:28:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725895726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bpnL3iXG+PS+vpMf9Qia05Z/H86o1lLrSr/6rB8TyfU=; b=i5/zc5SDm2nFuCJT03Ex5bhQiDLq8aMYZuHj08qMdmTQ3GWTaGtsU6J9irEIn5pFWRU2Aa KmtfNL2U/TqkVJfPBJnaHi4zFPiBDiR2oeRL8XlcYi1/3AyUc1BJ7BwfFSHRDV11LnGnOz eXj9WTsATdJgIfv+8Ly8sRjHS1tjJAa8ufn7Vn/JA2zbK9zhBIYlHOo7ZkzEVKXXjSwuyM Pww7OY0WURSGxqmHoAVyxAyRzBevQbnlk+nFj/d+T5ZJQZK7b6eMPDIJYOolg9gLfPPdgy 9WRtBTK5bGUXJ1XlY2r1d4vYHEj6g1xQBW7jcgYLFP1J1lwCKTz+P5RvRYIf2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725895726; a=rsa-sha256; cv=none; b=tZrmlqkYeHSjc+/d3J5dbKBcBcMY2NcqY7juRMw0dYDk/weM1OX9Ui4au2xNQN87FQuxo6 MnoaQVrzPE2HaOVISRoON/wT6wMl2mSk6H5aOyoqOGFLGDUnrpjmrXZG8ZpyTUVdKwkA9N Ucvj3L3f8zlBlE1bsv89j2N2ypRhjG4MqaCv3c5G3HeDskj9xNEsPVTSucyYNa7+vT7Dw0 +fVRg1ILpFIh9OoygggBTUbd12hA232cve/ldOQ36UjGXEDjcgmtW9rseeTXj4N/Jqa4SR g0NFamMz+2dXm/rsRxgxiaMqd4Y5o1v7t5WfQx2a7PoxUyoPMGvBYlL3+/ZWYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725895726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bpnL3iXG+PS+vpMf9Qia05Z/H86o1lLrSr/6rB8TyfU=; b=ku96vzXyaRk+sZnK48bpf+D3EE6obsj/f7pnX/tdQXvSYFlgz9PlUe8P/Y55IxpD27e1SW AZNTuoWO6cVZvhQfspSOogpnfeslp+eOAv8Zfps/A8CzgHw6yDFD2oGNTauFNyxufjftBm U/5g+ZxUQt06sluF2EVp6n941h6ouB7cQAnqgSjVcqlPyIP8/NYYry/1hiT5voyGTCB751 qG8D8gLu0KgjacQ1mcBRjgSTMmF+1BEIo+vR5N8eM7UJvlolpGrHT9xKAYMqjnXxmMc2AD ZIt503bepqYmdYrQa8zH8IQoiMKihGi7hSP8CnJbW+j0ef8pZYLlHvd0YANXOA== 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 4X2W2Q3W3xz17lf; Mon, 9 Sep 2024 15:28:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489FSkj6073739; Mon, 9 Sep 2024 15:28:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489FSkgJ073736; Mon, 9 Sep 2024 15:28:46 GMT (envelope-from git) Date: Mon, 9 Sep 2024 15:28:46 GMT Message-Id: <202409091528.489FSkgJ073736@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: c6b41ba65021 - main - mixer tests: Serialize List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: c6b41ba65021eff2b1db9157f813666a3e0543a1 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c6b41ba65021eff2b1db9157f813666a3e0543a1 commit c6b41ba65021eff2b1db9157f813666a3e0543a1 Author: Mark Johnston AuthorDate: 2024-09-08 17:32:10 +0000 Commit: Mark Johnston CommitDate: 2024-09-09 15:28:30 +0000 mixer tests: Serialize These tests modify attributes of a global mixer device, and aren't prepared to run in parallel. --- usr.sbin/mixer/tests/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/mixer/tests/Makefile b/usr.sbin/mixer/tests/Makefile index 9a5bb3a183ab..c8056169f9a4 100644 --- a/usr.sbin/mixer/tests/Makefile +++ b/usr.sbin/mixer/tests/Makefile @@ -1,3 +1,6 @@ ATF_TESTS_SH+= mixer_test +# mixer tests fiddle with a singleton dummy audio device. +TEST_METADATA.mixer_test= is_exclusive=true + .include From nobody Mon Sep 9 15:28:47 2024 X-Original-To: dev-commits-src-main@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 4X2W2R70rRz5Wg78; Mon, 09 Sep 2024 15:28: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2W2R4yKkz4m3x; Mon, 9 Sep 2024 15:28:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725895727; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hdBFMVaArXDrxcpVGYWnejQBynoTBB0W9O2iDOX///U=; b=Tl2zzRw/CQjfKUKh7hQ/998Q5GrxZNdjkcsmPx/Cc6S4tsmW46rkNk4keSJT4ed1y8+DMg w3+7mqr67gOSp/dyJLEuG9e5t5vg2HqkAuyXSWaNX6n3M0cfYD1w299yvdhV9J1ig0N+U4 4v9f326akhpNi1opfoAxRY3ilUKNxXj3HsVr55fg41ssnWrR569lg2moHc9NpsSC5eB1Nn IUAKaRzedrvIgcEckjAD2h1wMyCwGMS8oF50xK9Soi3k8NafcafOH9HasDvlGUsb4sGWwC NTU5DdHUw9QtjphT+qs47gjwBkITmtLRSltNkmwbWGA+xB68vdHmD+mEGGB4vQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725895727; a=rsa-sha256; cv=none; b=Wi8Xd0fIpq0lu4r9RvJQZRetAsgFHRe/vKUjzYKw17ZxgwPPMhChSkVZyFRDQIuiLoSftT iUaUR56jdJcg7wlrFdinjte2Uw1gSSkIFMR6PyH63B2+j+J1Qtq/Krz1DXs+NPCz+iazUB ye67BzsZ904ilpfw3Kx/hu/dVbITUTDUZ7Qk7fT2khy1S7+CKMA+zOkCLurJYo5kNiavY/ Vl9EE1ohkx1URCWYynqigPPYImYVPoqHTwuU02aDoBWhPQGK0z+F6AuQVmz+ouygeNjDAb UTaQ3/ytlZAk3kl3mLZwCRcHQdkHxYhs/hue0ZNzt6MHLqbT1mvTa66OjJJ9OA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725895727; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hdBFMVaArXDrxcpVGYWnejQBynoTBB0W9O2iDOX///U=; b=TbX6iX0a/DzrlDkQqslJoZ7GaYuxLDv9eArKjEvgtarByu7u4vu0G+0T2DyHR2UrvoSldO hcYxt1p7lQ5fIVc+S8gzI2wvNEmMveYmnCHv4efUhY0FDk7kxZNxgjtOjs4uH85jTeuI6W YdZ/2zem4A8ejs6rcQe2BjP8yGKREwpbY8diemsZ7xW3G0l66y431B9Xpt3x71CshkMEau m8Hn7MJaDLivqB/q9v/2u8dwH7o3tGG0SQfonUw2v8p0VknmeB9PZXA3mid/puNKsQr0m1 2trWcq5hH6B0qbnzEuLrz/3veYy3iv3RZrjMI+xBzrt0D+rj3UEcxslCpq4jDA== 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 4X2W2R4Rq1z17nb; Mon, 9 Sep 2024 15:28:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489FSlOI073796; Mon, 9 Sep 2024 15:28:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489FSlPe073793; Mon, 9 Sep 2024 15:28:47 GMT (envelope-from git) Date: Mon, 9 Sep 2024 15:28:47 GMT Message-Id: <202409091528.489FSlPe073793@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: 34d9de9658af - main - RELNOTES: Document recent bhyve commits which have user-visible impact List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 34d9de9658afd433c31bc7c0967b7df771ff59cf Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=34d9de9658afd433c31bc7c0967b7df771ff59cf commit 34d9de9658afd433c31bc7c0967b7df771ff59cf Author: Mark Johnston AuthorDate: 2024-09-09 15:19:28 +0000 Commit: Mark Johnston CommitDate: 2024-09-09 15:28:30 +0000 RELNOTES: Document recent bhyve commits which have user-visible impact --- RELNOTES | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/RELNOTES b/RELNOTES index 0f95a95e2c65..a4889546c233 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,21 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +e962b37bf0ff: + When running bhyve(8) guests with a boot ROM, i.e., bhyveload(8) is not + used, bhyve now assumes that the boot ROM will enable PCI BAR decoding. + This is incompatible with some boot ROMs, particularly outdated builds + of edk2-bhyve. To restore the old behavior, add + "pci.enable_bars='true'" to your bhyve configuration. + + Note in particular that the uefi-edk2-bhyve package has been renamed + to edk2-bhyve. + +43caa2e805c2: + amd64 bhyve(8)'s "lpc.bootrom" and "lpc.bootvars" options are + deprecated. Use the top-level "bootrom" and "bootvars" options + instead. + 822ca3276345: byacc was updated to 20240109. From nobody Mon Sep 9 16:05:32 2024 X-Original-To: dev-commits-src-main@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 4X2Wrr26kDz5WlCj; Mon, 09 Sep 2024 16:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2Wrr1HXnz4rd8; Mon, 9 Sep 2024 16:05:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725897932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HybpquYKdLv4EBMeY1BLK3cQJxls5IkIFqEGhTWAIr8=; b=eVbc2P5isIsp/1iV6+P6nrKt0KahzDqAhGopmSNpWKYF5NC9eRwAeZ5OGvhe97SGhyozn9 3w9gK9cYcpp8iAF/62L6nx4km9ZOik0R5Dbu7xF0HCSalHEnwB1JkFqWZIfe0EU0KQTksV oq/LR0bpOCC88F9lqUZKAZLoxBB6V66ZYp7n5QS7ei/moeJE9z/VfXguVV0hV2fVfSuuP2 exRxMTJBqJ52PXJKkXTzdp7ELxd/FSYbcH4Zzdku/vfUOxQM2HJE8hywrto1bK0qAGpKnR yekJ9L8cdFi+GRrMRrmtFmqJCifFndnvhPI8HlvbaccMU36iFDfGiyQ0h/qEnA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725897932; a=rsa-sha256; cv=none; b=h04yym01PI9lyFx2BFdcmi6ZhghC9lWOsAEZ+ZllGu6B8eC6tZ/afATXjPDIrRCwK9YJLn 6eedLc/xm34eY5iXian4tbX0NIRgra4hTRbjnBQjZtno/39PHNhlltV+wMyOwG4n5EkXhe 24xirJlk+qkhdamIqUlKntNCt5jwXHex9AuFOLeppHJhxKgI+FLiTAsnOnbNlUBb/R5Yds bA5QucRbp6VqZ7ucxk/g8H3BTrzBpaS0lX8t7wJP36bFcbN7GRojjymIvAvRrx+Oxmes0X reatlKaFZ2myiQyBgxeBVJ4ACt1iP0ex/Dha2rpNSRvJuw/MKHFiz9xNFem3oA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725897932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HybpquYKdLv4EBMeY1BLK3cQJxls5IkIFqEGhTWAIr8=; b=EA4m7oHrmctVzO87jpsiWpG7zr03cGw9TeE1MY02RLJXPDGfD6RXPrhGFOGU7IETIZb1Ot G3kn+yXCV7bP/obBVBDhyJ6KBvY+N9CX4NsLy8JnFLze8dW5iRHEexmnG4n9z9ttoYpV2o 2T8/Luhun3e4DqIxAUA+nOEByw9dTv/Z+P9P8sfQqUO1amqRIO0zQQOzBmz0pmRqcsASKY nPGYs1HCTUfZDB6FKqHsU5D1vXey0d2Qo+pHmxQ6bl6YryPCzfREGMY81XtaPPrfWpOxOh OA6qrRthA9OaxT+YNZ0b933ccbvDgItkp6I9ExraeBKMLfL6AZrxDzjPsPpVIw== 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 4X2Wrr0t9hz18c8; Mon, 9 Sep 2024 16:05:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489G5W0N041790; Mon, 9 Sep 2024 16:05:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489G5Wij041787; Mon, 9 Sep 2024 16:05:32 GMT (envelope-from git) Date: Mon, 9 Sep 2024 16:05:32 GMT Message-Id: <202409091605.489G5Wij041787@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: 610348a90467 - main - arm64: add additional MDCR_EL2 fields List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 610348a90467980de0498fab8dfdddf221d7a604 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=610348a90467980de0498fab8dfdddf221d7a604 commit 610348a90467980de0498fab8dfdddf221d7a604 Author: Zachary Leaf AuthorDate: 2024-07-03 07:26:34 +0000 Commit: Andrew Turner CommitDate: 2024-09-09 15:56:53 +0000 arm64: add additional MDCR_EL2 fields Monitor Debug Configuration Register provides EL2 configuration options for self-hosted debug and the Performance Monitors Extension. Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46191 --- sys/arm64/include/hypervisor.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 1a27a8dd919b..499dba9092fc 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -267,5 +267,35 @@ #define MDCR_EL2_TDOSA (0x1UL << MDCR_EL2_TDOSA_SHIFT) #define MDCR_EL2_TDRA_SHIFT 11 #define MDCR_EL2_TDRA (0x1UL << MDCR_EL2_TDRA_SHIFT) +#define MDCR_E2PB_SHIFT 12 +#define MDCR_E2PB_MASK (0x3UL << MDCR_E2PB_SHIFT) +#define MDCR_TPMS_SHIFT 14 +#define MDCR_TPMS (0x1UL << MDCR_TPMS_SHIFT) +#define MDCR_EnSPM_SHIFT 15 +#define MDCR_EnSPM (0x1UL << MDCR_EnSPM_SHIFT) +#define MDCR_HPMD_SHIFT 17 +#define MDCR_HPMD (0x1UL << MDCR_HPMD_SHIFT) +#define MDCR_TTRF_SHIFT 19 +#define MDCR_TTRF (0x1UL << MDCR_TTRF_SHIFT) +#define MDCR_HCCD_SHIFT 23 +#define MDCR_HCCD (0x1UL << MDCR_HCCD_SHIFT) +#define MDCR_E2TB_SHIFT 24 +#define MDCR_E2TB_MASK (0x3UL << MDCR_E2TB_SHIFT) +#define MDCR_HLP_SHIFT 26 +#define MDCR_HLP (0x1UL << MDCR_HLP_SHIFT) +#define MDCR_TDCC_SHIFT 27 +#define MDCR_TDCC (0x1UL << MDCR_TDCC_SHIFT) +#define MDCR_MTPME_SHIFT 28 +#define MDCR_MTPME (0x1UL << MDCR_MTPME_SHIFT) +#define MDCR_HPMFZO_SHIFT 29 +#define MDCR_HPMFZO (0x1UL << MDCR_HPMFZO_SHIFT) +#define MDCR_PMSSE_SHIFT 30 +#define MDCR_PMSSE_MASK (0x3UL << MDCR_PMSSE_SHIFT) +#define MDCR_HPMFZS_SHIFT 36 +#define MDCR_HPMFZS (0x1UL << MDCR_HPMFZS_SHIFT) +#define MDCR_PMEE_SHIFT 40 +#define MDCR_PMEE_MASK (0x3UL << MDCR_PMEE_SHIFT) +#define MDCR_EBWE_SHIFT 43 +#define MDCR_EBWE (0x1UL << MDCR_EBWE_SHIFT) #endif /* !_MACHINE_HYPERVISOR_H_ */ From nobody Mon Sep 9 16:05:33 2024 X-Original-To: dev-commits-src-main@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 4X2Wrs2xJGz5Wl6r; Mon, 09 Sep 2024 16:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2Wrs2Gbwz4rm7; Mon, 9 Sep 2024 16:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725897933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qQ/dL71zeYzVF0Z7Icwgd2W+BMm2rwq+SVMDzh4dfd8=; b=IbL3QL4CT/eW6jQAVOTHU1dIocVHWI0AQ69EdNG/X03nOKZpb3Ox/XUHtxS/Cs2uA00QWB I0hXtQybevyY60WbL3sgxne1HlIDPLRtg8oAjJAfwOwU9bQT5502rZidpN6msR7F5HHb7r VkdSrDMI476/1vniYuKx2MpIrtPyMJw0Ri/mU4ArqLiOizvARrDOwUBmjJKnoQNneANI3a +hoV3vY4FSCedEJe1L7u6du5A6zPPsaWi/ivVrddDBBLGCX950+DYVPeCnABQdfdERU3qc +Sof139uqZXAYH4mLSRjb0lFH/7wgktPvg15Eyb3qj/B8GmyNlD1v4mJ7CBn2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725897933; a=rsa-sha256; cv=none; b=OSbvvEXvr0WoM2bNdt9AjNPFaN1yGct9wLypfYtD+XM1Rv6mp886uhD4x4cRYUE0TZ21Oz Vi4S44UXfaaCuTjuTk1tZ7YRmyrmfYTm87e4v6HuMOTfgaKxmLH0d+5O5czWkweuqDo6P+ oCL/ON8yxUTuDB2eBhOAgjYpNSt1CLH36VdwwkHWRqnG0bLfOvxmy3tLGnNvqYQkKxKY2m gFjH3AjjIPGYH8nmHx5Ksbxf34WW1d2GjBslrBnII1R5YZjsIHDL6GjEpzdVQz7fyNlSLX Z+Jq6ElQ1x2Uf3EvgyJP9DzM3+rqRydZZy7k7dIc6W60V3lc+mgC900nx8xuWQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725897933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qQ/dL71zeYzVF0Z7Icwgd2W+BMm2rwq+SVMDzh4dfd8=; b=oc6/cJsJJdtFtajDk5mFD6U5Db4FTxPbGxHOtJNNuySHR3pvd/cIZQxiYhj84LnlrfU3M4 IaX5slzkQOmt66fu90o3Bd2/TLERlHndEmWx3p0CTehxmnMFy+K0uNCu6AC0gpp35uivBp Wgx3dl+8RSDCx5g0KnamctPz/Spf+A9C+jC1p7W1Ndc1nc8WuInuQk0hGZHNpK2uvoMUuz yKrU9Oyaai9JMjpa4LbJY53YSHTvTdMaeAe2wqqWnTxovOEtDcTYZmQdGkXr5w+Z/im++h 7SyEGek5A3dJAq54314NGz9+3Sab+Jim/2FIr6LjTjtH6YuLjhnqKA5IY4TlCg== 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 4X2Wrs1ttcz18Xl; Mon, 9 Sep 2024 16:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489G5Xra041846; Mon, 9 Sep 2024 16:05:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489G5X6W041843; Mon, 9 Sep 2024 16:05:33 GMT (envelope-from git) Date: Mon, 9 Sep 2024 16:05:33 GMT Message-Id: <202409091605.489G5X6W041843@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: f05795e3f65f - main - arm64: write PID in CONTEXTIDR_EL1 on ctx switch List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: f05795e3f65f305cb770ae91d8e9c8f05d267e0d Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=f05795e3f65f305cb770ae91d8e9c8f05d267e0d commit f05795e3f65f305cb770ae91d8e9c8f05d267e0d Author: Zachary Leaf AuthorDate: 2024-07-31 08:23:24 +0000 Commit: Andrew Turner CommitDate: 2024-09-09 16:03:19 +0000 arm64: write PID in CONTEXTIDR_EL1 on ctx switch Debug and trace features such as Statistical Profiling Extension (SPE) use the CONTEXTIDR_EL1 register to get the PID of the current process. Add a sysctl switch to toggle writing the current PID into this register in the thread switcher. To make use of the feature, the following sysctl switch must be set: sysctl machdep.pid_in_contextidr=1 Kernel code can also toggle the sysctl by writing directly to the global var behind the sysctl arm64_pid_in_contextidr: extern bool arm64_pid_in_contextidr; Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46192 --- sys/arm64/arm64/genassym.c | 2 ++ sys/arm64/arm64/swtch.S | 17 +++++++++++++++++ sys/arm64/arm64/sys_machdep.c | 6 ++++++ 3 files changed, 25 insertions(+) diff --git a/sys/arm64/arm64/genassym.c b/sys/arm64/arm64/genassym.c index a4db825e976c..5a20169d51c3 100644 --- a/sys/arm64/arm64/genassym.c +++ b/sys/arm64/arm64/genassym.c @@ -58,6 +58,8 @@ ASSYM(PCB_TPIDRRO, offsetof(struct pcb, pcb_tpidrro_el0)); ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); +ASSYM(PR_PID, offsetof(struct proc, p_pid)); + ASSYM(SF_UC, offsetof(struct sigframe, sf_uc)); ASSYM(TD_PROC, offsetof(struct thread, td_proc)); diff --git a/sys/arm64/arm64/swtch.S b/sys/arm64/arm64/swtch.S index 6af70ca839a0..3a2bf2cb5a7f 100644 --- a/sys/arm64/arm64/swtch.S +++ b/sys/arm64/arm64/swtch.S @@ -55,6 +55,15 @@ 999: .endm +.macro pid_in_context_idr label + adrp x9, arm64_pid_in_contextidr + ldr x10, [x9, :lo12:arm64_pid_in_contextidr] + cbz x10, \label + ldr x9, [x1, #TD_PROC] + ldr x10, [x9, #PR_PID] + msr contextidr_el1, x10 +.endm + /* * void cpu_throw(struct thread *old, struct thread *new) */ @@ -66,8 +75,12 @@ ENTRY(cpu_throw) ldr x4, [x0, #TD_PCB] ldr w5, [x4, #PCB_FLAGS] clear_step_flag w5, x6 + 1: + /* debug/trace: set CONTEXTIDR_EL1 to current PID, if enabled */ + pid_in_context_idr 2f +2: #ifdef VFP /* Backup the new thread pointer around a call to C code */ mov x19, x1 @@ -147,6 +160,10 @@ ENTRY(cpu_switch) mov x20, x1 mov x21, x2 + /* debug/trace: set CONTEXTIDR_EL1 to current PID, if enabled */ + pid_in_context_idr 0f + +0: #ifdef VFP bl vfp_save_state_switch mov x0, x20 diff --git a/sys/arm64/arm64/sys_machdep.c b/sys/arm64/arm64/sys_machdep.c index eedc57f7c572..eedee1d27015 100644 --- a/sys/arm64/arm64/sys_machdep.c +++ b/sys/arm64/arm64/sys_machdep.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -80,3 +81,8 @@ sysarch(struct thread *td, struct sysarch_args *uap) return (error); } + +bool arm64_pid_in_contextidr = false; +SYSCTL_BOOL(_machdep, OID_AUTO, pid_in_contextidr, CTLFLAG_RW, + &arm64_pid_in_contextidr, false, + "Save PID into CONTEXTIDR_EL1 register on context switch"); From nobody Mon Sep 9 16:48:12 2024 X-Original-To: dev-commits-src-main@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 4X2Xp739mJz5TN8T; Mon, 09 Sep 2024 16:48:15 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2Xp72xm4z40BR; Mon, 9 Sep 2024 16:48:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725900495; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7rvH5FHqgeoS6/IrLViN1otyNh9V8PGF0183NXPRAGY=; b=Cf4gLHhp5DlLCPc23qYr49lIycQcnoy8vblTrC1loXpP4LVh/6PxCjHH0Q5bPGCQTKkZyQ ruk7k00DfpkiA4fy/+IKIWfoHt9BHikxL2WLa5slY3Zd0hJOj98AwgwPJXcH/gpO5r5W8c wG/yalI4ZBzF9ec60K0bD3dYMEw8VI8JiOKN1W3WqiW3ZfqKfVqPXbcqGdSVXW4TRzGKXN j9xRsEaYGAfx5uEIV0MQ6hmwDyxxtKN9o39mKEwP31r5IiQOt0XM2CjTsuDQ4ZpbjlTH0d Fgaa2Duxq1tdA5F74peNcr4mRXOFKnkonWoSf4gsGRPEOn5318Pj9g1BcfycqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725900495; a=rsa-sha256; cv=none; b=XGQfVpBgnhpL3fB2Ek3ZyyfZM6wyiw9+tZ8FsF1Jyr3svVzpvM0VNTK4/ZIeBT8BASbgx+ hKGMFd894ib0XWFVW5f9TbYupVqm40P1h5U67e6nckDGxXTkqmrAtelmZ+WeldKDYHIC1A T8risEgSIjLF53mrlvNAiVQaHd+27NFKa3YUzJKAAoQP35k6qbS26S3Be+WcxHDDwYHCez tyVOZXe/3mISC9jgdJpoLHlpMc9T9R7mh47ZR3s15lZTojVin+SNKvHkaP0r+MbnhauXRX z4DZ8jPjj8gn28FQwdc25wY/i3pt5BZ8vqevSzX0AxBabYddZDB2gCnq53NqOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725900495; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7rvH5FHqgeoS6/IrLViN1otyNh9V8PGF0183NXPRAGY=; b=qcABX+4NVNvcgDtuX9Ogk4nVBwDcTq/7LqzWfrhmiC/02Ai5FjuJN3+Dak5A0ClQJuWXdu eqj3eggdrJzUTAe6huup3G5jk/k6yqCDuWdeAwZnlUZSzT/OTxTva6OWJAf5N5kRxR1bE/ 7+AtvkryriRdoisBtzJwlLZqeS9HgGzMi7jkkRSuV94Wn+M6lO7aA5NrKbiXfdOs+cik0g 4z3OpzAP9kSRgukuX8rrNUqnl7S1s3bo2fMJTcbMHWzkdeAjDc5g3z9lhVzhoAJ8Zi/IFI euSrsLS/sjyOGrSF+ZKTY7p/hJ0Taij5JhRyAZlQEH2dktJ3w/PdvR9Lv806tg== 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 4X2Xp72QVJz19vF; Mon, 9 Sep 2024 16:48:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489GmF5b009548; Mon, 9 Sep 2024 16:48:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489GmCNu009544; Mon, 9 Sep 2024 16:48:12 GMT (envelope-from git) Date: Mon, 9 Sep 2024 16:48:12 GMT Message-Id: <202409091648.489GmCNu009544@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: e2df9bb44109 - main - zfs: merge openzfs/zfs@b10992582 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: e2df9bb44109577475aeb186e7186ac040f9bde1 Auto-Submitted: auto-generated The branch main has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=e2df9bb44109577475aeb186e7186ac040f9bde1 commit e2df9bb44109577475aeb186e7186ac040f9bde1 Merge: f05795e3f65f b109925820fb Author: Martin Matuska AuthorDate: 2024-09-09 16:13:02 +0000 Commit: Martin Matuska CommitDate: 2024-09-09 16:13:02 +0000 zfs: merge openzfs/zfs@b10992582 Notable upstream pull request merges: #15892 -multiple Fast Dedup: Introduce the FDT on-disk format and feature flag #15893 -multiple Fast Dedup: “flat” DDT entry format #15895 -multiple Fast Dedup: FDT-log feature #16239 6be8bf555 zpool: Provide GUID to zpool-reguid(8) with -g #16277 -multiple Fast Dedup: prune unique entries #16316 5807de90a Fix null ptr deref when renaming a zvol with snaps and snapdev=visible #16343 77a797a38 Enable L2 cache of all (MRU+MFU) metadata but MFU data only #16446 83f359245 FreeBSD: fix build without kernel option MAC #16449 963e6c9f3 Fix incorrect error report on vdev attach/replace #16505 b10992582 spa_prop_get: require caller to supply output nvlist Obtained from: OpenZFS OpenZFS commit: b109925820fb79db3e37670c159977f03edd950f cddl/lib/libicp/Makefile | 1 + cddl/lib/libicp_rescue/Makefile | 1 + cddl/lib/libzfs/Makefile | 3 +- cddl/lib/libzpool/Makefile | 8 +- cddl/sbin/zpool/Makefile | 2 + cddl/usr.bin/zinject/Makefile | 1 + cddl/usr.bin/zstream/Makefile | 2 + cddl/usr.bin/ztest/Makefile | 1 + cddl/usr.sbin/zdb/Makefile | 1 + cddl/usr.sbin/zfsd/Makefile.common | 1 + cddl/usr.sbin/zhack/Makefile | 1 + lib/libbe/Makefile | 1 + sys/cddl/boot/zfs/zfssubr.c | 4 +- sys/conf/files | 2 + sys/contrib/openzfs/META | 2 +- sys/contrib/openzfs/cmd/Makefile.am | 4 +- sys/contrib/openzfs/cmd/mount_zfs.c | 5 +- sys/contrib/openzfs/cmd/raidz_test/Makefile.am | 2 +- sys/contrib/openzfs/cmd/zdb/Makefile.am | 2 +- sys/contrib/openzfs/cmd/zdb/zdb.c | 486 +++-- sys/contrib/openzfs/cmd/zed/agents/zfs_diagnosis.c | 15 +- sys/contrib/openzfs/cmd/zpool/zpool_main.c | 136 +- sys/contrib/openzfs/cmd/zstream/Makefile.am | 2 + .../openzfs/cmd/zstream/zstream_decompress.c | 124 +- .../openzfs/cmd/zstream/zstream_recompress.c | 110 +- sys/contrib/openzfs/cmd/ztest.c | 30 +- sys/contrib/openzfs/config/Rules.am | 8 +- .../contrib/debian/openzfs-zfsutils.install | 1 + sys/contrib/openzfs/include/Makefile.am | 1 + sys/contrib/openzfs/include/libzfs.h | 4 + sys/contrib/openzfs/include/libzfs_core.h | 3 + sys/contrib/openzfs/include/os/freebsd/Makefile.am | 2 + .../include/os/freebsd/zfs/sys/abd_impl_os.h | 41 + .../openzfs/include/os/freebsd/zfs/sys/abd_os.h | 46 + sys/contrib/openzfs/include/os/linux/Makefile.am | 2 + .../openzfs/include/os/linux/spl/sys/taskq.h | 42 + .../openzfs/include/os/linux/zfs/sys/abd_impl_os.h | 41 + .../openzfs/include/os/linux/zfs/sys/abd_os.h | 62 + sys/contrib/openzfs/include/sys/abd.h | 37 +- sys/contrib/openzfs/include/sys/abd_impl.h | 14 +- sys/contrib/openzfs/include/sys/ddt.h | 214 ++- sys/contrib/openzfs/include/sys/ddt_impl.h | 202 +- sys/contrib/openzfs/include/sys/dmu.h | 2 + sys/contrib/openzfs/include/sys/dsl_scan.h | 2 +- sys/contrib/openzfs/include/sys/fs/zfs.h | 20 +- sys/contrib/openzfs/include/sys/spa.h | 9 +- sys/contrib/openzfs/include/sys/spa_impl.h | 1 + sys/contrib/openzfs/include/sys/zio.h | 3 + sys/contrib/openzfs/include/sys/zio_compress.h | 90 +- sys/contrib/openzfs/include/sys/zio_impl.h | 3 + sys/contrib/openzfs/include/sys/zio_priority.h | 4 + sys/contrib/openzfs/include/sys/zstd/zstd.h | 8 +- sys/contrib/openzfs/include/zfeature_common.h | 1 + sys/contrib/openzfs/include/zfs_valstr.h | 84 + sys/contrib/openzfs/lib/libzfs/Makefile.am | 1 + sys/contrib/openzfs/lib/libzfs/libzfs.abi | 135 +- sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 76 +- .../openzfs/lib/libzfs_core/libzfs_core.abi | 15 + sys/contrib/openzfs/lib/libzfs_core/libzfs_core.c | 22 + sys/contrib/openzfs/lib/libzpool/Makefile.am | 8 +- sys/contrib/openzfs/lib/libzpool/abd_os.c | 365 ++++ .../openzfs/lib/libzpool/include/Makefile.am | 4 + .../openzfs/lib/libzpool/include/sys/abd_impl_os.h | 41 + .../openzfs/lib/libzpool/include/sys/abd_os.h | 47 + sys/contrib/openzfs/man/Makefile.am | 1 + sys/contrib/openzfs/man/man4/spl.4 | 11 - sys/contrib/openzfs/man/man4/zfs.4 | 108 +- sys/contrib/openzfs/man/man7/zpool-features.7 | 17 +- sys/contrib/openzfs/man/man8/zpool-ddtprune.8 | 48 + sys/contrib/openzfs/man/man8/zpool-reguid.8 | 14 +- sys/contrib/openzfs/man/man8/zpool.8 | 1 + sys/contrib/openzfs/module/Kbuild.in | 6 +- sys/contrib/openzfs/module/Makefile.bsd | 3 + sys/contrib/openzfs/module/os/freebsd/zfs/abd_os.c | 4 +- .../openzfs/module/os/freebsd/zfs/sysctl_os.c | 1 - .../openzfs/module/os/linux/spl/spl-generic.c | 20 +- sys/contrib/openzfs/module/os/linux/spl/spl-proc.c | 268 --- .../openzfs/module/os/linux/spl/spl-taskq.c | 414 +++- .../openzfs/module/os/linux/spl/spl-thread.c | 7 + sys/contrib/openzfs/module/os/linux/zfs/abd_os.c | 153 +- sys/contrib/openzfs/module/os/linux/zfs/arc_os.c | 6 +- .../openzfs/module/os/linux/zfs/zfs_ctldir.c | 8 +- .../openzfs/module/os/linux/zfs/zpl_super.c | 8 +- sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c | 14 +- .../openzfs/module/zcommon/zfeature_common.c | 6 + sys/contrib/openzfs/module/zcommon/zfs_valstr.c | 277 +++ sys/contrib/openzfs/module/zfs/abd.c | 24 +- sys/contrib/openzfs/module/zfs/arc.c | 95 +- sys/contrib/openzfs/module/zfs/blkptr.c | 9 +- sys/contrib/openzfs/module/zfs/dataset_kstats.c | 3 + sys/contrib/openzfs/module/zfs/ddt.c | 1981 +++++++++++++++++--- sys/contrib/openzfs/module/zfs/ddt_log.c | 778 ++++++++ sys/contrib/openzfs/module/zfs/ddt_stats.c | 129 +- sys/contrib/openzfs/module/zfs/ddt_zap.c | 30 +- sys/contrib/openzfs/module/zfs/dmu.c | 32 + sys/contrib/openzfs/module/zfs/dmu_recv.c | 7 +- sys/contrib/openzfs/module/zfs/dsl_dataset.c | 8 +- sys/contrib/openzfs/module/zfs/dsl_scan.c | 46 +- sys/contrib/openzfs/module/zfs/gzip.c | 13 +- sys/contrib/openzfs/module/zfs/lz4_zfs.c | 11 +- sys/contrib/openzfs/module/zfs/lzjb.c | 13 +- sys/contrib/openzfs/module/zfs/spa.c | 31 +- sys/contrib/openzfs/module/zfs/zfs_fm.c | 2 +- sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 80 +- sys/contrib/openzfs/module/zfs/zio.c | 473 +++-- sys/contrib/openzfs/module/zfs/zio_compress.c | 92 +- sys/contrib/openzfs/module/zfs/zle.c | 13 +- sys/contrib/openzfs/module/zstd/zfs_zstd.c | 102 +- sys/contrib/openzfs/rpm/generic/zfs-kmod.spec.in | 18 + sys/contrib/openzfs/tests/runfiles/common.run | 8 +- .../openzfs/tests/zfs-tests/cmd/Makefile.am | 2 +- .../openzfs/tests/zfs-tests/include/tunables.cfg | 1 + .../openzfs/tests/zfs-tests/tests/Makefile.am | 6 + .../functional/cli_root/zpool_get/zpool_get.cfg | 1 + .../zpool_prefetch/zpool_prefetch_001_pos.ksh | 4 + .../functional/cli_root/zpool_reguid/Makefile.am | 6 + .../functional/cli_root/zpool_reguid/cleanup.ksh | 32 + .../functional/cli_root/zpool_reguid/setup.ksh | 34 + .../cli_root/zpool_reguid/zpool_reguid_001_pos.ksh | 73 + .../cli_root/zpool_reguid/zpool_reguid_002_neg.ksh | 60 + .../tests/functional/dedup/dedup_fdt_create.ksh | 106 ++ .../tests/functional/dedup/dedup_fdt_import.ksh | 119 ++ .../tests/functional/dedup/dedup_legacy_create.ksh | 95 + .../functional/dedup/dedup_legacy_fdt_mixed.ksh | 104 + .../functional/dedup/dedup_legacy_fdt_upgrade.ksh | 129 ++ .../tests/functional/dedup/dedup_legacy_import.ksh | 104 + .../tests/functional/dedup/dedup_quota.ksh | 18 +- .../zfs-tests/tests/functional/dedup/setup.ksh | 4 - sys/modules/zfs/Makefile | 3 + sys/modules/zfs/zfs_config.h | 6 +- sys/modules/zfs/zfs_gitrev.h | 2 +- usr.sbin/fstyp/Makefile | 1 + 132 files changed, 7401 insertions(+), 1510 deletions(-) diff --cc cddl/lib/libicp/Makefile index b8bd3dc6df95,000000000000..f097e7e6ff58 mode 100644,000000..100644 --- a/cddl/lib/libicp/Makefile +++ b/cddl/lib/libicp/Makefile @@@ -1,137 -1,0 +1,138 @@@ +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp + +PACKAGE= zfs +LIB= icp +LIBADD= + +.if ${MACHINE_ARCH} == "amd64" +ASM_SOURCES_C = asm-x86_64/aes/aeskey.c +ASM_SOURCES_AS = \ + asm-x86_64/aes/aes_amd64.S \ + asm-x86_64/aes/aes_aesni.S \ + asm-x86_64/modes/gcm_pclmulqdq.S \ + asm-x86_64/modes/aesni-gcm-x86_64.S \ + asm-x86_64/modes/ghash-x86_64.S \ + asm-x86_64/sha2/sha256-x86_64.S \ + asm-x86_64/sha2/sha512-x86_64.S \ + asm-x86_64/blake3/blake3_avx2.S \ + asm-x86_64/blake3/blake3_avx512.S \ + asm-x86_64/blake3/blake3_sse2.S \ + asm-x86_64/blake3/blake3_sse41.S + +CFLAGS+= -D__amd64 -D_SYS_STACK_H -UHAVE_AES +.elif ${MACHINE_CPUARCH} == "arm" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-arm/sha2/sha256-armv7.S \ + asm-arm/sha2/sha512-armv7.S +.elif ${MACHINE_ARCH} == "aarch64" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-aarch64/blake3/b3_aarch64_sse2.S \ + asm-aarch64/blake3/b3_aarch64_sse41.S \ + asm-aarch64/sha2/sha256-armv8.S \ + asm-aarch64/sha2/sha512-armv8.S +.elif ${MACHINE_ARCH} == "powerpc64" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-ppc64/sha2/sha256-ppc.S \ + asm-ppc64/sha2/sha512-ppc.S \ + asm-ppc64/sha2/sha256-p8.S \ + asm-ppc64/sha2/sha512-p8.S +.elif ${MACHINE_ARCH} == "powerpc64le" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-ppc64/blake3/b3_ppc64le_sse2.S \ + asm-ppc64/blake3/b3_ppc64le_sse41.S \ + asm-ppc64/sha2/sha256-ppc.S \ + asm-ppc64/sha2/sha512-ppc.S \ + asm-ppc64/sha2/sha256-p8.S \ + asm-ppc64/sha2/sha512-p8.S +.else +ASM_SOURCES_C = +ASM_SOURCES_AS = +.endif + +KERNEL_C = \ + spi/kcf_spi.c \ + api/kcf_ctxops.c \ + api/kcf_cipher.c \ + api/kcf_mac.c \ + algs/aes/aes_impl_aesni.c \ + algs/aes/aes_impl_generic.c \ + algs/aes/aes_impl_x86-64.c \ + algs/aes/aes_impl.c \ + algs/aes/aes_modes.c \ + algs/blake3/blake3.c \ + algs/blake3/blake3_generic.c \ + algs/blake3/blake3_impl.c \ + algs/edonr/edonr.c \ + algs/modes/modes.c \ + algs/modes/gcm_generic.c \ + algs/modes/gcm_pclmulqdq.c \ + algs/modes/gcm.c \ + algs/modes/ccm.c \ + algs/sha2/sha2_generic.c \ + algs/sha2/sha256_impl.c \ + algs/sha2/sha512_impl.c \ + algs/skein/skein.c \ + algs/skein/skein_block.c \ + algs/skein/skein_iv.c \ + illumos-crypto.c \ + io/aes.c \ + io/sha2_mod.c \ + core/kcf_sched.c \ + core/kcf_prov_lib.c \ + core/kcf_callprov.c \ + core/kcf_mech_tabs.c \ + core/kcf_prov_tabs.c \ + $(ASM_SOURCES_C) + +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zfs +KERNEL_C+= zfs_impl.c + +SRCS= $(ASM_SOURCES_AS) $(KERNEL_C) + +WARNS?= 2 +SHLIB_MAJOR= 3 +CSTD= c99 +CFLAGS+= -DIN_BASE +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/ +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd +CFLAGS+= -I${SRCTOP}/sys +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include ++CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h +CFLAGS+= -DHAVE_ISSETUGID +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h + +CFLAGS.aes_amd64.S+= -DLOCORE +CFLAGS.aes_aesni.S+= -DLOCORE +CFLAGS.gcm_pclmulqdq.S+= -DLOCORE +CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE +CFLAGS.ghash-x86_64.S+= -DLOCORE +CFLAGS.sha256-x86_64.S+= -DLOCORE +CFLAGS.sha512-x86_64.S+= -DLOCORE +CFLAGS.blake3_avx2.S = -DLOCORE +CFLAGS.blake3_avx512.S = -DLOCORE +CFLAGS.blake3_sse2.S = -DLOCORE +CFLAGS.blake3_sse41.S = -DLOCORE +CFLAGS.b3_aarch64_sse2.S = -DLOCORE +CFLAGS.b3_aarch64_sse41.S = -DLOCORE +CFLAGS.sha256-armv7.S = -DLOCORE +CFLAGS.sha256-armv8.S = -DLOCORE +CFLAGS.sha512-armv7.S = -DLOCORE +CFLAGS.sha512-armv8.S = -DLOCORE +CFLAGS.b3_ppc64le_sse2.S = -DLOCORE +CFLAGS.b3_ppc64le_sse41.S = -DLOCORE +CFLAGS.sha256-p8.S = -DLOCORE +CFLAGS.sha256-ppc.S = -DLOCORE +CFLAGS.sha512-p8.S = -DLOCORE +CFLAGS.sha512-ppc.S = -DLOCORE + + +LDFLAGS.bfd+= -Wl,-znoexecstack + +.include diff --cc cddl/lib/libicp_rescue/Makefile index 3b332f736bde,000000000000..3a8b6746fe61 mode 100644,000000..100644 --- a/cddl/lib/libicp_rescue/Makefile +++ b/cddl/lib/libicp_rescue/Makefile @@@ -1,134 -1,0 +1,135 @@@ +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp + +PACKAGE= utilities +LIB= icp_rescue +LIBADD= + +.if ${MACHINE_ARCH} == "amd64" +ASM_SOURCES_C = asm-x86_64/aes/aeskey.c +ASM_SOURCES_AS = \ + asm-x86_64/aes/aes_amd64.S \ + asm-x86_64/aes/aes_aesni.S \ + asm-x86_64/modes/gcm_pclmulqdq.S \ + asm-x86_64/modes/aesni-gcm-x86_64.S \ + asm-x86_64/sha2/sha256-x86_64.S \ + asm-x86_64/sha2/sha512-x86_64.S \ + asm-x86_64/blake3/blake3_avx2.S \ + asm-x86_64/blake3/blake3_avx512.S \ + asm-x86_64/blake3/blake3_sse2.S \ + asm-x86_64/blake3/blake3_sse41.S + +CFLAGS+= -D__amd64 -D_SYS_STACK_H +.elif ${MACHINE_CPUARCH} == "arm" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-arm/sha2/sha256-armv7.S \ + asm-arm/sha2/sha512-armv7.S +.elif ${MACHINE_ARCH} == "aarch64" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-aarch64/blake3/b3_aarch64_sse2.S \ + asm-aarch64/blake3/b3_aarch64_sse41.S \ + asm-aarch64/sha2/sha256-armv8.S \ + asm-aarch64/sha2/sha512-armv8.S +.elif ${MACHINE_ARCH} == "powerpc64" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-ppc64/sha2/sha256-ppc.S \ + asm-ppc64/sha2/sha512-ppc.S \ + asm-ppc64/sha2/sha256-p8.S \ + asm-ppc64/sha2/sha512-p8.S +.elif ${MACHINE_ARCH} == "powerpc64le" +ASM_SOURCES_C = +ASM_SOURCES_AS = \ + asm-ppc64/blake3/b3_ppc64le_sse2.S \ + asm-ppc64/blake3/b3_ppc64le_sse41.S \ + asm-ppc64/sha2/sha256-ppc.S \ + asm-ppc64/sha2/sha512-ppc.S \ + asm-ppc64/sha2/sha256-p8.S \ + asm-ppc64/sha2/sha512-p8.S +.else +ASM_SOURCES_C = +ASM_SOURCES_AS = +.endif + +KERNEL_C = \ + spi/kcf_spi.c \ + api/kcf_ctxops.c \ + api/kcf_cipher.c \ + api/kcf_mac.c \ + algs/aes/aes_impl_aesni.c \ + algs/aes/aes_impl_generic.c \ + algs/aes/aes_impl_x86-64.c \ + algs/aes/aes_impl.c \ + algs/aes/aes_modes.c \ + algs/blake3/blake3.c \ + algs/blake3/blake3_generic.c \ + algs/blake3/blake3_impl.c \ + algs/edonr/edonr.c \ + algs/modes/modes.c \ + algs/modes/gcm_generic.c \ + algs/modes/gcm_pclmulqdq.c \ + algs/modes/gcm.c \ + algs/modes/ccm.c \ + algs/sha2/sha2_generic.c \ + algs/sha2/sha256_impl.c \ + algs/sha2/sha512_impl.c \ + algs/skein/skein_block.c \ + illumos-crypto.c \ + io/aes.c \ + io/sha2_mod.c \ + core/kcf_sched.c \ + core/kcf_prov_lib.c \ + core/kcf_callprov.c \ + core/kcf_mech_tabs.c \ + core/kcf_prov_tabs.c \ + $(ASM_SOURCES_C) + +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zfs +KERNEL_C+= zfs_impl.c + +SRCS= $(ASM_SOURCES_AS) $(KERNEL_C) + +WARNS?= 2 +SHLIB_MAJOR= 3 +CSTD= c99 +CFLAGS+= -DIN_BASE +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/ +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd +CFLAGS+= -I${SRCTOP}/sys +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include ++CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h +CFLAGS+= -DHAVE_ISSETUGID -UHAVE_AVX -DRESCUE +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h + +CFLAGS.aes_amd64.S+= -DLOCORE +CFLAGS.aes_aesni.S+= -DLOCORE +CFLAGS.gcm_pclmulqdq.S+= -DLOCORE +CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE +CFLAGS.ghash-x86_64.S+= -DLOCORE +CFLAGS.sha256-x86_64.S+= -DLOCORE +CFLAGS.sha512-x86_64.S+= -DLOCORE +CFLAGS.gcm.c+= -UCAN_USE_GCM_ASM +CFLAGS.blake3_avx2.S = -DLOCORE +CFLAGS.blake3_avx512.S = -DLOCORE +CFLAGS.blake3_sse2.S = -DLOCORE +CFLAGS.blake3_sse41.S = -DLOCORE +CFLAGS.b3_aarch64_sse2.S = -DLOCORE +CFLAGS.b3_aarch64_sse41.S = -DLOCORE +CFLAGS.sha256-armv7.S = -DLOCORE +CFLAGS.sha512-armv7.S = -DLOCORE +CFLAGS.sha256-armv8.S = -DLOCORE +CFLAGS.sha512-armv8.S = -DLOCORE +CFLAGS.b3_ppc64le_sse2.S = -DLOCORE +CFLAGS.b3_ppc64le_sse41.S = -DLOCORE +CFLAGS.sha256-ppc.S = -DLOCORE +CFLAGS.sha256-p8.S = -DLOCORE +CFLAGS.sha512-ppc.S = -DLOCORE +CFLAGS.sha512-p8.S = -DLOCORE + +LDFLAGS.bfd+= -Wl,-znoexecstack + +.include diff --cc cddl/lib/libzfs/Makefile index 0b31fcb04b07,000000000000..bb0127a9108a mode 100644,000000..100644 --- a/cddl/lib/libzfs/Makefile +++ b/cddl/lib/libzfs/Makefile @@@ -1,107 -1,0 +1,108 @@@ +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zcommon +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs/os/freebsd +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libshare +.PATH: ${SRCTOP}/sys/contrib/openzfs/include +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd/lib + +PACKAGE= zfs +LIB= zfs +LIBADD= \ + avl \ + bsdxml \ + crypto \ + geom \ + m \ + md \ + nvpair \ + pthread \ + rt \ + umem \ + util \ + uutil \ + z \ + zfs_core \ + zutil + +INCS= libzfs.h +USER_C = \ + libzfs_changelist.c \ + libzfs_config.c \ + libzfs_crypto.c \ + libzfs_dataset.c \ + libzfs_diff.c \ + libzfs_import.c \ + libzfs_iter.c \ + libzfs_mount.c \ + libzfs_pool.c \ + libzfs_sendrecv.c \ + libzfs_status.c \ + libzfs_util.c + +# FreeBSD +USER_C += \ + libzfs_compat.c \ + libzfs_zmount.c + +# libshare +USER_C += \ + libshare.c \ + nfs.c \ + os/freebsd/nfs.c \ + os/freebsd/smb.c + +KERNEL_C = \ + cityhash.c \ + zfeature_common.c \ + zfs_comutil.c \ + zfs_deleg.c \ + zfs_fletcher.c \ + zfs_fletcher_superscalar.c \ + zfs_fletcher_superscalar4.c \ + zfs_namecheck.c \ + zfs_prop.c \ ++ zfs_valstr.c \ + zpool_prop.c \ + zprop_common.c + - +ARCH_C = +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +ARCH_C += zfs_fletcher_intel.c \ + zfs_fletcher_sse.c +CFLAGS += -DHAVE_SSE2 +.endif +.if ${MACHINE_ARCH} == "amd64" +ARCH_C += zfs_fletcher_avx512.c +CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F +.endif +.if ${MACHINE_CPUARCH} == "aarch64" +ARCH_C += zfs_fletcher_aarch64_neon.c +.endif + +SRCS= $(USER_C) $(KERNEL_C) $(ARCH_C) + +WARNS?= 2 +SHLIB_MAJOR= 4 +CSTD= c99 +CFLAGS+= -DIN_BASE +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include/os/freebsd +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libshare ++CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include +CFLAGS+= -I${SRCTOP}/sys/contrib/ck/include +CFLAGS+= -I${SRCTOP}/sys +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h +CFLAGS+= -DHAVE_ISSETUGID +CFLAGS+= -DHAVE_EXECVPE +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h +CFLAGS+= -DSYSCONFDIR=\"/etc\" +CFLAGS+= -DPKGDATADIR=\"/usr/share/zfs\" +CFLAGS+= -DZFSEXECDIR=\"${LIBEXECDIR}/zfs\" + +.include diff --cc cddl/lib/libzpool/Makefile index 95038f4e5638,000000000000..b80486484506 mode 100644,000000..100644 --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile @@@ -1,339 -1,0 +1,341 @@@ +ZFSTOP= ${SRCTOP}/sys/contrib/openzfs + ++.PATH: ${ZFSTOP}/lib/libzpool ++ +# ZFS_COMMON_SRCS +.PATH: ${ZFSTOP}/module/zfs +.PATH: ${ZFSTOP}/module/zcommon +.PATH: ${ZFSTOP}/module/unicode +# LUA_SRCS +.PATH: ${ZFSTOP}/module/lua +# ZSTD_SRCS +.PATH: ${ZFSTOP}/module/zstd +.PATH: ${ZFSTOP}/module/zstd/lib/common +.PATH: ${ZFSTOP}/module/zstd/lib/compress +.PATH: ${ZFSTOP}/module/zstd/lib/decompress + +.PATH: ${ZFSTOP}/module/os/linux/zfs + - .PATH: ${ZFSTOP}/lib/libzpool - +.if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S) +.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH} +ATOMIC_SRCS= opensolaris_atomic.S +ACFLAGS+= -Wa,--noexecstack +.else +.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern +ATOMIC_SRCS= opensolaris_atomic.c +.endif + +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe" +# Don't waste GOT entries on small data. +PICFLAG= -fPIC +.endif + +PACKAGE= zfs +LIB= zpool + +USER_C = \ ++ abd_os.c \ + kernel.c \ + taskq.c \ + util.c + +KERNEL_C = \ + zfeature_common.c \ + zfs_comutil.c \ + zfs_deleg.c \ + zfs_fletcher.c \ + zfs_fletcher_superscalar.c \ + zfs_fletcher_superscalar4.c \ + zfs_namecheck.c \ + zfs_prop.c \ + zfs_zstd.c \ + zpool_prop.c \ + zprop_common.c \ + abd.c \ - abd_os.c \ + aggsum.c \ + arc.c \ + arc_os.c \ + blake3_zfs.c \ + blkptr.c \ + bplist.c \ + bpobj.c \ + bptree.c \ + bqueue.c \ + btree.c \ + brt.c \ + cityhash.c \ + dbuf.c \ + dbuf_stats.c \ + ddt.c \ ++ ddt_log.c \ + ddt_stats.c \ + ddt_zap.c \ + dmu.c \ + dmu_diff.c \ + dmu_object.c \ + dmu_objset.c \ + dmu_recv.c \ + dmu_redact.c \ + dmu_send.c \ + dmu_traverse.c \ + dmu_tx.c \ + dmu_zfetch.c \ + dnode.c \ + dnode_sync.c \ + dsl_bookmark.c \ + dsl_dataset.c \ + dsl_deadlist.c \ + dsl_deleg.c \ + dsl_dir.c \ + dsl_crypt.c \ + dsl_pool.c \ + dsl_prop.c \ + dsl_scan.c \ + dsl_synctask.c \ + dsl_destroy.c \ + dsl_userhold.c \ + edonr_zfs.c \ + entropy_common.c \ + error_private.c \ + fm.c \ + fse_compress.c \ + fse_decompress.c \ + gzip.c \ + hist.c \ + hkdf.c \ + huf_compress.c \ + huf_decompress.c \ + lzjb.c \ + lz4.c \ + lz4_zfs.c \ + metaslab.c \ + mmp.c \ + multilist.c \ + objlist.c \ + pathname.c \ + pool.c \ + range_tree.c \ + refcount.c \ + rrwlock.c \ + sa.c \ + sha2_zfs.c \ + skein_zfs.c \ + spa.c \ + spa_checkpoint.c \ + spa_config.c \ + spa_errlog.c \ + spa_history.c \ + spa_log_spacemap.c \ + spa_misc.c \ + spa_stats.c \ + space_map.c \ + space_reftree.c \ + txg.c \ + trace.c \ + uberblock.c \ + unique.c \ + vdev.c \ + vdev_draid.c \ + vdev_draid_rand.c \ + vdev_file.c \ + vdev_indirect_births.c \ + vdev_indirect.c \ + vdev_indirect_mapping.c \ + vdev_initialize.c \ + vdev_label.c \ + vdev_label_os.c \ + vdev_mirror.c \ + vdev_missing.c \ + vdev_queue.c \ + vdev_raidz.c \ + vdev_raidz_math_aarch64_neon.c \ + vdev_raidz_math_aarch64_neonx2.c \ + vdev_raidz_math_avx2.c \ + vdev_raidz_math_avx512bw.c \ + vdev_raidz_math_avx512f.c \ + vdev_raidz_math.c \ + vdev_raidz_math_scalar.c \ + vdev_rebuild.c \ + vdev_removal.c \ + vdev_root.c \ + vdev_trim.c \ + xxhash.c \ + zap.c \ + zap_leaf.c \ + zap_micro.c \ + zcp.c \ + zcp_get.c \ + zcp_global.c \ + zcp_iter.c \ + zcp_set.c \ + zcp_synctask.c \ + zfeature.c \ + zfs_byteswap.c \ + zfs_chksum.c \ + zfs_debug.c \ + zfs_fm.c \ + zfs_fuid.c \ + zfs_sa.c \ + zfs_znode.c \ + zfs_racct.c \ + zfs_ratelimit.c \ + zfs_rlock.c \ + zil.c \ + zio.c \ + zio_checksum.c \ + zio_compress.c \ + zio_crypt.c \ + zio_inject.c \ + zle.c \ + zrlock.c \ + zstd_common.c \ + zstd_compress.c \ + zstd_compress_literals.c \ + zstd_compress_sequences.c \ + zstd_compress_superblock.c \ + zstd_ddict.c \ + zstd_decompress.c \ + zstd_decompress_block.c \ + zstd_double_fast.c \ + zstd_fast.c \ + zstd_lazy.c \ + zstd_ldm.c \ + zstd_opt.c \ + zthr.c + +ARCH_C = +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +ARCH_C += vdev_raidz_math_sse2.c \ + vdev_raidz_math_ssse3.c \ + zfs_fletcher_intel.c \ + zfs_fletcher_sse.c +CFLAGS += -DHAVE_SSE2 -DHAVE_SSE3 +.endif +.if ${MACHINE_ARCH} == "amd64" +ARCH_C += zfs_fletcher_avx512.c +CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \ + -DHAVE_AVX512BW +.endif +.if ${MACHINE_CPUARCH} == "aarch64" +ARCH_C += zfs_fletcher_aarch64_neon.c +.endif + +LUA_C = \ + lapi.c \ + lauxlib.c \ + lbaselib.c \ + lcode.c \ + lcompat.c \ + lcorolib.c \ + lctype.c \ + ldebug.c \ + ldo.c \ + lfunc.c \ + lgc.c \ + llex.c \ + lmem.c \ + lobject.c \ + lopcodes.c \ + lparser.c \ + lstate.c \ + lstring.c \ + lstrlib.c \ + ltable.c \ + ltablib.c \ + ltm.c \ + lvm.c \ + lzio.c + +UNICODE_C = u8_textprep.c uconv.c + +SRCS= ${USER_C} ${KERNEL_C} ${LUA_C} ${UNICODE_C} ${ARCH_C} + +WARNS?= 2 +CFLAGS+= \ + -DIN_BASE \ + -I${ZFSTOP}/include \ + -I${ZFSTOP}/lib/libspl/include \ + -I${ZFSTOP}/lib/libspl/include/os/freebsd \ ++ -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include \ + -I${SRCTOP}/sys \ + -I${ZFSTOP}/include/os/freebsd/zfs \ + -I${SRCTOP}/cddl/compat/opensolaris/include \ + -I${ZFSTOP}/module/icp/include \ + -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h \ + -DHAVE_ISSETUGID \ + -include ${SRCTOP}/sys/modules/zfs/zfs_config.h \ + -I${SRCTOP}/sys/modules/zfs \ + -I${ZFSTOP}/include/os/freebsd/zfs \ + -DLIB_ZPOOL_BUILD -DZFS_DEBUG \ + +# XXX: pthread doesn't have mutex_owned() equivalent, so we need to look +# into libthr private structures. That's sooo evil, but it's only for +# ZFS debugging tools needs. +CFLAGS+= -DWANTS_MUTEX_OWNED +CFLAGS+= -I${SRCTOP}/lib/libpthread/thread +CFLAGS+= -I${SRCTOP}/lib/libpthread/sys +CFLAGS+= -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include +CFLAGS.gcc+= -fms-extensions + +LIBADD= md pthread z spl icp nvpair avl umem + +# atomic.S doesn't like profiling. +MK_PROFILE= no + +CSTD= c99 + +# Since there are many asserts in this library, it makes no sense to compile +# it without debugging. + +CFLAGS+= -g -DDEBUG=1 + +CFLAGS.gcc+= -Wno-pointer-to-int-cast + +# Pointer values are used as debugging "tags" to mark reference count +# ownerships and in some cases the tag reference is dropped after an +# object is freed. +CFLAGS.dbuf.c= ${NO_WUSE_AFTER_FREE} +CFLAGS.entropy_common.c= -fno-tree-vectorize +CFLAGS.entropy_common.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.error_private.c= -fno-tree-vectorize +CFLAGS.error_private.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.fse_compress.c= -fno-tree-vectorize +CFLAGS.fse_compress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.fse_decompress.c= -fno-tree-vectorize +CFLAGS.fse_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.hist.c= -fno-tree-vectorize +CFLAGS.hist.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.huf_compress.c= -fno-tree-vectorize +CFLAGS.huf_compress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.huf_decompress.c= -fno-tree-vectorize +CFLAGS.huf_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.pool.c= -fno-tree-vectorize +CFLAGS.pool.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.xxhash.c= -fno-tree-vectorize +CFLAGS.xxhash.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_compress.c= -fno-tree-vectorize +CFLAGS.zstd_compress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_compress_literals.c= -fno-tree-vectorize +CFLAGS.zstd_compress_literals.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_compress_sequences.c= -fno-tree-vectorize +CFLAGS.zstd_compress_sequences.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_compress_superblock.c= -fno-tree-vectorize +CFLAGS.zstd_compress_superblock.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_double_fast.c= -fno-tree-vectorize +CFLAGS.zstd_double_fast.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_fast.c= -fno-tree-vectorize +CFLAGS.zstd_fast.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_lazy.c= -fno-tree-vectorize +CFLAGS.zstd_lazy.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_ldm.c= -fno-tree-vectorize +CFLAGS.zstd_ldm.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_opt.c= -fno-tree-vectorize +CFLAGS.zstd_opt.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_ddict.c= -fno-tree-vectorize +CFLAGS.zstd_ddict.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_decompress.c= -fno-tree-vectorize +CFLAGS.zstd_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} +CFLAGS.zstd_decompress_block.c= -fno-tree-vectorize +CFLAGS.zstd_decompress_block.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} + +.include diff --cc cddl/sbin/zpool/Makefile index aaa2c51016ad,000000000000..ab7b852b4d9a mode 100644,000000..100644 --- a/cddl/sbin/zpool/Makefile +++ b/cddl/sbin/zpool/Makefile @@@ -1,80 -1,0 +1,82 @@@ +ZFSTOP= ${SRCTOP}/sys/contrib/openzfs + +.PATH: ${ZFSTOP}/man/man4 +.PATH: ${ZFSTOP}/man/man5 +.PATH: ${ZFSTOP}/man/man7 +.PATH: ${ZFSTOP}/man/man8 +.PATH: ${ZFSTOP}/cmd/zpool +.PATH: ${ZFSTOP}/cmd/zpool/os/freebsd + + +PACKAGE= zfs +PROG= zpool +MAN= \ + spl.4 \ + vdevprops.7 \ + zfs.4 \ + zpool.8 \ + zpool-add.8 \ + zpool-attach.8 \ + zpool-checkpoint.8 \ + zpool-clear.8 \ + zpool-create.8 \ + zpool-destroy.8 \ + zpool-detach.8 \ ++ zpool-ddtprune.8 \ + zpool-events.8 \ + zpool-export.8 \ + zpool-features.7 \ + zpool-get.8 \ + zpool-history.8 \ + zpool-import.8 \ + zpool-initialize.8 \ + zpool-iostat.8 \ + zpool-labelclear.8 \ + zpool-list.8 \ + zpool-offline.8 \ + zpool-prefetch.8 \ + zpool-reguid.8 \ + zpool-remove.8 \ + zpool-reopen.8 \ + zpool-replace.8 \ + zpool-resilver.8 \ + zpool-scrub.8 \ + zpool-split.8 \ + zpool-status.8 \ + zpool-sync.8 \ + zpool-trim.8 \ + zpool-upgrade.8 \ + zpool-wait.8 \ + zpoolconcepts.7 \ + zpoolprops.7 +MLINKS= \ + zpool-offline.8 zpool-online.8 \ + zpool-get.8 zpool-set.8 +SRCS= \ + zpool_iter.c \ + zpool_main.c \ + zpool_util.c \ + zpool_util.h \ + zpool_vdev.c \ + zpool_vdev_os.c + +WARNS?= 2 + +CFLAGS+= \ + -DIN_BASE \ + -I${ZFSTOP}/include \ + -I${ZFSTOP}/lib/libspl/include \ + -I${ZFSTOP}/lib/libspl/include/os/freebsd \ *** 9973 LINES SKIPPED *** From nobody Mon Sep 9 17:27:41 2024 X-Original-To: dev-commits-src-main@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 4X2Ygf1gWLz5TTm3; Mon, 09 Sep 2024 17:27: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2Ygf17zFz45R7; Mon, 9 Sep 2024 17:27:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725902862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vJEncyc1YqW0ApCD1tDz4n8N/D+MN5KLHYL6AXF9z7w=; b=k+8LLV5O6Ld0LahwrQoZ475VBoQS5V+lh49wmtq4nKmbZ74Zp9crVnt1sjQRJTTZTcKopE L+jW+HUyuN9eNaHpRzwxRXViRyiRPU4DMXBpVtKL615hVe7kfvgJdfBU560bpPV5fQKJzz ygXafyC7mECL8aT0E77P9v7Uk61XmZYO39aga4vpi7goo0g8YPoHOGDkivGo8WSpFe7jcI fShgcNkTwIyo/inMwz/0Cvp4jLwJVPBSQNzepniHEF3TadNENvpjBox2CL/pyv9Wz8y7Yk EfcNTvrXHiUM+4uG8DupZoQeQRu5uhmoJ9UcZo3lWIhWnTC+LIupD6/D7twOUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725902862; a=rsa-sha256; cv=none; b=qQg2uKlKaMhoM8Yzvw0FCa175M0I/Ret//LBaVuPiZMiFlT83hd2NwjnvywHPB3gqIkw7t L8a69WDVUF8/tL58YMxg11o5sdLXX2VDpcq7+wakfexUNIrzt9ofm9GTb9zGXv9+6W9h1V +MQx47ZmaDSmi/ukAQmPHHPg8u6eMnPJk71TAE+JbzsL2WC265iONdBmq6cBUBgXlivlRK wzMbcnaZigGifGYnz3SJ++CnbvTS40w7BLZ8V9zT07JPnfV3InnWvN8ApJIqaIgHvliY+b MBVpTIVA7BM9tmhhZUeXvuBOMCvgGaSwrkA6pfpVmMmSm41pa8cE9iUr2K6HNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725902862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vJEncyc1YqW0ApCD1tDz4n8N/D+MN5KLHYL6AXF9z7w=; b=exQgzquto0O24EwI8coodBDspMvcnFlGJ01RwJQw22JhchIY8ScoNWbzyuGfd0I5aH/mhl SZaKuSUERq6zFU1pPxUd5WptoT0wS536XGJnPEofnxGrI553rETGD19u3y85b6SMyYD+hX zzkmRV0zVCNf6ozo26pJed81qZKa0vsJI4OrKWCKjsbDVB1xoe/kLZlEB7rcKm5MVUcaTi 4eAzMUMAKswc2r4kPV90rxJJfhzDamv7h59p/Jv3EOxEaFsOjLhlevJE4pOYtJ80ZcJ9X2 V0AcyntaCfiXvgoMJLOgyTVWfACEI4axS1a2DfYEidTETplH8QqxFGSWNRft7Q== 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 4X2Ygf0kW2z1B35; Mon, 9 Sep 2024 17:27:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489HRfeq078171; Mon, 9 Sep 2024 17:27:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489HRfoB078168; Mon, 9 Sep 2024 17:27:41 GMT (envelope-from git) Date: Mon, 9 Sep 2024 17:27:41 GMT Message-Id: <202409091727.489HRfoB078168@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Peek Subject: git: dda0f9837b1c - main - bhyve: support noVNC SetPixelFormat request List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dda0f9837b1c4049079aeaefb35076aef5f06a6c Auto-Submitted: auto-generated The branch main has been updated by mp: URL: https://cgit.FreeBSD.org/src/commit/?id=dda0f9837b1c4049079aeaefb35076aef5f06a6c commit dda0f9837b1c4049079aeaefb35076aef5f06a6c Author: Mark Peek AuthorDate: 2024-09-09 17:21:17 +0000 Commit: Mark Peek CommitDate: 2024-09-09 17:21:17 +0000 bhyve: support noVNC SetPixelFormat request The bhyve VNC server would ignore the SetPixelFormat message from the VNC client. This change supports a limited implementation to detect and reorder the colors such as requested from the noVNC client. PR: 280984 Reviewed by: corvink Differential Revision: https://reviews.freebsd.org/D46402 MFC after: 3 weeks --- usr.sbin/bhyve/rfb.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 136 insertions(+), 7 deletions(-) diff --git a/usr.sbin/bhyve/rfb.c b/usr.sbin/bhyve/rfb.c index bb989a33f484..6af374a83bbe 100644 --- a/usr.sbin/bhyve/rfb.c +++ b/usr.sbin/bhyve/rfb.c @@ -103,6 +103,13 @@ static int rfb_debug = 0; #define AUTH_FAILED_UNAUTH 1 #define AUTH_FAILED_ERROR 2 +struct pixfmt { + bool adjust_pixels; + uint8_t red_shift; + uint8_t green_shift; + uint8_t blue_shift; +}; + struct rfb_softc { int sfd; pthread_t tid; @@ -131,14 +138,20 @@ struct rfb_softc { atomic_bool pending; atomic_bool update_all; atomic_bool input_detected; + atomic_bool update_pixfmt; pthread_mutex_t mtx; + pthread_mutex_t pixfmt_mtx; pthread_cond_t cond; int hw_crc; uint32_t *crc; /* WxH crc cells */ uint32_t *crc_tmp; /* buffer to store single crc row */ int crc_width, crc_height; + + struct pixfmt pixfmt; /* owned by the write thread */ + struct pixfmt new_pixfmt; /* managed with pixfmt_mtx */ + uint32_t *pixrow; }; struct rfb_pixfmt { @@ -179,6 +192,10 @@ struct rfb_pixfmt_msg { #define RFB_MAX_HEIGHT 1200 #define RFB_ZLIB_BUFSZ RFB_MAX_WIDTH*RFB_MAX_HEIGHT*4 +#define PIXEL_RED_SHIFT 16 +#define PIXEL_GREEN_SHIFT 8 +#define PIXEL_BLUE_SHIFT 0 + /* percentage changes to screen before sending the entire screen */ #define RFB_SEND_ALL_THRESH 25 @@ -261,9 +278,9 @@ rfb_send_server_init_msg(int cfd) sinfo.pixfmt.red_max = htons(255); sinfo.pixfmt.green_max = htons(255); sinfo.pixfmt.blue_max = htons(255); - sinfo.pixfmt.red_shift = 16; - sinfo.pixfmt.green_shift = 8; - sinfo.pixfmt.blue_shift = 0; + sinfo.pixfmt.red_shift = PIXEL_RED_SHIFT; + sinfo.pixfmt.green_shift = PIXEL_GREEN_SHIFT; + sinfo.pixfmt.blue_shift = PIXEL_BLUE_SHIFT; sinfo.pixfmt.pad[0] = 0; sinfo.pixfmt.pad[1] = 0; sinfo.pixfmt.pad[2] = 0; @@ -318,9 +335,67 @@ static void rfb_recv_set_pixfmt_msg(struct rfb_softc *rc __unused, int cfd) { struct rfb_pixfmt_msg pixfmt_msg; + uint8_t red_shift, green_shift, blue_shift; + uint16_t red_max, green_max, blue_max; + bool adjust_pixels = true; (void)stream_read(cfd, (uint8_t *)&pixfmt_msg + 1, sizeof(pixfmt_msg) - 1); + + /* + * The framebuffer is fixed at 32 bit and orders the colors + * as RGB bytes. However, some VNC clients request a different + * ordering. We will still require the same bit depth and size + * but allow the colors to be shifted when sent to the client. + */ + if (pixfmt_msg.pixfmt.bpp != 32 || pixfmt_msg.pixfmt.truecolor != 1) { + WPRINTF(("rfb: pixfmt unsupported bitdepth bpp: %d " + "truecolor: %d", + pixfmt_msg.pixfmt.bpp, pixfmt_msg.pixfmt.truecolor)); + return; + } + + red_max = ntohs(pixfmt_msg.pixfmt.red_max); + green_max = ntohs(pixfmt_msg.pixfmt.green_max); + blue_max = ntohs(pixfmt_msg.pixfmt.blue_max); + + /* Check for valid max values */ + if (red_max != 255 || green_max != 255 || blue_max != 255) { + WPRINTF(("rfb: pixfmt unsupported max values " + "r: %d g: %d b: %d", + red_max, green_max, blue_max)); + return; + } + + red_shift = pixfmt_msg.pixfmt.red_shift; + green_shift = pixfmt_msg.pixfmt.green_shift; + blue_shift = pixfmt_msg.pixfmt.blue_shift; + + /* Check shifts are 8 bit aligned */ + if ((red_shift & 0x7) != 0 || + (green_shift & 0x7) != 0 || + (blue_shift & 0x7) != 0) { + WPRINTF(("rfb: pixfmt unsupported shift values " + "r: %d g: %d b: %d", + red_shift, green_shift, blue_shift)); + return; + } + + if (red_shift == PIXEL_RED_SHIFT && + green_shift == PIXEL_GREEN_SHIFT && + blue_shift == PIXEL_BLUE_SHIFT) { + adjust_pixels = false; + } + + pthread_mutex_lock(&rc->pixfmt_mtx); + rc->new_pixfmt.red_shift = red_shift; + rc->new_pixfmt.green_shift = green_shift; + rc->new_pixfmt.blue_shift = blue_shift; + rc->new_pixfmt.adjust_pixels = adjust_pixels; + pthread_mutex_unlock(&rc->pixfmt_mtx); + + /* Notify the write thread to update */ + rc->update_pixfmt = true; } static void @@ -388,6 +463,30 @@ rfb_send_update_header(struct rfb_softc *rc __unused, int cfd, int numrects) sizeof(struct rfb_srvr_updt_msg)); } +static uint32_t * +rfb_adjust_pixels(struct rfb_softc *rc, uint32_t *gcptr, int width) +{ + uint32_t *pixelp; + uint32_t red, green, blue; + int i; + + /* If no pixel adjustment needed, send in server format */ + if (!rc->pixfmt.adjust_pixels) { + return (gcptr); + } + + for (i = 0, pixelp = rc->pixrow; i < width; i++, pixelp++, gcptr++) { + red = (*gcptr >> 16) & 0xFF; + green = (*gcptr >> 8) & 0xFF; + blue = (*gcptr & 0xFF); + *pixelp = (red << rc->pixfmt.red_shift) | + (green << rc->pixfmt.green_shift) | + (blue << rc->pixfmt.blue_shift); + } + + return (rc->pixrow); +} + static int rfb_send_rect(struct rfb_softc *rc, int cfd, struct bhyvegc_image *gc, int x, int y, int w, int h) @@ -395,8 +494,8 @@ rfb_send_rect(struct rfb_softc *rc, int cfd, struct bhyvegc_image *gc, struct rfb_srvr_rect_hdr srect_hdr; unsigned long zlen; ssize_t nwrite, total; - int err; - uint32_t *p; + int err, width; + uint32_t *p, *pixelp; uint8_t *zbufp; /* @@ -409,6 +508,7 @@ rfb_send_rect(struct rfb_softc *rc, int cfd, struct bhyvegc_image *gc, srect_hdr.width = htons(w); srect_hdr.height = htons(h); + width = w; h = y + h; w *= sizeof(uint32_t); if (rc->enc_zlib_ok) { @@ -416,7 +516,8 @@ rfb_send_rect(struct rfb_softc *rc, int cfd, struct bhyvegc_image *gc, rc->zstream.total_in = 0; rc->zstream.total_out = 0; for (p = &gc->data[y * gc->width + x]; y < h; y++) { - rc->zstream.next_in = (Bytef *)p; + pixelp = rfb_adjust_pixels(rc, p, width); + rc->zstream.next_in = (Bytef *)pixelp; rc->zstream.avail_in = w; rc->zstream.next_out = (Bytef *)zbufp; rc->zstream.avail_out = RFB_ZLIB_BUFSZ + 16 - @@ -452,7 +553,8 @@ doraw: total = 0; zbufp = rc->zbuf; for (p = &gc->data[y * gc->width + x]; y < h; y++) { - memcpy(zbufp, p, w); + pixelp = rfb_adjust_pixels(rc, p, width); + memcpy(zbufp, pixelp, w); zbufp += w; total += w; p += gc->width; @@ -491,6 +593,11 @@ rfb_send_all(struct rfb_softc *rc, int cfd, struct bhyvegc_image *gc) if (nwrite <= 0) return (nwrite); + if (rc->pixfmt.adjust_pixels) { + return (rfb_send_rect(rc, cfd, gc, 0, 0, + gc->width, gc->height)); + } + /* Rectangle header */ srect_hdr.x = 0; srect_hdr.y = 0; @@ -546,6 +653,14 @@ doraw: #define PIXCELL_SHIFT 5 #define PIXCELL_MASK 0x1F +static void +rfb_set_pixel_adjustment(struct rfb_softc *rc) +{ + pthread_mutex_lock(&rc->pixfmt_mtx); + rc->pixfmt = rc->new_pixfmt; + pthread_mutex_unlock(&rc->pixfmt_mtx); +} + static int rfb_send_screen(struct rfb_softc *rc, int cfd) { @@ -573,6 +688,10 @@ rfb_send_screen(struct rfb_softc *rc, int cfd) if (atomic_exchange(&rc->pending, false) == false) goto done; + if (atomic_exchange(&rc->update_pixfmt, false) == true) { + rfb_set_pixel_adjustment(rc); + } + console_refresh(); gc_image = console_get_image(); @@ -1157,6 +1276,12 @@ rfb_init(const char *hostname, int port, int wait, const char *password) rc->password = password; + rc->pixrow = malloc(RFB_MAX_WIDTH * sizeof(uint32_t)); + if (rc->pixrow == NULL) { + EPRINTLN("rfb: failed to allocate memory for pixrow buffer"); + goto error; + } + snprintf(servname, sizeof(servname), "%d", port ? port : 5900); if (!hostname || strlen(hostname) == 0) @@ -1208,6 +1333,7 @@ rfb_init(const char *hostname, int port, int wait, const char *password) pthread_cond_init(&rc->cond, NULL); } + pthread_mutex_init(&rc->pixfmt_mtx, NULL); pthread_create(&rc->tid, NULL, rfb_thr, rc); pthread_set_name_np(rc->tid, "rfb"); @@ -1223,12 +1349,15 @@ rfb_init(const char *hostname, int port, int wait, const char *password) return (0); error: + if (rc->pixfmt_mtx) + pthread_mutex_destroy(&rc->pixfmt_mtx); if (ai != NULL) freeaddrinfo(ai); if (rc->sfd != -1) close(rc->sfd); free(rc->crc); free(rc->crc_tmp); + free(rc->pixrow); free(rc); return (-1); } From nobody Mon Sep 9 18:46:05 2024 X-Original-To: dev-commits-src-main@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 4X2bQt3Txwz5ThP9; Mon, 09 Sep 2024 18:46:46 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Received: from smtp052.goneo.de (smtp052.goneo.de [85.220.129.60]) (using TLSv1.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 mx1.freebsd.org (Postfix) with ESMTPS id 4X2bQs1rxGz4N0w; Mon, 9 Sep 2024 18:46:45 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Authentication-Results: mx1.freebsd.org; none Received: from hub1.goneo.de (hub1.goneo.de [85.220.129.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp5.goneo.de (Postfix) with ESMTPS id 50946240E3E; Mon, 9 Sep 2024 20:46:37 +0200 (CEST) Received: from hub1.goneo.de (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPS id 644D92402D8; Mon, 9 Sep 2024 20:46:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walstatt-de.de; s=DKIM001; t=1725907595; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HnYUiiffJSQReOzvotDxcrf5k23yaPwgob8Ma+eFiAE=; b=U/waSQiEYCEOMqnMpj3mTw2XwcTCdVThWk0cdeHA2C/HVRYr5+k8NOEWfjKDwlA5oIZ9Ws aSch4JIpSXNcS/Nif6DJUngdO3KegLz6O1Vkp9btu0D7KivkNoaSamCTgTzbQNCAc6/yQg o4YROGHlHaELPEybrWajzQHnSsrK5P+IE1WAWEn2eVtJ2FjfC+caPLPaOLr5eEsFPXZblF 7K1AIyI96VEavpFnjxwv7hiKlMGr80n86f4LhcrtyAwv0xBIpAZAnVCn3WH2f9lkqPyyp9 C893lWGKOjald4LLCFVsKU/ua3STSOiBhcJrztnkKAzpSYz3xdYeut9YiE7Uew== Received: from thor.intern.walstatt.dynvpn.de (dynamic-078-054-167-035.78.54.pool.telefonica.de [78.54.167.35]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPSA id 0DF312400E6; Mon, 9 Sep 2024 20:46:35 +0200 (CEST) Date: Mon, 9 Sep 2024 20:46:05 +0200 From: FreeBSD User To: Martin Matuska Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: e2df9bb44109 - main - zfs: merge openzfs/zfs@b10992582 Message-ID: <20240909204632.78f3b525@thor.intern.walstatt.dynvpn.de> In-Reply-To: <202409091648.489GmCNu009544@gitrepo.freebsd.org> References: <202409091648.489GmCNu009544@gitrepo.freebsd.org> Organization: walstatt-de.de List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-UID: 0fa4fd X-Rspamd-UID: d16872 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:25394, ipnet:85.220.128.0/17, country:DE] X-Rspamd-Queue-Id: 4X2bQs1rxGz4N0w Am Mon, 9 Sep 2024 16:48:12 GMT Martin Matuska schrieb: Hello, the commit seems to breaks buildworld for me, somehow: [...] /usr/src/sys/contrib/openzfs/module/os/linux/zfs/abd_os.c:61:10: fatal erro= r: 'linux/kmap_compat.h' file not found 61 | #include > The branch main has been updated by mm: >=20 > URL: https://cgit.FreeBSD.org/src/commit/?id=3De2df9bb44109577475aeb186e7= 186ac040f9bde1 >=20 > commit e2df9bb44109577475aeb186e7186ac040f9bde1 > Merge: f05795e3f65f b109925820fb > Author: Martin Matuska > AuthorDate: 2024-09-09 16:13:02 +0000 > Commit: Martin Matuska > CommitDate: 2024-09-09 16:13:02 +0000 >=20 > zfs: merge openzfs/zfs@b10992582 > =20 > Notable upstream pull request merges: > #15892 -multiple Fast Dedup: Introduce the FDT on-disk format and fe= ature flag > #15893 -multiple Fast Dedup: =E2=80=9Cflat=E2=80=9D DDT entry format > #15895 -multiple Fast Dedup: FDT-log feature > #16239 6be8bf555 zpool: Provide GUID to zpool-reguid(8) with -g > #16277 -multiple Fast Dedup: prune unique entries > #16316 5807de90a Fix null ptr deref when renaming a zvol with snaps = and snapdev=3Dvisible > #16343 77a797a38 Enable L2 cache of all (MRU+MFU) metadata but MFU d= ata only > #16446 83f359245 FreeBSD: fix build without kernel option MAC > #16449 963e6c9f3 Fix incorrect error report on vdev attach/replace > #16505 b10992582 spa_prop_get: require caller to supply output nvlist > =20 > Obtained from: OpenZFS > OpenZFS commit: b109925820fb79db3e37670c159977f03edd950f >=20 > cddl/lib/libicp/Makefile | 1 + > cddl/lib/libicp_rescue/Makefile | 1 + > cddl/lib/libzfs/Makefile | 3 +- > cddl/lib/libzpool/Makefile | 8 +- > cddl/sbin/zpool/Makefile | 2 + > cddl/usr.bin/zinject/Makefile | 1 + > cddl/usr.bin/zstream/Makefile | 2 + > cddl/usr.bin/ztest/Makefile | 1 + > cddl/usr.sbin/zdb/Makefile | 1 + > cddl/usr.sbin/zfsd/Makefile.common | 1 + > cddl/usr.sbin/zhack/Makefile | 1 + > lib/libbe/Makefile | 1 + > sys/cddl/boot/zfs/zfssubr.c | 4 +- > sys/conf/files | 2 + > sys/contrib/openzfs/META | 2 +- > sys/contrib/openzfs/cmd/Makefile.am | 4 +- > sys/contrib/openzfs/cmd/mount_zfs.c | 5 +- > sys/contrib/openzfs/cmd/raidz_test/Makefile.am | 2 +- > sys/contrib/openzfs/cmd/zdb/Makefile.am | 2 +- > sys/contrib/openzfs/cmd/zdb/zdb.c | 486 +++-- > sys/contrib/openzfs/cmd/zed/agents/zfs_diagnosis.c | 15 +- > sys/contrib/openzfs/cmd/zpool/zpool_main.c | 136 +- > sys/contrib/openzfs/cmd/zstream/Makefile.am | 2 + > .../openzfs/cmd/zstream/zstream_decompress.c | 124 +- > .../openzfs/cmd/zstream/zstream_recompress.c | 110 +- > sys/contrib/openzfs/cmd/ztest.c | 30 +- > sys/contrib/openzfs/config/Rules.am | 8 +- > .../contrib/debian/openzfs-zfsutils.install | 1 + > sys/contrib/openzfs/include/Makefile.am | 1 + > sys/contrib/openzfs/include/libzfs.h | 4 + > sys/contrib/openzfs/include/libzfs_core.h | 3 + > sys/contrib/openzfs/include/os/freebsd/Makefile.am | 2 + > .../include/os/freebsd/zfs/sys/abd_impl_os.h | 41 + > .../openzfs/include/os/freebsd/zfs/sys/abd_os.h | 46 + > sys/contrib/openzfs/include/os/linux/Makefile.am | 2 + > .../openzfs/include/os/linux/spl/sys/taskq.h | 42 + > .../openzfs/include/os/linux/zfs/sys/abd_impl_os.h | 41 + > .../openzfs/include/os/linux/zfs/sys/abd_os.h | 62 + > sys/contrib/openzfs/include/sys/abd.h | 37 +- > sys/contrib/openzfs/include/sys/abd_impl.h | 14 +- > sys/contrib/openzfs/include/sys/ddt.h | 214 ++- > sys/contrib/openzfs/include/sys/ddt_impl.h | 202 +- > sys/contrib/openzfs/include/sys/dmu.h | 2 + > sys/contrib/openzfs/include/sys/dsl_scan.h | 2 +- > sys/contrib/openzfs/include/sys/fs/zfs.h | 20 +- > sys/contrib/openzfs/include/sys/spa.h | 9 +- > sys/contrib/openzfs/include/sys/spa_impl.h | 1 + > sys/contrib/openzfs/include/sys/zio.h | 3 + > sys/contrib/openzfs/include/sys/zio_compress.h | 90 +- > sys/contrib/openzfs/include/sys/zio_impl.h | 3 + > sys/contrib/openzfs/include/sys/zio_priority.h | 4 + > sys/contrib/openzfs/include/sys/zstd/zstd.h | 8 +- > sys/contrib/openzfs/include/zfeature_common.h | 1 + > sys/contrib/openzfs/include/zfs_valstr.h | 84 + > sys/contrib/openzfs/lib/libzfs/Makefile.am | 1 + > sys/contrib/openzfs/lib/libzfs/libzfs.abi | 135 +- > sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 76 +- > .../openzfs/lib/libzfs_core/libzfs_core.abi | 15 + > sys/contrib/openzfs/lib/libzfs_core/libzfs_core.c | 22 + > sys/contrib/openzfs/lib/libzpool/Makefile.am | 8 +- > sys/contrib/openzfs/lib/libzpool/abd_os.c | 365 ++++ > .../openzfs/lib/libzpool/include/Makefile.am | 4 + > .../openzfs/lib/libzpool/include/sys/abd_impl_os.h | 41 + > .../openzfs/lib/libzpool/include/sys/abd_os.h | 47 + > sys/contrib/openzfs/man/Makefile.am | 1 + > sys/contrib/openzfs/man/man4/spl.4 | 11 - > sys/contrib/openzfs/man/man4/zfs.4 | 108 +- > sys/contrib/openzfs/man/man7/zpool-features.7 | 17 +- > sys/contrib/openzfs/man/man8/zpool-ddtprune.8 | 48 + > sys/contrib/openzfs/man/man8/zpool-reguid.8 | 14 +- > sys/contrib/openzfs/man/man8/zpool.8 | 1 + > sys/contrib/openzfs/module/Kbuild.in | 6 +- > sys/contrib/openzfs/module/Makefile.bsd | 3 + > sys/contrib/openzfs/module/os/freebsd/zfs/abd_os.c | 4 +- > .../openzfs/module/os/freebsd/zfs/sysctl_os.c | 1 - > .../openzfs/module/os/linux/spl/spl-generic.c | 20 +- > sys/contrib/openzfs/module/os/linux/spl/spl-proc.c | 268 --- > .../openzfs/module/os/linux/spl/spl-taskq.c | 414 +++- > .../openzfs/module/os/linux/spl/spl-thread.c | 7 + > sys/contrib/openzfs/module/os/linux/zfs/abd_os.c | 153 +- > sys/contrib/openzfs/module/os/linux/zfs/arc_os.c | 6 +- > .../openzfs/module/os/linux/zfs/zfs_ctldir.c | 8 +- > .../openzfs/module/os/linux/zfs/zpl_super.c | 8 +- > sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c | 14 +- > .../openzfs/module/zcommon/zfeature_common.c | 6 + > sys/contrib/openzfs/module/zcommon/zfs_valstr.c | 277 +++ > sys/contrib/openzfs/module/zfs/abd.c | 24 +- > sys/contrib/openzfs/module/zfs/arc.c | 95 +- > sys/contrib/openzfs/module/zfs/blkptr.c | 9 +- > sys/contrib/openzfs/module/zfs/dataset_kstats.c | 3 + > sys/contrib/openzfs/module/zfs/ddt.c | 1981 ++++++++++++++= +++--- > sys/contrib/openzfs/module/zfs/ddt_log.c | 778 ++++++++ > sys/contrib/openzfs/module/zfs/ddt_stats.c | 129 +- > sys/contrib/openzfs/module/zfs/ddt_zap.c | 30 +- > sys/contrib/openzfs/module/zfs/dmu.c | 32 + > sys/contrib/openzfs/module/zfs/dmu_recv.c | 7 +- > sys/contrib/openzfs/module/zfs/dsl_dataset.c | 8 +- > sys/contrib/openzfs/module/zfs/dsl_scan.c | 46 +- > sys/contrib/openzfs/module/zfs/gzip.c | 13 +- > sys/contrib/openzfs/module/zfs/lz4_zfs.c | 11 +- > sys/contrib/openzfs/module/zfs/lzjb.c | 13 +- > sys/contrib/openzfs/module/zfs/spa.c | 31 +- > sys/contrib/openzfs/module/zfs/zfs_fm.c | 2 +- > sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 80 +- > sys/contrib/openzfs/module/zfs/zio.c | 473 +++-- > sys/contrib/openzfs/module/zfs/zio_compress.c | 92 +- > sys/contrib/openzfs/module/zfs/zle.c | 13 +- > sys/contrib/openzfs/module/zstd/zfs_zstd.c | 102 +- > sys/contrib/openzfs/rpm/generic/zfs-kmod.spec.in | 18 + > sys/contrib/openzfs/tests/runfiles/common.run | 8 +- > .../openzfs/tests/zfs-tests/cmd/Makefile.am | 2 +- > .../openzfs/tests/zfs-tests/include/tunables.cfg | 1 + > .../openzfs/tests/zfs-tests/tests/Makefile.am | 6 + > .../functional/cli_root/zpool_get/zpool_get.cfg | 1 + > .../zpool_prefetch/zpool_prefetch_001_pos.ksh | 4 + > .../functional/cli_root/zpool_reguid/Makefile.am | 6 + > .../functional/cli_root/zpool_reguid/cleanup.ksh | 32 + > .../functional/cli_root/zpool_reguid/setup.ksh | 34 + > .../cli_root/zpool_reguid/zpool_reguid_001_pos.ksh | 73 + > .../cli_root/zpool_reguid/zpool_reguid_002_neg.ksh | 60 + > .../tests/functional/dedup/dedup_fdt_create.ksh | 106 ++ > .../tests/functional/dedup/dedup_fdt_import.ksh | 119 ++ > .../tests/functional/dedup/dedup_legacy_create.ksh | 95 + > .../functional/dedup/dedup_legacy_fdt_mixed.ksh | 104 + > .../functional/dedup/dedup_legacy_fdt_upgrade.ksh | 129 ++ > .../tests/functional/dedup/dedup_legacy_import.ksh | 104 + > .../tests/functional/dedup/dedup_quota.ksh | 18 +- > .../zfs-tests/tests/functional/dedup/setup.ksh | 4 - > sys/modules/zfs/Makefile | 3 + > sys/modules/zfs/zfs_config.h | 6 +- > sys/modules/zfs/zfs_gitrev.h | 2 +- > usr.sbin/fstyp/Makefile | 1 + > 132 files changed, 7401 insertions(+), 1510 deletions(-) >=20 > diff --cc cddl/lib/libicp/Makefile > index b8bd3dc6df95,000000000000..f097e7e6ff58 > mode 100644,000000..100644 > --- a/cddl/lib/libicp/Makefile > +++ b/cddl/lib/libicp/Makefile > @@@ -1,137 -1,0 +1,138 @@@ > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp > + > +PACKAGE=3D zfs > +LIB=3D icp > +LIBADD=3D > + > +.if ${MACHINE_ARCH} =3D=3D "amd64" > +ASM_SOURCES_C =3D asm-x86_64/aes/aeskey.c > +ASM_SOURCES_AS =3D \ > + asm-x86_64/aes/aes_amd64.S \ > + asm-x86_64/aes/aes_aesni.S \ > + asm-x86_64/modes/gcm_pclmulqdq.S \ > + asm-x86_64/modes/aesni-gcm-x86_64.S \ > + asm-x86_64/modes/ghash-x86_64.S \ > + asm-x86_64/sha2/sha256-x86_64.S \ > + asm-x86_64/sha2/sha512-x86_64.S \ > + asm-x86_64/blake3/blake3_avx2.S \ > + asm-x86_64/blake3/blake3_avx512.S \ > + asm-x86_64/blake3/blake3_sse2.S \ > + asm-x86_64/blake3/blake3_sse41.S > + > +CFLAGS+=3D -D__amd64 -D_SYS_STACK_H -UHAVE_AES > +.elif ${MACHINE_CPUARCH} =3D=3D "arm" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-arm/sha2/sha256-armv7.S \ > + asm-arm/sha2/sha512-armv7.S > +.elif ${MACHINE_ARCH} =3D=3D "aarch64" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-aarch64/blake3/b3_aarch64_sse2.S \ > + asm-aarch64/blake3/b3_aarch64_sse41.S \ > + asm-aarch64/sha2/sha256-armv8.S \ > + asm-aarch64/sha2/sha512-armv8.S > +.elif ${MACHINE_ARCH} =3D=3D "powerpc64" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-ppc64/sha2/sha256-ppc.S \ > + asm-ppc64/sha2/sha512-ppc.S \ > + asm-ppc64/sha2/sha256-p8.S \ > + asm-ppc64/sha2/sha512-p8.S > +.elif ${MACHINE_ARCH} =3D=3D "powerpc64le" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-ppc64/blake3/b3_ppc64le_sse2.S \ > + asm-ppc64/blake3/b3_ppc64le_sse41.S \ > + asm-ppc64/sha2/sha256-ppc.S \ > + asm-ppc64/sha2/sha512-ppc.S \ > + asm-ppc64/sha2/sha256-p8.S \ > + asm-ppc64/sha2/sha512-p8.S > +.else > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D > +.endif > + > +KERNEL_C =3D \ > + spi/kcf_spi.c \ > + api/kcf_ctxops.c \ > + api/kcf_cipher.c \ > + api/kcf_mac.c \ > + algs/aes/aes_impl_aesni.c \ > + algs/aes/aes_impl_generic.c \ > + algs/aes/aes_impl_x86-64.c \ > + algs/aes/aes_impl.c \ > + algs/aes/aes_modes.c \ > + algs/blake3/blake3.c \ > + algs/blake3/blake3_generic.c \ > + algs/blake3/blake3_impl.c \ > + algs/edonr/edonr.c \ > + algs/modes/modes.c \ > + algs/modes/gcm_generic.c \ > + algs/modes/gcm_pclmulqdq.c \ > + algs/modes/gcm.c \ > + algs/modes/ccm.c \ > + algs/sha2/sha2_generic.c \ > + algs/sha2/sha256_impl.c \ > + algs/sha2/sha512_impl.c \ > + algs/skein/skein.c \ > + algs/skein/skein_block.c \ > + algs/skein/skein_iv.c \ > + illumos-crypto.c \ > + io/aes.c \ > + io/sha2_mod.c \ > + core/kcf_sched.c \ > + core/kcf_prov_lib.c \ > + core/kcf_callprov.c \ > + core/kcf_mech_tabs.c \ > + core/kcf_prov_tabs.c \ > + $(ASM_SOURCES_C) > + > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zfs > +KERNEL_C+=3D zfs_impl.c > + > +SRCS=3D $(ASM_SOURCES_AS) $(KERNEL_C) > + > +WARNS?=3D 2 > +SHLIB_MAJOR=3D 3 > +CSTD=3D c99 > +CFLAGS+=3D -DIN_BASE > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/ > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd > +CFLAGS+=3D -I${SRCTOP}/sys > +CFLAGS+=3D -I${SRCTOP}/cddl/compat/opensolaris/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/module/icp/include > ++CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include > +CFLAGS+=3D -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/sp= l/sys/ccompile.h > +CFLAGS+=3D -DHAVE_ISSETUGID > +CFLAGS+=3D -include ${SRCTOP}/sys/modules/zfs/zfs_config.h > + > +CFLAGS.aes_amd64.S+=3D -DLOCORE > +CFLAGS.aes_aesni.S+=3D -DLOCORE > +CFLAGS.gcm_pclmulqdq.S+=3D -DLOCORE > +CFLAGS.aesni-gcm-x86_64.S+=3D -DLOCORE > +CFLAGS.ghash-x86_64.S+=3D -DLOCORE > +CFLAGS.sha256-x86_64.S+=3D -DLOCORE > +CFLAGS.sha512-x86_64.S+=3D -DLOCORE > +CFLAGS.blake3_avx2.S =3D -DLOCORE > +CFLAGS.blake3_avx512.S =3D -DLOCORE > +CFLAGS.blake3_sse2.S =3D -DLOCORE > +CFLAGS.blake3_sse41.S =3D -DLOCORE > +CFLAGS.b3_aarch64_sse2.S =3D -DLOCORE > +CFLAGS.b3_aarch64_sse41.S =3D -DLOCORE > +CFLAGS.sha256-armv7.S =3D -DLOCORE > +CFLAGS.sha256-armv8.S =3D -DLOCORE > +CFLAGS.sha512-armv7.S =3D -DLOCORE > +CFLAGS.sha512-armv8.S =3D -DLOCORE > +CFLAGS.b3_ppc64le_sse2.S =3D -DLOCORE > +CFLAGS.b3_ppc64le_sse41.S =3D -DLOCORE > +CFLAGS.sha256-p8.S =3D -DLOCORE > +CFLAGS.sha256-ppc.S =3D -DLOCORE > +CFLAGS.sha512-p8.S =3D -DLOCORE > +CFLAGS.sha512-ppc.S =3D -DLOCORE > + > + > +LDFLAGS.bfd+=3D -Wl,-znoexecstack > + > +.include > diff --cc cddl/lib/libicp_rescue/Makefile > index 3b332f736bde,000000000000..3a8b6746fe61 > mode 100644,000000..100644 > --- a/cddl/lib/libicp_rescue/Makefile > +++ b/cddl/lib/libicp_rescue/Makefile > @@@ -1,134 -1,0 +1,135 @@@ > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp > + > +PACKAGE=3D utilities > +LIB=3D icp_rescue > +LIBADD=3D > + > +.if ${MACHINE_ARCH} =3D=3D "amd64" > +ASM_SOURCES_C =3D asm-x86_64/aes/aeskey.c > +ASM_SOURCES_AS =3D \ > + asm-x86_64/aes/aes_amd64.S \ > + asm-x86_64/aes/aes_aesni.S \ > + asm-x86_64/modes/gcm_pclmulqdq.S \ > + asm-x86_64/modes/aesni-gcm-x86_64.S \ > + asm-x86_64/sha2/sha256-x86_64.S \ > + asm-x86_64/sha2/sha512-x86_64.S \ > + asm-x86_64/blake3/blake3_avx2.S \ > + asm-x86_64/blake3/blake3_avx512.S \ > + asm-x86_64/blake3/blake3_sse2.S \ > + asm-x86_64/blake3/blake3_sse41.S > + > +CFLAGS+=3D -D__amd64 -D_SYS_STACK_H > +.elif ${MACHINE_CPUARCH} =3D=3D "arm" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-arm/sha2/sha256-armv7.S \ > + asm-arm/sha2/sha512-armv7.S > +.elif ${MACHINE_ARCH} =3D=3D "aarch64" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-aarch64/blake3/b3_aarch64_sse2.S \ > + asm-aarch64/blake3/b3_aarch64_sse41.S \ > + asm-aarch64/sha2/sha256-armv8.S \ > + asm-aarch64/sha2/sha512-armv8.S > +.elif ${MACHINE_ARCH} =3D=3D "powerpc64" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-ppc64/sha2/sha256-ppc.S \ > + asm-ppc64/sha2/sha512-ppc.S \ > + asm-ppc64/sha2/sha256-p8.S \ > + asm-ppc64/sha2/sha512-p8.S > +.elif ${MACHINE_ARCH} =3D=3D "powerpc64le" > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D \ > + asm-ppc64/blake3/b3_ppc64le_sse2.S \ > + asm-ppc64/blake3/b3_ppc64le_sse41.S \ > + asm-ppc64/sha2/sha256-ppc.S \ > + asm-ppc64/sha2/sha512-ppc.S \ > + asm-ppc64/sha2/sha256-p8.S \ > + asm-ppc64/sha2/sha512-p8.S > +.else > +ASM_SOURCES_C =3D > +ASM_SOURCES_AS =3D > +.endif > + > +KERNEL_C =3D \ > + spi/kcf_spi.c \ > + api/kcf_ctxops.c \ > + api/kcf_cipher.c \ > + api/kcf_mac.c \ > + algs/aes/aes_impl_aesni.c \ > + algs/aes/aes_impl_generic.c \ > + algs/aes/aes_impl_x86-64.c \ > + algs/aes/aes_impl.c \ > + algs/aes/aes_modes.c \ > + algs/blake3/blake3.c \ > + algs/blake3/blake3_generic.c \ > + algs/blake3/blake3_impl.c \ > + algs/edonr/edonr.c \ > + algs/modes/modes.c \ > + algs/modes/gcm_generic.c \ > + algs/modes/gcm_pclmulqdq.c \ > + algs/modes/gcm.c \ > + algs/modes/ccm.c \ > + algs/sha2/sha2_generic.c \ > + algs/sha2/sha256_impl.c \ > + algs/sha2/sha512_impl.c \ > + algs/skein/skein_block.c \ > + illumos-crypto.c \ > + io/aes.c \ > + io/sha2_mod.c \ > + core/kcf_sched.c \ > + core/kcf_prov_lib.c \ > + core/kcf_callprov.c \ > + core/kcf_mech_tabs.c \ > + core/kcf_prov_tabs.c \ > + $(ASM_SOURCES_C) > + > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zfs > +KERNEL_C+=3D zfs_impl.c > + > +SRCS=3D $(ASM_SOURCES_AS) $(KERNEL_C) > + > +WARNS?=3D 2 > +SHLIB_MAJOR=3D 3 > +CSTD=3D c99 > +CFLAGS+=3D -DIN_BASE > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/ > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd > +CFLAGS+=3D -I${SRCTOP}/sys > +CFLAGS+=3D -I${SRCTOP}/cddl/compat/opensolaris/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/module/icp/include > ++CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include > +CFLAGS+=3D -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/sp= l/sys/ccompile.h > +CFLAGS+=3D -DHAVE_ISSETUGID -UHAVE_AVX -DRESCUE > +CFLAGS+=3D -include ${SRCTOP}/sys/modules/zfs/zfs_config.h > + > +CFLAGS.aes_amd64.S+=3D -DLOCORE > +CFLAGS.aes_aesni.S+=3D -DLOCORE > +CFLAGS.gcm_pclmulqdq.S+=3D -DLOCORE > +CFLAGS.aesni-gcm-x86_64.S+=3D -DLOCORE > +CFLAGS.ghash-x86_64.S+=3D -DLOCORE > +CFLAGS.sha256-x86_64.S+=3D -DLOCORE > +CFLAGS.sha512-x86_64.S+=3D -DLOCORE > +CFLAGS.gcm.c+=3D -UCAN_USE_GCM_ASM > +CFLAGS.blake3_avx2.S =3D -DLOCORE > +CFLAGS.blake3_avx512.S =3D -DLOCORE > +CFLAGS.blake3_sse2.S =3D -DLOCORE > +CFLAGS.blake3_sse41.S =3D -DLOCORE > +CFLAGS.b3_aarch64_sse2.S =3D -DLOCORE > +CFLAGS.b3_aarch64_sse41.S =3D -DLOCORE > +CFLAGS.sha256-armv7.S =3D -DLOCORE > +CFLAGS.sha512-armv7.S =3D -DLOCORE > +CFLAGS.sha256-armv8.S =3D -DLOCORE > +CFLAGS.sha512-armv8.S =3D -DLOCORE > +CFLAGS.b3_ppc64le_sse2.S =3D -DLOCORE > +CFLAGS.b3_ppc64le_sse41.S =3D -DLOCORE > +CFLAGS.sha256-ppc.S =3D -DLOCORE > +CFLAGS.sha256-p8.S =3D -DLOCORE > +CFLAGS.sha512-ppc.S =3D -DLOCORE > +CFLAGS.sha512-p8.S =3D -DLOCORE > + > +LDFLAGS.bfd+=3D -Wl,-znoexecstack > + > +.include > diff --cc cddl/lib/libzfs/Makefile > index 0b31fcb04b07,000000000000..bb0127a9108a > mode 100644,000000..100644 > --- a/cddl/lib/libzfs/Makefile > +++ b/cddl/lib/libzfs/Makefile > @@@ -1,107 -1,0 +1,108 @@@ > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zcommon > +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs > +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs/os/freebsd > +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libshare > +.PATH: ${SRCTOP}/sys/contrib/openzfs/include > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd > +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd/lib > + > +PACKAGE=3D zfs > +LIB=3D zfs > +LIBADD=3D \ > + avl \ > + bsdxml \ > + crypto \ > + geom \ > + m \ > + md \ > + nvpair \ > + pthread \ > + rt \ > + umem \ > + util \ > + uutil \ > + z \ > + zfs_core \ > + zutil > + > +INCS=3D libzfs.h > +USER_C =3D \ > + libzfs_changelist.c \ > + libzfs_config.c \ > + libzfs_crypto.c \ > + libzfs_dataset.c \ > + libzfs_diff.c \ > + libzfs_import.c \ > + libzfs_iter.c \ > + libzfs_mount.c \ > + libzfs_pool.c \ > + libzfs_sendrecv.c \ > + libzfs_status.c \ > + libzfs_util.c > + > +# FreeBSD > +USER_C +=3D \ > + libzfs_compat.c \ > + libzfs_zmount.c > + > +# libshare > +USER_C +=3D \ > + libshare.c \ > + nfs.c \ > + os/freebsd/nfs.c \ > + os/freebsd/smb.c > + > +KERNEL_C =3D \ > + cityhash.c \ > + zfeature_common.c \ > + zfs_comutil.c \ > + zfs_deleg.c \ > + zfs_fletcher.c \ > + zfs_fletcher_superscalar.c \ > + zfs_fletcher_superscalar4.c \ > + zfs_namecheck.c \ > + zfs_prop.c \ > ++ zfs_valstr.c \ > + zpool_prop.c \ > + zprop_common.c > + > -=20 > +ARCH_C =3D > +.if ${MACHINE_ARCH} =3D=3D "amd64" || ${MACHINE_ARCH} =3D=3D "i386" > +ARCH_C +=3D zfs_fletcher_intel.c \ > + zfs_fletcher_sse.c=20 > +CFLAGS +=3D -DHAVE_SSE2 > +.endif > +.if ${MACHINE_ARCH} =3D=3D "amd64" > +ARCH_C +=3D zfs_fletcher_avx512.c > +CFLAGS+=3D -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F > +.endif > +.if ${MACHINE_CPUARCH} =3D=3D "aarch64" > +ARCH_C +=3D zfs_fletcher_aarch64_neon.c > +.endif > + > +SRCS=3D $(USER_C) $(KERNEL_C) $(ARCH_C) > + > +WARNS?=3D 2 > +SHLIB_MAJOR=3D 4 > +CSTD=3D c99 > +CFLAGS+=3D -DIN_BASE > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/include/os/freebsd > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libshare > ++CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/ck/include > +CFLAGS+=3D -I${SRCTOP}/sys > +CFLAGS+=3D -I${SRCTOP}/cddl/compat/opensolaris/include > +CFLAGS+=3D -I${SRCTOP}/sys/contrib/openzfs/module/icp/include > +CFLAGS+=3D -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/sp= l/sys/ccompile.h > +CFLAGS+=3D -DHAVE_ISSETUGID > +CFLAGS+=3D -DHAVE_EXECVPE > +CFLAGS+=3D -include ${SRCTOP}/sys/modules/zfs/zfs_config.h > +CFLAGS+=3D -DSYSCONFDIR=3D\"/etc\" > +CFLAGS+=3D -DPKGDATADIR=3D\"/usr/share/zfs\" > +CFLAGS+=3D -DZFSEXECDIR=3D\"${LIBEXECDIR}/zfs\" > + > +.include > diff --cc cddl/lib/libzpool/Makefile > index 95038f4e5638,000000000000..b80486484506 > mode 100644,000000..100644 > --- a/cddl/lib/libzpool/Makefile > +++ b/cddl/lib/libzpool/Makefile > @@@ -1,339 -1,0 +1,341 @@@ > +ZFSTOP=3D ${SRCTOP}/sys/contrib/openzfs > + > ++.PATH: ${ZFSTOP}/lib/libzpool > ++ > +# ZFS_COMMON_SRCS > +.PATH: ${ZFSTOP}/module/zfs > +.PATH: ${ZFSTOP}/module/zcommon > +.PATH: ${ZFSTOP}/module/unicode > +# LUA_SRCS > +.PATH: ${ZFSTOP}/module/lua > +# ZSTD_SRCS > +.PATH: ${ZFSTOP}/module/zstd > +.PATH: ${ZFSTOP}/module/zstd/lib/common > +.PATH: ${ZFSTOP}/module/zstd/lib/compress > +.PATH: ${ZFSTOP}/module/zstd/lib/decompress > + > +.PATH: ${ZFSTOP}/module/os/linux/zfs > + > - .PATH: ${ZFSTOP}/lib/libzpool > -=20 > +.if > exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARC= H}/opensolaris_atomic.S) > +.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_AR= CH} > +ATOMIC_SRCS=3D opensolaris_atomic.S +ACFLAGS+=3D -Wa,--noexecstack > +.else > +.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern > +ATOMIC_SRCS=3D opensolaris_atomic.c > +.endif > + > +.if ${MACHINE_ARCH} =3D=3D "powerpc" || ${MACHINE_ARCH} =3D=3D "powerpc= spe" > +# Don't waste GOT entries on small data. > +PICFLAG=3D -fPIC > +.endif > + > +PACKAGE=3D zfs > +LIB=3D zpool > + > +USER_C =3D \ > ++ abd_os.c \ > + kernel.c \ > + taskq.c \ > + util.c > + > +KERNEL_C =3D \ > + zfeature_common.c \ > + zfs_comutil.c \ > + zfs_deleg.c \ > + zfs_fletcher.c \ > + zfs_fletcher_superscalar.c \ > + zfs_fletcher_superscalar4.c \ > + zfs_namecheck.c \ > + zfs_prop.c \ > + zfs_zstd.c \ > + zpool_prop.c \ > + zprop_common.c \ > + abd.c \ > - abd_os.c \ > + aggsum.c \ > + arc.c \ > + arc_os.c \ > + blake3_zfs.c \ > + blkptr.c \ > + bplist.c \ > + bpobj.c \ > + bptree.c \ > + bqueue.c \ > + btree.c \ > + brt.c \ > + cityhash.c \ > + dbuf.c \ > + dbuf_stats.c \ > + ddt.c \ > ++ ddt_log.c \ > + ddt_stats.c \ > + ddt_zap.c \ > + dmu.c \ > + dmu_diff.c \ > + dmu_object.c \ > + dmu_objset.c \ > + dmu_recv.c \ > + dmu_redact.c \ > + dmu_send.c \ > + dmu_traverse.c \ > + dmu_tx.c \ > + dmu_zfetch.c \ > + dnode.c \ > + dnode_sync.c \ > + dsl_bookmark.c \ > + dsl_dataset.c \ > + dsl_deadlist.c \ > + dsl_deleg.c \ > + dsl_dir.c \ > + dsl_crypt.c \ > + dsl_pool.c \ > + dsl_prop.c \ > + dsl_scan.c \ > + dsl_synctask.c \ > + dsl_destroy.c \ > + dsl_userhold.c \ > + edonr_zfs.c \ > + entropy_common.c \ > + error_private.c \ > + fm.c \ > + fse_compress.c \ > + fse_decompress.c \ > + gzip.c \ > + hist.c \ > + hkdf.c \ > + huf_compress.c \ > + huf_decompress.c \ > + lzjb.c \ > + lz4.c \ > + lz4_zfs.c \ > + metaslab.c \ > + mmp.c \ > + multilist.c \ > + objlist.c \ > + pathname.c \ > + pool.c \ > + range_tree.c \ > + refcount.c \ > + rrwlock.c \ > + sa.c \ > + sha2_zfs.c \ > + skein_zfs.c \ > + spa.c \ > + spa_checkpoint.c \ > + spa_config.c \ > + spa_errlog.c \ > + spa_history.c \ > + spa_log_spacemap.c \ > + spa_misc.c \ > + spa_stats.c \ > + space_map.c \ > + space_reftree.c \ > + txg.c \ > + trace.c \ > + uberblock.c \ > + unique.c \ > + vdev.c \ > + vdev_draid.c \ > + vdev_draid_rand.c \ > + vdev_file.c \ > + vdev_indirect_births.c \ > + vdev_indirect.c \ > + vdev_indirect_mapping.c \ > + vdev_initialize.c \ > + vdev_label.c \ > + vdev_label_os.c \ > + vdev_mirror.c \ > + vdev_missing.c \ > + vdev_queue.c \ > + vdev_raidz.c \ > + vdev_raidz_math_aarch64_neon.c \ > + vdev_raidz_math_aarch64_neonx2.c \ > + vdev_raidz_math_avx2.c \ > + vdev_raidz_math_avx512bw.c \ > + vdev_raidz_math_avx512f.c \ > + vdev_raidz_math.c \ > + vdev_raidz_math_scalar.c \ > + vdev_rebuild.c \ > + vdev_removal.c \ > + vdev_root.c \ > + vdev_trim.c \ > + xxhash.c \ > + zap.c \ > + zap_leaf.c \ > + zap_micro.c \ > + zcp.c \ > + zcp_get.c \ > + zcp_global.c \ > + zcp_iter.c \ > + zcp_set.c \ > + zcp_synctask.c \ > + zfeature.c \ > + zfs_byteswap.c \ > + zfs_chksum.c \ > + zfs_debug.c \ > + zfs_fm.c \ > + zfs_fuid.c \ > + zfs_sa.c \ > + zfs_znode.c \ > + zfs_racct.c \ > + zfs_ratelimit.c \ > + zfs_rlock.c \ > + zil.c \ > + zio.c \ > + zio_checksum.c \ > + zio_compress.c \ > + zio_crypt.c \ > + zio_inject.c \ > + zle.c \ > + zrlock.c \ > + zstd_common.c \ > + zstd_compress.c \ > + zstd_compress_literals.c \ > + zstd_compress_sequences.c \ > + zstd_compress_superblock.c \ > + zstd_ddict.c \ > + zstd_decompress.c \ > + zstd_decompress_block.c \ > + zstd_double_fast.c \ > + zstd_fast.c \ > + zstd_lazy.c \ > + zstd_ldm.c \ > + zstd_opt.c \ > + zthr.c > + > +ARCH_C =3D > +.if ${MACHINE_ARCH} =3D=3D "amd64" || ${MACHINE_ARCH} =3D=3D "i386" > +ARCH_C +=3D vdev_raidz_math_sse2.c \ > + vdev_raidz_math_ssse3.c \ > + zfs_fletcher_intel.c \ > + zfs_fletcher_sse.c=20 > +CFLAGS +=3D -DHAVE_SSE2 -DHAVE_SSE3 > +.endif > +.if ${MACHINE_ARCH} =3D=3D "amd64" > +ARCH_C +=3D zfs_fletcher_avx512.c > +CFLAGS+=3D -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \ > + -DHAVE_AVX512BW > +.endif > +.if ${MACHINE_CPUARCH} =3D=3D "aarch64" > +ARCH_C +=3D zfs_fletcher_aarch64_neon.c > +.endif > + > +LUA_C =3D \ > + lapi.c \ > + lauxlib.c \ > + lbaselib.c \ > + lcode.c \ > + lcompat.c \ > + lcorolib.c \ > + lctype.c \ > + ldebug.c \ > + ldo.c \ > + lfunc.c \ > + lgc.c \ > + llex.c \ > + lmem.c \ > + lobject.c \ > + lopcodes.c \ > + lparser.c \ > + lstate.c \ > + lstring.c \ > + lstrlib.c \ > + ltable.c \ > + ltablib.c \ > + ltm.c \ > + lvm.c \ > + lzio.c > + > +UNICODE_C =3D u8_textprep.c uconv.c > + > +SRCS=3D ${USER_C} ${KERNEL_C} ${LUA_C} ${UNICODE_C} ${ARCH_C} > + > +WARNS?=3D 2 > +CFLAGS+=3D \ > + -DIN_BASE \ > + -I${ZFSTOP}/include \ > + -I${ZFSTOP}/lib/libspl/include \ > + -I${ZFSTOP}/lib/libspl/include/os/freebsd \ > ++ -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include \ > + -I${SRCTOP}/sys \ > + -I${ZFSTOP}/include/os/freebsd/zfs \ > + -I${SRCTOP}/cddl/compat/opensolaris/include \ > + -I${ZFSTOP}/module/icp/include \ > + -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h \ > + -DHAVE_ISSETUGID \ > + -include ${SRCTOP}/sys/modules/zfs/zfs_config.h \ > + -I${SRCTOP}/sys/modules/zfs \ > + -I${ZFSTOP}/include/os/freebsd/zfs \ > + -DLIB_ZPOOL_BUILD -DZFS_DEBUG \ > + > +# XXX: pthread doesn't have mutex_owned() equivalent, so we need to look > +# into libthr private structures. That's sooo evil, but it's only = for > +# ZFS debugging tools needs. > +CFLAGS+=3D -DWANTS_MUTEX_OWNED > +CFLAGS+=3D -I${SRCTOP}/lib/libpthread/thread > +CFLAGS+=3D -I${SRCTOP}/lib/libpthread/sys > +CFLAGS+=3D -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include > +CFLAGS.gcc+=3D -fms-extensions > + > +LIBADD=3D md pthread z spl icp nvpair avl umem > + > +# atomic.S doesn't like profiling. > +MK_PROFILE=3D no > + > +CSTD=3D c99 > + > +# Since there are many asserts in this library, it makes no sense to co= mpile > +# it without debugging. > + > +CFLAGS+=3D -g -DDEBUG=3D1 > + > +CFLAGS.gcc+=3D -Wno-pointer-to-int-cast > + > +# Pointer values are used as debugging "tags" to mark reference count > +# ownerships and in some cases the tag reference is dropped after an > +# object is freed. > +CFLAGS.dbuf.c=3D ${NO_WUSE_AFTER_FREE} > +CFLAGS.entropy_common.c=3D -fno-tree-vectorize > +CFLAGS.entropy_common.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.error_private.c=3D -fno-tree-vectorize > +CFLAGS.error_private.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.fse_compress.c=3D -fno-tree-vectorize > +CFLAGS.fse_compress.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.fse_decompress.c=3D -fno-tree-vectorize > +CFLAGS.fse_decompress.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.hist.c=3D -fno-tree-vectorize > +CFLAGS.hist.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.huf_compress.c=3D -fno-tree-vectorize > +CFLAGS.huf_compress.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.huf_decompress.c=3D -fno-tree-vectorize > +CFLAGS.huf_decompress.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.pool.c=3D -fno-tree-vectorize > +CFLAGS.pool.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.xxhash.c=3D -fno-tree-vectorize > +CFLAGS.xxhash.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_compress.c=3D -fno-tree-vectorize > +CFLAGS.zstd_compress.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_compress_literals.c=3D -fno-tree-vectorize > +CFLAGS.zstd_compress_literals.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_compress_sequences.c=3D -fno-tree-vectorize > +CFLAGS.zstd_compress_sequences.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_compress_superblock.c=3D -fno-tree-vectorize > +CFLAGS.zstd_compress_superblock.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_double_fast.c=3D -fno-tree-vectorize > +CFLAGS.zstd_double_fast.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_fast.c=3D -fno-tree-vectorize > +CFLAGS.zstd_fast.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_lazy.c=3D -fno-tree-vectorize > +CFLAGS.zstd_lazy.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_ldm.c=3D -fno-tree-vectorize > +CFLAGS.zstd_ldm.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_opt.c=3D -fno-tree-vectorize > +CFLAGS.zstd_opt.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_ddict.c=3D -fno-tree-vectorize > +CFLAGS.zstd_ddict.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_decompress.c=3D -fno-tree-vectorize > +CFLAGS.zstd_decompress.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > +CFLAGS.zstd_decompress_block.c=3D -fno-tree-vectorize > +CFLAGS.zstd_decompress_block.c+=3D ${NO_WBITWISE_INSTEAD_OF_LOGICAL} > + > +.include > diff --cc cddl/sbin/zpool/Makefile > index aaa2c51016ad,000000000000..ab7b852b4d9a > mode 100644,000000..100644 > --- a/cddl/sbin/zpool/Makefile > +++ b/cddl/sbin/zpool/Makefile > @@@ -1,80 -1,0 +1,82 @@@ > +ZFSTOP=3D ${SRCTOP}/sys/contrib/openzfs > + > +.PATH: ${ZFSTOP}/man/man4 > +.PATH: ${ZFSTOP}/man/man5 > +.PATH: ${ZFSTOP}/man/man7 > +.PATH: ${ZFSTOP}/man/man8 > +.PATH: ${ZFSTOP}/cmd/zpool > +.PATH: ${ZFSTOP}/cmd/zpool/os/freebsd > + > + > +PACKAGE=3D zfs > +PROG=3D zpool > +MAN=3D \ > + spl.4 \ > + vdevprops.7 \ > + zfs.4 \ > + zpool.8 \ > + zpool-add.8 \ > + zpool-attach.8 \ > + zpool-checkpoint.8 \ > + zpool-clear.8 \ > + zpool-create.8 \ > + zpool-destroy.8 \ > + zpool-detach.8 \ > ++ zpool-ddtprune.8 \ > + zpool-events.8 \ > + zpool-export.8 \ > + zpool-features.7 \ > + zpool-get.8 \ > + zpool-history.8 \ > + zpool-import.8 \ > + zpool-initialize.8 \ > + zpool-iostat.8 \ > + zpool-labelclear.8 \ > + zpool-list.8 \ > + zpool-offline.8 \ > + zpool-prefetch.8 \ > + zpool-reguid.8 \ > + zpool-remove.8 \ > + zpool-reopen.8 \ > + zpool-replace.8 \ > + zpool-resilver.8 \ > + zpool-scrub.8 \ > + zpool-split.8 \ > + zpool-status.8 \ > + zpool-sync.8 \ > + zpool-trim.8 \ > + zpool-upgrade.8 \ > + zpool-wait.8 \ > + zpoolconcepts.7 \ > + zpoolprops.7 > +MLINKS=3D \ > + zpool-offline.8 zpool-online.8 \ > + zpool-get.8 zpool-set.8 > +SRCS=3D \ > + zpool_iter.c \ > + zpool_main.c \ > + zpool_util.c \ > + zpool_util.h \ > + zpool_vdev.c \ > + zpool_vdev_os.c > + > +WARNS?=3D 2 > + > +CFLAGS+=3D \ > + -DIN_BASE \ > + -I${ZFSTOP}/include \ > + -I${ZFSTOP}/lib/libspl/include \ > + -I${ZFSTOP}/lib/libspl/include/os/freebsd \ > *** 9973 LINES SKIPPED *** >=20 --=20 O. Hartmann From nobody Mon Sep 9 18:52:04 2024 X-Original-To: dev-commits-src-main@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 4X2bY31VHjz5TjNl; Mon, 09 Sep 2024 18:52:07 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com [IPv6:2607:f8b0:4864:20::1129]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2bY26xr6z4P5N; Mon, 9 Sep 2024 18:52:06 +0000 (UTC) (envelope-from mavbsd@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-6b47ff8a59aso45595517b3.2; Mon, 09 Sep 2024 11:52:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725907925; x=1726512725; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:sender:from:to:cc:subject:date:message-id:reply-to; bh=+QkGE0XSEQyH2O7S/B67TH64+eGijmp4cvhj+M0rbCs=; b=lwOeu+21+s9XCDiOz2clsgrp9joQqqsIpDfq2HYN0JFJjJFA9zNuoufR2wsZqQGZuO XAR75Vrqh6GLaLgiGv//D1s4eEpWdBHrnYqMI0DU27PgdGvSTtnl1d4O0auqka0LATTN y4SBDEao4ooG7ydv1Xs6NQGf6SQlyAHqR33fN2UymyeOK3pVnek4VPlGI80TPYi11+I4 x+tknQbqMA+tkS3tHjdAil2L2eF0+nBmgdGbT8pDPLSv1nBeh5CTAlVLbYPzvQoornPF ZsUD5o8xhY36Gv2TGdJ2a2hhM/lib7UIGOaT5w1en96GWyTzs71eQF0TRQ3Hs65SjFr5 VOAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725907925; x=1726512725; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+QkGE0XSEQyH2O7S/B67TH64+eGijmp4cvhj+M0rbCs=; b=ehiKkt3ptlFBjklDgsPYgwC35RMFIj4vhh+5D1ZlUdNdA1/0Pyu4tzqNZd/i4IFPmm e54yfjrzLkRV7docHqmqHo4adN/bD4yTtevxMHutn4OMriCRsS3S1HQTR+4uHJzkcB4F IVws6j3EsZbfn54XhnKToaHnLAUBH26z4bKdveBQq6qhQAgTI8nONQDe8xLsyVPfWVOh HKoGYj9boUoC7sEidY+x3E3TSFZTXmUGlvlN2XeEQ82EbgeiTQfCarGATObBsaPaPdZh t9AZwXqpx1TlxXm1LFsiWSLlc09qIEhrTxVUdhydbAJ7EOyyNFO0uJocPucO9UrMpq/R c46A== X-Forwarded-Encrypted: i=1; AJvYcCV/fztKMveQAvKrAItuS9zExcg/yFpRI7I7EQmrbODtP+8uukzsXclkZbkEocUHwI2yrmp6brvlPiq3mfDDvXTDEI0T@freebsd.org, AJvYcCX3Gq5LdBEAx2Vw7alkmbpt8RasBGQgzviCG3v9SsH1vrsjKoB5tcLEbfJ8tib8y35L5LwG4a09l5XxcVvxgIhzQmpVa+Y=@freebsd.org, AJvYcCXlQVDVvg9kMkjIhh5Nh+CO/dcGoJvDlZYY9XrmRSpxSe9KE9YIZZv9eGsnkhxu/1E/t9s=@freebsd.org X-Gm-Message-State: AOJu0YxZqUKTSbXCaYmY5F10sl8gnKSmUFnMAW0vz0KzTsE4c/8twxkI XKkwzm3XXDyhqYW1Lh8GNoqSukNbf8lE8/LrQF6GuadPO+7pWaaMEs1IsQ== X-Google-Smtp-Source: AGHT+IHH779mw00Flgp5H3acX4nPNuMReH7tstiE+u5thmZM7BLdjWk7198iK0HJa5XOmbINQPM3mA== X-Received: by 2002:a05:690c:4601:b0:64a:d5fd:f19f with SMTP id 00721157ae682-6db44ef5f6amr100516977b3.18.1725907925321; Mon, 09 Sep 2024 11:52:05 -0700 (PDT) Received: from [10.230.45.5] ([38.32.73.2]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6db965015f5sm228907b3.102.2024.09.09.11.52.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Sep 2024 11:52:05 -0700 (PDT) Message-ID: Date: Mon, 9 Sep 2024 14:52:04 -0400 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: e2df9bb44109 - main - zfs: merge openzfs/zfs@b10992582 To: FreeBSD User , Martin Matuska Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202409091648.489GmCNu009544@gitrepo.freebsd.org> <20240909204632.78f3b525@thor.intern.walstatt.dynvpn.de> Content-Language: en-US From: Alexander Motin Autocrypt: addr=mav@FreeBSD.org; keydata= xsBNBFOzxAwBCADkPrax0pI2W/ig0CK9nRJJwsHitAGEZ2HZiFEuti+6/4UVxj81yr4ak/4g 9bKUyC7rMEAp/ZHNhd+MFCPAAcHPvtovnfykqE/vuosCS3wlSLloix2iKVLks0CwbLHGAyne 46lTQW74Xl/33c3W1Z6d8jD9gVFT/xaVzZ0U9xdzOmsYAZaAj4ki0tuxO9F7L+ct9grRe7iP g8t9hai7BL4ee3VRwk2JXnKb7UvBiVITKYWKz1jRvZIrjPokgEcCLOSlv7x/1kjuFnj3xWZU 7HSFFT8J93epBbrSSCsYsppIk2fZH41kaaFXsMQfTPH8wkeM6qwrvOh4HiQM08R+9tThABEB AAHNIUFsZXhhbmRlciBNb3RpbiA8bWF2QEZyZWVCU0Qub3JnPsLAlwQTAQoAQQIbAwULCQgH AwUVCgkICwUWAwIBAAIeAQIXgAIZARYhBOmM88TmnMPNDledVYMYw5VbqyJ/BQJiOjayBQkU Kg0mAAoJEIMYw5VbqyJ/wxUIANAqbfF6tgjgdWk4c8yE0HNG+ptVOZp/wszRZ8olC0rgfK4S sND2Y+bP1fvkG1a+U1JRZzYt1s2IyIoIX6gkriUnX7VVOjcqyZ2QjKxxgACmDGoYC3c/ZvfF ysrqZ/eB0U6yp1AHQ7MCwmDNFHQbh7JhQ/pnG1NYpw/8splYfwYKhbDNyzCqOvk7WAyOJV7v TbTCF40jLzCUpyjOJj8HkdbGZsBACr7KF7kfVVq3tVLXY+NfzVKQoAs+LwfDqe8m0nnCBqU8 nNZ76normAp2z2cclAt2UCaMXnUwOLf0dj4daDG41vb+4jXTxm8Fksfj1NflVjgFcpd4FC4a Q8hd89fOwE0EU7PEDAEIAOZgWf2cJIu+58IzP2dkXE/urj3tr4OqrB/yHGWUf71Lz6D0Fi6Z AXgDtmcFLGPfMyWuLAvSM+xmoguk7zC4hRBYvQycmIhuqBq1jO1Wp/Z+lpoPM/1cDYLn8Flv mI/c40MhUZh345DA4jYWWaZNjQHUWVQ1fPf595vdVVMPT/abE8E5DaF6fSkRmqFTmfYRkfbt 3ytU8NdUapDcJVY7cEP2nJBVNZPnOIObR/ZIgSxjjrG5o34yXoqeup8JvwEv+/NylzzuyXEZ R1EdEIzQ/a1nh/0j4NXtzZEqKW4aTWlmSqb6wN8jh1OSOOqkYsfnE3nfxcZbxi4IRoNQYlm5 9R8AEQEAAcLAfAQYAQoAJgIbDBYhBOmM88TmnMPNDledVYMYw5VbqyJ/BQJiOjbIBQkUKg08 AAoJEIMYw5VbqyJ/rXwH/2UaH7Z7893+uEPo20gJkw94xDw5Fji9M8pLNpfiF7dKXfJMUe2T 0J3rHZaMlShy6ImDc/Iketxq+KvBWa4mWajEZcxFrevhuQe2ALO+GabvT2p0++L4QgE+WXs3 lwask4wrc4f/aRBHKWWgXWeVwc3OuTchq4O5AYxzgjyEmwZshrdN5szpzNg6+vFO4NWiMhlv eDULjtXEqXJJc2weIW0RpUIfCp7YLVC+Ff1j6+7DfeiM9WqWXPHzmKatwWwlk8rvDMMZ3gSy wXL32LpWKU76bIWxB6w1uykDk643swZTG0XyoOZgYH6a8931y06Jng50XARXIYm8+LgfpTMW pNk= In-Reply-To: <20240909204632.78f3b525@thor.intern.walstatt.dynvpn.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4X2bY26xr6z4P5N On 09.09.2024 14:46, FreeBSD User wrote: > Am Mon, 9 Sep 2024 16:48:12 GMT > Martin Matuska schrieb: > > the commit seems to breaks buildworld for me, somehow: > [...] > /usr/src/sys/contrib/openzfs/module/os/linux/zfs/abd_os.c:61:10: fatal error: > 'linux/kmap_compat.h' file not found 61 | #include I hit it also, but it has gone after I wiped the object directory and run a clean build. This commit uses different abd_os.c from different directory, and seems something is getting confused in the process. -- Alexander Motin From nobody Mon Sep 9 18:58:59 2024 X-Original-To: dev-commits-src-main@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 4X2bjD4y9pz5Tk55 for ; Mon, 09 Sep 2024 18:59:12 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2bjD1NGRz4QD9 for ; Mon, 9 Sep 2024 18:59:12 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-42cafda818aso21814735e9.2 for ; Mon, 09 Sep 2024 11:59:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725908350; x=1726513150; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aGLFsoIEhd4BjSsJk6E8gdqnjhFQA025zx8EcksOJt8=; b=KbcIZp010/CHwMLCnxhSO6JYFMy88/hTyj4jcVjK9JxiC8I5d1fsLSkaAIr/4PaSTq O7BF5f09YsN/XxSY+t1NqjHBzq1fyhjO9yoaWXhHeRT0SV2pDspPe9rcjH36KPf6GSSp jeJgbxaCXQo6ZEF7RS8VGNW1/V1HkXu8elDACbQJbKlFY7RVTDlTKYX71ebrCJWV1Q7k DxRx10HHcCWT7/N31uj0Yffr03emVECH85HaIeFhHBea9misNx6X2I5xUagPfAGFccYJ 39l/wNZVLenGTvaSPi0xHW/xfDAXFyAuTIXDJNciccvahqZ2FOvG5RCH4yZDoa+vzyt5 v5PA== X-Forwarded-Encrypted: i=1; AJvYcCUr1mm7CI3TovBm0V1piDIFACE/IBjcmkp+SXmJlMGS3o8ELHOHsyGcoL97Tjgk+7d6R5Nn5eCZ9N/CS91Ld8uuEKUeEw==@freebsd.org X-Gm-Message-State: AOJu0YxbFcl8gc2W3rdQpBIfM967piUc4CVCKbNd+UxGjGIiktw8sxVL H73SAzlL8d2PbKpRmrIe1BxJMgdtnJmfcbM+m5dmvJTNzNDW/ptIhTcWFYAe1xk= X-Google-Smtp-Source: AGHT+IH33pbUdkzSGgXRtjzcltgIspnLXdDj6iky2nIJMUdFHjvKm5XiKxUHGkjatQKvepQZvBU55A== X-Received: by 2002:a05:600c:4684:b0:429:a3e:c785 with SMTP id 5b1f17b1804b1-42c9f985734mr98254085e9.21.1725908350358; Mon, 09 Sep 2024 11:59:10 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.201]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42caeb21a4esm86143425e9.7.2024.09.09.11.59.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Sep 2024 11:59:09 -0700 (PDT) Content-Type: text/plain; charset=us-ascii List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: git: e2df9bb44109 - main - zfs: merge openzfs/zfs@b10992582 From: Jessica Clarke In-Reply-To: Date: Mon, 9 Sep 2024 19:58:59 +0100 Cc: FreeBSD User , Martin Matuska , "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: References: <202409091648.489GmCNu009544@gitrepo.freebsd.org> <20240909204632.78f3b525@thor.intern.walstatt.dynvpn.de> To: Alexander Motin X-Mailer: Apple Mail (2.3776.700.51) X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Queue-Id: 4X2bjD1NGRz4QD9 On 9 Sep 2024, at 19:52, Alexander Motin wrote: >=20 > On 09.09.2024 14:46, FreeBSD User wrote: >> Am Mon, 9 Sep 2024 16:48:12 GMT >> Martin Matuska schrieb: >> the commit seems to breaks buildworld for me, somehow: >> [...] >> /usr/src/sys/contrib/openzfs/module/os/linux/zfs/abd_os.c:61:10: = fatal error: >> 'linux/kmap_compat.h' file not found 61 | #include = >=20 > I hit it also, but it has gone after I wiped the object directory and = run a clean build. This commit uses different abd_os.c from different = directory, and seems something is getting confused in the process. tools/build/depend-cleanup.sh needs to deal with cddl/lib/libzpool/.depend.abd_os.* then (and libcompats). Jess From nobody Mon Sep 9 21:46:34 2024 X-Original-To: dev-commits-src-main@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 4X2gQM5c8sz5V9F0; Mon, 09 Sep 2024 21:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2gQM2LRhz3xy1; Mon, 9 Sep 2024 21:46:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725918395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K23Ua4itbmge6LkSd22VGVE0FyvRVFGMMl6tAeho4lM=; b=fMBIwkyToaeD2a3y93pTVqe73dCsnCN8BdX1GuSD7BSl/OSAI7o2SRHVGA8RnG1pJ8gkFV id9iMvQ0dZtVik1VxkUDISpj4Q6eSfYT8erbIZ8tMJnHIeClDAItvb++lLwU/n3Q32vNUT 3roNM9b+ma9RcOcVAsZK/UpquMtGQvReEJlqP/DsnC3dv7q//Ye6rtUHNSDsqVVz39MNNw 0L5JYtkn5Ei7d+9dfQOCjhVogNDwE6PPj0J8GT+yLtQINPxlzXl4GzS5KT1ew30U5qfRuP Z4V90X7caFBY/19EtYDJl9elUODDYq8dOr0pGGkG339ag267b5nSeS3WRIjH4g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725918395; a=rsa-sha256; cv=none; b=aPK8FG1V7Um4kx2Qi3mr/41aSJUTpfpkSj/83ZRrzXfss2Ag5zYSCG2U4IMaApQ7oRFw6M yJMKpqlrOjlp/c81yTzYS+tl4Z3tHCZzLM2pPr2sB6jJZ4UNkRxJD2T6WrxdzkImErCZpj 4lqG0cXXWL9Dod4pYWJvDf5uzAy6Oleli6ND5qDATgntkTKTPAdZIvb9YsGTDU5oPdXli0 iugu0MmZhur3y7f+y+TsprdhtIDhaufbcR/ZAFVZeb6DGAmuK4tLlcjY6H9bQrEdmo+gko kzt++slC+/hiblEEBdRn0zIbxW2kKxTmWPaw6U+3BsDYpKAVR8kI8/h6sNafvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725918395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K23Ua4itbmge6LkSd22VGVE0FyvRVFGMMl6tAeho4lM=; b=Mg5G0vq7sQT1yWseN5eXUv6uKi74kIOkcI6ItAg+/lyqK/Nk8UMP0f/zqGUxbdYfsxy6ne 87s+Hq5E2HJHyn4nbehMeitM0YwRnY3XelBJvoVg3BbV2y+DN4MQzyakL7sM/EsPLyWdv8 AX3i1EficBzgF2qnOu/JJ/+lN03TCONlRYExENsWSph5fQgIJLxoiRxmt3CLbg9ZnziZBK VAxXrJO+lBLyiaARboEJL0+AajQ2mNnxunCWiMxl8YmdnDSif9ezmSoQnahvyJDkd3ODgx ruA3Czho9mLQc16J9SyCqrxzerSR9ua2anXb1xqdP3PaJNXV//hpnRPoI+DNMQ== 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 4X2gQM10dyzKXL; Mon, 9 Sep 2024 21:46:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489LkY8s023070; Mon, 9 Sep 2024 21:46:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489LkYBL023066; Mon, 9 Sep 2024 21:46:34 GMT (envelope-from git) Date: Mon, 9 Sep 2024 21:46:34 GMT Message-Id: <202409092146.489LkYBL023066@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: 942647057295 - main - swap_pager: clean up pctrie usage List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 942647057295cd4720372dd85bcf6d1b52fbf38e Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=942647057295cd4720372dd85bcf6d1b52fbf38e commit 942647057295cd4720372dd85bcf6d1b52fbf38e Author: Doug Moore AuthorDate: 2024-09-09 21:44:13 +0000 Commit: Doug Moore CommitDate: 2024-09-09 21:44:13 +0000 swap_pager: clean up pctrie usage Define wrapper functions for the pctrie operations specific to swap_pager, to hide some verbose details. Separate the meta_transfer and meta_free functions into separate functions. Reviewed by: kib (previous version) Tested by: pho (previous version) Differential Revision: https://reviews.freebsd.org/D46315 --- sys/vm/swap_pager.c | 231 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 142 insertions(+), 89 deletions(-) diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 59d947c71279..c7a9f16a2953 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -491,7 +491,7 @@ static daddr_t swp_pager_meta_build(vm_object_t, vm_pindex_t, daddr_t, static void swp_pager_meta_free(vm_object_t, vm_pindex_t, vm_pindex_t, vm_size_t *); static void swp_pager_meta_transfer(vm_object_t src, vm_object_t dst, - vm_pindex_t pindex, vm_pindex_t count, vm_size_t *freed); + vm_pindex_t pindex, vm_pindex_t count); static void swp_pager_meta_free_all(vm_object_t); static daddr_t swp_pager_meta_lookup(vm_object_t, vm_pindex_t); @@ -531,6 +531,59 @@ swblk_trie_free(struct pctrie *ptree, void *node) PCTRIE_DEFINE(SWAP, swblk, p, swblk_trie_alloc, swblk_trie_free); +static struct swblk * +swblk_lookup(vm_object_t object, vm_pindex_t pindex) +{ + return (SWAP_PCTRIE_LOOKUP(&object->un_pager.swp.swp_blks, + rounddown(pindex, SWAP_META_PAGES))); +} + +static struct swblk * +swblk_start(vm_object_t object, vm_pindex_t pindex) +{ + return (SWAP_PCTRIE_LOOKUP_GE(&object->un_pager.swp.swp_blks, + rounddown(pindex, SWAP_META_PAGES))); +} + +static struct swblk * +swblk_next(vm_object_t object, struct swblk *sb) +{ + return (swblk_start(object, sb->p + SWAP_META_PAGES)); +} + +static struct swblk * +swblk_start_limit(vm_object_t object, vm_pindex_t pindex, vm_pindex_t limit) +{ + struct swblk *sb = swblk_start(object, pindex); + if (sb != NULL && sb->p < limit) + return (sb); + return (NULL); +} + +static struct swblk * +swblk_next_limit(vm_object_t object, struct swblk *sb, vm_pindex_t limit) +{ + return (swblk_start_limit(object, sb->p + SWAP_META_PAGES, limit)); +} + +static void +swblk_lookup_remove(vm_object_t object, struct swblk *sb) +{ + SWAP_PCTRIE_REMOVE(&object->un_pager.swp.swp_blks, sb->p); +} + +static int +swblk_lookup_insert(vm_object_t object, struct swblk *sb) +{ + return (SWAP_PCTRIE_INSERT(&object->un_pager.swp.swp_blks, sb)); +} + +static bool +swblk_is_empty(vm_object_t object) +{ + return (pctrie_is_empty(&object->un_pager.swp.swp_blks)); +} + /* * SWP_SIZECHECK() - update swap_pager_full indication * @@ -1084,8 +1137,7 @@ swap_pager_copy(vm_object_t srcobject, vm_object_t dstobject, /* * Transfer source to destination. */ - swp_pager_meta_transfer(srcobject, dstobject, offset, dstobject->size, - NULL); + swp_pager_meta_transfer(srcobject, dstobject, offset, dstobject->size); /* * Free left over swap blocks in source. @@ -1218,8 +1270,7 @@ swap_pager_unswapped(vm_page_t m) } swap_pager_unswapped_acct(m); - sb = SWAP_PCTRIE_LOOKUP(&m->object->un_pager.swp.swp_blks, - rounddown(m->pindex, SWAP_META_PAGES)); + sb = swblk_lookup(m->object, m->pindex); if (sb == NULL) return; range.start = sb->d[m->pindex % SWAP_META_PAGES]; @@ -1777,18 +1828,17 @@ u_long swap_pager_swapped_pages(vm_object_t object) { struct swblk *sb; - vm_pindex_t pi; u_long res; int i; VM_OBJECT_ASSERT_LOCKED(object); - if (pctrie_is_empty(&object->un_pager.swp.swp_blks)) + if (swblk_is_empty(object)) return (0); - for (res = 0, pi = 0; (sb = SWAP_PCTRIE_LOOKUP_GE( - &object->un_pager.swp.swp_blks, pi)) != NULL; - pi = sb->p + SWAP_META_PAGES) { + res = 0; + for (sb = swblk_start(object, 0); sb != NULL; + sb = swblk_next(object, sb)) { for (i = 0; i < SWAP_META_PAGES; i++) { if (sb->d[i] != SWAPBLK_NONE) res++; @@ -1835,16 +1885,14 @@ swap_pager_swapoff_object(struct swdevt *sp, vm_object_t object) if (i == SWAP_META_PAGES) { pi = sb->p + SWAP_META_PAGES; if (sb_empty) { - SWAP_PCTRIE_REMOVE( - &object->un_pager.swp.swp_blks, sb->p); + swblk_lookup_remove(object, sb); uma_zfree(swblk_zone, sb); } i = 0; } if (i == 0) { - sb = SWAP_PCTRIE_LOOKUP_GE( - &object->un_pager.swp.swp_blks, pi); + sb = swblk_start(object, pi); if (sb == NULL) break; sb_empty = true; @@ -2020,7 +2068,7 @@ swp_pager_free_empty_swblk(vm_object_t object, struct swblk *sb) { if (swp_pager_swblk_empty(sb, 0, SWAP_META_PAGES)) { - SWAP_PCTRIE_REMOVE(&object->un_pager.swp.swp_blks, sb->p); + swblk_lookup_remove(object, sb); uma_zfree(swblk_zone, sb); } } @@ -2050,7 +2098,7 @@ swp_pager_meta_build(vm_object_t object, vm_pindex_t pindex, daddr_t swapblk, VM_OBJECT_ASSERT_WLOCKED(object); rdpi = rounddown(pindex, SWAP_META_PAGES); - sb = SWAP_PCTRIE_LOOKUP(&object->un_pager.swp.swp_blks, rdpi); + sb = swblk_lookup(object, rdpi); if (sb == NULL) { if (swapblk == SWAPBLK_NONE) return (SWAPBLK_NONE); @@ -2079,8 +2127,7 @@ swp_pager_meta_build(vm_object_t object, vm_pindex_t pindex, daddr_t swapblk, } else uma_zwait(swblk_zone); VM_OBJECT_WLOCK(object); - sb = SWAP_PCTRIE_LOOKUP(&object->un_pager.swp.swp_blks, - rdpi); + sb = swblk_lookup(object, rdpi); if (sb != NULL) /* * Somebody swapped out a nearby page, @@ -2090,8 +2137,7 @@ swp_pager_meta_build(vm_object_t object, vm_pindex_t pindex, daddr_t swapblk, goto allocated; } for (;;) { - error = SWAP_PCTRIE_INSERT( - &object->un_pager.swp.swp_blks, sb); + error = swblk_lookup_insert(object, sb); if (error == 0) { if (atomic_cmpset_int(&swpctrie_zone_exhausted, 1, 0)) @@ -2113,8 +2159,7 @@ swp_pager_meta_build(vm_object_t object, vm_pindex_t pindex, daddr_t swapblk, } else uma_zwait(swpctrie_zone); VM_OBJECT_WLOCK(object); - sb1 = SWAP_PCTRIE_LOOKUP(&object->un_pager.swp.swp_blks, - rdpi); + sb1 = swblk_lookup(object, rdpi); if (sb1 != NULL) { uma_zfree(swblk_zone, sb); sb = sb1; @@ -2142,53 +2187,42 @@ allocated: } /* - * SWP_PAGER_META_TRANSFER() - free a range of blocks in the srcobject's swap - * metadata, or transfer it into dstobject. + * SWP_PAGER_META_TRANSFER() - transfer a range of blocks in the srcobject's + * swap metadata into dstobject. * * This routine will free swap metadata structures as they are cleaned * out. */ static void swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, - vm_pindex_t pindex, vm_pindex_t count, vm_size_t *moved) + vm_pindex_t pindex, vm_pindex_t count) { struct page_range range; struct swblk *sb; daddr_t blk; - vm_page_t m; vm_pindex_t offset, last; - vm_size_t mc; int i, limit, start; VM_OBJECT_ASSERT_WLOCKED(srcobject); - MPASS(moved == NULL || dstobject == NULL); + VM_OBJECT_ASSERT_WLOCKED(dstobject); - mc = 0; - m = NULL; - if (count == 0 || pctrie_is_empty(&srcobject->un_pager.swp.swp_blks)) - goto out; + if (count == 0 || swblk_is_empty(srcobject)) + return; swp_pager_init_freerange(&range); offset = pindex; last = pindex + count; - for (;;) { - sb = SWAP_PCTRIE_LOOKUP_GE(&srcobject->un_pager.swp.swp_blks, - rounddown(pindex, SWAP_META_PAGES)); - if (sb == NULL || sb->p >= last) - break; - start = pindex > sb->p ? pindex - sb->p : 0; - limit = last - sb->p < SWAP_META_PAGES ? last - sb->p : - SWAP_META_PAGES; + sb = swblk_start_limit(srcobject, pindex, last); + start = (sb != NULL && sb->p < pindex) ? pindex - sb->p : 0; + for (; sb != NULL; + sb = swblk_start_limit(srcobject, pindex, last), start = 0) { + limit = MIN(last - sb->p, SWAP_META_PAGES); for (i = start; i < limit; i++) { - blk = sb->d[i]; - if (blk == SWAPBLK_NONE) + if (sb->d[i] == SWAPBLK_NONE) continue; - if (dstobject == NULL || - (blk = swp_pager_meta_build(dstobject, - sb->p + i - offset, blk, true), - blk != sb->d[i] && blk != SWAPBLK_NONE)) - swp_pager_update_freerange(&range, sb->d[i]); - else if (blk == sb->d[i]) { + blk = swp_pager_meta_build(dstobject, + sb->p + i - offset, sb->d[i], true); + if (blk == sb->d[i]) { /* * Destination has no swapblk and is not * resident, so transfer source. @@ -2197,30 +2231,20 @@ swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, */ VM_OBJECT_WUNLOCK(srcobject); swp_pager_meta_build(dstobject, - sb->p + i - offset, blk, false); + sb->p + i - offset, sb->d[i], false); VM_OBJECT_WLOCK(srcobject); - } - if (moved != NULL) { - m = (m != NULL && m->pindex == sb->p + i - 1) ? - vm_page_next(m) : - vm_page_lookup(srcobject, sb->p + i); - if (m == NULL || vm_page_none_valid(m)) - mc++; - } + } else if (blk != SWAPBLK_NONE) + swp_pager_update_freerange(&range, sb->d[i]); sb->d[i] = SWAPBLK_NONE; } pindex = sb->p + SWAP_META_PAGES; if (swp_pager_swblk_empty(sb, 0, start) && swp_pager_swblk_empty(sb, limit, SWAP_META_PAGES)) { - SWAP_PCTRIE_REMOVE(&srcobject->un_pager.swp.swp_blks, - sb->p); + swblk_lookup_remove(srcobject, sb); uma_zfree(swblk_zone, sb); } } swp_pager_freeswapspace(&range); -out: - if (moved != NULL) - *moved = mc; } /* @@ -2237,7 +2261,51 @@ static void swp_pager_meta_free(vm_object_t object, vm_pindex_t pindex, vm_pindex_t count, vm_size_t *freed) { - swp_pager_meta_transfer(object, NULL, pindex, count, freed); + struct page_range range; + struct swblk *sb; + vm_page_t m; + vm_pindex_t last; + vm_size_t fc; + int i, limit, start; + + VM_OBJECT_ASSERT_WLOCKED(object); + + fc = 0; + m = NULL; + if (count == 0 || swblk_is_empty(object)) + goto out; + + swp_pager_init_freerange(&range); + last = pindex + count; + sb = swblk_start_limit(object, pindex, last); + start = (sb != NULL && sb->p < pindex) ? pindex - sb->p : 0; + for (; sb != NULL; + sb = swblk_start_limit(object, pindex, last), start = 0) { + limit = MIN(last - sb->p, SWAP_META_PAGES); + for (i = start; i < limit; i++) { + if (sb->d[i] == SWAPBLK_NONE) + continue; + swp_pager_update_freerange(&range, sb->d[i]); + if (freed != NULL) { + m = (m != NULL && m->pindex == sb->p + i - 1) ? + vm_page_next(m) : + vm_page_lookup(object, sb->p + i); + if (m == NULL || vm_page_none_valid(m)) + fc++; + } + sb->d[i] = SWAPBLK_NONE; + } + pindex = sb->p + SWAP_META_PAGES; + if (swp_pager_swblk_empty(sb, 0, start) && + swp_pager_swblk_empty(sb, limit, SWAP_META_PAGES)) { + swblk_lookup_remove(object, sb); + uma_zfree(swblk_zone, sb); + } + } + swp_pager_freeswapspace(&range); +out: + if (freed != NULL) + *freed = fc; } static void @@ -2296,19 +2364,16 @@ swp_pager_meta_lookup(vm_object_t object, vm_pindex_t pindex) KASSERT((object->flags & OBJ_SWAP) != 0, ("Lookup object not swappable")); - sb = SWAP_PCTRIE_LOOKUP(&object->un_pager.swp.swp_blks, - rounddown(pindex, SWAP_META_PAGES)); + sb = swblk_lookup(object, pindex); if (sb == NULL) return (SWAPBLK_NONE); return (sb->d[pindex % SWAP_META_PAGES]); } /* - * Returns the least page index which is greater than or equal to the - * parameter pindex and for which there is a swap block allocated. - * Returns object's size if the object's type is not swap or if there - * are no allocated swap blocks for the object after the requested - * pindex. + * Returns the least page index which is greater than or equal to the parameter + * pindex and for which there is a swap block allocated. Returns OBJ_MAX_SIZE + * if are no allocated swap blocks for the object after the requested pindex. */ vm_pindex_t swap_pager_find_least(vm_object_t object, vm_pindex_t pindex) @@ -2316,24 +2381,15 @@ swap_pager_find_least(vm_object_t object, vm_pindex_t pindex) struct swblk *sb; int i; - VM_OBJECT_ASSERT_LOCKED(object); - MPASS((object->flags & OBJ_SWAP) != 0); - - if (pctrie_is_empty(&object->un_pager.swp.swp_blks)) - return (object->size); - sb = SWAP_PCTRIE_LOOKUP_GE(&object->un_pager.swp.swp_blks, - rounddown(pindex, SWAP_META_PAGES)); - if (sb == NULL) - return (object->size); + if ((sb = swblk_start(object, pindex)) == NULL) + return (OBJ_MAX_SIZE); if (sb->p < pindex) { for (i = pindex % SWAP_META_PAGES; i < SWAP_META_PAGES; i++) { if (sb->d[i] != SWAPBLK_NONE) return (sb->p + i); } - sb = SWAP_PCTRIE_LOOKUP_GE(&object->un_pager.swp.swp_blks, - roundup(pindex, SWAP_META_PAGES)); - if (sb == NULL) - return (object->size); + if ((sb = swblk_next(object, sb)) == NULL) + return (OBJ_MAX_SIZE); } for (i = 0; i < SWAP_META_PAGES; i++) { if (sb->d[i] != SWAPBLK_NONE) @@ -2345,7 +2401,7 @@ swap_pager_find_least(vm_object_t object, vm_pindex_t pindex) * doesn't map any blocks. */ MPASS(0); - return (object->size); + return (OBJ_MAX_SIZE); } /* @@ -2797,11 +2853,8 @@ vmspace_swap_count(struct vmspace *vmspace) goto unlock; pi = OFF_TO_IDX(cur->offset); e = pi + OFF_TO_IDX(cur->end - cur->start); - for (;; pi = sb->p + SWAP_META_PAGES) { - sb = SWAP_PCTRIE_LOOKUP_GE( - &object->un_pager.swp.swp_blks, pi); - if (sb == NULL || sb->p >= e) - break; + for (sb = swblk_start_limit(object, pi, e); + sb != NULL; sb = swblk_next_limit(object, sb, e)) { for (i = 0; i < SWAP_META_PAGES; i++) { if (sb->p + i < e && sb->d[i] != SWAPBLK_NONE) From nobody Mon Sep 9 21:52:03 2024 X-Original-To: dev-commits-src-main@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 4X2gXg4jPrz5VBHB; Mon, 09 Sep 2024 21:52: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2gXg3kZMz40M6; Mon, 9 Sep 2024 21:52:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725918723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+nOyMjnjLEMr3w0gAC0cA2SvI9RkQVuxGtY8NGB0Zms=; b=xTx7zynmrTJmuIXhooH0qsslMV3R5UlAOb0ou9BJFR52CMRWv9qrxXb3OyrZBtNulqeah+ RAp6cdU/FlfWA097dIHUItn5ESxAdZ9xdLm3WFd67xrrBWrCCBMUgqnNHHbRKdh/5zmMpE Ph4nh8sCQ0IsyKywuQiaYcIg7GCWKSpm/qJ7uNqdOX5hGim9BoNcBvwFrBGJvBbx45PhWs gucOjdF1ALMte3qZ1VtOga4i+OcB5kH4wfiXJEyi1dSB4hIwoGK8OrVzH35LXrhLeICRST MAzRDmXvrHKoK9JOjKurzuBK05r/ZJB2ubbf7UGbB1DAn2zgPAOn2/UsRiltqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725918723; a=rsa-sha256; cv=none; b=HU8clWZQV0fHosjVt63fHfS2Crd7iUsKl2txHuR0ztHifAOsB4iVUL7stEQwyy127XhXKx gPDhl0OA8BeiqJsV8DstNGoothKCCszkbCYMkVNTgi+OySTJWOcHB8RID/mPyH3Boo3JlX vIrtEa8A61mXwDRX0ei4UpWYnxc6w7xLRoFhDL3jK7nenfjUGJRIvKU6yqTeTWg5a1VXbl MiLkPiG2ArOF8wWKTPNpPTzC2z28HtQ0JUvajAZvRXOs0h8YXYWnvxouoMLaCFCHB9a8xV lzuy6d196CktFAdo4gazht5bxQhSUHcswO/TAzF6AVoQkHA65xPpvsQujIxYdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725918723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+nOyMjnjLEMr3w0gAC0cA2SvI9RkQVuxGtY8NGB0Zms=; b=k5a8kh5DnjjnxXHMN9W04gjYxeSD79wLoLRTUPqJ2aJtC2sMbouz2AipdRwAlZt0q7ImTo mdo86P+rogY2Ajr924QCDss8LpSyCiNptM2ZtQthsA/P5AgnPfWyN2/glO4Db7wLrej59V 6JFGpJJDwWoeGvLMpVr87bsJxgD4MDioboAk9DoQmDnz59ODZ+HPgKVnX4BAuE5ibcX61M vc4+F9mbGzuZZzlnlDVNMKScY3yLKspZ2Fdfqnoe4iKTnyL/ZQir73YI0Rlq335OcgTJF/ G222wM2fgDwZs00kIiIa3GgkYyyKbNSjXUYdqtXRmXNK2YWcDrolByOgD3eJ8A== 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 4X2gXg3KtzzL8m; Mon, 9 Sep 2024 21:52:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 489Lq3ed037139; Mon, 9 Sep 2024 21:52:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 489Lq36Q037136; Mon, 9 Sep 2024 21:52:03 GMT (envelope-from git) Date: Mon, 9 Sep 2024 21:52:03 GMT Message-Id: <202409092152.489Lq36Q037136@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: 8aa2cd9d13d4 - main - rangeset: speed up range traversal List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 8aa2cd9d13d4b1a81ac313e9d3e214ec3a928430 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=8aa2cd9d13d4b1a81ac313e9d3e214ec3a928430 commit 8aa2cd9d13d4b1a81ac313e9d3e214ec3a928430 Author: Doug Moore AuthorDate: 2024-09-09 21:50:14 +0000 Commit: Doug Moore CommitDate: 2024-09-09 21:50:14 +0000 rangeset: speed up range traversal For rangeset-next search, use exact search rather than greater-than search. Move a bit of the testing logic from the pmap code to the common rangeset code. Reviewed by: kib (previous version) Tested by: pho (previous version) Differential Revision: https://reviews.freebsd.org/D46314 --- sys/amd64/amd64/pmap.c | 20 +++++++------------- sys/arm64/arm64/pmap.c | 19 +++++++------------ sys/kern/subr_rangeset.c | 23 +++++++++++++++-------- sys/sys/rangeset.h | 14 +++++++++----- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index ff5c229b7652..48aef39e9663 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -11468,7 +11468,7 @@ pmap_pkru_deassign_all(pmap_t pmap) static bool pmap_pkru_same(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, pt_entry_t *pte) { - struct pmap_pkru_range *next_ppr, *ppr; + struct pmap_pkru_range *ppr; vm_offset_t va; u_int keyidx; @@ -11480,20 +11480,14 @@ pmap_pkru_same(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, pt_entry_t *pte) sva >= VM_MAXUSER_ADDRESS) return (true); MPASS(eva <= VM_MAXUSER_ADDRESS); - ppr = rangeset_lookup(&pmap->pm_pkru, sva); - if (ppr == NULL) { - ppr = rangeset_next(&pmap->pm_pkru, sva); - return (ppr == NULL || - ppr->pkru_rs_el.re_start >= eva); - } + ppr = rangeset_containing(&pmap->pm_pkru, sva); + if (ppr == NULL) + return (rangeset_empty(&pmap->pm_pkru, sva, eva)); keyidx = ppr->pkru_keyidx; while ((va = ppr->pkru_rs_el.re_end) < eva) { - next_ppr = rangeset_next(&pmap->pm_pkru, va); - if (next_ppr == NULL || - va != next_ppr->pkru_rs_el.re_start || - keyidx != next_ppr->pkru_keyidx) + if ((ppr = rangeset_beginning(&pmap->pm_pkru, va)) == NULL || + keyidx != ppr->pkru_keyidx) return (false); - ppr = next_ppr; } *pte |= X86_PG_PKU(keyidx); return (true); @@ -11509,7 +11503,7 @@ pmap_pkru_get(pmap_t pmap, vm_offset_t va) (cpu_stdext_feature2 & CPUID_STDEXT2_PKU) == 0 || va >= VM_MAXUSER_ADDRESS) return (0); - ppr = rangeset_lookup(&pmap->pm_pkru, va); + ppr = rangeset_containing(&pmap->pm_pkru, va); if (ppr != NULL) return (X86_PG_PKU(ppr->pkru_keyidx)); return (0); diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index dc02e732568f..2fd45bdb6b95 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -9370,7 +9370,7 @@ pmap_bti_deassign_all(pmap_t pmap) static bool pmap_bti_same(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, pt_entry_t *pte) { - struct rs_el *next_rs, *rs; + struct rs_el *rs; vm_offset_t va; PMAP_LOCK_ASSERT(pmap, MA_OWNED); @@ -9388,18 +9388,12 @@ pmap_bti_same(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, pt_entry_t *pte) if (pmap->pm_bti == NULL) return (true); PMAP_ASSERT_STAGE1(pmap); - rs = rangeset_lookup(pmap->pm_bti, sva); - if (rs == NULL) { - rs = rangeset_next(pmap->pm_bti, sva); - return (rs == NULL || - rs->re_start >= eva); - } + rs = rangeset_containing(pmap->pm_bti, sva); + if (rs == NULL) + return (rangeset_empty(pmap->pm_bti, sva, eva)); while ((va = rs->re_end) < eva) { - next_rs = rangeset_next(pmap->pm_bti, va); - if (next_rs == NULL || - va != next_rs->re_start) + if ((rs = rangeset_beginning(pmap->pm_bti, va)) == NULL) return (false); - rs = next_rs; } *pte |= ATTR_S1_GP; return (true); @@ -9415,7 +9409,8 @@ pmap_pte_bti(pmap_t pmap, vm_offset_t va) return (0); if (pmap == kernel_pmap) return (ATTR_KERN_GP); - if (pmap->pm_bti != NULL && rangeset_lookup(pmap->pm_bti, va) != NULL) + if (pmap->pm_bti != NULL && + rangeset_containing(pmap->pm_bti, va) != NULL) return (ATTR_S1_GP); return (0); } diff --git a/sys/kern/subr_rangeset.c b/sys/kern/subr_rangeset.c index ddb1839531ea..2edf295ab2ce 100644 --- a/sys/kern/subr_rangeset.c +++ b/sys/kern/subr_rangeset.c @@ -248,25 +248,32 @@ rangeset_remove_all(struct rangeset *rs) } void * -rangeset_lookup(struct rangeset *rs, uint64_t place) +rangeset_containing(struct rangeset *rs, uint64_t place) { struct rs_el *r; rangeset_check(rs); r = RANGESET_PCTRIE_LOOKUP_LE(&rs->rs_trie, place); - if (r == NULL) - return (NULL); - if (r->re_end <= place) - return (NULL); - return (r); + if (r != NULL && place < r->re_end) + return (r); + return (NULL); +} + +bool +rangeset_empty(struct rangeset *rs, uint64_t start, uint64_t end) +{ + struct rs_el *r; + + r = RANGESET_PCTRIE_LOOKUP_GE(&rs->rs_trie, start + 1); + return (r == NULL || r->re_start >= end); } void * -rangeset_next(struct rangeset *rs, uint64_t place) +rangeset_beginning(struct rangeset *rs, uint64_t place) { rangeset_check(rs); - return (RANGESET_PCTRIE_LOOKUP_GE(&rs->rs_trie, place)); + return (RANGESET_PCTRIE_LOOKUP(&rs->rs_trie, place)); } int diff --git a/sys/sys/rangeset.h b/sys/sys/rangeset.h index 3225819c4794..b6beb669821d 100644 --- a/sys/sys/rangeset.h +++ b/sys/sys/rangeset.h @@ -69,15 +69,19 @@ int rangeset_remove_pred(struct rangeset *rs, uint64_t start, uint64_t end, rs_pred_t pred); /* - * Really returns the pointer to the data with struct rs_el embedded - * at the beginning. + * Finds the range that contains place, if any. */ -void *rangeset_lookup(struct rangeset *rs, uint64_t place); +void *rangeset_containing(struct rangeset *rs, uint64_t place); /* - * Finds the first range that begins at or after place. + * Report whether no range begins between start and end. */ -void *rangeset_next(struct rangeset *rs, uint64_t place); +bool rangeset_empty(struct rangeset *rs, uint64_t start, uint64_t end); + +/* + * Finds the range that begins at place, if any. + */ +void *rangeset_beginning(struct rangeset *rs, uint64_t place); /* * Copies src_rs entries into dst_rs. dst_rs must be empty. From nobody Tue Sep 10 02:31:24 2024 X-Original-To: dev-commits-src-main@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 4X2nl04zhkz5WKCP; Tue, 10 Sep 2024 02:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2nl04X47z4m4k; Tue, 10 Sep 2024 02:31:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725935484; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vE9MFBaJ0+ZkNgmN/tAlneTgI9W5ubwcbuni9ZTtPsQ=; b=kXXl4voLQxGfJEC6RnzvwsZutNphBAVth4mMBi1i/rWEOxxmifiCNwUCaA7SEGlmnw3eHP DoCVFs/L4cAP+RunKTNIaJCH30r3LNwqtu9hJPMC5i8uqtw2QEQ2GovWcB7Qd9WO3DVYrS wIz7h0mh8ORaj0JogrK2qWy/CRVIsP1wlACkWrkK3Erf1R/suvfL0tqyJvq0dqdv/ITb1A dFWAurblKLMgbUHtqMpUjV2hIy8NXtC4SThdn7Q0CQk8I/1bf2Y/szc72W0mSoHMwa1EJo L6BgeW8mPfyua8+sAKEhZ8ntaLkRJ8jiEOkERsWmgfgPQQN6FgCpqYKzKsC68A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725935484; a=rsa-sha256; cv=none; b=GBnENRqSnwVpURDjttjQIVqMqvtJ7hFeBwR4T2Wo8nwVyTRtYcUT9K1LJHOOMdRiEkQGhe lPTXYZUrlgdrUv62dVG8CD9HzUchw7T3SugW7ITTreMt9AB1y19OMeWf2sBmDZWzzFdJug 0fm0AvpWV4D3fcZXza5TsuTpPd0Fm6qll2xOs7jCdl0nn1eQ7aGXbRnnOMcGkOWteYhhmO QKR64XgDg7xkslMnlWcP3Kbx6qQnvQaAG/heKjSDEObe7gdcfPz3V5xVdCqZEZVMMkQeuP CNL100FPKoSCHAGYbAbXR9KIjTWaEUbvr3UlY94c2eDPc2T7r1vEh2+SC6HnrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725935484; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vE9MFBaJ0+ZkNgmN/tAlneTgI9W5ubwcbuni9ZTtPsQ=; b=D4xvd8UGTAI3ni5zO1kqHceLXkWXJhKwTAf+SkceZyMSc09BgjQLQ6M/naWZ2WBG9iOd2u cfnyJLktVN3F5JVhBO5Yf3crvkpuy3bTcL+5p4hh/FM8sYk7h6RKrnnGUgQ64g3J8V/3VY IT+cEgAAjzcdXPFNDRAuCyJz3a+Kya39dl2wk6TUIkofMfJdY8NOYIHmWUgivFRCo4u9Vx 3JitK4cgKP8qymTr0cP9flEtDRWDLwMCVcEc4SYXn9L3d1V8OMRa24xcTg2p9dzWeqmtDW 88FnVcIAFxsAlEAExAlNv+zl9/Bp/mYtwldG5JhJHaVOrijJoPZTcRY4KIhR5A== 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 4X2nl047HzzT0w; Tue, 10 Sep 2024 02:31:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48A2VOxe010187; Tue, 10 Sep 2024 02:31:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48A2VOBe010184; Tue, 10 Sep 2024 02:31:24 GMT (envelope-from git) Date: Tue, 10 Sep 2024 02:31:24 GMT Message-Id: <202409100231.48A2VOBe010184@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Maxim Sobolev Subject: git: a43fb3653b35 - main - mbuf: improve KASSERT(9) falure messages in the m_apply() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sobomax X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a43fb3653b35ab88b72e1277dccc26328363cdb7 Auto-Submitted: auto-generated The branch main has been updated by sobomax: URL: https://cgit.FreeBSD.org/src/commit/?id=a43fb3653b35ab88b72e1277dccc26328363cdb7 commit a43fb3653b35ab88b72e1277dccc26328363cdb7 Author: Maxim Sobolev AuthorDate: 2024-09-10 01:51:05 +0000 Commit: Maxim Sobolev CommitDate: 2024-09-10 02:30:28 +0000 mbuf: improve KASSERT(9) falure messages in the m_apply() - Make less ambiguous; - extend to provide more context for post-mortem. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D43776 MFC after: 2 weeks --- sys/kern/uipc_mbuf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index d6b38cf8fbc8..f6ce9b5cc74b 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -1439,14 +1439,16 @@ m_apply(struct mbuf *m, int off, int len, KASSERT(off >= 0, ("m_apply, negative off %d", off)); KASSERT(len >= 0, ("m_apply, negative len %d", len)); while (off > 0) { - KASSERT(m != NULL, ("m_apply, offset > size of mbuf chain")); + KASSERT(m != NULL, ("m_apply, offset > size of mbuf chain " + "(%d extra)", off)); if (off < m->m_len) break; off -= m->m_len; m = m->m_next; } while (len > 0) { - KASSERT(m != NULL, ("m_apply, offset > size of mbuf chain")); + KASSERT(m != NULL, ("m_apply, length > size of mbuf chain " + "(%d extra)", len)); count = min(m->m_len - off, len); rval = m_apply_one(m, off, count, f, arg); if (rval) From nobody Tue Sep 10 10:04:37 2024 X-Original-To: dev-commits-src-main@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 4X2znx32tQz5VK1h; Tue, 10 Sep 2024 10:04: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X2znx24bvz4gBQ; Tue, 10 Sep 2024 10:04:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725962677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1G7WjV8b3rwn+zw5BEClJ9wJ5juzpF8OpCgSWnbaWZc=; b=Te2E6svEiuxhBnoAvOHSVBhlpRKCRlViJfeiptsiIpnIQieFpPxKhluTSzP2tyRbF+b5O3 Jx/hGfbc77s2rTkDNs9cTws7MuuXweSSOAKnvIZV58PbQPRTXr4IM1cXvbq2Asn14zyRbw Lw5VqjfMuE5RBWSpfzqQ3hKHg0sfhD1/HdssB3eSt90RrM0nhX1OVDOUljEYuzdksTX+L9 ZGwBd7+PwME1/K3uVKACM84noGzksytVTLBD3OF6s9SvI+m3FCDA9NABRbwtvcykkDD1rO Qf1MwbBpRvxVXEGvvlFkVo957EFXxSeuRRzP5YwPTGxq8mhYuw7OEWFHmWXHBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725962677; a=rsa-sha256; cv=none; b=nmV2WCkSTCRu/A/MUXD9Hw9JdWZX7SGkLXmxZJV7Y+R1Uf6Zf2z9S9wVVSO0YLreYIg271 3IXskprVbYvSadrX4eeEe/H60XJfUHv432dLAzZZlKmUrIwZGJE30/qlqFzKzp/Va2j0GY K/HENF5VFkrZoU7qisZhP5IIJkkoquh3GD1lFLsBXAgFLfcEqWFBX4iXocKlSA1C3v4a9g hvfPUkLzP9S2EUhv6G48tLVs8gqaZ/9EkDZ2XUeCHh77bik3tUeghe4JFDBWdedM69Y+jL gWiDXRl2ObQw/ligNBZdrnImxBGhb5orNwLjszeBRrKL+HiGZRWFxJz/tllyiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725962677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1G7WjV8b3rwn+zw5BEClJ9wJ5juzpF8OpCgSWnbaWZc=; b=KJ6qx2Z/bJ/4jmd74k5KWrDEV9jVxwPsUCJ92sEIdZhNrsV9ZNFgKDp9wWQBW/ONrj7NIk V+UewHN/vuoJ5703puv9bJIm9tWCBMJYI98ccxnfzaGB8idt0PeoDP3k5VuPbirtZ0yJhF AM9vMU1tnzpn0I4DW4WqHYL2ZzQeuFxxWIVLzdzYNnWdNxe4/PY5X6LphWBJJNFVonXzw8 U6rcamcj4jTNihVMNUw7gF+/WGgasRfB55rQheu6Ejt1fsqUBNpr5u8sOFmyMVLhvYBfFC yi4oKQtPgOK+KuXx5VHf7N/ze9OoKEua04q4Jn5xd/nyby1ft8aGEAUIaxMnsQ== 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 4X2znx1hBlzjw3; Tue, 10 Sep 2024 10:04:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AA4bwY083998; Tue, 10 Sep 2024 10:04:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AA4bIr083995; Tue, 10 Sep 2024 10:04:37 GMT (envelope-from git) Date: Tue, 10 Sep 2024 10:04:37 GMT Message-Id: <202409101004.48AA4bIr083995@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Zhenlei Huang Subject: git: 343bf78e4871 - main - bpf: Update a comment List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 343bf78e487190557889c8ba53d8080b268867f7 Auto-Submitted: auto-generated The branch main has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=343bf78e487190557889c8ba53d8080b268867f7 commit 343bf78e487190557889c8ba53d8080b268867f7 Author: Zhenlei Huang AuthorDate: 2024-09-10 10:03:32 +0000 Commit: Zhenlei Huang CommitDate: 2024-09-10 10:03:32 +0000 bpf: Update a comment This comment was introduced by fix [1], later the fix was refined by change [2], and the context of the usage of `m_get2()` and `m_getjcl()` got lost, then the comment became obscure. Update to reflect the current behavior. 1. f13da24715a7 net/bpf: Fix writing of buffer bigger than PAGESIZE 2. a051ca72e281 Introduce m_get3() Fixes: a051ca72e281 Introduce m_get3() MFC after: 3 days --- sys/net/bpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/bpf.c b/sys/net/bpf.c index 7983337064be..5dfa6fb30565 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -647,7 +647,7 @@ bpf_movein(struct uio *uio, int linktype, struct ifnet *ifp, struct mbuf **mp, if (len < hlen || len - hlen > ifp->if_mtu) return (EMSGSIZE); - /* Allocate a mbuf for our write, since m_get2 fails if len >= to MJUMPAGESIZE, use m_getjcl for bigger buffers */ + /* Allocate a mbuf, up to MJUM16BYTES bytes, for our write. */ m = m_get3(len, M_WAITOK, MT_DATA, M_PKTHDR); if (m == NULL) return (EIO); From nobody Tue Sep 10 11:08:01 2024 X-Original-To: dev-commits-src-main@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 4X31C54x8tz5WD4C; Tue, 10 Sep 2024 11:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X31C54G0Bz4p18; Tue, 10 Sep 2024 11:08:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725966481; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ppeWwT6Y8eQwsfEDh0Jnv0zdsrp8HrOrY6KWc834NoA=; b=sOjVWpZjjFkRzjyaZWzExDPqnGw5DnfjrX12oHV5UL3MqzGUzr4+rx5gADJZVD+JaNM76C uxEcBjP7E8AI+1sf4lQjZvT6y3ZrKPA1qoaat2Sf+slltCarD0JymLXkkcwwuO6ATz5FDH jx3QZNa21R5rYD/8MbdHgKRBTA+kJlh3Qs2IkAC5yLDvt+CGhUlfNy8zdDlZ/4hWUx1YOQ u/GR95Gy2HCHNYa29AB8ZW1BnINnNmNo6EMGNKOg3NduR2j8hdWOVGlB50IysXIN9og5Xn kqdyEe09yQmXl4Pvt/wxn4/fKrj5acKj+tqdr6/dU72yTqKMTflYfeKbKNnB7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725966481; a=rsa-sha256; cv=none; b=lCqFycn1QmIIjXvmfNzcOOJTpxp00gDCPc3ujz/J0A1zhN5gv8KBoss0CjhVk0SMjQHsZo tgZALyoZsumoeLEkjgtbr5bBMUhF8ZgcCWzx+KLhqFhyZFGZs2HFbN3goFuS0orHxLWgo5 Bb6xNvAmQHaoe0VrGz1lGhna4g8a8eDTmoUEUGLQq7lz9eraR5K30H80dmlRCfcZ3uvH9L gFGxCyVA3uaIfimnSOFKANJf9bZGcCzxOlwYGHLlmQM5m0xLmgjgdrSviuYa179y1ZiV5P tEhP2sNSEA7sFiMmHEJFKRrtgRbVFT4zwV/qFjZhPPfryPosTpHPBiZ9KGRy7A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725966481; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ppeWwT6Y8eQwsfEDh0Jnv0zdsrp8HrOrY6KWc834NoA=; b=r1TtacOVE8+WH1GuzEW2JcFMugWZcl0uYeYh7/a6rHIni/A8cd0E/LZ8TPkAjKjaFjZRhM 6M1xDA/UOwamtobvgbbmdyREcHGgk/ZeKwSXTpTO3m2olaP273WCo6XD2o83faifIY/rf1 kFzwd+8YpOW/rcWMYbZN+iA/3QAthW+ZAx1rPz/q1REEzSlhlVcq/iAmgeFqd0qGxPVXT8 7J9awpKDkMjI4RjM2dJ8PpQcQakEyaO+f8IOAIE1lmGEWjSspDZ9nH70jp66i8s+RlR34b 0ytz7t6ujaaoPhOVMMzTX4snwa4GBR3JoEuGZHPW/3khqEA5CyrwUPcO+aCrkQ== 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 4X31C53s0lzlMr; Tue, 10 Sep 2024 11:08:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AB81ME089149; Tue, 10 Sep 2024 11:08:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AB81gA089146; Tue, 10 Sep 2024 11:08:01 GMT (envelope-from git) Date: Tue, 10 Sep 2024 11:08:01 GMT Message-Id: <202409101108.48AB81gA089146@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: 1c60b2cb0ba5 - main - tcp: improve whitespace consistency for socket option names List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1c60b2cb0ba59f8e700b60a343bd0397c88d7d36 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=1c60b2cb0ba59f8e700b60a343bd0397c88d7d36 commit 1c60b2cb0ba59f8e700b60a343bd0397c88d7d36 Author: Michael Tuexen AuthorDate: 2024-09-10 11:03:50 +0000 Commit: Michael Tuexen CommitDate: 2024-09-10 11:03:50 +0000 tcp: improve whitespace consistency for socket option names No functional change intended. Reviewed by: rscheff MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D46618 --- sys/netinet/tcp.h | 330 +++++++++++++++++++++++++++--------------------------- 1 file changed, 165 insertions(+), 165 deletions(-) diff --git a/sys/netinet/tcp.h b/sys/netinet/tcp.h index d11cca250de3..6d92f078029b 100644 --- a/sys/netinet/tcp.h +++ b/sys/netinet/tcp.h @@ -182,175 +182,175 @@ __tcp_set_flags(struct tcphdr *th, uint16_t flags) * values and are not masked together. Some values appear to be * bitmasks for historical reasons. */ -#define TCP_NODELAY 1 /* don't delay send to coalesce packets */ +#define TCP_NODELAY 1 /* don't delay send to coalesce packets */ #if __BSD_VISIBLE -#define TCP_MAXSEG 2 /* set maximum segment size */ -#define TCP_NOPUSH 4 /* don't push last block of write */ -#define TCP_NOOPT 8 /* don't use TCP options */ -#define TCP_MD5SIG 16 /* use MD5 digests (RFC2385) */ -#define TCP_INFO 32 /* retrieve tcp_info structure */ -#define TCP_STATS 33 /* retrieve stats blob structure */ -#define TCP_LOG 34 /* configure event logging for connection */ -#define TCP_LOGBUF 35 /* retrieve event log for connection */ -#define TCP_LOGID 36 /* configure log ID to correlate connections */ -#define TCP_LOGDUMP 37 /* dump connection log events to device */ -#define TCP_LOGDUMPID 38 /* dump events from connections with same ID to - device */ -#define TCP_TXTLS_ENABLE 39 /* TLS framing and encryption for transmit */ -#define TCP_TXTLS_MODE 40 /* Transmit TLS mode */ -#define TCP_RXTLS_ENABLE 41 /* TLS framing and encryption for receive */ -#define TCP_RXTLS_MODE 42 /* Receive TLS mode */ -#define TCP_IWND_NB 43 /* Override initial window (units: bytes) */ -#define TCP_IWND_NSEG 44 /* Override initial window (units: MSS segs) */ +#define TCP_MAXSEG 2 /* set maximum segment size */ +#define TCP_NOPUSH 4 /* don't push last block of write */ +#define TCP_NOOPT 8 /* don't use TCP options */ +#define TCP_MD5SIG 16 /* use MD5 digests (RFC2385) */ +#define TCP_INFO 32 /* retrieve tcp_info structure */ +#define TCP_STATS 33 /* retrieve stats blob structure */ +#define TCP_LOG 34 /* configure event logging for connection */ +#define TCP_LOGBUF 35 /* retrieve event log for connection */ +#define TCP_LOGID 36 /* configure log ID to correlate connections */ +#define TCP_LOGDUMP 37 /* dump connection log events to device */ +#define TCP_LOGDUMPID 38 /* dump events from connections with same ID to + device */ +#define TCP_TXTLS_ENABLE 39 /* TLS framing and encryption for transmit */ +#define TCP_TXTLS_MODE 40 /* Transmit TLS mode */ +#define TCP_RXTLS_ENABLE 41 /* TLS framing and encryption for receive */ +#define TCP_RXTLS_MODE 42 /* Receive TLS mode */ +#define TCP_IWND_NB 43 /* Override initial window (units: bytes) */ +#define TCP_IWND_NSEG 44 /* Override initial window (units: MSS segs) */ #ifdef _KERNEL -#define TCP_USE_DDP 45 /* Use direct data placement for so_rcvbuf */ +#define TCP_USE_DDP 45 /* Use direct data placement for so_rcvbuf */ #endif -#define TCP_LOGID_CNT 46 /* get number of connections with the same ID */ -#define TCP_LOG_TAG 47 /* configure tag for grouping logs */ -#define TCP_USER_LOG 48 /* userspace log event */ -#define TCP_CONGESTION 64 /* get/set congestion control algorithm */ -#define TCP_CCALGOOPT 65 /* get/set cc algorithm specific options */ -#define TCP_MAXUNACKTIME 68 /* maximum time without making progress (sec) */ -#define TCP_MAXPEAKRATE 69 /* maximum peak rate allowed (kbps) */ -#define TCP_IDLE_REDUCE 70 /* Reduce cwnd on idle input */ -#define TCP_REMOTE_UDP_ENCAPS_PORT 71 /* Enable TCP over UDP tunneling via the specified port */ -#define TCP_DELACK 72 /* socket option for delayed ack */ -#define TCP_FIN_IS_RST 73 /* A fin from the peer is treated has a RST */ -#define TCP_LOG_LIMIT 74 /* Limit to number of records in tcp-log */ -#define TCP_SHARED_CWND_ALLOWED 75 /* Use of a shared cwnd is allowed */ -#define TCP_PROC_ACCOUNTING 76 /* Do accounting on tcp cpu usage and counts */ -#define TCP_USE_CMP_ACKS 77 /* The transport can handle the Compressed mbuf acks */ -#define TCP_PERF_INFO 78 /* retrieve accounting counters */ -#define TCP_KEEPINIT 128 /* N, time to establish connection */ -#define TCP_KEEPIDLE 256 /* L,N,X start keeplives after this period */ -#define TCP_KEEPINTVL 512 /* L,N interval between keepalives */ -#define TCP_KEEPCNT 1024 /* L,N number of keepalives before close */ -#define TCP_FASTOPEN 1025 /* enable TFO / was created via TFO */ -#define TCP_PCAP_OUT 2048 /* number of output packets to keep */ -#define TCP_PCAP_IN 4096 /* number of input packets to keep */ -#define TCP_FUNCTION_BLK 8192 /* Set the tcp function pointers to the specified stack */ -#define TCP_FUNCTION_ALIAS 8193 /* Get the current tcp function pointer name alias */ +#define TCP_LOGID_CNT 46 /* get number of connections with the same ID */ +#define TCP_LOG_TAG 47 /* configure tag for grouping logs */ +#define TCP_USER_LOG 48 /* userspace log event */ +#define TCP_CONGESTION 64 /* get/set congestion control algorithm */ +#define TCP_CCALGOOPT 65 /* get/set cc algorithm specific options */ +#define TCP_MAXUNACKTIME 68 /* maximum time without making progress (sec) */ +#define TCP_MAXPEAKRATE 69 /* maximum peak rate allowed (kbps) */ +#define TCP_IDLE_REDUCE 70 /* Reduce cwnd on idle input */ +#define TCP_REMOTE_UDP_ENCAPS_PORT 71 /* Enable TCP over UDP tunneling via the specified port */ +#define TCP_DELACK 72 /* socket option for delayed ack */ +#define TCP_FIN_IS_RST 73 /* A fin from the peer is treated has a RST */ +#define TCP_LOG_LIMIT 74 /* Limit to number of records in tcp-log */ +#define TCP_SHARED_CWND_ALLOWED 75 /* Use of a shared cwnd is allowed */ +#define TCP_PROC_ACCOUNTING 76 /* Do accounting on tcp cpu usage and counts */ +#define TCP_USE_CMP_ACKS 77 /* The transport can handle the Compressed mbuf acks */ +#define TCP_PERF_INFO 78 /* retrieve accounting counters */ +#define TCP_KEEPINIT 128 /* N, time to establish connection */ +#define TCP_KEEPIDLE 256 /* L,N,X start keeplives after this period */ +#define TCP_KEEPINTVL 512 /* L,N interval between keepalives */ +#define TCP_KEEPCNT 1024 /* L,N number of keepalives before close */ +#define TCP_FASTOPEN 1025 /* enable TFO / was created via TFO */ +#define TCP_PCAP_OUT 2048 /* number of output packets to keep */ +#define TCP_PCAP_IN 4096 /* number of input packets to keep */ +#define TCP_FUNCTION_BLK 8192 /* Set the tcp function pointers to the specified stack */ +#define TCP_FUNCTION_ALIAS 8193 /* Get the current tcp function pointer name alias */ /* Options for Rack and BBR */ -#define TCP_REUSPORT_LB_NUMA 1026 /* set listen socket numa domain */ -#define TCP_RACK_MBUF_QUEUE 1050 /* Do we allow mbuf queuing if supported */ -#define TCP_RACK_PROP 1051 /* Not used */ -#define TCP_RACK_TLP_REDUCE 1052 /* RACK TLP cwnd reduction (bool) */ -#define TCP_RACK_PACE_REDUCE 1053 /* RACK Pacingv reduction factor (divisor) */ -#define TCP_RACK_PACE_MAX_SEG 1054 /* Max TSO size we will send */ -#define TCP_RACK_PACE_ALWAYS 1055 /* Use the always pace method */ -#define TCP_RACK_PROP_RATE 1056 /* Not used */ -#define TCP_RACK_PRR_SENDALOT 1057 /* Allow PRR to send more than one seg */ -#define TCP_RACK_MIN_TO 1058 /* Minimum time between rack t-o's in ms */ -#define TCP_RACK_EARLY_RECOV 1059 /* Not used */ -#define TCP_RACK_EARLY_SEG 1060 /* If early recovery max segments */ -#define TCP_RACK_REORD_THRESH 1061 /* RACK reorder threshold (shift amount) */ -#define TCP_RACK_REORD_FADE 1062 /* Does reordering fade after ms time */ -#define TCP_RACK_TLP_THRESH 1063 /* RACK TLP theshold i.e. srtt+(srtt/N) */ -#define TCP_RACK_PKT_DELAY 1064 /* RACK added ms i.e. rack-rtt + reord + N */ -#define TCP_RACK_TLP_INC_VAR 1065 /* Does TLP include rtt variance in t-o */ -#define TCP_BBR_IWINTSO 1067 /* Initial TSO window for BBRs first sends */ -#define TCP_BBR_RECFORCE 1068 /* Enter recovery force out a segment disregard pacer no longer valid */ -#define TCP_BBR_STARTUP_PG 1069 /* Startup pacing gain */ -#define TCP_BBR_DRAIN_PG 1070 /* Drain pacing gain */ -#define TCP_BBR_RWND_IS_APP 1071 /* Rwnd limited is considered app limited */ -#define TCP_BBR_PROBE_RTT_INT 1072 /* How long in useconds between probe-rtt */ -#define TCP_BBR_ONE_RETRAN 1073 /* Is only one segment allowed out during retran */ -#define TCP_BBR_STARTUP_LOSS_EXIT 1074 /* Do we exit a loss during startup if not 20% incr */ -#define TCP_BBR_USE_LOWGAIN 1075 /* lower the gain in PROBE_BW enable */ -#define TCP_BBR_LOWGAIN_THRESH 1076 /* Unused after 2.3 morphs to TSLIMITS >= 2.3 */ -#define TCP_BBR_TSLIMITS 1076 /* Do we use experimental Timestamp limiting for our algo */ -#define TCP_BBR_LOWGAIN_HALF 1077 /* Unused after 2.3 */ -#define TCP_BBR_PACE_OH 1077 /* Reused in 4.2 for pacing overhead setting */ -#define TCP_BBR_LOWGAIN_FD 1078 /* Unused after 2.3 */ -#define TCP_BBR_HOLD_TARGET 1078 /* For 4.3 on */ -#define TCP_BBR_USEDEL_RATE 1079 /* Enable use of delivery rate for loss recovery */ -#define TCP_BBR_MIN_RTO 1080 /* Min RTO in milliseconds */ -#define TCP_BBR_MAX_RTO 1081 /* Max RTO in milliseconds */ -#define TCP_BBR_REC_OVER_HPTS 1082 /* Recovery override htps settings 0/1/3 */ -#define TCP_BBR_UNLIMITED 1083 /* Not used before 2.3 and morphs to algorithm >= 2.3 */ -#define TCP_BBR_ALGORITHM 1083 /* What measurement algo does BBR use netflix=0, google=1 */ -#define TCP_BBR_DRAIN_INC_EXTRA 1084 /* Does the 3/4 drain target include the extra gain */ -#define TCP_BBR_STARTUP_EXIT_EPOCH 1085 /* what epoch gets us out of startup */ -#define TCP_BBR_PACE_PER_SEC 1086 -#define TCP_BBR_PACE_DEL_TAR 1087 -#define TCP_BBR_PACE_SEG_MAX 1088 -#define TCP_BBR_PACE_SEG_MIN 1089 -#define TCP_BBR_PACE_CROSS 1090 -#define TCP_RACK_IDLE_REDUCE_HIGH 1092 /* Reduce the highest cwnd seen to IW on idle */ -#define TCP_RACK_MIN_PACE 1093 /* Do we enforce rack min pace time */ -#define TCP_RACK_MIN_PACE_SEG 1094 /* If so what is the seg threshould */ -#define TCP_RACK_GP_INCREASE 1094 /* After 4.1 its the GP increase in older rack */ -#define TCP_RACK_TLP_USE 1095 -#define TCP_BBR_ACK_COMP_ALG 1096 /* Not used */ -#define TCP_BBR_TMR_PACE_OH 1096 /* Recycled in 4.2 */ -#define TCP_BBR_EXTRA_GAIN 1097 -#define TCP_RACK_DO_DETECTION 1097 /* Recycle of extra gain for rack, attack detection */ -#define TCP_BBR_RACK_RTT_USE 1098 /* what RTT should we use 0, 1, or 2? */ -#define TCP_BBR_RETRAN_WTSO 1099 -#define TCP_DATA_AFTER_CLOSE 1100 -#define TCP_BBR_PROBE_RTT_GAIN 1101 -#define TCP_BBR_PROBE_RTT_LEN 1102 -#define TCP_BBR_SEND_IWND_IN_TSO 1103 /* Do we burst out whole iwin size chunks at start? */ -#define TCP_BBR_USE_RACK_RR 1104 /* Do we use the rack rapid recovery for pacing rxt's */ -#define TCP_BBR_USE_RACK_CHEAT TCP_BBR_USE_RACK_RR /* Compat. */ -#define TCP_BBR_HDWR_PACE 1105 /* Enable/disable hardware pacing */ -#define TCP_BBR_UTTER_MAX_TSO 1106 /* Do we enforce an utter max TSO size */ -#define TCP_BBR_EXTRA_STATE 1107 /* Special exit-persist catch up */ -#define TCP_BBR_FLOOR_MIN_TSO 1108 /* The min tso size */ -#define TCP_BBR_MIN_TOPACEOUT 1109 /* Do we suspend pacing until */ -#define TCP_BBR_TSTMP_RAISES 1110 /* Can a timestamp measurement raise the b/w */ -#define TCP_BBR_POLICER_DETECT 1111 /* Turn on/off google mode policer detection */ -#define TCP_BBR_RACK_INIT_RATE 1112 /* Set an initial pacing rate for when we have no b/w in kbits per sec */ -#define TCP_RACK_RR_CONF 1113 /* Rack rapid recovery configuration control*/ -#define TCP_RACK_CHEAT_NOT_CONF_RATE TCP_RACK_RR_CONF -#define TCP_RACK_GP_INCREASE_CA 1114 /* GP increase for Congestion Avoidance */ -#define TCP_RACK_GP_INCREASE_SS 1115 /* GP increase for Slow Start */ -#define TCP_RACK_GP_INCREASE_REC 1116 /* GP increase for Recovery */ -#define TCP_RACK_FORCE_MSEG 1117 /* Override to use the user set max-seg value */ -#define TCP_RACK_PACE_RATE_CA 1118 /* Pacing rate for Congestion Avoidance */ -#define TCP_RACK_PACE_RATE_SS 1119 /* Pacing rate for Slow Start */ -#define TCP_RACK_PACE_RATE_REC 1120 /* Pacing rate for Recovery */ -#define TCP_NO_PRR 1122 /* If pacing, don't use prr */ -#define TCP_RACK_NONRXT_CFG_RATE 1123 /* In recovery does a non-rxt use the cfg rate */ -#define TCP_SHARED_CWND_ENABLE 1124 /* Use a shared cwnd if allowed */ -#define TCP_TIMELY_DYN_ADJ 1125 /* Do we attempt dynamic multipler adjustment with timely. */ -#define TCP_RACK_NO_PUSH_AT_MAX 1126 /* For timely do not push if we are over max rtt */ -#define TCP_RACK_PACE_TO_FILL 1127 /* If we are not in recovery, always pace to fill the cwnd in 1 RTT */ -#define TCP_SHARED_CWND_TIME_LIMIT 1128 /* we should limit to low time values the scwnd life */ -#define TCP_RACK_PROFILE 1129 /* Select a profile that sets multiple options */ -#define TCP_HDWR_RATE_CAP 1130 /* Allow hardware rates to cap pacing rate */ -#define TCP_PACING_RATE_CAP 1131 /* Highest rate allowed in pacing in bytes per second (uint64_t) */ -#define TCP_HDWR_UP_ONLY 1132 /* Allow the pacing rate to climb but not descend (with the exception of fill-cw */ -#define TCP_RACK_ABC_VAL 1133 /* Set a local ABC value different then the system default */ -#define TCP_REC_ABC_VAL 1134 /* Do we use the ABC value for recovery or the override one from sysctl */ -#define TCP_RACK_MEASURE_CNT 1135 /* How many measurements are required in GP pacing */ -#define TCP_DEFER_OPTIONS 1136 /* Defer options until the proper number of measurements occur, does not defer TCP_RACK_MEASURE_CNT */ -#define TCP_FAST_RSM_HACK 1137 /* Not used in modern stacks */ -#define TCP_RACK_PACING_BETA 1138 /* Changing the beta for pacing */ -#define TCP_RACK_PACING_BETA_ECN 1139 /* Changing the beta for ecn with pacing */ -#define TCP_RACK_TIMER_SLOP 1140 /* Set or get the timer slop used */ -#define TCP_RACK_DSACK_OPT 1141 /* How do we setup rack timer DSACK options bit 1/2 */ -#define TCP_RACK_ENABLE_HYSTART 1142 /* Do we allow hystart in the CC modules */ -#define TCP_RACK_SET_RXT_OPTIONS 1143 /* Set the bits in the retransmit options */ -#define TCP_RACK_HI_BETA 1144 /* Turn on/off high beta */ -#define TCP_RACK_SPLIT_LIMIT 1145 /* Set a split limit for split allocations */ -#define TCP_RACK_PACING_DIVISOR 1146 /* Pacing divisor given to rate-limit code for burst sizing */ -#define TCP_RACK_PACE_MIN_SEG 1147 /* Pacing min seg size rack will use */ -#define TCP_RACK_DGP_IN_REC 1148 /* Do we use full DGP in recovery? */ -/* #define TCP_POLICER_DETECT 1149 not used */ -#define TCP_HYBRID_PACING 1150 /* Hybrid pacing enablement */ -#define TCP_PACING_DND 1151 /* When pacing with rr_config=3 can sacks disturb us */ -#define TCP_SS_EEXIT 1152 /* Do we do early exit from slowtart if no b/w growth */ -#define TCP_DGP_UPPER_BOUNDS 1153 /* SS and CA upper bound in percentage */ -#define TCP_NO_TIMELY 1154 /* Disable/enable Timely */ -#define TCP_HONOR_HPTS_MIN 1155 /* Do we honor hpts min to */ -#define TCP_REC_IS_DYN 1156 /* Do we allow timely to change recovery multiplier? */ -#define TCP_SIDECHAN_DIS 1157 /* Disable/enable the side-channel */ -#define TCP_FILLCW_RATE_CAP 1158 /* Set a cap for DGP's fillcw */ -/* #define TCP_POLICER_MSS 1159 not used */ -#define TCP_STACK_SPEC_INFO 1160 /* Get stack specific information (if present) */ -#define RACK_CSPR_IS_FCC 1161 -#define TCP_GP_USE_LTBW 1162 /* how we use lt_bw 0=not, 1=min, 2=max */ +#define TCP_REUSPORT_LB_NUMA 1026 /* set listen socket numa domain */ +#define TCP_RACK_MBUF_QUEUE 1050 /* Do we allow mbuf queuing if supported */ +#define TCP_RACK_PROP 1051 /* Not used */ +#define TCP_RACK_TLP_REDUCE 1052 /* RACK TLP cwnd reduction (bool) */ +#define TCP_RACK_PACE_REDUCE 1053 /* RACK Pacingv reduction factor (divisor) */ +#define TCP_RACK_PACE_MAX_SEG 1054 /* Max TSO size we will send */ +#define TCP_RACK_PACE_ALWAYS 1055 /* Use the always pace method */ +#define TCP_RACK_PROP_RATE 1056 /* Not used */ +#define TCP_RACK_PRR_SENDALOT 1057 /* Allow PRR to send more than one seg */ +#define TCP_RACK_MIN_TO 1058 /* Minimum time between rack t-o's in ms */ +#define TCP_RACK_EARLY_RECOV 1059 /* Not used */ +#define TCP_RACK_EARLY_SEG 1060 /* If early recovery max segments */ +#define TCP_RACK_REORD_THRESH 1061 /* RACK reorder threshold (shift amount) */ +#define TCP_RACK_REORD_FADE 1062 /* Does reordering fade after ms time */ +#define TCP_RACK_TLP_THRESH 1063 /* RACK TLP theshold i.e. srtt+(srtt/N) */ +#define TCP_RACK_PKT_DELAY 1064 /* RACK added ms i.e. rack-rtt + reord + N */ +#define TCP_RACK_TLP_INC_VAR 1065 /* Does TLP include rtt variance in t-o */ +#define TCP_BBR_IWINTSO 1067 /* Initial TSO window for BBRs first sends */ +#define TCP_BBR_RECFORCE 1068 /* Enter recovery force out a segment disregard pacer no longer valid */ +#define TCP_BBR_STARTUP_PG 1069 /* Startup pacing gain */ +#define TCP_BBR_DRAIN_PG 1070 /* Drain pacing gain */ +#define TCP_BBR_RWND_IS_APP 1071 /* Rwnd limited is considered app limited */ +#define TCP_BBR_PROBE_RTT_INT 1072 /* How long in useconds between probe-rtt */ +#define TCP_BBR_ONE_RETRAN 1073 /* Is only one segment allowed out during retran */ +#define TCP_BBR_STARTUP_LOSS_EXIT 1074 /* Do we exit a loss during startup if not 20% incr */ +#define TCP_BBR_USE_LOWGAIN 1075 /* lower the gain in PROBE_BW enable */ +#define TCP_BBR_LOWGAIN_THRESH 1076 /* Unused after 2.3 morphs to TSLIMITS >= 2.3 */ +#define TCP_BBR_TSLIMITS 1076 /* Do we use experimental Timestamp limiting for our algo */ +#define TCP_BBR_LOWGAIN_HALF 1077 /* Unused after 2.3 */ +#define TCP_BBR_PACE_OH 1077 /* Reused in 4.2 for pacing overhead setting */ +#define TCP_BBR_LOWGAIN_FD 1078 /* Unused after 2.3 */ +#define TCP_BBR_HOLD_TARGET 1078 /* For 4.3 on */ +#define TCP_BBR_USEDEL_RATE 1079 /* Enable use of delivery rate for loss recovery */ +#define TCP_BBR_MIN_RTO 1080 /* Min RTO in milliseconds */ +#define TCP_BBR_MAX_RTO 1081 /* Max RTO in milliseconds */ +#define TCP_BBR_REC_OVER_HPTS 1082 /* Recovery override htps settings 0/1/3 */ +#define TCP_BBR_UNLIMITED 1083 /* Not used before 2.3 and morphs to algorithm >= 2.3 */ +#define TCP_BBR_ALGORITHM 1083 /* What measurement algo does BBR use netflix=0, google=1 */ +#define TCP_BBR_DRAIN_INC_EXTRA 1084 /* Does the 3/4 drain target include the extra gain */ +#define TCP_BBR_STARTUP_EXIT_EPOCH 1085 /* what epoch gets us out of startup */ +#define TCP_BBR_PACE_PER_SEC 1086 +#define TCP_BBR_PACE_DEL_TAR 1087 +#define TCP_BBR_PACE_SEG_MAX 1088 +#define TCP_BBR_PACE_SEG_MIN 1089 +#define TCP_BBR_PACE_CROSS 1090 +#define TCP_RACK_IDLE_REDUCE_HIGH 1092 /* Reduce the highest cwnd seen to IW on idle */ +#define TCP_RACK_MIN_PACE 1093 /* Do we enforce rack min pace time */ +#define TCP_RACK_MIN_PACE_SEG 1094 /* If so what is the seg threshould */ +#define TCP_RACK_GP_INCREASE 1094 /* After 4.1 its the GP increase in older rack */ +#define TCP_RACK_TLP_USE 1095 +#define TCP_BBR_ACK_COMP_ALG 1096 /* Not used */ +#define TCP_BBR_TMR_PACE_OH 1096 /* Recycled in 4.2 */ +#define TCP_BBR_EXTRA_GAIN 1097 +#define TCP_RACK_DO_DETECTION 1097 /* Recycle of extra gain for rack, attack detection */ +#define TCP_BBR_RACK_RTT_USE 1098 /* what RTT should we use 0, 1, or 2? */ +#define TCP_BBR_RETRAN_WTSO 1099 +#define TCP_DATA_AFTER_CLOSE 1100 +#define TCP_BBR_PROBE_RTT_GAIN 1101 +#define TCP_BBR_PROBE_RTT_LEN 1102 +#define TCP_BBR_SEND_IWND_IN_TSO 1103 /* Do we burst out whole iwin size chunks at start? */ +#define TCP_BBR_USE_RACK_RR 1104 /* Do we use the rack rapid recovery for pacing rxt's */ +#define TCP_BBR_USE_RACK_CHEAT TCP_BBR_USE_RACK_RR /* Compat. */ +#define TCP_BBR_HDWR_PACE 1105 /* Enable/disable hardware pacing */ +#define TCP_BBR_UTTER_MAX_TSO 1106 /* Do we enforce an utter max TSO size */ +#define TCP_BBR_EXTRA_STATE 1107 /* Special exit-persist catch up */ +#define TCP_BBR_FLOOR_MIN_TSO 1108 /* The min tso size */ +#define TCP_BBR_MIN_TOPACEOUT 1109 /* Do we suspend pacing until */ +#define TCP_BBR_TSTMP_RAISES 1110 /* Can a timestamp measurement raise the b/w */ +#define TCP_BBR_POLICER_DETECT 1111 /* Turn on/off google mode policer detection */ +#define TCP_BBR_RACK_INIT_RATE 1112 /* Set an initial pacing rate for when we have no b/w in kbits per sec */ +#define TCP_RACK_RR_CONF 1113 /* Rack rapid recovery configuration control*/ +#define TCP_RACK_CHEAT_NOT_CONF_RATE TCP_RACK_RR_CONF +#define TCP_RACK_GP_INCREASE_CA 1114 /* GP increase for Congestion Avoidance */ +#define TCP_RACK_GP_INCREASE_SS 1115 /* GP increase for Slow Start */ +#define TCP_RACK_GP_INCREASE_REC 1116 /* GP increase for Recovery */ +#define TCP_RACK_FORCE_MSEG 1117 /* Override to use the user set max-seg value */ +#define TCP_RACK_PACE_RATE_CA 1118 /* Pacing rate for Congestion Avoidance */ +#define TCP_RACK_PACE_RATE_SS 1119 /* Pacing rate for Slow Start */ +#define TCP_RACK_PACE_RATE_REC 1120 /* Pacing rate for Recovery */ +#define TCP_NO_PRR 1122 /* If pacing, don't use prr */ +#define TCP_RACK_NONRXT_CFG_RATE 1123 /* In recovery does a non-rxt use the cfg rate */ +#define TCP_SHARED_CWND_ENABLE 1124 /* Use a shared cwnd if allowed */ +#define TCP_TIMELY_DYN_ADJ 1125 /* Do we attempt dynamic multipler adjustment with timely. */ +#define TCP_RACK_NO_PUSH_AT_MAX 1126 /* For timely do not push if we are over max rtt */ +#define TCP_RACK_PACE_TO_FILL 1127 /* If we are not in recovery, always pace to fill the cwnd in 1 RTT */ +#define TCP_SHARED_CWND_TIME_LIMIT 1128 /* we should limit to low time values the scwnd life */ +#define TCP_RACK_PROFILE 1129 /* Select a profile that sets multiple options */ +#define TCP_HDWR_RATE_CAP 1130 /* Allow hardware rates to cap pacing rate */ +#define TCP_PACING_RATE_CAP 1131 /* Highest rate allowed in pacing in bytes per second (uint64_t) */ +#define TCP_HDWR_UP_ONLY 1132 /* Allow the pacing rate to climb but not descend (with the exception of fill-cw */ +#define TCP_RACK_ABC_VAL 1133 /* Set a local ABC value different then the system default */ +#define TCP_REC_ABC_VAL 1134 /* Do we use the ABC value for recovery or the override one from sysctl */ +#define TCP_RACK_MEASURE_CNT 1135 /* How many measurements are required in GP pacing */ +#define TCP_DEFER_OPTIONS 1136 /* Defer options until the proper number of measurements occur, does not defer TCP_RACK_MEASURE_CNT */ +#define TCP_FAST_RSM_HACK 1137 /* Not used in modern stacks */ +#define TCP_RACK_PACING_BETA 1138 /* Changing the beta for pacing */ +#define TCP_RACK_PACING_BETA_ECN 1139 /* Changing the beta for ecn with pacing */ +#define TCP_RACK_TIMER_SLOP 1140 /* Set or get the timer slop used */ +#define TCP_RACK_DSACK_OPT 1141 /* How do we setup rack timer DSACK options bit 1/2 */ +#define TCP_RACK_ENABLE_HYSTART 1142 /* Do we allow hystart in the CC modules */ +#define TCP_RACK_SET_RXT_OPTIONS 1143 /* Set the bits in the retransmit options */ +#define TCP_RACK_HI_BETA 1144 /* Turn on/off high beta */ +#define TCP_RACK_SPLIT_LIMIT 1145 /* Set a split limit for split allocations */ +#define TCP_RACK_PACING_DIVISOR 1146 /* Pacing divisor given to rate-limit code for burst sizing */ +#define TCP_RACK_PACE_MIN_SEG 1147 /* Pacing min seg size rack will use */ +#define TCP_RACK_DGP_IN_REC 1148 /* Do we use full DGP in recovery? */ + /* unused; was TCP_POLICER_DETECT */ +#define TCP_HYBRID_PACING 1150 /* Hybrid pacing enablement */ +#define TCP_PACING_DND 1151 /* When pacing with rr_config=3 can sacks disturb us */ +#define TCP_SS_EEXIT 1152 /* Do we do early exit from slowtart if no b/w growth */ +#define TCP_DGP_UPPER_BOUNDS 1153 /* SS and CA upper bound in percentage */ +#define TCP_NO_TIMELY 1154 /* Disable/enable Timely */ +#define TCP_HONOR_HPTS_MIN 1155 /* Do we honor hpts min to */ +#define TCP_REC_IS_DYN 1156 /* Do we allow timely to change recovery multiplier? */ +#define TCP_SIDECHAN_DIS 1157 /* Disable/enable the side-channel */ +#define TCP_FILLCW_RATE_CAP 1158 /* Set a cap for DGP's fillcw */ + /* unused; was TCP_POLICER_MSS */ +#define TCP_STACK_SPEC_INFO 1160 /* Get stack specific information (if present) */ +#define RACK_CSPR_IS_FCC 1161 +#define TCP_GP_USE_LTBW 1162 /* how we use lt_bw 0=not, 1=min, 2=max */ /* Start of reserved space for third-party user-settable options. */ From nobody Tue Sep 10 12:04:35 2024 X-Original-To: dev-commits-src-main@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 4X32SN0n0Dz5WLvq; Tue, 10 Sep 2024 12:04: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X32SM75Vwz41Zv; Tue, 10 Sep 2024 12:04:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725969876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hKwbbiJkm6aLSot88cFPY59jFiUmxN50hF77EXzqGsQ=; b=Bg5WaNzClpDp35fSJkZgaqqyDrvDClQZ/HJhwXT5xZ3oQuLZm5wO8iyZrD3au3AfJ6dUFh MvkAPdb2BGtxSZCheRx3VstKwuYAEJk/swVO++dWqbSngnZ8JQre+ooeiVfDy9IPwsEEsQ uN+Ye6ySCIAOqs4p4LK4kKkxCgPF7Y3/gpOFsQlrZC1779WvV8gVF6pgQiOtkPZz1g43fe Qc6sqGstNhk5EUqnnj/xJNCtpspBRn22erQ8si/lGsCKXLFWy9uXG8mGvDHX2kx6n8DZ1t 2fOo4SnDcA32m6hEoepfDFlsuHkWFvAWVHoTBQlIZ1W/BW05DxvKkazE/eXMgA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725969876; a=rsa-sha256; cv=none; b=Tp/HWMT/5tlZE7qOpFofSwiwcfP3/QEUGOd30JKHSNGB41KSML2bb0tUPAJCBJiViJGIp3 sxIOKCODJjHRrGyc2ngE/iY6rK1cJqq1FvcgnGt1rF0vIVNoF4NZX+BpmlD3uSBEWtE6Vw k4KJslS/viVTcH2g4AthsWhoGK5OGFFkCNY2MdvPDOw9joIzqTS1l3CiJFJqirB2DVcwZ8 qTHR2URFQVNJeE+gcZbr5EDxsJTcUUxIIBhxiga5PIDvqnmpUH2a+6+kpCfvMW5yhozSN/ GfL210alEBGxms0BuiAivO4bXkPxs/mKd0xsbhUHJl08tEvigQ3bUlT2GE/Yyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725969876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hKwbbiJkm6aLSot88cFPY59jFiUmxN50hF77EXzqGsQ=; b=FhOscs+v9rmtUBVyel1oDUm2E07yJhfPYze2EL3UyP/J0bKhXpCzUyIIRWqbCCUfVDE9pd CgndPJpq+092JIwIyefeAo/dEvbVviZQ6u5O96wNBdQoOViO6h1hCIPlrtC6EE979aM/29 B7HTiq6U8rdfyiPbCABsBkZYOxSuCzm8xdpFu3X8W7t8E0IzUnbSelAaN3rL8eqUmRVZzb 70V48WOjFoAyuzsC4vt8Lu+9iqWVZz0B5MdkQaPesCDjTsGHVeMCqjTDcj25zt7LLEDwr+ pwkfvYYlB2W6fq2nd1XN13S1TT2INue9d7sG7QLmcmzDM0uKbvpQd3H4ZKWGSg== 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 4X32SM6hSpzmgt; Tue, 10 Sep 2024 12:04:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AC4Z2I092186; Tue, 10 Sep 2024 12:04:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AC4Zx2092183; Tue, 10 Sep 2024 12:04:35 GMT (envelope-from git) Date: Tue, 10 Sep 2024 12:04:35 GMT Message-Id: <202409101204.48AC4Zx2092183@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: da1a1ad062a2 - main - if_ovpn: remove unused argument List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: da1a1ad062a260f3518bdd1bae94ea644cef2a22 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=da1a1ad062a260f3518bdd1bae94ea644cef2a22 commit da1a1ad062a260f3518bdd1bae94ea644cef2a22 Author: Kristof Provost AuthorDate: 2024-09-09 09:10:35 +0000 Commit: Kristof Provost CommitDate: 2024-09-10 12:03:56 +0000 if_ovpn: remove unused argument Reviewed by: zlei Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46615 --- sys/net/if_ovpn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/if_ovpn.c b/sys/net/if_ovpn.c index ee097cfa24b3..349fa5b7cd13 100644 --- a/sys/net/if_ovpn.c +++ b/sys/net/if_ovpn.c @@ -379,7 +379,7 @@ ovpn_has_peers(struct ovpn_softc *sc) } static void -ovpn_rele_so(struct ovpn_softc *sc, struct ovpn_kpeer *peer) +ovpn_rele_so(struct ovpn_softc *sc) { bool has_peers; @@ -489,7 +489,7 @@ ovpn_peer_release_ref(struct ovpn_kpeer *peer, bool locked) ovpn_free_kkey_dir(peer->keys[i].decrypt); } - ovpn_rele_so(sc, peer); + ovpn_rele_so(sc); callout_stop(&peer->ping_send); callout_stop(&peer->ping_rcv); From nobody Tue Sep 10 12:29:22 2024 X-Original-To: dev-commits-src-main@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 4X330y6WBzz5WPv3; Tue, 10 Sep 2024 12:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X330y5yRsz45YB; Tue, 10 Sep 2024 12:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725971362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IiX6E9dTuYHPBYNGs8sK+aatt0tZBvYCvehiRhKLoLw=; b=yEUKT2Z5pRvOpEINdFeJ+tK8QJA/YgQzPuFL9pnBI5DN7v6fc7H6x8ZPN+7V3uPkf84fdJ kuUB+3ebGrYpv/vTpvVeumqqM3qjs/4x5xQfNr0Fs+R9HP379hVtdETNIvRhf/Mt6PHfFQ j/1o4zvQm2TWSb/zBKJ6oHkF6A09i2bockPyb6O6sG/78523hl2Olr6c31wwiuo3jnMT1L KqFBsL976bsNwNJdtKrCV+FnGP9nOGL60UVLQb3JKd4TBVbR8JoaPkqJw2OU0+Ciy5Iah2 yjRAUDMH4U3PiOw6oE2ntez+yqvixpGuecWuBI00oprcCl3jq9uXBXCvUzTIVw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725971362; a=rsa-sha256; cv=none; b=lt2mo44xmW5ZNnAO7KkbulDk7P9w6CJsw0UnPerOoNgeaeXTcyZpeMVWq0FBhXEoHVpulH HKp3NSC3jcooax76mPS7CBv3BUJNJ108NI7rJrDIUMuGEuzGrv7Tvi6lQDLYKm2jWIpwN5 S+8AqZbLSLN5WSbNQhIjQverFJs6dD7I7uvDFmjPxZYxxEjZ19SF5IcPona1sq/LbyPZBt ImBhk5i6NJnRywPYq+vwjN5CSSykPLxTTKnkhJMp4bCFZnubCALulbzEpL7QgoYi1tmNTF IR1I+H+7osC59QdHgRt9aJ7WKjWdWRjSTmmgpek6OD+iAh7FwCxLwYHnLQUUuA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725971362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IiX6E9dTuYHPBYNGs8sK+aatt0tZBvYCvehiRhKLoLw=; b=X/WdeynAB96atszpYbFa2rnHU8LUVj1Cb6RA0Ut1Pj2uq8t8sk/6nwMrNB/mnn7PJQAYRO HYNyCtOquB44lkclV3wIbFwd48xfufRGOia888h0HJdQK4/exTqBTGvcwvPbgfsIZSJJhp cuqDH2jRqaLv7EU1GRqtlEdP6RSXAcwlE/cgZ8SlcX2WtoiZXDaChMuOuPd5AYZlhGT1SH 8sQBuUgXWMaIMHim8pBv28tFYGMG98YDQtuubVOwO+v2AGxQvF2u6tTn3qEUtvZLIHtFgs HtgC41F2z7Q+XTak/oucfjf1qxLMQFBFwO8sNePKELrNrm0XNJEleWYndH2Z3g== 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 4X330y5TylzmjL; Tue, 10 Sep 2024 12:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48ACTMvB026553; Tue, 10 Sep 2024 12:29:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48ACTMcT026550; Tue, 10 Sep 2024 12:29:22 GMT (envelope-from git) Date: Tue, 10 Sep 2024 12:29:22 GMT Message-Id: <202409101229.48ACTMcT026550@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 355ebf80b1ed - main - date: Documentation nits. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 355ebf80b1ed98cf7ca9c51ce7e3e6dcb376853d Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=355ebf80b1ed98cf7ca9c51ce7e3e6dcb376853d commit 355ebf80b1ed98cf7ca9c51ce7e3e6dcb376853d Author: Dag-Erling Smørgrav AuthorDate: 2024-09-10 12:28:32 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-09-10 12:29:14 +0000 date: Documentation nits. * Fix spurious capitalization. * Fix inconsistent quoting. * Use `Dq` rather than ASCII double quotes. MFC after: 3 days Sponsored by: Klara, Inc. Reviewed by: 0mp Differential Revision: https://reviews.freebsd.org/D46622 --- bin/date/date.1 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/date/date.1 b/bin/date/date.1 index 29cde37ca904..62d28a7df0a0 100644 --- a/bin/date/date.1 +++ b/bin/date/date.1 @@ -29,7 +29,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 2, 2024 +.Dd September 10, 2024 .Dt DATE 1 .Os .Sh NAME @@ -538,8 +538,11 @@ Finally the command .Pp .Dl "TZ=America/Los_Angeles date -z Europe/Paris -j 0900" .Pp -will print the time in the "Europe/Paris" timezone when it is 9:00 in The -America/Los_Angeles timezone. +will print the time in the +.Dq Europe/Paris +timezone when it is 9:00 in the +.Dq America/Los_Angeles +timezone. .Sh DIAGNOSTICS It is invalid to combine the .Fl I From nobody Tue Sep 10 13:44:08 2024 X-Original-To: dev-commits-src-main@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 4X34gD46KQz5WYJg; Tue, 10 Sep 2024 13:44: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X34gD3Xytz4LWq; Tue, 10 Sep 2024 13:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725975848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dNZtryEVAcuIljL0xzqiAlA+jtFByfXOjBcO6odIDKE=; b=XKl2wDhOFxgvMLtfuUPs7yj7C+u/Vpc7S0fU3AeVs/oyGTCgfs8EI9CRWACixcU+M9U9gt v9tDTd7WmiQZxcM7aRBjf2wZcJqyCouO3QRY3EoJmDTaFMFEy5uaFPq5UnBnlzHQWljcIO 3Q/VdzsG14FM90sxvFdiD2a/msOmk967jSek4L5nuykxY/KQa3aDDkQRntwWojfHXdrI69 BQ2S2g3+iV4M0e8OgIxd01hQTXHAOFoipj6/6otSM/t1XPDilXbOyZYZXl0facSXzGJZoI WdLWvVmvO7Wn4MTT9waa6GGBxl7YTyUk74Bv8g93qaUDHa+I0D6E2snL/Xx1bQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725975848; a=rsa-sha256; cv=none; b=i4xgCiri5o4j9bxVTMlMV6/oZRDpyikwhh6ukCmTJhFRb+LDE6TRJnJj4zpge76n3I+VDF jV7UNJleHUgzBu7PLj0ajt0UX60S+YP57K3l8Xyw0n8cCJsXcHLLS7slhSJi2VKVvLxB/u iOFmcurorCHymtyRuS8DKQLTRlxaxCemhgaE0oI/5tomVEpN4fUcjFqpNuU5dDin61gs5V D3imzgPo/xqx93H4eSpKETdjZ3e7UzCv7LEMLp5U/Fb5lrQgxRwTORKsnyuBnY0UNm1XDp 5cDNMhpPlcMQPhKUYsxvFzLXJLSotWeoN+JOU8AzvUxUfPuZs5OkxEaMZBwLIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725975848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dNZtryEVAcuIljL0xzqiAlA+jtFByfXOjBcO6odIDKE=; b=e1fGTl7wdKNybF+RGY5AjXiBc3o92uK6jZdNLxzqDQXGNyfupu7Q8f0P1NhkCgSRla0+Nl 4fTGfk0W75g+s8EVPYKuyqOq1BVmBVs15kAl60AOoopxDbLa8tMEJulyWo0q/QO6yhqUPa zS9hhQonDW+nwp+4a7DL4C+rXFez134ZMb3quapzHeqQxDF4Px/qfQ/iYfCLXiMrkM6Flu 8I/ixzx500M8NqKYcGtwBGvxJ7BGzjwCGpAB5UYpyIlej2EUGRXqY6aWO6el2YY4YjBoyq HH1cMsiwHZc19xi1YmUjNPtvuxGFz6aAoJb532w1ilbiYZvnQdxFsGip9Ytgbw== 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 4X34gD380nzqNt; Tue, 10 Sep 2024 13:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48ADi8M4060799; Tue, 10 Sep 2024 13:44:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48ADi8je060796; Tue, 10 Sep 2024 13:44:08 GMT (envelope-from git) Date: Tue, 10 Sep 2024 13:44:08 GMT Message-Id: <202409101344.48ADi8je060796@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 001ca4955e69 - main - zdb: fix build on 32bits List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 001ca4955e69b634c90b333861f134aaa64759c4 Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=001ca4955e69b634c90b333861f134aaa64759c4 commit 001ca4955e69b634c90b333861f134aaa64759c4 Author: Baptiste Daroussin AuthorDate: 2024-09-10 13:41:08 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-10 13:41:26 +0000 zdb: fix build on 32bits --- sys/contrib/openzfs/cmd/zdb/zdb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/contrib/openzfs/cmd/zdb/zdb.c b/sys/contrib/openzfs/cmd/zdb/zdb.c index aa80c46e6079..9dbae0168e5d 100644 --- a/sys/contrib/openzfs/cmd/zdb/zdb.c +++ b/sys/contrib/openzfs/cmd/zdb/zdb.c @@ -1968,7 +1968,7 @@ dump_ddt_log(ddt_t *ddt) if (count == 0) continue; - printf(DMU_POOL_DDT_LOG ": %lu log entries\n", + printf(DMU_POOL_DDT_LOG ": %" PRIu64 " log entries\n", zio_checksum_table[ddt->ddt_checksum].ci_name, n, count); if (dump_opt['D'] < 4) From nobody Tue Sep 10 14:59:30 2024 X-Original-To: dev-commits-src-main@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 4X36LB69FPz5Vxyc; Tue, 10 Sep 2024 14:59: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X36LB5SNtz4d1l; Tue, 10 Sep 2024 14:59:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725980370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/4w/XSJSrlkw6/58OgoSxLl+GTiHNtAeIK4xcE4oiJA=; b=A6PGHZOyFSroq4KWg8sk2EoKFvTSlSJQ2YQ0gQEY3X7WeXMAJGVNYlhLlLDdXX8WHbfFvR TGa/RKev3smRaZOzWaZ1QflzXAxubv4t5tQejlxUtwyNhERhoFKXvA1tJSOLWzWYwlM47X +o7+i8ADpRijuhtVJ0ZB8O8VymWzgkQ7AEfaUT1k4ZrILlO0B7rt34EZ80zQLrySKogZD/ 6mooyjUqfRTG/07vlvi7J0f0eVSoaelX3XfTaAE8EnUyB2Agum1iSt97dI6AHm+zH6sHnK AdjIKRpjXQ8kRq3MXVjWrl2Yta7sk7pBWM/WiwkfElRFSUkihIlCOBtpSncqGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725980370; a=rsa-sha256; cv=none; b=na86SVJTjdFr1Q1CSPa0nzg29RbHUo4QiDWVL+85ZEwF4L9Yd55tll+E83PWmRCm/zjc0Y J+nnZPcKtYp4jfbZUMhGYEkfjAXlEr++HaSl94uKBvOMZtBJb/EguhWIVusCPwTaJ0m5NX 8DIXr3RuQijBlRIA6PkbIkeCD9+v0VM0zxIxk+B/Z1HTqLIDmOTg2yksKrnybZ2CLo/9vj h00t3LFTk95gRfDewG5MlKd7IZTnw66hhsLZLG5RMqkDMxYqIVnF+UP47Oyjosj4twVGxq WLt1UlbPgU9tvrvTV4YNe4CbwsR0iLjpgZeFqxfVcUwPoPC0KTudHcvgUf2JZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725980370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/4w/XSJSrlkw6/58OgoSxLl+GTiHNtAeIK4xcE4oiJA=; b=lYC2TqJYzN6EY8vp9x1yPkpNrtsfKWz2fcgmW/sWpdjUL+eMCLCQi2uzeo5PEKuH8LOj/M lXD/weOu56U5kojHqg4hbRJ3vWWaTBKeqPSr8uX5fcjlBZf+Ny+eRYkrh7M77vnJ8aPQtf /qyZTzU1wMX+s0WbWby1oWWQ+M3JGM4vIMDDRN0SejrXM9X9CLR/aznXHTfaA6tOb2BpIR YeNRYTm1ULK6mnsWMOu5bVLhhQBCgLYQXGd17zewgTHJkTbgAjso4Ow/zCZvkMhnszkUfB uttgZEe4VnHSHC3ng9g0JLVeIgYlq+l0dOSXSSO5he2suuruCamp17AZ4C+wTQ== 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 4X36LB4l3Tzs9b; Tue, 10 Sep 2024 14:59:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AExUGb080542; Tue, 10 Sep 2024 14:59:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AExUiI080539; Tue, 10 Sep 2024 14:59:30 GMT (envelope-from git) Date: Tue, 10 Sep 2024 14:59:30 GMT Message-Id: <202409101459.48AExUiI080539@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: 339a1977c324 - main - pf: Add a sysctl to limit work done for rdr source port rewriting List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 339a1977c32414f3d23733504955245ca6f3802d Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=339a1977c32414f3d23733504955245ca6f3802d commit 339a1977c32414f3d23733504955245ca6f3802d Author: Mark Johnston AuthorDate: 2024-09-10 14:33:47 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 14:58:19 +0000 pf: Add a sysctl to limit work done for rdr source port rewriting It was pointed out that the current approach of exhaustively searching for a free source port might be very time consuming. Limit the amount of work that we might do before giving up. Reviewed by: kp Reported by: Eirik Øverby MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Modirum Differential Revision: https://reviews.freebsd.org/D46495 --- share/man/man4/pf.4 | 7 ++++++- share/man/man5/pf.conf.5 | 6 +++++- sys/netpfil/pf/pf_lb.c | 18 ++++++++++++++++-- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/share/man/man4/pf.4 b/share/man/man4/pf.4 index 3855d07faead..92e1a6fdf87b 100644 --- a/share/man/man4/pf.4 +++ b/share/man/man4/pf.4 @@ -102,8 +102,13 @@ This tells .Nm to also filter on the loopback output hook. This is typically used to allow redirect rules to adjust the source address. -.It net.pf.request_maxcount +.It Va net.pf.request_maxcount The maximum number of items in a single ioctl call. +.It Va net.pf.rdr_srcport_rewrite_tries +The maximum number of times to try and find a free source port when handling +redirects. +Such rules are typically applied to external traffic, so an exhaustive search +may be too expensive. .El .Pp Read only diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 index 5aa936d509ed..733b00cc6732 100644 --- a/share/man/man5/pf.conf.5 +++ b/share/man/man5/pf.conf.5 @@ -1407,7 +1407,11 @@ A .Ar rdr rule may cause the source port to be modified if doing so avoids a conflict with an existing connection. -A random source port in the range 50001-65535 is chosen in this case. +A random source port in the range 50001-65535 is chosen in this case; to +avoid excessive CPU consumption, the number of searches for a free port is +limited by the +.Va net.pf.rdr_srcport_rewrite_tries +sysctl. Port numbers are never translated with a .Ar binat rule. diff --git a/sys/netpfil/pf/pf_lb.c b/sys/netpfil/pf/pf_lb.c index cdd68aaf5dab..dbd85d530bb7 100644 --- a/sys/netpfil/pf/pf_lb.c +++ b/sys/netpfil/pf/pf_lb.c @@ -52,6 +52,13 @@ #include #include +/* + * Limit the amount of work we do to find a free source port for redirects that + * introduce a state conflict. + */ +#define V_pf_rdr_srcport_rewrite_tries VNET(pf_rdr_srcport_rewrite_tries) +VNET_DEFINE_STATIC(int, pf_rdr_srcport_rewrite_tries) = 16; + #define DPFPRINTF(n, x) if (V_pf_status.debug >= (n)) printf x static void pf_hash(struct pf_addr *, struct pf_addr *, @@ -822,6 +829,7 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, break; case PF_RDR: { struct pf_state_key_cmp key; + int tries; uint16_t cut, low, high, nport; reason = pf_map_addr(pd->af, r, saddr, naddr, NULL, NULL, sn); @@ -873,11 +881,15 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, if (!pf_find_state_all_exists(&key, PF_OUT)) break; + tries = 0; + low = 50001; /* XXX-MJ PF_NAT_PROXY_PORT_LOW/HIGH */ high = 65535; cut = arc4random() % (1 + high - low) + low; for (uint32_t tmp = cut; - tmp <= high && tmp <= UINT16_MAX; tmp++) { + tmp <= high && tmp <= UINT16_MAX && + tries < V_pf_rdr_srcport_rewrite_tries; + tmp++, tries++) { key.port[0] = htons(tmp); if (!pf_find_state_all_exists(&key, PF_OUT)) { /* Update the source port. */ @@ -885,7 +897,9 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, goto out; } } - for (uint32_t tmp = cut - 1; tmp >= low; tmp--) { + for (uint32_t tmp = cut - 1; + tmp >= low && tries < V_pf_rdr_srcport_rewrite_tries; + tmp--, tries++) { key.port[0] = htons(tmp); if (!pf_find_state_all_exists(&key, PF_OUT)) { /* Update the source port. */ From nobody Tue Sep 10 14:59:31 2024 X-Original-To: dev-commits-src-main@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 4X36LD03Xqz5Vy6g; Tue, 10 Sep 2024 14:59: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X36LC62bYz4d8q; Tue, 10 Sep 2024 14:59:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725980371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=247H1fy2ZchnrPdgeuq88xM4dctCl/hOlZXJy5l7qJM=; b=JAEIqIBfvONrAo9M6dSP1W2pvujJAfWyhNdJ3pCNpkQgrGOIt3lFMGst6pKT7IFjpbvKFR dGHbqN/hXcwI1NPcvEFROih2P/lWb+MMZ9pDdMAKNuNpWIWJj744n3Tqb32XLsQK5a3Fck HZlex1FPewN/JI/eW4YeTiEKDgHBGhP3k/i0J3/o0KObwODTESja3YcB+DIaE7DJ4oopQk VwYOUuIqzWug9S6A4ropT10ob8CLLGClSFb0QORWXWNn0Z3pEcZ8yoLSO07tFRc0trnlom sybFpRk7yol7Rtyc1pjXo82f7CSCyJVzva2zu4POXeGM+wKzqLi25H8LDv5M4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725980371; a=rsa-sha256; cv=none; b=IsomuM5G/xlwf4iP/U8FfkhrdhkVlkCUhtiMBZ8WiDiiDvUYX4Ti/eD5Q2pJy+B8TDC89O VgXVVu1f7YDToAn8wyqlg9dlJ4TDF8sZxTqKm5grcn6CY5rYZNghueVUUG9Z0d8qSgXIdl me//sAdzjzJel8ScqXFqNDPx+w0d2vM3QXHoLn9rwWWHejlnolgQxsM3ZRMHultlaKcRyl q9l/tneJc33kcs5gMlpKbpoMI/7+1ceQ5hNZFnxUibwxfmZha3QPnA0/JJxJRFDquT11DB LA7seWBsweMIt7/k4e7qrG2XjV7SdHSQjCv01eeL7O68WFxW4vWZveUhr6wgDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725980371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=247H1fy2ZchnrPdgeuq88xM4dctCl/hOlZXJy5l7qJM=; b=QX4IOw34619NcEzSgZVUE4vmQ2JVsZygrYzfktd6t9odZcOBSYxnuuo5Le0PGVcxkOviTc 5T4SRPi6Gg1BiLGRLQLzG7gDlXSc7SgNFS+iA7otV7pKtarkXwmAr8RGeXsywRTgMwUCXO mSwJwyuN2tenYdntgtiHX37wh+JnLn/2WUXiOEYyprU8J1GqqrOpKVZUVhwpE+7naihW4j KAWeQBns0hXo+5NgzfNsAbZbnru6o2slrsiDeyoDvaGNOilUIyEfH6mNObDdtioTdIoaEL qpyFF/qsK6p/UNCe+7Nfcr0zs9PS7X10NxJ0wCsN6oMQSDa1+cwiBOhSfe1smQ== 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 4X36LC5fnhzrXp; Tue, 10 Sep 2024 14:59:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AExVPJ080590; Tue, 10 Sep 2024 14:59:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AExVSZ080587; Tue, 10 Sep 2024 14:59:31 GMT (envelope-from git) Date: Tue, 10 Sep 2024 14:59:31 GMT Message-Id: <202409101459.48AExVSZ080587@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: 9569fddd8d0e - main - pf: Let pf_state_insert() handle redirect state conflicts List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 9569fddd8d0e48211e67fdc63dd72eba83883525 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9569fddd8d0e48211e67fdc63dd72eba83883525 commit 9569fddd8d0e48211e67fdc63dd72eba83883525 Author: Mark Johnston AuthorDate: 2024-09-10 14:34:45 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 14:59:13 +0000 pf: Let pf_state_insert() handle redirect state conflicts When handling a redirect state conflict, pf_get_translation() tries modifying the source port to avoid it. If it fails to find a free port, the translation is aborted. Instead, if we fail to find a free source port, simply press on with the original source port and let pf_state_insert() handle the conflict as it pleases, rather than second-guessing what it will do. In particular, pf_state_insert() has special handling for TCP connections in a terminal state, and might succeed despite a state conflict. Reviewed by: kp MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Modirum Differential Revision: https://reviews.freebsd.org/D46612 --- sys/netpfil/pf/pf_lb.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sys/netpfil/pf/pf_lb.c b/sys/netpfil/pf/pf_lb.c index dbd85d530bb7..6541a42aa236 100644 --- a/sys/netpfil/pf/pf_lb.c +++ b/sys/netpfil/pf/pf_lb.c @@ -442,7 +442,7 @@ pf_map_addr(sa_family_t af, struct pf_krule *r, struct pf_addr *saddr, struct pf_addr *naddr, struct pfi_kkif **nkif, struct pf_addr *init_addr, struct pf_ksrc_node **sn) { - u_short reason = 0; + u_short reason = PFRES_MATCH; struct pf_kpool *rpool = &r->rpool; struct pf_addr *raddr = NULL, *rmask = NULL; struct pf_srchash *sh = NULL; @@ -908,10 +908,15 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, } } + /* + * We failed to find a match. Push on ahead anyway, let + * pf_state_insert() be the arbiter of whether the state + * conflict is tolerable. In particular, with TCP connections + * the state may be reused if the TCP state is terminal. + */ DPFPRINTF(PF_DEBUG_MISC, ("pf: RDR source port allocation failed\n")); - reason = PFRES_MAPFAILED; - goto notrans; + break; out: DPFPRINTF(PF_DEBUG_MISC, From nobody Tue Sep 10 15:31:24 2024 X-Original-To: dev-commits-src-main@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 4X37306Sy7z5W1yj; Tue, 10 Sep 2024 15:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X37305b63z4pVy; Tue, 10 Sep 2024 15:31:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725982284; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Nw7fPd4ie0ewG1YUDzo15mHQhP0ul1Bfcay5D63PjuI=; b=uqNbJOX8HhcrfP09h3ZEP466YZW2cTVmf6ywzRPT/lldzhZ4iI+9VrGsv4ZRzfDV8Q7UrQ pJQ+oY0pAR5Q6lG03isSCQ4/Y2p+L9MoVd6Q8bqJqF/JoETGkENAWPvmJrmUe7zUuvRDh9 BYMQSH1iY7wdhOy/pQ8fA1eGv5nuStFulnt0V39U/Y5gTgvfXF+i3ETxo/WhpZyTdeiP0A nx2YJ3DP5H3Ob97RaXgQZtR8bsi6OA1gHS/mBOQquSNDuZhnoqJ+gpyW1zQasM1UHuo+Rq q+yRUwCEi8YiH34tDdOnFiKIt4Go//dVwjLqiGVw45r1OkqTodzciKkaEu7Z9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725982284; a=rsa-sha256; cv=none; b=JdjmGWVUpreeOQpsn+i6/CKKyiZti8ZpN0h/rVv3EG9Ow/Bj9DpQGGy4iPfHAEX4Pjg20p ASUla9gYAcXhQc7aiYHcZKMagdv6+yCy7nhQpyQ5p2SbgQtqOTOCImHin9zbyZe4djce06 14u+9YF0I/C3gApddsIMVOlyZ08sknHn1dmgy8Vht3pgTmsfnHt6Bgi0jJT6got/BF3Dkf w4/WsisUlac5wWv5J7gOu5rb//Pp2Mtkrr2xxX25XWAVfWvqbwgh3A4GO0w5iS1Ju39YhN zp1Rf5CS3QR50IpeJTjKIHDMZGLvIn4VzzFgVI+prbF6jDcIjYEJZpWIe2SaXQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725982284; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Nw7fPd4ie0ewG1YUDzo15mHQhP0ul1Bfcay5D63PjuI=; b=wty127fpB93w22LyGaKXfq+GZnw379kPguW8hYTTwiQyaPMyDa77UG3gQFqPctwP+lS+3k RfVBqOaIhxRfo2FVFyLPpYbuC0T51ibhVijBj2cwka7Dy1N259iD+sU+RzZJSWQbGthcpO 3pKA2lmP2PXxsQu1UcYngEqkOlkGo9BN3RTvOsw7t1mdJNCEJX7mFzUubFFRAM8PSkl72d uzNhKQRXsRzIO5wl0YH1fQ1JDk2OBO7dYpHElHr/8Vw50ozHSTBkDKLTP9EBuF8oDIEET4 8r+FsndszoJqanKxYyo0Y9g0PZa7CgK1lQG9kbncgUahdwtKBcm7s5oBLPbh5w== 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 4X3730595YzsjG; Tue, 10 Sep 2024 15:31:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AFVOMV046176; Tue, 10 Sep 2024 15:31:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AFVOiw046173; Tue, 10 Sep 2024 15:31:24 GMT (envelope-from git) Date: Tue, 10 Sep 2024 15:31:24 GMT Message-Id: <202409101531.48AFVOiw046173@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: fd3d3240b0d7 - main - depend-cleanup.sh: Add a rule to work around abd_os.c dependency changes List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: fd3d3240b0d7e4fa790e3d2b6d4e055a52754f32 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=fd3d3240b0d7e4fa790e3d2b6d4e055a52754f32 commit fd3d3240b0d7e4fa790e3d2b6d4e055a52754f32 Author: Mark Johnston AuthorDate: 2024-09-10 15:29:39 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 15:29:39 +0000 depend-cleanup.sh: Add a rule to work around abd_os.c dependency changes Fixes incremental buildworld after the latest OpenZFS import. Fixes: e2df9bb44109 ("zfs: merge openzfs/zfs@b10992582") Sponsored by: Klara, Inc. --- tools/build/depend-cleanup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index b7231422c5ed..da3dd05c6c4d 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -182,3 +182,6 @@ if [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \ echo "removing rescue.mk without nvme_util.o" rm -f "$OBJTOP"/rescue/rescue/rescue.mk fi + +# 20240910 e2df9bb44109 +clean_dep cddl/lib/libzpool abd_os c From nobody Tue Sep 10 15:42:40 2024 X-Original-To: dev-commits-src-main@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 4X37J51yf4z5W3kT; Tue, 10 Sep 2024 15:42:45 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qv1-xf2e.google.com (mail-qv1-xf2e.google.com [IPv6:2607:f8b0:4864:20::f2e]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X37J50FS2z4smn; Tue, 10 Sep 2024 15:42:45 +0000 (UTC) (envelope-from markjdb@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-qv1-xf2e.google.com with SMTP id 6a1803df08f44-6c34dd6c21aso6414476d6.2; Tue, 10 Sep 2024 08:42:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725982963; x=1726587763; darn=freebsd.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=MKDv0+funX1K4gmCV5revGBVXD5bPCJOjg/Kf8Bukv0=; b=OSixyeuQIczF9sGf7bx90S2daQiwroxfITH9DBx9Ron/qMLGo2LhC8pvnBh6boFFud 4f7LRF6EtXy6M5PWOHLQgunMZGNLmyLSIIFao2PIfACktOP61uZtsG9tj4nSm/pQGgRy JAKkyeM9l+H0ngS0GIwphoXUmCxilGOG0IYVa3uUqDsY1dXODEk+adyJb831Y1JQppXM qgiBh/y/xzobr5An9IAb1QS8U+l+10+PxXK/XqTfpTQI/+MFHnjLK4g67VPylycqznw3 Ew01c6KUBoxSlnDcthAbemqXHvLvmXhwEBR6WrVtPCKZPPHQW7GhEr4pRVLIx0065eIc KmHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725982963; x=1726587763; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MKDv0+funX1K4gmCV5revGBVXD5bPCJOjg/Kf8Bukv0=; b=nhfMyv9lMaVRtOyHEr8rGa6FHvWLHv9d1PPUX7y8cThygSfuiEUuP2sgeS5fO551nb yLXLrg5csHiJlZQOnIGqygY+eW6FcsrhNQRT1SDei14Sf/KbF4pIamlHLuvqVL/NgO2C 1iDyIQZoJvpUSNv6WGuueJUpfOFepIi8I34eBRwqoAj+d2sbf6nHkWX0/KCW7f22/0t5 Z6yfW6lVvAliDvxEEO2L36eie9MfTduAknuh+d29lqDheX7teH+i2gFf65PonDdfFPQW NSlxbLkgtM8RXircypggmqhZd2udEh9xvJWa/cW3SUbsaIZmYOwddfaAAkx9tQHj5Sah q6VQ== X-Forwarded-Encrypted: i=1; AJvYcCUJ2Ya1G15D0eIeCQGbkgh3ScJQYXs1qPZO6LNY511LPVAxsswCDPvaFapn6iRgHP/rIV+MSHvYjPqvz0OPc/xsWUgxTiw=@freebsd.org, AJvYcCUoMsDPn3p/P2GN5FkjyvVc9ixznN13Ate3j0z0fT07SYQifM2gIu51RCJpvBIcNUIOIUA=@freebsd.org, AJvYcCVcs6X1YsOyanHc1HRoTEIXZ9ZZVnqxlQ3k0XtcgGhyaq/HiPY/QGtCmj24kddzNgj8YhA9C7+Upw58NjGBV/Xyj2Ni@freebsd.org, AJvYcCWLpOyesUVGVvyH87WvuEzDkyUOqHkEUelLVpY9tEiM70YvjXvH4yrn6I0V6m8K25D7aW6t48H+4UmdB4F2ehs=@freebsd.org X-Gm-Message-State: AOJu0Yxy+67S087klIWbst+ZdOyJjvLpfzSv2VOn8gmYkxKcIibtbZE3 4CPZbfPHHh0WnqjYiSeVwCmVdFXYSIcsbYuaGSeoDQUPhauFs94xk0ikWYy1 X-Google-Smtp-Source: AGHT+IHyKg7CABu1/rwKmgnneM3DhpqoFc4NkTjL43SAr+NuB1Zh3LvGKqedhMTgylNOZBRCgbwhuA== X-Received: by 2002:a05:6214:43c7:b0:6c5:50bb:d59d with SMTP id 6a1803df08f44-6c550bbd710mr79031356d6.37.1725982963596; Tue, 10 Sep 2024 08:42:43 -0700 (PDT) Received: from nuc (192-0-220-237.cpe.teksavvy.com. [192.0.220.237]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c53474d8e2sm30885846d6.87.2024.09.10.08.42.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Sep 2024 08:42:43 -0700 (PDT) Date: Tue, 10 Sep 2024 11:42:40 -0400 From: Mark Johnston To: Jessica Clarke Cc: Alexander Motin , FreeBSD User , Martin Matuska , "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Subject: Re: git: e2df9bb44109 - main - zfs: merge openzfs/zfs@b10992582 Message-ID: References: <202409091648.489GmCNu009544@gitrepo.freebsd.org> <20240909204632.78f3b525@thor.intern.walstatt.dynvpn.de> List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4X37J50FS2z4smn On Mon, Sep 09, 2024 at 07:58:59PM +0100, Jessica Clarke wrote: > On 9 Sep 2024, at 19:52, Alexander Motin wrote: > > > > On 09.09.2024 14:46, FreeBSD User wrote: > >> Am Mon, 9 Sep 2024 16:48:12 GMT > >> Martin Matuska schrieb: > >> the commit seems to breaks buildworld for me, somehow: > >> [...] > >> /usr/src/sys/contrib/openzfs/module/os/linux/zfs/abd_os.c:61:10: fatal error: > >> 'linux/kmap_compat.h' file not found 61 | #include > > > > I hit it also, but it has gone after I wiped the object directory and run a clean build. This commit uses different abd_os.c from different directory, and seems something is getting confused in the process. > > tools/build/depend-cleanup.sh needs to deal with > cddl/lib/libzpool/.depend.abd_os.* then (and libcompats). This should be done now in commit fd3d3240b0d7. (From what I see, libcompats are handled automatically when using clean_dep.) From nobody Tue Sep 10 16:06:31 2024 X-Original-To: dev-commits-src-main@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 4X37qp2w7Vz5W5XN for ; Tue, 10 Sep 2024 16:06:46 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X37qn6wlSz4vGZ for ; Tue, 10 Sep 2024 16:06:45 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2f74e613a10so3739881fa.1 for ; Tue, 10 Sep 2024 09:06:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725984404; x=1726589204; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T1Oqn/P34VNtbD6YylRDPEVDr4l9jmwzvxtn+eC3dws=; b=I+A8BN32SkqPJlYB/2JihaCGx2DBYnskfBH7FRX/z2jq2HZDjxbqpTq14K2FlRio0k FtJMBOO6RaUEhF8FVSzC9uD05k8Caqb5GFKvCTXft9gZnRnLMfFlxoIpMH6f/Uzo6hAj JpqWWpCfmY9L4Y5i8stYFhdowUUZbhsBRUaxaBwjwKGJbOh9yWc1+jrrghVev7L76ye8 LsVf/iwrU0kHsJoY2iJKhYj5y8TZeATTVOLv6VVUy4uIy1RumHZqVl/k74laRRIxuu5v lw3P8kPoad4crjyVAwQsOAc7kfed11LgXde+X9PQBasU+ax2RjnzX2RSmgzz52FHVRQA MGHg== X-Forwarded-Encrypted: i=1; AJvYcCUKeKWXDSlAmHWdGTsQkcWQzc4GXSrr3orF3dPR3rKPiuJVlxQH4YnjDRDHhVvy+bJo/9wTIh81SzaBznWad6pUjw/dGA==@freebsd.org X-Gm-Message-State: AOJu0Yy++IHsKA8Q4MxsKV7jX8+C8xzopTxNVVyy+lUdC26HmHABVy0i qXWEhIfr9C49bZN2yEWkl6y6G7sXCrJyqJmHc62dDE20BjmtlpvuQaf+1YerXE0= X-Google-Smtp-Source: AGHT+IEkyKLNkEfOxdjdzXiLmiIn1KO9tBYs4You5G6d5ItE7bsyGk2N1VuyPqn1CVT4rHAG5D77Ig== X-Received: by 2002:a05:651c:198d:b0:2f1:750d:53a7 with SMTP id 38308e7fff4ca-2f75a971718mr89863691fa.8.1725984402567; Tue, 10 Sep 2024 09:06:42 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.201]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3789564aea0sm9307011f8f.20.2024.09.10.09.06.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Sep 2024 09:06:41 -0700 (PDT) Content-Type: text/plain; charset=utf-8 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: git: fd3d3240b0d7 - main - depend-cleanup.sh: Add a rule to work around abd_os.c dependency changes From: Jessica Clarke In-Reply-To: <202409101531.48AFVOiw046173@gitrepo.freebsd.org> Date: Tue, 10 Sep 2024 17:06:31 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <65741638-EA13-4154-9013-E36D628E50D8@freebsd.org> References: <202409101531.48AFVOiw046173@gitrepo.freebsd.org> To: Mark Johnston X-Mailer: Apple Mail (2.3776.700.51) X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Queue-Id: 4X37qn6wlSz4vGZ On 10 Sep 2024, at 16:31, Mark Johnston wrote: >=20 > The branch main has been updated by markj: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3Dfd3d3240b0d7e4fa790e3d2b6d4e055a= 52754f32 >=20 > commit fd3d3240b0d7e4fa790e3d2b6d4e055a52754f32 > Author: Mark Johnston > AuthorDate: 2024-09-10 15:29:39 +0000 > Commit: Mark Johnston > CommitDate: 2024-09-10 15:29:39 +0000 >=20 > depend-cleanup.sh: Add a rule to work around abd_os.c dependency = changes >=20 > Fixes incremental buildworld after the latest OpenZFS import. >=20 > Fixes: e2df9bb44109 ("zfs: merge openzfs/zfs@b10992582") > Sponsored by: Klara, Inc. > --- > tools/build/depend-cleanup.sh | 3 +++ > 1 file changed, 3 insertions(+) >=20 > diff --git a/tools/build/depend-cleanup.sh = b/tools/build/depend-cleanup.sh > index b7231422c5ed..da3dd05c6c4d 100755 > --- a/tools/build/depend-cleanup.sh > +++ b/tools/build/depend-cleanup.sh > @@ -182,3 +182,6 @@ if [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \ > echo "removing rescue.mk without nvme_util.o" > rm -f "$OBJTOP"/rescue/rescue/rescue.mk > fi > + > +# 20240910 e2df9bb44109 > +clean_dep cddl/lib/libzpool abd_os c Won=E2=80=99t that also clean the new one given the source directory for = the file just changed, thereby rebuilding it every time? I think this needs a custom grep for the bad source dependency. Jess From nobody Tue Sep 10 16:08:10 2024 X-Original-To: dev-commits-src-main@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 4X37sR1mZ4z5W5nQ; Tue, 10 Sep 2024 16:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X37sR191Zz3wwJ; Tue, 10 Sep 2024 16:08:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725984491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9GiR0LxHI4YmB1mTWu/hqixX6Gowb0dtw/Ujxu/5hW0=; b=w810wvT97zQU4N0zEDht3ZJM86dHpYmXf9nMg/gxAIQ/PxJEHZwlxEUeVQtwAHz5RhhCtp hNlkxpPu69zGt7tZWFqVLsATsEqj409KfhEc19dQXw1PrPvJQ+j1RawJpzX33IN/62qa0Z s996j9yxEuE5YC9nSfVf06Ch9eHnPOhJut4z9HFf0Ec+y46lPd8LfwkTZEYBeDWkuD89o7 iK47MidY7N165+QFLPjDxSGgZv/bQW/hTmoLfbRbq4LmHUvVFIy8FT9p/IzmgnhNK7ItNt Rm1an1hzimUbigbdTkn+fvVs97/mr/Ml7GfYKgV+CjbmHbaQ1PrF07LSEZlA7g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725984491; a=rsa-sha256; cv=none; b=jafoGOimgSiBDEkjnwVg64vTbOQKpJenymBfXSU0suZXFJIlXD4hRZlU9hhyLRosTt9+8h 3nYyuNnri49IkgwZDGqgAAJnSyZcHecLwTyRFTUEm3XuipyEZiYAqBNRJwTqQoBLAA5QGK z1SJnTqiS9ng6eB/kVR7c2fPvOpUqzbKdZSVL+KrRLgfo3hcBelFNS2mUBFw7v/pu/bgAu Bt50iWq9oSMT1/cVnQ9K4M8bAymK5wx+WFJRbFElBBmpNesXlU74bdTTO7DngEENS0g+vb cDAdnkBgCSXNFduzh010gYSY77NU72+x9CL7dljp5pnTTwWDEHNDCWGQL1fh6g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725984491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9GiR0LxHI4YmB1mTWu/hqixX6Gowb0dtw/Ujxu/5hW0=; b=N2BnuhhaLLns9K8xeBd94nMnn81Qs2J7jfqiwzfMdkZF89wlK+9HqCPJpF6wK2TJX7ewtn 5VkJYvHBJam3rGghDoSU9KD49yRdlBNCpMKeWSaRhMzTzGgNcLmOuffgrcdiyyMAwaM9A3 JANrM6icgaVHV0yDoDwUejCdvqpeVwuxjLZcH+X98ZkdawpqBMHHlBW9cKGbf9U2mKa1Ue lP0btmBMzy2m2FLeqtJpAZgSdmg4BaeGQ9dB5V4Lfx7l74drgygB3Y/oVxTuguPALE8lms LHdeZ7uy4wmxxR992yOfsC5aOHLU4/fAIKU0nxdcdMQbPP7FUVro/2xr0N7pbA== 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 4X37sR0m2hztWx; Tue, 10 Sep 2024 16:08:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AG8BwM000724; Tue, 10 Sep 2024 16:08:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AG8AEp000721; Tue, 10 Sep 2024 16:08:10 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:08:10 GMT Message-Id: <202409101608.48AG8AEp000721@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 2b9c818d8db3 - main - pkgbase: fix decision logic to keep the old packages List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2b9c818d8db30389c366746e60efa665c0d591cc Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=2b9c818d8db30389c366746e60efa665c0d591cc commit 2b9c818d8db30389c366746e60efa665c0d591cc Author: Baptiste Daroussin AuthorDate: 2024-09-10 15:56:44 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-10 16:05:29 +0000 pkgbase: fix decision logic to keep the old packages when running update-package, we try to keep as much as possible the old packages to avoid wasting users bandwidth. the previous code was failing at catching properly the "snap" extension and we lost incremental build. With this new code we only stop checking we we have an old package with the same checksum if we transition from: - alpha to beta - beta to rc - rc to release but we keep old packages when we transition from release to p1 or when we stay on a given snapshot PR: 281393 Reported by: Evgenii Khramtsov --- Makefile.inc1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index ec1db75234b2..57141a482433 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2038,7 +2038,7 @@ PKG_EXT= pkg .if exists(${PKG_ABI_FILE}) && exists(${REPODIR}/${PKG_ABI}) PKG_VERSION_FROM!=/usr/bin/readlink ${REPODIR}/${PKG_ABI}/latest PKG_VERSION_FROM_DIR= ${REPODIR}/${PKG_ABI}/${PKG_VERSION_FROM} -BRANCH_EXT_FROM= ${PKG_VERSION_FROM:C/.*([[:alpha:]][^\.]*).*/\1/} +BRANCH_EXT_FROM= ${PKG_VERSION_FROM:C/^[^[:alpha:]]+p?([[:alpha:]]*)[0-9]+$/\1/} .else PKG_VERSION_FROM= PKG_VERSION_FROM_DIR= @@ -2079,7 +2079,7 @@ real-update-packages: stage-packages .PHONY continue; \ fi ; \ newsum=$$(pkg query -F ${REPODIR}/${PKG_ABI}/${PKG_VERSION}/$${newpkgname} '%X') ; \ - if [ "${BRANCH_EXT_FROM}" == "${BRANCH_EXT}" -a "$${oldsum}" == "$${newsum}" ]; then \ + if [ "${BRANCH_EXT_FROM}" == "${BRANCH_EXT:C/[0-9]+$//}" -a "$${oldsum}" == "$${newsum}" ]; then \ echo "==> Keeping old ${PKG_NAME_PREFIX}-$${pkgname}-${PKG_VERSION_FROM}.${PKG_EXT}" ; \ rm ${REPODIR}/${PKG_ABI}/${PKG_VERSION}/$${newpkgname} ; \ cp $${pkg} ${REPODIR}/${PKG_ABI}/${PKG_VERSION} ; \ From nobody Tue Sep 10 16:17:15 2024 X-Original-To: dev-commits-src-main@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 4X383w196hz5W6wm; Tue, 10 Sep 2024 16:17: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X383v6JKWz40V0; Tue, 10 Sep 2024 16:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725985035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=koFRi9wBXIPAxCWWL0viGRc1FPjjt7wUOGIupniUMgk=; b=MHJZeZHih0w1116NUqaSgED/OYUFrs7uYBvzgv5FdveAf+sTcX+YD869nzH8maqCRIalOA rQwzDGITPNgjXuDjKnHJrpSsRHv/IEUEZ+uektQ6ZPulNFjPK+aRoEGUmQti7DUmVNaNea +eJOXsDxdpDiGJ8IP/0sJD4i/vC3YFlHnga7fG8ilLpJNJCrkMtQc0oPAVstAyaYpeFwZ0 jZbpImUQ5Tl4DzIuUBXKplFs0c2xPDgWpdfTq9qXEqxRXYxKn7OvkCaKAHMGdhkyr4SVgV Afs/yzIeLzDwHhFZMdiCsFSVN2emysJHeFCSk28Ht9GBDPbSAlxNUue5ZxWUNw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725985035; a=rsa-sha256; cv=none; b=P1D/DjWQRoyADXRRr2CtVthfu2xQJS5TU2SupXqkt9ircPPiBR1ZZs7tE/jk23E9wJ4IwF P4j3iHl9wYgcZBGx1VCCWFpkC7OTQrO6jlsg7hzJgNoDlX0oZK9KcUFsglWLBIm+h0jLja h27fgmFEtt9wYBpVATUe4VVhDNNopwOGlvmMLM9f2L1sz+eZM/rdYskJbYJ1KikI6tptys uOlFNta1aeQAdYZA+xg+Bv7T6vCfQp+O8PMMx+DYQeKOLsw/DEkbG77Yx9iN3AV18JvoT/ 2Zh0O70OV1l+cRhaEpQMP4zh0m9NUoS6UsLo7IXJ8PLfPiLMeD62K7F4/mcs5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725985035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=koFRi9wBXIPAxCWWL0viGRc1FPjjt7wUOGIupniUMgk=; b=Z/q5QgXkc/iTjks/S5YzN1gSjdS/l+j/L1FeaZuibb+YIGZJLkHOGEZcAJ7Db1JyFIok4G bvZU6ug7dUhG3epF7zBy99DvV/lj7k/2cIB7k4PIEPe2pU6AtYe9aXkoVJ5iZEkMY4CM1I rX5358GnFJwObm4GFSbetUrgSstao6O+S8xS7IzT/gJ86uieDWPOVJjLVzQnIiT1E3dKhH 4+9dNHs5XnRgQ6GhjvydLEqmqStwP3OmeOKE7cUfa/dcdsw7fjtVo/DGbfrXdz+WfVO3jZ YQ0Uf3LyJ94WiKjvoc0UopPvgwYdkyJsdvGwB22L6IFGjQDSXJWmA4H1VOaomA== 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 4X383v5nKwztj8; Tue, 10 Sep 2024 16:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AGHFKQ017211; Tue, 10 Sep 2024 16:17:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AGHFqx017208; Tue, 10 Sep 2024 16:17:15 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:17:15 GMT Message-Id: <202409101617.48AGHFqx017208@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: 7ce171bd4220 - main - depend-cleanup.sh: Fix pretend (-n) mode List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 7ce171bd4220b2e8946556bb806c787b51324993 Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=7ce171bd4220b2e8946556bb806c787b51324993 commit 7ce171bd4220b2e8946556bb806c787b51324993 Author: Jessica Clarke AuthorDate: 2024-09-10 16:14:37 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 16:14:37 +0000 depend-cleanup.sh: Fix pretend (-n) mode Fixes: 26a09db3add3 ("Fix incremental build with WITH_NVME newly enabled") MFC after: 1 week --- tools/build/depend-cleanup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index da3dd05c6c4d..2ae5a8c77448 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -180,7 +180,7 @@ fi if [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \ grep -q -v 'nvme_util.o' "$OBJTOP"/rescue/rescue/rescue.mk; then echo "removing rescue.mk without nvme_util.o" - rm -f "$OBJTOP"/rescue/rescue/rescue.mk + run rm -f "$OBJTOP"/rescue/rescue/rescue.mk fi # 20240910 e2df9bb44109 From nobody Tue Sep 10 16:36:31 2024 X-Original-To: dev-commits-src-main@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 4X38V72Zdfz5W8h8; Tue, 10 Sep 2024 16:36: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X38V723jHz42TY; Tue, 10 Sep 2024 16:36:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725986191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FdFre3kBH4n5UI0JlV84dKqvwlouQSfo+6ClOfpmfIg=; b=hfDHxIy8VjgF/sSvm82NCxT6lu081G4NH8R22fuJdWV60MmehSb+xxomE51VAvcHPUbv6k uhja3PZjPpuIymg/O50JqqiLvnAAxR2nCuOLx49U3XPAleEHDifXSN4rCb63nuHBxCasAD ZSda5TeKy8NC/UGbX5PuEE2ZYBwhg1poKhIJQfmPeG8eKjRlbW1L6r152tVI0j9J0nnv+9 QCU/NLzp9YKCFCZJiL0lUd0Jy9BzBqUZUgtKJzhBXdYl2qutCqdfCAQjfVEGYEfmOWv8pR vFn+qczbkiViNoD+iNG71wEZ+SP1IyzIIUO00A/MTw/4r4ddXOBSZ7iv2JVlSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725986191; a=rsa-sha256; cv=none; b=QrcbFb+DCnGWk3OEot8YDc2CpfVGd4P7VDVBsEHYyaD82k+Ptal4Y4dri3jMEZ+9d6rQp2 Kvcu9utJRQKd1a+DcVupV7IJguSxtmGmJkLnyfecgKchrMRE4Auf/j+uOb4X/Qp55yW1Iq fT/R94J8PT+agKC4nZUboB8125fN2NVerMmQka35XNv3uvRdvLwoiC6EBiw5eLddkBMre9 z8TKK/kCsai9rF1QURR/+5SgI/cO6rJ0DAN52fVYu9qsYGMPjDQqlPAsa/9a0B3ft/H9KK cgUfp2palHv2OS6T3tTcE/XNnyb4H+A9/Gb2npfMEITNEbY7AAmttAPS/FxoTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725986191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FdFre3kBH4n5UI0JlV84dKqvwlouQSfo+6ClOfpmfIg=; b=rK4mgmKAaN7G/wdsprE530wC3sE5YJjKSRs3ZGnyum7mHHCUBu633n+U/XsJFYi4LNwyBI RZPVqx373oPAkurUSpFzrcNCRt1E/NOYrlIaqVUwYb8g4KVjRzxVnBOiH4z7+WkH84Hht1 dLgztDMV8dCo/bAqWlXFh5WpQ+EVojudJ2SDFDSozUkHz93iTnVJQ2osAHITJWEMCh7gal eHW9kEb8ARavwZp1QZ78j7lzhPNq2phPJnWj07ic4uK1HJEIoqvpl+6jCW/hNRdIXxz0O0 qnnxqlVbCW10K+RmURnvvYrb1JDpotyaodnKKrCAceg6YPF1mj5MTlLhTeiLuw== 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 4X38V71gNnzvJ1; Tue, 10 Sep 2024 16:36:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AGaVHY050678; Tue, 10 Sep 2024 16:36:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AGaVN4050675; Tue, 10 Sep 2024 16:36:31 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:36:31 GMT Message-Id: <202409101636.48AGaVN4050675@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: e546c3950a2c - main - depend-cleanup.sh: Fix overzealous rescue.mk cleanup List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: e546c3950a2c98b298b8ddfb68b50cb496fe7fac Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=e546c3950a2c98b298b8ddfb68b50cb496fe7fac commit e546c3950a2c98b298b8ddfb68b50cb496fe7fac Author: Jessica Clarke AuthorDate: 2024-09-10 16:33:06 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 16:33:06 +0000 depend-cleanup.sh: Fix overzealous rescue.mk cleanup grep -q -v means "are there any lines that don't match", not "are there no lines that match", and since the file has lines other than ones with nvme_util.o when up-to-date this triggers on every build. Fixes: 26a09db3add3 ("Fix incremental build with WITH_NVME newly enabled") MFC after: 1 week --- tools/build/depend-cleanup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index 2ae5a8c77448..828586e9d231 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -178,7 +178,7 @@ fi # 20240416 2fda3ab0ac19 WITH_NVME: Remove from broken if [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \ - grep -q -v 'nvme_util.o' "$OBJTOP"/rescue/rescue/rescue.mk; then + ! grep -q 'nvme_util.o' "$OBJTOP"/rescue/rescue/rescue.mk; then echo "removing rescue.mk without nvme_util.o" run rm -f "$OBJTOP"/rescue/rescue/rescue.mk fi From nobody Tue Sep 10 16:50:49 2024 X-Original-To: dev-commits-src-main@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 4X38pw2bnJz5WB9q for ; Tue, 10 Sep 2024 16:51:04 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X38pv1W2bz43Rw for ; Tue, 10 Sep 2024 16:51:03 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of jrtc27@jrtc27.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=jrtc27@jrtc27.com Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-42cb1e623d1so10294635e9.0 for ; Tue, 10 Sep 2024 09:51:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725987061; x=1726591861; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R7NUICIfZIODn6GVRur7Cy/zpsHHYfOq5Ad790CZ9cw=; b=sxd3RbQ9jfrf7NPq7CWnq9nSrDnzRN7ABrVhit6ZF5P/E5alXe1OSkRCtXLd3sMVf5 1TbqR9sQqqbCq4c8e60ZuNV/eZpk9bDNMirzKRj+LNorp5kRPTV0wC69XXFwxFLq2Tvd U5bm3S/nHXXcCzBLUV+5b6G29euKgoU3QRoI/1DxllTIRsuVBUnqmT8TYEEIPN5L8FBD jz7wqarG6smvtATXzMX5NCrjDQPfwRz8bDIUDpMroWJB6qSFoqZmV2u23CPv0zNDSR/Y yCs1jxwo8LFGgbm5zs+mZiRvP6M96q+RoZ78oLV9ILEtaX4bAnSzW5IE0MLfqvig9+UK HhRw== X-Forwarded-Encrypted: i=1; AJvYcCWK8q8r9KaQvSJmXej7a1DUnGwV12LUyaWo6BzJdXmuc2tJzUr8yRXkDB2s1pVOXNZRRy8rTPReEHqVLWOyEtQC5/MXCA==@freebsd.org X-Gm-Message-State: AOJu0YwCUWxpCdI7AWodH9ZlGTfyu3zq7x7il26cxBe/810j05wsHMMD HGnOOA0K92wHnPX+lroqOLBp7eHZlb2Q9/H8/t6b8rsezb1PkGILdjHTrNG4OzEaH0icOf5Ly8M P X-Google-Smtp-Source: AGHT+IFAKNYwi+snD4lHACXSgsOCzWYHUahOC56uhx+0fAWcuvHZ0sm0j0VoIo/haXHqgN8tuk+KiQ== X-Received: by 2002:a05:600c:5108:b0:426:5416:67e0 with SMTP id 5b1f17b1804b1-42ccd360aa5mr2511795e9.31.1725987060333; Tue, 10 Sep 2024 09:51:00 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.201]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42caeb4444asm117905935e9.22.2024.09.10.09.50.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Sep 2024 09:50:59 -0700 (PDT) Content-Type: text/plain; charset=us-ascii List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: git: 3a4b04e82df6 - main - depend-cleanup.sh: Simplify handling for stale syscall.S From: Jessica Clarke In-Reply-To: <202408051949.475JnRAM055960@gitrepo.freebsd.org> Date: Tue, 10 Sep 2024 17:50:49 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <4DA51278-CCE1-4790-BAE3-73DAC2494574@freebsd.org> References: <202408051949.475JnRAM055960@gitrepo.freebsd.org> To: John Baldwin X-Mailer: Apple Mail (2.3776.700.51) X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.79 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.89)[-0.890]; FORGED_SENDER(0.30)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; MIME_GOOD(-0.10)[text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; TO_DN_EQ_ADDR_SOME(0.00)[]; FREEFALL_USER(0.00)[jrtc27]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.128.42:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-main@freebsd.org]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[dev-commits-src-main@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[209.85.128.42:from] X-Rspamd-Queue-Id: 4X38pv1W2bz43Rw On 5 Aug 2024, at 20:49, John Baldwin wrote: >=20 > The branch main has been updated by jhb: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3D3a4b04e82df6bb9b28aa0c3c670c1906= 3843d644 >=20 > commit 3a4b04e82df6bb9b28aa0c3c670c19063843d644 > Author: John Baldwin > AuthorDate: 2024-08-05 19:49:06 +0000 > Commit: John Baldwin > CommitDate: 2024-08-05 19:49:06 +0000 >=20 > depend-cleanup.sh: Simplify handling for stale syscall.S >=20 > Remove the outer grep and depend on the greps in clean_dep instead. >=20 > Reviewed by: brooks, imp > Obtained from: CheriBSD > Sponsored by: AFRL, DARPA > Differential Revision: https://reviews.freebsd.org/D46103 > --- > tools/build/depend-cleanup.sh | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) >=20 > diff --git a/tools/build/depend-cleanup.sh = b/tools/build/depend-cleanup.sh > index b93d50a57ff4..b7231422c5ed 100755 > --- a/tools/build/depend-cleanup.sh > +++ b/tools/build/depend-cleanup.sh > @@ -171,9 +171,7 @@ clean_dep lib/libc statfs c > # 20240308 e6ffc7669a56 Remove pointless MD syscall(2) > # 20240308 0ee0ae237324 Remove pointless MD syscall(2) > # 20240308 7b3836c28188 Remove pointless MD syscall(2) > -if [ ${MACHINE} !=3D i386 -a -f = "$OBJTOP"/lib/libsys/.depend.syscall.o ] && \ > - grep -q -e 'libsys/[^ /]*/syscall.S' = "$OBJTOP"/lib/libsys/.depend.syscall.*; then > - echo "Removing stale /syscall.S depends" > +if [ ${MACHINE} !=3D i386 ]; then > clean_dep lib/libsys syscall S > clean_dep lib/libc syscall S > fi Aside from causing the files to be removed for amd64 lib32 as documented in the revision (but not, sadly, in the commit or file here), this causes them to also be removed for any non-i386 architecture. This is because "syscall.S" still features in the .depend file, just as: syscall.o: syscall.S given the source exists in the .OBJDIR, rather than: syscall.o \ /path/to/src/lib/libc/MACHINE/sys/syscall.S or syscall.o \ /path/to/src/lib/libsys/MACHINE/syscall.S You can test this for yourself with: MACHINE=3D... MACHINE_ARCH=3D... ALL_libcompats=3D"32" \ tools/build/depend-cleanup.sh -n /path/to/objtop (which I added last year for precisely this purpose) Jess From nobody Tue Sep 10 16:55:24 2024 X-Original-To: dev-commits-src-main@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 4X38vx1QK6z5WCBZ; Tue, 10 Sep 2024 16:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X38vw3bSfz44S0; Tue, 10 Sep 2024 16:55:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987324; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yygYstyVRTwg23VeD6ImSMuvCOlprUrup4uvKTQEYo4=; b=gfDExBWkhSiC9/NN0QRrTgSKioRyZVMIPaSF/47d2Ftiq+nYiIpY39DEqi6+6d0zRByW5c 8cG8WM2ZL3a+fG+3ERtfaBPSNb12A14HS4ncK9/rPmaSurA0hJJ2F+wdiQyFSQLFLukcIW GUdh2Xfoe3huiIMVjaodfmI3rS/FlQpufzMRlH6pnyYfvJg/Tp0wJ6uTAZcODm7Tv1zQXX qw6NFuK8rTR7x7IMdWHnf7FqF1rYtmRRg9PjoqdhoByFvUNMmqBIVOKLiz4nJWWuYoIKGD LbXb6eKBTDbpzy78j9/ffjYun7vyOwOGr0qJgcFkEXtHAbJ14BVWB017RewuVA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725987324; a=rsa-sha256; cv=none; b=JYEH/ONrWoieX4u3Pw/QSX0XUvJabE5vDHSmn8cU/ne1+K2YS9/o5QBVDxEumnu1F5uBIc O7sYDXkECVjxgr/MrB9BgfZAgZ6eYZrMBqkhJUgKq5WyflbH+pPnHhVs5smEtNxyyv5ct+ v82U/KC9ixOMw35BGNc6X8KHrFWEmbWSqQPyoB1hPB3Hd3NYKBfrp/wzgmJVvFB4WB+WHE QMQoPuPhL5FjEhvAVhFoxe6qdpSdb1wSu777IuHja4qIsv0V/yQ5I3Jn104zwsIdm7g07o NuzhijsnoNjSvhj+MmjIfJ3Ji7TI4Jd0/223WkYfBIviaJfemea+UzNMVCiBSQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987324; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yygYstyVRTwg23VeD6ImSMuvCOlprUrup4uvKTQEYo4=; b=xvq2MTVA0NAW12iXBGx8eEUlJguzGhW8IEw111dvDC8uBUWxBTtyWhrmhYvItXLaVH+m55 DN5Sr2BKWqwqb1J0yUVcS4ETXOPxbnBWQ3FTBdr5HsINk053LaA0z0F20Hr1lJdUyVpPRj V65UpU5rb3KUFMntpWXG1cPi3B2oDOyomfPo9fCBi8J5yIzyAUPPN2a8c4adSTyCJxYlM5 2Vp4F0BZ2qVH6SI7KZtOZIwOBY/HyfFNMAf2I1UC/01w6u/nGaE2usUQgTbKw9uZ5EQy23 gskgQNbqGJMSRKrPNLyEKD8zwaKTBaw5Sh9ILkM50Pmat58RB7Gjqe+5R4m0Yg== 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 4X38vw3C3VzvxD; Tue, 10 Sep 2024 16:55:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AGtO38084079; Tue, 10 Sep 2024 16:55:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AGtObN084076; Tue, 10 Sep 2024 16:55:24 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:55:24 GMT Message-Id: <202409101655.48AGtObN084076@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: 051a2132f41d - main - sockstat: Show the address of the spliced socket when -I is specified List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 051a2132f41d8394a34b29ac3cfebf8601ede5b6 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=051a2132f41d8394a34b29ac3cfebf8601ede5b6 commit 051a2132f41d8394a34b29ac3cfebf8601ede5b6 Author: Mark Johnston AuthorDate: 2024-09-10 16:51:18 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 16:52:01 +0000 sockstat: Show the address of the spliced socket when -I is specified MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46413 --- usr.bin/sockstat/sockstat.1 | 11 +++++++++-- usr.bin/sockstat/sockstat.c | 31 +++++++++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1 index 2e1b06688afa..d7174b48f8d5 100644 --- a/usr.bin/sockstat/sockstat.1 +++ b/usr.bin/sockstat/sockstat.1 @@ -25,7 +25,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 6, 2022 +.Dd July 9, 2024 .Dt SOCKSTAT 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd list open sockets .Sh SYNOPSIS .Nm -.Op Fl 46CciLlnqSsUuvw +.Op Fl 46CcIiLlnqSsUuvw .Op Fl j Ar jail .Op Fl p Ar ports .Op Fl P Ar protocols @@ -59,6 +59,13 @@ Display the congestion control module, if applicable. This is currently only implemented for TCP. .It Fl c Show connected sockets. +.It Fl I +Show the local address of the socket to which the current socket is spliced, if +any. +See the +.Xr setsockopt 2 +.Dv SO_SPLICE +option for more information. .It Fl i Display the .Dv inp_gencnt . diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index 5eac327ca184..d2581d9f042e 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -82,6 +82,7 @@ static int opt_4; /* Show IPv4 sockets */ static int opt_6; /* Show IPv6 sockets */ static int opt_C; /* Show congestion control */ static int opt_c; /* Show connected sockets */ +static int opt_I; /* Show spliced socket addresses */ static int opt_i; /* Show inp_gencnt */ static int opt_j; /* Show specified jail */ static int opt_L; /* Don't show IPv4 or IPv6 loopback sockets */ @@ -132,6 +133,7 @@ struct sock { RB_ENTRY(sock) pcb_tree; kvaddr_t socket; kvaddr_t pcb; + kvaddr_t splice_socket; uint64_t inp_gencnt; int shown; int vflag; @@ -766,6 +768,7 @@ gather_inet(int proto) if ((faddr = calloc(1, sizeof *faddr)) == NULL) err(1, "malloc()"); sock->socket = so->xso_so; + sock->splice_socket = so->so_splice_so; sock->proto = proto; sock->inp_gencnt = xip->inp_gencnt; if (xip->inp_vflag & INP_IPV4) { @@ -1201,6 +1204,25 @@ displaysock(struct sock *s, int pos) default: abort(); } + if (opt_I) { + if (s->splice_socket != 0) { + struct sock *sp; + + sp = RB_FIND(socks_t, &socks, &(struct sock) + { .socket = s->splice_socket }); + if (sp != NULL) { + while (pos < offset) + pos += xprintf(" "); + pos += printaddr(&sp->laddr->address); + } else { + while (pos < offset) + pos += xprintf(" "); + pos += xprintf("??"); + offset += opt_w ? 46 : 22; + } + } + offset += opt_w ? 46 : 22; + } if (opt_i) { if (s->proto == IPPROTO_TCP || s->proto == IPPROTO_UDP) { @@ -1307,6 +1329,8 @@ display(void) "USER", "COMMAND", "PID", "FD", "PROTO", opt_w ? 45 : 21, "LOCAL ADDRESS", opt_w ? 45 : 21, "FOREIGN ADDRESS"); + if (opt_I) + printf(" %-*s", opt_w ? 45 : 21, "SPLICE ADDRESS"); if (opt_i) printf(" %-8s", "ID"); if (opt_U) @@ -1430,7 +1454,7 @@ static void usage(void) { fprintf(stderr, - "usage: sockstat [-46CciLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]\n"); + "usage: sockstat [-46CcIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]\n"); exit(1); } @@ -1445,7 +1469,7 @@ main(int argc, char *argv[]) int o, i; opt_j = -1; - while ((o = getopt(argc, argv, "46Ccij:Llnp:P:qSsUuvw")) != -1) + while ((o = getopt(argc, argv, "46CcIij:Llnp:P:qSsUuvw")) != -1) switch (o) { case '4': opt_4 = 1; @@ -1459,6 +1483,9 @@ main(int argc, char *argv[]) case 'c': opt_c = 1; break; + case 'I': + opt_I = 1; + break; case 'i': opt_i = 1; break; From nobody Tue Sep 10 16:55:25 2024 X-Original-To: dev-commits-src-main@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 4X38vy1Clqz5WC45; Tue, 10 Sep 2024 16:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X38vx4XtLz440j; Tue, 10 Sep 2024 16:55:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987325; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=onobnO5oBR6sazaaGszhpf+SA5xuxJfkdUmLxIxotiU=; b=GM1nz8n7p6zvopbh2r8Qo3BvtBCfMR7EzFpnjHOWm/EJebPVXmmeI6ClmhRwUh9azumavV VRFu3ybNeJ+2EsIIdNmw+YE65J4VF5+L3x2MAoej7PZ9n+ANA5JkRf2cR+sF9m64+WSE1g 8VfUwpjYql6PGiRVNvwR7zYnlvJ4jW8QTZU4D8iCoauHPSdcVZB9/CySBAxAzIEiE8AsmU QZj3NR+VO0VvypwnonraVeizLRL7YCVD72jsfVfgj4A9Pqwq+E7SkuG/FYsozZlez+/X3x oIqYsMQdcwcNCBupfI4IjmBhmoGPhUFRXPMvVo6aOER+QUbjkipLvNgBzmdqaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725987325; a=rsa-sha256; cv=none; b=ewzyzOfDTet5ZMg/FJsERpB5bCqEqpz1oxrtS041R5F0fiRhytO2ZpWAqZ+nsZFW4DVKGA txtiIVuhzjQAL+ZqchNpf2lrgQavcsDWwKdu1wWI6e+SglQTiJTS3K8+jlHZVkUdd1SAc9 w1uXgkaW1Q03Lg/Ua0AJIHMr4UdKx0RMaYwtUHaXVi0UB6SILZFNRm+8L5UOku+o+dKoRz Cnk9AQet5SDjOo7oB0HHQ+VLbV6N5RsMvDQLd/9Ujt4xASYtpXFMRPwVZx/G9GUJ/4c6Cx 1UDJ3K6BvGaRRBp/TS/wmKr13lVq/EJ+voCvns1Kl+5bu5lhv7RkVDByiG2Otw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987325; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=onobnO5oBR6sazaaGszhpf+SA5xuxJfkdUmLxIxotiU=; b=aQti6E7IIv7YD2XxYaayUBI9Snauvdo48rtbLBXiDIpPT3tAxict63kmnPHqpQiEIzJGXT oU7tF6ZYK5nWEHabgIF2Ahbuj3ChcTU20ZopOACBrqg2I5A4VgzeL4T9ZUpoHD0AXDunmc lUlw45CmeGAXbvrDljVFCzbkpYu+b1TAIUjWnQKX26bHyfGslVnV2acXwIrussvGbbxXvv jO+56bLX7PcOrA1Rs4o5ePcljAIdKsOj8WbriNo25D/0cBp4tBEhiTxIkqNrDZClcH3dYK 5dmZZtNR3f/zT+DmR9PXlFrgviCC8dXhj5FgVhB4GAK0FzSKtZRh+X0SyXC/BA== 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 4X38vx495WzvVV; Tue, 10 Sep 2024 16:55:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AGtPLv084119; Tue, 10 Sep 2024 16:55:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AGtPc8084115; Tue, 10 Sep 2024 16:55:25 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:55:25 GMT Message-Id: <202409101655.48AGtPc8084115@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: b76961e3a21a - main - kdump: Print splice structures List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: b76961e3a21a820f15ebff9d115ff67feb910cec Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b76961e3a21a820f15ebff9d115ff67feb910cec commit b76961e3a21a820f15ebff9d115ff67feb910cec Author: Mark Johnston AuthorDate: 2024-09-10 16:51:26 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 16:52:01 +0000 kdump: Print splice structures MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield --- lib/libsysdecode/ktrace.out | Bin 0 -> 23596 bytes usr.bin/kdump/kdump.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/libsysdecode/ktrace.out b/lib/libsysdecode/ktrace.out new file mode 100644 index 000000000000..29d35f0de3ce Binary files /dev/null and b/lib/libsysdecode/ktrace.out differ diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c index f7ac82c757fa..41d3eb594149 100644 --- a/usr.bin/kdump/kdump.c +++ b/usr.bin/kdump/kdump.c @@ -105,6 +105,7 @@ void ktruser(int, void *); void ktrcaprights(cap_rights_t *); void ktritimerval(struct itimerval *it); void ktrsockaddr(struct sockaddr *); +void ktrsplice(struct splice *); void ktrstat(struct stat *); void ktrstruct(char *, size_t); void ktrcapfail(struct ktr_cap_fail *); @@ -1923,6 +1924,14 @@ ktrsockaddr(struct sockaddr *sa) printf(" }\n"); } +void +ktrsplice(struct splice *sp) +{ + printf("struct splice { fd=%d, max=%#jx, idle=%jd.%06jd }\n", + sp->sp_fd, (uintmax_t)sp->sp_max, (intmax_t)sp->sp_idle.tv_sec, + (intmax_t)sp->sp_idle.tv_usec); +} + void ktrstat(struct stat *statp) { @@ -2111,6 +2120,13 @@ ktrstruct(char *buf, size_t buflen) memcpy(set, data, datalen); ktrbitset(name, set, datalen); free(set); + } else if (strcmp(name, "splice") == 0) { + struct splice sp; + + if (datalen != sizeof(sp)) + goto invalid; + memcpy(&sp, data, datalen); + ktrsplice(&sp); } else { #ifdef SYSDECODE_HAVE_LINUX if (ktrstruct_linux(name, data, datalen) == false) From nobody Tue Sep 10 16:55:22 2024 X-Original-To: dev-commits-src-main@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 4X38vt4Rmmz5WC7d; Tue, 10 Sep 2024 16:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X38vt2M5kz440h; Tue, 10 Sep 2024 16:55:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ce9f7mOHOexXrS4WG4MJTLvnJTpn9wXTrDnxhAtnvAM=; b=MmK5hWcpNRP2WSV5rcRMeGvO+KHB+Psd1j8jwk13I6Gxenw3bck32WdOBRHyCw9Ik20G9C +rOg5jHr2BeJZ+yvPjkiEzikLGCMClm6C3BWkxS3110S/Odv0FqRDFLXoGiyFyE6lZ0OkA P4/oRcTWK42REOBqMv9a6XF/hEhepZ4e2jnGaShryGg7peX6IV8hpepP/47WREsaPGZTIF d6r9FcePAMWLq8KTrS+yN1ExDZ7Q89YM3bXME0rl+KxJRtb5pDiqM0PXYs2ZBXn4s4Txma TZILbg9m3a5NkLL9V66cCWHcfNOYrNiU6QX/c+cQ4lKtrl3AtcWUpmhwPvHPVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725987322; a=rsa-sha256; cv=none; b=Vm7pNE5QX/YHHpPyfVBywIInYhn90TlLNpTY5znICgBhP+LpTudU4JFAjrvO4F3NlpUILW SmIAw0iFmS3PBcqRq8GR2LzxGDAFjXDack12Y0N57vygF9orqSwkOUgF3AtMA3y+w/G0FK 3Btjmj1DMVFqen0XwOyusKnXkejG0MN96zDo/XVbHrxk05EJwIwCsHAPLtm3NRQ5XDqgXM H0dR5aopeQRc7BSKWyqR7/6MAawTTanG+BGX36AcYEqWCaVem+qVqN7D6rvBY8NryglJ4f 15JD78aIJjV1mwnjmeTVnaXk1zI7P7PzalHfhx/SnI6DKOLkGUMeFe383DJgOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ce9f7mOHOexXrS4WG4MJTLvnJTpn9wXTrDnxhAtnvAM=; b=C8wEnTWS3mxPITSmx91jo9vPTMlV4z3VILCEOyUBaMI/F2okBv75KEW7o/Y+2wJQHHr6YH cI5eZqhFX1XVnpHJNfbCMPz7d7j3FUmpAypidJz3h2MTVueh1t5KQpUC4IATXNrxcJhh0W LQELB9O5zmHarScMiR2/HyX2I8pJSZwya2zD0uY/1hmPKqy0XR6ilnnPSCai3T87LhIXq8 L4qcvsJeHw8Wzqa2XhWfeYmL46Up2WgQ/c21CbMfThM5AaoQrk7vpRDh5LM1hCYb7AE80r K+f1psMuDhSD+KIaAgDhHIQXNA/sKnhDO33rhxhnTJVveZMI92hUgIGtALX+bg== 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 4X38vt1y8hzvrd; Tue, 10 Sep 2024 16:55:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AGtMwt083968; Tue, 10 Sep 2024 16:55:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AGtMfl083965; Tue, 10 Sep 2024 16:55:22 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:55:22 GMT Message-Id: <202409101655.48AGtMfl083965@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: a1da7dc1cdad - main - socket: Implement SO_SPLICE List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: a1da7dc1cdad8c000622a7b23ff5994ccfe9cac6 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a1da7dc1cdad8c000622a7b23ff5994ccfe9cac6 commit a1da7dc1cdad8c000622a7b23ff5994ccfe9cac6 Author: Mark Johnston AuthorDate: 2024-09-10 16:50:30 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 16:51:37 +0000 socket: Implement SO_SPLICE This is a feature which allows one to splice two TCP sockets together such that data which arrives on one socket is automatically pushed into the send buffer of the spliced socket. This can be used to make TCP proxying more efficient as it eliminates the need to copy data into and out of userspace. The interface is copied from OpenBSD, and this implementation aims to be compatible. Splicing is enabled by setting the SO_SPLICE socket option. When spliced, data that arrives on the receive buffer is automatically forwarded to the other socket. In particular, splicing is a unidirectional operation; to splice a socket pair in both directions, SO_SPLICE needs to be applied to both sockets. More concretely, when setting the option one passes the following struct: struct splice { int fd; off_t max; struct timveval idle; }; where "fd" refers to the socket to which the first socket is to be spliced, and two setsockopt(SO_SPLICE) calls are required to set up a bi-directional splice. select(), poll() and kevent() do not return when data arrives in the receive buffer of a spliced socket, as such data is expected to be removed automatically once space is available in the corresponding send buffer. Userspace can perform I/O on spliced sockets, but it will be unpredictably interleaved with splice I/O. A splice can be configured to unsplice once a certain number of bytes have been transmitted, or after a given time period. Once unspliced, the socket behaves normally from userspace's perspective. The number of bytes transmitted via the splice can be retrieved using getsockopt(SO_SPLICE); this works after unsplicing as well, up until the socket is closed or spliced again. Userspace can also manually trigger unsplicing by splicing to -1. Splicing work is handled by dedicated threads, similar to KTLS. A worker thread is assigned at splice creation time. At some point it would be nice to have a direct dispatch mode, wherein the thread which places data into a receive buffer is also responsible for pushing it into the sink, but this requires tighter integration with the protocol stack in order to avoid reentrancy problems. Currently, sowakeup() and related functions will signal the worker thread assigned to a spliced socket. so_splice_xfer() does the hard work of moving data between socket buffers. Co-authored by: gallatin Reviewed by: brooks (interface bits) MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D46411 --- lib/libsys/getsockopt.2 | 62 ++++- sys/kern/uipc_sockbuf.c | 34 ++- sys/kern/uipc_socket.c | 702 +++++++++++++++++++++++++++++++++++++++++++++++- sys/sys/ktrace.h | 2 + sys/sys/sockbuf.h | 3 +- sys/sys/socket.h | 12 + sys/sys/socketvar.h | 49 +++- 7 files changed, 854 insertions(+), 10 deletions(-) diff --git a/lib/libsys/getsockopt.2 b/lib/libsys/getsockopt.2 index a74bf3a4685e..ca826528ff2f 100644 --- a/lib/libsys/getsockopt.2 +++ b/lib/libsys/getsockopt.2 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 8, 2021 +.Dd July 8, 2024 .Dt GETSOCKOPT 2 .Os .Sh NAME @@ -191,6 +191,7 @@ The following options are recognized in .It Dv SO_MAX_PACING_RATE Ta "set the maximum transmit rate in bytes per second for the socket" .It Dv SO_NO_OFFLOAD Ta "disables protocol offloads" .It Dv SO_NO_DDP Ta "disables direct data placement offload" +.It Dv SO_SPLICE Ta "splice two sockets together" .El .Pp .Dv SO_DEBUG @@ -551,6 +552,56 @@ DDP is an offload supported by Chelsio network adapters that permits reassembled TCP data streams to be received via zero-copy in user-supplied buffers using .Xr aio_read 2 . +.Pp +.Dv SO_SPLICE , +when passed to +.Fn setsockopt , +splices two sockets together using the following +.Fa optval : +.Bd -literal +struct so_splice { + int sp_fd; + off_t sp_max; + struct timeval sp_idle; +}; +.Ed +.Pp +Data received on +.Fa s +will automatically be transmitted from the socket specified in +.Fa sp_fd +without any intervention by userspace. +Splicing is a one-way operation; a given pair of sockets may be +spliced in one or both directions. +Currently only connected +.Xr tcp 4 +sockets may be spliced together. +If +.Fa sp_max +is greater than zero, the socket pair will automatically be unspliced +once that number of bytes have been transmitted. +If +.Fa sp_idle +is non-zero, the socket pair will automatically be unspliced once the +specified amount of time has elapsed since the initial call to +.Fn setsockopt . +If +.Fa sp_fd +is -1, the socket will be unspliced immediately. +.Pp +When passed to +.Fn getsockopt , +the +.Dv SO_SPLICE +option returns a 64-bit integer containing the number of bytes transmitted by +the most recent splice. +That is, while the socket is spliced, the value returned will be the number +of bytes spliced so far. +When unsplicing, this value is saved and is returned until the socket is closed +or spliced again. +For example, if a splice transmits 100 bytes and is then unspliced, a subsequent +.Nm getsockopt +call will return 100 until the socket is spliced again. .Sh RETURN VALUES .Rv -std .Sh ERRORS @@ -618,5 +669,14 @@ and .Fn setsockopt system calls appeared in .Bx 4.2 . +The +.Dv SO_SPLICE +option originated in +.Ox 4.9 +and first appeared in +.Fx 15.0 . +The +.Fx +implementation aims to be source-compatible. .Sh BUGS Several of the socket options should be handled at lower levels of the system. diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 6d3050596f23..95c7241d5f13 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -508,6 +508,32 @@ sowakeup(struct socket *so, const sb_which which) SOCK_BUF_UNLOCK_ASSERT(so, which); } +static void +splice_push(struct socket *so) +{ + struct so_splice *sp; + + SOCK_RECVBUF_LOCK_ASSERT(so); + + sp = so->so_splice; + mtx_lock(&sp->mtx); + SOCK_RECVBUF_UNLOCK(so); + so_splice_dispatch(sp); +} + +static void +splice_pull(struct socket *so) +{ + struct so_splice *sp; + + SOCK_SENDBUF_LOCK_ASSERT(so); + + sp = so->so_splice_back; + mtx_lock(&sp->mtx); + SOCK_SENDBUF_UNLOCK(so); + so_splice_dispatch(sp); +} + /* * Do we need to notify the other side when I/O is possible? */ @@ -522,7 +548,9 @@ void sorwakeup_locked(struct socket *so) { SOCK_RECVBUF_LOCK_ASSERT(so); - if (sb_notify(&so->so_rcv)) + if (so->so_rcv.sb_flags & SB_SPLICED) + splice_push(so); + else if (sb_notify(&so->so_rcv)) sowakeup(so, SO_RCV); else SOCK_RECVBUF_UNLOCK(so); @@ -532,7 +560,9 @@ void sowwakeup_locked(struct socket *so) { SOCK_SENDBUF_LOCK_ASSERT(so); - if (sb_notify(&so->so_snd)) + if (so->so_snd.sb_flags & SB_SPLICED) + splice_pull(so); + else if (sb_notify(&so->so_snd)) sowakeup(so, SO_SND); else SOCK_SENDBUF_UNLOCK(so); diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 42c43539b484..071530925892 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -122,6 +122,7 @@ #include #include #include +#include #include #include #include @@ -133,7 +134,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -159,8 +162,17 @@ #include #endif +static int soreceive_generic_locked(struct socket *so, + struct sockaddr **psa, struct uio *uio, struct mbuf **mp, + struct mbuf **controlp, int *flagsp); static int soreceive_rcvoob(struct socket *so, struct uio *uio, int flags); +static int soreceive_stream_locked(struct socket *so, struct sockbuf *sb, + struct sockaddr **psa, struct uio *uio, struct mbuf **mp, + struct mbuf **controlp, int flags); +static int sosend_generic_locked(struct socket *so, struct sockaddr *addr, + struct uio *uio, struct mbuf *top, struct mbuf *control, + int flags, struct thread *td); static void so_rdknl_lock(void *); static void so_rdknl_unlock(void *); static void so_rdknl_assert_lock(void *, int); @@ -206,6 +218,21 @@ VNET_DEFINE(struct hhook_head *, socket_hhh[HHOOK_SOCKET_LAST + 1]); static inline int hhook_run_socket(struct socket *, void *, int32_t); #endif +#ifdef COMPAT_FREEBSD32 +#ifdef __amd64__ +/* off_t has 4-byte alignment on i386 but not on other 32-bit platforms. */ +#define __splice32_packed __packed +#else +#define __splice32_packed +#endif +struct splice32 { + int32_t sp_fd; + int64_t sp_max; + struct timeval32 sp_idle; +} __splice32_packed; +#undef __splice32_packed +#endif + /* * Limit on the number of connections in the listen queue waiting * for accept(2). @@ -278,6 +305,371 @@ socket_zone_change(void *tag) maxsockets = uma_zone_set_max(socket_zone, maxsockets); } +static int splice_init_state; +static struct sx splice_init_lock; +SX_SYSINIT(splice_init_lock, &splice_init_lock, "splice_init"); + +static SYSCTL_NODE(_kern_ipc, OID_AUTO, splice, CTLFLAG_RW, 0, + "Settings relating to the SO_SPLICE socket option"); + +static bool splice_receive_stream = true; +SYSCTL_BOOL(_kern_ipc_splice, OID_AUTO, receive_stream, CTLFLAG_RWTUN, + &splice_receive_stream, 0, + "Use soreceive_stream() for stream splices"); + +static uma_zone_t splice_zone; +static struct proc *splice_proc; +struct splice_wq { + struct mtx mtx; + STAILQ_HEAD(, so_splice) head; + bool running; +} __aligned(CACHE_LINE_SIZE); +static struct splice_wq *splice_wq; +static uint32_t splice_index = 0; + +static void so_splice_timeout(void *arg, int pending); +static void so_splice_xfer(struct so_splice *s); +static int so_unsplice(struct socket *so, bool timeout); + +static void +splice_work_thread(void *ctx) +{ + struct splice_wq *wq = ctx; + struct so_splice *s, *s_temp; + STAILQ_HEAD(, so_splice) local_head; + int cpu; + + cpu = wq - splice_wq; + if (bootverbose) + printf("starting so_splice worker thread for CPU %d\n", cpu); + + for (;;) { + mtx_lock(&wq->mtx); + while (STAILQ_EMPTY(&wq->head)) { + wq->running = false; + mtx_sleep(wq, &wq->mtx, 0, "-", 0); + wq->running = true; + } + STAILQ_INIT(&local_head); + STAILQ_CONCAT(&local_head, &wq->head); + STAILQ_INIT(&wq->head); + mtx_unlock(&wq->mtx); + STAILQ_FOREACH_SAFE(s, &local_head, next, s_temp) { + mtx_lock(&s->mtx); + CURVNET_SET(s->src->so_vnet); + so_splice_xfer(s); + CURVNET_RESTORE(); + } + } +} + +static void +so_splice_dispatch_async(struct so_splice *sp) +{ + struct splice_wq *wq; + bool running; + + wq = &splice_wq[sp->wq_index]; + mtx_lock(&wq->mtx); + STAILQ_INSERT_TAIL(&wq->head, sp, next); + running = wq->running; + mtx_unlock(&wq->mtx); + if (!running) + wakeup(wq); +} + +void +so_splice_dispatch(struct so_splice *sp) +{ + mtx_assert(&sp->mtx, MA_OWNED); + + if (sp->state != SPLICE_IDLE) { + mtx_unlock(&sp->mtx); + } else { + sp->state = SPLICE_QUEUED; + mtx_unlock(&sp->mtx); + so_splice_dispatch_async(sp); + } +} + +static int +splice_zinit(void *mem, int size __unused, int flags __unused) +{ + struct so_splice *s; + + s = (struct so_splice *)mem; + mtx_init(&s->mtx, "so_splice", NULL, MTX_DEF); + return (0); +} + +static void +splice_zfini(void *mem, int size) +{ + struct so_splice *s; + + s = (struct so_splice *)mem; + mtx_destroy(&s->mtx); +} + +static int +splice_init(void) +{ + struct thread *td; + int error, i, state; + + state = atomic_load_acq_int(&splice_init_state); + if (__predict_true(state > 0)) + return (0); + if (state < 0) + return (ENXIO); + sx_xlock(&splice_init_lock); + if (splice_init_state != 0) { + sx_xunlock(&splice_init_lock); + return (0); + } + + splice_zone = uma_zcreate("splice", sizeof(struct so_splice), NULL, + NULL, splice_zinit, splice_zfini, UMA_ALIGN_CACHE, 0); + + splice_wq = mallocarray(mp_maxid + 1, sizeof(*splice_wq), M_TEMP, + M_WAITOK | M_ZERO); + + /* + * Initialize the workqueues to run the splice work. We create a + * work queue for each CPU. + */ + CPU_FOREACH(i) { + STAILQ_INIT(&splice_wq[i].head); + mtx_init(&splice_wq[i].mtx, "splice work queue", NULL, MTX_DEF); + } + + /* Start kthreads for each workqueue. */ + error = 0; + CPU_FOREACH(i) { + error = kproc_kthread_add(splice_work_thread, &splice_wq[i], + &splice_proc, &td, 0, 0, "so_splice", "thr_%d", i); + if (error) { + printf("Can't add so_splice thread %d error %d\n", + i, error); + break; + } + + /* + * It's possible to create loops with SO_SPLICE; ensure that + * worker threads aren't able to starve the system too easily. + */ + thread_lock(td); + sched_prio(td, PUSER); + thread_unlock(td); + } + + splice_init_state = error != 0 ? -1 : 1; + sx_xunlock(&splice_init_lock); + + return (error); +} + +/* + * Lock a pair of socket's I/O locks for splicing. Avoid blocking while holding + * one lock in order to avoid potential deadlocks in case there is some other + * code path which acquires more than one I/O lock at a time. + */ +static void +splice_lock_pair(struct socket *so_src, struct socket *so_dst) +{ + int error; + + for (;;) { + error = SOCK_IO_SEND_LOCK(so_dst, SBL_WAIT | SBL_NOINTR); + KASSERT(error == 0, + ("%s: failed to lock send I/O lock: %d", __func__, error)); + error = SOCK_IO_RECV_LOCK(so_src, 0); + KASSERT(error == 0 || error == EWOULDBLOCK, + ("%s: failed to lock recv I/O lock: %d", __func__, error)); + if (error == 0) + break; + SOCK_IO_SEND_UNLOCK(so_dst); + + error = SOCK_IO_RECV_LOCK(so_src, SBL_WAIT | SBL_NOINTR); + KASSERT(error == 0, + ("%s: failed to lock recv I/O lock: %d", __func__, error)); + error = SOCK_IO_SEND_LOCK(so_dst, 0); + KASSERT(error == 0 || error == EWOULDBLOCK, + ("%s: failed to lock send I/O lock: %d", __func__, error)); + if (error == 0) + break; + SOCK_IO_RECV_UNLOCK(so_src); + } +} + +static void +splice_unlock_pair(struct socket *so_src, struct socket *so_dst) +{ + SOCK_IO_RECV_UNLOCK(so_src); + SOCK_IO_SEND_UNLOCK(so_dst); +} + +/* + * Move data from the source to the sink. Assumes that both of the relevant + * socket I/O locks are held. + */ +static int +so_splice_xfer_data(struct socket *so_src, struct socket *so_dst, off_t max, + ssize_t *lenp) +{ + struct uio uio; + struct mbuf *m; + struct sockbuf *sb_src, *sb_dst; + ssize_t len; + long space; + int error, flags; + + SOCK_IO_RECV_ASSERT_LOCKED(so_src); + SOCK_IO_SEND_ASSERT_LOCKED(so_dst); + + error = 0; + m = NULL; + memset(&uio, 0, sizeof(uio)); + + sb_src = &so_src->so_rcv; + sb_dst = &so_dst->so_snd; + + space = sbspace(sb_dst); + if (space < 0) + space = 0; + len = MIN(max, MIN(space, sbavail(sb_src))); + if (len == 0) { + SOCK_RECVBUF_LOCK(so_src); + if ((sb_src->sb_state & SBS_CANTRCVMORE) != 0) + error = EPIPE; + SOCK_RECVBUF_UNLOCK(so_src); + } else { + flags = MSG_DONTWAIT; + uio.uio_resid = len; + if (splice_receive_stream && sb_src->sb_tls_info == NULL) { + error = soreceive_stream_locked(so_src, sb_src, NULL, + &uio, &m, NULL, flags); + } else { + error = soreceive_generic_locked(so_src, NULL, + &uio, &m, NULL, &flags); + } + if (error != 0 && m != NULL) { + m_freem(m); + m = NULL; + } + } + if (m != NULL) { + len -= uio.uio_resid; + error = sosend_generic_locked(so_dst, NULL, NULL, m, NULL, + MSG_DONTWAIT, curthread); + } else if (error == 0) { + len = 0; + SOCK_SENDBUF_LOCK(so_dst); + if ((sb_dst->sb_state & SBS_CANTSENDMORE) != 0) + error = EPIPE; + SOCK_SENDBUF_UNLOCK(so_dst); + } + if (error == 0) + *lenp = len; + return (error); +} + +/* + * Transfer data from the source to the sink. + * + * If "direct" is true, the transfer is done in the context of whichever thread + * is operating on one of the socket buffers. We do not know which locks are + * held, so we can only trylock the socket buffers; if this fails, we fall back + * to the worker thread, which invokes this routine with "direct" set to false. + */ +static void +so_splice_xfer(struct so_splice *sp) +{ + struct socket *so_src, *so_dst; + off_t max; + ssize_t len; + int error; + + mtx_assert(&sp->mtx, MA_OWNED); + KASSERT(sp->state == SPLICE_QUEUED || sp->state == SPLICE_CLOSING, + ("so_splice_xfer: invalid state %d", sp->state)); + KASSERT(sp->max != 0, ("so_splice_xfer: max == 0")); + + if (sp->state == SPLICE_CLOSING) { + /* Userspace asked us to close the splice. */ + goto closing; + } + + sp->state = SPLICE_RUNNING; + so_src = sp->src; + so_dst = sp->dst; + max = sp->max > 0 ? sp->max - so_src->so_splice_sent : OFF_MAX; + if (max < 0) + max = 0; + + /* + * Lock the sockets in order to block userspace from doing anything + * sneaky. If an error occurs or one of the sockets can no longer + * transfer data, we will automatically unsplice. + */ + mtx_unlock(&sp->mtx); + splice_lock_pair(so_src, so_dst); + + error = so_splice_xfer_data(so_src, so_dst, max, &len); + + mtx_lock(&sp->mtx); + + /* + * Update our stats while still holding the socket locks. This + * synchronizes with getsockopt(SO_SPLICE), see the comment there. + */ + if (error == 0) { + KASSERT(len >= 0, ("%s: len %zd < 0", __func__, len)); + so_src->so_splice_sent += len; + } + splice_unlock_pair(so_src, so_dst); + + switch (sp->state) { + case SPLICE_CLOSING: +closing: + sp->state = SPLICE_CLOSED; + wakeup(sp); + mtx_unlock(&sp->mtx); + break; + case SPLICE_RUNNING: + if (error != 0 || + (sp->max > 0 && so_src->so_splice_sent >= sp->max)) { + sp->state = SPLICE_EXCEPTION; + soref(so_src); + mtx_unlock(&sp->mtx); + (void)so_unsplice(so_src, false); + sorele(so_src); + } else { + /* + * Locklessly check for additional bytes in the source's + * receive buffer and queue more work if possible. We + * may end up queuing needless work, but that's ok, and + * if we race with a thread inserting more data into the + * buffer and observe sbavail() == 0, the splice mutex + * ensures that splice_push() will queue more work for + * us. + */ + if (sbavail(&so_src->so_rcv) > 0 && + sbspace(&so_dst->so_snd) > 0) { + sp->state = SPLICE_QUEUED; + mtx_unlock(&sp->mtx); + so_splice_dispatch_async(sp); + } else { + sp->state = SPLICE_IDLE; + mtx_unlock(&sp->mtx); + } + } + break; + default: + __assert_unreachable(); + } +} + static void socket_init(void *tag) { @@ -1213,6 +1605,219 @@ solisten_dequeue(struct socket *head, struct socket **ret, int flags) return (0); } +static struct so_splice * +so_splice_alloc(off_t max) +{ + struct so_splice *sp; + + sp = uma_zalloc(splice_zone, M_WAITOK); + sp->src = NULL; + sp->dst = NULL; + sp->max = max > 0 ? max : -1; + do { + sp->wq_index = atomic_fetchadd_32(&splice_index, 1) % + (mp_maxid + 1); + } while (CPU_ABSENT(sp->wq_index)); + sp->state = SPLICE_IDLE; + TIMEOUT_TASK_INIT(taskqueue_thread, &sp->timeout, 0, so_splice_timeout, + sp); + return (sp); +} + +static void +so_splice_free(struct so_splice *sp) +{ + KASSERT(sp->state == SPLICE_CLOSED, + ("so_splice_free: sp %p not closed", sp)); + uma_zfree(splice_zone, sp); +} + +static void +so_splice_timeout(void *arg, int pending __unused) +{ + struct so_splice *sp; + + sp = arg; + (void)so_unsplice(sp->src, true); +} + +/* + * Splice the output from so to the input of so2. + */ +static int +so_splice(struct socket *so, struct socket *so2, struct splice *splice) +{ + struct so_splice *sp; + int error; + + if (splice->sp_max < 0) + return (EINVAL); + /* Handle only TCP for now; TODO: other streaming protos */ + if (so->so_proto->pr_protocol != IPPROTO_TCP || + so2->so_proto->pr_protocol != IPPROTO_TCP) + return (EPROTONOSUPPORT); + if (so->so_vnet != so2->so_vnet) + return (EINVAL); + + /* so_splice_xfer() assumes that we're using these implementations. */ + KASSERT(so->so_proto->pr_sosend == sosend_generic, + ("so_splice: sosend not sosend_generic")); + KASSERT(so2->so_proto->pr_soreceive == soreceive_generic || + so2->so_proto->pr_soreceive == soreceive_stream, + ("so_splice: soreceive not soreceive_generic/stream")); + + sp = so_splice_alloc(splice->sp_max); + so->so_splice_sent = 0; + sp->src = so; + sp->dst = so2; + + error = 0; + SOCK_LOCK(so); + if (SOLISTENING(so)) + error = EINVAL; + else if ((so->so_state & (SS_ISCONNECTED | SS_ISCONNECTING)) == 0) + error = ENOTCONN; + else if (so->so_splice != NULL) + error = EBUSY; + if (error != 0) { + SOCK_UNLOCK(so); + uma_zfree(splice_zone, sp); + return (error); + } + soref(so); + so->so_splice = sp; + SOCK_RECVBUF_LOCK(so); + so->so_rcv.sb_flags |= SB_SPLICED; + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + + error = 0; + SOCK_LOCK(so2); + if (SOLISTENING(so2)) + error = EINVAL; + else if ((so2->so_state & (SS_ISCONNECTED | SS_ISCONNECTING)) == 0) + error = ENOTCONN; + else if (so2->so_splice_back != NULL) + error = EBUSY; + if (error != 0) { + SOCK_UNLOCK(so2); + SOCK_LOCK(so); + so->so_splice = NULL; + SOCK_RECVBUF_LOCK(so); + so->so_rcv.sb_flags &= ~SB_SPLICED; + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + sorele(so); + uma_zfree(splice_zone, sp); + return (error); + } + soref(so2); + so2->so_splice_back = sp; + SOCK_SENDBUF_LOCK(so2); + so2->so_snd.sb_flags |= SB_SPLICED; + mtx_lock(&sp->mtx); + SOCK_SENDBUF_UNLOCK(so2); + SOCK_UNLOCK(so2); + + if (splice->sp_idle.tv_sec != 0 || splice->sp_idle.tv_usec != 0) { + taskqueue_enqueue_timeout_sbt(taskqueue_thread, &sp->timeout, + tvtosbt(splice->sp_idle), 0, C_PREL(4)); + } + + /* + * Transfer any data already present in the socket buffer. + */ + sp->state = SPLICE_QUEUED; + so_splice_xfer(sp); + return (0); +} + +static int +so_unsplice(struct socket *so, bool timeout) +{ + struct socket *so2; + struct so_splice *sp; + bool drain; + + /* + * First unset SB_SPLICED and hide the splice structure so that + * wakeup routines will stop enqueuing work. This also ensures that + * a only a single thread will proceed with the unsplice. + */ + SOCK_LOCK(so); + if (SOLISTENING(so)) { + SOCK_UNLOCK(so); + return (EINVAL); + } + SOCK_RECVBUF_LOCK(so); + if ((so->so_rcv.sb_flags & SB_SPLICED) == 0) { + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + return (ENOTCONN); + } + so->so_rcv.sb_flags &= ~SB_SPLICED; + sp = so->so_splice; + so->so_splice = NULL; + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + + so2 = sp->dst; + SOCK_LOCK(so2); + KASSERT(!SOLISTENING(so2), ("%s: so2 is listening", __func__)); + SOCK_SENDBUF_LOCK(so2); + KASSERT((so2->so_snd.sb_flags & SB_SPLICED) != 0, + ("%s: so2 is not spliced", __func__)); + KASSERT(so2->so_splice_back == sp, + ("%s: so_splice_back != sp", __func__)); + so2->so_snd.sb_flags &= ~SB_SPLICED; + so2->so_splice_back = NULL; + SOCK_SENDBUF_UNLOCK(so2); + SOCK_UNLOCK(so2); + + /* + * No new work is being enqueued. The worker thread might be + * splicing data right now, in which case we want to wait for it to + * finish before proceeding. + */ + mtx_lock(&sp->mtx); + switch (sp->state) { + case SPLICE_QUEUED: + case SPLICE_RUNNING: + sp->state = SPLICE_CLOSING; + while (sp->state == SPLICE_CLOSING) + msleep(sp, &sp->mtx, PSOCK, "unsplice", 0); + break; + case SPLICE_IDLE: + case SPLICE_EXCEPTION: + sp->state = SPLICE_CLOSED; + break; + default: + __assert_unreachable(); + } + if (!timeout) { + drain = taskqueue_cancel_timeout(taskqueue_thread, &sp->timeout, + NULL) != 0; + } else { + drain = false; + } + mtx_unlock(&sp->mtx); + if (drain) + taskqueue_drain_timeout(taskqueue_thread, &sp->timeout); + + /* + * Now we hold the sole reference to the splice structure. + * Clean up: signal userspace and release socket references. + */ + sorwakeup(so); + CURVNET_SET(so->so_vnet); + sorele(so); + sowwakeup(so2); + sorele(so2); + CURVNET_RESTORE(); + so_splice_free(sp); + return (0); +} + /* * Free socket upon release of the very last reference. */ @@ -1226,6 +1831,12 @@ sofree(struct socket *so) ("%s: so %p has references", __func__, so)); KASSERT(SOLISTENING(so) || so->so_qstate == SQ_NONE, ("%s: so %p is on listen queue", __func__, so)); + KASSERT(SOLISTENING(so) || (so->so_rcv.sb_flags & SB_SPLICED) == 0, + ("%s: so %p rcvbuf is spliced", __func__, so)); + KASSERT(SOLISTENING(so) || (so->so_snd.sb_flags & SB_SPLICED) == 0, + ("%s: so %p sndbuf is spliced", __func__, so)); + KASSERT(so->so_splice == NULL && so->so_splice_back == NULL, + ("%s: so %p has spliced data", __func__, so)); SOCK_UNLOCK(so); @@ -3318,6 +3929,59 @@ sosetopt(struct socket *so, struct sockopt *sopt) so->so_max_pacing_rate = val32; break; + case SO_SPLICE: { + struct splice splice; + +#ifdef COMPAT_FREEBSD32 + if (SV_CURPROC_FLAG(SV_ILP32)) { + struct splice32 splice32; + + error = sooptcopyin(sopt, &splice32, + sizeof(splice32), sizeof(splice32)); + if (error == 0) { + splice.sp_fd = splice32.sp_fd; + splice.sp_max = splice32.sp_max; + CP(splice32.sp_idle, splice.sp_idle, + tv_sec); + CP(splice32.sp_idle, splice.sp_idle, + tv_usec); + } + } else +#endif + { + error = sooptcopyin(sopt, &splice, + sizeof(splice), sizeof(splice)); + } + if (error) + goto bad; + ktrsplice(&splice); + + error = splice_init(); + if (error != 0) + goto bad; + + if (splice.sp_fd >= 0) { + struct file *fp; + struct socket *so2; + + if (!cap_rights_contains(sopt->sopt_rights, + &cap_recv_rights)) { + error = ENOTCAPABLE; + goto bad; + } + error = getsock(sopt->sopt_td, splice.sp_fd, + &cap_send_rights, &fp); + if (error != 0) + goto bad; + so2 = fp->f_data; + + error = so_splice(so, so2, &splice); + fdrop(fp, sopt->sopt_td); + } else { + error = so_unsplice(so, false); + } + break; + } default: #ifdef SOCKET_HHOOK if (V_socket_hhh[HHOOK_SOCKET_OPT]->hhh_nhooks > 0) @@ -3537,6 +4201,33 @@ integer: optval = so->so_max_pacing_rate; goto integer; + case SO_SPLICE: { + off_t n; + + /* + * Acquire the I/O lock to serialize with + * so_splice_xfer(). This is not required for + * correctness, but makes testing simpler: once a byte + * has been transmitted to the sink and observed (e.g., + * by reading from the socket to which the sink is + * connected), a subsequent getsockopt(SO_SPLICE) will + * return an up-to-date value. + */ + error = SOCK_IO_RECV_LOCK(so, SBL_WAIT); + if (error != 0) + goto bad; + SOCK_LOCK(so); + if (SOLISTENING(so)) { + n = 0; + } else { + n = so->so_splice_sent; + } + SOCK_UNLOCK(so); + SOCK_IO_RECV_UNLOCK(so); + error = sooptcopyout(sopt, &n, sizeof(n)); + break; + } *** 224 LINES SKIPPED *** From nobody Tue Sep 10 16:55:23 2024 X-Original-To: dev-commits-src-main@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 4X38vv4xWDz5WC67; Tue, 10 Sep 2024 16:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X38vv2Yh6z44VT; Tue, 10 Sep 2024 16:55:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987323; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CYfw3F2KPf3BYSV9lI+2RhrmslfuQ+vbxEtxJWJjTeU=; b=meFmhwFVKe8NFxkFYJ24fsegPI/urr1Vt+7yH/rJNfBTVsfR/yrCmbAn9ebhi3C+CmRifL 2yyKv5T7AJpC52x/LFowmdo4mKfT3haJjJQg+dpnabgkweN8lWKnxx245vdelin1X785qV ec+vvoqAKGbACqAOh8QDvMvIWI8giybp4JjGS1EpVnbHwcu+EQb+ov09wggG2SXBcogEN9 ti32GAfqGXR2teJS2VNb5BI7HvfDnjXUIeSDg9hUkH4y+Usp1oSBz5o+nQ4fkpxA7tboxc OvR6FtOUEgtk1q1BXZNVlRyNKXC1OqRwtRiEo1M4ws6t5WjYtoTRtCnXTq/RUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725987323; a=rsa-sha256; cv=none; b=QLCgbNt47vwSuhstyg4b3HuhwhvvHdJN1EK2nJx8b/fmgw6Dyzq1K17UaC+wNEBh7ZwiC/ vIrovckBdIEZE8Mq1p8q2Uvw5PFg7U2wcD08Ruz0H5z6/CRFTIoH0HJWWtUJ91/8TngkVo jRyGwJ+PHBvAT4T2Hlq3FXcbVeADDe7DsBDmoDx7fQ97P/oLRKyw6kU8xHl0W5JP70gJxr afgQ1W02JsPjRQU9WhZRIx0n83BylLdyh1ZdzOAe0/CRjTECSCw/1/q5799c5w/ahy2hcz 8N0W7DYLM8x+rftNByDakhIHk1k5KgXyxLNO2W4vFHQjvAV9NtMLNImGHaAONQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725987323; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CYfw3F2KPf3BYSV9lI+2RhrmslfuQ+vbxEtxJWJjTeU=; b=rJ4OYxa3lcwbW6wbMNphcZGVjN4LUcZ7I1NFoMUoilqs2Iuk2Dvk5jQtuzgv1xf5t/nV+8 ENeMk3sZWz0Yni0dLncpG8m2vkzhr3YV65q0PMLsgrYsnuUfzgPSBd4s2AuWVFGLK+6A/t c9zlrpblCdldoSj8wuNRR5Xpy6GtzQ8MT9WeoS4rau8h18bhcueBRZpVOyE+pbM4GGiQQA XQpijdDHXyt8IyAxJ9e1p8LH9viJUE9SHZJrO8GeDKrWVT0Qsow67+KBZ8h9AxIOtPOjXg CTXfRKzcyCZCW3EkQQgblygzGgjo/Mrf276OPXP52MtoHGDFIrossF1l4CBMig== 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 4X38vv28z9zw8b; Tue, 10 Sep 2024 16:55:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AGtNIO084016; Tue, 10 Sep 2024 16:55:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AGtNiW084013; Tue, 10 Sep 2024 16:55:23 GMT (envelope-from git) Date: Tue, 10 Sep 2024 16:55:23 GMT Message-Id: <202409101655.48AGtNiW084013@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: 877cf210c08b - main - tests: Add some test cases for SO_SPLICE List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 877cf210c08b99aa532107e176b372de58579493 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=877cf210c08b99aa532107e176b372de58579493 commit 877cf210c08b99aa532107e176b372de58579493 Author: Mark Johnston AuthorDate: 2024-09-10 16:51:03 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 16:52:01 +0000 tests: Add some test cases for SO_SPLICE Reviewed by: gallatin MFC after: 3 months Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46412 --- tests/sys/kern/Makefile | 2 + tests/sys/kern/socket_splice.c | 979 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 981 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 113e044b449b..e334ff64da41 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -34,6 +34,7 @@ ATF_TESTS_C+= socket_accept ATF_TESTS_C+= socket_accf ATF_TESTS_C+= socket_msg_trunc ATF_TESTS_C+= socket_msg_waitall +ATF_TESTS_C+= socket_splice TEST_METADATA.sigwait+= is_exclusive="true" .if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH:Mpowerpc*} == "" ATF_TESTS_C+= subr_physmem_test @@ -84,6 +85,7 @@ LIBADD.ktls_test+= crypto util LIBADD.listener_wakeup+= pthread LIBADD.shutdown_dgram+= pthread LIBADD.socket_msg_waitall+= pthread +LIBADD.socket_splice+= pthread LIBADD.sendfile_helper+= pthread LIBADD.fdgrowtable_test+= util pthread kvm procstat LIBADD.sigwait+= rt diff --git a/tests/sys/kern/socket_splice.c b/tests/sys/kern/socket_splice.c new file mode 100644 index 000000000000..3970f16b34dc --- /dev/null +++ b/tests/sys/kern/socket_splice.c @@ -0,0 +1,979 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024 Stormshield + */ + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +static void +checked_close(int fd) +{ + int error; + + error = close(fd); + ATF_REQUIRE_MSG(error == 0, "close failed: %s", strerror(errno)); +} + +static int +fionread(int fd) +{ + int data, error; + + data = 0; + error = ioctl(fd, FIONREAD, &data); + ATF_REQUIRE_MSG(error == 0, "ioctl failed: %s", strerror(errno)); + ATF_REQUIRE(data >= 0); + return (data); +} + +static void +noblocking(int fd) +{ + int flags, error; + + flags = fcntl(fd, F_GETFL); + ATF_REQUIRE_MSG(flags != -1, "fcntl failed: %s", strerror(errno)); + flags |= O_NONBLOCK; + error = fcntl(fd, F_SETFL, flags); + ATF_REQUIRE_MSG(error == 0, "fcntl failed: %s", strerror(errno)); +} + +/* + * Create a pair of connected TCP sockets, returned via the "out" array. + */ +static void +tcp_socketpair(int out[2], int domain) +{ + struct sockaddr_in sin; + struct sockaddr_in6 sin6; + struct sockaddr *sinp; + int error, sd[2]; + + sd[0] = socket(domain, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd[0] >= 0, "socket failed: %s", strerror(errno)); + sd[1] = socket(domain, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd[1] >= 0, "socket failed: %s", strerror(errno)); + + error = setsockopt(sd[0], IPPROTO_TCP, TCP_NODELAY, &(int){ 1 }, + sizeof(int)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + error = setsockopt(sd[1], IPPROTO_TCP, TCP_NODELAY, &(int){ 1 }, + sizeof(int)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + + if (domain == PF_INET) { + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_len = sizeof(sin); + sin.sin_addr.s_addr = htonl(INADDR_ANY); + sin.sin_port = htons(0); + sinp = (struct sockaddr *)&sin; + } else { + ATF_REQUIRE(domain == PF_INET6); + memset(&sin6, 0, sizeof(sin6)); + sin6.sin6_family = AF_INET6; + sin6.sin6_len = sizeof(sin6); + sin6.sin6_addr = in6addr_any; + sin6.sin6_port = htons(0); + sinp = (struct sockaddr *)&sin6; + } + + error = bind(sd[0], sinp, sinp->sa_len); + ATF_REQUIRE_MSG(error == 0, "bind failed: %s", strerror(errno)); + error = listen(sd[0], 1); + ATF_REQUIRE_MSG(error == 0, "listen failed: %s", strerror(errno)); + + error = getsockname(sd[0], sinp, &(socklen_t){ sinp->sa_len }); + ATF_REQUIRE_MSG(error == 0, "getsockname failed: %s", strerror(errno)); + + error = connect(sd[1], sinp, sinp->sa_len); + ATF_REQUIRE_MSG(error == 0, "connect failed: %s", strerror(errno)); + out[0] = accept(sd[0], NULL, NULL); + ATF_REQUIRE_MSG(out[0] >= 0, "accept failed: %s", strerror(errno)); + checked_close(sd[0]); + out[1] = sd[1]; +} + +static void +tcp4_socketpair(int out[2]) +{ + tcp_socketpair(out, PF_INET); +} + +static void +tcp6_socketpair(int out[2]) +{ + tcp_socketpair(out, PF_INET6); +} + +static off_t +nspliced(int sd) +{ + off_t n; + socklen_t len; + int error; + + len = sizeof(n); + error = getsockopt(sd, SOL_SOCKET, SO_SPLICE, &n, &len); + ATF_REQUIRE_MSG(error == 0, "getsockopt failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(len == sizeof(n), "unexpected length: %d", len); + return (n); +} + +/* + * Use a macro so that ATF_REQUIRE_MSG prints a useful line number. + */ +#define check_nspliced(sd, n) do { \ + off_t sofar; \ + \ + sofar = nspliced(sd); \ + ATF_REQUIRE_MSG(sofar == (off_t)n, "spliced %jd bytes, expected %jd", \ + (intmax_t)sofar, (intmax_t)n); \ +} while (0) + +static void +splice_init(struct splice *sp, int fd, off_t max, struct timeval *tv) +{ + memset(sp, 0, sizeof(*sp)); + sp->sp_fd = fd; + sp->sp_max = max; + if (tv != NULL) + sp->sp_idle = *tv; + else + sp->sp_idle.tv_sec = sp->sp_idle.tv_usec = 0; +} + +static void +unsplice(int fd) +{ + struct splice sp; + int error; + + splice_init(&sp, -1, 0, NULL); + error = setsockopt(fd, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); +} + +static void +unsplice_pair(int fd1, int fd2) +{ + unsplice(fd1); + unsplice(fd2); +} + +static void +splice_pair(int fd1, int fd2, off_t max, struct timeval *tv) +{ + struct splice sp; + int error; + + splice_init(&sp, fd1, max, tv); + error = setsockopt(fd2, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + + splice_init(&sp, fd2, max, tv); + error = setsockopt(fd1, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); +} + +/* + * A structure representing a spliced pair of connections. left[1] is + * bidirectionally spliced with right[0]. + */ +struct splice_conn { + int left[2]; + int right[2]; +}; + +/* + * Initialize a splice connection with the given maximum number of bytes to + * splice and the given idle timeout. For now we're forced to use TCP socket, + * but at some point it would be nice (and simpler) to use pairs of PF_LOCAL + * sockets. + */ +static void +splice_conn_init_limits(struct splice_conn *sc, off_t max, struct timeval *tv) +{ + memset(sc, 0, sizeof(*sc)); + tcp4_socketpair(sc->left); + tcp4_socketpair(sc->right); + splice_pair(sc->left[1], sc->right[0], max, tv); +} + +static void +splice_conn_init(struct splice_conn *sc) +{ + splice_conn_init_limits(sc, 0, NULL); +} + +static void +splice_conn_check_empty(struct splice_conn *sc) +{ + int data; + + data = fionread(sc->left[0]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on left[0]: %d", data); + data = fionread(sc->left[1]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on left[1]: %d", data); + data = fionread(sc->right[0]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on right[0]: %d", data); + data = fionread(sc->right[1]); + ATF_REQUIRE_MSG(data == 0, "unexpected data on right[1]: %d", data); +} + +static void +splice_conn_fini(struct splice_conn *sc) +{ + checked_close(sc->left[0]); + checked_close(sc->left[1]); + checked_close(sc->right[0]); + checked_close(sc->right[1]); +} + +static void +splice_conn_noblocking(struct splice_conn *sc) +{ + noblocking(sc->left[0]); + noblocking(sc->left[1]); + noblocking(sc->right[0]); + noblocking(sc->right[1]); +} + +/* Pass a byte through a pair of spliced connections. */ +ATF_TC_WITHOUT_HEAD(splice_basic); +ATF_TC_BODY(splice_basic, tc) +{ + struct splice_conn sc; + ssize_t n; + char c; + + splice_conn_init(&sc); + + check_nspliced(sc.left[1], 0); + check_nspliced(sc.right[0], 0); + + /* Left-to-right. */ + c = 'M'; + n = write(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'M', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 0); + + /* Right-to-left. */ + c = 'J'; + n = write(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'J', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + /* Unsplice and verify that the byte counts haven't changed. */ + unsplice(sc.left[1]); + unsplice(sc.right[0]); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + splice_conn_fini(&sc); +} + +static void +remove_rights(int fd, const cap_rights_t *toremove) +{ + cap_rights_t rights; + int error; + + error = cap_rights_get(fd, &rights); + ATF_REQUIRE_MSG(error == 0, "cap_rights_get failed: %s", + strerror(errno)); + cap_rights_remove(&rights, toremove); + error = cap_rights_limit(fd, &rights); + ATF_REQUIRE_MSG(error == 0, "cap_rights_limit failed: %s", + strerror(errno)); +} + +/* + * Verify that splicing fails when the socket is missing the necessary rights. + */ +ATF_TC_WITHOUT_HEAD(splice_capsicum); +ATF_TC_BODY(splice_capsicum, tc) +{ + struct splice sp; + cap_rights_t rights; + off_t n; + int error, left[2], right[2]; + + tcp4_socketpair(left); + tcp4_socketpair(right); + + /* + * Make sure that we splice a socket that's missing recv rights. + */ + remove_rights(left[1], cap_rights_init(&rights, CAP_RECV)); + splice_init(&sp, right[0], 0, NULL); + error = setsockopt(left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCAPABLE, error == -1); + + /* Make sure we can still splice left[1] in the other direction. */ + splice_init(&sp, left[1], 0, NULL); + error = setsockopt(right[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + splice_init(&sp, -1, 0, NULL); + error = setsockopt(right[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + + /* + * Now remove send rights from left[1] and verify that splicing is no + * longer possible. + */ + remove_rights(left[1], cap_rights_init(&rights, CAP_SEND)); + splice_init(&sp, left[1], 0, NULL); + error = setsockopt(right[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCAPABLE, error == -1); + + /* + * It's still ok to query the SO_SPLICE state though. + */ + n = -1; + error = getsockopt(left[1], SOL_SOCKET, SO_SPLICE, &n, + &(socklen_t){ sizeof(n) }); + ATF_REQUIRE_MSG(error == 0, "getsockopt failed: %s", strerror(errno)); + ATF_REQUIRE(n == 0); + + /* + * Make sure that we can unsplice a spliced pair without any rights + * other than CAP_SETSOCKOPT. + */ + splice_pair(left[0], right[1], 0, NULL); + error = cap_rights_limit(left[0], + cap_rights_init(&rights, CAP_SETSOCKOPT)); + ATF_REQUIRE_MSG(error == 0, "cap_rights_limit failed: %s", + strerror(errno)); + unsplice(left[0]); + + checked_close(left[0]); + checked_close(left[1]); + checked_close(right[0]); + checked_close(right[1]); +} + +/* + * Check various error cases in splice configuration. + */ +ATF_TC_WITHOUT_HEAD(splice_error); +ATF_TC_BODY(splice_error, tc) +{ + struct splice_conn sc; + struct splice sp; + char path[PATH_MAX]; + int error, fd, sd, usd[2]; + + memset(&sc, 0, sizeof(sc)); + tcp4_socketpair(sc.left); + tcp4_socketpair(sc.right); + + /* A negative byte limit is invalid. */ + splice_init(&sp, sc.right[0], -3, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + + /* Can't unsplice a never-spliced socket. */ + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + + /* Can't double-unsplice a socket. */ + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + unsplice(sc.left[1]); + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + + /* Can't splice a spliced socket */ + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); + splice_init(&sp, sc.right[1], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EBUSY, error == -1); + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sc.left[0], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EBUSY, error == -1); + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + + /* Can't splice to a non-socket. */ + snprintf(path, sizeof(path), "/tmp/splice_error.XXXXXX"); + fd = mkstemp(path); + ATF_REQUIRE_MSG(fd >= 0, "mkstemp failed: %s", strerror(errno)); + splice_init(&sp, fd, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTSOCK, error == -1); + + /* Can't splice to an invalid fd. */ + checked_close(fd); + splice_init(&sp, fd, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EBADF, error == -1); + + /* Can't splice a unix stream socket. */ + error = socketpair(AF_UNIX, SOCK_STREAM, 0, usd); + ATF_REQUIRE_MSG(error == 0, "socketpair failed: %s", strerror(errno)); + splice_init(&sp, usd[0], 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EPROTONOSUPPORT, error == -1); + error = setsockopt(usd[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EPROTONOSUPPORT, error == -1); + checked_close(usd[0]); + checked_close(usd[1]); + + /* Can't splice an unconnected TCP socket. */ + sd = socket(PF_INET, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd >= 0, "socket failed: %s", strerror(errno)); + splice_init(&sp, sd, 0, NULL); + error = setsockopt(sc.left[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + splice_init(&sp, sc.right[0], 0, NULL); + error = setsockopt(sd, SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(ENOTCONN, error == -1); + + splice_conn_fini(&sc); +} + +/* + * Make sure that kevent() doesn't report read I/O events on spliced sockets. + */ +ATF_TC_WITHOUT_HEAD(splice_kevent); +ATF_TC_BODY(splice_kevent, tc) +{ + struct splice_conn sc; + struct kevent kev; + struct timespec ts; + ssize_t n; + int error, nev, kq; + uint8_t b; + + splice_conn_init(&sc); + + kq = kqueue(); + ATF_REQUIRE_MSG(kq >= 0, "kqueue failed: %s", strerror(errno)); + + EV_SET(&kev, sc.left[1], EVFILT_READ, EV_ADD, 0, 0, NULL); + error = kevent(kq, &kev, 1, NULL, 0, NULL); + ATF_REQUIRE_MSG(error == 0, "kevent failed: %s", strerror(errno)); + + memset(&ts, 0, sizeof(ts)); + nev = kevent(kq, NULL, 0, &kev, 1, &ts); + ATF_REQUIRE_MSG(nev >= 0, "kevent failed: %s", strerror(errno)); + ATF_REQUIRE(nev == 0); + + b = 'M'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'M'); + + nev = kevent(kq, NULL, 0, &kev, 1, &ts); + ATF_REQUIRE_MSG(nev >= 0, "kevent failed: %s", strerror(errno)); + ATF_REQUIRE(nev == 0); + + b = 'J'; + n = write(sc.right[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'J'); + + splice_conn_fini(&sc); + checked_close(kq); +} + +/* + * Verify that a splice byte limit is applied. + */ +ATF_TC_WITHOUT_HEAD(splice_limit_bytes); +ATF_TC_BODY(splice_limit_bytes, tc) +{ + struct splice_conn sc; + ssize_t n; + uint8_t b, buf[128]; + + splice_conn_init_limits(&sc, sizeof(buf) + 1, NULL); + + memset(buf, 'A', sizeof(buf)); + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = write(sc.left[0], buf, total); + ATF_REQUIRE_MSG(n > 0, "write failed: %s", strerror(errno)); + } + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = read(sc.right[1], buf, sizeof(buf)); + ATF_REQUIRE_MSG(n > 0, "read failed: %s", strerror(errno)); + } + + check_nspliced(sc.left[1], sizeof(buf)); + check_nspliced(sc.right[0], 0); + + /* Trigger an unsplice by writing the last byte. */ + b = 'B'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'B'); + + /* + * The next byte should appear on the other side of the connection + * rather than the splice. + */ + b = 'C'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'C'); + + splice_conn_check_empty(&sc); + + splice_conn_fini(&sc); +} + +/* + * Verify that a splice timeout limit is applied. + */ +ATF_TC_WITHOUT_HEAD(splice_limit_timeout); +ATF_TC_BODY(splice_limit_timeout, tc) +{ + struct splice_conn sc; + ssize_t n; + int error; + uint8_t b, buf[128]; + + splice_conn_init_limits(&sc, 0, + &(struct timeval){ .tv_sec = 0, .tv_usec = 500000 /* 500ms */ }); + + /* Write some data through the splice. */ + memset(buf, 'A', sizeof(buf)); + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = write(sc.left[0], buf, total); + ATF_REQUIRE_MSG(n > 0, "write failed: %s", strerror(errno)); + } + for (size_t total = sizeof(buf); total > 0; total -= n) { + n = read(sc.right[1], buf, sizeof(buf)); + ATF_REQUIRE_MSG(n > 0, "read failed: %s", strerror(errno)); + } + + check_nspliced(sc.left[1], sizeof(buf)); + check_nspliced(sc.right[0], 0); + + /* Wait for the splice to time out. */ + error = usleep(550000); + ATF_REQUIRE_MSG(error == 0, "usleep failed: %s", strerror(errno)); + + /* + * The next byte should appear on the other side of the connection + * rather than the splice. + */ + b = 'C'; + n = write(sc.left[0], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[1], &b, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + ATF_REQUIRE(b == 'C'); + + splice_conn_fini(&sc); +} + +/* + * Make sure that listen() fails on spliced sockets, and that SO_SPLICE can't be + * used with listening sockets. + */ +ATF_TC_WITHOUT_HEAD(splice_listen); +ATF_TC_BODY(splice_listen, tc) +{ + struct splice sp; + struct splice_conn sc; + int error, sd[3]; + + /* + * These should fail regardless since the sockets are connected, but it + * doesn't hurt to check. + */ + splice_conn_init(&sc); + error = listen(sc.left[1], 1); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + error = listen(sc.right[0], 1); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + splice_conn_fini(&sc); + + tcp4_socketpair(sd); + sd[2] = socket(PF_INET, SOCK_STREAM, 0); + ATF_REQUIRE_MSG(sd[2] >= 0, "socket failed: %s", strerror(errno)); + error = listen(sd[2], 1); + ATF_REQUIRE_MSG(error == 0, "listen failed: %s", strerror(errno)); + + /* + * Make sure a listening socket can't be spliced in either direction. + */ + splice_init(&sp, sd[2], 0, NULL); + error = setsockopt(sd[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + splice_init(&sp, sd[1], 0, NULL); + error = setsockopt(sd[2], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + + /* + * Make sure we can't try to unsplice a listening socket. + */ + splice_init(&sp, -1, 0, NULL); + error = setsockopt(sd[2], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_ERRNO(EINVAL, error == -1); + + checked_close(sd[0]); + checked_close(sd[1]); + checked_close(sd[2]); +} + +static void +sigalarm(int sig __unused) +{ +} + +/* + * Our SO_SPLICE implementation doesn't do anything to prevent loops. We should + * however make sure that they are interruptible. + */ +ATF_TC_WITHOUT_HEAD(splice_loop); +ATF_TC_BODY(splice_loop, tc) +{ + ssize_t n; + int sd[2], status; + pid_t child; + char c; + + tcp_socketpair(sd, PF_INET); + splice_pair(sd[0], sd[1], 0, NULL); + + /* + * Let the child process trigger an infinite loop. It should still be + * possible to kill the child with a signal, causing the connection to + * be dropped and ending the loop. + */ + child = fork(); + ATF_REQUIRE_MSG(child >= 0, "fork failed: %s", strerror(errno)); + if (child == 0) { + alarm(2); + c = 42; + n = write(sd[0], &c, 1); + if (n != 1) + _exit(2); + c = 24; + n = write(sd[1], &c, 1); + if (n != 1) + _exit(3); + + for (;;) { + /* Wait for SIGALARM. */ + sleep(100); + } + + _exit(0); + } else { + checked_close(sd[0]); + checked_close(sd[1]); + + child = waitpid(child, &status, 0); + ATF_REQUIRE_MSG(child >= 0, + "waitpid failed: %s", strerror(errno)); + ATF_REQUIRE(WIFSIGNALED(status)); + ATF_REQUIRE(WTERMSIG(status) == SIGALRM); + } +} + +/* + * Simple I/O test. + */ +ATF_TC_WITHOUT_HEAD(splice_nonblock); +ATF_TC_BODY(splice_nonblock, tc) +{ + struct splice_conn sc; + char buf[200]; + size_t sofar; + ssize_t n; + + splice_conn_init(&sc); + splice_conn_noblocking(&sc); + + memset(buf, 'A', sizeof(buf)); + for (sofar = 0;;) { + n = write(sc.left[0], buf, sizeof(buf)); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + break; + } + sofar += n; + } + + while (sofar > 0) { + n = read(sc.right[1], buf, sizeof(buf)); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + usleep(100); + } else { + for (size_t i = 0; i < (size_t)n; i++) + ATF_REQUIRE(buf[i] == 'A'); + sofar -= n; + } + } + + splice_conn_fini(&sc); +} + +ATF_TC_WITHOUT_HEAD(splice_resplice); +ATF_TC_BODY(splice_resplice, tc) +{ + struct splice_conn sc; + ssize_t n; + char c; + + splice_conn_init(&sc); + + /* Left-to-right. */ + c = 'M'; + n = write(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'M', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 0); + + /* Right-to-left. */ + c = 'J'; + n = write(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'J', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + /* Unsplice and verify that the byte counts haven't changed. */ + unsplice(sc.left[1]); + unsplice(sc.right[0]); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + /* Splice again, check that byte counts are reset. */ + splice_pair(sc.left[1], sc.right[0], 0, NULL); + check_nspliced(sc.left[1], 0); + check_nspliced(sc.right[0], 0); + + /* Left-to-right. */ + c = 'M'; + n = write(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'M', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 0); + + /* Right-to-left. */ + c = 'J'; + n = write(sc.right[1], &c, 1); + ATF_REQUIRE_MSG(n == 1, "write failed: %s", strerror(errno)); + n = read(sc.left[0], &c, 1); + ATF_REQUIRE_MSG(n == 1, "read failed: %s", strerror(errno)); + ATF_REQUIRE_MSG(c == 'J', "unexpected character: %c", c); + check_nspliced(sc.left[1], 1); + check_nspliced(sc.right[0], 1); + + splice_conn_fini(&sc); +} + +struct xfer_args { + pthread_barrier_t *barrier; + uint32_t bytes; + int fd; +}; + +static void * +xfer(void *arg) +{ + struct xfer_args *xfer; + uint8_t *buf; + size_t sz; + ssize_t n; + uint32_t resid; + int error; + + xfer = arg; + + error = fcntl(xfer->fd, F_SETFL, O_NONBLOCK); + ATF_REQUIRE_MSG(error == 0, "fcntl failed: %s", strerror(errno)); + + sz = MIN(xfer->bytes, 1024 * 1024); + buf = malloc(sz); + ATF_REQUIRE(buf != NULL); + arc4random_buf(buf, sz); + + pthread_barrier_wait(xfer->barrier); + + for (resid = xfer->bytes; xfer->bytes > 0 || resid > 0;) { + n = write(xfer->fd, buf, MIN(sz, xfer->bytes)); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + usleep(1000); + } else { + ATF_REQUIRE(xfer->bytes >= (size_t)n); + xfer->bytes -= n; + } + + n = read(xfer->fd, buf, sz); + if (n < 0) { + ATF_REQUIRE_ERRNO(EAGAIN, n == -1); + usleep(1000); + } else { + ATF_REQUIRE(resid >= (size_t)n); + resid -= n; + } + } + + free(buf); + return (NULL); +} + +/* + * Use two threads to transfer data between two spliced connections. + */ +ATF_TC_WITHOUT_HEAD(splice_throughput); +ATF_TC_BODY(splice_throughput, tc) +{ + struct xfer_args xfers[2]; + pthread_t thread[2]; + pthread_barrier_t barrier; + struct splice_conn sc; + uint32_t bytes; + int error; + + /* Transfer an amount between 1B and 1GB. */ + bytes = arc4random_uniform(1024 * 1024 * 1024) + 1; + splice_conn_init(&sc); + + error = pthread_barrier_init(&barrier, NULL, 2); + ATF_REQUIRE(error == 0); + xfers[0] = (struct xfer_args){ + .barrier = &barrier, + .bytes = bytes, + .fd = sc.left[0] + }; + xfers[1] = (struct xfer_args){ + .barrier = &barrier, + .bytes = bytes, + .fd = sc.right[1] + }; + + error = pthread_create(&thread[0], NULL, xfer, &xfers[0]); + ATF_REQUIRE_MSG(error == 0, + "pthread_create failed: %s", strerror(errno)); + error = pthread_create(&thread[1], NULL, xfer, &xfers[1]); + ATF_REQUIRE_MSG(error == 0, + "pthread_create failed: %s", strerror(errno)); + + error = pthread_join(thread[0], NULL); + ATF_REQUIRE_MSG(error == 0, + "pthread_join failed: %s", strerror(errno)); + error = pthread_join(thread[1], NULL); + ATF_REQUIRE_MSG(error == 0, + "pthread_join failed: %s", strerror(errno)); + + error = pthread_barrier_destroy(&barrier); + ATF_REQUIRE(error == 0); + splice_conn_fini(&sc); +} + +/* + * Make sure it's possible to splice v4 and v6 sockets together. + */ +ATF_TC_WITHOUT_HEAD(splice_v4v6); +ATF_TC_BODY(splice_v4v6, tc) +{ + struct splice sp; + ssize_t n; + int sd4[2], sd6[2]; + int error; + uint8_t b; + + tcp4_socketpair(sd4); + tcp6_socketpair(sd6); + + splice_init(&sp, sd6[0], 0, NULL); + error = setsockopt(sd4[1], SOL_SOCKET, SO_SPLICE, &sp, sizeof(sp)); + ATF_REQUIRE_MSG(error == 0, "setsockopt failed: %s", strerror(errno)); *** 41 LINES SKIPPED *** From nobody Tue Sep 10 17:53:41 2024 X-Original-To: dev-commits-src-main@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 4X3BCB0Z7mz5WJZP; Tue, 10 Sep 2024 17:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BC970T8z4DyL; Tue, 10 Sep 2024 17:53:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QA93LDcEdG19Myl1S8gVTRBbTfYbLSyHw6Fc5NeH3Kw=; b=tAg+DvwBTU4LQSci784xzbrBfdWNjpf3AaiwANpWIblUfHaX6Ji8lYc7p6xVLLb8N8O1Da 5rowdexv60mmoMh9EatNLAiICQnIo/UAvV/9WQC/Hqw6Vhd9saC7k0uJV6CH4agnWWv5RE 9kRI2FIA+TOxiBFl4d4dXKiqOEJUvYaFoy3E1O7QRCpJUmm3cKtEgvJ9OVcErl7IuADJA/ +Q6OrW0hFEvP2nymJPmvHbZECRJui5p217SHxHOocD9b+xTKmjZBCG6SNUzMkCKBMsebOC zuE4SXzSbC5XgJQrUp8kMitRc2D8jHkKr1pclHkdPAGxdBDo+Iw43GQt4M5uvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725990822; a=rsa-sha256; cv=none; b=vthZlH2LienH82492toB76hikYNxDpLNBQlBF048yhlBlPqQAdGRjCe9XOTvGUGedXoSOn yBz30brckNgP5Bn3BnX9yUi+REw62NFYNckuZ86bS4If2HdBT0u65Wl51E/f0VvtOiom3g d5Nln289EwdnwNd3dbSNml/cyHJh1F4ISaSbjP8HeI0AILL56NSTafyevSD2Tk/7SzUdz6 ZcCekIiV3heY5iWKN2eUhKP97R4u/73KTcpSb+RmIlSJybUWG8k7FK5Wr8IEcFIm8HQOVJ DrPDv8Tak3xT3eFZkL2G2/mMAvr7Vp8u7fCjVeDSbVsTq999JvdkezylVvXncQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QA93LDcEdG19Myl1S8gVTRBbTfYbLSyHw6Fc5NeH3Kw=; b=J4RipGxS62RkA6jGd7YxCsiKDudsG3la4CVKrR8hhEYWWTE3K5yNdwcgqCdQji1tNbirMs nSH3UHD6ts+bI+kgPQGBBTnE9HreG+vZvyyT3C/CLL3jjQioGgInuUR+JR3bJODmIBJnHi Jvhgx8JG6JcwTyVcm5G3QYl7zhd2CAWyVvPzbA2yEhxmeW1k6uxcybW2PWNHxbDA7r3XKm mGfCtdKahTdsAgqWGqrwleCIA/wN8Fdx8tro3h+jhszEvzsnJNL1jFo3brKi4zc4v3btUI rZrht9nt/+d2DhcsPAil8+O1IYe3SKLRZBG/eSnd7TaP+Hlr5I+mITo/od1j8w== 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 4X3BC96blQzx83; Tue, 10 Sep 2024 17:53:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AHrfOx086039; Tue, 10 Sep 2024 17:53:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AHrfl5086036; Tue, 10 Sep 2024 17:53:41 GMT (envelope-from git) Date: Tue, 10 Sep 2024 17:53:41 GMT Message-Id: <202409101753.48AHrfl5086036@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: a86678a3d6b4 - main - Remove a ktrace.out which snuck into an earlier commit List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: a86678a3d6b4d394d2979c41c2686523aa831888 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a86678a3d6b4d394d2979c41c2686523aa831888 commit a86678a3d6b4d394d2979c41c2686523aa831888 Author: Mark Johnston AuthorDate: 2024-09-10 17:52:43 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 17:52:43 +0000 Remove a ktrace.out which snuck into an earlier commit Fixes: b76961e3a21a ("kdump: Print splice structures") --- lib/libsysdecode/ktrace.out | Bin 23596 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lib/libsysdecode/ktrace.out b/lib/libsysdecode/ktrace.out deleted file mode 100644 index 29d35f0de3ce..000000000000 Binary files a/lib/libsysdecode/ktrace.out and /dev/null differ From nobody Tue Sep 10 17:55:02 2024 X-Original-To: dev-commits-src-main@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 4X3BDl1P5yz5WKDq; Tue, 10 Sep 2024 17:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BDl0Wzlz4FKQ; Tue, 10 Sep 2024 17:55:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QtxWUHF7S/mAXF2/bDYdUbSOHTsTYLDoRr9biM5b1Ok=; b=u6HvnnzLb/PSma1jTiKTRMSuIEAA2W7BG/YdWAkPwpXr0Z7EqtkKZeIT3fW7zff3uQAqmY rabd7vdi9XwADo2C6Fu31a3an8Z9dx63RSZ0fSR02936XrPlsYEoe5Hkuuj5XxVciLuG8Q OCJLC5vxCMYU/wPjEhZ7RQHNuJFMurwWUDUOTiJDZlFO9EosGMBQvFD0rNy0TnFF7pmHf8 RUXtAvpBbCoh3UXdyt+V3+y6pMRyEvez5xfswfS1q8va41rDfpluASi17dZEPt7D214VVx vnEAXcFphPZjJoDVCy9Y+bY2G2gGQbbbJYF6e1H1Mzng8b7Yn22OFFB7a9E8Ow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725990903; a=rsa-sha256; cv=none; b=JL9UUMzPtTDk1f3d8Zc9B3cR40/7uYUBbFzYzJTDt8Isku/He2qwTS+TbzH433RwC0PKy2 rp2Wa146hIM2QKQ5AFNJU95Ha8EzwsoalP4XZ62Wx6tG9iS4Qb9WJgWr6OMpNvHjCZPjX0 1FKaWwWhjXNhEztdAALGaGSw4CEGJHcVrYIAkdFxREStudbfEyq7aGsHwNetcm0sUgVI9f JJ61pbWtLGIce5nr3bOZacoDXOmHRRoCceZEUueqMzgGt1HLL6DCoaQcNDmHIzlb3C2/BL 7mKuPB6QFZ/JdifoEBVR7hjaKCheqiDT6jUYz1P7io+JAPPNKyUhGUUJPhBOJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QtxWUHF7S/mAXF2/bDYdUbSOHTsTYLDoRr9biM5b1Ok=; b=deH6G0UqJYI6vzTkaDVoOvH2HcqZCE8hE3PR9k0wzo2po2kt7QiAKCfIQX8wokKKmuIPAR nbXjO+xNniZohjIaiNzude+1NtSpx3wdygWDuRVlriDsBbQ0PFklBJMu8ZPQqm90pouzw7 qW1HW9ph49W8LQJNJJFSZ+ONIKj3DZFDZmqZB30xVz7Q5ZUc4n2KxnqZAAMkkzJCarOUf5 vJBsaNvM4CpXeTKiS1bMn9SyIs97/WixMfhJBVV8nf1B29JuVLbPvget5oMfa1D0x0Nriu kpb07xfZkJTVzKMy3CXJEShtNuADADgG4ZfrlB8TiRW0OOPuCgq1nMQk4vGOYA== 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 4X3BDk6z1KzxkV; Tue, 10 Sep 2024 17:55:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AHt2f6086383; Tue, 10 Sep 2024 17:55:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AHt2S4086380; Tue, 10 Sep 2024 17:55:02 GMT (envelope-from git) Date: Tue, 10 Sep 2024 17:55:02 GMT Message-Id: <202409101755.48AHt2S4086380@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: cc30f4ae6790 - main - depend-cleanup.sh: Extend clean_dep to support a custom regex List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: cc30f4ae6790cf4f19bc4787d7528dfea79ef27a Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=cc30f4ae6790cf4f19bc4787d7528dfea79ef27a commit cc30f4ae6790cf4f19bc4787d7528dfea79ef27a Author: Jessica Clarke AuthorDate: 2024-09-10 17:54:44 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 17:54:44 +0000 depend-cleanup.sh: Extend clean_dep to support a custom regex This will avoid having to duplicate the loop every time the default regex isn't good enough, and will be used by upcoming commits. --- tools/build/depend-cleanup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index 828586e9d231..cb2551fced78 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -89,11 +89,12 @@ run() # $1 directory # $2 source filename w/o extension # $3 source extension +# $4 optional regex for egrep -w clean_dep() { for libcompat in "" $ALL_libcompats; do dirprfx=${libcompat:+obj-lib${libcompat}/} - if egrep -qw "$2\.$3" "$OBJTOP"/$dirprfx$1/.depend.$2.*o 2>/dev/null; then + if egrep -qw "${4:-$2\.$3}" "$OBJTOP"/$dirprfx$1/.depend.$2.*o 2>/dev/null; then echo "Removing stale ${libcompat:+lib${libcompat} }dependencies and objects for $2.$3" run rm -f \ "$OBJTOP"/$dirprfx$1/.depend.$2.* \ From nobody Tue Sep 10 17:55:03 2024 X-Original-To: dev-commits-src-main@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 4X3BDm3hlhz5WK5k; Tue, 10 Sep 2024 17:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BDm1mCfz4FHj; Tue, 10 Sep 2024 17:55:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E+hOvpmUDg3ZpGxUthih2hod5IDsdx7H2i2WedSs3bQ=; b=JBDQPythmL/DYkW1s+1ocQjvvUcsg3BZa5x8b66eINQ3xIks18dTYlBxbH9qudSe2cCa/X EaTdQBfs/isP6dqKETZo5HaXhFuD8tsTfI/HXi2YpRMAINpLUYgZ4MYXXOIwDpKOtEcRsn 5lZ3FW1O76pckZ6d3qGV4Uxg0ToCqgU9PX/5GqK1Xu1gnCQnOp6Zw6I91wWPpmY/bxrzub uIavR6X3L3yG2JHY+OV7GuYimbHYnFnJfRTlE8eZpMdLjpS8DnBfUVa6+hAh8VEY8Z21FR K4zumvrHhN8fu8NRmVMVLTk3Zk3XPvtgptW1BCCN7GhJhcIWweU4Ku6WlrJdBA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725990904; a=rsa-sha256; cv=none; b=PXDlma02bUeUMZVl9S8mHFmNW+emr4ywLk6rxioTeWgxbNY1J4FO/4AkGfqPjocwk/9nk3 2126OxRbf4Ykuiz7LBItkJ/L4OdrlRpm1IoHSOFiagwfkwwOyDkxDx4PRgqhIGkHl2+U0x bOQq5C2+znFWbNFTqhCBHBQfMtdvOvXMSKI/N4QfUGIOQvfCBsH4FH86F/myvhguTmMZH8 XhsLwgyWa4O1NIcYy1ugiX9vDQG8deY16VXOFt3IRMOGaz8etjuOux0b1MaXFSQiK+CT79 jp3u30OXXlARWuAcpD2e9N97hBH4j+Fu2jAzQGtOoyzVEJF8e6hfGuV+j1A+Xg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E+hOvpmUDg3ZpGxUthih2hod5IDsdx7H2i2WedSs3bQ=; b=c1YcAGUg8+DrGoGmWLgSL/Nva/xgopPw1yvDg8K74dBPtN8lcIJKSrHHnjVMsftgHrst61 aQmpYh2ov5wGaV2Rc7WUvC27GrVpY24Ws87xffAUzz3n4ZltyRjz/vPD0W656wxTt3Izd0 YIhhHzJ5UtFopRoUYuet+3W3LulWTjlw0yz1OT4jYb46cIl0b29X7Vq/QpzEif2zYuWuPn n4uz5HQQOAeXm3iGUO3tALh5I1Pw39rb/10TSccSjYHpPLFV7MHRm8l6N9fOdae6bhAiVJ AtvTVmjA7BcAMy8eaMAVtRHWs3bkvsNET6O2iTGMf8YSmgZict5QHtqCfUUi9Q== 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 4X3BDm0FcBzxDV; Tue, 10 Sep 2024 17:55:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AHt3TZ086425; Tue, 10 Sep 2024 17:55:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AHt38m086422; Tue, 10 Sep 2024 17:55:03 GMT (envelope-from git) Date: Tue, 10 Sep 2024 17:55:03 GMT Message-Id: <202409101755.48AHt38m086422@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: 0980d0a0376f - main - depend-cleanup.sh: Fix overzealous abd_os.c cleanup List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 0980d0a0376fc73cbaeda9f0713cfb84c881bc2c Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=0980d0a0376fc73cbaeda9f0713cfb84c881bc2c commit 0980d0a0376fc73cbaeda9f0713cfb84c881bc2c Author: Jessica Clarke AuthorDate: 2024-09-10 17:54:45 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 17:54:45 +0000 depend-cleanup.sh: Fix overzealous abd_os.c cleanup A source file with the same name is still used to build an abd_os.o, it just comes from a different directory. Thus we need to include part of the path in the regex too. Technically zfs/abd_os\.c would suffice given it's now in sys/contrib/openzfs/lib/libzpool/abd_os.c, but this seems clearer and less likely to have future false-positives. Fixes: fd3d3240b0d7 ("depend-cleanup.sh: Add a rule to work around abd_os.c dependency changes") --- tools/build/depend-cleanup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index cb2551fced78..b3608e46b65d 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -185,4 +185,4 @@ if [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \ fi # 20240910 e2df9bb44109 -clean_dep cddl/lib/libzpool abd_os c +clean_dep cddl/lib/libzpool abd_os c "linux/zfs/abd_os\.c" From nobody Tue Sep 10 17:55:05 2024 X-Original-To: dev-commits-src-main@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 4X3BDn4XdTz5WKKP; Tue, 10 Sep 2024 17:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BDn2LJDz4FHs; Tue, 10 Sep 2024 17:55:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WkDxuVciGLzjHnELBrXfgt5/amubGQKOix5dVS9goVw=; b=eQx2rlNHCJTsueUqPPHRwYwZ9ANstOs2sbRPr33fqX1riIq3RAAHHc3pOO6lzU57O8ALyW Ij1lQzVv/JV8anGbQ+eezNQrnEa6rGZ9oRvqmGZ2ZqqHUnCCwGXzT8hhgnWKkwLinTaPKi DwSqA/hnov1jCZSp0Y+U7YU5AKEbf8u2/MzgJnHKy4PjHunrx+UOGhkvH73YUG8z2OSCJ3 AXbSBXS96erJ6Dh2RApgQ3ngmNh/YEnvCdl+UFKFDr7yXSaczbAQLjIWsg0DZcGN+6mGyP Y/gUwpWT4+VXOE+rOK324CD0um1tp6anr4o/qg50IeNWLPmieLxP3g/paBJWpw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725990905; a=rsa-sha256; cv=none; b=Hb1441zdWNSGFF4tTIUqnuxS6o6Zw70RPzhZiCtBuVch629OSm26EeE+JQv3oPejqisCw2 AflPXgzSGHWJTKKCnKkaiAjOpp9aZ5U+56mlG6lBtfHXO62aumL72tMvXsbGeCdZpPyB03 BYw+XXJ4wOzwO04JlYq+LO8JEXVhii6QV4KspMO3JwpjNkwgTizymAAv6znG9xdXEf/pyN yAZctJiGe5YIn/5H0RhTTJj6XnHFiaHOjI3o64hnC6S48Kd+RVt7ITmp8Do0AAqtQS/HnC yNwx6zGqWj9XAZ8xoKW5GoodoJxVTDmi2gRY9l8ITaCQr/qUx2S4ILOrRhrWrA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WkDxuVciGLzjHnELBrXfgt5/amubGQKOix5dVS9goVw=; b=D9xi6PyYNB+6RrVcWO4PDCoUs068CfPsQaD1dLJCmoUfzHnxIvYkwiNok+TpflTq8mrz0H 2FJNKVt2bCbjpGaUr5AjuM8Mww8fFjtKvJ6i6iTO9j5s7ND+3NJb/kDQ0AoTgqbJoQb+PC kBOrUBzz/aKDWXvVa3pE7lkLWGPeFGPm47v5Y2oWUeSPfLFtkZz1MLZxoiM2lH6sD7RwPs HNV1qFuPasIuXyQMp4FWRMgTn9/cuJ9P9BR1zsiCwOqw8bhNRBcb1k/DHMB96lj6d7v0Yt 2Kn5NY54Lzi3IYWvO1ytRhpSLDL4997NgD8xmsUvYb7QgoYTxFWBbwu6B8aHLw== 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 4X3BDn1JmgzxDW; Tue, 10 Sep 2024 17:55:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AHt5XM086473; Tue, 10 Sep 2024 17:55:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AHt5jl086470; Tue, 10 Sep 2024 17:55:05 GMT (envelope-from git) Date: Tue, 10 Sep 2024 17:55:05 GMT Message-Id: <202409101755.48AHt5jl086470@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: 1a5569771980 - main - depend-cleanup.sh: Fix overzealous syscall.S cleanup on non-amd64 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 1a556977198020da4a2148714bec1d9b68724f99 Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=1a556977198020da4a2148714bec1d9b68724f99 commit 1a556977198020da4a2148714bec1d9b68724f99 Author: Jessica Clarke AuthorDate: 2024-09-10 17:54:45 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 17:54:45 +0000 depend-cleanup.sh: Fix overzealous syscall.S cleanup on non-amd64 Although there is no longer a syscall.S in the source tree, the generated file is still called syscall.S, so the syscall\.S regex still matches the .depend file. Previously it looked like: syscall.o \ /path/to/src/lib/libc/MACHINE/sys/syscall.S \ ... or syscall.o \ /path/to/src/lib/libsys/MACHINE/syscall.S \ ... Now it looks like: syscall.o: syscall.S \ ... Thus, match on the file having a directory specified, to distinguish it from the generated case where it's adjacent in the OBJDIR. Note the .* is needed due to the use of egrep -w. Fixes: 3a4b04e82df6 ("depend-cleanup.sh: Simplify handling for stale syscall.S") --- tools/build/depend-cleanup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index b3608e46b65d..b1e498b1460e 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -173,8 +173,8 @@ clean_dep lib/libc statfs c # 20240308 0ee0ae237324 Remove pointless MD syscall(2) # 20240308 7b3836c28188 Remove pointless MD syscall(2) if [ ${MACHINE} != i386 ]; then - clean_dep lib/libsys syscall S - clean_dep lib/libc syscall S + clean_dep lib/libsys syscall S ".*/syscall\.S" + clean_dep lib/libc syscall S ".*/syscall\.S" fi # 20240416 2fda3ab0ac19 WITH_NVME: Remove from broken From nobody Tue Sep 10 17:55:06 2024 X-Original-To: dev-commits-src-main@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 4X3BDp5Mgvz5WJyR; Tue, 10 Sep 2024 17:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BDp36GBz4F5W; Tue, 10 Sep 2024 17:55:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PRnTrMSGRj+J8+1NrBPyauRPviLakE/DXKmkwdIvh0U=; b=BfYH/3RINPu1bW29eFl7gBcCpELS0KVnvwgtGS5AQQhLrYdtvfgEl4XdxtgQRPbPqA3eLo U98/GcPRA8vbeojW8qpfmIHeoIhRuReKKozLtz3rVWvuMaXumTwP5+eKtAizh+oWmD/L+d VZuDntB1bnXCAyA+UcH/J2CO3A+T3AzP6XDEUFXax5M7RCNrrOwhlsiz5+Q/Yt3T36SJ1L jaDmzgQNZLtlAD0+4yLjdYGjm0V9eHx9Eu5aDtlUsVL5bWtWa84w8kyMDiAbUfEn99J/Fd r7ETuj3XXicZIfIeAd9ku5aYpaaaIPE8TWSEp5aTiMPxTqMVF/3kR49ODSUYSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725990906; a=rsa-sha256; cv=none; b=t7HEGAo0XXUKlRrdQUbkY2vpV7Vy+D62q5zCrzyfgfmyy0UgdlOgr2DK8L7L4yqtkl9yEL mEP5KUExhUFbiamS16RccKGmOOmf+yVWtw3o900J6mp3IMJ2Y0oXBjRtmo/uUkqo5Rn0AH 2NHfu7xrIvL2/6yug9ntgZnQtDPR5VrNgXTY/FfrewaC7G0RbCJQKZTbAiVqKW3oy08OsF 92YynijsNYkHIUC5n7+NDSiSh56QpPV9hNS8t2zLARq5oXrmJOvec/nepXKichdyGr1sn0 9O7Gf9SKUGMsPhs9eB6nN+12BOzNmOBkZ+u8afHfKdft12fwH42T5VU1CNie6g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725990906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PRnTrMSGRj+J8+1NrBPyauRPviLakE/DXKmkwdIvh0U=; b=HylCCMGOe8xpm+B3tjbhMEymUSzF11P6eWO6EaaXsPDxvInWvRZ+7/71ZrBl7bR4fIRLNn Sni6QTadjBnNiaGuM847h4zVDKb2RO7fwSEnB1xMeuEKgsU5e3i2QRZE7zcXs9OF17Ko2r uUs8ZW4wTpiWRW3IB/fxh/gI8Yml3zTkzZdEGxej+iHFUFXn7AaiMrH9kqko/5K8854LTr ZPz1wT7GL71lphhsOuj5/y2/vH3t76w1qC899wE2ZWMMQ3lzS6Xe4HVuTLQnIbz0ngOIxu At7R7o95pDvO1P8Mlm75oUqwa5YZMy3lAcs7we/OcZqWkwkRwF2IuiZ3w9KSXg== 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 4X3BDp2MQ6zx9v; Tue, 10 Sep 2024 17:55:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AHt69D086523; Tue, 10 Sep 2024 17:55:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AHt6fJ086520; Tue, 10 Sep 2024 17:55:06 GMT (envelope-from git) Date: Tue, 10 Sep 2024 17:55:06 GMT Message-Id: <202409101755.48AHt6fJ086520@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: b9c5eab0f307 - main - depend-cleanup.sh: Fix overzealous syscall.S cleanup on amd64 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: b9c5eab0f307d43d37efc41109e52098d5a0f7bd Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=b9c5eab0f307d43d37efc41109e52098d5a0f7bd commit b9c5eab0f307d43d37efc41109e52098d5a0f7bd Author: Jessica Clarke AuthorDate: 2024-09-10 17:54:45 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 17:54:45 +0000 depend-cleanup.sh: Fix overzealous syscall.S cleanup on amd64 Just as we skip the cleanup for i386 due to still having a custom syscall.S, we also need to do the same for lib32 on amd64, so filter it out of ALL_libcompats here. Fixes: a650ec0e55a9 ("lib{c,sys}: fix incremental builds") --- tools/build/depend-cleanup.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index b1e498b1460e..578393e837d2 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -173,8 +173,15 @@ clean_dep lib/libc statfs c # 20240308 0ee0ae237324 Remove pointless MD syscall(2) # 20240308 7b3836c28188 Remove pointless MD syscall(2) if [ ${MACHINE} != i386 ]; then - clean_dep lib/libsys syscall S ".*/syscall\.S" - clean_dep lib/libc syscall S ".*/syscall\.S" + libcompats= + for libcompat in $ALL_libcompats; do + if [ $MACHINE = amd64 ] && [ $libcompat = 32 ]; then + continue + fi + libcompats="${libcompats+$libcompats }$libcompat" + done + ALL_libcompats="$libcompats" clean_dep lib/libsys syscall S ".*/syscall\.S" + ALL_libcompats="$libcompats" clean_dep lib/libc syscall S ".*/syscall\.S" fi # 20240416 2fda3ab0ac19 WITH_NVME: Remove from broken From nobody Tue Sep 10 17:56:55 2024 X-Original-To: dev-commits-src-main@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 4X3BGv4Y2bz5WKQN; Tue, 10 Sep 2024 17:56: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BGv433pz4Gd4; Tue, 10 Sep 2024 17:56:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725991015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dHMm81bMzX8adLVn92XGcol/y2BwNkcKvmEUf5FZmvE=; b=FBKD1pE2nYy3hzRZaaA4Owuyqbgrd2ISXh6hJIENvSQxC458n1zQfi3QOj5lEBvEz5zlMp KbUvOGkzvhzejb5PHazoSr0zID0GHY1vADz8OJtWRgcl9DRQqVyLXXMDWjTV7QvQGX92H1 qAH3Z7L727qyFKu8awSUmWPwVeEI05oAgZtXb8NMuS5MVBAtnTtWF3DiK9JoZG1zIA6yVS 8Slh4RgvFT5pGAzRhi7/Us/3c5AZJgJx58xsiNHcmmiMwPeFUMDjMyZI4MIwnGDwn191Q8 weRQnZ8Jb28sf4fb2HFJmNXFs5jnWep6eGXkaGHono1sxBs6snAJVIz9jEyhSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725991015; a=rsa-sha256; cv=none; b=mo4aYfbmma2dSkHUvuRLsHNiugslMCseCzkmKPItbvHTFvmihazmv471TXoaVAdaMr6LaZ rGmbtb25K4ALO/f0D1AFAw13Fx8ha+TKVQAl4xtDguCoyDfqkrZjUS7tRWY3LDaEXBVCr7 IUg0OOsWX4mbM9DUDFEWNA78NQqFFUvhrTwOiP83M6s9FnQdms9emqZQORcU2uXW4qrU8y dDfAvbKaaFXxf52ZgbKQ6L5leiU7kUQlo3m2ZL3lly0K6jIK3Sf28ifG2gmDnWX9Y16C/N 772qyfvcLFMGqaFe9bJpRcck5z1zE1gTEyhh5ihdUIZfivRospV4nz5zThPkNA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725991015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dHMm81bMzX8adLVn92XGcol/y2BwNkcKvmEUf5FZmvE=; b=G8dO72hDalAAJL8fwGAxGKTGRVDQYzvlAmoW19jdykPMge0UKgg2HOGzFjgCgdmMEQ1uSo 9it7qiu+EsG5Swdq25ngnLMZhbKZ+8Cf576GD7VWthRkppKqsFmJAwaQaGBxWjjoSWGtQ0 3JvMTWoy6osnGMuoMlbi5x6qKHE2E8KZ0TnHY4UfdznsDFEFpMw4sqMvzgXRvo8zAIoHGK oPE4D2ehwfbAPacNCbM6pCRJHNsQWSYv40IhYLoYCXAnme7tTTgSSnqaSl7Licd7mKhbpz FojqQnlIgOoQ8wyf6z/n/roJXfea/skqf/fwrSpOQT9FXAZYgtXFT9nfVq4fUQ== 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 4X3BGv3cSrzxDY; Tue, 10 Sep 2024 17:56:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AHut5i087084; Tue, 10 Sep 2024 17:56:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AHutVX087081; Tue, 10 Sep 2024 17:56:55 GMT (envelope-from git) Date: Tue, 10 Sep 2024 17:56:55 GMT Message-Id: <202409101756.48AHutVX087081@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: 05996f453de2 - main - kldxref: Don't warn and skip file if no relocations are found List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 05996f453de2f2c7a03437a492d9d53831fccb2e Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=05996f453de2f2c7a03437a492d9d53831fccb2e commit 05996f453de2f2c7a03437a492d9d53831fccb2e Author: Jessica Clarke AuthorDate: 2024-09-10 17:56:22 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 17:56:22 +0000 kldxref: Don't warn and skip file if no relocations are found This case is hit for the kernel itself on riscv64, and did not used to be checked. Since the code here can already handle missing Elf_Rel and/or Elf_Rela just delete the check. Reviewed by: jhb, imp Fixes: 0299afdff145 ("kldxref: Make use of libelf to be a portable cross tool") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D46517 --- usr.sbin/kldxref/ef.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/usr.sbin/kldxref/ef.c b/usr.sbin/kldxref/ef.c index 77ddada946f2..975626e46046 100644 --- a/usr.sbin/kldxref/ef.c +++ b/usr.sbin/kldxref/ef.c @@ -364,11 +364,6 @@ ef_parse_dynamic(elf_file_t ef, const GElf_Phdr *phdyn) error = EFTYPE; goto out; } - if (rel_off == 0 && rela_off == 0) { - warnx("%s: no ELF relocation table found\n", ef->ef_name); - error = EFTYPE; - goto out; - } nsym = 0; for (i = 0; i < nshdr; i++) { From nobody Tue Sep 10 18:05:11 2024 X-Original-To: dev-commits-src-main@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 4X3BSS0BWVz5WLYm; Tue, 10 Sep 2024 18:05:12 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BSR6qW1z4JG0; Tue, 10 Sep 2024 18:05:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725991512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j1MaxP17i+ONzfov8REpGTb2dWt4x5WRStmocLrbLtU=; b=orhvhUQgBWGqIkwcmhlr6RMKtZz7KMWjmfVlDjikR5XgUD9Sn1cq6wdAjKx3dJBSqKJHRs 0Bd6seGKeR/HY5b3t7czEYvuZ4D4V/pEHZWnP+19nxtY6UQTPgdaKJD5hBs+zgILoerj6O xZHrX//HxI99ZOJBosivtTSzdgxNQQlKgUQ+45CfpGd3x3+Mk/QFQX3qUS0CYH5HXOYk/z ySiZfBaoRtInJ+fv4mRBM/ojc0zfnpIXyEevuiIdV2CY+lujSBwu4uPQT9Vegk9vo7H2WW 0HGEoTySnHP8Dk2yA/0GNBsuM2Jaey6iJYA+2ftQLj58nmO1GtGYNm1DBLD+Xg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725991512; a=rsa-sha256; cv=none; b=SvbBWXsHY8tSLubvBk62ZO09dWOyuYatSzT/gxZT791XPPO3uwp84a28EkCmI+zqaQMKUo j/K0uapOytc8Plos4fzLkF0dCUIod2VWovDA2GrzRoPS1J3pInVe685XHeVDD/O3MRerxn lGjP/O5v8SrNxg4bunxXsW940xeXCxYsKOIv56bS8ooe9BprGMWJRZsqIcLqm10VNczKMB /8nclL4IOmG6zI1knJA7X6mKUSs0zArQShfy3HCg0gTQl5zdQorwQiWtPHCJBDEO5Wo/QG armasIpdr7aJueGXtgcrpWNvzl+5GQDwqSycjCqCizHljfQk1k7dwlxUlHTPcQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725991512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j1MaxP17i+ONzfov8REpGTb2dWt4x5WRStmocLrbLtU=; b=QZe+N9KyxAdsSaRVJDAwslYUg1iTgTGq0UxNYJMeKStwA9tTmyyAJSvrb5TNnOHjpnNnw9 I95fPBNbwWZQmgWlFJ74JDLA4WYkW6LFYDzYi30LpU+rJ5eLiRdoCDIpruaqPThz5OKJQL Szpp5sY/ciD0xKDsBS0FBFE9Oj6k33a9GXeIVNb/VBddZAVkJVPrXqWwGLDJa2Xlgo6aZN v7K5WwOHTHDm8aUkSrQ7N71rpsUfZbMYqvZ8j/jRGVrset5JUyZE/qTuQwMjxD0WGjEtQj PSWiH3dvYz/UxFKJ/7DcRxWcNvkr2lLwTveDpftU65GpI8eTdDcH5ExIsz3dsw== 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 4X3BSR6Mj7zxkC; Tue, 10 Sep 2024 18:05:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AI5BWg004685; Tue, 10 Sep 2024 18:05:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AI5BmR004682; Tue, 10 Sep 2024 18:05:11 GMT (envelope-from git) Date: Tue, 10 Sep 2024 18:05:11 GMT Message-Id: <202409101805.48AI5BmR004682@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: 116dc70c1f16 - main - RELNOTES: Add an entry for SO_SPLICE List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 116dc70c1f16d12d46ab0071429cbe8cb94fc09d Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=116dc70c1f16d12d46ab0071429cbe8cb94fc09d commit 116dc70c1f16d12d46ab0071429cbe8cb94fc09d Author: Mark Johnston AuthorDate: 2024-09-10 18:02:34 +0000 Commit: Mark Johnston CommitDate: 2024-09-10 18:04:45 +0000 RELNOTES: Add an entry for SO_SPLICE Sponsored by: Klara, Inc. Sponsored by: Stormshield --- RELNOTES | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RELNOTES b/RELNOTES index a4889546c233..bf0fc174e212 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,11 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +a1da7dc1cdad: + The SO_SPLICE socket option was added. It allows TCP connections to + be spliced together, enabling proxy-like functionality without the + need to copy data in and out of user memory. + e962b37bf0ff: When running bhyve(8) guests with a boot ROM, i.e., bhyveload(8) is not used, bhyve now assumes that the boot ROM will enable PCI BAR decoding. From nobody Tue Sep 10 18:04:59 2024 X-Original-To: dev-commits-src-main@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 4X3BST3DjBz5WLcL for ; Tue, 10 Sep 2024 18:05:13 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3BSS1gx7z4J6x for ; Tue, 10 Sep 2024 18:05:12 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of jrtc27@jrtc27.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=jrtc27@jrtc27.com Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-42bb6d3e260so10879095e9.1 for ; Tue, 10 Sep 2024 11:05:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725991511; x=1726596311; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/J64IgkjWbr/kJNCZMf5c51l9RnjxOlWhg1G9vvpPWo=; b=pNYGwEyOPqk/EGlfyh0XlmJa9w0ROuSgfqI3BcavfCDHBDj+BraK83+rK91FZ6Vxls EVSyCf9bEQ/mcr2EnG3RlsSF7xXmsHLIGsSnnJlnHISif317ItSRckPZpWvMBRe4JKCU t4jpLt6RRczaOTLj08uIcC4mtop36Qh4TJFXWWuVnUWZQEQedqUB2Cr5zog2QaUOxGoe eNMINMPEKJ+gGIdEuXUJnTdkEjSGCNpBaJJ+YFMDld/T4OHEP7b0jb2WfeUKFiHQgpAS 7bltdvQdr+0Ync5WKgaR71I6n2qOSHLQ7s6yhM8LwpME9tOnNEepl3XPPXtmP2sXRdm4 C+eQ== X-Forwarded-Encrypted: i=1; AJvYcCXKvINQ9g7corOslEAesPKxqDpzpjPXkFHPER5miMedG/+l1xM5nOdPostUQqliWdMNCVb3JYMJaS3Mqz0Tluk1nO7fbg==@freebsd.org X-Gm-Message-State: AOJu0YxEI1/BXcwplp8pj4G4hYHGy+tTitVdAE+M6vK82QGRLBKfY9jm l1THmrGkdzKMKMc+AS4YRaXK7t0LUt/kyCl1i6JpeK1z+utIruZXZviqonavWWg= X-Google-Smtp-Source: AGHT+IGVsf9jpByoulBIJJHj3xD0bupZxkI+CtjT+7OHVsU5JJtYnYnHFUu10C741uVgBzrTcwarXA== X-Received: by 2002:adf:e283:0:b0:374:ba2c:3028 with SMTP id ffacd0b85a97d-378b07f374fmr321879f8f.36.1725991510165; Tue, 10 Sep 2024 11:05:10 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.201]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-37895649733sm9526387f8f.8.2024.09.10.11.05.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Sep 2024 11:05:09 -0700 (PDT) Content-Type: text/plain; charset=us-ascii List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: git: f05795e3f65f - main - arm64: write PID in CONTEXTIDR_EL1 on ctx switch From: Jessica Clarke In-Reply-To: <202409091605.489G5X6W041843@gitrepo.freebsd.org> Date: Tue, 10 Sep 2024 19:04:59 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: References: <202409091605.489G5X6W041843@gitrepo.freebsd.org> To: Andrew Turner X-Mailer: Apple Mail (2.3776.700.51) X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.90 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.998]; FORGED_SENDER(0.30)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; MIME_GOOD(-0.10)[text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FREEFALL_USER(0.00)[jrtc27]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.128.49:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; TO_DN_EQ_ADDR_SOME(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-main@freebsd.org]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[dev-commits-src-main@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[209.85.128.49:from] X-Rspamd-Queue-Id: 4X3BSS1gx7z4J6x On 9 Sep 2024, at 17:05, Andrew Turner wrote: >=20 > The branch main has been updated by andrew: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3Df05795e3f65f305cb770ae91d8e9c8f0= 5d267e0d >=20 > commit f05795e3f65f305cb770ae91d8e9c8f05d267e0d > Author: Zachary Leaf > AuthorDate: 2024-07-31 08:23:24 +0000 > Commit: Andrew Turner > CommitDate: 2024-09-09 16:03:19 +0000 >=20 > arm64: write PID in CONTEXTIDR_EL1 on ctx switch >=20 > Debug and trace features such as Statistical Profiling Extension = (SPE) > use the CONTEXTIDR_EL1 register to get the PID of the current = process. >=20 > Add a sysctl switch to toggle writing the current PID into this = register > in the thread switcher. >=20 > To make use of the feature, the following sysctl switch must be = set: >=20 > sysctl machdep.pid_in_contextidr=3D1 >=20 > Kernel code can also toggle the sysctl by writing directly to the = global > var behind the sysctl arm64_pid_in_contextidr: >=20 > extern bool arm64_pid_in_contextidr; >=20 > Reviewed by: andrew > Sponsored by: Arm Ltd > Differential Revision: https://reviews.freebsd.org/D46192 > --- > sys/arm64/arm64/genassym.c | 2 ++ > sys/arm64/arm64/swtch.S | 17 +++++++++++++++++ > sys/arm64/arm64/sys_machdep.c | 6 ++++++ > 3 files changed, 25 insertions(+) >=20 > diff --git a/sys/arm64/arm64/genassym.c b/sys/arm64/arm64/genassym.c > index a4db825e976c..5a20169d51c3 100644 > --- a/sys/arm64/arm64/genassym.c > +++ b/sys/arm64/arm64/genassym.c > @@ -58,6 +58,8 @@ ASSYM(PCB_TPIDRRO, offsetof(struct pcb, = pcb_tpidrro_el0)); > ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); > ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); >=20 > +ASSYM(PR_PID, offsetof(struct proc, p_pid)); > + > ASSYM(SF_UC, offsetof(struct sigframe, sf_uc)); >=20 > ASSYM(TD_PROC, offsetof(struct thread, td_proc)); > diff --git a/sys/arm64/arm64/swtch.S b/sys/arm64/arm64/swtch.S > index 6af70ca839a0..3a2bf2cb5a7f 100644 > --- a/sys/arm64/arm64/swtch.S > +++ b/sys/arm64/arm64/swtch.S > @@ -55,6 +55,15 @@ > 999: > .endm >=20 > +.macro pid_in_context_idr label > + adrp x9, arm64_pid_in_contextidr > + ldr x10, [x9, :lo12:arm64_pid_in_contextidr] This loads a 64-bit value, not an 8-bit bool as the variable is defined. Depending on the alignment of arm64_pid_in_contextidr this can even fail to link, and this shows up in GitHub Actions with the clang-12 and clang-13 jobs failing. Jess From nobody Tue Sep 10 18:13:03 2024 X-Original-To: dev-commits-src-main@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 4X3Bdn4zc4z5WM08 for ; Tue, 10 Sep 2024 18:13:17 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3Bdm6mBXz4KC8 for ; Tue, 10 Sep 2024 18:13:16 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of jrtc27@jrtc27.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=jrtc27@jrtc27.com Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-374bfc395a5so54845f8f.0 for ; Tue, 10 Sep 2024 11:13:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725991995; x=1726596795; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Bsl5YK5ZFNSxn5oG5KWfq1A0L7QQcOY1x3cgI/dT7ys=; b=l/gYlMcgZMBYrqdx0h1/FnwSgWjy66a7g0BYCpJ6Rf/1p1YdwdU+alToenJ7MQ3bCC fe5ASbJQFrWWB1IqDiYvkvRmaLaqUtHZL39c+jyWilwQxwetXCFBPy5+NTzDkIGRHTYh LzRUtZHSmMvfSPMri/rkEQ+4daUWg6BTJUBkZouyqbxBjmnQIHGsze5uGzIfZl8fV0e/ CNu5uRbc/IkNKsNPKueztsrsv0H/p3fzbDo0vqURDe/kdH/6FpCCXuhkaAoBDxJ357nm p+Kc/dly1z1Fzm5FZ2Np4sxLd1F53qY2zqnkHff13/r8zGLRYVSRsxEDqszMp4Vu/y/8 O64A== X-Forwarded-Encrypted: i=1; AJvYcCWRR42Uvn3hiJ6xz4TbPLvhoZoKPdbjX/eRrI+1fOxP/vyhPtqf+aAYzyU/xzw2oj9zf8l77Bwx+bUEn0xVrUZTLpwx2g==@freebsd.org X-Gm-Message-State: AOJu0YzRpLcLMkTnGZThVHlnXSBZZCZkVaIvzFJyvqK0qPXU/bTQtFLN /DVpxSIkZA1pnKRdYbBfTYbj+rR+T46xwSuoEp966g3bq7gyz7rpfzxLACUGrCM= X-Google-Smtp-Source: AGHT+IG6g1ogHmKYFgWUsSR5wzV4UvpGx1K4gULQlXsY2ya8tliuipfW8Mo9hBC7Q0iOSHcjpgtfUQ== X-Received: by 2002:a05:6000:1ac7:b0:374:c6b6:c656 with SMTP id ffacd0b85a97d-378a8a3de4cmr3187041f8f.21.1725991994673; Tue, 10 Sep 2024 11:13:14 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.201]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-378956653f9sm9537186f8f.31.2024.09.10.11.13.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Sep 2024 11:13:14 -0700 (PDT) Content-Type: text/plain; charset=us-ascii List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: git: f05795e3f65f - main - arm64: write PID in CONTEXTIDR_EL1 on ctx switch From: Jessica Clarke In-Reply-To: Date: Tue, 10 Sep 2024 19:13:03 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <4D1E29E6-5104-4EEC-BD60-1D880C8A2BE5@freebsd.org> References: <202409091605.489G5X6W041843@gitrepo.freebsd.org> To: Andrew Turner X-Mailer: Apple Mail (2.3776.700.51) X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.90 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.998]; FORGED_SENDER(0.30)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; MIME_GOOD(-0.10)[text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FREEFALL_USER(0.00)[jrtc27]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.221.47:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; TO_DN_EQ_ADDR_SOME(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-main@freebsd.org]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[dev-commits-src-main@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[209.85.221.47:from] X-Rspamd-Queue-Id: 4X3Bdm6mBXz4KC8 On 10 Sep 2024, at 19:04, Jessica Clarke wrote: >=20 > On 9 Sep 2024, at 17:05, Andrew Turner wrote: >>=20 >> The branch main has been updated by andrew: >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3Df05795e3f65f305cb770ae91d8e9c8f0= 5d267e0d >>=20 >> commit f05795e3f65f305cb770ae91d8e9c8f05d267e0d >> Author: Zachary Leaf >> AuthorDate: 2024-07-31 08:23:24 +0000 >> Commit: Andrew Turner >> CommitDate: 2024-09-09 16:03:19 +0000 >>=20 >> arm64: write PID in CONTEXTIDR_EL1 on ctx switch >>=20 >> Debug and trace features such as Statistical Profiling Extension = (SPE) >> use the CONTEXTIDR_EL1 register to get the PID of the current = process. >>=20 >> Add a sysctl switch to toggle writing the current PID into this = register >> in the thread switcher. >>=20 >> To make use of the feature, the following sysctl switch must be = set: >>=20 >> sysctl machdep.pid_in_contextidr=3D1 >>=20 >> Kernel code can also toggle the sysctl by writing directly to the = global >> var behind the sysctl arm64_pid_in_contextidr: >>=20 >> extern bool arm64_pid_in_contextidr; >>=20 >> Reviewed by: andrew >> Sponsored by: Arm Ltd >> Differential Revision: https://reviews.freebsd.org/D46192 >> --- >> sys/arm64/arm64/genassym.c | 2 ++ >> sys/arm64/arm64/swtch.S | 17 +++++++++++++++++ >> sys/arm64/arm64/sys_machdep.c | 6 ++++++ >> 3 files changed, 25 insertions(+) >>=20 >> diff --git a/sys/arm64/arm64/genassym.c b/sys/arm64/arm64/genassym.c >> index a4db825e976c..5a20169d51c3 100644 >> --- a/sys/arm64/arm64/genassym.c >> +++ b/sys/arm64/arm64/genassym.c >> @@ -58,6 +58,8 @@ ASSYM(PCB_TPIDRRO, offsetof(struct pcb, = pcb_tpidrro_el0)); >> ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); >> ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); >>=20 >> +ASSYM(PR_PID, offsetof(struct proc, p_pid)); >> + >> ASSYM(SF_UC, offsetof(struct sigframe, sf_uc)); >>=20 >> ASSYM(TD_PROC, offsetof(struct thread, td_proc)); >> diff --git a/sys/arm64/arm64/swtch.S b/sys/arm64/arm64/swtch.S >> index 6af70ca839a0..3a2bf2cb5a7f 100644 >> --- a/sys/arm64/arm64/swtch.S >> +++ b/sys/arm64/arm64/swtch.S >> @@ -55,6 +55,15 @@ >> 999: >> .endm >>=20 >> +.macro pid_in_context_idr label >> + adrp x9, arm64_pid_in_contextidr >> + ldr x10, [x9, :lo12:arm64_pid_in_contextidr] >=20 > This loads a 64-bit value, not an 8-bit bool as the variable is > defined. Depending on the alignment of arm64_pid_in_contextidr this = can > even fail to link, and this shows up in GitHub Actions with the > clang-12 and clang-13 jobs failing. Similarly the load of p_pid that follows is reading an int32_t with a 64-bit load. Jess From nobody Tue Sep 10 18:20:14 2024 X-Original-To: dev-commits-src-main@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 4X3Bnq0pHZz5WNKW; Tue, 10 Sep 2024 18:20:15 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3Bnq05bYz4Ljx; Tue, 10 Sep 2024 18:20:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725992415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ru+fULNBMLRgGm+OUWA+Wd/7gtCcyDgj9+HcYxx45gI=; b=A25oWN0hFY9DnwMyzarhj2q6oLGrxTtoU+uFXusiW5eoxhsfMiVeylOPonDiNDFlJ9cprY 0b7ha/2AHajkjrEDyaFw/4NAD5gVvZvu8DPO3OXR37ba05eQVafPb1Dp+LaALcsxF3vCz/ Z3NvZ8MMTIY4q8MqRCCf6sFcxpdgpg0SsqZIqx2eNN8fDDp5Kwq6pcJW6s5QTAEseYTeLq +ThUlY/K++5zLidomSntJzZKk8Kr0A4Zh2QoHxoqGu0jX2emrE9TJMObz1Yuepv42o8xV1 aJd1HiuATPjAS63lQxtkXyVYCNsqo/jS0vhZ2g98BnS9kLf8/XzunrW90x8LjA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725992415; a=rsa-sha256; cv=none; b=T6BqbzlBL8Eyd5j5xVbROeJFzDDma0NFu3WEYNGaLdYrTXM4V595s+wJ2AmbPSrOJYf6Vk eBD8Cn1GTPOGuBI/YIBU1LVsPXrtRNOMykTC0ckXgmnBqsMENy/0AQXlWCpzLSmDS4qjTq 08XJk03Wt7suH5icE3hlZzCUSLGbMsAa9WikRYfIUbMo/l3luiKQagHP/HTKy76MQD1JJd nLfqcteErKswJy1sN0H9s/6MaQG5sTRvdmMVImIUYRdQMtPkhfR0c1dPs2iONeFKUZ+FAe N/O1wD0oZrlnnD8MRS/jm+6dXnhwRmvX+OWKKo4m+4qCEjq9e4z7LNUrNBiaVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725992415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ru+fULNBMLRgGm+OUWA+Wd/7gtCcyDgj9+HcYxx45gI=; b=u/x+fEeGE+PDfmtj8g9R5gpMsscYpK5+LtRy7KIsZLO/AJx/DALRVtHiuJAuvx5ExMyfgJ Wgk9QnE82HX4EKC19mcfJ4YAP+aJcOFO4T5MXJxHz7NP8ulK758M3rW2zf7ZTt5BlX6mIi CTyHGp2eT1lXKTFv9GdoqXbPlUGR0QV2a0w1cTaoQioYqOgvOtvSlUFb2Ok1cRpa/eNAFT R8Pn+Wg0E8e2PBcbAWzcB2I6E7xkvff36AlHwoOb8A8JQAyhhcBQLc2MudTueeAfa3sy0v S9r1uDkEfsfI/7D8ugijtmzbEl6MJ5DI1Z5xrqlMrnSqQYwmQ8sxsGL7Xs7coA== 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 4X3Bnp6ppszy3N; Tue, 10 Sep 2024 18:20:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AIKECh029035; Tue, 10 Sep 2024 18:20:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AIKEj7029027; Tue, 10 Sep 2024 18:20:14 GMT (envelope-from git) Date: Tue, 10 Sep 2024 18:20:14 GMT Message-Id: <202409101820.48AIKEj7029027@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: 5a800e965345 - main - Revert "arm64: write PID in CONTEXTIDR_EL1 on ctx switch" List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 5a800e9653456e47aefec43c2c8aee4fa7ab42a6 Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=5a800e9653456e47aefec43c2c8aee4fa7ab42a6 commit 5a800e9653456e47aefec43c2c8aee4fa7ab42a6 Author: Jessica Clarke AuthorDate: 2024-09-10 18:14:39 +0000 Commit: Jessica Clarke CommitDate: 2024-09-10 18:14:39 +0000 Revert "arm64: write PID in CONTEXTIDR_EL1 on ctx switch" arm64_pid_in_contextidr is a bool yet is loaded as a 64-bit word, so reads out of bounds and will get unknown junk in the upper bits, which may cause false (the default) to be interpreted as true by the following cbz. This also doesn't even link depending on the variable's alignment, currently breaking the clang-12 and clang-13 jobs in GitHub Actions. Whilst fixing that to use ldrb instead would be trivial, there's a similar issue reading p_pid below, which is an int32_t yet read as a 64-bit word again. Fixing this means using ldrw or ldrsw, but it's not clear whether the expectation is for the PID to be zero-extended or sign-extended. Revert the commit to fix the build and, if it builds, the run-time behaviour until it can be corrected and re-landed. This reverts commit f05795e3f65f305cb770ae91d8e9c8f05d267e0d. --- sys/arm64/arm64/genassym.c | 2 -- sys/arm64/arm64/swtch.S | 17 ----------------- sys/arm64/arm64/sys_machdep.c | 6 ------ 3 files changed, 25 deletions(-) diff --git a/sys/arm64/arm64/genassym.c b/sys/arm64/arm64/genassym.c index 5a20169d51c3..a4db825e976c 100644 --- a/sys/arm64/arm64/genassym.c +++ b/sys/arm64/arm64/genassym.c @@ -58,8 +58,6 @@ ASSYM(PCB_TPIDRRO, offsetof(struct pcb, pcb_tpidrro_el0)); ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); -ASSYM(PR_PID, offsetof(struct proc, p_pid)); - ASSYM(SF_UC, offsetof(struct sigframe, sf_uc)); ASSYM(TD_PROC, offsetof(struct thread, td_proc)); diff --git a/sys/arm64/arm64/swtch.S b/sys/arm64/arm64/swtch.S index 3a2bf2cb5a7f..6af70ca839a0 100644 --- a/sys/arm64/arm64/swtch.S +++ b/sys/arm64/arm64/swtch.S @@ -55,15 +55,6 @@ 999: .endm -.macro pid_in_context_idr label - adrp x9, arm64_pid_in_contextidr - ldr x10, [x9, :lo12:arm64_pid_in_contextidr] - cbz x10, \label - ldr x9, [x1, #TD_PROC] - ldr x10, [x9, #PR_PID] - msr contextidr_el1, x10 -.endm - /* * void cpu_throw(struct thread *old, struct thread *new) */ @@ -75,12 +66,8 @@ ENTRY(cpu_throw) ldr x4, [x0, #TD_PCB] ldr w5, [x4, #PCB_FLAGS] clear_step_flag w5, x6 - 1: - /* debug/trace: set CONTEXTIDR_EL1 to current PID, if enabled */ - pid_in_context_idr 2f -2: #ifdef VFP /* Backup the new thread pointer around a call to C code */ mov x19, x1 @@ -160,10 +147,6 @@ ENTRY(cpu_switch) mov x20, x1 mov x21, x2 - /* debug/trace: set CONTEXTIDR_EL1 to current PID, if enabled */ - pid_in_context_idr 0f - -0: #ifdef VFP bl vfp_save_state_switch mov x0, x20 diff --git a/sys/arm64/arm64/sys_machdep.c b/sys/arm64/arm64/sys_machdep.c index eedee1d27015..eedc57f7c572 100644 --- a/sys/arm64/arm64/sys_machdep.c +++ b/sys/arm64/arm64/sys_machdep.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include @@ -81,8 +80,3 @@ sysarch(struct thread *td, struct sysarch_args *uap) return (error); } - -bool arm64_pid_in_contextidr = false; -SYSCTL_BOOL(_machdep, OID_AUTO, pid_in_contextidr, CTLFLAG_RW, - &arm64_pid_in_contextidr, false, - "Save PID into CONTEXTIDR_EL1 register on context switch"); From nobody Tue Sep 10 18:34:38 2024 X-Original-To: dev-commits-src-main@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 4X3C6Q6xYYz5WPRq; Tue, 10 Sep 2024 18:34: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3C6Q6Qxcz4PJB; Tue, 10 Sep 2024 18:34:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725993278; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w2f/TM3L5eSdSqRzhn9ifs41kFh+VxOpCm+76l+9xmo=; b=gXdNasSD9JUREOme/i5/cAtb48Mgmh5L7fahGDhp0OJ2DhN4hGY8ourpo4JVlAuXruk8Bp 0fh7uHSfqAZi6VzSNaPooRHVBmEQolQ5JiUtm3X92JHYdYZu356c/1NKw0vOEyj+Aiw2EX hlWOT73dwqxY88e8YLmbQtyHJFjE3MWOzBaZ01QntdkVEvfRLkySo6+/TUnbT2yHPsvyrq n5oYLl6x/WkDRjp0iOUA3/J6exc1t4gxWQEXAT4D3f3iUzmQ8OP+lvTzu3xAbWdJTA/J50 nTO5nvIskjo9TOb3UoLAkT8tER7V7JVbzMX9TrqeVqANJ1YBEclwxWs/AMt/Pw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725993278; a=rsa-sha256; cv=none; b=XjHNOYQqqe+k/RtTRh7asNM2udTu6d9HQHgiW9Qwdg7JpNnv2MJmdhaw7bbv5vZqysClra cvOQf3UvuypTqvT64+DMdus62fv9JlyqOdBJ0Vp2qqt02K31Y858PSfVAr6pUM73AYNTlv XqZDDwmlTOUlINvXYew/CDP75+nSNaGVN+5ZWKZvvqZ76qKaa9ptp2XqHfeT3aVOBIjxXx JF7Wsmz2idFc7lfRnXPfJxFW7bdvbK4nnK+CC4+ZPJ3hy/tbuZJUZskF33ccW5TSZvVF11 JlMoWK+IyLARmeqCa0vHp3qFJzEiuHq1C5cjVXh+h4gAHHH9uHlbVK77fiKamw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725993278; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w2f/TM3L5eSdSqRzhn9ifs41kFh+VxOpCm+76l+9xmo=; b=gGWoXPObjJ0bgLjT3AQ6uL0dAVVU9GmL85UcCHVcEU0WDlv7xAJBMxRPJ9rK1fr8Qhe/KN xkBYWA6aCcCe1XBQx2zm9s0l+6U0o5oKY2cn0RMCS62cmkE/sBanLgqYrlGASFSHfJ2RKY Lw3Z/hCQYDDypazMk884HQLj1jfvNoahKgEMk3zHJOMR0zFn3ZLZMq62tUgHQtUv2e6+SE jpURILmY3htZBLVRg2mJKdJPLop1k3JPyg4yw3YhLDn2dH0CWLwWioTEDZMzXHgV3LffwC ZtlnNlokwF/BoqNDmMdDg+oGIypiM0cb1ssi3bCLDRZlXW3zAJNbHYCQOWHbxQ== 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 4X3C6Q61W8zxmj; Tue, 10 Sep 2024 18:34:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AIYc8c055814; Tue, 10 Sep 2024 18:34:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AIYcZE055811; Tue, 10 Sep 2024 18:34:38 GMT (envelope-from git) Date: Tue, 10 Sep 2024 18:34:38 GMT Message-Id: <202409101834.48AIYcZE055811@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: 136b8134a4b5 - main - if_ovpn tests: destroy an if_ovpn interface before it's been used List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 136b8134a4b5a7efacf4109c2f89d6db94785774 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=136b8134a4b5a7efacf4109c2f89d6db94785774 commit 136b8134a4b5a7efacf4109c2f89d6db94785774 Author: Kristof Provost AuthorDate: 2024-09-09 12:33:31 +0000 Commit: Kristof Provost CommitDate: 2024-09-10 18:34:23 +0000 if_ovpn tests: destroy an if_ovpn interface before it's been used Ensure that we correctly clean up even if the interface never gets a socket assigned. Reviewed by: markj Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46617 --- tests/sys/net/if_ovpn/if_ovpn.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/sys/net/if_ovpn/if_ovpn.sh b/tests/sys/net/if_ovpn/if_ovpn.sh index 77007c967333..ea1eed88de9e 100644 --- a/tests/sys/net/if_ovpn/if_ovpn.sh +++ b/tests/sys/net/if_ovpn/if_ovpn.sh @@ -1048,6 +1048,27 @@ gcm_128_cleanup() ovpn_cleanup } +atf_test_case "destroy_unused" "cleanup" +destroy_unused_head() +{ + atf_set descr 'Destroy an if_ovpn interface before it is used' + atf_set require.user root +} + +destroy_unused_body() +{ + ovpn_init + + intf=$(ifconfig ovpn create) + atf_check -s exit:0 \ + ifconfig ${intf} destroy +} + +destroy_unused_cleanup() +{ + ovpn_cleanup +} + atf_init_test_cases() { atf_add_test_case "4in4" @@ -1062,4 +1083,5 @@ atf_init_test_cases() atf_add_test_case "ra" atf_add_test_case "chacha" atf_add_test_case "gcm_128" + atf_add_test_case "destroy_unused" } From nobody Tue Sep 10 19:00:50 2024 X-Original-To: dev-commits-src-main@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 4X3Chf41Ssz5WSlg; Tue, 10 Sep 2024 19:00:50 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3Chf2sjCz4RQG; Tue, 10 Sep 2024 19:00:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725994850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=triICMGb5IfyuyavyIbmjKQ+Rjr1etaZaaPQepZKZV4=; b=ZzR783mvZOYGXjcCBa7uPaD+lHojSRnD2rd8gW8xlS+l75xjaXFnZquc1OXUpyBzIN1TZQ UMW8b2VhuPRsF5n6UeH1fBypo52JCWuReoPjMXdQzTrZDgino0ul56kruNDSnqQ2Qiflq1 briSbU4heF4n9nV25HB0FoHHx8qgi3lFEZz+iJbNv7Nhl5J+5zQxgensAqhGngjCAJU0U7 OMpRJRQ9FJXwXjaFrGfJvr/4DcqesxZNb8SwmpW9kIRsQz23a7d946F/JTfSO48qSaVUTt KC6ft31NNo7JliHuAp8qteinnq/NC2DK4WzWqqXFjBp29ZlORZMcX+1j6AwXqg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725994850; a=rsa-sha256; cv=none; b=mNpbtlMn8nXnqqh6zn3nDZc4MVqCPqA+T4ARMjuAzDq3jHhihSkhhOhramT92xoI7gfNtX 74tuNEKCztGu270MHaG7Up8tXibrqckbIvQyru+cKgd2XPcz5dSV923GcPHs2cI1bdyiRh LifaQqTk6/bA5jgVfoG01xPydKtRnE96MwIB5KOR38UgEAzM4j/XHOh5Ys61NX1dwgXZvt 3eBuECWIUY1FF9tNu/I7vGgnY+v7sHTiArsVYICT3HfBD+Z/npxXN7/2tOoez/WYXEh272 KMjo4SkqK4Zqr2JizaVYa7XIzjOfA9IMELsUrqmHuxoGAPqWEkDHiTQCSaRGig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725994850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=triICMGb5IfyuyavyIbmjKQ+Rjr1etaZaaPQepZKZV4=; b=uSZcYAXXc5O351QE+GEo+7xcdprzvW2txpCCxfgYpWN8F08S73HaFgM+EAeH5VNHhFM3lg Z1yBN1OLJxA0SGLBSMvyF0sukmm3F3Mc2QDI9y57U+EQwheqUjpsvc5JNdsuTgG5l/FA9r O0z3SKsqtqc4rNbKOqwPZpfiQRkzT0TM8g8ZQaLGqX7l8GF+gXbzKWjxiD1w4hK6+6rvXY gM/mkHYFNVSf/rvEmAWuDay94UYNunarwCBNRB6sDfpWUY7v+D2xXaumlp75Wp+XfYU/XW jLXeJ+RaG2bDK2EmP8LtP9SbkpIUYSz6l87EpzTZQ5e+LpEUF83mraxudGLvEA== 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 4X3Chf2Sn8zySk; Tue, 10 Sep 2024 19:00:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AJ0oHO000257; Tue, 10 Sep 2024 19:00:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AJ0oPJ000254; Tue, 10 Sep 2024 19:00:50 GMT (envelope-from git) Date: Tue, 10 Sep 2024 19:00:50 GMT Message-Id: <202409101900.48AJ0oPJ000254@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "R. Christian McDonald" Subject: git: b5f6beefa00a - main - rc.subr: ensure run_rc_script return code is not masked by DebugOff List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rcm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b5f6beefa00abf9ef51d4c53563f46c5a388a18e Auto-Submitted: auto-generated The branch main has been updated by rcm: URL: https://cgit.FreeBSD.org/src/commit/?id=b5f6beefa00abf9ef51d4c53563f46c5a388a18e commit b5f6beefa00abf9ef51d4c53563f46c5a388a18e Author: R. Christian McDonald AuthorDate: 2024-09-10 15:58:57 +0000 Commit: R. Christian McDonald CommitDate: 2024-09-10 18:58:47 +0000 rc.subr: ensure run_rc_script return code is not masked by DebugOff Ensure that run_rc_script returns the true return code of the rc command and not the return code of DebugOff Reviewed by: sjg Approved by: kp MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46626 --- libexec/rc/rc.subr | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 145b626aa01e..4bb2333addc2 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -1844,7 +1844,7 @@ run_rc_script() trap "echo Script $_file running >&2" 29 set $_arg; . $_file ) fi - DebugOff $_file $_file:$_arg rc:${_file##*/} rc:${_file##*/}:$_arg ${_file##*/} ${_file##*/}:$_arg + DebugOff rc=$? $_file $_file:$_arg rc:${_file##*/} rc:${_file##*/}:$_arg ${_file##*/} ${_file##*/}:$_arg fi ;; esac @@ -2769,7 +2769,18 @@ $_DEBUG_SH vdot /libexec/debug.sh # safe_eval.sh are not found. if ! have DebugOn; then DebugOn() { return 0; } - DebugOff() { return 0; } + DebugOff() { + local _rc=0 + while : + do + case "$1" in + -[eo]) shift;; # ignore it + rc=*) eval "_$1"; shift;; + *) break;; + esac + done + return $_rc + } fi if ! have save_dot; then safe_dot() { dot "$@"; } From nobody Tue Sep 10 19:05:04 2024 X-Original-To: dev-commits-src-main@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 4X3CnY13jtz5WSpv; Tue, 10 Sep 2024 19:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3CnY0Vwfz4Sbt; Tue, 10 Sep 2024 19:05:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725995105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D0oRfP9qgtSJclXiZ/XKhuqA4et/WywdKEZJ9uEONRg=; b=MwZgbKfknoLbKR2FmUT1+SqsUTxUpfQLOlz80Ck5Kc04mTgqEsLSX4sLjz80OBMuKkNg5W Tzg+QRNh44Mg2h2MB6EBmmvES8OXN8tJkHwxsSy4tILkEz98X5kJ3RmuZ/RiwpAOce9NwM SEcMpHyjshqYFpmubtRnoRupAwzTM5ZmY3cmL3kI5YOVmyvAHuR5GLCtpL2giN40RtqWa2 +9oaSWspmaMuTe4ATbV+dWTSSxIa+syNbY/UaNFuEErAYoxeZe0KzYaa2OViLpbHx8jHD+ NwfSPT7yYtwGv0hDp2iDJaWxGcj3ydNsulReT3DIxOi7A7YNObBb63hf2a1Nzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725995105; a=rsa-sha256; cv=none; b=Z+1caLx4dTJx5VXLk1Yo71z+Br+vKYAwdhcxNTD9dCLdzxyuoY6eqib22wZnGGLRpd7Te+ BhDx55K6EQ3pFuhgnpOqRC95VphckdoK/BAP7/r95QqIawbq0sZ3FqnzM4LnCgF1QbdT7n jwYI45eWGKPaXWFiYS1X2QgqX1ixbQcIcQnHwpe1uyrnx59aXfnFxvZFN+fi+i9ulQI2Uu EsPFqHIH68ehFIUNzmGyvsiOJolXnr8uqcrPep+f8P9AJeEuHNAHsVYYyqAL4fSX54p3Zv QkhDGj7d92cW549QtDQqTp5MtE8vr6wPVUMPojh8FjDaJDLiI0fLlEa0A/qIbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725995105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D0oRfP9qgtSJclXiZ/XKhuqA4et/WywdKEZJ9uEONRg=; b=YL2O2gaTHr3IJThc9/fNoE9Fasiy1KnN95tv5BgBaMizPqvd3Aa1X8cJXFomd0WrSN6naA n8xkMt1JRNP+Z6AyUvK7vWZdVoEtlqDSNsvPIVqBkI/RryGYDO0oKEstt96G0MjSXRQAnh iSx3NqoE1m3dbmY6JRFgN4rVMKm3FeNfndMSGGM3p1Wn2ER2ZSxH6KNPOWvBfIkifOZbk5 vOhmVLc/l2ZB5pFXxLbCg4S3QC95n+JGr4/0LGMhRYSvTptD2RlQTz7/yzA5uPYxjktBnK bUSx3U1Ic1MMufoOThpz4UlC8ELY52MId946pznxeGUKIIS3eM1+jJd/5Lqffg== 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 4X3CnX6s4tzyfy; Tue, 10 Sep 2024 19:05:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48AJ54Gc008328; Tue, 10 Sep 2024 19:05:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48AJ54vI008325; Tue, 10 Sep 2024 19:05:04 GMT (envelope-from git) Date: Tue, 10 Sep 2024 19:05:04 GMT Message-Id: <202409101905.48AJ54vI008325@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Simon J. Gerraty" Subject: git: 7e1c014a9e3a - main - debug.sh take advantage of hooks.sh List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7e1c014a9e3a632099efd1fa34a583b627b71bb3 Auto-Submitted: auto-generated The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=7e1c014a9e3a632099efd1fa34a583b627b71bb3 commit 7e1c014a9e3a632099efd1fa34a583b627b71bb3 Author: Simon J. Gerraty AuthorDate: 2024-09-10 19:04:15 +0000 Commit: Simon J. Gerraty CommitDate: 2024-09-10 19:04:15 +0000 debug.sh take advantage of hooks.sh Allow Debug{On,Off} to run associated hooks. This makes it feasible to collect extra debug info at runtime without needing to modify any potentially verified and hence immutable scripts. Like debug.sh, hooks.sh is extremely handy and used extensively in many parts of Junos and its build environment. It is provided here in the hope that others may benefit. We do not dot hooks.sh by default to reduce overhead, but it can but done from rc.conf et al using $_HOOKS_SH . /libexec/hooks.sh to avoid including more than once. Reviewed by: stevek Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D46552 --- libexec/rc/Makefile | 2 +- libexec/rc/debug.sh | 97 ++++++++++++++++-- libexec/rc/hooks.sh | 276 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 366 insertions(+), 9 deletions(-) diff --git a/libexec/rc/Makefile b/libexec/rc/Makefile index 9a5aa11424ae..e82b582462d0 100644 --- a/libexec/rc/Makefile +++ b/libexec/rc/Makefile @@ -18,7 +18,7 @@ CONFETCDEFAULTS= rc.conf CONFETCDEFAULTSPACKAGE= rc FILESGROUPS= LIBEXEC_SCRIPTS -LIBEXEC_SCRIPTS= debug.sh safe_eval.sh +LIBEXEC_SCRIPTS= debug.sh hooks.sh safe_eval.sh LIBEXEC_SCRIPTSDIR= /libexec LIBEXEC_SCRIPTSMODE= 755 LIBEXEC_SCRIPTSPACKAGE= rc diff --git a/libexec/rc/debug.sh b/libexec/rc/debug.sh index 7bbb500e2d22..eea8a011bc09 100755 --- a/libexec/rc/debug.sh +++ b/libexec/rc/debug.sh @@ -74,7 +74,7 @@ # Simon J. Gerraty # RCSid: -# $Id: debug.sh,v 1.35 2024/02/03 19:04:47 sjg Exp $ +# $Id: debug.sh,v 1.40 2024/09/09 20:06:00 sjg Exp $ # # @(#) Copyright (c) 1994-2024 Simon J. Gerraty # @@ -93,11 +93,37 @@ _DEBUG_SH=: Myname=${Myname:-`basename $0 .sh`} +# We want to use local if we can +# if isposix-shell.sh has been sourced isPOSIX_SHELL will be set +# as will local +case "$local" in +local|:) ;; +*) + if (echo ${PATH%:*}) > /dev/null 2>&1; then + local=local + else + local=: + fi + ;; +esac + DEBUGGING= DEBUG_DO=: DEBUG_SKIP= export DEBUGGING DEBUG_DO DEBUG_SKIP +## +# _debugOn match first +# +# Actually turn on tracing, set $DEBUG_ON=$match +# +# If we have included hooks.sh $_HOOKS_SH will be set +# and if $first (the first arg to DebugOn) is suitable as a variable +# name we will run ${first}_debugOn_hooks. +# +# We disable tracing for hooks_run itself but functions can trace +# if they want based on DEBUG_DO +# _debugOn() { DEBUG_OFF= DEBUG_DO= @@ -105,11 +131,36 @@ _debugOn() { DEBUG_X=-x set -x DEBUG_ON=$1 + case "$_HOOKS_SH,$2" in + ,*|:,|:,*[${CASE_CLASS_NEG:-!}A-Za-z0-9_]*) ;; + *) # avoid noise from hooks_run + set +x + hooks_run ${2}_debugOn_hooks + set -x + ;; + esac } +## +# _debugOff match $DEBUG_ON $first +# +# Actually turn off tracing, set $DEBUG_OFF=$match +# +# If we have included hooks.sh $_HOOKS_SH will be set +# and if $first (the first arg to DebugOff) is suitable as a variable +# name we will run ${first}_debugOff_hooks. +# +# We do hooks_run after turning off tracing, but before resetting +# DEBUG_DO so functions can trace if they want +# _debugOff() { DEBUG_OFF=$1 set +x + case "$_HOOKS_SH,$3" in + ,*|:,|:,*[${CASE_CLASS_NEG:-!}A-Za-z0-9_]*) ;; + *) hooks_run ${3}_debugOff_hooks;; + esac + set +x # just to be sure DEBUG_ON=$2 DEBUG_DO=: DEBUG_SKIP= @@ -120,16 +171,30 @@ DebugEcho() { $DEBUG_DO echo "$@" } +## +# Debugging +# +# return 0 if we are debugging. +# Debugging() { test "$DEBUG_SKIP" } +## +# DebugLog message +# +# Outout message with timestamp if we are debugging +# DebugLog() { $DEBUG_SKIP return 0 echo `date '+@ %s [%Y-%m-%d %H:%M:%S %Z]'` "$@" } -# something hard to miss when wading through huge -x output +## +# DebugTrace message +# +# Something hard to miss when wading through huge -x output +# DebugTrace() { $DEBUG_SKIP return 0 set +x @@ -139,8 +204,13 @@ DebugTrace() { set -x } -# Turn on debugging if appropriate +## +# DebugOn [-e] [-o] match ... +# +# Turn on debugging if any $match is found in $DEBUG_SH. +# DebugOn() { + eval ${local:-:} _e _match _off _rc _rc=0 # avoid problems with set -e _off=: while : @@ -170,14 +240,14 @@ DebugOn() { *,!$_e,*|*,!$Myname:$_e,*) # only turn it off if it was on _rc=0 - $DEBUG_DO _debugOff $_e $DEBUG_ON + $DEBUG_DO _debugOff $_e $DEBUG_ON $1 break ;; *,$_e,*|*,$Myname:$_e,*) # only turn it on if it was off _rc=0 _match=$_e - $DEBUG_SKIP _debugOn $_e + $DEBUG_SKIP _debugOn $_e $1 break ;; esac @@ -185,7 +255,7 @@ DebugOn() { if test -z "$_off$_match"; then # off unless explicit match, but # only turn it off if it was on - $DEBUG_DO _debugOff $_e $DEBUG_ON + $DEBUG_DO _debugOff $_e $DEBUG_ON $1 fi DEBUGGING=$DEBUG_SKIP # backwards compatability $DEBUG_DO set -x # back on if needed @@ -193,11 +263,20 @@ DebugOn() { return $_rc } +## +# DebugOff [-e] [-o] [rc=$?] match ... +# # Only turn debugging off if one of our args was the reason it # was turned on. +# # We normally return 0, but caller can pass rc=$? as first arg # so that we preserve the status of last statement. +# +# The options '-e' and '-o' are ignored, they just make it easier to +# keep DebugOn and DebugOff lines in sync. +# DebugOff() { + eval ${local:-:} _e _rc case ",${DEBUG_SH:-$DEBUG}," in *,[Dd]ebug,*) ;; *) $DEBUG_DO set +x;; # reduce the noise @@ -216,7 +295,7 @@ DebugOff() { : $_e==$DEBUG_OFF DEBUG_OFF case "$DEBUG_OFF" in "") break;; - $_e) _debugOn $DEBUG_ON; return $_rc;; + $_e) _debugOn $DEBUG_ON $1; return $_rc;; esac done for _e in $* @@ -224,7 +303,7 @@ DebugOff() { : $_e==$DEBUG_ON DEBUG_ON case "$DEBUG_ON" in "") break;; - $_e) _debugOff; return $_rc;; + $_e) _debugOff "" "" $1; return $_rc;; esac done DEBUGGING=$DEBUG_SKIP # backwards compatability @@ -237,6 +316,7 @@ _TTY=${_TTY:-`test -t 0 && tty`}; export _TTY # override this if you like _debugShell() { + test "x$_TTY" != x || return 0 { echo DebugShell "$@" echo "Type 'exit' to continue..." @@ -247,6 +327,7 @@ _debugShell() { # Run an interactive shell if appropriate # Note: you can use $DEBUG_SKIP DebugShell ... to skip unless debugOn DebugShell() { + eval ${local:-:} _e case "$_TTY%${DEBUG_INTERACTIVE}" in *%|%*) return 0;; # no tty or no spec esac diff --git a/libexec/rc/hooks.sh b/libexec/rc/hooks.sh new file mode 100755 index 000000000000..3b0c50f10191 --- /dev/null +++ b/libexec/rc/hooks.sh @@ -0,0 +1,276 @@ +: +# SPDX-License-Identifier: BSD-2-Clause + +# NAME: +# hooks.sh - provide hooks for customization +# +# SYNOPSIS: +# hooks_add_all HOOKS [--first] func [...] +# hooks_add_once HOOKS [--first] func [...] +# hooks_add_default_set {all,once} +# hooks_add HOOKS func [...] +# hooks_get [--lifo] HOOKS +# hooks_run [--lifo] HOOKS ["args"] +# hooks_run_all [--lifo] HOOKS ["args"] +# hooks_has HOOKS func +# +# add_hooks HOOKS [--first] func [...] +# run_hooks HOOKS [LIFO] ["args"] +# run_hooks_all HOOKS [LIFO] ["args"] +# +# DESCRIPTION: +# The functions add_hooks and run_hooks are retained for +# backwards compatability. They are aliases for hooks_add and +# hooks_run. +# +# hooks_add_all simply adds the "func"s to the list "HOOKS". +# +# If the first arg is '--first' "func"s are added to the start +# of the list. +# +# hooks_add_once does the same but only if "func" is not in "HOOKS". +# hooks_add uses one of the above based on "option", '--all' (default) +# or '--once'. +# +# hooks_add_default_set sets the default behavior of hooks_add +# +# hooks_get simply returns the named list of functions. +# +# hooks_has indicates whether "func" in in "HOOKS". +# +# hooks_run runs each "func" in $HOOKS and stops if any of them +# return a bad status. +# +# hooks_run_all does the same but does not stop on error. +# +# If run_hooks or run_hooks_all is given a flag of '--lifo' or +# 2nd argument of LIFO the hooks are run in the reverse order of +# calls to hooks_add. +# Any "args" specified are passed to each hook function. +# + +# RCSid: +# $Id: hooks.sh,v 1.21 2024/09/06 16:53:45 sjg Exp $ +# +# @(#)Copyright (c) 2000-2024 Simon J. Gerraty +# +# This file is provided in the hope that it will +# be of use. There is absolutely NO WARRANTY. +# Permission to copy, redistribute or otherwise +# use this file is hereby granted provided that +# the above copyright notice and this notice are +# left intact. + +# avoid multiple inclusion +_HOOKS_SH=: + +# We want to use local if we can +# if isposix-shell.sh has been sourced isPOSIX_SHELL will be set +# as will local +case "$local" in +local|:) ;; +*) if (echo ${PATH%:*}) > /dev/null 2>&1; then + local=local + else + local=: + fi + ;; +esac + +## +# hooks_add_all list func ... +# +# add "func"s to "list" regardless +# +hooks_add_all() { + eval $local __h + __h=$1; shift + case "$1" in + --first) + shift + eval "$__h=\"$* \$$__h\"" + ;; + *) eval "$__h=\"\$$__h $*\"";; + esac +} + +## +# hooks_add_once list func ... +# +# add "func"s to "list" if not already there +# +hooks_add_once() { + eval $local __h __hh __first + __h=$1; shift + case "$1" in + --first) shift; __first=:;; + *) __first=;; + esac + eval "__hh=\$$__h" + while [ $# -gt 0 ] + do + : __hh="$__hh" 1="$1" + case "$__first $__hh " in + *" $1 "*) ;; # dupe + :*) __hh="$1 $__hh";; + *) __hh="$__hh $1";; + esac + shift + done + eval "$__h=\"$__hh\"" +} + +## +# hooks_add_default_set [--]{all,once} +# +# change the default method of hooks_add +# +hooks_add_default_set() { + case "$1" in + once|--once) HOOKS_ADD_DEFAULT=once;; + *) HOOKS_ADD_DEFAULT=all;; + esac +} + +## +# hooks_add [--{all,once}] list func ... +# +# add "func"s to "list" +# +# If '--once' use hooks_add_once, +# default is hooks_add_all. +# +hooks_add() { + case "$1" in + --all) shift; hooks_add_all "$@";; + --once) shift; hooks_add_once "$@";; + *) hooks_add_${HOOKS_ADD_DEFAULT:-all} "$@";; + esac +} + +## +# hooks_get [--lifo] list [LIFO] +# +# return $list +# +hooks_get() { + eval $local __h __h2 e __l + case "$1" in + --lifo) __l=LIFO; shift;; + esac + eval "__h=\$$1" + case "$__l$2" in + LIFO*) + __h2="$__h" + __h= + for e in $__h2 + do + __h="$e $__h" + done + ;; + esac + echo "$__h" +} + +## +# hooks_has list func +# +# is func in $list ? +# +hooks_has() { + eval $local __h + eval "__h=\$$1" + case " $__h " in + *" $1 "*) return 0;; + esac + return 1 +} + +## +# hooks_run [--all] [--lifo] list [LIFO] [args] +# +# pass "args" to each function in "list" +# Without '--all'; if any return non-zero return that immediately +# +hooks_run() { + eval $local __a e __h __hl __h2 __l + __a=return + __l= + + while : + do + case "$1" in + --all) __a=:; shift;; + --lifo) __l=$1; shift;; + *) break;; + esac + done + __hl=$1; shift + case "$1" in + LIFO) __l=--lifo; shift;; + esac + __h=`hooks_get $__l $__hl` + for e in $__h + do + $e "$@" || $__a $? + done +} + +## +# hooks_run_all [--lifo] list [LIFO] [args] +# +# pass "args" to each function in "list" +# +hooks_run_all() { + hooks_run --all "$@" +} + +## +# add_hooks,run_hooks[_all] aliases +# +add_hooks() { + hooks_add "$@" +} + +run_hooks() { + hooks_run "$@" +} + +run_hooks_all() { + hooks_run --all "$@" +} + + +case /$0 in +*/hooks.sh) + # simple unit-test + list=HOOKS + flags= + while : + do + : 1=$1 + case "$1" in + HOOKS|*hooks) list=$1; shift;; + --*) flags="$flags $1"; shift;; + *) break;; + esac + done + for f in "$@" + do + : f=$f + case "$f" in + LIFO) ;; + false|true) ;; + *) eval "$f() { echo This is $f; }";; + esac + done + echo hooks_add $flags $list "$@" + hooks_add $flags $list "$@" + echo hooks_run $list + hooks_run $list + echo hooks_run --all --lifo $list + hooks_run --all --lifo $list + echo hooks_run $list LIFO + hooks_run $list LIFO + ;; +esac From nobody Wed Sep 11 08:36:17 2024 X-Original-To: dev-commits-src-main@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 4X3YnY3Pnyz5W6Gf; Wed, 11 Sep 2024 08:36: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3YnY1nDxz40XR; Wed, 11 Sep 2024 08:36:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726043777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tvh4ZwWf9EYaFWoLOhi5N59ZyCQs2OId5CXjLfrbJ7E=; b=uYI7DaybraTWv5sjBf5C2k0zzjoQe0jai7A9Mn+adP5tsfDBKOor0ULNQMm1wfngY/EPpB oPmIsw2eEYIIc3iSUUINh/jTsAaYmj2NOnBt5wMGLdHjnZOdpKwjixB7ULY2k0E4723/mF GDDl4Zr9IzCYZfGtHtNhtMaBmkJnYHvAWafMJ23i/G5/Q8Z9TDTpQz8nAHDf0UY3Sv7+3Q J2+oL00z77EpPqbxVJyjgoxbR9dKdd5NmkhUjg5E/nkElw1nwMt9eKYDghnvG0/p9ME3xR FGUIX6xafz0oNbz0Pft9p4kn/Q23ruyqP6L1B5dBpIkxbIgaphFWusU4XCNH9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726043777; a=rsa-sha256; cv=none; b=w6jW3BuoPX7zMK4Jcmlrg7a6KnXWg1Qb3cQbX7MyBZlmhjlK/di6afUi99d2gHNFu0bXPa 4hRIRmJUXOwjLJ5gcDLJVjTcE8dbhGVJsdDJ28f1TzW1i57cLestoc1DftfYLIfQyOU+GK 0vbmWVWCnC2YfjfTvMQ25j8gYNri1twXoWP4u/I28chVEsoN5pdI8gxvyVAHcINszakvMe zrG29Qa4OWUTdL3ZLR+8YbsvzmedVVqTa8yY8SU3eQsuz5I8dOCyC6WzDH8dqTaEsMjuiJ xnBu/sE6rczwGJBAm6WsPEB6OXH8QiD/CPH4DIzNwNl8JWiSNKod4wa+3XIcrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726043777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tvh4ZwWf9EYaFWoLOhi5N59ZyCQs2OId5CXjLfrbJ7E=; b=R9dAnCFTlWiTS33T0bU0ZIpWMvgMAG634one2PSiJ7MvEmDTD/wCDnFPfOXP0+rxeI7fXi 19qMJn8ZiRNt3PvyTdXWrTqytA9SQDbvzWyT/mciNDUzZyKVJtAKqRkspNUvCVXp/ZB+fM NkVFRyfv3a5sXWwOneYJywl3hrulTX9xNU3BatfXyuCkL23i9zxZ5/amcfJhXz+4FWJWKU wU6F35hWDoNvWLwHE0ABx5Ge5G9et0yOmhn5Y49qtvA+RbEJiEQIcvCZr3gGYXXUmT3xbf bFZrUifez11o8z7S1MlNu+0XxGDcXzCS+d3LxXgQ/2ZkMoN8ZQJaLaJ8TId6KA== 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 4X3YnY1NPkzN6N; Wed, 11 Sep 2024 08:36:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48B8aHM5090520; Wed, 11 Sep 2024 08:36:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48B8aHvS090517; Wed, 11 Sep 2024 08:36:17 GMT (envelope-from git) Date: Wed, 11 Sep 2024 08:36:17 GMT Message-Id: <202409110836.48B8aHvS090517@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Poul-Henning Kamp Subject: git: 8652bc8a994b - main - Typo: brig(h)tness List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: phk X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8652bc8a994bb5afea110e6ee15f21ec26259837 Auto-Submitted: auto-generated The branch main has been updated by phk: URL: https://cgit.FreeBSD.org/src/commit/?id=8652bc8a994bb5afea110e6ee15f21ec26259837 commit 8652bc8a994bb5afea110e6ee15f21ec26259837 Author: Poul-Henning Kamp AuthorDate: 2024-09-11 08:35:02 +0000 Commit: Poul-Henning Kamp CommitDate: 2024-09-11 08:35:46 +0000 Typo: brig(h)tness --- sys/teken/libteken/teken.3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/teken/libteken/teken.3 b/sys/teken/libteken/teken.3 index 5a7f5cd18e73..6d4a36ef32e3 100644 --- a/sys/teken/libteken/teken.3 +++ b/sys/teken/libteken/teken.3 @@ -179,7 +179,7 @@ The function is similar to .Fn teken_256to16 except it converts to an ANSI 8-color code. -This is more accurate than discarding the brigtness bit in the result of +This is more accurate than discarding the brightness bit in the result of .Fn teken_256to16 . .Pp The From nobody Wed Sep 11 10:42:03 2024 X-Original-To: dev-commits-src-main@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 4X3cZg5ch3z5WNC9; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZg2WsCz4Qg9; Wed, 11 Sep 2024 10:42:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051323; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dMc5oZbxOV0/yBnH8t50EJSXTJYuQXE/If0N6k7v30E=; b=aG5yneKC799bKTJtiyMowCrGeDdpZFx6lUvlHN7JeER/Da9RDW37EVOlonDjEFSQMwW2Lc bzwqWWN5DrtHp3Nn45OxLjQjAO8wNZ2k3pbs4rfCyVP1uO+NRkVMFsXrNAkNPnYlJElES+ XRsn0CDFnuk7BvvnedYGMmvcefUKJa0CKFW2Thn1VN74MK4WXllJ7lmU4SncSB0HZoRfKx /4h1kFwW1aKEMm9hRf6M3Pw/65iiZWyvOtTvcL2Q18bgHejPR9UPt84S2jvQlzyFqNU0Xv IuosoPzSJjdVWn2KAVKB1RGfqtqZzJMZQ+HiIaQw/R65O8bFLlMiIg4Hem+dMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051323; a=rsa-sha256; cv=none; b=tGHAPkjQIPYWchSLux494ixML7LSEfxiM/dytqVLVEUe68v1qaGU5S2+ed45HZ6hB/SHul VTbYMKzyOaZs0Oc+bhd8AtMqoQ3YB2j3uzpUE5pawW6Ox4360FeFMqt2JETyWqnO4zhbFF /iH9kAku4Ryr0iBBTYwCPSC1hUE9AO1KYqQA/FKunBGIfAy8iyUkq9Iqt5gI3pwIuNdFaq kZEAo1b3PUTWefaFHDE7w/CgQvDX58e55vPJ16sCPqgDPYNFDhbVf0P8fsDU44dB0P4j24 h2EPO07JHl2/U+x1CTkpioZWiIc7JN334+VJvg9X46U9QczM+EA4Qfip/nldXA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051323; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dMc5oZbxOV0/yBnH8t50EJSXTJYuQXE/If0N6k7v30E=; b=o645bmYapVEmolHVWbcm3yzF7D7nKZO/qo+fMDmEHoME8/F7QaarqT3dV6rXFWsug7K40s PEI6mQijJiaGN0lLDSmUaPB1zv+tsWYzO/jE054g6Z0r6wpyNlX5yC9zCR24FYru4J0QPm CviNbiJc4t2B+ObxVYGAWZkQLx0nVj8TUU+bEn8pA7iUtQoeiWlWY6EmSgQEqkBeO0+9PO nYW6mXmMBa6h6Cgelf8GnZFYBDdQbaDbQqH3d56ob8ajb0gSRJ8S3ZIpSgMuUX20tVFA40 LIxP3R3g9tK42IMTW0cHiJ1pQT+7uzsGumpX8Ys1wFlMevT7kHa7DIKCTCT7dg== 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 4X3cZg27vtzSSH; Wed, 11 Sep 2024 10:42:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAg3ZK007629; Wed, 11 Sep 2024 10:42:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAg389007626; Wed, 11 Sep 2024 10:42:03 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:03 GMT Message-Id: <202409111042.48BAg389007626@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: 7a488d83b3af - main - arm64: Adjust the indentation of CPTR_EL2 values List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 7a488d83b3af4d59946319b251a3a2060f18df40 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=7a488d83b3af4d59946319b251a3a2060f18df40 commit 7a488d83b3af4d59946319b251a3a2060f18df40 Author: Andrew Turner AuthorDate: 2024-09-11 09:38:08 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:25:08 +0000 arm64: Adjust the indentation of CPTR_EL2 values Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46513 --- sys/arm64/include/hypervisor.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 499dba9092fc..9f53c8255e49 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -53,14 +53,14 @@ /* CPTR_EL2 - Architecture feature trap register */ /* Valid if HCR_EL2.E2H == 0 */ -#define CPTR_RES0 0x7fefc800 -#define CPTR_RES1 0x000033ff -#define CPTR_TFP 0x00000400 +#define CPTR_RES0 0x7fefc800 +#define CPTR_RES1 0x000033ff +#define CPTR_TFP 0x00000400 /* Valid if HCR_EL2.E2H == 1 */ -#define CPTR_FPEN 0x00300000 +#define CPTR_FPEN 0x00300000 /* Unconditionally valid */ -#define CPTR_TTA 0x00100000 -#define CPTR_TCPAC 0x80000000 +#define CPTR_TTA 0x00100000 +#define CPTR_TCPAC 0x80000000 /* HCR_EL2 - Hypervisor Config Register */ #define HCR_VM (UL(0x1) << 0) From nobody Wed Sep 11 10:42:05 2024 X-Original-To: dev-commits-src-main@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 4X3cZj4x6Fz5WNHN; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZj4GYDz4QR4; Wed, 11 Sep 2024 10:42:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051325; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mtStfw6dNxJsOTFpfThJeowjKhV4xK6dLmRhmEc9oqc=; b=Z4o9FlqDPEAUBUOpDOF7422j+dbVwvVNNE54JbocuOroyX92dnJY0Tvmd3MnIiytwqQ2iM YJkV0LL7zKqApxky8CxBY30T0c4wo9pbG487mSzNcpWWgwpov/zZPC1sy1By9DNidB5FCZ Cz/HHh/XY4/T/wWhdk3Dh9d3pUR4hMBTJlqvCJQCkZVJcIAufOkLZ1HigpD6HSiDWoA21y /hAxdsYLAkmsqJyQCsarjvD7OunHP+RHXKU5vOWsJfL07F9dwqPNNh431QmHASuFBfT3nj CmKq1OSZDC5G2U7Nhd9jp5saieNG2NsZX8UxdD5bHJO3oaMZgia2ljrFpjfSUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051325; a=rsa-sha256; cv=none; b=bHTN2m1Hp/TWk/clDG7ddaIFX+i3VKEGfyuV83lwlmJwQ245X53VR/g+Ky0vIjENAtZ1tn 0HlxDM4xxrPRaXbbknoSWIuYIJrNvSAsDfNP7TYBP5hFARo45hXXdijxssI1D78GPBFmph nZdhNLBpo+DHH+Xmqh1M6CvYYmPbHNi+NpwYtzxVx55acwjxq1oCC+sX9JgaAN9MM8IDjM zVZhyxWzXvXB7lztTJvnBzMdxdExImyJTUO/wpDWKV4aYxaOXesCMfFc+R3TcsXehiYRLp hZOPvinF11ojzXVI00Hp80M7RtZDNJGM2KgIrJ+/6ZtcxjWzVWNqQQdtycfrSA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051325; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mtStfw6dNxJsOTFpfThJeowjKhV4xK6dLmRhmEc9oqc=; b=j5T5tZLGWNSoR1u7dzuGX4NDlcd7OQX5gNe3iOygvruIxseu6gO4N5Qu1o7NYxHPYg0jAv Q+K1HsNucS/cOS3gSg6bCFtw28J3a2r5s/yjjyNYHC9G+Xn2zwIn9UmN4Kbop+62mIjogh iBMP+fSObWRr48+FfpEJZ93Q5kEsiJF8dey1yMtelZGBtK+7tFptRjtsUMGCu7JfTmv4RF 2fJCDY4+hvKPh6Je3aW3daRZbTw1pUu8Y5YmWd1Cj52rHpWqJosSxB1BUIte+pY87UAGJv gS1QHqDTFGVrQgEaRhWd4gm7hUkS+g0eYpFKyLHOyJqf11S6EuqqeO9PDc2fVQ== 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 4X3cZj3tGWzS7Z; Wed, 11 Sep 2024 10:42:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAg5Ge007716; Wed, 11 Sep 2024 10:42:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAg5d9007713; Wed, 11 Sep 2024 10:42:05 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:05 GMT Message-Id: <202409111042.48BAg5d9007713@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: 9f3d15fda29a - main - arm64: Add CPTR_E2H_TTA List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 9f3d15fda29a9d510754daed8e6158c637108b42 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=9f3d15fda29a9d510754daed8e6158c637108b42 commit 9f3d15fda29a9d510754daed8e6158c637108b42 Author: Andrew Turner AuthorDate: 2024-09-11 09:38:22 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:25:09 +0000 arm64: Add CPTR_E2H_TTA The TTA field moves depending on the HCR_EL2.E2H field. Add a macro to hold the E2H == 1 case. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46515 --- sys/arm64/include/hypervisor.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index ba18f8077467..738eeca66ffe 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -56,10 +56,11 @@ #define CPTR_RES0 0x7fefc800 #define CPTR_RES1 0x000033ff #define CPTR_TFP 0x00000400 +#define CPTR_TTA 0x00100000 /* Valid if HCR_EL2.E2H == 1 */ #define CPTR_E2H_FPEN 0x00300000 +#define CPTR_E2H_TTA 0x10000000 /* Unconditionally valid */ -#define CPTR_TTA 0x00100000 #define CPTR_TCPAC 0x80000000 /* HCR_EL2 - Hypervisor Config Register */ From nobody Wed Sep 11 10:42:07 2024 X-Original-To: dev-commits-src-main@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 4X3cZl6kgvz5WMxb; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZl62Qtz4QgN; Wed, 11 Sep 2024 10:42:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hTvq3X/yZH2BU/xiHoprm2moemoongV6giQKUzriz6g=; b=aX5mDXKi9K5vSmABffVTrIQy098Nx07OUYx5HRFy+ZE9+ojFBzuOgxKNNv3ooKLDcem5VW soV3+BAa0oYEs7i5A7W0mEEocln4+DbAe09drdr+vD75eWk+seFMACUU17ghFn562vwsbL Om/FcjlkziNiVQ1QZahuOVFi4SuhmcSng/qPtv57U++WF5qMpISadzA+lT8lgYPh+tKTpT sSawxRo5H7HEuCfxMgn+tU4ShDQCeDzBU2xr/65MV56Ad/TN2GcVb1ZAWSYV+n0cB85Q9R 0Hc6X3U/XtaxQBps/tlICeFts6Sa0qcLqJG9KK6Uf5G1iT0Q1h/PYsosa/MnCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051327; a=rsa-sha256; cv=none; b=p+2s1BqSXQtE11qZCx+KiQjIN6ntQXMpWPHSF3dI6QIA26LwKFmMUKVKRvQHBEICsVClQn 9KQiJ82VISS9JVgIqQI+b+ZtaVvzYeuC+xBwa7pjhGJgyRRj/bX7wxXVJHM4zzB4gbDb4I FA4KrVpTHnilJTOAgGFtYansdht9VyxHx2WQuAKfcD/eFpFBj9KXC4Pxp3q/NsxdxjhzJC sin4Uy3XhiqUOOEEyjMweEaoGK2ItE+dVC4PyRQzpBOn+BSv0tFe6jgORI1SiIAd2FkKdb LiqAz+by6tiIWKLadROlrmxQHNjiZCoIyggEGbKq4bSWMzA9RfUimHxh7CR95w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hTvq3X/yZH2BU/xiHoprm2moemoongV6giQKUzriz6g=; b=Ah6GLfko8ySVuX/9uIq5HfGBZPdj1/Kv1YMqRbeCufDG0fFmGXn/KF2baVApCtnHuIoRSm ZmdadFEYdje8nM5TMLmPzXv6YvFWAe8c2MC8gdoZaP30H18i4JhyENOqAfjGfY73K0XUV0 OgGbs1HInRc34FPTRLqp7tMD6lk1iy9xZiv3dflY892SLIVu1Ok/DKmFVIuj3JpwcLuzKw /Fa1Ak7hD+nTfW3ELZlaFz2dRdnTyV4IOcYHd3FaWWAlLn1XFYoHvQqkpEFojA4dNsxRxS ebq9JUHb8RIwKp8bPzgD8VwzyVYyCFteU8OTp4vI/hmwu657kdftG8SV9i1DUw== 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 4X3cZl5cZ4zSGh; Wed, 11 Sep 2024 10:42:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAg7xG007829; Wed, 11 Sep 2024 10:42:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAg7bt007826; Wed, 11 Sep 2024 10:42:07 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:07 GMT Message-Id: <202409111042.48BAg7bt007826@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: bf18be5ab707 - main - bcm2835: Remove support for SoCs with an Armv6 CPU List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: bf18be5ab707c46035239e281f6a1fe458f373a8 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=bf18be5ab707c46035239e281f6a1fe458f373a8 commit bf18be5ab707c46035239e281f6a1fe458f373a8 Author: Andrew Turner AuthorDate: 2024-07-12 11:39:45 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:39:42 +0000 bcm2835: Remove support for SoCs with an Armv6 CPU Armv6 has been removed, there is no need to keep this in the tree. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45956 --- sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c | 22 -- sys/arm/broadcom/bcm2835/bcm2835_machdep.c | 28 --- sys/arm/broadcom/bcm2835/bcm2835_systimer.c | 309 ---------------------------- sys/arm/broadcom/bcm2835/files.bcm2835 | 2 - sys/arm/broadcom/bcm2835/std.bcm2835 | 9 - 5 files changed, 370 deletions(-) diff --git a/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c b/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c index 56227f948e98..3ef564c6ae13 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c @@ -61,17 +61,10 @@ #define HZ2MHZ(freq) ((freq) / (1000 * 1000)) #define MHZ2HZ(freq) ((freq) * (1000 * 1000)) -#ifdef SOC_BCM2835 -#define OFFSET2MVOLT(val) (1200 + ((val) * 25)) -#define MVOLT2OFFSET(val) (((val) - 1200) / 25) -#define DEFAULT_ARM_FREQUENCY 700 -#define DEFAULT_LOWEST_FREQ 300 -#else #define OFFSET2MVOLT(val) (((val) / 1000)) #define MVOLT2OFFSET(val) (((val) * 1000)) #define DEFAULT_ARM_FREQUENCY 600 #define DEFAULT_LOWEST_FREQ 600 -#endif #define DEFAULT_CORE_FREQUENCY 250 #define DEFAULT_SDRAM_FREQUENCY 400 #define TRANSITION_LATENCY 1000 @@ -1507,20 +1500,6 @@ bcm2835_cpufreq_make_freq_list(device_t dev, struct cf_setting *sets, if (min_freq > cpufreq_lowest_freq) min_freq = cpufreq_lowest_freq; -#ifdef SOC_BCM2835 - /* from freq to min_freq */ - for (idx = 0; idx < *count && freq >= min_freq; idx++) { - if (freq > sc->arm_min_freq) - volts = sc->max_voltage_core; - else - volts = sc->min_voltage_core; - sets[idx].freq = freq; - sets[idx].volts = volts; - sets[idx].lat = TRANSITION_LATENCY; - sets[idx].dev = dev; - freq -= MHZSTEP; - } -#else /* XXX RPi2 have only 900/600MHz */ idx = 0; volts = sc->min_voltage_core; @@ -1536,7 +1515,6 @@ bcm2835_cpufreq_make_freq_list(device_t dev, struct cf_setting *sets, sets[idx].dev = dev; idx++; } -#endif *count = idx; return (0); diff --git a/sys/arm/broadcom/bcm2835/bcm2835_machdep.c b/sys/arm/broadcom/bcm2835/bcm2835_machdep.c index eabbc371bb19..be6b8971437d 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_machdep.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_machdep.c @@ -61,9 +61,6 @@ #include "platform_if.h" -#ifdef SOC_BCM2835 -static platform_devmap_init_t bcm2835_devmap_init; -#endif #ifdef SOC_BCM2836 static platform_devmap_init_t bcm2836_devmap_init; #endif @@ -91,20 +88,6 @@ bcm2835_late_init(platform_t plat) } } -#ifdef SOC_BCM2835 -/* - * Set up static device mappings. - * All on-chip peripherals exist in a 16MB range starting at 0x20000000. - * Map the entire range using 1MB section mappings. - */ -static int -bcm2835_devmap_init(platform_t plat) -{ - - devmap_add_entry(0x20000000, 0x01000000); - return (0); -} -#endif #ifdef SOC_BCM2836 static int @@ -122,17 +105,6 @@ bcm2835_cpu_reset(platform_t plat) bcmwd_watchdog_reset(); } -#ifdef SOC_BCM2835 -static platform_method_t bcm2835_methods[] = { - PLATFORMMETHOD(platform_devmap_init, bcm2835_devmap_init), - PLATFORMMETHOD(platform_late_init, bcm2835_late_init), - PLATFORMMETHOD(platform_cpu_reset, bcm2835_cpu_reset), - - PLATFORMMETHOD_END, -}; -FDT_PLATFORM_DEF2(bcm2835, bcm2835_legacy, "bcm2835 (legacy)", 0, "raspberrypi,model-b", 100); -FDT_PLATFORM_DEF2(bcm2835, bcm2835, "bcm2835", 0, "brcm,bcm2835", 100); -#endif #if defined(SOC_BCM2836) || defined(SOC_BRCM_BCM2837) static platform_method_t bcm2836_methods[] = { diff --git a/sys/arm/broadcom/bcm2835/bcm2835_systimer.c b/sys/arm/broadcom/bcm2835/bcm2835_systimer.c deleted file mode 100644 index 33775d0a2935..000000000000 --- a/sys/arm/broadcom/bcm2835/bcm2835_systimer.c +++ /dev/null @@ -1,309 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2012 Oleksandr Tymoshenko - * Copyright (c) 2012 Damjan Marion - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#define BCM2835_NUM_TIMERS 4 - -#define DEFAULT_TIMER 3 -#define DEFAULT_TIMER_NAME "BCM2835-3" -#define DEFAULT_FREQUENCY 1000000 -#define MIN_PERIOD 5LLU - -#define SYSTIMER_CS 0x00 -#define SYSTIMER_CLO 0x04 -#define SYSTIMER_CHI 0x08 -#define SYSTIMER_C0 0x0C -#define SYSTIMER_C1 0x10 -#define SYSTIMER_C2 0x14 -#define SYSTIMER_C3 0x18 - -struct systimer { - int index; - bool enabled; - struct eventtimer et; -}; - -struct bcm_systimer_softc { - struct resource* mem_res; - struct resource* irq_res[BCM2835_NUM_TIMERS]; - void* intr_hl[BCM2835_NUM_TIMERS]; - uint32_t sysclk_freq; - bus_space_tag_t bst; - bus_space_handle_t bsh; - struct systimer st[BCM2835_NUM_TIMERS]; -}; - -static struct resource_spec bcm_systimer_irq_spec[] = { - { SYS_RES_IRQ, 0, RF_ACTIVE }, - { SYS_RES_IRQ, 1, RF_ACTIVE }, - { SYS_RES_IRQ, 2, RF_ACTIVE }, - { SYS_RES_IRQ, 3, RF_ACTIVE }, - { -1, 0, 0 } -}; - -static struct ofw_compat_data compat_data[] = { - {"broadcom,bcm2835-system-timer", 1}, - {"brcm,bcm2835-system-timer", 1}, - {NULL, 0} -}; - -static struct bcm_systimer_softc *bcm_systimer_sc = NULL; - -/* Read/Write macros for Timer used as timecounter */ -#define bcm_systimer_tc_read_4(reg) \ - bus_space_read_4(bcm_systimer_sc->bst, \ - bcm_systimer_sc->bsh, reg) - -#define bcm_systimer_tc_write_4(reg, val) \ - bus_space_write_4(bcm_systimer_sc->bst, \ - bcm_systimer_sc->bsh, reg, val) - -static unsigned bcm_systimer_tc_get_timecount(struct timecounter *); - -static delay_func bcm_systimer_delay; - -static struct timecounter bcm_systimer_tc = { - .tc_name = DEFAULT_TIMER_NAME, - .tc_get_timecount = bcm_systimer_tc_get_timecount, - .tc_poll_pps = NULL, - .tc_counter_mask = ~0u, - .tc_frequency = 0, - .tc_quality = 1000, -}; - -static unsigned -bcm_systimer_tc_get_timecount(struct timecounter *tc) -{ - if (bcm_systimer_sc == NULL) - return (0); - - return bcm_systimer_tc_read_4(SYSTIMER_CLO); -} - -static int -bcm_systimer_start(struct eventtimer *et, sbintime_t first, sbintime_t period) -{ - struct systimer *st = et->et_priv; - uint32_t clo, clo1; - uint32_t count; - register_t s; - - if (first != 0) { - count = ((uint32_t)et->et_frequency * first) >> 32; - - s = intr_disable(); - clo = bcm_systimer_tc_read_4(SYSTIMER_CLO); -restart: - clo += count; - /* - * Clear pending interrupts - */ - bcm_systimer_tc_write_4(SYSTIMER_CS, (1 << st->index)); - bcm_systimer_tc_write_4(SYSTIMER_C0 + st->index*4, clo); - clo1 = bcm_systimer_tc_read_4(SYSTIMER_CLO); - if ((int32_t)(clo1 - clo) >= 0) { - count *= 2; - clo = clo1; - goto restart; - } - st->enabled = 1; - intr_restore(s); - - return (0); - } - - return (EINVAL); -} - -static int -bcm_systimer_stop(struct eventtimer *et) -{ - struct systimer *st = et->et_priv; - st->enabled = 0; - - return (0); -} - -static int -bcm_systimer_intr(void *arg) -{ - struct systimer *st = (struct systimer *)arg; - uint32_t cs; - - cs = bcm_systimer_tc_read_4(SYSTIMER_CS); - if ((cs & (1 << st->index)) == 0) - return (FILTER_STRAY); - - /* ACK interrupt */ - bcm_systimer_tc_write_4(SYSTIMER_CS, (1 << st->index)); - if (st->enabled) { - if (st->et.et_active) { - st->et.et_event_cb(&st->et, st->et.et_arg); - } - } - - return (FILTER_HANDLED); -} - -static int -bcm_systimer_probe(device_t dev) -{ - - if (!ofw_bus_status_okay(dev)) - return (ENXIO); - - if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) - return (ENXIO); - - return (BUS_PROBE_DEFAULT); -} - -static int -bcm_systimer_attach(device_t dev) -{ - struct bcm_systimer_softc *sc = device_get_softc(dev); - int err; - int rid = 0; - - if (bcm_systimer_sc != NULL) - return (EINVAL); - - sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (sc->mem_res == NULL) { - device_printf(dev, "could not allocate memory resource\n"); - return (ENXIO); - } - - sc->bst = rman_get_bustag(sc->mem_res); - sc->bsh = rman_get_bushandle(sc->mem_res); - - /* Request the IRQ resources */ - err = bus_alloc_resources(dev, bcm_systimer_irq_spec, - sc->irq_res); - if (err) { - device_printf(dev, "Error: could not allocate irq resources\n"); - return (ENXIO); - } - - /* TODO: get frequency from FDT */ - sc->sysclk_freq = DEFAULT_FREQUENCY; - - /* Setup and enable the timer */ - if (bus_setup_intr(dev, sc->irq_res[DEFAULT_TIMER], INTR_TYPE_CLK, - bcm_systimer_intr, NULL, &sc->st[DEFAULT_TIMER], - &sc->intr_hl[DEFAULT_TIMER]) != 0) { - bus_release_resources(dev, bcm_systimer_irq_spec, - sc->irq_res); - device_printf(dev, "Unable to setup the clock irq handler.\n"); - return (ENXIO); - } - - sc->st[DEFAULT_TIMER].index = DEFAULT_TIMER; - sc->st[DEFAULT_TIMER].enabled = 0; - sc->st[DEFAULT_TIMER].et.et_name = DEFAULT_TIMER_NAME; - sc->st[DEFAULT_TIMER].et.et_flags = ET_FLAGS_ONESHOT; - sc->st[DEFAULT_TIMER].et.et_quality = 1000; - sc->st[DEFAULT_TIMER].et.et_frequency = sc->sysclk_freq; - sc->st[DEFAULT_TIMER].et.et_min_period = - (MIN_PERIOD << 32) / sc->st[DEFAULT_TIMER].et.et_frequency + 1; - sc->st[DEFAULT_TIMER].et.et_max_period = - (0x7ffffffeLLU << 32) / sc->st[DEFAULT_TIMER].et.et_frequency; - sc->st[DEFAULT_TIMER].et.et_start = bcm_systimer_start; - sc->st[DEFAULT_TIMER].et.et_stop = bcm_systimer_stop; - sc->st[DEFAULT_TIMER].et.et_priv = &sc->st[DEFAULT_TIMER]; - et_register(&sc->st[DEFAULT_TIMER].et); - - bcm_systimer_sc = sc; - - if (device_get_unit(dev) == 0) - arm_set_delay(bcm_systimer_delay, sc); - - bcm_systimer_tc.tc_frequency = DEFAULT_FREQUENCY; - tc_init(&bcm_systimer_tc); - - return (0); -} - -static device_method_t bcm_systimer_methods[] = { - DEVMETHOD(device_probe, bcm_systimer_probe), - DEVMETHOD(device_attach, bcm_systimer_attach), - { 0, 0 } -}; - -static driver_t bcm_systimer_driver = { - "systimer", - bcm_systimer_methods, - sizeof(struct bcm_systimer_softc), -}; - -DRIVER_MODULE(bcm_systimer, simplebus, bcm_systimer_driver, 0, 0); - -static void -bcm_systimer_delay(int usec, void *arg) -{ - int32_t counts; - uint32_t first, last; - - /* Get the number of times to count */ - counts = usec * (bcm_systimer_tc.tc_frequency / 1000000) + 1; - - first = bcm_systimer_tc_read_4(SYSTIMER_CLO); - - while (counts > 0) { - last = bcm_systimer_tc_read_4(SYSTIMER_CLO); - if (last == first) - continue; - if (last>first) { - counts -= (int32_t)(last - first); - } else { - counts -= (int32_t)((0xFFFFFFFF - first) + last); - } - first = last; - } -} diff --git a/sys/arm/broadcom/bcm2835/files.bcm2835 b/sys/arm/broadcom/bcm2835/files.bcm2835 deleted file mode 100644 index fda25115b8d5..000000000000 --- a/sys/arm/broadcom/bcm2835/files.bcm2835 +++ /dev/null @@ -1,2 +0,0 @@ - -arm/broadcom/bcm2835/bcm2835_systimer.c standard diff --git a/sys/arm/broadcom/bcm2835/std.bcm2835 b/sys/arm/broadcom/bcm2835/std.bcm2835 deleted file mode 100644 index 4bb1000d0da1..000000000000 --- a/sys/arm/broadcom/bcm2835/std.bcm2835 +++ /dev/null @@ -1,9 +0,0 @@ - -machine arm armv6 -cpu CPU_ARM1176 -makeoptions CONF_CFLAGS="-mcpu=arm1176jzf-s" -options SOC_BCM2835 - -files "../broadcom/bcm2835/files.bcm2835" -files "../broadcom/bcm2835/files.bcm283x" - From nobody Wed Sep 11 10:42:08 2024 X-Original-To: dev-commits-src-main@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 4X3cZn03PZz5WNHQ; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZm6jC8z4Qj3; Wed, 11 Sep 2024 10:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051328; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MTpUaob2MptKnfaAroEaOd+0ccRw2hWQCpH8cC3Vzlk=; b=LlNv7I9gbCFmMd6/DXwHVvgSJdvCbu283OQdGzpAJ0ZnVBCQ3EANviZ8ISRDwCrCNjoi34 N803i8fwRuPeHQbNgRVW8fQ+uNKaVfUcHH70N1Y/9VXhaFkAeXzNqWBwTmiqQ/MQrTIp1W ijFfUox6w0O0Kbeh97EELB/auP4mGC6UvwEj7InGfglukrfXbOM4ODtF6YT6846hR9JQE7 36VvrHs9onNdtqK65jsF3eTqogtHegAVaHlPiCLsBWnM81sxgfFWIA0jgb0TQAgsCjiJFd XdEzHtdtUEU65wCvUXG9hM69MSpNOun3+gxs/usdtXIPtc8sv9ZvSTzYM6hJXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051328; a=rsa-sha256; cv=none; b=niyxr9tR0p+OJpJYENYmudj6RkDsiqJ/5GxkFXGWNSGpsDsPFKQQWTsxrM+z2RDHp2tFVg dhYe2OHdrj3BY+FWLMNM9QI6TCN63nm4tytgAmd9FDGp9giWayyE5zVzAPb9TUDXfyOCRF /SFhVmGTymkcAc8/IkTjVh+dGDk3HivuXuo2KSlqNxuyOaGtmstgFquWlmZ8MoN0xn/5ag p7SNmAwtrHVqXTU93F8FK5wFE9Iot4MRvtf0dnFccyCTGRM3eOovRiw4aNiE6pOAuVyXFo LiQD+8koqJ03LvqQG0L0bbdLfawAYXuAyw+IbK+6zEQJrV1R+9EaiLHcGGLaGg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051328; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MTpUaob2MptKnfaAroEaOd+0ccRw2hWQCpH8cC3Vzlk=; b=aI06v4BXQuIayJOprwK48kyaGtjg4VabXEQGznKsWzJdYw9OUBB/v9V/KxnPiOnmm4xSyd yKa0kZXlp3rmgS8VvUFrx4EDyi+2NqgAW3fbP0pQPJdT/4xgfVrrX030J+vHQD1hvhaciv WrUwUPohzKuwx2MikUfrsR2q2ozVJgTKJCLWLNmFu3QMcu7k7f0Gf1D4/ZS4qDq3siGcMx cwA62rQrFIxXY21VAB3EI4quPxUZzZaSOasb/yIVgF3R0tprPyE1CUjF/YZORWlLumumBs PWIjaVhhciGpjb9H6Eb4os9ghGlB0igZNDdzcyRsLaBLpomv0ByTnTHAWZUt8w== 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 4X3cZm6KS4zSP2; Wed, 11 Sep 2024 10:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAg8V4007871; Wed, 11 Sep 2024 10:42:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAg87W007868; Wed, 11 Sep 2024 10:42:08 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:08 GMT Message-Id: <202409111042.48BAg87W007868@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: d29771a722ac - main - arm: Assume __ARM_ARCH == 7 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: d29771a722acf17b3d2693e237c0da7ce866997f Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d29771a722acf17b3d2693e237c0da7ce866997f commit d29771a722acf17b3d2693e237c0da7ce866997f Author: Andrew Turner AuthorDate: 2024-07-12 11:44:50 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:40:13 +0000 arm: Assume __ARM_ARCH == 7 The only supported 32-bit Arm architecture is Armv7. Remove old checks for earlier architecture revisions. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45957 --- sys/arm/arm/cpu_asm-v6.S | 18 --------------- sys/arm/arm/exception.S | 4 ---- sys/arm/arm/exec_machdep.c | 2 -- sys/arm/arm/hypervisor-stub.S | 2 -- sys/arm/arm/locore.S | 6 ----- sys/arm/arm/mp_machdep.c | 2 -- sys/arm/arm/pmu.c | 8 +++---- sys/arm/arm/trap-v6.c | 4 ---- sys/arm/arm/undefined.c | 13 ----------- sys/arm/arm/vm_machdep.c | 2 -- sys/arm/include/asm.h | 8 ------- sys/arm/include/atomic.h | 6 ----- sys/arm/include/cpu.h | 54 ++++++++----------------------------------- sys/arm/include/param.h | 4 ---- sys/arm/include/sysreg.h | 38 ++---------------------------- sys/kern/imgact_elf.c | 2 +- 16 files changed, 17 insertions(+), 156 deletions(-) diff --git a/sys/arm/arm/cpu_asm-v6.S b/sys/arm/arm/cpu_asm-v6.S index 6942c5ce4420..5e8b5e80a436 100644 --- a/sys/arm/arm/cpu_asm-v6.S +++ b/sys/arm/arm/cpu_asm-v6.S @@ -47,11 +47,6 @@ /* Invalidate D cache to PoC. (aka all cache levels)*/ ASENTRY_NP(dcache_inv_poc_all) -#if __ARM_ARCH == 6 - mcr CP15_DCIALL - DSB - bx lr -#else mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 mov r0, r0, lsr #23 /* Get LoC 'naturally' aligned for */ @@ -97,16 +92,10 @@ ASENTRY_NP(dcache_inv_poc_all) mcr CP15_CSSELR(r0) isb bx lr -#endif /* __ARM_ARCH == 6 */ END(dcache_inv_poc_all) /* Invalidate D cache to PoU. (aka L1 cache only)*/ ASENTRY_NP(dcache_inv_pou_all) -#if __ARM_ARCH == 6 - mcr CP15_DCIALL - DSB - bx lr -#else mrc CP15_CLIDR(r0) ands r0, r0, #0x38000000 mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */ @@ -151,16 +140,10 @@ ASENTRY_NP(dcache_inv_pou_all) mov r0, #0 mcr CP15_CSSELR(r0) bx lr -#endif END(dcache_inv_pou_all) /* Write back and Invalidate D cache to PoC. */ ASENTRY_NP(dcache_wbinv_poc_all) -#if __ARM_ARCH == 6 - mcr CP15_DCCIALL - DSB - bx lr -#else mrc CP15_CLIDR(r0) ands r0, r0, #0x07000000 beq 4f @@ -208,7 +191,6 @@ ASENTRY_NP(dcache_wbinv_poc_all) mov r0, #0 mcr CP15_CSSELR(r0) bx lr -#endif /* __ARM_ARCH == 6 */ END(dcache_wbinv_poc_all) ASENTRY_NP(dcache_wb_pou_checked) diff --git a/sys/arm/arm/exception.S b/sys/arm/arm/exception.S index d0be3bd9c90a..7230830f78cb 100644 --- a/sys/arm/arm/exception.S +++ b/sys/arm/arm/exception.S @@ -270,13 +270,9 @@ ASENTRY_NP(undefined_entry) mov r0, sp /* exception exit routine. pass frame */ ldr r2, [sp, #(TF_PC)] /* load pc */ -#if __ARM_ARCH >= 7 tst r4, #(PSR_T) /* test if PSR_T */ subne r2, r2, #(THUMB_INSN_SIZE) subeq r2, r2, #(INSN_SIZE) -#else - sub r2, r2, #(INSN_SIZE) /* fix pc */ -#endif str r2, [sp, #TF_PC] /* store pc */ #ifdef KDTRACE_HOOKS diff --git a/sys/arm/arm/exec_machdep.c b/sys/arm/arm/exec_machdep.c index 0e66dbddb9ef..0b9468c756a9 100644 --- a/sys/arm/arm/exec_machdep.c +++ b/sys/arm/arm/exec_machdep.c @@ -353,12 +353,10 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) tf->tf_usr_lr = (register_t)(PROC_PS_STRINGS(p) - *(sysent->sv_szsigcode)); /* Set the mode to enter in the signal handler */ -#if __ARM_ARCH >= 7 if ((register_t)catcher & 1) tf->tf_spsr |= PSR_T; else tf->tf_spsr &= ~PSR_T; -#endif CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_usr_lr, tf->tf_usr_sp); diff --git a/sys/arm/arm/hypervisor-stub.S b/sys/arm/arm/hypervisor-stub.S index edf538b2b4e5..68ad1f1c1b1b 100644 --- a/sys/arm/arm/hypervisor-stub.S +++ b/sys/arm/arm/hypervisor-stub.S @@ -30,7 +30,6 @@ #include #include #include -#if __ARM_ARCH >= 7 #if defined(__ARM_ARCH_7VE__) || defined(__clang__) .arch_extension virt #endif @@ -81,5 +80,4 @@ _C_LABEL(hypervisor_stub_vect): b hypervisor_stub_trap /* HYP-Mode */ .word 0 /* FIQ */ .word 0 /* IRQ */ -#endif /* __ARM_ARCH >= 7 */ diff --git a/sys/arm/arm/locore.S b/sys/arm/arm/locore.S index ce2bf678b648..6acaaa8a7eb4 100644 --- a/sys/arm/arm/locore.S +++ b/sys/arm/arm/locore.S @@ -40,7 +40,6 @@ #define LOCORE_MAP_MB 64 #endif -#if __ARM_ARCH >= 7 #if defined(__ARM_ARCH_7VE__) || defined(__clang__) /* * HYP support is in bintuils >= 2.21 and gcc >= 4.9 defines __ARM_ARCH_7VE__ @@ -48,7 +47,6 @@ */ .arch_extension virt #endif -#endif /* __ARM_ARCH >= 7 */ /* A small statically-allocated stack used only during initarm() and AP startup. */ #define INIT_ARM_STACK_SIZE 2048 @@ -59,7 +57,6 @@ .globl kernbase .set kernbase,KERNVIRTADDR -#if __ARM_ARCH >= 7 #define HANDLE_HYP \ /* Leave HYP mode */ ;\ mrs r0, cpsr ;\ @@ -86,9 +83,6 @@ adr r1, hypmode_enabled ;\ str r0, [r1] ;\ 2: -#else -#define HANDLE_HYP -#endif /* __ARM_ARCH >= 7 */ /* * On entry for FreeBSD boot ABI: diff --git a/sys/arm/arm/mp_machdep.c b/sys/arm/arm/mp_machdep.c index 01b02d9520ca..ce9a83042d4a 100644 --- a/sys/arm/arm/mp_machdep.c +++ b/sys/arm/arm/mp_machdep.c @@ -169,9 +169,7 @@ init_secondary(int cpu) /* Spin until the BSP releases the APs */ while (!atomic_load_acq_int(&aps_ready)) { -#if __ARM_ARCH >= 7 __asm __volatile("wfe"); -#endif } /* Initialize curthread */ diff --git a/sys/arm/arm/pmu.c b/sys/arm/arm/pmu.c index 050121934447..1c9e17a85c57 100644 --- a/sys/arm/arm/pmu.c +++ b/sys/arm/arm/pmu.c @@ -55,7 +55,7 @@ #include "pmu.h" /* CCNT */ -#if defined(__arm__) && (__ARM_ARCH > 6) +#if defined(__arm__) int pmu_attched = 0; uint32_t ccnt_hi[MAXCPU]; #endif @@ -67,7 +67,7 @@ static int pmu_intr(void *arg) { uint32_t r; -#if defined(__arm__) && (__ARM_ARCH > 6) +#if defined(__arm__) u_int cpu; cpu = PCPU_GET(cpuid); @@ -96,7 +96,7 @@ int pmu_attach(device_t dev) { struct pmu_softc *sc; -#if defined(__arm__) && (__ARM_ARCH > 6) +#if defined(__arm__) uint32_t iesr; #endif int err, i; @@ -126,7 +126,7 @@ pmu_attach(device_t dev) } } -#if defined(__arm__) && (__ARM_ARCH > 6) +#if defined(__arm__) /* Initialize to 0. */ for (i = 0; i < MAXCPU; i++) ccnt_hi[i] = 0; diff --git a/sys/arm/arm/trap-v6.c b/sys/arm/arm/trap-v6.c index d58f8c2e4a48..be7a10bb1f0a 100644 --- a/sys/arm/arm/trap-v6.c +++ b/sys/arm/arm/trap-v6.c @@ -291,11 +291,7 @@ abort_handler(struct trapframe *tf, int prefetch) td = curthread; fsr = (prefetch) ? cp15_ifsr_get(): cp15_dfsr_get(); -#if __ARM_ARCH >= 7 far = (prefetch) ? cp15_ifar_get() : cp15_dfar_get(); -#else - far = (prefetch) ? TRAPF_PC(tf) : cp15_dfar_get(); -#endif idx = FSR_TO_FAULT(fsr); usermode = TRAPF_USERMODE(tf); /* Abort came from user mode? */ diff --git a/sys/arm/arm/undefined.c b/sys/arm/arm/undefined.c index e882a911ba4a..03cc4779b0cc 100644 --- a/sys/arm/arm/undefined.c +++ b/sys/arm/arm/undefined.c @@ -279,7 +279,6 @@ undefinedinstruction(struct trapframe *frame) coprocessor = COPROC_VFP; /* vfp / simd */ } } else { -#if __ARM_ARCH >= 7 fault_instruction = *(uint16_t *)fault_pc; if (THUMB_32BIT_INSN(fault_instruction)) { fault_instruction <<= 16; @@ -294,18 +293,6 @@ undefinedinstruction(struct trapframe *frame) coprocessor = COPROC_VFP; /* SIMD */ } } -#else - /* - * No support for Thumb-2 on this cpu - */ - ksiginfo_init_trap(&ksi); - ksi.ksi_signo = SIGILL; - ksi.ksi_code = ILL_ILLADR; - ksi.ksi_addr = (u_int32_t *)(intptr_t) fault_pc; - trapsignal(td, &ksi); - userret(td, frame); - return; -#endif } if ((frame->tf_spsr & PSR_MODE) == PSR_USR32_MODE) { diff --git a/sys/arm/arm/vm_machdep.c b/sys/arm/arm/vm_machdep.c index 377373388478..4e0a6bb9cbc5 100644 --- a/sys/arm/arm/vm_machdep.c +++ b/sys/arm/arm/vm_machdep.c @@ -162,11 +162,9 @@ cpu_set_syscall_retval(struct thread *td, int error) /* * Reconstruct the pc to point at the swi. */ -#if __ARM_ARCH >= 7 if ((frame->tf_spsr & PSR_T) != 0) frame->tf_pc -= THUMB_INSN_SIZE; else -#endif frame->tf_pc -= INSN_SIZE; break; case EJUSTRETURN: diff --git a/sys/arm/include/asm.h b/sys/arm/include/asm.h index 72540a3fb581..d72aa67a39c2 100644 --- a/sys/arm/include/asm.h +++ b/sys/arm/include/asm.h @@ -174,7 +174,6 @@ # define RETne bxne lr # define RETc(c) bx##c lr -#if __ARM_ARCH >= 7 #define ISB isb #define DSB dsb #define DMB dmb @@ -188,12 +187,5 @@ #define ERET .word 0xe160006e #endif -#elif __ARM_ARCH == 6 -#include -#define ISB mcr CP15_CP15ISB -#define DSB mcr CP15_CP15DSB -#define DMB mcr CP15_CP15DMB -#define WFI mcr CP15_CP15WFI -#endif #endif /* !_MACHINE_ASM_H_ */ diff --git a/sys/arm/include/atomic.h b/sys/arm/include/atomic.h index 88b5bd7acbc5..cd6f5cf90d8a 100644 --- a/sys/arm/include/atomic.h +++ b/sys/arm/include/atomic.h @@ -41,15 +41,9 @@ #include -#if __ARM_ARCH >= 7 #define isb() __asm __volatile("isb" : : : "memory") #define dsb() __asm __volatile("dsb" : : : "memory") #define dmb() __asm __volatile("dmb" : : : "memory") -#else -#define isb() __asm __volatile("mcr p15, 0, %0, c7, c5, 4" : : "r" (0) : "memory") -#define dsb() __asm __volatile("mcr p15, 0, %0, c7, c10, 4" : : "r" (0) : "memory") -#define dmb() __asm __volatile("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory") -#endif #define mb() dmb() #define wmb() dmb() diff --git a/sys/arm/include/cpu.h b/sys/arm/include/cpu.h index 75b0956d0620..da8127b093f0 100644 --- a/sys/arm/include/cpu.h +++ b/sys/arm/include/cpu.h @@ -45,13 +45,7 @@ void cpu_halt(void); * unconditionally with -DSMP. Although it looks like a bug, * handle this case here and in #elif condition in ARM_SMP_UP macro. */ -#if __ARM_ARCH <= 6 && defined(SMP) && !defined(KLD_MODULE) -#error SMP option is not supported on ARMv6 -#endif -#if __ARM_ARCH <= 6 && defined(SMP_ON_UP) -#error SMP_ON_UP option is only supported on ARMv7+ CPUs -#endif #if !defined(SMP) && defined(SMP_ON_UP) #error SMP option must be defined for SMP_ON_UP option @@ -68,7 +62,7 @@ do { \ up_code; \ } \ } while (0) -#elif defined(SMP) && __ARM_ARCH > 6 +#elif defined(SMP) #define ARM_SMP_UP(smp_code, up_code) \ do { \ smp_code; \ @@ -146,15 +140,15 @@ fname(uint64_t reg) \ /* TLB */ _WF0(_CP15_TLBIALL, CP15_TLBIALL) /* Invalidate entire unified TLB */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) _WF0(_CP15_TLBIALLIS, CP15_TLBIALLIS) /* Invalidate entire unified TLB IS */ #endif _WF1(_CP15_TLBIASID, CP15_TLBIASID(%0)) /* Invalidate unified TLB by ASID */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) _WF1(_CP15_TLBIASIDIS, CP15_TLBIASIDIS(%0)) /* Invalidate unified TLB by ASID IS */ #endif _WF1(_CP15_TLBIMVAA, CP15_TLBIMVAA(%0)) /* Invalidate unified TLB by MVA, all ASID */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) _WF1(_CP15_TLBIMVAAIS, CP15_TLBIMVAAIS(%0)) /* Invalidate unified TLB by MVA, all ASID IS */ #endif _WF1(_CP15_TLBIMVA, CP15_TLBIMVA(%0)) /* Invalidate unified TLB by MVA */ @@ -164,21 +158,19 @@ _WF1(_CP15_TTB_SET, CP15_TTBR0(%0)) /* Cache and Branch predictor */ _WF0(_CP15_BPIALL, CP15_BPIALL) /* Branch predictor invalidate all */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) _WF0(_CP15_BPIALLIS, CP15_BPIALLIS) /* Branch predictor invalidate all IS */ #endif _WF1(_CP15_BPIMVA, CP15_BPIMVA(%0)) /* Branch predictor invalidate by MVA */ _WF1(_CP15_DCCIMVAC, CP15_DCCIMVAC(%0)) /* Data cache clean and invalidate by MVA PoC */ _WF1(_CP15_DCCISW, CP15_DCCISW(%0)) /* Data cache clean and invalidate by set/way */ _WF1(_CP15_DCCMVAC, CP15_DCCMVAC(%0)) /* Data cache clean by MVA PoC */ -#if __ARM_ARCH >= 7 _WF1(_CP15_DCCMVAU, CP15_DCCMVAU(%0)) /* Data cache clean by MVA PoU */ -#endif _WF1(_CP15_DCCSW, CP15_DCCSW(%0)) /* Data cache clean by set/way */ _WF1(_CP15_DCIMVAC, CP15_DCIMVAC(%0)) /* Data cache invalidate by MVA PoC */ _WF1(_CP15_DCISW, CP15_DCISW(%0)) /* Data cache invalidate by set/way */ _WF0(_CP15_ICIALLU, CP15_ICIALLU) /* Instruction cache invalidate all PoU */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) _WF0(_CP15_ICIALLUIS, CP15_ICIALLUIS) /* Instruction cache invalidate all PoU IS */ #endif _WF1(_CP15_ICIMVAU, CP15_ICIMVAU(%0)) /* Instruction cache invalidate */ @@ -209,10 +201,8 @@ _WF1(cp15_prrr_set, CP15_PRRR(%0)) _WF1(cp15_nmrr_set, CP15_NMRR(%0)) _RF0(cp15_ttbr_get, CP15_TTBR0(%0)) _RF0(cp15_dfar_get, CP15_DFAR(%0)) -#if __ARM_ARCH >= 7 _RF0(cp15_ifar_get, CP15_IFAR(%0)) _RF0(cp15_l2ctlr_get, CP15_L2CTLR(%0)) -#endif _RF0(cp15_actlr_get, CP15_ACTLR(%0)) _WF1(cp15_actlr_set, CP15_ACTLR(%0)) _WF1(cp15_ats1cpr_set, CP15_ATS1CPR(%0)) @@ -251,14 +241,6 @@ _RF0(cp15_cbar_get, CP15_CBAR(%0)) /* Performance Monitor registers */ -#if __ARM_ARCH == 6 && defined(CPU_ARM1176) -_RF0(cp15_pmuserenr_get, CP15_PMUSERENR(%0)) -_WF1(cp15_pmuserenr_set, CP15_PMUSERENR(%0)) -_RF0(cp15_pmcr_get, CP15_PMCR(%0)) -_WF1(cp15_pmcr_set, CP15_PMCR(%0)) -_RF0(cp15_pmccntr_get, CP15_PMCCNTR(%0)) -_WF1(cp15_pmccntr_set, CP15_PMCCNTR(%0)) -#elif __ARM_ARCH > 6 _RF0(cp15_pmcr_get, CP15_PMCR(%0)) _WF1(cp15_pmcr_set, CP15_PMCR(%0)) _RF0(cp15_pmcnten_get, CP15_PMCNTENSET(%0)) @@ -280,7 +262,6 @@ _WF1(cp15_pmuserenr_set, CP15_PMUSERENR(%0)) _RF0(cp15_pminten_get, CP15_PMINTENSET(%0)) _WF1(cp15_pminten_set, CP15_PMINTENSET(%0)) _WF1(cp15_pminten_clr, CP15_PMINTENCLR(%0)) -#endif _RF0(cp15_tpidrurw_get, CP15_TPIDRURW(%0)) _WF1(cp15_tpidrurw_set, CP15_TPIDRURW(%0)) @@ -380,7 +361,7 @@ tlb_flush_range_local(vm_offset_t va, vm_size_t size) } /* Broadcasting operations. */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) static __inline void tlb_flush_all(void) @@ -442,14 +423,14 @@ tlb_flush_range(vm_offset_t va, vm_size_t size) ); dsb(); } -#else /* __ARM_ARCH < 7 */ +#else /* !SMP */ #define tlb_flush_all() tlb_flush_all_local() #define tlb_flush_all_ng() tlb_flush_all_ng_local() #define tlb_flush(va) tlb_flush_local(va) #define tlb_flush_range(va, size) tlb_flush_range_local(va, size) -#endif /* __ARM_ARCH < 7 */ +#endif /* !SMP */ /* * Cache maintenance operations. @@ -465,11 +446,7 @@ icache_sync(vm_offset_t va, vm_size_t size) va &= ~cpuinfo.dcache_line_mask; for ( ; va < eva; va += cpuinfo.dcache_line_size) { -#if __ARM_ARCH >= 7 _CP15_DCCMVAU(va); -#else - _CP15_DCCMVAC(va); -#endif } dsb(); ARM_SMP_UP( @@ -515,11 +492,7 @@ dcache_wb_pou(vm_offset_t va, vm_size_t size) dsb(); va &= ~cpuinfo.dcache_line_mask; for ( ; va < eva; va += cpuinfo.dcache_line_size) { -#if __ARM_ARCH >= 7 _CP15_DCCMVAU(va); -#else - _CP15_DCCMVAC(va); -#endif } dsb(); } @@ -686,8 +659,7 @@ cp15_ats1cuw_check(vm_offset_t addr) static __inline uint64_t get_cyclecount(void) { -#if __ARM_ARCH > 6 || (__ARM_ARCH == 6 && defined(CPU_ARM1176)) -#if (__ARM_ARCH > 6) && defined(DEV_PMU) +#if defined(DEV_PMU) if (pmu_attched) { u_int cpu; uint64_t h, h2; @@ -711,12 +683,6 @@ get_cyclecount(void) } else #endif return cp15_pmccntr_get(); -#else /* No performance counters, so use nanotime(9). */ - struct timespec tv; - - nanotime(&tv); - return (tv.tv_sec * (uint64_t)1000000000ull + tv.tv_nsec); -#endif } #endif diff --git a/sys/arm/include/param.h b/sys/arm/include/param.h index 57479e441ce6..3e1503e17709 100644 --- a/sys/arm/include/param.h +++ b/sys/arm/include/param.h @@ -55,11 +55,7 @@ #define MACHINE "arm" #endif #ifndef MACHINE_ARCH -#if __ARM_ARCH >= 7 #define MACHINE_ARCH "armv7" -#else -#define MACHINE_ARCH "armv6" -#endif #endif #ifdef SMP diff --git a/sys/arm/include/sysreg.h b/sys/arm/include/sysreg.h index 5e99adeb4f90..5495d25cb8bb 100644 --- a/sys/arm/include/sysreg.h +++ b/sys/arm/include/sysreg.h @@ -127,11 +127,9 @@ /* From ARMv6: */ #define CP15_IFSR(rr) p15, 0, rr, c5, c0, 1 /* Instruction Fault Status Register */ -#if __ARM_ARCH >= 7 /* From ARMv7: */ #define CP15_ADFSR(rr) p15, 0, rr, c5, c1, 0 /* Auxiliary Data Fault Status Register */ #define CP15_AIFSR(rr) p15, 0, rr, c5, c1, 1 /* Auxiliary Instruction Fault Status Register */ -#endif /* * CP15 C6 registers @@ -147,7 +145,7 @@ /* * CP15 C7 registers */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) /* From ARMv7: */ #define CP15_ICIALLUIS p15, 0, r0, c7, c1, 0 /* Instruction cache invalidate all PoU, IS */ #define CP15_BPIALLIS p15, 0, r0, c7, c1, 6 /* Branch predictor invalidate all IS */ @@ -157,17 +155,9 @@ #define CP15_ICIALLU p15, 0, r0, c7, c5, 0 /* Instruction cache invalidate all PoU */ #define CP15_ICIMVAU(rr) p15, 0, rr, c7, c5, 1 /* Instruction cache invalidate */ -#if __ARM_ARCH == 6 -/* Deprecated in ARMv7 */ -#define CP15_CP15ISB p15, 0, r0, c7, c5, 4 /* ISB */ -#endif #define CP15_BPIALL p15, 0, r0, c7, c5, 6 /* Branch predictor invalidate all */ #define CP15_BPIMVA p15, 0, rr, c7, c5, 7 /* Branch predictor invalidate by MVA */ -#if __ARM_ARCH == 6 -/* Only ARMv6: */ -#define CP15_DCIALL p15, 0, r0, c7, c6, 0 /* Data cache invalidate all */ -#endif #define CP15_DCIMVAC(rr) p15, 0, rr, c7, c6, 1 /* Data cache invalidate by MVA PoC */ #define CP15_DCISW(rr) p15, 0, rr, c7, c6, 2 /* Data cache invalidate by set/way */ @@ -176,43 +166,25 @@ #define CP15_ATS1CUR(rr) p15, 0, rr, c7, c8, 2 /* Stage 1 Current state unprivileged read */ #define CP15_ATS1CUW(rr) p15, 0, rr, c7, c8, 3 /* Stage 1 Current state unprivileged write */ -#if __ARM_ARCH >= 7 /* From ARMv7: */ #define CP15_ATS12NSOPR(rr) p15, 0, rr, c7, c8, 4 /* Stages 1 and 2 Non-secure only PL1 read */ #define CP15_ATS12NSOPW(rr) p15, 0, rr, c7, c8, 5 /* Stages 1 and 2 Non-secure only PL1 write */ #define CP15_ATS12NSOUR(rr) p15, 0, rr, c7, c8, 6 /* Stages 1 and 2 Non-secure only unprivileged read */ #define CP15_ATS12NSOUW(rr) p15, 0, rr, c7, c8, 7 /* Stages 1 and 2 Non-secure only unprivileged write */ -#endif -#if __ARM_ARCH == 6 -/* Only ARMv6: */ -#define CP15_DCCALL p15, 0, r0, c7, c10, 0 /* Data cache clean all */ -#endif #define CP15_DCCMVAC(rr) p15, 0, rr, c7, c10, 1 /* Data cache clean by MVA PoC */ #define CP15_DCCSW(rr) p15, 0, rr, c7, c10, 2 /* Data cache clean by set/way */ -#if __ARM_ARCH == 6 -/* Only ARMv6: */ -#define CP15_CP15DSB p15, 0, r0, c7, c10, 4 /* DSB */ -#define CP15_CP15DMB p15, 0, r0, c7, c10, 5 /* DMB */ -#define CP15_CP15WFI p15, 0, r0, c7, c0, 4 /* WFI */ -#endif -#if __ARM_ARCH >= 7 /* From ARMv7: */ #define CP15_DCCMVAU(rr) p15, 0, rr, c7, c11, 1 /* Data cache clean by MVA PoU */ -#endif -#if __ARM_ARCH == 6 -/* Only ARMv6: */ -#define CP15_DCCIALL p15, 0, r0, c7, c14, 0 /* Data cache clean and invalidate all */ -#endif #define CP15_DCCIMVAC(rr) p15, 0, rr, c7, c14, 1 /* Data cache clean and invalidate by MVA PoC */ #define CP15_DCCISW(rr) p15, 0, rr, c7, c14, 2 /* Data cache clean and invalidate by set/way */ /* * CP15 C8 registers */ -#if __ARM_ARCH >= 7 && defined(SMP) +#if defined(SMP) /* From ARMv7: */ #define CP15_TLBIALLIS p15, 0, r0, c8, c3, 0 /* Invalidate entire unified TLB IS */ #define CP15_TLBIMVAIS(rr) p15, 0, rr, c8, c3, 1 /* Invalidate unified TLB by MVA IS */ @@ -232,11 +204,6 @@ /* * CP15 C9 registers */ -#if __ARM_ARCH == 6 && defined(CPU_ARM1176) -#define CP15_PMUSERENR(rr) p15, 0, rr, c15, c9, 0 /* Access Validation Control Register */ -#define CP15_PMCR(rr) p15, 0, rr, c15, c12, 0 /* Performance Monitor Control Register */ -#define CP15_PMCCNTR(rr) p15, 0, rr, c15, c12, 1 /* PM Cycle Count Register */ -#else #define CP15_L2CTLR(rr) p15, 1, rr, c9, c0, 2 /* L2 Control Register */ #define CP15_PMCR(rr) p15, 0, rr, c9, c12, 0 /* Performance Monitor Control Register */ #define CP15_PMCNTENSET(rr) p15, 0, rr, c9, c12, 1 /* PM Count Enable Set Register */ @@ -250,7 +217,6 @@ #define CP15_PMUSERENR(rr) p15, 0, rr, c9, c14, 0 /* PM User Enable Register */ #define CP15_PMINTENSET(rr) p15, 0, rr, c9, c14, 1 /* PM Interrupt Enable Set Register */ #define CP15_PMINTENCLR(rr) p15, 0, rr, c9, c14, 2 /* PM Interrupt Enable Clear Register */ -#endif /* * CP15 C10 registers diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c index 494456ceeeae..916011f573cf 100644 --- a/sys/kern/imgact_elf.c +++ b/sys/kern/imgact_elf.c @@ -119,7 +119,7 @@ SYSCTL_INT(_debug, OID_AUTO, __elfN(legacy_coredump), CTLFLAG_RW, int __elfN(nxstack) = #if defined(__amd64__) || defined(__powerpc64__) /* both 64 and 32 bit */ || \ - (defined(__arm__) && __ARM_ARCH >= 7) || defined(__aarch64__) || \ + defined(__arm__) || defined(__aarch64__) || \ defined(__riscv) 1; #else From nobody Wed Sep 11 10:42:11 2024 X-Original-To: dev-commits-src-main@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 4X3cZq2HR4z5WN8j; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZq1T74z4Qcb; Wed, 11 Sep 2024 10:42:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051331; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=deSD6qYc+1yqP0k5wDAkgV2KNN3ECvCqJ5e5IsLOJ+w=; b=xc5G4MbdzGjlsw+vuJAJOpsP/wlEkaOkwbYRryLDLkbClcTxwQo4HkcMAPmQlx23H7Pg7A MDWxoZ28NBZSFgRExkLcj3Em62xSCdL/AlyhCS7xrt68+yetrerkMXv4LjVZ1083qDWJ/n SlotGwo11t2cQTYxCV8Mv/jO9jSYXmA49bgwtxDB7A5UwDDhBrDIZrPAP6OBJj2rpcwc9d T2XWR6RqrYx81A+o5Q3AboDh3SSCigu9L7hHfGGdrCU/WkDjDBRM3t5bP1/K/5xjEQFX/Z ypiZTA2VQXcjOoyMwGaZVQjGyJyhdmhXmZrrtYlVITI0Jc1a6IVYpgRWvvHBOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051331; a=rsa-sha256; cv=none; b=taiU2PFNvxf+SMU8DExMmc2ucueghpTrmcl7IN8wQRRiRdPncUmRW8He6tWLuS6XP/nMsC GeytGblTMbRlaD5HYo02G1wWfhJCBbSug4kAXhpPPGcFLK1OoSPPFaTMTTHS+hZZus4xLJ OAyfk4xfXqOoVQ4vctCVqgvrc64Guc/7qOKDGevn9Ev5rrN8S8UsZ0p1F5GqnrlpXdi1bD PAc4BhOOHc0p1RV1dy8YtYlf1zDRRNzRfRuquQwIUaK1WSdxwOaFKDRICD75y1TEGrrG1p UGw9L+fbW3YclKsBHKItdQ0sP9M+ezvQIq/RYTWj4hVEIfseOdclGOyyaBz6bQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051331; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=deSD6qYc+1yqP0k5wDAkgV2KNN3ECvCqJ5e5IsLOJ+w=; b=S97P/9tIwiejNg4XfK/Bom9OD3tloMdQrHOa3lu8MNl+ATcTOtJG06t0/Ag2n7OxTLohL+ OqAZl/KikmDTTqOAA0fljCF3nG+Elykx7Olz5qVNt2q/IprErl3DULAFNEmsqbqcWUjYD2 hnwZox4khe3CTJWuK4XSzqYIsUjcds/iQgo2Sa0VNYzjoRdHPhiCes/FO9ZOpdhD/oTjz/ V45goU57uOzBBuqUZtE7znRHWEyaZcFPCh8P/QjG6YY4+lju3EsGcouvwKL/FoDYsUX01H 3XYs8SG+itvLXLCdSbCqQg+uOc05nCmKrKFJEjsuhwrecw0YOddWCwiL0sak9g== 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 4X3cZq15J1zScd; Wed, 11 Sep 2024 10:42:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAgB6F008858; Wed, 11 Sep 2024 10:42:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAgBvA008841; Wed, 11 Sep 2024 10:42:11 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:11 GMT Message-Id: <202409111042.48BAgBvA008841@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: 4ec5fbddeda4 - main - sys/conf: Remove LD_EMULATION_armv6 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 4ec5fbddeda4d5cc550fa26346d04bd26eea8fed Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=4ec5fbddeda4d5cc550fa26346d04bd26eea8fed commit 4ec5fbddeda4d5cc550fa26346d04bd26eea8fed Author: Andrew Turner AuthorDate: 2024-07-12 11:51:28 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:41:04 +0000 sys/conf: Remove LD_EMULATION_armv6 Armv6 support has been removed, we can remove LD_EMULATION for it. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45959 --- sys/conf/kern.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index 00492584921b..4c3014f2abb6 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -324,7 +324,6 @@ CCLDFLAGS+= -fuse-ld=${LD:[1]:S/^ld.//1W} LD_EMULATION_aarch64=aarch64elf LD_EMULATION_amd64=elf_x86_64_fbsd LD_EMULATION_arm=armelf_fbsd -LD_EMULATION_armv6=armelf_fbsd LD_EMULATION_armv7=armelf_fbsd LD_EMULATION_i386=elf_i386_fbsd LD_EMULATION_powerpc= elf32ppc_fbsd From nobody Wed Sep 11 10:42:09 2024 X-Original-To: dev-commits-src-main@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 4X3cZp1Mz4z5WNSg; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZp0cQYz4QRF; Wed, 11 Sep 2024 10:42:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051330; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yjNnEmn2JPs9OY7H324Bqe7xPS/SEIvG3evY50R0yPY=; b=UQCkbXwzqftLZtzDi/ZNq6ZQEB+4KKcbxEyFPF5+fDIMGOACv1JPmDG+lom7rJGMrdqpm7 jXqBXfMaOj5J1nq0pxOcZ/XJmB26j8hKTgvqZTM49nyS8Efi3IaecFJQeuPzMsJFE+zgem IXbyyyN0my8YP3Lds4KQ+OXN6IlJ8eF/xyklXEvCvLcVHaiX2n7UMU0946gJd4zJ0TD9YU xSneBnl9O4Wavzjzh4Ta5X+PYUadQ7QgUi1JSIinVAfFZ4KRCiDNMcn1oTaWyypbV0bBbP ZypPZxelIzdNfdq1XtErcWugYHQThYLTfZIkqHw1Czxyv7BTQTivaKncveNwTg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051330; a=rsa-sha256; cv=none; b=iYIeDn1IsNrvavOxU7GV/KBOfcwX1Flnq3KwlyatBfqxGnGeHtE+MPzGVPMbfAB+9xEYDE 86pqbfJvWXfEV6uj7cpf17Hr6QsLndC1qNInGTjv1Tv8MOfqaTC8N4VZHjl7qI2PeqX0rn yFbWqRw/+w4/1k/8jdvosmREHzfMCHIKnJiKnoq24MEuAxdMJmXEVSvTga9vBXfjRxwfQ4 PbqyS9KpiO5RoG5XQjw7J+lSOYvttipAUqBry5mG2SHTxTqpW5lNFpkPbZKbhJpjeWYOvQ VX0kyw1xuD/e2UM8dMWQjDluMLia8c95XtfFYvq9/795nUqnZ6/xwq2NJNWioQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051330; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yjNnEmn2JPs9OY7H324Bqe7xPS/SEIvG3evY50R0yPY=; b=MfTQO6vgM4pSWstCwx+TEVM8V2yCYaDpx7ECKP2ENQbeNicNWZqP7G2fs0QMPqA2ZlY4+6 IQgl9kiVhl6NMP+izv+qacCWZstf+mhpyfR7EQMAjoul2Wf4goIhMB5KKDj1ZL2wTNBWWH /DxmabjylacooTAPLMb95pn5KlPUDMRd4k6dw6BX4dD2HkbHxdyuMqSkpzt923yEsLA4Mh WThMG27GkREGzJbaknYpuoy9NCGse4+MW4pMAfEnJjXMSPJWurscRKSR5t3zNArQhkJnbn HCuTupu3bGmaL2aAP/51974g15LFZyFFpH8ctF6bEE011738wgEkc/rS74oWkQ== 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 4X3cZp0D5KzSGk; Wed, 11 Sep 2024 10:42:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAg96B007920; Wed, 11 Sep 2024 10:42:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAg9w1007917; Wed, 11 Sep 2024 10:42:09 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:09 GMT Message-Id: <202409111042.48BAg9w1007917@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: 66a6e1d61380 - main - arm: Remove support for Armv6 CPU cores List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 66a6e1d61380cd265a4d7dfbc996aebce112db2c Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=66a6e1d61380cd265a4d7dfbc996aebce112db2c commit 66a6e1d61380cd265a4d7dfbc996aebce112db2c Author: Andrew Turner AuthorDate: 2024-07-12 11:48:25 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:40:35 +0000 arm: Remove support for Armv6 CPU cores The ARM1176 is an Armv6 CPU. As Armv6 support has been removed we can also remove ARM1176 support. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45958 --- sys/arm/arm/cpufunc.c | 66 +---------------------------------------------- sys/arm/include/cpufunc.h | 3 --- 2 files changed, 1 insertion(+), 68 deletions(-) diff --git a/sys/arm/arm/cpufunc.c b/sys/arm/arm/cpufunc.c index 05dd521f8221..ba63f82ee597 100644 --- a/sys/arm/arm/cpufunc.c +++ b/sys/arm/arm/cpufunc.c @@ -67,9 +67,6 @@ unsigned int arm_dcache_align_mask; #ifdef CPU_MV_PJ4B static void pj4bv7_setup(void); #endif -#if defined(CPU_ARM1176) -static void arm11x6_setup(void); -#endif #if defined(CPU_CORTEXA) || defined(CPU_KRAIT) static void cortexa_setup(void); #endif @@ -91,22 +88,6 @@ struct cpu_functions pj4bv7_cpufuncs = { }; #endif /* CPU_MV_PJ4B */ -#if defined(CPU_ARM1176) -struct cpu_functions arm1176_cpufuncs = { - /* Cache operations */ - .cf_l2cache_wbinv_all = (void *)cpufunc_nullop, - .cf_l2cache_wbinv_range = (void *)cpufunc_nullop, - .cf_l2cache_inv_range = (void *)cpufunc_nullop, - .cf_l2cache_wb_range = (void *)cpufunc_nullop, - .cf_l2cache_drain_writebuf = (void *)cpufunc_nullop, - - /* Other functions */ - .cf_sleep = arm11x6_sleep, - - /* Soft functions */ - .cf_setup = arm11x6_setup -}; -#endif /*CPU_ARM1176 */ #if defined(CPU_CORTEXA) || defined(CPU_KRAIT) struct cpu_functions cortexa_cpufuncs = { @@ -210,13 +191,6 @@ set_cpufuncs(void) cputype = cp15_midr_get(); cputype &= CPU_ID_CPU_MASK; -#if defined(CPU_ARM1176) - if (cputype == CPU_ID_ARM1176JZS) { - cpufuncs = arm1176_cpufuncs; - get_cachetype_cp15(); - goto out; - } -#endif /* CPU_ARM1176 */ #if defined(CPU_CORTEXA) || defined(CPU_KRAIT) switch(cputype & CPU_ID_SCHEME_MASK) { case CPU_ID_CORTEXA5: @@ -262,9 +236,7 @@ out: */ -#if defined(CPU_ARM1176) \ - || defined(CPU_MV_PJ4B) \ - || defined(CPU_CORTEXA) || defined(CPU_KRAIT) +#if defined(CPU_MV_PJ4B) || defined(CPU_CORTEXA) || defined(CPU_KRAIT) static __inline void cpu_scc_setup_ccnt(void) { @@ -277,10 +249,6 @@ cpu_scc_setup_ccnt(void) /* Set PMUSERENR[0] to allow userland access */ cp15_pmuserenr_set(1); #endif -#if defined(CPU_ARM1176) - /* Set PMCR[2,0] to enable counters and reset CCNT */ - cp15_pmcr_set(5); -#else /* Set up the PMCCNTR register as a cyclecounter: * Set PMINTENCLR to 0xFFFFFFFF to block interrupts * Set PMCR[2,0] to enable counters and reset CCNT @@ -288,41 +256,9 @@ cpu_scc_setup_ccnt(void) cp15_pminten_clr(0xFFFFFFFF); cp15_pmcr_set(5); cp15_pmcnten_set(0x80000000); -#endif } #endif -#if defined(CPU_ARM1176) -static void -arm11x6_setup(void) -{ - uint32_t auxctrl, auxctrl_wax; - uint32_t tmp, tmp2; - uint32_t cpuid; - - cpuid = cp15_midr_get(); - - auxctrl = 0; - auxctrl_wax = ~0; - - /* - * Enable an errata workaround - */ - if ((cpuid & CPU_ID_CPU_MASK) == CPU_ID_ARM1176JZS) { /* ARM1176JZSr0 */ - auxctrl = ARM1176_AUXCTL_PHD; - auxctrl_wax = ~ARM1176_AUXCTL_PHD; - } - - tmp = cp15_actlr_get(); - tmp2 = tmp; - tmp &= auxctrl_wax; - tmp |= auxctrl; - if (tmp != tmp2) - cp15_actlr_set(tmp); - - cpu_scc_setup_ccnt(); -} -#endif /* CPU_ARM1176 */ #ifdef CPU_MV_PJ4B static void diff --git a/sys/arm/include/cpufunc.h b/sys/arm/include/cpufunc.h index 6562042dac0c..15fbabcc109d 100644 --- a/sys/arm/include/cpufunc.h +++ b/sys/arm/include/cpufunc.h @@ -97,9 +97,6 @@ void armv7_cpu_sleep (int); void pj4b_config (void); #endif -#if defined(CPU_ARM1176) -void arm11x6_sleep (int); /* no ref. for errata */ -#endif /* From nobody Wed Sep 11 10:42:06 2024 X-Original-To: dev-commits-src-main@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 4X3cZk6Gvcz5WNDp; Wed, 11 Sep 2024 10:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3cZk5HQfz4Qj0; Wed, 11 Sep 2024 10:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051326; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9i2W+CmXYOpxGekl61DPZn8JrPY+eb4wVTYx+iOcnGo=; b=C+2Oqh0pxIST8W7OkKI2t0+X+wffyfp3SZdwkf/ME/z3Qu53qGseWKKiNAcrYvrKQVhq7e l9kpVm/SA1gSlNYixfbl7n3rl12vEzfDxzdVLL+YVCHc8f0PL11p38s217MBHI43kE74dm IWhGgjmEbOzDLvc9UgmQ5+SUhfkMC1NFPN+Bv5TlZQDJk647/0KHy9EOmWftWeIBN5oMp0 LOgmLQfPxGEkBbZu9Vu+xqC6bXH+pICZfT1V0Xit2sC1YgxW1iuv/om186j4wPSrQ9XGqN VWViMkVmMRKGvh5GmOmW36BAy5iv0nilpqbqfY6taXru+fgrsLl+XEw6/X39tA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726051326; a=rsa-sha256; cv=none; b=HJTO50JmtlifFp2f3w2jDuY/YUvPLmL1cXuikZR+Z5atQ8UenbPD5YZHrSIu9v83a9vXpM nGRdEaclBYr8gha6awaOK5VqWH8VWAwiMjI9KsSFZId+U8ld8GSz92yqa5uVkZU7SHja4p FviZMLa9bzT8ZDdfBpFDGtm0fgN2qWyWPqZKiLaPyfKeYqWQxGsMZm1fvYKBmhEC3a0ixC JVucxVY5IV/bz5x3exJQXXWtAskjxwFWQyePz9VHPqmJ6FB+ZiSQuKvyBurwsve0eiXb/5 KlJOzq2jrOl5mlr5GsqCsvYdCGzqJStMnKbfKkXo6TmWxzVzUgzu/Xn1bMFwQw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726051326; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9i2W+CmXYOpxGekl61DPZn8JrPY+eb4wVTYx+iOcnGo=; b=uLi/LehN9/wzw6L/9gKeyGGfJEgK8xlaGAra7FmOMMttM4UN1YwS/KD0LGRiiKz/Qhp7Pn pG+RfdSTvWkrrSYyTqWbmzzqGfcPwjQ/+qSmI7LSzFFASFJek/YC6Kkb4tBVhn48NzwbiH m+8QV/YoNt1QZMI93Z8cXRZzXzJDeImhR6NP07YCFKE6HJBYlYd50I8XSvDpD+S81O2abY 1qkN5F2Rk+owa500W2wsw2fUs4B6U/Qk5f4sg1mhZMvyRx7lZdTAuHo83vk/5MeoTbmCmM zx7RJ8YSyfQ/SXLkDwAQ29MBf0/ER11zRvW3K9j0kjF5WvIGJkPZBjrSM1eZ4A== 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 4X3cZk4vtyzS7b; Wed, 11 Sep 2024 10:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BAg6Dt007767; Wed, 11 Sep 2024 10:42:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BAg6db007764; Wed, 11 Sep 2024 10:42:06 GMT (envelope-from git) Date: Wed, 11 Sep 2024 10:42:06 GMT Message-Id: <202409111042.48BAg6db007764@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: d54631360276 - main - arm64: Add CPTR_TRAP_ALL and use it in vmm List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: d54631360276d3fdbaa9a7872f8af82f1f4287da Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d54631360276d3fdbaa9a7872f8af82f1f4287da commit d54631360276d3fdbaa9a7872f8af82f1f4287da Author: Andrew Turner AuthorDate: 2024-09-11 09:38:27 +0000 Commit: Andrew Turner CommitDate: 2024-09-11 10:25:09 +0000 arm64: Add CPTR_TRAP_ALL and use it in vmm Add a new macro that enables all CPTR_EL2 traps. This helps ensure we trap all extensions we don't support. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46516 --- sys/arm64/include/hypervisor.h | 2 ++ sys/arm64/vmm/vmm_reset.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 738eeca66ffe..0a138006b108 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -53,11 +53,13 @@ /* CPTR_EL2 - Architecture feature trap register */ /* Valid if HCR_EL2.E2H == 0 */ +#define CPTR_TRAP_ALL 0xc01037ff /* Enable all traps */ #define CPTR_RES0 0x7fefc800 #define CPTR_RES1 0x000033ff #define CPTR_TFP 0x00000400 #define CPTR_TTA 0x00100000 /* Valid if HCR_EL2.E2H == 1 */ +#define CPTR_E2H_TRAP_ALL 0xd0000000 #define CPTR_E2H_FPEN 0x00300000 #define CPTR_E2H_TTA 0x10000000 /* Unconditionally valid */ diff --git a/sys/arm64/vmm/vmm_reset.c b/sys/arm64/vmm/vmm_reset.c index 3195bc10dedd..8ccb83e7a0ea 100644 --- a/sys/arm64/vmm/vmm_reset.c +++ b/sys/arm64/vmm/vmm_reset.c @@ -170,9 +170,10 @@ reset_vm_el2_regs(void *vcpu) * and floating point functionality to EL2. */ if (in_vhe()) - el2ctx->cptr_el2 = CPACR_FPEN_TRAP_NONE; + el2ctx->cptr_el2 = CPTR_E2H_TRAP_ALL | CPTR_E2H_FPEN; else - el2ctx->cptr_el2 = CPTR_RES1; + el2ctx->cptr_el2 = CPTR_TRAP_ALL & ~CPTR_TFP; + el2ctx->cptr_el2 &= ~CPTR_TCPAC; /* * Disable interrupts in the guest. The guest OS will re-enable * them. From nobody Wed Sep 11 11:18:26 2024 X-Original-To: dev-commits-src-main@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 4X3dNf6nvPz5WRcF; Wed, 11 Sep 2024 11:18: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3dNf599pz4Xl1; Wed, 11 Sep 2024 11:18:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053506; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cZxif6VuDBgQqxruPL0u5HTUDNLnGd9k1muaF6iLIMU=; b=uVty1NGtN/cSLlty0JEoi5FZRhgSKuNkP3pMsAK1RjDSC1LnCdKfMPLM9wf1BuvtyjzEFz 2HpKO+dnvVN1pt+AAWl67h3qbZFfu2lTqxzliEjfw1uAWFWsR4eJsv9puE9dDDueoGznqW k9W/FIDdM/Bn1YaDlKxyloeS1986KqnGMV56b4Pb5ExA5fQfWVy9Zy3TKdOQ2+2Ep3pd5K /iZhodFPAzGVMO/n2N9iItYBFP5Jq5Vs9uYj+yhjq6Us0ToVJw4DTVVi0ypQlozLcbMCX7 bew5suRFsFUSR67z8r3CSJ9gKNJzIqOGcI5jKBUx/dG6vYMAgrwTQlo09Q/bfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726053506; a=rsa-sha256; cv=none; b=YvehT5jh/KAqzlASmdVBE4fsuQ8xBhbQh9ZBBcvl+hH7FCP73JSyR33N2z8FGzJ2DFWGSn TIP5Q2o/ZMlveGBgjxosPVaBOMIfAoP2sWEun1j3f3a3/Jsj3Ua43sWWb2icNQ94p/6V/r goGVMoxFdDIILfKvJT5BGHaY30+mh0nDcAsBjZEi+r1O216wb1BSVhAi3dxGvkXqNPRd2+ A+FCnWtosnW61zqhM8b4ZZDXR3TsxwJCVc/H/NQVgOmhmkb9Jynqos4sOyLMxh7ovTYEdl xcoooS7xzQvpmsdjcHadse4pfIocOigDMNQasF4w4WlLRDBFcG2NvLSaVoCQ6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053506; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cZxif6VuDBgQqxruPL0u5HTUDNLnGd9k1muaF6iLIMU=; b=HlKTThZ2k035Vovkk087kmjaNMUL01ttkeHoTsNvvoPQtizfXCHd8Ysob/QjyopWl2jNuh 6oc4DYTfJNbAB1U3bkldB5cfrLoe/517KoHk895j22aUABa2HMrNe6mANmEAe5pEZQdXUx bUYM4G96lbQSQ/eBJ29KPvTZVaG+ht7cw37wJ/GSlaBaKjuedtPsitaKPcS1kg0nRhIH6j uajTxOkU08gbsZgB7bokWqh6a/nFYT2t+Pr1JWv639sSda5d9PWcjNsSJEFCy3PPOGfEaR d3/x+maZ/uAmMIlRxP4j504cnGEp6OXa/G+S+ULsN32iFGtRTZc2P6H1eh822g== 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 4X3dNf4mspzSZr; Wed, 11 Sep 2024 11:18:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BBIQ3V065092; Wed, 11 Sep 2024 11:18:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BBIQ2h065089; Wed, 11 Sep 2024 11:18:26 GMT (envelope-from git) Date: Wed, 11 Sep 2024 11:18:26 GMT Message-Id: <202409111118.48BBIQ2h065089@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: f08247fd888e - main - Assert that mbufs are writable if we write to them List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: f08247fd888e6f7db0ecf2aaa39377144ac40b4c Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f08247fd888e6f7db0ecf2aaa39377144ac40b4c commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c Author: Kristof Provost AuthorDate: 2024-09-10 20:15:31 +0000 Commit: Kristof Provost CommitDate: 2024-09-11 11:17:48 +0000 Assert that mbufs are writable if we write to them m_copyback() modifies the mbuf, so it must be a writable mbuf. Reviewed by: glebius Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46627 --- sys/kern/uipc_mbuf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index f6ce9b5cc74b..3232af880925 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -1280,6 +1280,8 @@ m_copyback(struct mbuf *m0, int off, int len, c_caddr_t cp) if (m0 == NULL) return; + + MPASS(M_WRITABLE(m0)); while (off > (mlen = m->m_len)) { off -= mlen; totlen += mlen; From nobody Wed Sep 11 11:18:28 2024 X-Original-To: dev-commits-src-main@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 4X3dNj3dzFz5WRkT; Wed, 11 Sep 2024 11:18: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3dNh6w0Lz4XqL; Wed, 11 Sep 2024 11:18:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053509; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R3SdlxiDBt7A+BOvLU7b/tZIBIe0cgGqNWYLmiz5BJI=; b=vQmFIRuI4ALM2+B04ubsva0P1GHeWD6EAphKiL6z6Mo9zvCZwCX2zCuIv01HH2KS48AbUA Obb4a1ezeDqcro1JNKOgDIyLe0DtWth967x1WRFvr+RUVLE0H2kyTllY8H+Dba7fw182nY asEbl/CMB/UTiCuEa1E6TdqZNj7HJTrCmun7YtFTM+YYNwIvdTdGFkWDeMBXI2c03yvK3n v5XpfyqD+kdz8IyI0eEb5I0bww9MOn5xh+7Qgfu4ZNaral5nUfMSy6WT6eiFEmHUYmWMna KNe4Pc0PNbGzAtLSqJiub0cxdu0I8zT/I3VI/lHYCi5QjXZbdwsji0noGAmSjg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726053509; a=rsa-sha256; cv=none; b=xC47UHHhuSmab7EyO1I4ZjItHl8jwnogvff7hNTrG8S7+shecXVZ8azY7inxmG7qI4KFaz m0D6j7c4L0ykrqS7u7uPpTnEu9gibtKK+xPY91CnvAR/BfanaXm6piw+nZ7sKCPAdPya5H wwf8xbJeEq3Y1tg6oqJkb176p6Pcu/AIouZ/uE/d9hXe/m7npydOMdkQkPeJdqkCQA904t 5Rk6Aje4QXb+Stiv1e6+F6opoAUppgZZyeqBYp3ChpcjFhL4J4Mcq8lU4sdBEHrk/7Syza 2N+s7pv3OJK+PKJYj4fDcQqQuWxKsUsPpVVpf02ScINQr21e6Cf6B2K/8nsUmw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053509; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R3SdlxiDBt7A+BOvLU7b/tZIBIe0cgGqNWYLmiz5BJI=; b=kFAHoEgrC4KzdOlurPM+t960Z66OGgfa1NExK0aZtRLdQurpWZFEKEqsSExfb87JtKg+2S AdFJt1k6P1Dsx7noPQktsl+ojC/bQHl2ohMb+esXJ6Ekt2lh+DWzf6skf4y9/w7rEmHyDo KTqRcSluI/LgBlIf/VqlfTqOaLXqbRHyM0qqFlgivSHN+iiq1I7HZQWvA3jl5ENCLc6Ftb niDvDgzoQdVa7g5sbhkXfLUJ6fFSnaFaXo9OZPFEWY82bg6T8mx22U/c0ynFvd6L7rNyEu a6Mo8O5oOA3G0NEjiIBfPAxmL/JGQS0mEd3jRqz/NZ5b5EQRYxL08AENiREl3A== 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 4X3dNh6XGjzSvd; Wed, 11 Sep 2024 11:18:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BBISkG065184; Wed, 11 Sep 2024 11:18:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BBISqf065181; Wed, 11 Sep 2024 11:18:28 GMT (envelope-from git) Date: Wed, 11 Sep 2024 11:18:28 GMT Message-Id: <202409111118.48BBISqf065181@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: b27d3f71c2ad - main - pf tests: improved test for CVE-2019-5598 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: b27d3f71c2ad05e1b18e8bdce75194330e0925e4 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b27d3f71c2ad05e1b18e8bdce75194330e0925e4 commit b27d3f71c2ad05e1b18e8bdce75194330e0925e4 Author: Kristof Provost AuthorDate: 2024-08-28 08:03:42 +0000 Commit: Kristof Provost CommitDate: 2024-09-11 11:17:49 +0000 pf tests: improved test for CVE-2019-5598 Ensure that we verify that the inner and outer IP address matches for ICMP error messages. This is a more detailed test for CVE-2019-5598, which was fixed back in 2019. Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46573 --- tests/sys/netpfil/pf/Makefile | 1 + tests/sys/netpfil/pf/icmp.py | 126 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) diff --git a/tests/sys/netpfil/pf/Makefile b/tests/sys/netpfil/pf/Makefile index 2b3cb9fbd858..8444c92fb8d5 100644 --- a/tests/sys/netpfil/pf/Makefile +++ b/tests/sys/netpfil/pf/Makefile @@ -53,6 +53,7 @@ ATF_TESTS_SH+= altq \ tos ATF_TESTS_PYTEST+= frag6.py +ATF_TESTS_PYTEST+= icmp.py ATF_TESTS_PYTEST+= nat66.py ATF_TESTS_PYTEST+= sctp.py diff --git a/tests/sys/netpfil/pf/icmp.py b/tests/sys/netpfil/pf/icmp.py new file mode 100644 index 000000000000..cb9de2bf0f36 --- /dev/null +++ b/tests/sys/netpfil/pf/icmp.py @@ -0,0 +1,126 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2024 Rubicon Communications, LLC (Netgate) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +import pytest +import subprocess +import re +from atf_python.sys.net.tools import ToolsHelper +from atf_python.sys.net.vnet import VnetTestTemplate + +def check(cmd): + ps = subprocess.Popen(cmd, shell=True) + ret = ps.wait() + if ret != 0: + raise Exception("Command %s returned %d" % (cmd, ret)) + +class TestICMP(VnetTestTemplate): + REQUIRED_MODULES = [ "pf" ] + TOPOLOGY = { + "vnet1": {"ifaces": ["if1"]}, + "vnet2": {"ifaces": ["if1", "if2"]}, + "vnet3": {"ifaces": ["if2"]}, + "if1": {"prefixes4": [("192.0.2.2/24", "192.0.2.1/24")]}, + "if2": {"prefixes4": [("198.51.100.1/24", "198.51.100.2/24")]}, + } + + def vnet2_handler(self, vnet): + ifname = vnet.iface_alias_map["if1"].name + + ToolsHelper.print_output("/sbin/pfctl -e") + ToolsHelper.pf_rules([ + "set reassemble yes", + "block", + "pass inet proto icmp icmp-type echoreq", + ]) + + ToolsHelper.print_output("/sbin/sysctl net.inet.ip.forwarding=1") + ToolsHelper.print_output("/sbin/pfctl -x loud") + + def vnet3_handler(self, vnet): + # Import in the correct vnet, so at to not confuse Scapy + import scapy.all as sp + + ifname = vnet.iface_alias_map["if2"].name + ToolsHelper.print_output("/sbin/route add default 198.51.100.1") + ToolsHelper.print_output("/sbin/ifconfig %s inet alias 198.51.100.3/24" % ifname) + + def checkfn(packet): + icmp = packet.getlayer(sp.ICMP) + if not icmp: + return False + + if icmp.type != 3: + return False + + packet.show() + return True + + sp.sniff(iface=ifname, stop_filter=checkfn) + vnet.pipe.send("Got ICMP destination unreachable packet") + + @pytest.mark.require_user("root") + def test_inner_match(self): + vnet = self.vnet_map["vnet1"] + dst_vnet = self.vnet_map["vnet3"] + sendif = vnet.iface_alias_map["if1"].name + + our_mac = ToolsHelper.get_output("/sbin/ifconfig %s ether | awk '/ether/ { print $2; }'" % sendif) + dst_mac = re.sub("0a$", "0b", our_mac) + + # Import in the correct vnet, so at to not confuse Scapy + import scapy.all as sp + + ToolsHelper.print_output("/sbin/route add default 192.0.2.1") + + # Sanity check + check("/sbin/ping -c 1 192.0.2.1") + check("/sbin/ping -c 1 198.51.100.1") + check("/sbin/ping -c 2 198.51.100.3") + + # Establish a state + pkt = sp.Ether(src=our_mac, dst=dst_mac) \ + / sp.IP(src="192.0.2.2", dst="198.51.100.2") \ + / sp.ICMP(type='echo-request') \ + / "PAYLOAD" + sp.sendp(pkt, sendif, verbose=False) + + # Now try to pass an ICMP error message piggy-backing on that state, but + # use a different source address + pkt = sp.Ether(src=our_mac, dst=dst_mac) \ + / sp.IP(src="192.0.2.2", dst="198.51.100.3") \ + / sp.ICMP(type='dest-unreach') \ + / sp.IP(src="198.51.100.2", dst="192.0.2.2") \ + / sp.ICMP(type='echo-reply') + sp.sendp(pkt, sendif, verbose=False) + + try: + rcvd = self.wait_object(dst_vnet.pipe, timeout=1) + if rcvd: + raise Exception(rcvd) + except TimeoutError as e: + # We expect the timeout here. It means we didn't get the destination + # unreachable packet in vnet3 + pass From nobody Wed Sep 11 11:18:29 2024 X-Original-To: dev-commits-src-main@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 4X3dNk3PvPz5WRkV; Wed, 11 Sep 2024 11:18: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3dNk0JNGz4XnW; Wed, 11 Sep 2024 11:18:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8CdYL2KG/5hk6X1/MagCl/Tk4JOer7Jp2kAX4uKBaDc=; b=YshASkUk6TyM+nUSOYtf57+r9krbaBCrzBdsAGJGeBfA73g03hmWBOqXg0P6/CQOQZ/Dxb XE3OK+uIjm+mddFZKbFNP3K4GrhAJd/kdOOhoqDbVm2JI9P9lwn/pUz0JQIkTNtzJoJuOl cyFSKS5xqm2DITdblvS/U4353diqJe+xWH0LeAOD9ozAdrvhdlbCLQVMsy4e1HxiwOx0Xh RJXVwqR83SDvIBxlc6PdK/GaRdOoyED/FfXzSU3ZQhIU9Pq/T7atq7aqEmEjSNDhpjeUNg y49rm0kfivn0cZ1vP961eQSU6U5aepy1zWSAxtpoVj6157cYbB6CapjgivCm3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726053510; a=rsa-sha256; cv=none; b=N6D2rJ23uvlRzimbz/b3yeL9nxEVN6f+ndX3orgsg12vtW9WkPtSqUTq+HhbHTfXXtmuMM drgjWrgdZrh3Uc2NJsQQqDz+y1ukMuLUBC2aMR8cjsmVym6s/fHMGJxVER+NWNDX1kYm41 dkhilLgT5pi6+9t90G+UINeHTmMzQWPa4RhkIJSPtaJkkskGhGLujWQwPFGsqe9Djs5QM4 4l9vP5UF7Q6Wd3CQorSfFZ53ZxgfgH6AkC8wYWmY+uA3RFbC+NDTL7SEqUXape+fgx3M5K OJ096TwwvQxMnTCYfrgA6ouEE25m5r4NS0d52I9N1M2X2NsEZAJyILGfOYQn5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8CdYL2KG/5hk6X1/MagCl/Tk4JOer7Jp2kAX4uKBaDc=; b=ytS/SAynlo940fwJ2cOA2KLJJviYt+m41PsRgkaFmqMgbcm0i7ZZ4xPgBeMVhcg/xvCU+1 a1OcO/1wUWh8hNkHIdVRWTbAQ1o98jKZ2rDPtHQx1gl11Jkab3aC2sxxUY3bkoh6Az9tUJ ww5FPjFZ1z+FDBLkSYkpcDYrSpyTcZnmhkWECNRz65tGJJGfBceUWJgCkL1HYTaPnrDBnE 1Bg9oc3mzFFVkx2UZccZ0zAd7NG9Vvw5VbGb9+6hKke1zEVsY84MI31Jj1ADXS0Rdawaf/ a8EChF0umCZ/5+P9uJ61Dx0jCqtGzk4zdeEJNk7nhOMIXYnOxHSX+4ArcEVJMA== 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 4X3dNj72cBzSvf; Wed, 11 Sep 2024 11:18:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BBITls065229; Wed, 11 Sep 2024 11:18:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BBIT4x065226; Wed, 11 Sep 2024 11:18:29 GMT (envelope-from git) Date: Wed, 11 Sep 2024 11:18:29 GMT Message-Id: <202409111118.48BBIT4x065226@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: db11a048282d - main - pf: fix debug printf List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: db11a048282d268e19510b9f566903ed0509e698 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=db11a048282d268e19510b9f566903ed0509e698 commit db11a048282d268e19510b9f566903ed0509e698 Author: Kristof Provost AuthorDate: 2024-08-28 12:42:33 +0000 Commit: Kristof Provost CommitDate: 2024-09-11 11:17:49 +0000 pf: fix debug printf MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46574 --- sys/netpfil/pf/pf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 1535843d81b1..2066cfbeccff 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6935,7 +6935,7 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, PF_IN : PF_OUT) != icmp_dir) { if (V_pf_status.debug >= PF_DEBUG_MISC) { printf("pf: icmp type %d in wrong direction (%d): ", - icmp_dir, pd->dir); + ntohs(type), icmp_dir); pf_print_state(*state); printf("\n"); } From nobody Wed Sep 11 11:18:27 2024 X-Original-To: dev-commits-src-main@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 4X3dNh28Tmz5WRmZ; Wed, 11 Sep 2024 11:18: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3dNg5c8Cz4XnS; Wed, 11 Sep 2024 11:18:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053507; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qCDQZw25VBKvWndPZ46hqp5MLAlm5T1ORTSH1gUe2aw=; b=Xpz6+33iFNM3K2f/zcNVnXNcQtWs52P6SiH7IDN8Qc5nhXbQ0dAmKTPF8ohU31wDZJ9bIA ovKmWotBJBVytA1q/VYi2WJTxta0sj6g3W0BAsoL+09AV9Cc9WVSK8c0+AwnqGG/KMb6cF mWZZB4W40yVb5XqnO4j5D7C8gFh6rrepJTd+IpVFkx3vCNFuxgUQKvwd7+cuMgJKhPfofN 6+NW9l+YdprHqw8iq2QS9ybC+NfyV8T8Vf/IiKAohL+ZiAcX3g/zao3l0xhOkGej3vSnxj sDv/yBVXkCn3++6qoeDNs+9pWamgM5YXM0xhoZ4LNxllxLD9G74eUy/dVKHynw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726053507; a=rsa-sha256; cv=none; b=gOyzY+BtwQhKw5DF8RXJgB4tyt1GvCLDHCo0mKm0RgmU+xzXiskfcHkSsDo31pao3nDt7e ymFGxUnonZ4+zy7eS1PR1P1891j6EwKRaN+anIUJv/GmPzfDICG4QruYnWlR2Z7JpDgGJw 60snHQiw5jyZc68wPU/t21T2ZYJVgfKR5cmRqc49irrzcerxDyzlucuz9Z1/Ojgg92uHT3 8MBsBUQBRKjp54K0xKIyISVnMjH7p7sYbipN5NoEuRIHe9lMaLyuB2xgB0znFFWFWvjAeB 5xeYubSBVDIw0OPIFBAoaJ1WP9JMDAEzXy4/5lp6GIpUdlU0MgA/aOwBY0my2Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726053507; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qCDQZw25VBKvWndPZ46hqp5MLAlm5T1ORTSH1gUe2aw=; b=Lc9Y45XBj8wYwqh9PSzpteKXk/8YO4D/KoDGQZIa/ikUrfCsehQPd7xtutgPQQQVISbbOU a3vv6EZklUBRUGxnZdZ6xueevDUkkGr9XRzu5f1LnV7LqHusW5NXVM5V4w1WiWk23l9UNU VTZYhBALbasdqo/3xogiy0z2WD7rbS4g34mRvbrFyiTMklOJkLR7mv6XuMMHif+fTQBwMV 0VVcs8v8mqtsVugLdWS994cqt3hDfKGw71gFNxjSj97E8H4uz17et9DoMddUNnt24JoePL WXwtifbcvE0sRVSG4joYkXaSyjn2oPMnLo2BJMS4aptcjTzZtgbIV8JI85Ak6Q== 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 4X3dNg5CpXzSZs; Wed, 11 Sep 2024 11:18:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BBIR8o065139; Wed, 11 Sep 2024 11:18:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BBIRsY065136; Wed, 11 Sep 2024 11:18:27 GMT (envelope-from git) Date: Wed, 11 Sep 2024 11:18:27 GMT Message-Id: <202409111118.48BBIRsY065136@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: 423b1069af74 - main - pf: ensure mbufs are writable List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 423b1069af744e717bafb3dbd0764926e2aabd88 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=423b1069af744e717bafb3dbd0764926e2aabd88 commit 423b1069af744e717bafb3dbd0764926e2aabd88 Author: Kristof Provost AuthorDate: 2024-09-10 20:16:13 +0000 Commit: Kristof Provost CommitDate: 2024-09-11 11:17:48 +0000 pf: ensure mbufs are writable Ensure that we can modify mbufs before we start processing them. There are a number of paths where pf will m_copyback() or otherwise modify a packet. Ensure that this is safe to do. For example, ip6_forward() will m_copym() the packet before handing it to the output pfil hook. This results in a non-writable mbuf, which would trigger assertion failures (see previous commit). Reviewed by: glebius (previous version) Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46628 --- sys/netpfil/pf/pf.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 70220dda935e..1535843d81b1 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -8415,6 +8415,12 @@ pf_test_eth(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, if (m->m_flags & M_SKIP_FIREWALL) return (PF_PASS); + if (__predict_false(! M_WRITABLE(*m0))) { + m = *m0 = m_unshare(*m0, M_NOWAIT); + if (*m0 == NULL) + return (PF_DROP); + } + /* Stateless! */ return (pf_test_eth_rule(dir, kif, m0)); } @@ -8553,6 +8559,12 @@ pf_test(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, return (PF_PASS); } + if (__predict_false(! M_WRITABLE(*m0))) { + m = *m0 = m_unshare(*m0, M_NOWAIT); + if (*m0 == NULL) + return (PF_DROP); + } + memset(&pd, 0, sizeof(pd)); TAILQ_INIT(&pd.sctp_multihome_jobs); if (default_actions != NULL) @@ -9147,6 +9159,12 @@ pf_test6(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, struct inpcb return (PF_DROP); } + if (__predict_false(! M_WRITABLE(*m0))) { + m = *m0 = m_unshare(*m0, M_NOWAIT); + if (*m0 == NULL) + return (PF_DROP); + } + memset(&pd, 0, sizeof(pd)); TAILQ_INIT(&pd.sctp_multihome_jobs); if (default_actions != NULL) From nobody Wed Sep 11 14:45:01 2024 X-Original-To: dev-commits-src-main@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 4X3jz11rCKz5Tc6h; Wed, 11 Sep 2024 14:45: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3jz11GyRz3xK8; Wed, 11 Sep 2024 14:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726065901; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f9ERT+XMOXuxUHk01pUaYMbFrUFC17ih5sU6rKpU7aA=; b=ILeIodC0RC+8KlaUJ1fmNqarkYbj28eZWcX04zHpsaqmTGH6KOkK5LuI+NDsyHp73Pqi9r 1lUCIIFHhh9XuySp8Vfm3jxd5XWu04xerb9sIMouNyOy537ukm1+2laG+PbFDq7AtWtwKg vDFYKKOfD+3jCZCaaC8pyfkGlvGEP6BPx7Plr1qJcQtBAzfvQDKM8XXODonTQv34b2IvVg oZ7+f3ssaBM2ws2EiJk4HkpQJ9fV/+ZjsnQW2HDi0y7IHOwE5LjUA6r4vqB1t1BpzQNgdw SK/f2YgjaS39eVewYXcAZOwr+aXHULBc6/9+54tOz4BmRl/ruz7zxw7ttmtVpw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726065901; a=rsa-sha256; cv=none; b=vaOmfYXQM0/7OIRI8wB/xcu7DP35yik0RCi//IBUWVC8F1IQuraJZAhySBJxtl7ZcQ64ST j+DXv1rgcPOACFZIujdI2Ajis2rQjSSaAPPkDPsMAYpxRTNefLytxbNSl4Sw08ykhBwW+V 5JJAfLeZLuronNLDc8dMr+FE9zAR/qTajZm4veSiiDSBsaS62gKT4a0JCodFeTiM3LbiwY rPnS44mS+ddnbYWhg1425MJF8/0XYGZBFA/dn/2d+GuMXjaXnIaIqSYSrS1NhRrea0i2HY PXL62Io83/Bq3Gpdu1X3a1e5rMlvSjI0ZgYHirup3gfKW/6ksz6y4qu2VEqasg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726065901; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f9ERT+XMOXuxUHk01pUaYMbFrUFC17ih5sU6rKpU7aA=; b=HWvEMDzMr1v5OwcsIOdTWnkwhRbCDSMfQp/j5l5h4ygqTd0OA99hrZ0HRmwquAada0om1g 2bXwaTTKiFgowrkcZhSLhdLtK4hZcfOsRBPEl0aIYxpfXpjb4iwT+aN1SqED3sNfMXpA7e xNCnX2AoWSbQrK99yqb93C2+xh8cccf5HQ+keJP1+t/tIL98Dhce/ZZBU4vEh3NRHqYFPx hbOQElTMieH4rcQlsoY3/K2k90M7q4dr9MOxONavzYdhTwdLXDFnJSeYC9lAg4oVhwEBre p5YRABBzCjk1qRoeZu31k4mDoHtJQSxkBuAgcMVPZW61QKz5WS1lveNT87Tu/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 4X3jz10tH0zbG8; Wed, 11 Sep 2024 14:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BEj1th020705; Wed, 11 Sep 2024 14:45:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BEj1Ai020703; Wed, 11 Sep 2024 14:45:01 GMT (envelope-from git) Date: Wed, 11 Sep 2024 14:45:01 GMT Message-Id: <202409111445.48BEj1Ai020703@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mariusz Zaborski Subject: git: 7f4731ab67f1 - main - libnv: correct the calculation of the structure's size List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7f4731ab67f1d3345aee6626eb83cc5ce00010f0 Auto-Submitted: auto-generated The branch main has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=7f4731ab67f1d3345aee6626eb83cc5ce00010f0 commit 7f4731ab67f1d3345aee6626eb83cc5ce00010f0 Author: Mariusz Zaborski AuthorDate: 2024-09-11 14:43:43 +0000 Commit: Mariusz Zaborski CommitDate: 2024-09-11 14:43:43 +0000 libnv: correct the calculation of the structure's size Reported by: Milosz Kaniewski --- sys/contrib/libnv/nvlist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 1dc0bb8c1141..00ba3b41f3a3 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -1022,7 +1022,7 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { - if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(*nvlhdrp)) { ERRNO_SET(EINVAL); return (false); } From nobody Wed Sep 11 14:45:44 2024 X-Original-To: dev-commits-src-main@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 4X3jzy4nYrz5Tcrj; Wed, 11 Sep 2024 14:45:50 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-oi1-x22d.google.com (mail-oi1-x22d.google.com [IPv6:2607:f8b0:4864:20::22d]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3jzx5rCJz3y0F; Wed, 11 Sep 2024 14:45:49 +0000 (UTC) (envelope-from markjdb@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-oi1-x22d.google.com with SMTP id 5614622812f47-3e03f8ecef8so1999103b6e.1; Wed, 11 Sep 2024 07:45:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726065948; x=1726670748; darn=freebsd.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=7IT51rZH7mZyY0Jx46CtlP3QQxz1F3Q2Jp7zD8BiOxE=; b=loSLTtp5JsDuPlb9ahh7rnRJmtnC6WUnmVYoxokr8J+Vm+e82v2QJsxo/lEg1vU2t+ Zm4abwUf5y94Td3Zxvnw5AA6TJyZ2WJ63BqjVi0uaMzaJEaKgstSatr4q/lBSbGzbzYo Vd8GXJw3m64Q1deiKRzSTuwwCBQekSODnIOHpUodX5uQjD2LSLRjWmk6aO0vJxgqsT6D b3cPq7b+I2AgcbCDb3kU8rF75DYuJl3RuiuYN+L1+KzBniBbX7l8AlYxfjBWo7jIp3Ux gjXMTE4bApJ3u8/E8OAWGQD5Zb4V3o2wOf8Y9u1j++x7Cmjo7KPk3aTuvv6zUvjQDtqU NedQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726065948; x=1726670748; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7IT51rZH7mZyY0Jx46CtlP3QQxz1F3Q2Jp7zD8BiOxE=; b=KnLm1DQq8/6bvMH2qagG6jl9m56Y20FTWoSkRTMPoASw+b4FQQlXeOTnOS+QdZ6LTX zMNUKEWe2y86O7uTvYjndK7RWNTfUqT62e9atO4rfcD9jQaop2lQUs5kkUGbNUSN4RoM b7MKnyjMlvQfW7BjKNofiN+4y2CeVlTl7jnQ0ium5AJipg2xKYm16PWFP2e8WMlJSPNn hVxX/Gjl14/NlSRruBtBCII7Uo00zypuTcrAtZCu91CrzInSeino5Wh4R11nh+GI39aQ 6Ix1AVUcPUkkfTtPpvYXzs8yUQNcWqWjTcDNRYRTcH1LxJ/bx7RJ23NUvEBKqQrghhMD sNVg== X-Forwarded-Encrypted: i=1; AJvYcCVkMFjRZqgP3elbRd5EpxmI8+w1jlv3F6Ie+X6NcEzQLzgC5XG9hKbhK/pGXz1Yzz+7Sv71WrqtW8dqfLwTeAtjZPTF83A=@freebsd.org, AJvYcCWDE7qYXv0qQUTT2vZteqlrnZ+YTh+tiFl9abS64MolJlICqn1Gh5DOZ7p/Jjyn0vqjX0xLhbf1yweKN0QYZWb/qOay@freebsd.org X-Gm-Message-State: AOJu0YyTdAMs+gVqz/6Wzqy9imFhDfczfZbc1EpSy8UpFyE4LbYC8a1T vdrWElllo5NTM60scd6CzBiOaqgGsP6f/j3tLpSRd6l+D5nMcQbWQxl7wg== X-Google-Smtp-Source: AGHT+IGFfZNkTmASUtUCxFKSCkHcerGXtmMcAGHCedj5Lw4JslN8jnXPNMmYCIHrt1GTrw1P1ky5BA== X-Received: by 2002:a05:6808:1a21:b0:3e0:3981:194e with SMTP id 5614622812f47-3e039811e00mr11021296b6e.20.1726065947562; Wed, 11 Sep 2024 07:45:47 -0700 (PDT) Received: from nuc (192-0-220-237.cpe.teksavvy.com. [192.0.220.237]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-45822f957easm41744401cf.86.2024.09.11.07.45.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Sep 2024 07:45:46 -0700 (PDT) Date: Wed, 11 Sep 2024 10:45:44 -0400 From: Mark Johnston To: Kristof Provost Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Message-ID: References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4X3jzx5rCJz3y0F On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: > The branch main has been updated by kp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=f08247fd888e6f7db0ecf2aaa39377144ac40b4c > > commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c > Author: Kristof Provost > AuthorDate: 2024-09-10 20:15:31 +0000 > Commit: Kristof Provost > CommitDate: 2024-09-11 11:17:48 +0000 > > Assert that mbufs are writable if we write to them > > m_copyback() modifies the mbuf, so it must be a writable mbuf. This change still triggers a panic for me when running KTLS tests. I note that EXTPG mbufs always have M_RDONLY set, but I'm not quite sure why. I suspect such mbufs need special handling with respect to the new assertion. syzbot also triggered this panic: https://syzkaller.appspot.com/bug?extid=58c918369f9dc323409d > Reviewed by: glebius > Sponsored by: Rubicon Communications, LLC ("Netgate") > Differential Revision: https://reviews.freebsd.org/D46627 > --- > sys/kern/uipc_mbuf.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c > index f6ce9b5cc74b..3232af880925 100644 > --- a/sys/kern/uipc_mbuf.c > +++ b/sys/kern/uipc_mbuf.c > @@ -1280,6 +1280,8 @@ m_copyback(struct mbuf *m0, int off, int len, c_caddr_t cp) > > if (m0 == NULL) > return; > + > + MPASS(M_WRITABLE(m0)); > while (off > (mlen = m->m_len)) { > off -= mlen; > totlen += mlen; From nobody Wed Sep 11 15:02:11 2024 X-Original-To: dev-commits-src-main@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 4X3kLt32Ydz5Tfx6; Wed, 11 Sep 2024 15:02:14 +0000 (UTC) (envelope-from kp@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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3kLt2Yhlz41pD; Wed, 11 Sep 2024 15:02:14 +0000 (UTC) (envelope-from kp@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726066934; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CzAhauBw5pdfG0GQpOH8QZJORoWSa6P6b8651b0ZCqA=; b=hFdh525vNw0I5UOZ825Vi3TUsVS5VtkBIjWk6qvJLEJ7Tzyjqu4cqA8EZOa7bGCxj8WY1n jiLjugV+TLXVbm9uSQfoHbk3I+zcAQkjHFhrjZTlvhS46pDRnYa2rY0QnLlSyo5aqJmaJW 5XBwvKbuKgjfYVJ6IO+JHq+bGRK5iDck7fomXvXz+a3Aq5g3s6nupDD3y3aTROcVGgvhTn nkLy0G5nl+2DsNUtCvHjHivfahs26O9GmEIaHWDw12bgs9kqgFqYUv3ePVuPnc5ff2/02H vXZDSVxsji/JgvzApnu2gkA6B83W7qSCSusKwBfEfYhXRDkREhgYAbK5Rva2yw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726066934; a=rsa-sha256; cv=none; b=qhgyYuKTt/vjHXbl7dc7aIZ5MxZyXZhAru64T7deZAvZ0GaGcMO7EpCe9h2sLf6f/K/Abx i/4v287SNG2cY4u2o9g6YQk3j0IFsHCR4beU4Zl8BoEgwDAQku02KngOleL5XBTDK0eWuW MynsRCmHHRXp4cmpUULCYw4JT5rSw9c7fnOXr4Awm3NP7YYm94/RUa+ULHhZ/bhax0s2v+ HhjAyvacaGgEfcbxMutH0QCP3JVh3kkqajtygMgmZoTx22GDqnlliQw6yygSQLzFpM5JsJ TRRdYtAHqENzBZBVmVVnkY/cqz8A1/INNUUdoLbzoDwGEMzkeE4Y4Om2zldy8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726066934; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CzAhauBw5pdfG0GQpOH8QZJORoWSa6P6b8651b0ZCqA=; b=LEwojLwd5REupT4IVSq5e8QsAMmXrKKciqL9VAtH7a8MbyPIP4eAO2lqBI+eW93KiRw5sz FECpw9JUvyQIBlIpDThTTght5z+KIZymYHwhL+WjaeEd8Nqiw0Q1Hfc0LFXEsf3/uP2ch2 sfQUplnVDVeu+T1hOvB524kp2pH/w3oTqMhPAWlst+DfG5OaSsvMvw1DdDIIJJP2hQgKCO Fxl8dMGBXTcu6+Yf/B+NveIDYeX8cB18uLyH8Hrl0Fa7HdQih/rqu2WVYHq8Ox3vnkuGW0 tzsKKrFY+/SDqWXkx9O4w5gtloGh4MJ9nw4g2pQGt+RGOV2wR0hX75frBmR9cg== Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.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 (2048 bits) client-digest SHA256) (Client CN "mx1.codepro.be", Issuer "R11" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 4X3kLt1YRkz1Cx9; Wed, 11 Sep 2024 15:02:14 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: by venus.codepro.be (Postfix, authenticated sender kp) id 6C83A4FA93; Wed, 11 Sep 2024 17:02:12 +0200 (CEST) From: Kristof Provost To: Mark Johnston Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Date: Wed, 11 Sep 2024 17:02:11 +0200 X-Mailer: MailMate (1.14r5937) Message-ID: In-Reply-To: References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 11 Sep 2024, at 16:45, Mark Johnston wrote: > On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: >> The branch main has been updated by kp: >> >> URL: https://cgit.FreeBSD.org/src/commit/?id=3Df08247fd888e6f7db0ecf2a= aa39377144ac40b4c >> >> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c >> Author: Kristof Provost >> AuthorDate: 2024-09-10 20:15:31 +0000 >> Commit: Kristof Provost >> CommitDate: 2024-09-11 11:17:48 +0000 >> >> Assert that mbufs are writable if we write to them >> >> m_copyback() modifies the mbuf, so it must be a writable mbuf. > > This change still triggers a panic for me when running KTLS tests. I > note that EXTPG mbufs always have M_RDONLY set, but I'm not quite sure > why. I suspect such mbufs need special handling with respect to the ne= w > assertion. > > syzbot also triggered this panic: > https://syzkaller.appspot.com/bug?extid=3D58c918369f9dc323409d > Yeah, I saw that one before I went out for a bike ride. Clearly something is wrong. Either ktls is using read-only buffers or the= M_WRITABLE() macro isn=E2=80=99t quite smart enough to spot this specifi= c case. I=E2=80=99m not familiar enough with ktls to easily tell which. I=E2=80=99ll back this assertion change out for now, so we=E2=80=99re not= panicing test machines while we figure this out. Best regards, Kristof From nobody Wed Sep 11 15:06:07 2024 X-Original-To: dev-commits-src-main@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 4X3kRN0zDPz5Tg6Q; Wed, 11 Sep 2024 15:06: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3kRN0XM0z424d; Wed, 11 Sep 2024 15:06:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726067168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mdb8oCblqXtCGiQefBwvek0A8iy5nY+PDtDzPXXj2Ns=; b=WeK1bnZ5tjHlBeiZvjZkDxqyTV0qKlHJrPmfCPhcuAxWmWa1RxTCogfe/ktU5rq0guDpvj ZA3vzv2U1NWB0Ll6AypluzQAytjQT78aVYfCaKxgX8RFWKkZ22X38yshlscLK97EoKQIR7 SG5l8/50QopBIMQsSET4IMrP/rrPDy1i4AosPIaumhP3P2HAJjHJzU/PF1mSyblPi3RMnk iGZDBGHNB5Z6KZUDRSi4MKHq1CUMxHAlC2y6+Hpyd2huWnlkCVDQXsORQFpS3nqOkwW3Ct pQ6mru7LLGzy1FbO4YTHgtHWXGtYn28RCpAdq6ShoEUhSSsdojsHDyfQm9bwqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726067168; a=rsa-sha256; cv=none; b=w4sfF+wn+Yq5Mz2P/X/X+ZEztLFIqgGZKJ/1mAe0p7fciWCIkxSdkt9tgEl9IHVkoQosJQ N1IIZ3q8Dm012RDrkpzUlVV980BFccxRxsipPKC1PPajYtn2p1aTVzM+R+wNRHy2btKCk7 B07yHXiG3gzby1Xu+znULkj4wHc/+SZtauW9atotX6hXW0L1DiBVpEFxQ8ptEypisU6Bdd jaKPNqtb2i7lyYeKQLTN86YK7netEDswLw7Xfrz4KStyY93Bh01pKSpRoRa7/QD32ngar8 UabkVm2gezqTD2kANeUNKSqBx06EKmfG51qGx7kw8C+iNBCQAQxHWJgNFnWPkw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726067168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mdb8oCblqXtCGiQefBwvek0A8iy5nY+PDtDzPXXj2Ns=; b=UPvELUoEY8/CGqOaCLatsgX+XKEcqStoPae0DXHXQ5vt+fkkpwbnolSo5I9s6vNxK9Nyqx cjpalXF3VEUIk7sEeKttWJzci8YQl873PfSH1JLD9SHWBhu8ZGa43GBrezNgCxloy/ojX1 VomACtTkTYSdr9trt61xC0IRme5KdPjm6jTA1NsK/bIQxN1zLbFgJNwsyd+Js/3lJu3VSO k+xUrQ64maQmoQCS6sfew2aLr/vCCQxzX59x6+J56XSiw9ejdoaZCs39JeFid0qOS4sRH1 eLDGm+7P4bEEQowras558F3Dh9cI29r+8Qbs/1hbJsqWz1arKbAl5FV06hxLZQ== 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 4X3kRN01sHzbt2; Wed, 11 Sep 2024 15:06:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BF67Hx056063; Wed, 11 Sep 2024 15:06:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BF67kD056060; Wed, 11 Sep 2024 15:06:07 GMT (envelope-from git) Date: Wed, 11 Sep 2024 15:06:07 GMT Message-Id: <202409111506.48BF67kD056060@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: 299175f2e52e - main - Revert "Assert that mbufs are writable if we write to them" List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 299175f2e52e1a5cf495316d53a245bea00dfca7 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=299175f2e52e1a5cf495316d53a245bea00dfca7 commit 299175f2e52e1a5cf495316d53a245bea00dfca7 Author: Kristof Provost AuthorDate: 2024-09-11 15:04:35 +0000 Commit: Kristof Provost CommitDate: 2024-09-11 15:04:35 +0000 Revert "Assert that mbufs are writable if we write to them" This reverts commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c. This assertion is triggered by ktls_test:ktls_transmit_aes128_cbc_1_0_sha1_control. Remove the assertion until we fully understand why. Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/kern/uipc_mbuf.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index 3232af880925..f6ce9b5cc74b 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -1280,8 +1280,6 @@ m_copyback(struct mbuf *m0, int off, int len, c_caddr_t cp) if (m0 == NULL) return; - - MPASS(M_WRITABLE(m0)); while (off > (mlen = m->m_len)) { off -= mlen; totlen += mlen; From nobody Wed Sep 11 17:02:18 2024 X-Original-To: dev-commits-src-main@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 4X3n1Q1m2pz5TwD3; Wed, 11 Sep 2024 17:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3n1Q1FhNz4GQc; Wed, 11 Sep 2024 17:02:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726074138; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dEqnoxO/Jm+SOateiWMjiJTZJ3Gylwq++RZ424IvNkM=; b=q0qVN7H2oV6l7w5Ver+EODlJ191D4VixGDPKpw6m3wIQL53NElfF76RCKSZ9SYzSqoYILY jXZ7FF2FH05iiWCcJ8HnNv5qg0OwjFolKVzs2K+baGvZIF7/4GkmkO3ljxyd2KokCARyQc CBGPsZ2mdkGNqTvvz0kkuCqmwozk9MqDi1DiuOCShiNpNKLoqMTs5+b4LhTzmmFbbg3psM cVGnKtBs1KW8mjPgzxuI8xflVRwFtn6c868tr4Zphc9piCYV3IlsHL6v4U0kwBHWF6OVNf sRNgb4kLTxr6ktjqK9DRnr5FrEYjNbNPklhYYJ/kYNBUzuWNxzy2VSgcr4Ws1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726074138; a=rsa-sha256; cv=none; b=nfG0slLYPZxcjSUmFjuJpdqJlHi5KvIPUlr/9PYKy/VIXrdsQUPfgAkDUm06s3a0iqGOU6 fEl7kI/O/Ag/ntHV3xWi01wU7rjwxouFDKV1k30a+rKo3SrcY/7P3BWBaQVziu3vfUtm7r HEbT83sz2H4fx971oV9eONgiaj5/C/G8T9iX6wKGbLED42teIG80GLJ1MMCvdx1dEQsewv XSev42gwk1m6FQi8e0Ys65bONbNeOjdik251PnsJNLVqnHPSgpDi+/nvdQ/FxuXb3LCXZ6 A4ErfDgWAuIlVoEKxIqJAmUuaJduql72AvCzxnVtwfXnm0qedDoUQdsDGcouFw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726074138; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dEqnoxO/Jm+SOateiWMjiJTZJ3Gylwq++RZ424IvNkM=; b=vLtCWzMev1zYW1KxJwrQ89fhq0HmP+n/oNGKje0VtA0rIt7+8a/5lzib4rHYrCJveZ/ELE 0oenWXPc+Z+p7jDKrXnRecO9n1PO8lCzw6iArOsps3r5FvxB95KOraRWJo1OeC1zcvx6In WkGgPgvgJy9FH/5wF6Y+atJY62Aa3Dvm+Vdo23EgKeh5lP4/lmvlWFtD5Xo8FHWUMNfLC8 n/GS0eilovCxq4VaIViXtVaiiGyuZZ1EHkuk1HQbqOgSBdBnt01uQdMUoQC2ZgcxIbulT1 TUTL7ESisEFssF4awERONhCQXROiICB9afMWSvezcdD5MQPHVT7z+Z8LjMf9bw== 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 4X3n1Q0rnvzg9Z; Wed, 11 Sep 2024 17:02:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BH2ITD059526; Wed, 11 Sep 2024 17:02:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BH2IGO059523; Wed, 11 Sep 2024 17:02:18 GMT (envelope-from git) Date: Wed, 11 Sep 2024 17:02:18 GMT Message-Id: <202409111702.48BH2IGO059523@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: 796c6031cde6 - main - Merge commit 88433e640ddb from upstream OpenZFS (by Jessica Clarke) List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 796c6031cde6dfdd92b4d178792fc0534bf788c5 Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=796c6031cde6dfdd92b4d178792fc0534bf788c5 commit 796c6031cde6dfdd92b4d178792fc0534bf788c5 Author: Jessica Clarke AuthorDate: 2024-09-11 17:01:06 +0000 Commit: Jessica Clarke CommitDate: 2024-09-11 17:01:06 +0000 Merge commit 88433e640ddb from upstream OpenZFS (by Jessica Clarke) sys/types32.h: Remove struct timeval32 from libspl's header (#16491) macOS Sequoia's sys/sockio.h, as included by various bootstrap tools whilst building FreeBSD, has started to include net/if.h, which then includes sys/_types/_timeval32.h and provide a conflicting definition for struct timeval32. Since this type is entirely unused within OpenZFS, simply delete the type rather than adding in some kind of OS detection. This fixes building FreeBSD on macOS Sequoia (Beta). Signed-off-by: Jessica Clarke Reviewed-by: Rob Norris Reviewed-by: Alexander Motin Reviewed-by: Tony Hutter MFC after: 1 week --- sys/contrib/openzfs/lib/libspl/include/sys/types32.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sys/contrib/openzfs/lib/libspl/include/sys/types32.h b/sys/contrib/openzfs/lib/libspl/include/sys/types32.h index eadc67c7122a..d065ebed03b7 100644 --- a/sys/contrib/openzfs/lib/libspl/include/sys/types32.h +++ b/sys/contrib/openzfs/lib/libspl/include/sys/types32.h @@ -65,11 +65,6 @@ typedef int32_t ssize32_t; typedef int32_t time32_t; typedef int32_t clock32_t; -struct timeval32 { - time32_t tv_sec; /* seconds */ - int32_t tv_usec; /* and microseconds */ -}; - typedef struct timespec32 { time32_t tv_sec; /* seconds */ int32_t tv_nsec; /* and nanoseconds */ From nobody Wed Sep 11 19:22:52 2024 X-Original-To: dev-commits-src-main@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 4X3r7c3gVZz5VFZ7; Wed, 11 Sep 2024 19:22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3r7c35Rdz4WWg; Wed, 11 Sep 2024 19:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726082572; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yQnljp6n28o3NhD9E+i6MxXS2ZULpZSUVKHAXf1b5Tc=; b=o0qUy101Ovz6jGiOUToNusytlEVOBGXDVqwi5QF4iyOQezq4y5PSJzCyM49lTx6aQ97Pv3 dZkkt/otEFhPC8dVpetuhBg45VlJVjJFaQERjXU20gt4Mb0geagamcHCV27Li3KtjPrjQI Q8L389FRRK/Kzvvn/GUMfJ/DDQ5iV64dsbxuU1dbg0KccDKoOr5UmWhZAtHwKdrFVqv9Rz YClMB0glCw/tyq035umMdd/1egOxx6rj0vz6k+FKQlBRbKE1P2SHMh3IMgAV9gEYSbVkUa UpfTS4ej32jzCQoZ3T9hVkvt4HAKbgt5Mpan1UYEnOI45stu2MvYnTS5A0UOwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726082572; a=rsa-sha256; cv=none; b=qXkRaMw31iETHlIuocEB/dEQV5VHbHOsdtzIVTGAjBY3mU+ZRlmwXtH6mihJbsuJaYa4ZZ tkiVOWp5KSIyQanEA0hulMrGBylk1GXZMD2jtwDa07CqeY7fR/xJCv0H2Ha+iHfkRwulss CAS+gmiqNUXoL3vc0oMlk3+7hOXOSAR0jbxGsjrNmkXLO1JUepD8Y3MfWoUdMvIkt5mA91 EbVkIAWmqpzAzocjXOM8ly8S3dDcERKrUQZmYTEPrcJlfdJ5nHEQVu5Dz7dFuFg9+uWPZb j4GI2yVS3IrnEQeHCdgDy9o82aPhNWWDI1Or0fZIq2Rii/STsM3HKuzzo2XIpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726082572; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yQnljp6n28o3NhD9E+i6MxXS2ZULpZSUVKHAXf1b5Tc=; b=laFBPUst/ZSU/lLxOuFXUQfDE4aNgO36YE9QA8yCp457oos5gxxwIG6UH5eLjfWVi9nnpf DhSv5cmYPaGH4CLhyFbwCLqMezmF4RtMvNzgHov1egihmAiYNUWRVWQanyeAIdVqYP/U1Q UH7YLSjHFg7ekDaUtoCbFJMnsjJ/oaiVurxjRxZNV4d5Ds7cczURWqHfLz9PVjgb3rVbQa OZZOusNPmPh6VA/J0zZunIxDMq2w0bI2Pdxnm70zW5poUS1CZm8QUN1hOIK/KRkJodZc3Q bwV9FyC31U42h2w+QZBUfTkZ4tNNSD+ChX+HgTGmjx54Pxmhyo33OS4PdR4w2Q== 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 4X3r7c2jmWzkZg; Wed, 11 Sep 2024 19:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BJMqj8096443; Wed, 11 Sep 2024 19:22:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BJMqX2096440; Wed, 11 Sep 2024 19:22:52 GMT (envelope-from git) Date: Wed, 11 Sep 2024 19:22:52 GMT Message-Id: <202409111922.48BJMqX2096440@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: 171e57967b3e - main - cxgbe/t4_tom: Demote STALE L2 table entries to RESOLVING in uld_stop. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 171e57967b3e53f0fb48116df5003ce17163295c Auto-Submitted: auto-generated The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=171e57967b3e53f0fb48116df5003ce17163295c commit 171e57967b3e53f0fb48116df5003ce17163295c Author: Navdeep Parhar AuthorDate: 2024-09-11 07:11:13 +0000 Commit: Navdeep Parhar CommitDate: 2024-09-11 19:09:48 +0000 cxgbe/t4_tom: Demote STALE L2 table entries to RESOLVING in uld_stop. The STALE state means the L2T entry is valid in hardware but needs to be refreshed (ARP/NDP) in software. But stop/suspend wipes the hardware L2T and STALE entries need to be updated just like VALID entries to match actual hardware state. Fixes: c1c524852f62 cxgbe/t4_tom: Implement uld_stop and uld_restart for ULD_TOM. MFC after: 1 week Sponsored by: Chelsio Communications --- sys/dev/cxgbe/tom/t4_tom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/cxgbe/tom/t4_tom.c b/sys/dev/cxgbe/tom/t4_tom.c index 9b1dcf304196..356ac7edc134 100644 --- a/sys/dev/cxgbe/tom/t4_tom.c +++ b/sys/dev/cxgbe/tom/t4_tom.c @@ -2115,7 +2115,7 @@ stop_tom_l2t(struct adapter *sc) for (i = 0; i < d->l2t_size; i++) { e = &d->l2tab[i]; mtx_lock(&e->lock); - if (e->state == L2T_STATE_VALID) + if (e->state == L2T_STATE_VALID || e->state == L2T_STATE_STALE) e->state = L2T_STATE_RESOLVING; /* * stop_atids is going to clean up _all_ atids in use, including From nobody Wed Sep 11 19:22:53 2024 X-Original-To: dev-commits-src-main@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 4X3r7d4dGQz5VFZ8; Wed, 11 Sep 2024 19:22:53 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X3r7d3XGNz4Vst; Wed, 11 Sep 2024 19:22:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726082573; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uHgiCCql4OKGqwe75quHnpjXErOFK2Sz5OIKvKPA12s=; b=tOHXbWRQhrsv84IOK2JPfkQQzv2dZwd8w4as+uxg/O3p1IkJk/13z3C/oFYxZHMihBLgSH EqH+cuVp+0HEKyCkWrvfbvu1XTV+jPCzmuVkzZ4cyvfwZKeYu2YbULWIeAFB4dYLK+l/MO HYxuUpO9yPk+6IQrGNNjJAEj1hz/G5ZmS94WjOWYv6n1AHcNzMRBD1DutxmQhY4khjAhBO OupHsqhvWi106yleCVOLOoCQ3WMykwmC4tmA2KIiEEw9V2RNFxIugg0uxUOdthuuwZ7/wj gT9MUmwMaqlOjpSFlj2h21YF3athtuMUjVjGPG+spfNSEL1pOepQZODRp8C8dg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726082573; a=rsa-sha256; cv=none; b=rLXHT5Mb+IavDF+u2hNBdEdeO6g5CnBxgcQ5rF8+rr69HQpaw/S28YjttzF9RKOolRn6J6 HO+LMKZugLfwF99F71Lp834xINOQBD5uzLX2q1ccVO9xfxJ8AEIuuTdtlnzjpvMGXjHzSA JC5DpKG9wGwdvDIvWdX80cChuw2OLGmdmbu6QM7azBmetaodw6zksFw196IdPXe9Exm5P5 gbJMgqWGlyruUbywJnxUmE6N3xXvrevVHMHpqe4ECk5H38vZmysudz4kWb+1wMYEG+mS+4 Hw/Ui+BYPRK0RdY9bFUyv0p2cbmW59tv+2nApoZnfOqHgkiT/rjOMt04l4P/nw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726082573; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uHgiCCql4OKGqwe75quHnpjXErOFK2Sz5OIKvKPA12s=; b=GaLcOXx+txBy75hPKk0WSM4uKFl1eJ1as1m3NauMLZWVTx2Ny0+B6YgT8SaPvz71hh+JcX MNAhW19bhAq1hHgh34g6Kz8skhDsMHj3mMFIl4mI5+XunT/ue+5R2hyb/OMWiSCa1PM9R3 Xxxxk9Xy36wMJ+4hngq2+RPk74HZxJtatBQlM2XMKwKPcVRXnfAXTPcShbNDzDM0HFvbCU dZy/pqGehhwx3hoQlLbT6bTNVBYXXTfdZdYFIL8dkvc8/Oame8PApo5Jj9wXx4m6Rxcq2Y Hf/Fmtkpm5zSB5KLKLe1duw49RJVT6GXz/YS6sjazqsIsqo/4epgGPTxkFmtbA== 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 4X3r7d36zzzk5k; Wed, 11 Sep 2024 19:22:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48BJMrcR096512; Wed, 11 Sep 2024 19:22:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48BJMreH096509; Wed, 11 Sep 2024 19:22:53 GMT (envelope-from git) Date: Wed, 11 Sep 2024 19:22:53 GMT Message-Id: <202409111922.48BJMreH096509@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: d82cb5c608ae - main - cxgbe(4): Make sure that the tracing filters are usable after restart. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d82cb5c608ae9aaced4cb459ca511e62c64dbf74 Auto-Submitted: auto-generated The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=d82cb5c608ae9aaced4cb459ca511e62c64dbf74 commit d82cb5c608ae9aaced4cb459ca511e62c64dbf74 Author: Navdeep Parhar AuthorDate: 2024-09-11 08:01:38 +0000 Commit: Navdeep Parhar CommitDate: 2024-09-11 19:12:32 +0000 cxgbe(4): Make sure that the tracing filters are usable after restart. The destination queue for tracing filters is destroyed during stop or suspend and the software state needs to reflect this. A new destination queue will be setup when the adapter resumes operation. MFC after: 1 week Sponsored by: Chelsio Communications --- sys/dev/cxgbe/t4_main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 540edbb568c0..4412e1ab95fb 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -2091,6 +2091,11 @@ stop_lld(struct adapter *sc) TXQ_UNLOCK(wrq); quiesce_wrq(wrq); } + + if (pi->flags & HAS_TRACEQ) { + pi->flags &= ~HAS_TRACEQ; + sc->traceq = -1; + } } if (sc->flags & FULL_INIT_DONE) { /* Firmware event queue */ From nobody Wed Sep 11 20:56:17 2024 X-Original-To: dev-commits-src-main@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 4X3tCs55D4z5VxZX; Wed, 11 Sep 2024 20:56:41 +0000 (UTC) (envelope-from gallatin@fastmail.com) Received: from fhigh5-smtp.messagingengine.com (fhigh5-smtp.messagingengine.com [103.168.172.156]) (using TLSv1.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 mx1.freebsd.org (Postfix) with ESMTPS id 4X3tCs3HHcz4hMH; Wed, 11 Sep 2024 20:56:41 +0000 (UTC) (envelope-from gallatin@fastmail.com) Authentication-Results: mx1.freebsd.org; none Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfhigh.phl.internal (Postfix) with ESMTP id 600EA11401E5; Wed, 11 Sep 2024 16:56:40 -0400 (EDT) Received: from phl-imap-13 ([10.202.2.103]) by phl-compute-10.internal (MEProxy); Wed, 11 Sep 2024 16:56:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1726088200; x=1726174600; bh=VfWGOW1snH njqdAGWuQlpKnVFQ40u69Y+EHB5G51Jdw=; b=ns66kmYkyuy8CoHyYb3a3DsvOp hEpu/uoBexVszsz9e1+i+cVlovaynNz1C1HAc9TRKtIoH/GapQhcMufoblZpYTtC YqPaStBiLUjGmm3unxTzB+18s+Cn0mdfTwIcl8pyAKUqY94L1r2r3GMGnyKDS4Yh gbUxf+IsQnsLc9XnKhAQZgOERv1jzL3FxXRjPDtxIM7qegagqwNV5jsF9ltLQoMV Zx+3PfunJjpSSL/FdcViNnFwIEtXsUGqHN1KGepkW+N674ElGIhKKyj0sUN2sFt3 dQZgcJGOZ0JpIZO1g59CTKT5hlgCLNWy+syQuHhAwKADqhUixrYg8Wq05u5g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1726088200; x=1726174600; bh=VfWGOW1snHnjqdAGWuQlpKnVFQ40 u69Y+EHB5G51Jdw=; b=Ev8mNYbBVUdENV2FOBqV/bpRjQ963pl70APSOHym5+sQ r8QPHNM69LgzfRKWl+ga8JaibdQ1QX2zNgtyfVhF8XXuz4ARSDKdNLVIx7GGp/y/ 5ebFkAwq/xyG9vhhdjDXG0zmQsBg1Ggqn926XSG1bwFiaolP96ttuXoWDe8cbr4R JaAMEP/5k2QvG6KWFrzYxGXavJZIcILwUFJ0vmsAUk7ApGTCf7fYS0akbloCzGPi sF+ZrX2YmXAK49szsxykVGCDCDF0qt3ESH8M39No17lGVk4qWKhGNvvNckZn4nxu BsK4lGPitxCYMaXw+k9eLZkI43s8XZMvy0CnOeenJg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudejuddgudehgecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefoggffhffvvefkjghfufgtsegrtderreertdej necuhfhrohhmpedfffhrvgifucfirghllhgrthhinhdfuceoghgrlhhlrghtihhnsehfrg hsthhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepgfdtkedtgedugeetkeduvdev ueeuhfeihedtieffteeftdeilefhueefudefgfelnecuffhomhgrihhnpehfrhgvvggssh gurdhorhhgpdhshiiikhgrlhhlvghrrdgrphhpshhpohhtrdgtohhmnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepghgrlhhlrghtihhnsehfrg hsthhmrghilhdrtghomhdpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhht pdhrtghpthhtohepuggvvhdqtghomhhmihhtshdqshhrtgdqrghllhesfhhrvggvsghsug drohhrghdprhgtphhtthhopeguvghvqdgtohhmmhhithhsqdhsrhgtqdhmrghinhesfhhr vggvsghsugdrohhrghdprhgtphhtthhopehjhhgssehfrhgvvggsshgurdhorhhgpdhrtg hpthhtohepkhhpsehfrhgvvggsshgurdhorhhgpdhrtghpthhtohepmhgrrhhkjhesfhhr vggvsghsugdrohhrghdprhgtphhtthhopehsrhgtqdgtohhmmhhithhtvghrshesfhhrvg gvsghsugdrohhrgh X-ME-Proxy: Feedback-ID: i2f014658:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 202101F000B4; Wed, 11 Sep 2024 16:56:40 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Date: Wed, 11 Sep 2024 16:56:17 -0400 From: "Drew Gallatin" To: "Kristof Provost" , "Mark Johnston" , "John Baldwin" Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Message-Id: In-Reply-To: References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Content-Type: multipart/alternative; boundary=c716c615bd2f40de8ba52bcfbdeae1f0 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:209242, ipnet:103.168.172.0/24, country:US] X-Rspamd-Queue-Id: 4X3tCs3HHcz4hMH --c716c615bd2f40de8ba52bcfbdeae1f0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable M_EXTPGS mbufs are marked read-only because they refer to external data.= The original crypto code, (before kTLS was converted to OCF), used to= just build an iovec using PHYS_TO_DMAP() on the page array. I think th= is case was missed during the conversion to OCF. I'm not sure what the best thing to do is, as they should be read only, = except this one specific case.... I'd be tempted to just nerf the KASSER= T for EXTPGS. On Wed, Sep 11, 2024, at 11:02 AM, Kristof Provost wrote: > On 11 Sep 2024, at 16:45, Mark Johnston wrote: > > On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: > >> The branch main has been updated by kp: > >> > >> URL: https://cgit.FreeBSD.org/src/commit/?id=3Df08247fd888e6f7db0ec= f2aaa39377144ac40b4c > >> > >> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c > >> Author: Kristof Provost > >> AuthorDate: 2024-09-10 20:15:31 +0000 > >> Commit: Kristof Provost > >> CommitDate: 2024-09-11 11:17:48 +0000 > >> > >> Assert that mbufs are writable if we write to them > >> > >> m_copyback() modifies the mbuf, so it must be a writable mbuf. > > > > This change still triggers a panic for me when running KTLS tests. I > > note that EXTPG mbufs always have M_RDONLY set, but I'm not quite su= re > > why. I suspect such mbufs need special handling with respect to the= new > > assertion. > > > > syzbot also triggered this panic: > > https://syzkaller.appspot.com/bug?extid=3D58c918369f9dc323409d > > > Yeah, I saw that one before I went out for a bike ride. >=20 > Clearly something is wrong. Either ktls is using read-only buffers or = the M_WRITABLE() macro isn=E2=80=99t quite smart enough to spot this spe= cific case. >=20 > I=E2=80=99m not familiar enough with ktls to easily tell which. >=20 > I=E2=80=99ll back this assertion change out for now, so we=E2=80=99re = not panicing test machines while we figure this out. >=20 > Best regards, > Kristof >=20 --c716c615bd2f40de8ba52bcfbdeae1f0 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
M_EXTPGS mbufs = are marked read-only because they refer to external data.   Th= e original crypto code, (before kTLS was converted to OCF), used to just= build an iovec using PHYS_TO_DMAP() on the page array.  I think th= is case was missed during the conversion to OCF.

I'm not sure what the best thing to do is, as they should be read = only, except this one specific case.... I'd be tempted to just nerf the = KASSERT for EXTPGS.

On Wed, Sep 11, 2024, a= t 11:02 AM, Kristof Provost wrote:
On 11 Sep 2024, at 16:45, Mark Johnston wrote:
> On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Prov= ost wrote:
>> The branch main has been updated by kp= :
>>
>>
>> co= mmit f08247fd888e6f7db0ecf2aaa39377144ac40b4c
>> Aut= hor:     Kristof Provost <kp@FreeBSD.org>
>> AuthorDate: 202= 4-09-10 20:15:31 +0000
>> Commit:   &= nbsp; Kristof Provost <kp@FreeBSD.o= rg>
>> CommitDate: 2024-09-11 11:17:48 +0000<= br>
>>
>>     As= sert that mbufs are writable if we write to them
>><= br>
>>     m_copyback() modifies the= mbuf, so it must be a writable mbuf.
>
&= gt; This change still triggers a panic for me when running KTLS tests.&n= bsp; I
> note that EXTPG mbufs always have M_RDONLY set= , but I'm not quite sure
> why.  I suspect such mb= ufs need special handling with respect to the new
> ass= ertion.
>
> syzbot also triggered this= panic:
>
Yeah, I s= aw that one before I went out for a bike ride.

<= div>Clearly something is wrong. Either ktls is using read-only buffers o= r the M_WRITABLE() macro isn=E2=80=99t quite smart enough to spot this s= pecific case.

I=E2=80=99m not familiar enou= gh with ktls to easily tell which.

I=E2=80=99= ll back this assertion change out for now, so we=E2=80=99re not panicing= test machines while we figure this out.

Be= st regards,
Kristof

<= div>
--c716c615bd2f40de8ba52bcfbdeae1f0-- From nobody Thu Sep 12 07:08:30 2024 X-Original-To: dev-commits-src-main@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 4X47np4vj3z5V4rD; Thu, 12 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X47np4KjHz4QTn; Thu, 12 Sep 2024 07:08:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726124910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gGBv2b7nPk/JFRwIQsXm3R7JK85wUIVSG3h8VZ97igk=; b=Re2Bwb0qoLCFlg6smehIn1uSaghVFV3YvA1nW51Hj7EIvBwKeG1+3nVn/TdAG6dSCb79+1 akvHE6BSYZhin6z6qlg3av/ywb8Gtbog0Z9VCez12qENPrlI2m5IIVdJ8E4ValOL9wB+z1 uVi/5H8ZCVY4e8I+XUDcBNfNpcI0Nro8Gc7+WQtK+Ud21qawMKNXLynlFQfEpaPsibnrcy I+Ac6EN/GUjnzaZt6mM0cKvz3vf5EMvsf+D0FsSwv/Q+1gkVOfdKB97fbmCY2N+e6Pkxzl tYO1mau1F/Ye0AsANuRRUbQaKhZt0ytVuSdbhL6PIc9cwcunr3i08PoN5xgOUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726124910; a=rsa-sha256; cv=none; b=nAkfc5vXFDtgkUFZFJiYIRyBSE6BEAOTz5PnVHpWoVq8wa2eibYS/eA17hNeym9iEw/J6A cLLErXU+/agyVtpLSndgItIr76/Iw+UixWyHDkc0rT4+123OgFiZLnPQB8Q54o3t2e2xOP +EQgrLXJ/WlP8bj3iDEMGLQsPU7GYTCfcKqFRmJvHF2nyFEDBAf7Uz4h18Fw2F7cieUWoO 8DkmZrAJ4NarwruF/ld4lHD6X2e6F7m0KC3/sttNEQJ9B/GIlfWchCsrlIP2bADHc4KrA4 qxSX7adiMnuUaophK4M+FGu0VZr1cxRaAACghjaO0hv/VsYNBc8HOk8iVCU4Bw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726124910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gGBv2b7nPk/JFRwIQsXm3R7JK85wUIVSG3h8VZ97igk=; b=BcPH44jBHQGQmOnRvcN3e3TeGa/c84hMSGJLAw1yuHfKaKJJoYAm/ULYIk1bynKv6EVh7k /Rkc7d7Ri13UHFihbbHUZsZ4DN1oFg/La0os9Ij2IvEXZVKLP26TfHozxQ/5qKQM3bJqBo fnvpSrYyWOaw96wvhkHtafHLA4IIbRkEe4C2/iwbG/LNIlxE5Cj3SoTdeRcMkeWrRrDF9V 2hB0uV2pnUM274v/agfpV4EIIPgax/zM/fjnhuZcFUgbNv5xPP21k7ldxLItJuYhpg2znG hQ4jfVAqGuFbug8SMXbKjOFlijgLib8fu/FgDQxhM5N2B2+xJD6EObmpowplHw== 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 4X47np3xC0z152w; Thu, 12 Sep 2024 07:08:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48C78UA8089022; Thu, 12 Sep 2024 07:08:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48C78Uwf089019; Thu, 12 Sep 2024 07:08:30 GMT (envelope-from git) Date: Thu, 12 Sep 2024 07:08:30 GMT Message-Id: <202409120708.48C78Uwf089019@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 7899f917b1c0 - main - flua: move modules source into the main source directory List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7899f917b1c0ea178f1d2be0cfb452086d079d23 Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=7899f917b1c0ea178f1d2be0cfb452086d079d23 commit 7899f917b1c0ea178f1d2be0cfb452086d079d23 Author: Baptiste Daroussin AuthorDate: 2024-09-09 15:17:27 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-12 07:03:44 +0000 flua: move modules source into the main source directory Follow the path of what is done with bsnmp, build the modules along with the main binary, this allows to build the modules at a moment where all needed libraries are already built and available in the linker path instead of having to declare all the libraries which a flua module will be linked to in _prebuild_libs. Discused with: markj Reviewed by: markj, jrtc27, kevans, imp Accepted by: kevans, imp Differential Revision: https://reviews.freebsd.org/D46610 --- Makefile.inc1 | 4 +--- lib/Makefile | 5 ----- lib/flua/Makefile | 6 ------ lib/flua/libfreebsd/sys/linker/Makefile | 12 ------------ lib/flua/libhash/Makefile | 14 -------------- libexec/flua/Makefile | 5 +++++ libexec/flua/Makefile.inc | 5 +++++ {lib => libexec}/flua/libfreebsd/Makefile | 0 libexec/flua/libfreebsd/Makefile.inc | 1 + {lib => libexec}/flua/libfreebsd/sys/Makefile | 0 libexec/flua/libfreebsd/sys/Makefile.inc | 1 + libexec/flua/libfreebsd/sys/linker/Makefile | 7 +++++++ .../flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua | 0 {lib => libexec}/flua/libfreebsd/sys/linker/linker.c | 0 libexec/flua/libhash/Makefile | 9 +++++++++ {lib => libexec}/flua/libhash/hash.3lua | 0 {lib => libexec}/flua/libhash/lhash.c | 0 {lib => libexec}/flua/libhash/lhash.h | 0 {lib => libexec}/flua/libjail/Makefile | 5 ----- {lib => libexec}/flua/libjail/jail.3lua | 0 {lib => libexec}/flua/libjail/lua_jail.c | 0 {lib => libexec}/flua/libucl/Makefile | 3 --- stand/defs.mk | 2 +- 23 files changed, 30 insertions(+), 49 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 57141a482433..991e9973fb04 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -3236,8 +3236,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \ lib/libutil lib/libpjdlog ${_lib_libypclnt} lib/libz lib/msun \ lib/libxo \ ${_secure_lib_libcrypto} ${_secure_lib_libssl} \ - ${_lib_libldns} ${_secure_lib_libssh} \ - lib/libucl + ${_lib_libldns} ${_secure_lib_libssh} .if ${MK_DIALOG} != "no" _prebuild_libs+= gnu/lib/libdialog @@ -3292,7 +3291,6 @@ _generic_libs+= ${_DIR} lib/libtacplus__L: lib/libmd__L lib/libpam/libpam__L lib/libxo__L: lib/libutil__L -lib/libucl__L: lib/msun__L .if ${MK_CDDL} != "no" _cddl_lib_libumem= cddl/lib/libumem diff --git a/lib/Makefile b/lib/Makefile index 8860bfeb1770..221eac74ee26 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -150,11 +150,6 @@ SUBDIR_DEPEND_libpcap= ofed .endif SUBDIR_DEPEND_nss_tacplus= libtacplus -.if !defined(COMPAT_LIBCOMPAT) -SUBDIR+= flua -SUBDIR_DEPEND_flua= libjail libucl -.endif - # NB: keep these sorted by MK_* knobs SUBDIR.${MK_BEARSSL}+= libbearssl libsecureboot diff --git a/lib/flua/Makefile b/lib/flua/Makefile deleted file mode 100644 index d88e76f61062..000000000000 --- a/lib/flua/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -SUBDIR+= libfreebsd -SUBDIR+= libhash -SUBDIR+= libjail -SUBDIR+= libucl - -.include diff --git a/lib/flua/libfreebsd/sys/linker/Makefile b/lib/flua/libfreebsd/sys/linker/Makefile deleted file mode 100644 index 572b5949d2a1..000000000000 --- a/lib/flua/libfreebsd/sys/linker/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -SHLIB_NAME= linker.so -SHLIBDIR= ${LIBDIR}/flua/freebsd/sys - -SRCS+= linker.c - -CFLAGS+= \ - -I${SRCTOP}/contrib/lua/src \ - -I${SRCTOP}/lib/liblua \ - -MAN= freebsd.sys.linker.3lua - -.include diff --git a/lib/flua/libhash/Makefile b/lib/flua/libhash/Makefile deleted file mode 100644 index f166ff90a392..000000000000 --- a/lib/flua/libhash/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -SHLIB_NAME= hash.so -SHLIBDIR= ${LIBDIR}/flua - -SRCS+= lhash.c - -CFLAGS+= \ - -I${SRCTOP}/contrib/lua/src \ - -I${SRCTOP}/lib/liblua \ - -LIBADD+= md - -MAN= hash.3lua - -.include diff --git a/libexec/flua/Makefile b/libexec/flua/Makefile index c8206b94769d..08ea9c002d61 100644 --- a/libexec/flua/Makefile +++ b/libexec/flua/Makefile @@ -1,5 +1,10 @@ .include +SUBDIR+= libfreebsd +SUBDIR+= libhash +SUBDIR+= libjail +SUBDIR+= libucl + LUASRC?= ${SRCTOP}/contrib/lua/src .PATH: ${LUASRC} diff --git a/libexec/flua/Makefile.inc b/libexec/flua/Makefile.inc new file mode 100644 index 000000000000..34505d54d7df --- /dev/null +++ b/libexec/flua/Makefile.inc @@ -0,0 +1,5 @@ +SHLIBDIR?= ${LIBDIR}/flua + +CFLAGS+= \ + -I${SRCTOP}/contrib/lua/src \ + -I${SRCTOP}/lib/liblua diff --git a/lib/flua/libfreebsd/Makefile b/libexec/flua/libfreebsd/Makefile similarity index 100% rename from lib/flua/libfreebsd/Makefile rename to libexec/flua/libfreebsd/Makefile diff --git a/libexec/flua/libfreebsd/Makefile.inc b/libexec/flua/libfreebsd/Makefile.inc new file mode 100644 index 000000000000..01b5f23410c8 --- /dev/null +++ b/libexec/flua/libfreebsd/Makefile.inc @@ -0,0 +1 @@ +.include "../Makefile.inc" diff --git a/lib/flua/libfreebsd/sys/Makefile b/libexec/flua/libfreebsd/sys/Makefile similarity index 100% rename from lib/flua/libfreebsd/sys/Makefile rename to libexec/flua/libfreebsd/sys/Makefile diff --git a/libexec/flua/libfreebsd/sys/Makefile.inc b/libexec/flua/libfreebsd/sys/Makefile.inc new file mode 100644 index 000000000000..01b5f23410c8 --- /dev/null +++ b/libexec/flua/libfreebsd/sys/Makefile.inc @@ -0,0 +1 @@ +.include "../Makefile.inc" diff --git a/libexec/flua/libfreebsd/sys/linker/Makefile b/libexec/flua/libfreebsd/sys/linker/Makefile new file mode 100644 index 000000000000..1adf547b503c --- /dev/null +++ b/libexec/flua/libfreebsd/sys/linker/Makefile @@ -0,0 +1,7 @@ +SHLIB_NAME= linker.so + +SRCS+= linker.c + +MAN= freebsd.sys.linker.3lua + +.include diff --git a/lib/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua b/libexec/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua similarity index 100% rename from lib/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua rename to libexec/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua diff --git a/lib/flua/libfreebsd/sys/linker/linker.c b/libexec/flua/libfreebsd/sys/linker/linker.c similarity index 100% rename from lib/flua/libfreebsd/sys/linker/linker.c rename to libexec/flua/libfreebsd/sys/linker/linker.c diff --git a/libexec/flua/libhash/Makefile b/libexec/flua/libhash/Makefile new file mode 100644 index 000000000000..b7c8d7ee9948 --- /dev/null +++ b/libexec/flua/libhash/Makefile @@ -0,0 +1,9 @@ +SHLIB_NAME= hash.so + +SRCS+= lhash.c + +LIBADD+= md + +MAN= hash.3lua + +.include diff --git a/lib/flua/libhash/hash.3lua b/libexec/flua/libhash/hash.3lua similarity index 100% rename from lib/flua/libhash/hash.3lua rename to libexec/flua/libhash/hash.3lua diff --git a/lib/flua/libhash/lhash.c b/libexec/flua/libhash/lhash.c similarity index 100% rename from lib/flua/libhash/lhash.c rename to libexec/flua/libhash/lhash.c diff --git a/lib/flua/libhash/lhash.h b/libexec/flua/libhash/lhash.h similarity index 100% rename from lib/flua/libhash/lhash.h rename to libexec/flua/libhash/lhash.h diff --git a/lib/flua/libjail/Makefile b/libexec/flua/libjail/Makefile similarity index 50% rename from lib/flua/libjail/Makefile rename to libexec/flua/libjail/Makefile index 2b9b6c777cbb..20cd9f5f1429 100644 --- a/lib/flua/libjail/Makefile +++ b/libexec/flua/libjail/Makefile @@ -1,12 +1,7 @@ SHLIB_NAME= jail.so -SHLIBDIR= ${LIBDIR}/flua SRCS+= lua_jail.c -CFLAGS+= \ - -I${SRCTOP}/contrib/lua/src \ - -I${SRCTOP}/lib/liblua \ - LIBADD+= jail MAN= jail.3lua diff --git a/lib/flua/libjail/jail.3lua b/libexec/flua/libjail/jail.3lua similarity index 100% rename from lib/flua/libjail/jail.3lua rename to libexec/flua/libjail/jail.3lua diff --git a/lib/flua/libjail/lua_jail.c b/libexec/flua/libjail/lua_jail.c similarity index 100% rename from lib/flua/libjail/lua_jail.c rename to libexec/flua/libjail/lua_jail.c diff --git a/lib/flua/libucl/Makefile b/libexec/flua/libucl/Makefile similarity index 72% rename from lib/flua/libucl/Makefile rename to libexec/flua/libucl/Makefile index 7d2681b85fcb..a88c8bda6bfc 100644 --- a/lib/flua/libucl/Makefile +++ b/libexec/flua/libucl/Makefile @@ -1,5 +1,4 @@ SHLIB_NAME= ucl.so -SHLIBDIR= ${LIBDIR}/flua WARNS= 2 @@ -7,8 +6,6 @@ UCLSRC?= ${SRCTOP}/contrib/libucl .PATH: ${UCLSRC}/lua SRCS+= lua_ucl.c CFLAGS+= \ - -I${SRCTOP}/contrib/lua/src \ - -I${SRCTOP}/lib/liblua \ -I${UCLSRC}/include \ -I${UCLSRC}/src \ -I${UCLSRC}/uthash diff --git a/stand/defs.mk b/stand/defs.mk index 452ba060c504..bd19c8d8e125 100644 --- a/stand/defs.mk +++ b/stand/defs.mk @@ -64,7 +64,7 @@ BINDIR?= /boot # LUAPATH is where we search for and install lua scripts. LUAPATH?= /boot/lua FLUASRC?= ${SRCTOP}/libexec/flua -FLUALIB?= ${SRCTOP}/lib/flua +FLUALIB?= ${SRCTOP}/libexec/flua LIBSA= ${BOOTOBJ}/libsa/libsa.a .if ${MACHINE} == "i386" From nobody Thu Sep 12 08:37:10 2024 X-Original-To: dev-commits-src-main@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 4X49m648Mkz5VKTw; Thu, 12 Sep 2024 08:37: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X49m63Fgdz4dNl; Thu, 12 Sep 2024 08:37:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726130230; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g+a0LQ0s6K7FEjmDQ9BH3iZ/FcsW0IY5VhLp165zjjk=; b=gkmAipelvmrjVfXi/G6ej7CL1R6DiJb7G/bFUeWgJz2LvwMGb024PsdX80p0XUJzd+dyoi D6TODsVncg34FxeBvBivB4SPCS/6xz7Wwm0zXITqWHz/K8cWPcju6celcqBrSFFs8gH4IB 1ki2efvNW4SVmGCIx7C2XgLJE8EMIipzitXrK/7XzXnVk8AXuwvyA01CPOkT/H1MCuyi4F QSz1snHnrdOhXfPxQPvWy1veSzFs0nRfFJmvkThJATlY1x2gdbeUjFcT5ekKdDDw3nWyz+ yDm7Uy9pJ1pPto5fgTnLKi9qtV+OiI62+96m631v4Xmc5/YuI5UHvHHOiHho/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726130230; a=rsa-sha256; cv=none; b=OHAhhgPZFixxX32yh+pyEU34Py7FO57Reg58pCCqF/6S3kHn8g1ex0dhPuGDRl2HTCl2x0 Icw+5ZcmQGC0KQQxVORpA/aZ5dch08DC5QUtMuW2X5hXH+aIppaSPFnyUuG+p/s9V5QTVB zGa9X2s+EEHWeGEsBOnodXztXxNe5SLfoWf18jXnXJ/JELRgrRaoeAB8mFLaj50ORNqDdB fFpCZZcyzbUw/Gk5FR285zXZvFp9sd1e9JWf0O9I4CdIfOlh2PiXjqMChudg2S+noFqNFj O8NbJgohTivq8TNrPFkxEDj7oGgvpk+JeVCUzPZZ4XQ3qOm4JaudfWfWzRZ+5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726130230; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g+a0LQ0s6K7FEjmDQ9BH3iZ/FcsW0IY5VhLp165zjjk=; b=AIRrfd2CAdszFWFvBU3aWnGolp327zc7D6KbO1kNL7Mg1Yxd73GhIIHF1OFV2WqLuhmB6A kJBaBS+QWv0rOSV2/UaUSJsef0q/XSJHrtiFb5YL7gMLY+b7JAc/byXsK+5uWJoTM1UZEq dKGjco/q/1gtxtG/c3RUI6v4tJYvKiWnB+AJeCziLx+pnigt3s8Tr68TkIeDn3F6tgXm2b pNkLqazmXelDojhw5Vjg6tWhQo0JC0fY3lCtcV4sUTsKL78xS9/B/2LUFw03qb1/fHdF3Y NeSmfO6AP+PeTBj7nivuNocMZqKBdAK/ICruhrYFtrKCH/nt9DzEBQ+7Pquq5w== 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 4X49m62nLQz17JH; Thu, 12 Sep 2024 08:37:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48C8bAKY040916; Thu, 12 Sep 2024 08:37:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48C8bAKC040913; Thu, 12 Sep 2024 08:37:10 GMT (envelope-from git) Date: Thu, 12 Sep 2024 08:37:10 GMT Message-Id: <202409120837.48C8bAKC040913@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: 3acf7e0da487 - main - if_ovpn: avoid LOR between ovpn and UDP locks List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 3acf7e0da487c08de39d04ac069ae73fb8a488c0 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=3acf7e0da487c08de39d04ac069ae73fb8a488c0 commit 3acf7e0da487c08de39d04ac069ae73fb8a488c0 Author: Kristof Provost AuthorDate: 2024-09-09 12:14:03 +0000 Commit: Kristof Provost CommitDate: 2024-09-12 07:44:19 +0000 if_ovpn: avoid LOR between ovpn and UDP locks When we install the tunneling function we had the ovpn lock, and then took the UDP lock. During normal data flow we are called with the UDP lock held and then take the ovpn lock. This naturally produces a lock order reversal warning. Avoid this by releasing the ovpn lock before installing the tunnel function. This is safe, in that installing the tunnel function does not fail (other than with EBUSY, which would mean another thread has already installed the function). On cleanup the problem is more difficult, in that we cannot reasonably release the ovpn lock before we can remove the tunneling function callback. Solve this by delaying the removal of the tunnel callback until the ovpn_softc is cleaned up. It's still safe for ovpn_udp_input() to be caled when all peers are removed. That will only increment counters (which are still allocated), discover there are no peers and then pass the message on to userspace, if any userspace users of the socket remain. We ensure that the socket object remains valid by holding a reference, which we release when we remove the ovpn_softc. This removes the need for per-peer reference counting on the socket, so remove that. Reviewed by: zlei Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision:: https://reviews.freebsd.org/D46616 --- sys/net/if_ovpn.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/sys/net/if_ovpn.c b/sys/net/if_ovpn.c index 349fa5b7cd13..e2c1dc7f7fc5 100644 --- a/sys/net/if_ovpn.c +++ b/sys/net/if_ovpn.c @@ -390,15 +390,11 @@ ovpn_rele_so(struct ovpn_softc *sc) has_peers = ovpn_has_peers(sc); - /* Only remove the tunnel function if we're releasing the socket for - * the last peer. */ - if (! has_peers) - (void)udp_set_kernel_tunneling(sc->so, NULL, NULL, NULL); - - sorele(sc->so); - - if (! has_peers) - sc->so = NULL; + if (! has_peers) { + MPASS(sc->peercount == 0); + } else { + MPASS(sc->peercount > 0); + } } static void @@ -628,26 +624,23 @@ ovpn_new_peer(struct ifnet *ifp, const nvlist_t *nvl) if (sc->so != NULL && so != sc->so) goto error_locked; - if (sc->so == NULL) + if (sc->so == NULL) { sc->so = so; + /* + * Maintain one extra ref so the socket doesn't go away until + * we're destroying the ifp. + */ + soref(sc->so); + } /* Insert the peer into the list. */ RB_INSERT(ovpn_kpeers, &sc->peers, peer); sc->peercount++; - soref(sc->so); - - ret = udp_set_kernel_tunneling(sc->so, ovpn_udp_input, NULL, sc); - if (ret == EBUSY) { - /* Fine, another peer already set the input function. */ - ret = 0; - } - if (ret != 0) { - RB_REMOVE(ovpn_kpeers, &sc->peers, peer); - sc->peercount--; - goto error_locked; - } OVPN_WUNLOCK(sc); + ret = udp_set_kernel_tunneling(sc->so, ovpn_udp_input, NULL, sc); + MPASS(ret == 0 || ret == EBUSY); + ret = 0; goto done; @@ -2493,12 +2486,21 @@ static void ovpn_clone_destroy_cb(struct epoch_context *ctx) { struct ovpn_softc *sc; + int ret __diagused; sc = __containerof(ctx, struct ovpn_softc, epoch_ctx); MPASS(sc->peercount == 0); MPASS(RB_EMPTY(&sc->peers)); + if (sc->so != NULL) { + CURVNET_SET(sc->ifp->if_vnet); + ret = udp_set_kernel_tunneling(sc->so, NULL, NULL, NULL); + MPASS(ret == 0); + sorele(sc->so); + CURVNET_RESTORE(); + } + COUNTER_ARRAY_FREE(sc->counters, OVPN_COUNTER_SIZE); if_free(sc->ifp); From nobody Thu Sep 12 09:03:05 2024 X-Original-To: dev-commits-src-main@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 4X4BL44zMyz5Vt2c; Thu, 12 Sep 2024 09:03:08 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4BL444cnz4hqP; Thu, 12 Sep 2024 09:03:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726131788; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a0d7Iyo2Vp5WVJIqhWAkIV4PSnp5RVHaCrmXn6+Exs0=; b=cfEisya6fBu7ivO3kZGgaUc1b+1FRi6Bq+ZmkFwfUmDCXEDFEYNmdNXApRpVYf51wMdJ02 gIcZAUWJ9ZsHcdg3fj/R9hyb8NQ3deHqpCUGTCqjpwm7i0XSqI2UnEmc6nyvYEMonXrG0f j+PRZXvRSdRXxYS/PC2Lp2TlAc0Xq/l/eeNqi0vnqFno8UIENc1z/Q4aGoBo/N7NlNVNzg bZlhgVIY5HWG3aVQfHU71nDR9azZU87YB67kQRDLwf7xBtRQNRvukTfE8ltibDZxqUqera lYNMqusMOzBg3b+mWT7r8H4PKBnPY8X/dJ3KsfA4OvpTuoRInHU30iBgh4NmLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726131788; a=rsa-sha256; cv=none; b=fbohFeoF7qV/D70O4mXKF1ZOGn4QmD7Zt+dc+ATmlc46FYK0Xfwhwhr5EVCxqU3vqeUaLo 39po2+nhT6DHci310QSZ+4zkFAW+FDLQX48NULLu7lG4ozYHr1+SeLEwonvqdqVNZSddo9 1aM0wuAQSghuIF4pIOdlebvYH8jbmqUGwiYQJqexea0SBd2XAc/J/iQK5d3YowevNv9gqW S7F8KklfM+bNSUAUNMe4OvEHg6lt6wnPG3YpRtlKBkU8Mcntl1RMSm80B7ST3pnf6JXLiM n7cU8Fft7M5uFcVG7AUS7HDN2acaIJXQZd5941VczXWNtWWc7XgyMWf5b95UKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726131788; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a0d7Iyo2Vp5WVJIqhWAkIV4PSnp5RVHaCrmXn6+Exs0=; b=jEFrqM96zOnYq0uALhAIM4IEIYQ23eG8JTTgHMPnFE3lkz0VRYijsJObTClaHxJITKUGF2 osrZUA+iBhh+fHm0pokgWpCXnEYfCb3GCUmqsK4ZW4MDXoIqy8lsZFVy0OzsfTEc4xxmuo OS4J2MMqRbnqdguPejHySxJuomURHQOjlqa47Yq8EZhwo+ZpfMlSJlJhDXK2X+gfvvXyMe r3N5s6Ly5I//ofW/0F8GAnwOZ5UnnQnEnEMGaMDoGbJAdosr+T+LcObC1pgmtZ3QIELqh4 Y9cU6wA2ZEt5DgamvE34S19eP8AmzKykVe52Z3kOSSre2GpmKca2zqOikewK9g== Received: from [10.252.223.137] (unknown [131.111.5.201]) (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 4X4BL367F1zMT3; Thu, 12 Sep 2024 09:03:07 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <2b1955e2-fbf1-41cb-b256-a9a257b16a83@FreeBSD.org> Date: Thu, 12 Sep 2024 10:03:05 +0100 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Content-Language: en-US To: Drew Gallatin , Kristof Provost , Mark Johnston Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit I think part of the motivation for marking M_EXTPG as read-only is that you can't "write" to m_data via mtod() or the like. That said, M_EXTPG aren't really read-only. It depends on the backing store. M_EXTPG were first merged into FreeBSD prior to KTLS to support sendfile, and in that case, they should be M_RDONLY because they alias pages from the file's VM object. However, M_EXTPG mbufs allocated via functions like m_uiotombuf_nomap should not be M_RDONLY. I think this originated in the original import of KTLS which doesn't push setting M_RDONLY out to the callers of mb_alloc_extpgs, and a few other places that hardcode M_RDONLY with M_EXTPG (_mb_unmapped_to_ext should preserve M_RDONLY from the original mbuf instead of forcing M_RDONLY). I can take a stab at a patch but won't have time to really test it until after Euro. On 9/11/24 16:56, Drew Gallatin wrote: > M_EXTPGS mbufs are marked read-only because they refer to external data. The original crypto code, (before kTLS was converted to OCF), used to just build an iovec using PHYS_TO_DMAP() on the page array. I think this case was missed during the conversion to OCF. > > I'm not sure what the best thing to do is, as they should be read only, except this one specific case.... I'd be tempted to just nerf the KASSERT for EXTPGS. > > On Wed, Sep 11, 2024, at 11:02 AM, Kristof Provost wrote: >> On 11 Sep 2024, at 16:45, Mark Johnston wrote: >>> On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: >>>> The branch main has been updated by kp: >>>> >>>> URL: https://cgit.FreeBSD.org/src/commit/?id=f08247fd888e6f7db0ecf2aaa39377144ac40b4c >>>> >>>> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c >>>> Author: Kristof Provost >>>> AuthorDate: 2024-09-10 20:15:31 +0000 >>>> Commit: Kristof Provost >>>> CommitDate: 2024-09-11 11:17:48 +0000 >>>> >>>> Assert that mbufs are writable if we write to them >>>> >>>> m_copyback() modifies the mbuf, so it must be a writable mbuf. >>> >>> This change still triggers a panic for me when running KTLS tests. I >>> note that EXTPG mbufs always have M_RDONLY set, but I'm not quite sure >>> why. I suspect such mbufs need special handling with respect to the new >>> assertion. >>> >>> syzbot also triggered this panic: >>> https://syzkaller.appspot.com/bug?extid=58c918369f9dc323409d >>> >> Yeah, I saw that one before I went out for a bike ride. >> >> Clearly something is wrong. Either ktls is using read-only buffers or the M_WRITABLE() macro isn’t quite smart enough to spot this specific case. >> >> I’m not familiar enough with ktls to easily tell which. >> >> I’ll back this assertion change out for now, so we’re not panicing test machines while we figure this out. >> >> Best regards, >> Kristof >> > -- John Baldwin From nobody Thu Sep 12 09:40:26 2024 X-Original-To: dev-commits-src-main@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 4X4C975v34z5Vytp; Thu, 12 Sep 2024 09:40:27 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4C975RxCz4mJH; Thu, 12 Sep 2024 09:40:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726134027; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=94I1LuW0beh9DG/KCey7Y+9ELYSr0YPe8V6krnElkx8=; b=U8mNf3RAfdpbxSLYBnSt+U0WWjZxKBSg4M7Q3mbiDOQxdzFUdVmeZ7hNyuGVg+FCOE9UKY GABIC1cZbYWIa2lczGziMxfksA83itQ3yi9krM9Jfffe+93etA+WCqHkpLZDJkeb0SLE8b seOUUd1C0YDy2nsTlySTeujzYgU+Q8Q+Qd8PiWelVWXIR+tDM4y7PN5zmBaIFqWP4DlpMZ +7pAJoBf68IYP/t+vcnngv1Fgcw2PX2wRLRltTKpH+lR8ixd6PCuqJvMX8OZy70IeHOdY3 d7UMQeToV1TssJawhluhsUr+hzRxU4DQV1nWuC7XYY+YwOWQZXDhBfcWR5ZjHA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726134027; a=rsa-sha256; cv=none; b=Q4pulqX46GURRoauEGCyuUKu9ZIZsLh6dA+u1+o37zWGYXD/V7gL+wVkNIgyqLN+UZLTtN IyUHMY0ngp2wjRjCMnK/j0TRsqvhKnTvJd27TdvPO1r4X0dvIapkcRDpkK2rSe0DkiiGxi WeRSRwQL9XhPkQG4WrTWbxuYr6YqCiLrA0DfqT2swdaeIVSIOYNyAHBDgxLQAW0C1iQ2U4 Y96lUpXQPr5yiK5kAayIS22GKIRJ+lpVKTidFO1m+g+5cmW8JWdkhU2z0H7GPk+HpkVGHA VKr0D6xLGBqQMtEphzVbGsKkomIKXoe35+r88CkSj+wZXABhZbROgcii0Z0yvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726134027; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=94I1LuW0beh9DG/KCey7Y+9ELYSr0YPe8V6krnElkx8=; b=visNxVnn/2wAbLqv8uB8sgmNsmZQeCUH2RCHs9atYkWJXl+WJo6mA8LiW0ziCcX/4ZKE6r ZWxouyFYY3VDg7um6oRenxQPL2L3ciRtRc+HGmvJUYm35aoeJ9kk330kPSBPJNIwhi7FKZ V5TvU5GATL1SUBv56B/jAI5yhm0nTpqa809z/A5HozIQRIxIa0REFe5wU4o8B4cBeVp0Zm QxiIktbFgIG/S7sfMhONnPX8aJL04cwXfAUIErB4CgCjKaHbDukNuE6bURB11Oubs8diSq oVdbwI9iwpZr8wolu1IP9rcYcMtcYNDQ52gheXdk1/u6IQPlZi1dr6Cc1Mfcvw== Received: from [10.252.223.137] (unknown [131.111.5.201]) (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 4X4C970qCczLcH; Thu, 12 Sep 2024 09:40:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <1f61b6de-0fe2-4343-b4ad-f0866785a4bc@FreeBSD.org> Date: Thu, 12 Sep 2024 10:40:26 +0100 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Content-Language: en-US From: John Baldwin To: Drew Gallatin , Kristof Provost , Mark Johnston Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> <2b1955e2-fbf1-41cb-b256-a9a257b16a83@FreeBSD.org> In-Reply-To: <2b1955e2-fbf1-41cb-b256-a9a257b16a83@FreeBSD.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 9/12/24 05:03, John Baldwin wrote: > I think part of the motivation for marking M_EXTPG as read-only is that you can't "write" > to m_data via mtod() or the like. That said, M_EXTPG aren't really read-only. It > depends on the backing store. M_EXTPG were first merged into FreeBSD prior to KTLS to > support sendfile, and in that case, they should be M_RDONLY because they alias pages > from the file's VM object. However, M_EXTPG mbufs allocated via functions like > m_uiotombuf_nomap should not be M_RDONLY. I think this originated in the original > import of KTLS which doesn't push setting M_RDONLY out to the callers of mb_alloc_extpgs, > and a few other places that hardcode M_RDONLY with M_EXTPG (_mb_unmapped_to_ext should > preserve M_RDONLY from the original mbuf instead of forcing M_RDONLY). > > I can take a stab at a patch but won't have time to really test it until after Euro. Patch available below. Compile tested but not run-tested: https://github.com/freebsd/freebsd-src/compare/main...bsdjhb:freebsd:m_extpg_rdonly > On 9/11/24 16:56, Drew Gallatin wrote: >> M_EXTPGS mbufs are marked read-only because they refer to external data. The original crypto code, (before kTLS was converted to OCF), used to just build an iovec using PHYS_TO_DMAP() on the page array. I think this case was missed during the conversion to OCF. >> >> I'm not sure what the best thing to do is, as they should be read only, except this one specific case.... I'd be tempted to just nerf the KASSERT for EXTPGS. >> >> On Wed, Sep 11, 2024, at 11:02 AM, Kristof Provost wrote: >>> On 11 Sep 2024, at 16:45, Mark Johnston wrote: >>>> On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: >>>>> The branch main has been updated by kp: >>>>> >>>>> URL: https://cgit.FreeBSD.org/src/commit/?id=f08247fd888e6f7db0ecf2aaa39377144ac40b4c >>>>> >>>>> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c >>>>> Author: Kristof Provost >>>>> AuthorDate: 2024-09-10 20:15:31 +0000 >>>>> Commit: Kristof Provost >>>>> CommitDate: 2024-09-11 11:17:48 +0000 >>>>> >>>>> Assert that mbufs are writable if we write to them >>>>> >>>>> m_copyback() modifies the mbuf, so it must be a writable mbuf. >>>> >>>> This change still triggers a panic for me when running KTLS tests. I >>>> note that EXTPG mbufs always have M_RDONLY set, but I'm not quite sure >>>> why. I suspect such mbufs need special handling with respect to the new >>>> assertion. >>>> >>>> syzbot also triggered this panic: >>>> https://syzkaller.appspot.com/bug?extid=58c918369f9dc323409d >>>> >>> Yeah, I saw that one before I went out for a bike ride. >>> >>> Clearly something is wrong. Either ktls is using read-only buffers or the M_WRITABLE() macro isn’t quite smart enough to spot this specific case. >>> >>> I’m not familiar enough with ktls to easily tell which. >>> >>> I’ll back this assertion change out for now, so we’re not panicing test machines while we figure this out. >>> >>> Best regards, >>> Kristof >>> >> > -- John Baldwin From nobody Thu Sep 12 11:37:01 2024 X-Original-To: dev-commits-src-main@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 4X4Fld3vfhz5WHJZ; Thu, 12 Sep 2024 11: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Fld34VDz50n0; Thu, 12 Sep 2024 11: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=1726141021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LiFfKfZ1pqDUHeFm9m69zdAorDy8OOmKsZv6PTQhLrw=; b=vTLV6pzUKXmaWN3wihccq5R0V+9ON3Y8Um1EW7iiZv9PbcXV7kTSCBu7S1Qep+vmJQEk6w UpyoWFARzAIKEnDjGanv4f+1TRiTEUozZJR+tYT05QJC/x4cZWoR0cR2LY3AkWOupsDOS7 SuOCUVsrD+Y9LMMGz/XaoVgEAw4tFl0u3Km0UALX3EOt/xhIlc0KOyi6s9MSiyY7WvXoUm EC/h4SeRxg8S3GbICdNLsPtLOKHY/2ECy/RIP1XxwiOCJEwu2ciaiG6n8slXcd1/FyokMa jR5XQtxQPjGqEYplGB3D2t18+yPA1tvF+mMJ3LM1kquGieqMzR208WKXuax8HQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726141021; a=rsa-sha256; cv=none; b=JfwqAubjPbkBe1n8Gk9OEiLfdFx2RVFG41H1G0FC0HCKdyHE4bOavxxvkG7U4M70lD5xiO /hGhuX9cZ0o+zEevdGhi2Kocl683tEVM4IYibajhy+EcNs+RMA2jYbVT4RRYqK5Mb89Fm4 Ll0Nf6+l+P9ZZIybqs3MyMNFEaI3VEIuBylpGSBcDj8P0oxHHTWRGd0eEY4w8WsmG4PWWi YbIiSfu3c4apIIq9qcZ987aSCluOvqVxgm7PCpqRjQ4qfKJrOKnmIaaO8B1BGnezzWm0jn 85rwIiSY9gERCiulF4++TnEt9X1oovMmJwBnQqGj/rYI8IALxXHKbDRPaw2fyg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726141021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LiFfKfZ1pqDUHeFm9m69zdAorDy8OOmKsZv6PTQhLrw=; b=cagkgNO09QBNH4jfyDTcciQSa3IGmXBpQeUTVoo8hrIX+U7WFD/B54Y/lEM/bhlxNRw1lC AwSjn5Okf/MeTxfv38M4niBcF84Ip5XhGiSgIhu6yxGBrBblk4/ZzzVnIZDzNZR1otYQd4 epkOqXjmqHEu3ogSAPSZIJraNXZOZhjSyID5LHeD0nXODnwodclQaFBeRF3g49XYwnhmCV u6hi17VaAmHSDAqHUjWmi3yQApBlUTQeI1/6eXbNwqLZ2m/jyZPSeKDJJbfNlfjuQ05UDm XzyYaoQKTtLLxjSjqjOvrPQY/pdfqLZhfPRyZO2EcFzaPKm7GMW4gklN+YHSuA== 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 4X4Fld2gd7z1CJq; Thu, 12 Sep 2024 11:37:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CBb1r8046939; Thu, 12 Sep 2024 11:37:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CBb1Bf046936; Thu, 12 Sep 2024 11:37:01 GMT (envelope-from git) Date: Thu, 12 Sep 2024 11:37:01 GMT Message-Id: <202409121137.48CBb1Bf046936@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: 7ca260df8cea - main - proccontrol: use a table for modes List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 7ca260df8cea7dea41e7a16362a3c5c45e86249c Auto-Submitted: auto-generated The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=7ca260df8cea7dea41e7a16362a3c5c45e86249c commit 7ca260df8cea7dea41e7a16362a3c5c45e86249c Author: Brooks Davis AuthorDate: 2024-09-12 11:35:04 +0000 Commit: Brooks Davis CommitDate: 2024-09-12 11:35:04 +0000 proccontrol: use a table for modes Add a central table of modes and loop over it rather than spelling out 10 essentialy identical strcmp if statemnts. Use the stable to generate usage as well reducing the number of ifdefs. Disallow multiple -m options. Previouly multiple were allowed, but only the last one was used and there was no indication this happened. Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D46426 --- usr.bin/proccontrol/proccontrol.c | 79 ++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 43 deletions(-) diff --git a/usr.bin/proccontrol/proccontrol.c b/usr.bin/proccontrol/proccontrol.c index be78e14fd75e..32c4c9e7f1a0 100644 --- a/usr.bin/proccontrol/proccontrol.c +++ b/usr.bin/proccontrol/proccontrol.c @@ -26,7 +26,7 @@ * SUCH DAMAGE. */ -#include +#include #include #include #include @@ -35,9 +35,9 @@ #include #include -enum { - MODE_ASLR, +enum mode { MODE_INVALID, + MODE_ASLR, MODE_TRACE, MODE_TRAPCAP, MODE_PROTMAX, @@ -53,6 +53,26 @@ enum { #endif }; +static const struct { + enum mode mode; + const char *name; +} modes[] = { + { MODE_ASLR, "aslr" }, + { MODE_TRACE, "trace" }, + { MODE_TRAPCAP, "trapcap" }, + { MODE_PROTMAX, "protmax" }, + { MODE_STACKGAP, "stackgap" }, + { MODE_NO_NEW_PRIVS, "nonewprivs" }, + { MODE_WXMAP, "wxmap" }, +#ifdef PROC_KPTI_CTL + { MODE_KPTI, "kpti" }, +#endif +#ifdef PROC_LA_CTL + { MODE_LA57, "la57" }, + { MODE_LA48, "la48" }, +#endif +}; + static pid_t str2pid(const char *str) { @@ -67,17 +87,6 @@ str2pid(const char *str) return (res); } -#ifdef PROC_KPTI_CTL -#define KPTI_USAGE "|kpti" -#else -#define KPTI_USAGE -#endif -#ifdef PROC_LA_CTL -#define LA_USAGE "|la48|la57" -#else -#define LA_USAGE -#endif - static void __dead2 usage(void) { @@ -85,10 +94,10 @@ usage(void) fprintf(stderr, " proccontrol -m mode -s (enable|disable) " "(-p pid | command)\n"); fprintf(stderr, " proccontrol -m mode -q [-p pid]\n"); - fprintf(stderr, "Modes: " - "aslr|protmax|trace|trapcap|stackgap|nonewprivs|wxmap" - KPTI_USAGE LA_USAGE - "\n"); + fprintf(stderr, "Modes: "); + for (size_t i = 0; i < nitems(modes); i++) + fprintf(stderr, "%s%s", i == 0 ? "" : "|", modes[i].name); + fprintf(stderr, "\n"); exit(1); } @@ -106,31 +115,15 @@ main(int argc, char *argv[]) while ((ch = getopt(argc, argv, "m:qs:p:")) != -1) { switch (ch) { case 'm': - if (strcmp(optarg, "aslr") == 0) - mode = MODE_ASLR; - else if (strcmp(optarg, "protmax") == 0) - mode = MODE_PROTMAX; - else if (strcmp(optarg, "trace") == 0) - mode = MODE_TRACE; - else if (strcmp(optarg, "trapcap") == 0) - mode = MODE_TRAPCAP; - else if (strcmp(optarg, "stackgap") == 0) - mode = MODE_STACKGAP; - else if (strcmp(optarg, "nonewprivs") == 0) - mode = MODE_NO_NEW_PRIVS; - else if (strcmp(optarg, "wxmap") == 0) - mode = MODE_WXMAP; -#ifdef PROC_KPTI_CTL - else if (strcmp(optarg, "kpti") == 0) - mode = MODE_KPTI; -#endif -#ifdef PROC_LA_CTL - else if (strcmp(optarg, "la57") == 0) - mode = MODE_LA57; - else if (strcmp(optarg, "la48") == 0) - mode = MODE_LA48; -#endif - else + if (mode != MODE_INVALID) + usage(); + for (size_t i = 0; i < nitems(modes); i++) { + if (strcmp(optarg, modes[i].name) == 0) { + mode = modes[i].mode; + break; + } + } + if (mode == MODE_INVALID) usage(); break; case 's': From nobody Thu Sep 12 11:37:02 2024 X-Original-To: dev-commits-src-main@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 4X4Flf4HbJz5WH82; Thu, 12 Sep 2024 11:37: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Flf3lbsz50n1; Thu, 12 Sep 2024 11:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726141022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pB7rBO5Zyx2DT6yTXZlfgnuzu1pfwJ7Ibsp2oAt2KPY=; b=UIL7EKZQOzWV76WtX9HW4PvOiOwnIqZ0zcqm+KCJkzW6p0jXn3G/piEJ3Hfr4Ko0NYm0E9 3Ay+sbE2Qi0Em6jd/BwV6QsXdCNVK0szzZLRfLVYgOUkHxGEAbmrklmrY6AaN5GWA/wHiz 4BWxp6a5CEEhbpCGUXTAVoM8UPM0dYs3vhKKpL6jDMCs3VHzkx9BMG9Lc73Y9jbWc6L9kS wB1/mucchJ4bytumO6VGICFI6y6Wp21JGh/p6+ssHMvAGSZzgFoNub134Xw8mbN9D25Qmu m0lIYv/W5ZbZRQl7STbBu7F5Kg/YwscPH8fEzPwe78iuF1bypnuLLacq3whKiQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726141022; a=rsa-sha256; cv=none; b=VHeWHlYjuSEgowGxADosxXd2wcCmDsdHfFeznzNGSaqjkYe88IYa9GT+gunqfCutGNyKZH aW25NZFKbULyIF6sYXUgwz/Vt6CGXcoBeS/a6dmLjqwZVgo1cWEIkv77drwUm8Zyw8OFji JRR4Ij8K7Eo4nBVICDjZMxNMymN6KxU9w1gZK25EF4NLS0djMkCaGJLOovH4hl7CIyH4WJ /pmTzfov6Voe3ZlXV8DEOzAe2eyLRyul/dOtlWEpYp/1bgBqThund8aIEBAfK7wFImg5U7 FF2+ZJKQppf6q/wYcJj+UPngevc5tY9p0+olxfD+Q+p8kKTmesT72llEqqQKoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726141022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pB7rBO5Zyx2DT6yTXZlfgnuzu1pfwJ7Ibsp2oAt2KPY=; b=pHoAHH80zvyGBF+mQB73/oVGgalA1sSBzzrElgldPHP2Xsl3Sf9OrYVPtGicasQWA8UBQa /UgsW30EZhXNMxnZehman6be+GPY4vVNJkhHT41GdoBon9lDtyn4ujuUaBqTbJc40q5bVC aAeu39n1eriVOQnpWmdNGKkjurgwy1K7L2ozPfhKmQ4Prld2/Yc9VLyTMSmoiWEfioa0lM Vm/9QyuHuHgtZrDOJ+jFW/53xmsz7dd+6BGUnMKk1QlSANr43bJ2e67wC7t7JZytxH6YHc 9/CKOx2PZRZtCVgN4/kqPTE577eeY1kog1v855FYtgx8T/qxqph0nuQ3ml4x7g== 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 4X4Flf3M69z1CJr; Thu, 12 Sep 2024 11:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CBb2HJ046985; Thu, 12 Sep 2024 11:37:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CBb2kI046982; Thu, 12 Sep 2024 11:37:02 GMT (envelope-from git) Date: Thu, 12 Sep 2024 11:37:02 GMT Message-Id: <202409121137.48CBb2kI046982@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: 5b9273750200 - main - kcmp(2): fix whitespace in symbol list List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 5b9273750200a5e96a953c81316e82656fbee260 Auto-Submitted: auto-generated The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=5b9273750200a5e96a953c81316e82656fbee260 commit 5b9273750200a5e96a953c81316e82656fbee260 Author: Brooks Davis AuthorDate: 2024-09-12 11:35:04 +0000 Commit: Brooks Davis CommitDate: 2024-09-12 11:35:04 +0000 kcmp(2): fix whitespace in symbol list Fixes: 211bdd601ee51 Add kcmp(2) userspace bits --- lib/libsys/Symbol.sys.map | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libsys/Symbol.sys.map b/lib/libsys/Symbol.sys.map index 464086985cfc..7f70e03a5c25 100644 --- a/lib/libsys/Symbol.sys.map +++ b/lib/libsys/Symbol.sys.map @@ -379,7 +379,7 @@ FBSD_1.7 { }; FBSD_1.8 { - kcmp; + kcmp; }; FBSDprivate_1.0 { From nobody Thu Sep 12 11:41:09 2024 X-Original-To: dev-commits-src-main@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 4X4FrS2ybBz5WHv3; Thu, 12 Sep 2024 11:41:12 +0000 (UTC) (envelope-from kp@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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4FrS2W2Pz51py; Thu, 12 Sep 2024 11:41:12 +0000 (UTC) (envelope-from kp@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726141272; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yLBl1hn3aKupCMuuiqTj+dnD2aLaWMnZpcixT7HJrwE=; b=wkRAX/Jdw4Tf561GSTNP0jDCkbY6tLPeS7NodvqrCYMOE8Emj5FPYEHmp3IT6Ek/DaauYP /fi2BVWhPAFYWaTXLygqvKxJu9NRl69x/GMfrX5W7pzc5Kz+yOFm9+MvP4wCxbE7Qr+//1 TiURIJXpBVdYOpIAqNEGDHef38pRI2WtLOed6Hlr++xHK90Wgu2dDw82zlMu7Q+WZ9RuWc XBlEtHm77E7BtG5PTY25/QFO8F0hnamALcc7E/AVwUEr9/0TJSP/9h6QQJunS4HMjsC2Uf S489sBvWRYomDu6SB2OSL8Tya9H6TNYzQt3n+Vv0vB7trhnU37+iZluLXi9Xkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726141272; a=rsa-sha256; cv=none; b=MD1/bgYifO6DicC7JjGUGrqiF7CZRSy1uHniH9HdWdwJo48VhjWD8yCAp5G1F2/Y99Spgc EyR3IlB9+UrZ8Dos10OF7S5PVWgE+EkqrlrDpeKvQHcfecC+ZhHmkcg/6iq3dEFlcvyREg qEAd06OcdZCW6NZ8kNlFlPmREfeUMI8xsdjBge2n1bbPPGnFIQ4+FvOEB7gfjdVqIhV/rp FVsLPCjmoTwnIMcYQukFQGOvJZHzPrqC2QTYDFPtU4R+uKUxHHtJBOrvifQPd0cFxgbG2N gbYIvENUfTpxFhTf5wUNknF3hBQl0IOzT+1e8Pb8C+BcLRoRif5gERSvQXQSng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726141272; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yLBl1hn3aKupCMuuiqTj+dnD2aLaWMnZpcixT7HJrwE=; b=QwdrTv+vHVJ+tp6GMp5DcMvwAsTnh9PSmU/XoI0cDsYPSkVxVT39u9KXzoMyiJ95WuBiQ/ jnzBwpuVk7H47ZLYSKvHqUzQRXWEehNxW7uU2ORz1AGZ61pwkDQE0opnfYEh7eO7bGd9bt +JbH1uyGoqc+uSSVfA8rpJ9EA7gO7JSBwUwssAOr8RsnGgW7JGqC0DDw0s7fabzfAYLGaH 4F+xoXKDuWIU+gf9P8qmv2xRFN2oJCFT9v1B5NeIYuGUQIMyJOzaeVHW5f/PKTi9I/aMkQ z35xMNCO/SglUECQOPOwxXxpeGF4W6wM6RxV4I8zeG9vut6+5qQBxpI1rQvOiQ== Received: from venus.codepro.be (venus.codepro.be [5.9.86.228]) (using TLSv1.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 (2048 bits) client-digest SHA256) (Client CN "mx1.codepro.be", Issuer "R11" (verified OK)) (Authenticated sender: kp) by smtp.freebsd.org (Postfix) with ESMTPSA id 4X4FrS1Vw7zNr1; Thu, 12 Sep 2024 11:41:12 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: by venus.codepro.be (Postfix, authenticated sender kp) id AE06251018; Thu, 12 Sep 2024 13:41:10 +0200 (CEST) From: Kristof Provost To: John Baldwin Cc: Drew Gallatin , Mark Johnston , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Date: Thu, 12 Sep 2024 13:41:09 +0200 X-Mailer: MailMate (1.14r5937) Message-ID: <61045FAC-D1C5-42AE-BE1B-757AC2222554@FreeBSD.org> In-Reply-To: <1f61b6de-0fe2-4343-b4ad-f0866785a4bc@FreeBSD.org> References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> <2b1955e2-fbf1-41cb-b256-a9a257b16a83@FreeBSD.org> <1f61b6de-0fe2-4343-b4ad-f0866785a4bc@FreeBSD.org> List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 12 Sep 2024, at 11:40, John Baldwin wrote: > On 9/12/24 05:03, John Baldwin wrote: >> I think part of the motivation for marking M_EXTPG as read-only is tha= t you can't "write" >> to m_data via mtod() or the like. That said, M_EXTPG aren't really re= ad-only. It >> depends on the backing store. M_EXTPG were first merged into FreeBSD = prior to KTLS to >> support sendfile, and in that case, they should be M_RDONLY because th= ey alias pages >> from the file's VM object. However, M_EXTPG mbufs allocated via funct= ions like >> m_uiotombuf_nomap should not be M_RDONLY. I think this originated in = the original >> import of KTLS which doesn't push setting M_RDONLY out to the callers = of mb_alloc_extpgs, >> and a few other places that hardcode M_RDONLY with M_EXTPG (_mb_unmapp= ed_to_ext should >> preserve M_RDONLY from the original mbuf instead of forcing M_RDONLY).= >> >> I can take a stab at a patch but won't have time to really test it unt= il after Euro. > > Patch available below. Compile tested but not run-tested: > > https://github.com/freebsd/freebsd-src/compare/main...bsdjhb:freebsd:m_= extpg_rdonly > I=E2=80=99m still seeing a panic (with the extra assertions from https://= reviews.freebsd.org/D46572 in opencrypto) in ktls_test:ktls_receive_aes12= 8_cbc_1_1_sha1_long. It=E2=80=99s unhappy because there=E2=80=99s an mbuf with m_flags =3D 0x2= 001 (so M_EXT | M_PROTO1) that has an ext_cnt of 2. It=E2=80=99s not urgent, I=E2=80=99m mostly interested in these assertion= s to catch bugs like 280036 sooner. I=E2=80=99ll also be at euro, I can g= ive you access to a box that trivially produces this panic then. Best regards, Kristof From nobody Thu Sep 12 12:46:49 2024 X-Original-To: dev-commits-src-main@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 4X4HJ94tg8z5WRcC; Thu, 12 Sep 2024 12:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4HJ946mjz58JQ; Thu, 12 Sep 2024 12:46:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726145209; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ozd8FgDln/ECCoeGr3omSuf1UvYYa0ANHo6ydloN2eE=; b=Rth2QWP8PT6oS31LIliQ55EZejWDnuS+0kW/fLoexFFAjFEGFXziA5dZGWqvT25VQwj2ev CGAfg9+o0DrAAUIhXHq5zJpBjZ17ZuBYdTYZeD6iqbzazmB4hOjuY4SxWfEGNMB7lRYCyj R97p8hm1iGGDw13eXVL/0gVjHZVldMzZsvvqz5pQhHir+H/WTXhIxYSWfn9pJyrOdT9Ey/ cA9IaoZ4FZa7ADwTo+oXlIFfXduqgy2gRbO6WsrAjD+sOF5CNLyheCMYDhFav3bLSx8pVE z+H8heuIHUWVJET1sMkWj03FckAxZXwwlP4loBLZ+OqHbw0PNS2COOH1ERW/Eg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726145209; a=rsa-sha256; cv=none; b=qGL8S3bL0r9sREYJFwied0jsQXYsmB5BR2WP8ExpM4qqD5iPZK9KEs/cmtRLRgi5XfoLFH v7AcL3Q329vVZwNp2NvJsGeD8MMInZ0lOwymPrRCNtZjK0qZjx+1J5PSjFqv0jI9m9Cq/Y y6ihuuGwWXVZNHZkDWrSEGJHoQf4B4le15arWaMdnrFRPhrZEoMAjyRWW8aoUfQCSJTYJM Pzu3QT25dejbIGMaFH1BDxmuAJwKqDDYxPjW3x9rsNTz5ZYJ8CA8/YeswDZs4fgKahsnEg anQaTpLavHC+oqVFVVaw8CPzzL1QNPqZvgn5cmaBvgni+7RtAvLJ8A6siC2N7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726145209; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ozd8FgDln/ECCoeGr3omSuf1UvYYa0ANHo6ydloN2eE=; b=r8D9nRspqdugLZFqyZEVU7T650aSht+IXmrPhDwWqPh2F2IRNlnsvq4gQYkbv7/D5fFgLw nZEZ7IwSGr431eQu9mLtnXafyaFoiocA3lAzZRiBUlnlBZ6eioFtWA/UhYah3c+NKBz1W3 CL5jUZCooGPYzwsI8umGeJdRyVusepxwj7fZ+Z6igMJUuOwUe3WR4Xsxwcs3PpbEus4xBl JlwgXhnmUmmZGTHhxRfZtl7Y9V0meo3hAOXC1BTCfFJVolGR7SZ3LuQjyY6niY2HSa4ZFg McyUduog+N+UquctENEHoXeTdDyF7J1jjEdnBf8UJdTZU+nEcuqJrR/cmCTHbg== 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 4X4HJ93k27z1F9R; Thu, 12 Sep 2024 12:46:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CCknK1066136; Thu, 12 Sep 2024 12:46:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CCknpD066133; Thu, 12 Sep 2024 12:46:49 GMT (envelope-from git) Date: Thu, 12 Sep 2024 12:46:49 GMT Message-Id: <202409121246.48CCknpD066133@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: cbf53f5e370e - main - flua: install linker in the right patch List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cbf53f5e370e2f6ed0dbd2305b48719fcfc6cec8 Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=cbf53f5e370e2f6ed0dbd2305b48719fcfc6cec8 commit cbf53f5e370e2f6ed0dbd2305b48719fcfc6cec8 Author: Baptiste Daroussin AuthorDate: 2024-09-12 12:42:01 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-12 12:43:56 +0000 flua: install linker in the right patch When moving the freebsd.sys.linker sources the installation path was lost. Fixes 7899f917b1c0ea178f1d2be0cfb452086d079d23 --- libexec/flua/libfreebsd/sys/Makefile.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libexec/flua/libfreebsd/sys/Makefile.inc b/libexec/flua/libfreebsd/sys/Makefile.inc index 01b5f23410c8..ca2630721733 100644 --- a/libexec/flua/libfreebsd/sys/Makefile.inc +++ b/libexec/flua/libfreebsd/sys/Makefile.inc @@ -1 +1,3 @@ +SHLIBDIR?= ${LIBDIR}/flua/freebsd/sys + .include "../Makefile.inc" From nobody Thu Sep 12 13:11:51 2024 X-Original-To: dev-commits-src-main@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 4X4Hs417Pyz5WVjL; Thu, 12 Sep 2024 13:11: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Hs40KhKz40MQ; Thu, 12 Sep 2024 13:11:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726146712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ztUQqN41PaJOg6oXBOrT8Hbq/9t/Jf7d8nILVEh0U+s=; b=d2/iKLcugMu6rz02ZsONzwTYr8cP+i4Br3xMaBh2lG2Uz/deOpBrVRZb7p0myOfDEo1tOf vDntuUzHRcyRXIOoJRu7VYTvCp7EC6/MsQiBh/iziyeYGA+hD6LoLQn14Lp9inZGbfTfQi Kpo6itFjLFkdbZ6YlyVXxw5Unpmq2Zg0vHMKC0XFkGL1lUCSVWVRTeuWHfo3W6IwpF6vCZ d7rDwZL2gH0QI1pAZQrArOUe8su0ifgoKjAX4j4s5ov94tdjFzrrwD443BKvusU6tui9nW GdaxxoxgZkAT9LQJLHffB4g159PElbow/1GP/ew4zh8/qILxPjTv5nkpZRq+Bw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726146712; a=rsa-sha256; cv=none; b=SgS2OEgXWeMqz0m5W4h4zU4o/WlP9pGuDUB7bJ0DVfC0f0vS+mcHFdMOS/QkGqp3rgWRDW vFKq3+Tor9JNFUtzFX2QnPCqZZrPpT1JFCeUzimbGaxjVcRtp7FktvEuVkrPxKfZSterYa H4ie2cRKtyqw6BNuZy/oSZDcJFCTnX+wwxdu6dbJlL/Qy9VP9WI98Y2TkEE3b33uBfbPE5 72ykc4gOtxOx/VVu7ke1435SIwsBkdenWRji4PfeR49XYutZQLctLvoyhsulelz+I1i9Is RSFZsugmbZP3yusjxAYT3x71+7IOfQzL1DSIrfx/Nkp+Estx332/CrANPVuV5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726146712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ztUQqN41PaJOg6oXBOrT8Hbq/9t/Jf7d8nILVEh0U+s=; b=GrVmRGQV+LCpKbdzJj0TF1+jQss6+QyzZL1QLlTtiXsV3nQ0jRsoPgINMvm98JFjsA04KH NGaGTLHQlQ7NEKdeMeXOauorWepKmGbT0QdvoAbQsMnndyZNn/FAjzCAlO1L7QLiL+RLaK RZHRjC7kw6AZJSZwgWZcaiASaLhnVq3zfKFgwhVNjsjQTKecDkN4GHtSxznAySsBYPqfRT THtoa13pQZCgM7X/kjWSsGQKiIoaKolOXKnp6P8Z39qo7YAfX3exPZasPrEk9RoNKQkAHZ 1YjNvsFL6w+M8//NsZeXmvq7MvKVy5lcRN01BufCegkm6Bk9TZAu56Y8rnS7Jw== 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 4X4Hs372spz1FxM; Thu, 12 Sep 2024 13:11:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CDBpvq015096; Thu, 12 Sep 2024 13:11:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CDBpH1015093; Thu, 12 Sep 2024 13:11:51 GMT (envelope-from git) Date: Thu, 12 Sep 2024 13:11:51 GMT Message-Id: <202409121311.48CDBpH1015093@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: 3c95262007ef - main - if_ovpn: only install tunnel callback once List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 3c95262007ef934c9e98b87460a48889bf42c1b9 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=3c95262007ef934c9e98b87460a48889bf42c1b9 commit 3c95262007ef934c9e98b87460a48889bf42c1b9 Author: Kristof Provost AuthorDate: 2024-09-12 08:37:41 +0000 Commit: Kristof Provost CommitDate: 2024-09-12 13:11:36 +0000 if_ovpn: only install tunnel callback once Rather than attempt to install the tunnel callback every time we add a peer only do so the first time. Reviewed by: zlei Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46651 --- sys/net/if_ovpn.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/net/if_ovpn.c b/sys/net/if_ovpn.c index e2c1dc7f7fc5..f1c2e1403d4b 100644 --- a/sys/net/if_ovpn.c +++ b/sys/net/if_ovpn.c @@ -511,6 +511,7 @@ ovpn_new_peer(struct ifnet *ifp, const nvlist_t *nvl) int fd; uint32_t peerid; int ret = 0; + bool setcb = false; if (nvl == NULL) return (EINVAL); @@ -631,6 +632,7 @@ ovpn_new_peer(struct ifnet *ifp, const nvlist_t *nvl) * we're destroying the ifp. */ soref(sc->so); + setcb = true; } /* Insert the peer into the list. */ @@ -638,9 +640,11 @@ ovpn_new_peer(struct ifnet *ifp, const nvlist_t *nvl) sc->peercount++; OVPN_WUNLOCK(sc); - ret = udp_set_kernel_tunneling(sc->so, ovpn_udp_input, NULL, sc); - MPASS(ret == 0 || ret == EBUSY); - ret = 0; + + if (setcb) { + ret = udp_set_kernel_tunneling(sc->so, ovpn_udp_input, NULL, sc); + MPASS(ret == 0); + } goto done; From nobody Thu Sep 12 15:14:36 2024 X-Original-To: dev-commits-src-main@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 4X4LZk6WFbz5W2RS; Thu, 12 Sep 2024 15:14:38 +0000 (UTC) (envelope-from kevans@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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4LZk5sS4z4H2h; Thu, 12 Sep 2024 15:14:38 +0000 (UTC) (envelope-from kevans@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726154078; h=from:from:reply-to:subject: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=I3v+Q5vIVgLKRGW6qadvaLekfDph9BxNElXjk2om26g=; b=kD8403TXrPHPi8iha9otg2xubYtocOQooA9CYOVDpRrK5dBkidNsotMSzogF1q8u4gMrAx hit1Li4KsqSKCRpNpB7GZfQJUxN1m11ZuX/9vHIBzEW+CgSOt8q8TQhH887v9XmICS6ukK 7dBkB9BfNrQtPP4LkF+Phf0Ja5ImE3/bjMk3WAmUEPJenhJZau4kxTXOVw1SxpJ27wFLnW tQuZevm8HRGahTxnR59kwYQ0fB1XPtYXZPNzfrPEFK5dT+J3xDrg9OoASuzpYkjF+4FgPf QsxhgH2iT3JlduQJIU0/7Fk+OKirEcZUJVvlM5+5yA5A4pUmTNcNGJQ8iti4Gw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726154078; a=rsa-sha256; cv=none; b=gmqCxiChRo/vh5u392xww3gymxV22+CeI6eTMnZ3PlNOPAKlAL+NkFm1745ubmJFcFHha8 z9uPhVyNQdjbrqoJ+0oJNMWEQybzjz17GTvtfgTRgDKqcns6goTOA8ZmxJ0uVar7SijSny hG0rcVzckmh9ycRxb++EQ24QeZfebgB5vA1jS1jIzTQUgSNf2hhUYSljQmew1aweDJ9OrX y+A3wJsQwHvBx7YudARfyT1C6XlpdAdVwPh43KiLa5F5H6XxW9+Nr9Vwk6I4ftxY4TP5t+ aNqrAN2Txh1KnayR47VLE9HVT8RJqgMZZQecI1Rf91iRbIaqYs8yuEVSlLsvIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726154078; h=from:from:reply-to:subject: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=I3v+Q5vIVgLKRGW6qadvaLekfDph9BxNElXjk2om26g=; b=YHnX6Kiq6FOFGNwY5WuGwDPVA+9jNpNyDY8mxDiiIw8nXNecGz6BMbsN6BylF7a5fBMDJO YIKm2YrLvg9E4TLiWx5Ysh0pw/PsG68DyRNfpz6KUFLjA95b9OzERHnSByq+x/P4C/Jwli prkknSsLySbOxq+fbvb6tMigkK1gMu8baJixnEqZ3/X59mTVthcU7T+9O9o4NwWOjL+Vsz 2wDbnxe62LdchZEbA0v4Q5sCl14uXtjP6BpSmbYGKvWSTPHK2UeEfCpQblLj4T6AjAD/NI QXKy+Im4bT5PsqPAvAUgbluXqArlU3cMHf4d9WXJAKDKZ9hMgHlHxtHufGgAzA== Received: from [10.9.4.95] (unknown [209.182.120.176]) (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: kevans/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4X4LZk2T5pzV9k; Thu, 12 Sep 2024 15:14:38 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Message-ID: <46ddb4e7-2dfe-4f00-9210-1d482e03ef27@FreeBSD.org> Date: Thu, 12 Sep 2024 10:14:36 -0500 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: 76c2b331bcd9 - main - lib/libc/amd64/string: add timingsafe_bcmp(3) scalar, baseline implementations To: Robert Clausecker , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202310151931.39FJVIpF088761@gitrepo.freebsd.org> Content-Language: en-US From: Kyle Evans In-Reply-To: <202310151931.39FJVIpF088761@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/15/23 14:31, Robert Clausecker wrote: > The branch main has been updated by fuz: > > URL: https://cgit.FreeBSD.org/src/commit/?id=76c2b331bcd9f73c5c8c43a06e328fa0c7b8c39a > > commit 76c2b331bcd9f73c5c8c43a06e328fa0c7b8c39a > Author: Robert Clausecker > AuthorDate: 2023-08-30 15:37:26 +0000 > Commit: Robert Clausecker > CommitDate: 2023-10-15 19:19:04 +0000 > > lib/libc/amd64/string: add timingsafe_bcmp(3) scalar, baseline implementations > > Very straightforward and similar to memcmp(3). The code has > been written to use only instructions specified as having > data operand independent timing by Intel. > > Sponsored by: The FreeBSD Foundation > Approved by: security (cperciva) > Differential Revision: https://reviews.freebsd.org/D41673 Hi Robert, I only just noticed this, but I have to admit that I'm pretty uncomfortable with the idea of rolling our own timingsafe assembly implementations in general. My main concern is that, e.g., auditing timingsafe_bcmp.S will clearly take a lot longer than auditing the C counterpart, but also the audit requirements have gone up for every architecture you want to support that might be using this from a single simple C implementation to C + however many architectures end up rolling their own implementation in assembly after this. Are these really used in enough perf-critical context to justify the additional complexity? Did anyone *actually* verify the constant-time properties of these implementations? I didn't really find any written confirmation of that, which I was really hoping for- we should have a much higher bar for changes like this. Thanks, Kyle Evans From nobody Thu Sep 12 16:34:28 2024 X-Original-To: dev-commits-src-main@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 4X4NLr70dwz5WCcs; Thu, 12 Sep 2024 16:34: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4NLr6DGNz4Q82; Thu, 12 Sep 2024 16:34:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726158868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vquoGdNfnnHC1iCYD3BkLXnGCw4m1wBTnyDWS9xcWfc=; b=leAr6u9dm5PCMmvFXtSi0Ve5l3iBCsDMDbXvghqbjQfupa93lr1OGJ+xR5DAqp6V/s+wJ9 0rvbHMjCceXyX9YhqWZjyVHQYRTNSp3lYd9hUvo5BWEVj8h4xCjEW4yFpWjOzikvLbBfg7 u/6rTBqbhydOMQ31excu+jUhgbReLksJgSpA5srnVwbxKrfL1ocGMQ7PZO+s9g0eVH61kN qETTn7zmb94BhIWKQMA4rB4feefTjUevBrruLXXWFR97U7EDznnN8NuRLHlB/g1tuIZIe7 oIjdceHf1hkOPcGrSZ4OUrsrhyrBVR2SoJCFUTPZeGfsrhNszLtIw2VeRFrkIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726158868; a=rsa-sha256; cv=none; b=j74GCZPgPVWxJJbntwhVziTRcDPStQhYCiIPLTOY2hXF7a0yBxH7sODUzBat4R/9d3CI3X 4JTNudqyittZVpArro6n1t9UfPAvqoBkjkByj0WGpj0lcgpsy0R6CnA+6q+ybnuNuQYphU 4RLPSuHmVxYVrGqhyMLfmLI1XHIZw3Lh+NTN9TMyLbNIKDoqqLYczU9etp1XEcRkBvm+55 vUyLwEDretbjtjs7JJKbtb16wtzMpjYBLjdMlKI9K1sWW7xwR9ys8C8K7sWooDZ6EqmbmG 9ANxl04vfxGdh/GNpfE3gulOSeOFoM9Ukdecnomj5TDHoDub6bFUmAzemLGTfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726158868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vquoGdNfnnHC1iCYD3BkLXnGCw4m1wBTnyDWS9xcWfc=; b=BD6s0xD1PKXa24qJFG1Cl5BcWrU3GBbEzIhB03RGH83GrsNyiiNi0sjVFez4p72WmYCpCI iYZy4Il0ds5huZOti6bJYXroVcTP1kAlX9GGufMi/T+8NroskhTIXBjDlnAFvq8ne1xwuM H/iU6a5OXlFzTVYY0lfiQ98oXvGNpaAgxv3EHthQ4ZNqm35rMK/JkKNj2uMTTEfOzTZvme o8vPAMxUDp6rIYUW/zjwAGU2e3eozAko+N3nb4scQP+tGX/sCTict2kZaWC0osquyJbwWd 6pG4RdfLoaSUdmRO5AF6IFBOWu4xlP2/GFzfmn7gWxNAO6pRXOSd1DlUpBm30w== 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 4X4NLr5jY2z1M0H; Thu, 12 Sep 2024 16:34:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CGYSUM059402; Thu, 12 Sep 2024 16:34:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CGYSAX059399; Thu, 12 Sep 2024 16:34:28 GMT (envelope-from git) Date: Thu, 12 Sep 2024 16:34:28 GMT Message-Id: <202409121634.48CGYSAX059399@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Ambrisko Subject: git: 408087f128fe - main - zfskeys: allow prompt to entered during boot up List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ambrisko X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 408087f128fe745dbfb2b8423f0afd9e0ce2d11a Auto-Submitted: auto-generated The branch main has been updated by ambrisko: URL: https://cgit.FreeBSD.org/src/commit/?id=408087f128fe745dbfb2b8423f0afd9e0ce2d11a commit 408087f128fe745dbfb2b8423f0afd9e0ce2d11a Author: Doug Ambrisko AuthorDate: 2024-09-12 15:43:03 +0000 Commit: Doug Ambrisko CommitDate: 2024-09-12 15:46:49 +0000 zfskeys: allow prompt to entered during boot up If the ZFS key is setup in prompt mode, use zfs to prompt to load the key during boot to unlock it. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D36081 --- libexec/rc/rc.d/zfskeys | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libexec/rc/rc.d/zfskeys b/libexec/rc/rc.d/zfskeys index ea38182a66c7..aff0224d5c9d 100755 --- a/libexec/rc/rc.d/zfskeys +++ b/libexec/rc/rc.d/zfskeys @@ -45,7 +45,15 @@ unlock_fs() local kl="$2" local k="${kl##file://}" - if [ "$k" ] && [ -f "$k" ] && [ -s "$k" ] && [ -r "$k" ]; then + if [ "$kl" == "prompt" ] + then + echo "Key prompt for $fs." + if zfs load-key -L "$kl" "$fs" < /dev/tty > /dev/tty 2>/dev/tty ; then + echo "Key loaded for $fs." + else + echo "Key failed to load for $fs." + fi + elif [ "$k" ] && [ -f "$k" ] && [ -s "$k" ] && [ -r "$k" ]; then if [ "$(zfs get -Ho value keystatus "$fs")" = 'available' ]; then echo "Key already loaded for $fs." elif keytest=$(zfs load-key -n -L "$kl" "$fs" 2>&1); then From nobody Thu Sep 12 17:33:23 2024 X-Original-To: dev-commits-src-main@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 4X4Pfr2GBvz5WKqX; Thu, 12 Sep 2024 17:33: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Pfr0fkpz4X9Y; Thu, 12 Sep 2024 17:33:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726162404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=76L+NSs73+VYIUUD7SovJvS/CNPyRaRTalsgsC/9aPc=; b=g80qsut82Nb4O7heJYtSne6983wN74vSkmn6VB40OgbrGGXSmmI25915V+GLYFkSycf5S9 befkhbip/VCGSjSOotQJT9a4hGU6uJtitMalbGKnCsEWSY5xzbyVjrfrEDY6MWeQb5yW2k Iqfa9MBtsmoHAPUV9euY6hikRoiiABr3DD/GbALzQqv02k6xLu34hKD1/pwqvcPBk3M2kx lqH2focywu0Z/wPu8JBz1JRSUfVeHw/aAHSkzm5HrI5zibyW+jKsHK8qhuj3c33shK25mp TM4spFr81tEMj1An5N1DsdtGid/HvYeYIxbXp1GGLJR/t5bqlAsZspyz3hSwLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726162404; a=rsa-sha256; cv=none; b=lub0opYvKkT+BEzMwGVt8raHRMhCCXv0m48PSp+4EZReVnl40Xnms+f3aLKRgWQP6dexXk SbyGRRGr67M2aoI/GlrIdZ4gYzmL0s7yNdPJNQHDZhkM6OGAPjj23fRPqdih/GFQ5YpDKF NLXy9vk4zi0772DdbdzaCC0bPIOY84cpgM36+u/erEV6neyQUjfBltadC2lHUZtW9t2rHE Il535tirXfJtRyhonPgxK9DdpYRvn3t3q9GF9n5w04+zMBvqQXeN5iT+RGkTlVa5aBkMDg MpvwU+FphoB+2+C7eVubLQ5kr5w2OV+zuU6rLedR31oAtEoHTBDDUPkHs5asWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726162404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=76L+NSs73+VYIUUD7SovJvS/CNPyRaRTalsgsC/9aPc=; b=yj/1MZIBXQwktEs7rsOMVEXf0jMH0n+iQRsea+B2rDjtrlgoHrUsAmQQxLBTf6rtX4pu8A YpR5/2xSZYvEiujXJE2fVII5ls8FLzUNgJED5OXfrinK1sDK/d5iaMRrbyRwTqFwp4oPG7 Ke1lYQGrqaGToqU4Z/i1l7qSI7pNCdXOBmiVIv0M7z07d2oYkkG9Xphovg2rgWUAh6HO9j oq7sDfbOnkYC3YsWwwZqaGJ6UlOg1EekOUBLSrVyhr6cv21O09GADJxXoxXabCLrACUE/d g4n98StHHpIOkf4j91ScQN5c7Vhuhff9T+q/FVUopdl3O5sowhAZE9tBwEP+sg== 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 4X4Pfr0H4Vz1NCx; Thu, 12 Sep 2024 17:33:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CHXNBN060457; Thu, 12 Sep 2024 17:33:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CHXNTu060454; Thu, 12 Sep 2024 17:33:23 GMT (envelope-from git) Date: Thu, 12 Sep 2024 17:33:23 GMT Message-Id: <202409121733.48CHXNTu060454@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: 17c9ac457cf1 - main - if_ovpn: declare our dependency on the crypto module List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 17c9ac457cf16c1251afa7364bc47ed52ec29057 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=17c9ac457cf16c1251afa7364bc47ed52ec29057 commit 17c9ac457cf16c1251afa7364bc47ed52ec29057 Author: Kristof Provost AuthorDate: 2024-09-12 15:51:04 +0000 Commit: Kristof Provost CommitDate: 2024-09-12 17:32:05 +0000 if_ovpn: declare our dependency on the crypto module PR: 281460 MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/net/if_ovpn.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/net/if_ovpn.c b/sys/net/if_ovpn.c index f1c2e1403d4b..b269742ed8b9 100644 --- a/sys/net/if_ovpn.c +++ b/sys/net/if_ovpn.c @@ -2600,3 +2600,4 @@ static moduledata_t ovpn_mod = { DECLARE_MODULE(if_ovpn, ovpn_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); MODULE_VERSION(if_ovpn, 1); +MODULE_DEPEND(if_ovpn, crypto, 1, 1, 1); From nobody Thu Sep 12 19:16:37 2024 X-Original-To: dev-commits-src-main@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 4X4Rxy265nz5WZ62; Thu, 12 Sep 2024 19:16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Rxx73Blz4p1w; Thu, 12 Sep 2024 19:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726168598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vqGqRWQ87pK0veGshm4epqnuXCuey9NEvP1JLMe5PJQ=; b=I262ZWxeoZzP3ECDtdOI6MXBSLFzBzCeJ1uM+6/vSQ6AnvgGL3+pWAtoesfC25ssOqd67R Akr4iaCYj9XbQl5tvygJfLywTzWgE//Hp4EZBBSW/tnXPTSKihaAyJLv4+JqIlVcRq/j2L LhOfKViHxJbsNhJA2zqyj8VWOIBiLo+uWfJcI6sOjvR+VCZ7pK2joRbHwi/StEmAgpiAfX 16J23b3o+Z2zOqzGEu14b0K/VknKtO/fIdab25Nn+WG4q2QEKgbvQpF/x+618RGcA+ENhL zxonCCFQjsRAPKfSvEfL8221dhMXOWNp8z3+ZKFIwqKC+LUN05kl64j6r7xzUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726168598; a=rsa-sha256; cv=none; b=AgmcZpFEimBN+69sRNvEZmjWkIBD62C7Tpv1lxjqOBmJZrrr9R2gsJe5IIvavSMPv/nvZE xiuRhDqIEktmrF/NmJTmbAfg12gIyjiqoj2d7YpnAOOKXzPJX5js8vCwR2tqm8emIbu84/ hIt8/1fdXW5v/746cu3F/Obr/Ddudzzw0Gzfvj7CJFHSfBkWGyVDi/89Ov6gofqQZ32i7x jdkTxhFjc1JyFGZ1jSYTkQkbsfaZi5eWSAY4HLjt9wkFPPHaHvTVu3fKxFlFG5GmM0ED+I VmUhTGbF5M3fpAzwFd04Cf8K07xnAB2moaF20t3FiOFX9Ijx75wRiAoUWfIeCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726168598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vqGqRWQ87pK0veGshm4epqnuXCuey9NEvP1JLMe5PJQ=; b=Y+pGA7N5f5rncVGSpoO02GkAbdGIqMTGTY1EmbRanFCN2kVbWDehDd5g471edUN7V3VrXr pozEYch6CzNLOtzgLUa/WP4YjuLbMTUcHj7Y4Rt7zn5sDBZGLflMLX6+ZWVP8h0AyKr/9g Lcb8z2vmQAa2madBYZ7yzAWIvOiI0N07fnJCSo/rVY7UCx1AGqwdGhjMYTl+ZLw0Ixpsft udFe2sSXiF6klQXsyipvM7MM5mrXQjVhpq/3AsimCjiLG/GgEqjM/hNk/pFUavylv4euuT +3uIC8q1+zkQwzL2BXb1/Dq4jG86JH26VsEuhEugEqmkoJmgdhZ2s10CKOFpvA== 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 4X4Rxx6XkWz1QtL; Thu, 12 Sep 2024 19:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48CJGbVZ030903; Thu, 12 Sep 2024 19:16:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48CJGbUl030900; Thu, 12 Sep 2024 19:16:37 GMT (envelope-from git) Date: Thu, 12 Sep 2024 19:16:37 GMT Message-Id: <202409121916.48CJGbUl030900@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Eugene Grosbein Subject: git: becd0079c052 - main - ng_ipfw(4): add missing change after previous commit List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: becd0079c052cb87e7649b78733b99abae8861ee Auto-Submitted: auto-generated The branch main has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=becd0079c052cb87e7649b78733b99abae8861ee commit becd0079c052cb87e7649b78733b99abae8861ee Author: Eugene Grosbein AuthorDate: 2024-09-12 19:09:28 +0000 Commit: Eugene Grosbein CommitDate: 2024-09-12 19:09:28 +0000 ng_ipfw(4): add missing change after previous commit The function ng_ipfw_input() used to enjoy implicit 32->16 bits truncation of its second argument. Make it explicit to recover from the breakage. PR: 281082 Reported by: Ruben van Staveren Tested by: Ruben van Staveren MFC after: 3 days Fixes: 20e1f207cc789a28783344614d6d1d1c639c5797 --- sys/netgraph/ng_ipfw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netgraph/ng_ipfw.c b/sys/netgraph/ng_ipfw.c index 01592a4bbb7d..9a6bb90412fa 100644 --- a/sys/netgraph/ng_ipfw.c +++ b/sys/netgraph/ng_ipfw.c @@ -291,7 +291,7 @@ ng_ipfw_input(struct mbuf **m0, struct ip_fw_args *fwa, bool tee) * Node must be loaded and corresponding hook must be present. */ if (fw_node == NULL || - (hook = ng_ipfw_findhook1(fw_node, fwa->rule.info)) == NULL) + (hook = ng_ipfw_findhook1(fw_node, fwa->rule.info & IPFW_INFO_MASK)) == NULL) return (ESRCH); /* no hook associated with this rule */ /* From nobody Fri Sep 13 00:20:34 2024 X-Original-To: dev-commits-src-main@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 4X4Zhf4dQwz5V2vY; Fri, 13 Sep 2024 00:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Zhf3wb3z4ZFF; Fri, 13 Sep 2024 00:20:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726186834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H/9s464BDypJwBprBcZ1KmAznf85QPKI4P/CdUxa/5U=; b=Ghx5NSr0LPvTJecrLr6MGBSfyn/vuzr8i3qwgxE9mdGs1XSTrI8Y+5anEB0lSYbOHfB1gb xHb+SoUYhvVt6DtV9yrfFfRySOa33ma/oUJLJ/tTXm80d7oGZI+ZohvTxzzcIAmgXWM511 /KtBH1HfmtG8fY4FwdWAD/xmv36zmsNhSwi9jCayY7u42Jsp3KH05qts7kZ0v0FchJK4CS jideZ7FKLl/madvsd1FtU/DUgfQF2q1GZS4pRo7hNOZdPW/VkoqTZGuVnPWonN0o2cfZrQ ISyD+PNJvJiDLntZfRIMh8uBm8RCa4MDlkOeYhy/guXBPyHvx/OEJJG3Cpcgvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726186834; a=rsa-sha256; cv=none; b=Tn7gcBaBs0zJ+BF388p2gmcj0ccGAuV264oB/7Rh8exEIRy46iMWcfpNnvl8PyWN4fAkkA Uij44gjbiRmdhtH7qBHVHRSRu1pN3XBUe3aQiME61P5VsaT7GoT3x0eSKOCOf8NYQ1c7Sm eL/Z+L9sPDGMjJK6HpBKr6NU8j3JIw1TVQ5FI67wSjgblLjWWcT5n2ZJ94V0lOnal6r6n3 ErhVkeXva0XyfHi/mUZE+gbIqDXlXk6vvYV9Ga/tGTe/YYj5j74z1Io0gQh/XJ879eguOJ l959YRGa/ugJqNbUVS+G2Zv3HTYBAtTs5VJ+IQOolip2sftKEC8WHnIzshf2Zw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726186834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H/9s464BDypJwBprBcZ1KmAznf85QPKI4P/CdUxa/5U=; b=V4p/xHi9OrOznGFYeYkggbfI8zM1bvHkemkfD3BCF4wYcTBJn5iIiceRmrpseacEalKNYH xCJ6RDe4U1ql6iLL6Su5bwCEsB7kGDGeGp04SY1y5qgE1g34wyusAs1Ua/TNDwo5PUqqPc eyT19jGe0vvAQFR+pTZbz3PqFsKIAb6Rm1Lz0cQKxwx905YgUmZ8lhsmr1ewG7j2SEQ6MN 7RIVJ/RGKbh1FVSCjoZkOMhWdPHmqxm1RLIkdv39LW0anlHPUWYiIHpoQGLx6FUgCGoZys Q4QLypW6lEEjyBnQ4+I3oqZOyv+d3Ii/kJDkTpaQ65yrC6UyLRiGgjMA8YQNLw== 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 4X4Zhf3QK9zLbD; Fri, 13 Sep 2024 00:20:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D0KYhq048368; Fri, 13 Sep 2024 00:20:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D0KYJc048364; Fri, 13 Sep 2024 00:20:34 GMT (envelope-from git) Date: Fri, 13 Sep 2024 00:20:34 GMT Message-Id: <202409130020.48D0KYJc048364@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 7728586800bd - main - mt76: add mt7615 to the pile of buildable drivers List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7728586800bd5bb4655cff6d661133ed10cc2ff7 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7728586800bd5bb4655cff6d661133ed10cc2ff7 commit 7728586800bd5bb4655cff6d661133ed10cc2ff7 Author: Bjoern A. Zeeb AuthorDate: 2024-09-04 18:38:05 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-09-13 00:18:02 +0000 mt76: add mt7615 to the pile of buildable drivers Ignoring page_pools with the few needed adjustments and ignoring 7622 mt7615 seems to build as well. Add it so once we can connect it to the build people can start testing and debugging. (The actual work was done on a newer version of the mt76 drivers but it seems the to-build-changes equally apply here already). Requested by: Radu-Cristian Fotescu (freebsd-wireless, 2024-07-31) Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/contrib/dev/mediatek/mt76/mt7615/eeprom.c | 15 ++++++++++++++ sys/contrib/dev/mediatek/mt76/mt7615/init.c | 6 ++++++ sys/contrib/dev/mediatek/mt76/mt7615/mac.c | 11 +++++++++++ sys/contrib/dev/mediatek/mt76/mt7615/mcu.c | 4 ++++ sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c | 5 +++++ sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c | 3 +++ sys/modules/mt76/Makefile | 1 + sys/modules/mt76/mt7615/Makefile | 26 +++++++++++++++++++++++++ 8 files changed, 71 insertions(+) diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/eeprom.c b/sys/contrib/dev/mediatek/mt76/mt7615/eeprom.c index ccedea7e8a50..d5ec498aa9ef 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/eeprom.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/eeprom.c @@ -6,6 +6,9 @@ */ #include +#if defined(__FreeBSD__) +#include +#endif #include "mt7615.h" #include "eeprom.h" @@ -63,7 +66,11 @@ static int mt7615_efuse_init(struct mt7615_dev *dev, u32 base) for (i = 0; i + 16 <= len; i += 16) { int ret; +#if defined(__linux__) ret = mt7615_efuse_read(dev, base, i, buf + i); +#elif defined(__FreeBSD__) + ret = mt7615_efuse_read(dev, base, i, (u8 *)buf + i); +#endif if (ret) return ret; } @@ -256,6 +263,7 @@ int mt7615_eeprom_get_power_delta_index(struct mt7615_dev *dev, return MT_EE_5G_RATE_POWER; } +#if defined(__linux__) static void mt7615_apply_cal_free_data(struct mt7615_dev *dev) { static const u16 ical[] = { @@ -311,9 +319,11 @@ static void mt7622_apply_cal_free_data(struct mt7615_dev *dev) eeprom[ical[i]] = otp[ical[i]]; } } +#endif static void mt7615_cal_free_data(struct mt7615_dev *dev) { +#if defined(__linux__) struct device_node *np = dev->mt76.dev->of_node; if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp")) @@ -328,6 +338,7 @@ static void mt7615_cal_free_data(struct mt7615_dev *dev) mt7615_apply_cal_free_data(dev); break; } +#endif } int mt7615_eeprom_init(struct mt7615_dev *dev, u32 addr) @@ -348,7 +359,11 @@ int mt7615_eeprom_init(struct mt7615_dev *dev, u32 addr) } mt7615_eeprom_parse_hw_cap(dev); +#if defined(__linux__) memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR, +#elif defined(__FreeBSD__) + memcpy(dev->mphy.macaddr, (u8 *)dev->mt76.eeprom.data + MT_EE_MAC_ADDR, +#endif ETH_ALEN); mt76_eeprom_override(&dev->mphy); diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/init.c b/sys/contrib/dev/mediatek/mt76/mt7615/init.c index 18a50ccff106..517a9ec9e07f 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/init.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/init.c @@ -15,6 +15,7 @@ #include "mcu.h" #include "eeprom.h" +#if defined(__linux__) static ssize_t mt7615_thermal_show_temp(struct device *dev, struct device_attribute *attr, char *buf) @@ -64,6 +65,7 @@ int mt7615_thermal_init(struct mt7615_dev *dev) return 0; } EXPORT_SYMBOL_GPL(mt7615_thermal_init); +#endif static void mt7615_phy_init(struct mt7615_dev *dev) @@ -566,7 +568,11 @@ int mt7615_register_ext_phy(struct mt7615_dev *dev) * Make the secondary PHY MAC address local without overlapping with * the usual MAC address allocation scheme on multiple virtual interfaces */ +#if defined(__linux__) memcpy(mphy->macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR, +#elif defined(__FreeBSD__) + memcpy(mphy->macaddr, (u8 *)dev->mt76.eeprom.data + MT_EE_MAC_ADDR, +#endif ETH_ALEN); mphy->macaddr[0] |= 2; mphy->macaddr[0] ^= BIT(7); diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/mac.c b/sys/contrib/dev/mediatek/mt76/mt7615/mac.c index 7ba789834e8d..5037104ed1a4 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/mac.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/mac.c @@ -10,6 +10,9 @@ #include #include #include +#if defined(__FreeBSD__) +#include +#endif #include "mt7615.h" #include "../trace.h" #include "../dma.h" @@ -1575,9 +1578,17 @@ mt7615_mac_tx_free_token(struct mt7615_dev *dev, u16 token) mt7615_txwi_free(dev, txwi); } +#if defined(__linux__) static void mt7615_mac_tx_free(struct mt7615_dev *dev, void *data, int len) +#elif defined(__FreeBSD__) +static void mt7615_mac_tx_free(struct mt7615_dev *dev, u8 *data, int len) +#endif { +#if defined(__linux__) struct mt76_connac_tx_free *free = data; +#elif defined(__FreeBSD__) + struct mt76_connac_tx_free *free = (void *)data; +#endif void *tx_token = data + sizeof(*free); void *end = data + len; u8 i, count; diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/mcu.c b/sys/contrib/dev/mediatek/mt76/mt7615/mcu.c index 8d745c9730c7..704faf50f4f9 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/mcu.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/mcu.c @@ -232,9 +232,13 @@ void mt7622_trigger_hif_int(struct mt7615_dev *dev, bool en) if (!is_mt7622(&dev->mt76)) return; +#if defined(__linux__) regmap_update_bits(dev->infracfg, MT_INFRACFG_MISC, MT_INFRACFG_MISC_AP2CONN_WAKE, !en * MT_INFRACFG_MISC_AP2CONN_WAKE); +#elif defined(__FreeBSD__) + panic("%s: LinuxKPI needs regmap\n", __func__); +#endif } EXPORT_SYMBOL_GPL(mt7622_trigger_hif_int); diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c b/sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c index f607eee3fb47..68f628c6f24e 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c @@ -8,6 +8,9 @@ */ #include +#if defined(__FreeBSD__) +#include +#endif #include "mt7615.h" #include "mac.h" #include "eeprom.h" @@ -92,9 +95,11 @@ int mt7615_register_device(struct mt7615_dev *dev) if (ret) return ret; +#if defined(__linux__) ret = mt7615_thermal_init(dev); if (ret) return ret; +#endif ieee80211_queue_work(mt76_hw(dev), &dev->mcu_work); mt7615_init_txpower(dev, &dev->mphy.sband_2g.sband); diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c b/sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c index 0019890fdb78..fe6bd71c7d97 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c @@ -9,6 +9,9 @@ #include #include +#if defined(__FreeBSD__) +#include +#endif #include "mt7615.h" #include "../dma.h" diff --git a/sys/modules/mt76/Makefile b/sys/modules/mt76/Makefile index fbc9265c9127..f75427acf4f5 100644 --- a/sys/modules/mt76/Makefile +++ b/sys/modules/mt76/Makefile @@ -1,4 +1,5 @@ SUBDIR= core +SUBDIR+= mt7615 SUBDIR+= mt7915 SUBDIR+= mt7921 SUBDIR+= mt7996 diff --git a/sys/modules/mt76/mt7615/Makefile b/sys/modules/mt76/mt7615/Makefile new file mode 100644 index 000000000000..6d7cb945a32d --- /dev/null +++ b/sys/modules/mt76/mt7615/Makefile @@ -0,0 +1,26 @@ +DEVDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76/mt7615 + +.PATH: ${DEVDIR} + +WITH_DEBUGFS= 0 +WITH_DEV_COREDUMP= 0 + +KMOD= if_mt7615 + +# Common stuff. +SRCS= init.c main.c mac.c mcu.c eeprom.c + +# PCIe (7622_WMAC ignored) +SRCS+= dma.c mmio.c pci.c pci_init.c pci_mac.c + +# USB + SDIO ignored currently. + +.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0 +SRCS+= debugfs.c +CFLAGS+= -DCONFIG_MT7915_DEBUGFS=${WITH_DEBUGFS} +.endif + +CFLAGS+= -DKBUILD_MODNAME='"mt7615"' +CFLAGS+= -I${DEVDIR} + +.include From nobody Fri Sep 13 00:22:52 2024 X-Original-To: dev-commits-src-main@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 4X4ZlJ6yDrz5V3Wg; Fri, 13 Sep 2024 00:22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4ZlJ6NLrz4Zl6; Fri, 13 Sep 2024 00:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726186972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n6TJ5eWYMdllhm3hqrPZ4j/QAOloJR03R87QPyojb68=; b=jIlXkF0lknWzkNjWuKzoETT6tmti4tWB3Jjkh0WOOlD+eHrWbWyxOdwJVx+++SHf5yDfWc EqraEQ1K8wXLsmdtnDfayCDgF4eZ4v4Bq7pSZXSPXJ0cEtl19XEzW8waBAsmDPfvkQKL/I U2RcVjytwN+gPVViGp7AB9d4ScIJe08USW9HZzp62mjRI5+c3FpmLJLGki2WMvFlgimgoa iRDQX5IwNST36VG5a8q0PaHhlAUVzbpK2q2BmoKYnGf5BXVaz0sNiECQK3OM9oRTT4tPH4 7yHfPindSOiqKUw6eOiaLazaW2iMhXEckVHKLX4Wi+MXuEto0nIx/S7rT+arqg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726186972; a=rsa-sha256; cv=none; b=q3QBZB7qXcakYT7ftUs+PvEiBAfjaX1dcNYVkU9Txx7W3yHBKZVSkbyUgF7GXpmjosYPpT Kv/TB/kLo0LA78p/7FGu3IyyaVL7W0UKTHS4keHXTPWzJrNrQ/wG5aS2gFGxwjKLOBc/0c 26gPGHTKv7m16N8uS9kpWFnL2oBUyB821e4uB1HZnPkMTlRYlfMpKhFSA3HzD/7lIA58Lw IO0EmN8K5BrGZEg5NB3lkJNRCm6bf0BqoSXeoYIdPbcQa91Af1Fi/qoTNf8IbMuqo7SxiG eFAONblSlnjOCKXT2Yc46PX6qLoZrFXujvKe2jON14YZac9n/0VTrHdeydNf8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726186972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n6TJ5eWYMdllhm3hqrPZ4j/QAOloJR03R87QPyojb68=; b=RtJF6zsqvUU/O+yGROkuqlP6lRPQ2IvD4UYoQAUAAxjmConVLq0QwF0JXPI+VpLiNNTAFr BgQraGhjy5rRW1zVOgpO0eEIg8v4hY3TFYyWEATJSHVsPw+exAPAINrh3Gc9uVusTlJVsk Qvfh4CuR+rPQC1PtLMxMOK9G2w9y4mZNsuUQ6Z/JYNAwmk4Ld5UNAnochmE3Olo37txoyO cufOeMf2IRz9kcG/H+xx/E3aaTyfnUJJowOFSZyJTK3nsN3ru0cBacvj0tYzwFYnXTC8rc SuJdooDEuEi/nKgUCQ2WlgTIw0v/ln9/1rwDL4RV2Tq7A2mlmVmo0DDJH+tzmA== 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 4X4ZlJ5zm3zL6x; Fri, 13 Sep 2024 00:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D0MqbV055760; Fri, 13 Sep 2024 00:22:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D0Mq9I055757; Fri, 13 Sep 2024 00:22:52 GMT (envelope-from git) Date: Fri, 13 Sep 2024 00:22:52 GMT Message-Id: <202409130022.48D0Mq9I055757@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 01e1131e4a20 - main - LinuxKPI: add pci_err() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 01e1131e4a20ea377d580ecce210aa86726e71c6 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=01e1131e4a20ea377d580ecce210aa86726e71c6 commit 01e1131e4a20ea377d580ecce210aa86726e71c6 Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 20:40:59 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-09-13 00:20:53 +0000 LinuxKPI: add pci_err() Add pci_err() as a wrapper to dev_err() as needed by an updated driver. Sponsored by: The FreeBSD Foundation MFC after: 3 days Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D46660 --- sys/compat/linuxkpi/common/include/linux/pci.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index 36b970154ad2..a2de534fcb60 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -367,6 +367,9 @@ struct msi_desc *lkpi_pci_msi_desc_alloc(int); struct device *lkpi_pci_find_irq_dev(unsigned int irq); int _lkpi_pci_enable_msi_range(struct pci_dev *pdev, int minvec, int maxvec); +#define pci_err(pdev, fmt, ...) \ + dev_err(&(pdev)->dev, fmt, __VA_ARGS__) + static inline bool dev_is_pci(struct device *dev) { From nobody Fri Sep 13 00:24:19 2024 X-Original-To: dev-commits-src-main@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 4X4Zmz5SpXz5V3FY; Fri, 13 Sep 2024 00:24: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Zmz4yz5z4b5T; Fri, 13 Sep 2024 00:24:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LjZfUdBl7vmK7gVMsGqqMcRYR4zIaUFk3Wvo3UURobA=; b=OIBNc3hZqVBpALYSNUSYubEl3imn5OpMAZj+DiU+jFXHC3CrL2uFyCGjPCpR7NMqhKTX6A DRZJ2QZ+9kPug7TZnGaiPUYSnd66WC9vYNHY+TL8LQ79I38rOAoUS6LdtKF2U/JNZNs3gp /Ogi5obtQugYbi6qAQ1L4O0rTeyabgzDtrFV6k7FhuaPY+r9H9mK3nXZkrKKEreRoe54fy Q1yiy5wB9L/967wwNO6u/rz7lzgyqwIxvZpB67+Fq2dP0BB2BV21GuGwQKraugKjoYXien DUSi6qU8hDj9F97ClagtJh2B/ISvZHY+TQ4li5tvxKk8t932Cz39D8s2TQegmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726187059; a=rsa-sha256; cv=none; b=WLTnFReBjBYHuZC4ENrbb3+q5/kix4dzvAcQc/YtGy5d2yJUtUCLU/qV1zRzqdGVoSXwTO Eyr//86KHE+pDKiJKdtUbsOW0/N/0QxAPmEnspDwfu+s/goYrxTSQ+kLvT0HIHx7SaEGJM 9GO/+ZSmQh4RY7as5k59IGUbYHOVKnCRDXqSvzd2sVVxSCFoTImuWklq2IUEuFLqokFSsq cvvXn8YZI7mOcHe79N+sKcIJwbgjBCKjG0bBpzQP5gSykbhFsdfsO7f/Y8si5p40J8QIO8 x7zktOmUE8WkSKKdfKzTEeIuYayNFtDKZ1pqUUb6lGl4v2kTEWnYZgOH21R8Mg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LjZfUdBl7vmK7gVMsGqqMcRYR4zIaUFk3Wvo3UURobA=; b=l3LxAZTJq9Hj39lsAMBj9giAANeqk519982YMk9b0B6/hCJhTkYBj0yiFY9qeUEAZjSmR9 gBHCVZtCIsw9sQeTdyvrgHoRTg1egYCPC5NLQzsixxJX1JWU9ghkJMCzX15m5G1CA60jKL Nw+TXFyS+QXXJlAzNYW945CKLRatN5GBNoWQQlsumQEZLNH+embnZa83z/7EgIQQK+w7I0 5vhEGnPbY7kaom9HKnyKhsaqtixyQGGQjiYacGf0plFKMApgjw0WgYQEGx6QsbcCiKW45f HA02Pog86ZJw+jR+/JMVpGNU4Lg7wD8iZgpWhVLmtTe9sS1XLfZTUglW7tyQuA== 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 4X4Zmz4ZZzzLLw; Fri, 13 Sep 2024 00:24:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D0OJFG056142; Fri, 13 Sep 2024 00:24:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D0OJLc056138; Fri, 13 Sep 2024 00:24:19 GMT (envelope-from git) Date: Fri, 13 Sep 2024 00:24:19 GMT Message-Id: <202409130024.48D0OJLc056138@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c12e3a05252a - main - LinuxKPI: add more fields to mhi.h List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c12e3a05252ac9f43a6db379f88e4b4a07c06d46 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c12e3a05252ac9f43a6db379f88e4b4a07c06d46 commit c12e3a05252ac9f43a6db379f88e4b4a07c06d46 Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 20:44:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-09-13 00:23:35 +0000 LinuxKPI: add more fields to mhi.h Add more fields required by updated wireless drivers to mhi.h. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/include/linux/mhi.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/mhi.h b/sys/compat/linuxkpi/common/include/linux/mhi.h index 2e0b74f29def..24b3205d6f5a 100644 --- a/sys/compat/linuxkpi/common/include/linux/mhi.h +++ b/sys/compat/linuxkpi/common/include/linux/mhi.h @@ -75,6 +75,8 @@ struct mhi_controller { void *regs; int *irq; const char *fw_image; + const u8 *fw_data; + size_t fw_sz; bool fbc_download; size_t rddm_size; From nobody Fri Sep 13 00:25:35 2024 X-Original-To: dev-commits-src-main@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 4X4ZpS1H8cz5V3qM; Fri, 13 Sep 2024 00:25: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4ZpR6Dvbz4bTm; Fri, 13 Sep 2024 00:25:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cyv3joQSyWD8pXIatqSwX0eWvRZeTh8C14DgZ+HGWzw=; b=lUKJAw56X5PNb8dToTNd9I9YPLffT+3a2ZJMQVdjF05uAUD0zeOzgcSiRH3d2AjA8yG1Dn +GXmEG8sch81IKNgeLuy1qTXM2Ue4CVefP1OYCV+xDmBDq6rfPzj0F8pQE+zT2Fxd4RjKw +jycMuqJ7KD1DeKR2Wlit9wih44OA0jz8DoJ9WMYdYgkfKkgz2YNvRlMzbxZb8PmtVoUUy usP2bclYoT/9rj0GHr7o+xBXIe+2mnXfjyrMEmHGqHkw3SJ2ZfByXmGajrak+k4c4n3gfe zzBQF9WdMBvdWtrFnMtqnuB7jLC5Jo2QxlhW5fNOml7Ug+ZFDKpZikIiwuHGxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726187135; a=rsa-sha256; cv=none; b=wGN7J9X0kCI6BYO0v+0f670r+J3wHhqNWT9JIrzeLzHTxhCXyE8Kbg5XUvsI4kWNqCY0lf hQzk7vF6TXrD0KpPRcIKZ5NVYtvI0QW76QZupMmr7HjGZ/K+Qgib9Zm8Rdo2vY9wKI18Oz 027w+Uzi7aWNfLn8gG7tc86irzoT5RIUp9+17JwDkp8Wdavocgh8Gl8HDGWIwSyIKnvXmy /KHLlkbFGQUss/Wrla+xVEOEEFiC7zy6WVfkEJtRHy/J+ZLE9jS2F4XrBnyCBobGQT6zvw 1uI6lmuKdHHiLPyyMAop4KgPf6/iIqpfaQSX2aVqggjhvjVjjU1Gx+lOWC4zUw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cyv3joQSyWD8pXIatqSwX0eWvRZeTh8C14DgZ+HGWzw=; b=QzyAiJvFUiiR3uTG00z0WLnGeodSQ83IDb5XN/Exs9Ea+HRvhCf3u57daGqb4NL/Xwu+Ru Gmcaiu3Q+ADQUm96WcQP2QuyLODYnWe+ArPfyqoEvTKpI+waFuvp+KlSBoefVd+I5u/RGs 32mmI2CRfynW7OlEygz1C4BbQIRy8ajDbwCjEnWS45m+5b5goJbye19lZUUf1DPGkvqrao qPmnuCJ4Dh0IiNAI6ASOIddgTYESXjWpd4LYPR5TztaEan1515bQBNFS+SmN2gzFNWaH4g 7wHc523T6sfT8MvnHIRfQXE3cjiKPvye0w2i04LHkC1i45mh8l5Dmf2PPxv9AA== 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 4X4ZpR5rZtzLGt; Fri, 13 Sep 2024 00:25:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D0PZk1056439; Fri, 13 Sep 2024 00:25:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D0PZFi056436; Fri, 13 Sep 2024 00:25:35 GMT (envelope-from git) Date: Fri, 13 Sep 2024 00:25:35 GMT Message-Id: <202409130025.48D0PZFi056436@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 6ed447b51a9d - main - LinuxKPI; add more defintions to netdevice.h List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6ed447b51a9d6cf22aae2dfba6efce3922ae6d57 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6ed447b51a9d6cf22aae2dfba6efce3922ae6d57 commit 6ed447b51a9d6cf22aae2dfba6efce3922ae6d57 Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 20:46:22 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-09-13 00:24:48 +0000 LinuxKPI; add more defintions to netdevice.h Add new enums to netdevice.h (including one which is referenced but no value of it is used in a driver so we have to add a "dummy" value to avoid an empty enum). Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/include/linux/netdevice.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/netdevice.h b/sys/compat/linuxkpi/common/include/linux/netdevice.h index 3d2b309909b4..dde3ad07dec2 100644 --- a/sys/compat/linuxkpi/common/include/linux/netdevice.h +++ b/sys/compat/linuxkpi/common/include/linux/netdevice.h @@ -75,6 +75,10 @@ struct wireless_dev; /* net/cfg80211.h */ #define NET_NAME_UNKNOWN 0 +enum net_addr_assign_type { + NET_ADDR_RANDOM, +}; + enum netdev_tx { NETDEV_TX_OK = 0, }; @@ -95,6 +99,10 @@ enum net_device_reg_state { NETREG_REGISTERED, }; +enum tc_setup_type { + TC_SETUP_MAX_DUMMY, +}; + struct net_device_ops { int (*ndo_open)(struct net_device *); int (*ndo_stop)(struct net_device *); @@ -122,6 +130,7 @@ struct net_device { unsigned long tx_errors; unsigned long tx_packets; } stats; + enum net_addr_assign_type addr_assign_type; enum net_device_reg_state reg_state; const struct ethtool_ops *ethtool_ops; const struct net_device_ops *netdev_ops; From nobody Fri Sep 13 00:26:29 2024 X-Original-To: dev-commits-src-main@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 4X4ZqT1xb0z5V41p; Fri, 13 Sep 2024 00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4ZqT1RmXz4blB; Fri, 13 Sep 2024 00: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=1726187189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=raGekOD1ZMd4W3pAJcfopYfVg58IyrAi1ThLmyD6KRo=; b=JVx1SIfupAEgUZMXvYSANtJEQNjNrsbG/RRVMYnNEQ+yI3Cld2QLkLv8Uf7jZmnbR05C6l HRzEwLFUqowLkjZ5OrQiPAnTyO8BiqfCSqXYclx0GqfXI3q9BSUKY0db/ovDeVj4jjAgNr at94K3Pd4JPWrEW22sJOR8SsUUdxe3MV6lCZllFkmXlmN8FcXU7fnZMwgzF/LqkGsKceZM 9o1ZWNsZiem/VOu0xyj/nFr86Sm3ywtHzF3viwptcI/v3Z6c/Xy+sOc8WvCbsrn9FB3FX5 LUd579Y80MhRPqfIgno7OTUitAXkVmZGvCJEFeeS2VAmA7q8y2kuzdSJlELOWg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726187189; a=rsa-sha256; cv=none; b=gxiwDCfeFvpjjGmADjHiOvbrr9A4XLIwJ23NSraNwKNxzCf4pkko+rtsh6v+W8sdtdEhIX Tskyh0lMU7bvpTlo/loA8Sd1e4kHw9j8Y01um9Taa8zYZGUMgYm9wvbf0Bj4OxbC7wB/el Nd50zlDKoMd43vklcUeZ+gIDfetbb+eb4WPAPpQFWu8eqv6TFvN0RlX51XlRkgW70DbIWv 3bbY1ByKb/QxxQCZU/K7mZ2LNWh0OuqluZrvvUnnB+z5x1qGxeaDoyOj1u0m/oIjBf2BKq NYXpz/IKHn6V5JJA5sRPjfg2jsVwL6V2peRhOEtSz2I9av5CIejV7b2AhyvYQQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=raGekOD1ZMd4W3pAJcfopYfVg58IyrAi1ThLmyD6KRo=; b=NGJhAfuA7Gbp74d4hxQSLzWBGRSibD0OeqZXH0yu1psSiCYze89tddcXtXyObdJ4Q3FVFB Dw2puruTKMdHGxAhlIySdJQg9hbxEK6CGeQlQOAGsJJYZkTQ9v+wVd0IEvtH6kR6YgHQh7 q/kMWLp/oMtxQbBckl4rNzBG8p4nrYDVoqbaIZolqIxy77u5Jb9qK4VSE5Z7WPGDnvFxGX 6dP54atnHbEL5+5TECgujMhn2uSHw0ACLV0vdZKbV/EJlnqHFhT46SkYr1h9dDMyR6NNp2 B8NYALTbjuFTZ410ltovdfybwi9Bmp9/Fqxb1w8CLqzxxICShgWANdhL5udf+w== 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 4X4ZqT13FHzLYF; Fri, 13 Sep 2024 00:26:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D0QTss056693; Fri, 13 Sep 2024 00:26:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D0QT9b056690; Fri, 13 Sep 2024 00:26:29 GMT (envelope-from git) Date: Fri, 13 Sep 2024 00:26:29 GMT Message-Id: <202409130026.48D0QT9b056690@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4b972f77a16f - main - LinuxKPI: some additions for mt76 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4b972f77a16f9a217c211c8c4f28a41eca98554e Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4b972f77a16f9a217c211c8c4f28a41eca98554e commit 4b972f77a16f9a217c211c8c4f28a41eca98554e Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 23:08:57 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-09-13 00:25:31 +0000 LinuxKPI: some additions for mt76 Add changes required for later mt76 drivers. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h | 1 + sys/compat/linuxkpi/common/include/net/page_pool.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h b/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h index b0aec2d4afbd..74038f0e7520 100644 --- a/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h +++ b/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h @@ -42,6 +42,7 @@ struct mtk_wed_device { #define mtk_wed_device_ppe_check(_dev, _skb, _reason, _entry) \ do {} while (0) #define mtk_wed_device_stop(_dev) do { } while(0) +#define mtk_wed_device_start_hw_rro(_dev, _mask, _b) do { } while(0) static inline bool mtk_wed_device_active(struct mtk_wed_device *dev __unused) diff --git a/sys/compat/linuxkpi/common/include/net/page_pool.h b/sys/compat/linuxkpi/common/include/net/page_pool.h index 82dbeff82167..2dc8f74b31f3 100644 --- a/sys/compat/linuxkpi/common/include/net/page_pool.h +++ b/sys/compat/linuxkpi/common/include/net/page_pool.h @@ -29,6 +29,7 @@ #include /* pr_debug */ #include #include +#include struct device; @@ -41,6 +42,7 @@ struct page_pool_params { uint32_t offset; int nid; /* NUMA */ enum dma_data_direction dma_dir; + struct napi_struct *napi; }; struct page_pool { From nobody Fri Sep 13 00:27:49 2024 X-Original-To: dev-commits-src-main@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 4X4Zs14mP1z5V3tB; Fri, 13 Sep 2024 00:27: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4Zs12dfHz4cLc; Fri, 13 Sep 2024 00:27:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187269; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RfHkmd7r0Twv0dpLwW0QehT2xd+5EFFWH5UGBCF+bQg=; b=oPXtGkct4KwpyAKN5NlecKLPMcK4p/7Nwuxnk5FcmjijxG/R6MvE9D7cmr0z+g2z/PQguc RIUWUI8Xp9Ua7fo7NzwH9nfAyzA32C6mNVzDqebAIr830ohXlJn9oBwXA+h0TvCSinfwlP kQRlyrEQgdlMdGFI+9zjk+CTi2C3pB4DSV3BEivSXlDoMk69ZOpzLqpCcRB6FtLMUPIKYd b8iZJW3Vc1Kalo0oYPXaYFjBwVukSVsvfyPIzeJckSfBIKLFlfWZQDCQj43DPLT21A4I2o 04H0qXDXw8SHx9gs6bx+7NYl+MIUSd4x29RqjNgRg8s8INtrumuXyHjX17RD7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726187269; a=rsa-sha256; cv=none; b=kw9wErr+nPuvYWvLA07VlgHvU6FkKwPkuNVAS6r1u4QkDy2no2+kvy+LAu63YT+Is6/0Qc uTvlRTa6oTtUQh1dhtjFOb2g5nLFZhnOsGwP46KnUwogdDvGqX6ZfUVLa7wXymMOniWag4 Zqmn8DoaKUx+FeQX1enA5oKHnSzW6b9gaWRHXMz1PTV4A0Y7hE/l91Kuk14NDAY0Lm7ucI VBScSNXEDnMYEDgmdSfJOAwiHrtB86iUH1QeoGIxWYTIEUD4X+iJPIxZvbGeuRomvUtFFS mNw12nL8/yQmok2m/aXHMRtBsGExUxmjsOu3uTRI42e2YNzfxOS984GaZBYVug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726187269; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RfHkmd7r0Twv0dpLwW0QehT2xd+5EFFWH5UGBCF+bQg=; b=iLYzY2JovJR7PIkmupU2TDE2DXzyLlDyQ1Rm2wY9BY84s5uKjXhkJN7OuvT4trvw9V0BBn v/KDFhH680GmvkbLbfFR0L2TvsMXXco8nAoCNhoQe4f5xGgUJyZRVPzmWLNtQpGHG9qe1V ZNJos+3pxQkQ99z+cy2GNxgjDGGjlizAipNGd22PrvDgyzddjGXq5DyGUwK3nCsI1RHS5y QYknje6NbcA25KWJ7Tbrzi9UUqKPMco+baLep4NDQqDv+BSk6mb/jPULW0UYeX5YuBtn9l SFyzHPJ7YpH2bk71Lh4x/crfWg54qBqbfBhC+zP2lHQcpXT/NI8H9S6l4M9mDw== 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 4X4Zs12DtGzLYG; Fri, 13 Sep 2024 00:27:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D0RnYI057024; Fri, 13 Sep 2024 00:27:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D0RnOt057021; Fri, 13 Sep 2024 00:27:49 GMT (envelope-from git) Date: Fri, 13 Sep 2024 00:27:49 GMT Message-Id: <202409130027.48D0RnOt057021@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c1c989588df6 - main - LinuxKPI: 802.11: add futher defines to ieee80211.h and nl80211.h List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c1c989588df67396392edceb0e7e7028abc06c49 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c1c989588df67396392edceb0e7e7028abc06c49 commit c1c989588df67396392edceb0e7e7028abc06c49 Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 20:34:49 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-09-13 00:26:26 +0000 LinuxKPI: 802.11: add futher defines to ieee80211.h and nl80211.h Upstream new defines, enum values, etc. for coming driver updates which are non-conflicting with the current state. The only notable change is the rename of the enum ieee80211_ap_reg_power but the enum name had not been used so far by any driver in the tree (only in mac80211.h) but an updated version of ath11k does use it so we need to correct our initial naming. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- .../linuxkpi/common/include/linux/ieee80211.h | 63 ++++++++++++++++++++-- sys/compat/linuxkpi/common/include/linux/nl80211.h | 18 ++++++- sys/compat/linuxkpi/common/include/net/mac80211.h | 2 +- 3 files changed, 76 insertions(+), 7 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index aa1a0a4f3c5f..9a43a571d390 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2023 The FreeBSD Foundation + * Copyright (c) 2020-2024 The FreeBSD Foundation * * This software was developed by Björn Zeeb under sponsorship from * the FreeBSD Foundation. @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -125,8 +126,9 @@ enum wlan_ht_cap_sm_ps { WLAN_HT_CAP_SM_PS_DISABLED, }; -#define WLAN_MAX_KEY_LEN 32 /* TODO FIXME brcmfmac */ -#define WLAN_PMKID_LEN 16 /* TODO FIXME brcmfmac */ +#define WLAN_MAX_KEY_LEN 32 +#define WLAN_PMKID_LEN 16 +#define WLAN_PMK_LEN_SUITE_B_192 48 #define WLAN_KEY_LEN_WEP40 5 #define WLAN_KEY_LEN_WEP104 13 @@ -178,6 +180,7 @@ enum ieee80211_min_mpdu_start_spacing { #define IEEE80211_STYPE_CTS IEEE80211_FC0_SUBTYPE_CTS #define IEEE80211_STYPE_RTS IEEE80211_FC0_SUBTYPE_RTS #define IEEE80211_STYPE_ACTION IEEE80211_FC0_SUBTYPE_ACTION +#define IEEE80211_STYPE_DATA IEEE80211_FC0_SUBTYPE_DATA #define IEEE80211_STYPE_QOS_DATA IEEE80211_FC0_SUBTYPE_QOS_DATA #define IEEE80211_STYPE_QOS_NULLFUNC IEEE80211_FC0_SUBTYPE_QOS_NULL #define IEEE80211_STYPE_QOS_CFACK 0xd0 /* XXX-BZ reserved? */ @@ -277,6 +280,8 @@ enum ieee80211_ac_numbers { #define IEEE80211_HT_MCS_MASK_LEN 10 #define IEEE80211_MLD_MAX_NUM_LINKS 15 +#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP 0x0060 +#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP_SAME 1 struct ieee80211_mcs_info { uint8_t rx_mask[IEEE80211_HT_MCS_MASK_LEN]; @@ -328,6 +333,7 @@ enum ieee80211_chanctx_change_flags { IEEE80211_CHANCTX_CHANGE_RX_CHAINS = BIT(2), IEEE80211_CHANCTX_CHANGE_WIDTH = BIT(3), IEEE80211_CHANCTX_CHANGE_CHANNEL = BIT(4), + IEEE80211_CHANCTX_CHANGE_PUNCTURING = BIT(5), }; enum ieee80211_frame_release_type { @@ -543,6 +549,7 @@ struct ieee80211_mgmt { } wnm_timing_msr; } u; } action; + DECLARE_FLEX_ARRAY(uint8_t, body); } u; }; @@ -567,6 +574,8 @@ struct ieee80211_rts { /* net80211::ieee80211_frame_rts */ #define IEEE80211_SEQ_TO_SN(_seqn) (((_seqn) & IEEE80211_SEQ_SEQ_MASK) >> \ IEEE80211_SEQ_SEQ_SHIFT) +#define IEEE80211_SN_TO_SEQ(_sn) (((_sn) << IEEE80211_SEQ_SEQ_SHIFT) & \ + IEEE80211_SEQ_SEQ_MASK) /* Time unit (TU) to .. See net80211: IEEE80211_DUR_TU */ #define TU_TO_JIFFIES(_tu) (usecs_to_jiffies(_tu) * 1024) @@ -640,10 +649,10 @@ struct ieee80211_trigger { /* Table 9-29c-Trigger Type subfield encoding */ enum { IEEE80211_TRIGGER_TYPE_BASIC = 0x0, + IEEE80211_TRIGGER_TYPE_MU_BAR = 0x2, #if 0 /* Not seen yet. */ BFRP = 0x1, - MU-BAR = 0x2, MU-RTS = 0x3, BSRP = 0x4, GCR MU-BAR = 0x5, @@ -654,6 +663,12 @@ enum { IEEE80211_TRIGGER_TYPE_MASK = 0xf }; +#define IEEE80211_TRIGGER_ULBW_MASK 0xc0000 +#define IEEE80211_TRIGGER_ULBW_20MHZ 0x0 +#define IEEE80211_TRIGGER_ULBW_40MHZ 0x1 +#define IEEE80211_TRIGGER_ULBW_80MHZ 0x2 +#define IEEE80211_TRIGGER_ULBW_160_80P80MHZ 0x3 + /* 802.11-2020, Figure 9-687-Control field format; 802.11ax-2021 */ #define IEEE80211_TWT_CONTROL_NEG_TYPE_BROADCAST BIT(3) #define IEEE80211_TWT_CONTROL_RX_DISABLED BIT(4) @@ -694,12 +709,50 @@ struct ieee80211_bssid_index { int bssid_index; }; -enum ieee80211_reg_ap_power { +enum ieee80211_ap_reg_power { + IEEE80211_REG_UNSET_AP, IEEE80211_REG_LPI_AP, IEEE80211_REG_SP_AP, IEEE80211_REG_VLP_AP, }; +/* + * 802.11ax-2021, Table 9-277-Meaning of Maximum Transmit Power Count subfield + * if Maximum Transmit Power Interpretation subfield is 1 or 3 + */ +#define IEEE80211_MAX_NUM_PWR_LEVEL 8 + +/* + * 802.11ax-2021, Table 9-275a-Maximum Transmit Power Interpretation subfield + * encoding (4) * Table E-12-Regulatory Info subfield encoding in the + * United States (2) + */ +#define IEEE80211_TPE_MAX_IE_NUM 8 + +/* 802.11ax-2021, 9.4.2.161 Transmit Power Envelope element */ +struct ieee80211_tx_pwr_env { + uint8_t tx_power_info; + uint8_t tx_power[IEEE80211_MAX_NUM_PWR_LEVEL]; +}; + +/* 802.11ax-2021, Figure 9-617-Transmit Power Information field format */ +/* These are field masks (3bit/3bit/2bit). */ +#define IEEE80211_TX_PWR_ENV_INFO_COUNT 0x07 +#define IEEE80211_TX_PWR_ENV_INFO_INTERPRET 0x38 +#define IEEE80211_TX_PWR_ENV_INFO_CATEGORY 0xc0 + +/* + * 802.11ax-2021, Table 9-275a-Maximum Transmit Power Interpretation subfield + * encoding + */ +enum ieee80211_tx_pwr_interpretation_subfield_enc { + IEEE80211_TPE_LOCAL_EIRP, + IEEE80211_TPE_LOCAL_EIRP_PSD, + IEEE80211_TPE_REG_CLIENT_EIRP, + IEEE80211_TPE_REG_CLIENT_EIRP_PSD, +}; + + /* net80211: IEEE80211_IS_CTL() */ static __inline bool ieee80211_is_ctl(__le16 fc) diff --git a/sys/compat/linuxkpi/common/include/linux/nl80211.h b/sys/compat/linuxkpi/common/include/linux/nl80211.h index 5b43ff675e19..6916957731e2 100644 --- a/sys/compat/linuxkpi/common/include/linux/nl80211.h +++ b/sys/compat/linuxkpi/common/include/linux/nl80211.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2023 The FreeBSD Foundation + * Copyright (c) 2020-2024 The FreeBSD Foundation * * This software was developed by Björn Zeeb under sponsorship from * the FreeBSD Foundation. @@ -80,6 +80,10 @@ enum nl80211_reg_rule_flags { NL80211_RRF_NO_OFDM = BIT(10), NL80211_RRF_NO_320MHZ = BIT(11), NL80211_RRF_NO_EHT = BIT(12), + NL80211_RRF_DFS_CONCURRENT = BIT(13), + NL80211_RRF_NO_6GHZ_VLP_CLIENT = BIT(14), + NL80211_RRF_NO_6GHZ_AFC_CLIENT = BIT(15), + NL80211_RRF_PSD = BIT(16), }; #define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS|NL80211_RRF_NO_HT40PLUS) @@ -230,6 +234,13 @@ enum nl80211_ext_feature { NL80211_EXT_FEATURE_BEACON_PROTECTION, NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, NL80211_EXT_FEATURE_PUNCT, + NL80211_EXT_FEATURE_DFS_CONCURRENT, + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS, + NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT, + NL80211_EXT_FEATURE_SECURE_LTF, + NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK, + NL80211_EXT_FEATURE_SAE_OFFLOAD_AP, /* Keep this last. */ NUM_NL80211_EXT_FEATURES @@ -241,6 +252,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_BEACON_SIGNAL_AVG, NL80211_STA_INFO_BSS_PARAM, NL80211_STA_INFO_CHAIN_SIGNAL, + NL80211_STA_INFO_CHAIN_SIGNAL_AVG, NL80211_STA_INFO_CONNECTED_TIME, NL80211_STA_INFO_INACTIVE_TIME, NL80211_STA_INFO_SIGNAL, @@ -416,6 +428,10 @@ enum nl80211_user_reg_hint_type { NL80211_USER_REG_HINT_USER, }; +enum nl80211_hidden_ssid { + NL80211_HIDDEN_SSID_NOT_IN_USE, +}; + #define NL80211_KCK_LEN 16 #define NL80211_KCK_EXT_LEN 24 #define NL80211_KEK_LEN 16 diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index c102ada6def2..29fb335a8db9 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -303,7 +303,7 @@ struct ieee80211_bss_conf { int16_t txpower; uint32_t basic_rates; int mcast_rate[NUM_NL80211_BANDS]; - enum ieee80211_reg_ap_power power_type; + enum ieee80211_ap_reg_power power_type; struct cfg80211_bitrate_mask beacon_tx_rate; struct mac80211_fils_discovery fils_discovery; struct ieee80211_chanctx_conf *chanctx_conf; From nobody Fri Sep 13 04:43:33 2024 X-Original-To: dev-commits-src-main@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 4X4hX55cmsz5WGfN; Fri, 13 Sep 2024 04:43: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4hX553v7z44gt; Fri, 13 Sep 2024 04:43:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726202613; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8bIQvcK4Fy0CVJc/Gj/axLj1T13JdAIen08o206z3Mk=; b=Y/bpgYAPbbyI7DxRJ/1JRVWWDM5qkn6U9oEKLcnqas9ZAgzHsVhOOk5oyRieAKqdiRVbz2 E+5nrL91DAi9IZQTD+EKBNvjyfQUZc+PmE1s3ExWLPTRxYlyIiLxtZOXjAzS4+RXlL3tG3 yoocYrubmoht3L+kFtAOcAXwwP4j1LLIbCu4rhrV5VQ00JUJSrWPC6Snfe21bSNckcq0L6 svrhD3u3qNQvCx2XXL5ykTFhxWNPfjpJ01ZSLlKOoI4gsXJYzXFgw9BMMZvxXTf+DKHw2f f2lBAeBUxDA57+2P+yqP3zFxw6hSBEQZAybPqZWpS4i17CO6Z/SrJJhc+HAWzQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726202613; a=rsa-sha256; cv=none; b=PDc7weqi0MWcgV8HWjl9/muHljzPuRCipwVoIsAIdW63V4VGRWh5DxE4Uf46n4hqKKJ19T Kk8WwIeYGLedUa6ksxulJrbeEipAoff/ddATtIerqYNqwzFeJnK9/eaFr+1PHncv13C0gd fSEGh1PbBSYK6jC4AAU0ptOeUKrnk4fSSojYV9BG7iNvQNmqqA+2mBfnXbqmHov+cUsP29 bcQe513+52W4xjVEjrKe6ACYH8ItjENBDSXqqrlowhk+7KlhugYEHbzHRXOHHDcK/zPMYk 3Awwst0JlouiT0dcRic9wFU1cCqQZpwp2JtmJq+Tg7Gqj5fXDP7cK2GVnY2f8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726202613; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8bIQvcK4Fy0CVJc/Gj/axLj1T13JdAIen08o206z3Mk=; b=xyasESUY64RTHzm8HuDv2Ww2sX6CPrOifHJQtyRrnJHxVA6s0fZLQ42GT0i+8zFmjbqJRB pDIFJ2nOFF5O7vxRDAKzZNkv2pgWyo7mvQ8uqNUeDJQS7CcvezWU7IC2fJ2tPnmuIiENhM 6l80LWQp5y3zxbQAZTDdShH2PPv9TMC2SfwfmutbI2ekWeWgp/ZUKNpYxg93uQu5dcYjDD GHLqz+eAPmGuCLGGRUDsqJfJPBp01ir2k6kKltwKMYen+5T+POYshzlRlA4sNSBiDkzQvm HU+vnMNRjFo2huM97oLhYzjWtZTbVF+FW78R5XYAFRnjnt+2RbKRfMflk4CpXA== 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 4X4hX54gWTzT4C; Fri, 13 Sep 2024 04:43:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D4hX0C098012; Fri, 13 Sep 2024 04:43:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D4hXTh098009; Fri, 13 Sep 2024 04:43:33 GMT (envelope-from git) Date: Fri, 13 Sep 2024 04:43:33 GMT Message-Id: <202409130443.48D4hXTh098009@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: 4876924c0c57 - main - vm_page: fuse two allocation loops List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 4876924c0c57c2255a0e4c254b4054e029e3d884 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=4876924c0c57c2255a0e4c254b4054e029e3d884 commit 4876924c0c57c2255a0e4c254b4054e029e3d884 Author: Doug Moore AuthorDate: 2024-09-13 04:41:01 +0000 Commit: Doug Moore CommitDate: 2024-09-13 04:41:01 +0000 vm_page: fuse two allocation loops Combine two loops, each iterating over the same array of pages to initialize them, into a single loop. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D46609 --- sys/vm/vm_page.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 0f41ea5a6bb5..d21cc38f5e39 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -2352,10 +2352,6 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pindex_t pindex, int domain, if (!vm_domain_alloc_fail(VM_DOMAIN(domain), object, req)) return (NULL); } - for (m = m_ret; m < &m_ret[npages]; m++) { - vm_page_dequeue(m); - vm_page_alloc_check(m); - } /* * Initialize the pages. Only the PG_ZERO flag is inherited. @@ -2376,6 +2372,8 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pindex_t pindex, int domain, memattr == VM_MEMATTR_DEFAULT) memattr = object->memattr; for (m = m_ret; m < &m_ret[npages]; m++) { + vm_page_dequeue(m); + vm_page_alloc_check(m); m->a.flags = 0; m->flags = (m->flags | PG_NODUMP) & flags; m->busy_lock = busy_lock; From nobody Fri Sep 13 05:10:17 2024 X-Original-To: dev-commits-src-main@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 4X4j6y0f4yz5VqxH; Fri, 13 Sep 2024 05:10: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4j6x5xrZz473H; Fri, 13 Sep 2024 05:10:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726204217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=irF7pz962R1d35K/6d3tPiCynmBYSQN0owxF19/CUKI=; b=F5dKqcEwm4rcWx3greha75ptbEsR9DmhEQU1U6/u+ohauaAWD/3twJZv4wgYvtaRjIsKy/ /M1Qjiwyir5Ifi5AOcNgHFu92M+ZVywE3WqGCpuxPS/mVarIWmQkQvDSaki1wO42mlcRsD y7yXZt8Me5tkJIdfEeLrj6piuYfXzSPLPIne3/WssynPZPATK8p9YtqWSDPnA3A2CZCE/5 b3DI9wjKx4y1mG17BYVdoTGU6b42BGZT+2I2R8QCJtL3f/6cR/aoYCKDqgHRI0AwrCjvD/ v3QUspI5u3o1W7+R2bgVc1VT9jAHKoKM30YLNL4Gphn0ydEME3jtXevWuqo9yQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726204217; a=rsa-sha256; cv=none; b=qArtxxQT8wzacLB81AYSj/MsleL0KK2SDSTHbXsYkUGtvLHU/v8mxkV3qxqMt22qiOMMt9 AQyFg8AWKqT0ONsp2xLYNH8HNi29fBegyOwPCk005BfiEl42Tvms/Unxj2sRv41iMkSc+9 T7a6w+K9C/zfk8+iu7LhaakEFyCMiA5h+qryE/wAZOHDCRtOcIz8g5FjENTzhfDjLCcyVL agFGVW9cvo1HKWBQNjHXLAGsDVg/6Avb/CdJElU74G1NdV/DVSG3K37ueWTM//g9o0VU22 qMOXp+UiYFOmeQXbasFKE916Cpm5inyH10n40gSdiD0bODcMpdIS6hR7qHOkbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726204217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=irF7pz962R1d35K/6d3tPiCynmBYSQN0owxF19/CUKI=; b=xXqKNMl1hGAAH/ndZJSHGW9qA2W1DyyVLCRaRwcj0CToHXh3EtnFoNIA9ghQkUpP8JAE6A iAYLwe5XbOs+WwOd2YZRWU41tELmdN0l12u+hLRo787+vvqJreDp8sQlkhSuOdIj1EmWeV zDViPR+hWFz0MjpsE6GHalAhLhejtHprsOcACCMm2wjZRSIVybPPtFP4ieuUMePv9RXd5D UfErJQ2gq8w5CyfnDvNR/+Rb9Zv1SRpqwMx8hpYNs8HVTG//LYsV1dzKNO6T9QGRF83sPY fI6DSkshXHEoHkzBuFFLvAUNSF7AKiOC6HcE2aTSCSIM9iAsm5TNYXbtj+Ebag== 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 4X4j6x5YFRzVk0; Fri, 13 Sep 2024 05:10:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D5AHAq041983; Fri, 13 Sep 2024 05:10:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D5AHur041980; Fri, 13 Sep 2024 05:10:17 GMT (envelope-from git) Date: Fri, 13 Sep 2024 05:10:17 GMT Message-Id: <202409130510.48D5AHur041980@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: fa4b5aa51f1b - main - freebsd.sys.linker: remove license to only keep SPDX line List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fa4b5aa51f1b3971e92f831b8e67e83aaed3c212 Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=fa4b5aa51f1b3971e92f831b8e67e83aaed3c212 commit fa4b5aa51f1b3971e92f831b8e67e83aaed3c212 Author: Baptiste Daroussin AuthorDate: 2024-09-13 05:06:39 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-13 05:07:23 +0000 freebsd.sys.linker: remove license to only keep SPDX line --- .../libfreebsd/sys/linker/freebsd.sys.linker.3lua | 21 --------------------- libexec/flua/libfreebsd/sys/linker/linker.c | 22 ---------------------- 2 files changed, 43 deletions(-) diff --git a/libexec/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua b/libexec/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua index 0ab8f185388a..34198d20463e 100644 --- a/libexec/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua +++ b/libexec/flua/libfreebsd/sys/linker/freebsd.sys.linker.3lua @@ -3,27 +3,6 @@ .\" .\" Copyright (c) 2024, Baptiste Daroussin .\" -.\" 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. -.\" .Dd September 6, 2024 .Dt FREEBSD.SYS.LINKER 3lua .Os diff --git a/libexec/flua/libfreebsd/sys/linker/linker.c b/libexec/flua/libfreebsd/sys/linker/linker.c index a2dc3b487525..87eccfb651f0 100644 --- a/libexec/flua/libfreebsd/sys/linker/linker.c +++ b/libexec/flua/libfreebsd/sys/linker/linker.c @@ -2,30 +2,8 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2024, Baptiste Daroussin - * - * 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 REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ - #include #include From nobody Fri Sep 13 08:20:17 2024 X-Original-To: dev-commits-src-main@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 4X4nL95VF2z5WLl1; Fri, 13 Sep 2024 08:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4nL93P9bz4bvx; Fri, 13 Sep 2024 08:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726215617; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a7yhOoRWuOhFgWI1Y8mKM24JjWNJRQ6h4toOnStwv9g=; b=QR22lWUH+7+0e4UGyRn+laf/UUxmncVp9oW5xDcQKu3eypgmAE+ajjMMOBQdGjSZWYSH1T YEcm3gdf9scs/xxaYu08G7Ed7t38U19is97uMJbv9Ua5sFcsUn9sxGfmL05kHqkc9z75zn nXJZf/xjbAZsU9Lp/PSkJsXR5V8ZR41TkpyIgiGTTTAAisuOihcJF3Rnyv4neY2fDQR0VF Kov/Who9LQSdo5eIL0WFLFKXsq0+TKNd/AjifJgoZbHdC/YRawbuxPJGMJzumYN64vOr/7 e0zHZlNg+45Zs83tFU/1wYaOeucWEb4IYQHK/PHCca9IXTJbx9ao03Ea/bmErQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726215617; a=rsa-sha256; cv=none; b=dfT2s5y2BjRRAaGLPZ81zPWo1QnwJewG1Fd/e4h7vBTtWLC2bOht4FQcqAxikS3Xhn18P1 0zMmUvoGi0tob8ytYcqwEJ0uqB7pqte5z5pNWkEtOebDC7i1CKBWBGtd5Y8zQRK8KKbZhO 8ZakV/auZkeaWDz1mzb6uWTf/kfcHluWP4PqTzBv7vQFkr4MAY00GwIMgjK7b0+duqjF6e 41WH3y4hGohJmMExR6gNVtwgpM8neDQxx+BsNepYBnyYwXFggMhZFy74V3LXoOEDVbByEx xncPyOvoHFMHV1YbqexqQlqGRMFsKbFRjabkIT/H98i9OnvfF6bOC8Lkg+RzMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726215617; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a7yhOoRWuOhFgWI1Y8mKM24JjWNJRQ6h4toOnStwv9g=; b=RAcvAAp7gw2AnsDsBqUzRWTCl6NIbUnbIgDC0VhJMI5J8IjJL+fBuZMTtHcK4kB+sEWbY8 omKLUIHljihg6DPJq2VOxQzncjpK5WVyRmjM1TalZJRhi3PgQAqF7szeam1mkd1fIvi0vJ XsF8mXH+bPOmiq7FAaHWl4o3wFLIA7cBJJIZLmP2mLmwUjSIiHFpJTwJxxUs4ZutQfb7jR 7E7VM8xagnnPzM+QdD0kyJSZqHyZGfUQjSiFpmSZn6Ghng3qo9F9AuuxPpwcD+tg/DNmN5 uffUwGDZfq2Cam8P7e6oQcmF8f+Pa2pzHjrvl+r3vU8JKtbeJjwpeWzFm2JANw== 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 4X4nL92fRczbMj; Fri, 13 Sep 2024 08:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D8KH2Q063227; Fri, 13 Sep 2024 08:20:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D8KHOo063218; Fri, 13 Sep 2024 08:20:17 GMT (envelope-from git) Date: Fri, 13 Sep 2024 08:20:17 GMT Message-Id: <202409130820.48D8KHOo063218@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Tom Jones Subject: git: be9fefafc280 - main - imx_ccm: Rearrange clock control module driver List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: thj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: be9fefafc2801ef449a0f3205c9397ba35425323 Auto-Submitted: auto-generated The branch main has been updated by thj: URL: https://cgit.FreeBSD.org/src/commit/?id=be9fefafc2801ef449a0f3205c9397ba35425323 commit be9fefafc2801ef449a0f3205c9397ba35425323 Author: Tom Jones AuthorDate: 2024-09-11 12:51:10 +0000 Commit: Tom Jones CommitDate: 2024-09-13 08:15:19 +0000 imx_ccm: Rearrange clock control module driver Rearrange the IMX clock control module driver so it is more straight forward to support clock trees from other SOCs in the family. Move the existing imx8mq_ccm driver to a more generic imx_ccm (based on rk_cru) and update the previous driver to sub class imx_ccm. Reviewed by: manu Sponsored by: The FreeBSD Foundations Differential Revision: https://reviews.freebsd.org/D46641 --- sys/arm64/freescale/imx/imx8mq_ccm.c | 197 ++--------------- sys/arm64/freescale/imx/imx_ccm.c | 237 +++++++++++++++++++++ .../freescale/imx/{imx_ccm_clk.h => imx_ccm.h} | 20 +- sys/conf/files.arm64 | 1 + 4 files changed, 272 insertions(+), 183 deletions(-) diff --git a/sys/arm64/freescale/imx/imx8mq_ccm.c b/sys/arm64/freescale/imx/imx8mq_ccm.c index e89300c19d51..17bea24e9b39 100644 --- a/sys/arm64/freescale/imx/imx8mq_ccm.c +++ b/sys/arm64/freescale/imx/imx8mq_ccm.c @@ -27,7 +27,7 @@ #include /* - * Clocks driver for Freescale i.MX8MQ SoC + * Clocks driver for Freescale i.MX 8M Quad SoC. */ #include @@ -43,7 +43,7 @@ #include -#include +#include #include #include #include @@ -118,7 +118,7 @@ static const char *ahb_p[] = { "sys3_pll_out", "audio_pll1_out", "video_pll1_out" }; -static struct imx_clk imx_clks[] = { +static struct imx_clk imx8mq_clks[] = { FIXED(IMX8MQ_CLK_DUMMY, "dummy", 0), LINK(IMX8MQ_CLK_32K, "ckil"), @@ -275,119 +275,22 @@ struct ccm_softc { int nclks; }; -static inline uint32_t -CCU_READ4(struct ccm_softc *sc, bus_size_t off) -{ - - return (bus_read_4(sc->mem_res, off)); -} - -static inline void -CCU_WRITE4(struct ccm_softc *sc, bus_size_t off, uint32_t val) -{ - - bus_write_4(sc->mem_res, off, val); -} - static int -ccm_detach(device_t dev) +imx8mq_ccm_attach(device_t dev) { - struct ccm_softc *sc; + struct imx_ccm_softc *sc; sc = device_get_softc(dev); + sc->dev = dev; - if (sc->mem_res != NULL) - bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res); - - return (0); -} - -static int -ccm_attach(device_t dev) -{ - struct ccm_softc *sc; - int err, rid; - phandle_t node; - int i; + sc->clks = imx8mq_clks; + sc->nclks = nitems(imx8mq_clks); - sc = device_get_softc(dev); - err = 0; - - /* Allocate bus_space resources. */ - rid = 0; - sc->clks = imx_clks; - sc->nclks = nitems(imx_clks); - sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, - RF_ACTIVE); - if (sc->mem_res == NULL) { - device_printf(dev, "Cannot allocate memory resources\n"); - err = ENXIO; - goto out; - } - - mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); - - sc->clkdom = clkdom_create(dev); - if (sc->clkdom == NULL) - panic("Cannot create clkdom\n"); - - for (i = 0; i < sc->nclks; i++) { - switch (sc->clks[i].type) { - case IMX_CLK_UNDEFINED: - break; - case IMX_CLK_LINK: - clknode_link_register(sc->clkdom, - sc->clks[i].clk.link); - break; - case IMX_CLK_FIXED: - clknode_fixed_register(sc->clkdom, - sc->clks[i].clk.fixed); - break; - case IMX_CLK_MUX: - imx_clk_mux_register(sc->clkdom, sc->clks[i].clk.mux); - break; - case IMX_CLK_GATE: - imx_clk_gate_register(sc->clkdom, sc->clks[i].clk.gate); - break; - case IMX_CLK_COMPOSITE: - imx_clk_composite_register(sc->clkdom, sc->clks[i].clk.composite); - break; - case IMX_CLK_SSCG_PLL: - imx_clk_sscg_pll_register(sc->clkdom, sc->clks[i].clk.sscg_pll); - break; - case IMX_CLK_FRAC_PLL: - imx_clk_frac_pll_register(sc->clkdom, sc->clks[i].clk.frac_pll); - break; - case IMX_CLK_DIV: - clknode_div_register(sc->clkdom, sc->clks[i].clk.div); - break; - default: - device_printf(dev, "Unknown clock type %d\n", sc->clks[i].type); - return (ENXIO); - } - } - - if (clkdom_finit(sc->clkdom) != 0) - panic("cannot finalize clkdom initialization\n"); - - if (bootverbose) - clkdom_dump(sc->clkdom); - - node = ofw_bus_get_node(dev); - clk_set_assigned(dev, node); - - err = 0; - -out: - - if (err != 0) - ccm_detach(dev); - - return (err); + return (imx_ccm_attach(dev)); } static int -ccm_probe(device_t dev) +imx8mq_ccm_probe(device_t dev) { if (!ofw_bus_status_okay(dev)) @@ -396,87 +299,21 @@ ccm_probe(device_t dev) if (ofw_bus_is_compatible(dev, "fsl,imx8mq-ccm") == 0) return (ENXIO); - device_set_desc(dev, "Freescale i.MX8 Clock Control Module"); + device_set_desc(dev, "Freescale i.MX 8M Quad Clock Control Module"); return (BUS_PROBE_DEFAULT); } -static int -imx_ccm_write_4(device_t dev, bus_addr_t addr, uint32_t val) -{ - struct ccm_softc *sc; - - sc = device_get_softc(dev); - CCU_WRITE4(sc, addr, val); - return (0); -} - -static int -imx_ccm_read_4(device_t dev, bus_addr_t addr, uint32_t *val) -{ - struct ccm_softc *sc; - - sc = device_get_softc(dev); - - *val = CCU_READ4(sc, addr); - return (0); -} - -static int -imx_ccm_modify_4(device_t dev, bus_addr_t addr, uint32_t clr, uint32_t set) -{ - struct ccm_softc *sc; - uint32_t reg; - - sc = device_get_softc(dev); - - reg = CCU_READ4(sc, addr); - reg &= ~clr; - reg |= set; - CCU_WRITE4(sc, addr, reg); - - return (0); -} - -static void -imx_ccm_device_lock(device_t dev) -{ - struct ccm_softc *sc; - - sc = device_get_softc(dev); - mtx_lock(&sc->mtx); -} - -static void -imx_ccm_device_unlock(device_t dev) -{ - struct ccm_softc *sc; - - sc = device_get_softc(dev); - mtx_unlock(&sc->mtx); -} - -static device_method_t ccm_methods[] = { +static device_method_t imx8mq_ccm_methods[] = { /* Device interface */ - DEVMETHOD(device_probe, ccm_probe), - DEVMETHOD(device_attach, ccm_attach), - DEVMETHOD(device_detach, ccm_detach), - - /* clkdev interface */ - DEVMETHOD(clkdev_write_4, imx_ccm_write_4), - DEVMETHOD(clkdev_read_4, imx_ccm_read_4), - DEVMETHOD(clkdev_modify_4, imx_ccm_modify_4), - DEVMETHOD(clkdev_device_lock, imx_ccm_device_lock), - DEVMETHOD(clkdev_device_unlock, imx_ccm_device_unlock), + DEVMETHOD(device_probe, imx8mq_ccm_probe), + DEVMETHOD(device_attach, imx8mq_ccm_attach), DEVMETHOD_END }; -static driver_t ccm_driver = { - "ccm", - ccm_methods, - sizeof(struct ccm_softc) -}; +DEFINE_CLASS_1(imx8mq_ccm, imx8mq_ccm_driver, imx8mq_ccm_methods, + sizeof(struct imx_ccm_softc), imx_ccm_driver); -EARLY_DRIVER_MODULE(ccm, simplebus, ccm_driver, 0, 0, +EARLY_DRIVER_MODULE(imx8mq_ccm, simplebus, imx8mq_ccm_driver, 0, 0, BUS_PASS_CPU + BUS_PASS_ORDER_EARLY); diff --git a/sys/arm64/freescale/imx/imx_ccm.c b/sys/arm64/freescale/imx/imx_ccm.c new file mode 100644 index 000000000000..a5660c5d0a5d --- /dev/null +++ b/sys/arm64/freescale/imx/imx_ccm.c @@ -0,0 +1,237 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Oleksandr Tymoshenko + * Copyright (c) 2024 The FreeBSD Foundation + * + * Portions of this software were developed by Tom Jones + * 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. + */ + +#include + +/* + * Clock Control Module driver for Freescale i.MX 8M SoC family. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +#include "clkdev_if.h" + +static inline uint32_t +CCU_READ4(struct imx_ccm_softc *sc, bus_size_t off) +{ + + return (bus_read_4(sc->mem_res, off)); +} + +static inline void +CCU_WRITE4(struct imx_ccm_softc *sc, bus_size_t off, uint32_t val) +{ + + bus_write_4(sc->mem_res, off, val); +} + +int +imx_ccm_detach(device_t dev) +{ + struct imx_ccm_softc *sc; + + sc = device_get_softc(dev); + + if (sc->mem_res != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res); + + return (0); +} + +int +imx_ccm_attach(device_t dev) +{ + struct imx_ccm_softc *sc; + int err, rid; + phandle_t node; + int i; + + sc = device_get_softc(dev); + sc->dev = dev; + err = 0; + + /* Allocate bus_space resources. */ + rid = 0; + sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->mem_res == NULL) { + device_printf(dev, "Cannot allocate memory resources\n"); + err = ENXIO; + goto out; + } + + mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); + + sc->clkdom = clkdom_create(dev); + if (sc->clkdom == NULL) + panic("Cannot create clkdom\n"); + + for (i = 0; i < sc->nclks; i++) { + switch (sc->clks[i].type) { + case IMX_CLK_UNDEFINED: + break; + case IMX_CLK_LINK: + clknode_link_register(sc->clkdom, + sc->clks[i].clk.link); + break; + case IMX_CLK_FIXED: + clknode_fixed_register(sc->clkdom, + sc->clks[i].clk.fixed); + break; + case IMX_CLK_MUX: + imx_clk_mux_register(sc->clkdom, sc->clks[i].clk.mux); + break; + case IMX_CLK_GATE: + imx_clk_gate_register(sc->clkdom, sc->clks[i].clk.gate); + break; + case IMX_CLK_COMPOSITE: + imx_clk_composite_register(sc->clkdom, sc->clks[i].clk.composite); + break; + case IMX_CLK_SSCG_PLL: + imx_clk_sscg_pll_register(sc->clkdom, sc->clks[i].clk.sscg_pll); + break; + case IMX_CLK_FRAC_PLL: + imx_clk_frac_pll_register(sc->clkdom, sc->clks[i].clk.frac_pll); + break; + case IMX_CLK_DIV: + clknode_div_register(sc->clkdom, sc->clks[i].clk.div); + break; + default: + device_printf(dev, "Unknown clock type %d\n", sc->clks[i].type); + return (ENXIO); + } + } + + if (clkdom_finit(sc->clkdom) != 0) + panic("cannot finalize clkdom initialization\n"); + + if (bootverbose) + clkdom_dump(sc->clkdom); + + node = ofw_bus_get_node(dev); + clk_set_assigned(dev, node); + + err = 0; + +out: + + if (err != 0) + imx_ccm_detach(dev); + + return (err); +} + +static int +imx_ccm_write_4(device_t dev, bus_addr_t addr, uint32_t val) +{ + struct imx_ccm_softc *sc; + + sc = device_get_softc(dev); + CCU_WRITE4(sc, addr, val); + return (0); +} + +static int +imx_ccm_read_4(device_t dev, bus_addr_t addr, uint32_t *val) +{ + struct imx_ccm_softc *sc; + + sc = device_get_softc(dev); + + *val = CCU_READ4(sc, addr); + return (0); +} + +static int +imx_ccm_modify_4(device_t dev, bus_addr_t addr, uint32_t clr, uint32_t set) +{ + struct imx_ccm_softc *sc; + uint32_t reg; + + sc = device_get_softc(dev); + + reg = CCU_READ4(sc, addr); + reg &= ~clr; + reg |= set; + CCU_WRITE4(sc, addr, reg); + + return (0); +} + +static void +imx_ccm_device_lock(device_t dev) +{ + struct imx_ccm_softc *sc; + + sc = device_get_softc(dev); + mtx_lock(&sc->mtx); +} + +static void +imx_ccm_device_unlock(device_t dev) +{ + struct imx_ccm_softc *sc; + + sc = device_get_softc(dev); + mtx_unlock(&sc->mtx); +} + +static device_method_t imx_ccm_methods[] = { + /* clkdev interface */ + DEVMETHOD(clkdev_write_4, imx_ccm_write_4), + DEVMETHOD(clkdev_read_4, imx_ccm_read_4), + DEVMETHOD(clkdev_modify_4, imx_ccm_modify_4), + DEVMETHOD(clkdev_device_lock, imx_ccm_device_lock), + DEVMETHOD(clkdev_device_unlock, imx_ccm_device_unlock), + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(imx_ccm, imx_ccm_driver, imx_ccm_methods, + sizeof(struct imx_ccm_softc)); diff --git a/sys/arm64/freescale/imx/imx_ccm_clk.h b/sys/arm64/freescale/imx/imx_ccm.h similarity index 95% rename from sys/arm64/freescale/imx/imx_ccm_clk.h rename to sys/arm64/freescale/imx/imx_ccm.h index 4c16fa00fe6b..9c34789a648e 100644 --- a/sys/arm64/freescale/imx/imx_ccm_clk.h +++ b/sys/arm64/freescale/imx/imx_ccm.h @@ -25,8 +25,8 @@ * SUCH DAMAGE. */ -#ifndef IMX6_CCM_CLK_H -#define IMX6_CCM_CLK_H +#ifndef IMX8_CCM_H +#define IMX8_CCM_H #include #include @@ -34,6 +34,20 @@ #include #include +int imx_ccm_attach(device_t); +int imx_ccm_detach(device_t); + +struct imx_ccm_softc { + device_t dev; + struct resource *mem_res; + struct clkdom *clkdom; + struct mtx mtx; + struct imx_clk *clks; + int nclks; +}; + +DECLARE_CLASS(imx_ccm_driver); + enum imx_clk_type { IMX_CLK_UNDEFINED = 0, IMX_CLK_FIXED, @@ -207,4 +221,4 @@ struct imx_clk { }, \ } -#endif +#endif /* IMX8_CCM_H */ diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index cd161a18500f..fe1259669059 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -590,6 +590,7 @@ arm64/cavium/thunder_pcie_pem_fdt.c optional soc_cavm_thunderx pci fdt arm64/cavium/thunder_pcie_common.c optional soc_cavm_thunderx pci # i.MX8 Clock support +arm64/freescale/imx/imx_ccm.c optional fdt soc_freescale_imx8 arm64/freescale/imx/imx8mq_ccm.c optional fdt soc_freescale_imx8 arm64/freescale/imx/clk/imx_clk_gate.c optional fdt soc_freescale_imx8 arm64/freescale/imx/clk/imx_clk_mux.c optional fdt soc_freescale_imx8 From nobody Fri Sep 13 08:20:18 2024 X-Original-To: dev-commits-src-main@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 4X4nLB5Ykbz5WLR9; Fri, 13 Sep 2024 08:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4nLB3pGWz4bvy; Fri, 13 Sep 2024 08:20:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726215618; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j0x3gAxcuaWv3MuQGlv6A0P+CLrDdAVx9qUeUNeBcvs=; b=xRZAuShlbV5de63Z6rNqR2pVtONefcSX/7h66oryNFf0XCLTZNnHHNYxjuduo3hVWnenxK I5vtMH4EEzaeuDLxWEjbz2LH1/Qu+CcL5RNnudMo4TfjI+jalxEIq40YGoKgrpY0GdxzIc kHVr6k2GWgKT/zTgFItzxONfzsbAn56Rz6KwJ10PctSd4Pw9FXyphKoA7T/UR8OOK1hKAU H8blVeXxMDB/qStLSr/QOgLd8mChpxYFyFul02iq1zEX/HDFKnY2CkHgukOEVwxQ53R98D G9Iar2aF83dt/RNvtvzgrK9myn/sTDLkuf7jEAGJmf4v+azACfY0TqWqmlfaYQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726215618; a=rsa-sha256; cv=none; b=JfDjXIDp9yUkTtXBKQZNlWllMbAkS9HuPwkkjWsAdXeLbp4sv0oJS4fggzxlgdM4p+u84i 75iUvM1c6wlpmu2hCY036ELTjgetNVTJ9gTH/XB+e2hXAw1slU1HgK1vhAimIuWWxWadl1 jeY4FtLkYA1pCHOTVxRHMn70Lh6woDpVl+iXgdzijwRkDPOnmbRyIZ4cm4+G3gL4W7inqO /ACZit4u/M/iiXpRLrgHWM+nRNUL0YNlkmZuHWhOeXfTNfVlQTPDyLKvypkEqhjBbq61X4 q3esukRPizDeodEr6mZTiWL8gdcXaDI0oZj1FMbqvt4iZwppoKLgH8OEKB7/iA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726215618; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j0x3gAxcuaWv3MuQGlv6A0P+CLrDdAVx9qUeUNeBcvs=; b=Won/GxbDrt+WUX8uTsfcL+g9Golurt4FKuXKmUS4p+Q8xMpk/atFycDIiiJPw6iK8Qlmnh KJY80D5in9mho9LO6NFyyl7A4jmCH6sdqj47A14HlmSO3AtyWSkzLfmSH0+vpWzh/2E6+S IXDwMeM1q+SJZdE70hCn4n0O9tHLwtY1ahz7R6GYstNZuKauuMoKW5ytciBRJfbxd3aVvs qKhct0GeP4tFwR4MOw2DgFXY3tw76uMIg7pZhDf6Z8cYWBerQXozRe70cOGMgL2EoMz/4R Y9mWkZ52QMvSvZr6k45dzzI8jvsHhrKfGRobhEFAYLndvNgEyvOxhpGIrWFsXg== 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 4X4nLB3JkRzb7Y; Fri, 13 Sep 2024 08:20:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48D8KIZC063636; Fri, 13 Sep 2024 08:20:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48D8KInB063633; Fri, 13 Sep 2024 08:20:18 GMT (envelope-from git) Date: Fri, 13 Sep 2024 08:20:18 GMT Message-Id: <202409130820.48D8KInB063633@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Tom Jones Subject: git: 40d0f179a8a9 - main - imx8mp: Add clock tree List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: thj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 40d0f179a8a9900ccfe37a04495aee783387809b Auto-Submitted: auto-generated The branch main has been updated by thj: URL: https://cgit.FreeBSD.org/src/commit/?id=40d0f179a8a9900ccfe37a04495aee783387809b commit 40d0f179a8a9900ccfe37a04495aee783387809b Author: Tom Jones AuthorDate: 2024-09-13 08:18:55 +0000 Commit: Tom Jones CommitDate: 2024-09-13 08:18:55 +0000 imx8mp: Add clock tree Add clock tree for imx8mp SOC. This provides clocks sufficient for several sub systems to work including USB and SD/MMC. Reviewed by: manu Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46642 --- sys/arm64/freescale/imx/imx8mp_ccm.c | 693 +++++++++++++++++++++++++++++++++++ sys/arm64/freescale/imx/imx8mp_ccm.h | 456 +++++++++++++++++++++++ sys/conf/files.arm64 | 1 + 3 files changed, 1150 insertions(+) diff --git a/sys/arm64/freescale/imx/imx8mp_ccm.c b/sys/arm64/freescale/imx/imx8mp_ccm.c new file mode 100644 index 000000000000..ed6289c7a096 --- /dev/null +++ b/sys/arm64/freescale/imx/imx8mp_ccm.c @@ -0,0 +1,693 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Oleksandr Tymoshenko + * Copyright (c) 2024 The FreeBSD Foundation + * + * Portions of this software were developed by Tom Jones + * under sponsorship from the FreeBSD Foundation. + */ + +#include + +/* + * Clocks driver for Freescale i.MX 8M Plus SoC. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +static const char *pll_ref_p[] = { + "osc_24m", "dummy", "dummy", "dummy" +}; +static const char * audio_pll1_bypass_p[] = { + "audio_pll1", "audio_pll1_ref_sel" +}; +static const char * audio_pll2_bypass_p[] = { + "audio_pll2", "audio_pll2_ref_sel" +}; +static const char * video_pll1_bypass_p[] = { + "video_pll1", "video_pll1_ref_sel" +}; +static const char * dram_pll_bypass_p[] = { + "dram_pll", "dram_pll_ref_sel" +}; +static const char * gpu_pll_bypass_p[] = { + "gpu_pll", "gpu_pll_ref_sel" +}; +static const char * vpu_pll_bypass_p[] = { + "vpu_pll", "vpu_pll_ref_sel" +}; +static const char * arm_pll_bypass_p[] = { + "arm_pll", "arm_pll_ref_sel" +}; +static const char * sys_pll1_bypass_p[] = { + "sys_pll1", "sys_pll1_ref_sel" +}; +static const char * sys_pll2_bypass_p[] = { + "sys_pll2", "sys_pll2_ref_sel" +}; +static const char * sys_pll3_bypass_p[] = { + "sys_pll3", "sys_pll3_ref_sel" +}; + +/* + * Table 5-1 of "i.MX 8M Plus Applications Processor Reference Manual" provides + * the Clock Root Table. + */ +static const char *a53_p[] = { + "osc_24m", "arm_pll_out", "sys_pll2_500m", "sys_pll2_1000m", + "sys_pll1_800m", "sys_pll1_400m", "audio_pll1_out", "sys_pll3_out" +}; +static const char * a53_core_p[] = { + "arm_a53_div", "arm_pll_out" +}; +static const char *ahb_p[] = { + "osc_24m", "sys_pll1_133m", "sys_pll1_800m", "sys_pll1_400m", + "sys_pll2_125m", "sys_pll3_out", "audio_pll1_out", "video_pll1_out" +}; +static const char *audio_ahb_p[] = { + "osc_24m", "sys_pll2_500m", "sys_pll1_800m", "sys_pll2_1000m", + "sys_pll2_166m", "sys_pll3_out", "audio_pll1_out", "video_pll1_out" +}; +static const char *audio_axi_p[] = { + "osc_24m", "gpu_pll_out", "sys_pll1_800m", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *can_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll1_40m", "sys_pll1_160m", + "sys_pll1_800m", "sys_pll3_out", "sys_pll2_250m", "audio_pll2_out" +}; +static const char *clkout_p[] = { + "audio_pll1_out", "audio_pll2_out", "video_pll1_out", "dummy", "dummy", + "gpu_pll_out", "vpu_pll_out", "arm_pll_out", "sys_pll1", "sys_pll2", + "sys_pll3", "dummy", "dummy", "osc_24m", "dummy", "osc_32k" +}; +static const char *dram_alt_p[] = { + "osc_24m", "sys_pll1_800m", "sys_pll1_100m", "sys_pll2_500m", + "sys_pll2_1000m", "sys_pll3_out", "audio_pll1_out", "sys_pll1_266m" +}; +static const char *dram_apb_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll1_40m", "sys_pll1_160m", + "sys_pll1_800m", "sys_pll3_out", "sys_pll2_250m", "audio_pll2_out" +}; +static const char *dram_core_p[] = { + "dram_pll_out", "dram_alt_root" +}; +static const char *ecspi_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll1_40m", "sys_pll1_160m", + "sys_pll1_800m", "sys_pll3_out", "sys_pll2_250m", "audio_pll2_out" +}; +static const char *enet_axi_p[] = { + "osc_24m", "sys_pll1_266m", "sys_pll1_800m", "sys_pll2_250m", + "sys_pll2_200m", "audio_pll1_out", "video_pll1_out", "sys_pll3_out" +}; +static const char *enet_phy_ref_p[] = { + "osc_24m", "sys_pll2_50m", "sys_pll2_125m", "sys_pll2_200m", + "sys_pll2_500m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out", +}; +static const char *enet_qos_p[] = { + "osc_24m", "sys_pll2_125m", "sys_pll2_50m", "sys_pll2_100m", + "sys_pll1_160m", "audio_pll1_out", "video_pll1_out", "clk_ext4", +}; +static const char *enet_qos_timer_p[] = { + "osc_24m", "sys_pll2_100m", "audio_pll1_out", "clk_ext1", "clk_ext2", + "clk_ext3", "clk_ext4", "video_pll1_out", +}; +static const char *enet_ref_p[] = { + "osc_24m", "sys_pll2_125m", "sys_pll2_50m", "sys_pll2_100m", + "sys_pll1_160m", "audio_pll1_out", "video_pll1_out", "clk_ext4", +}; +static const char *enet_timer_p[] = { + "osc_24m", "sys_pll2_100m", "audio_pll1_out", "clk_ext1", "clk_ext2", + "clk_ext3", "clk_ext4", "video_pll1_out", +}; +static const char *gic_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll1_40m", "sys_pll2_100m", + "sys_pll1_800m", "sys_pll2_500m", "clk_ext4", "audio_pll2_out" +}; +static const char *gpt_p[] = { + "osc_24m", "sys_pll2_100m", "sys_pll1_400m", "sys_pll1_40m", + "video_pll1_out", "sys_pll1_80m", "audio_pll1_out", "clk_ext1" +}; +static const char *gpu_p[] = { + "osc_24m", "gpu_pll_out", "sys_pll1_800m", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *gpu_ahb_p[] = { + "osc_24m", "sys_pll1_800m", "gpu_pll_out", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *gpu_axi_p[] = { + "osc_24m", "sys_pll1_800m", "gpu_pll_out", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *hdmi_24m_p[] = { + "osc_24m", "sys_pll1_160m", "sys_pll2_50m", "sys_pll3_out", + "audio_pll1_out", "video_pll1_out", "audio_pll2_out", "sys_pll1_133m" +}; +static const char *hdmi_fdcc_tst_p[] = { + "osc_24m", "sys_pll1_266m", "sys_pll2_250m", "sys_pll1_800m", + "sys_pll2_1000m", "sys_pll3_out", "audio_pll2_out", "video_pll1_out" +}; +static const char *hdmi_ref_266m_p[] = { + "osc_24m", "sys_pll1_400m", "sys_pll3_out", "sys_pll2_333m", + "sys_pll1_266m", "sys_pll2_200m", "audio_pll1_out", "video_pll1_out" +}; +static const char *hsio_axi_p[] = { + "osc_24m", "sys_pll2_500m", "sys_pll1_800m", "sys_pll2_100m", + "sys_pll2_200m", "clk_ext2", "clk_ext4", "audio_pll2_out" +}; +static const char *i2c_p[] = { + "osc_24m", "sys_pll1_160m", "sys_pll2_50m", "sys_pll3_out", + "audio_pll1_out", "video_pll1_out", "audio_pll2_out", "sys_pll1_133m" +}; +static const char *ipp_do_clko1_p[] = { + "osc_24m", "sys_pll1_800m", "sys_pll1_133m", "sys_pll1_200m", + "audio_pll2_out", "sys_pll2_500m", "vpu_pll_out", "sys_pll1_80m" +}; +static const char *ipp_do_clko2_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll1_400m", "sys_pll2_166m", + "sys_pll3_out", "audio_pll1_out", "video_pll1_out", "osc_32k" +}; +static const char *m7_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll2_250m", "vpu_pll_out", + "sys_pll1_800m", "audio_pll1_out", "video_pll1_out", "sys_pll3_out" +}; +static const char *main_axi_p[] = { + "osc_24m", "sys_pll2_333m", "sys_pll1_800m", "sys_pll2_250m", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "sys_pll1_100m" +}; +static const char *media_apb_p[] = { + "osc_24m", "sys_pll2_125m", "sys_pll1_800m", "sys_pll3_out", + "sys_pll1_40m", "audio_pll2_out", "clk_ext1", "sys_pll1_133m" +}; +static const char *media_axi_p[] = { + "osc_24m", "sys_pll2_1000m", "sys_pll1_800m", "sys_pll3_out", + "sys_pll1_40m", "audio_pll2_out", "clk_ext1", "sys_pll2_500m" +}; +static const char *media_cam1_pix_p[] = { + "osc_24m", "sys_pll1_266m", "sys_pll2_250m", "sys_pll1_800m", + "sys_pll2_1000m", "sys_pll3_out", "audio_pll2_out", "video_pll1_out" +}; +static const char *media_cam2_pix_p[] = { + "osc_24m", "sys_pll1_266m", "sys_pll2_250m", "sys_pll1_800m", + "sys_pll2_1000m", "sys_pll3_out", "audio_pll2_out", + "video_pll1_out" +}; +static const char *media_disp_pix_p[] = { + "osc_24m", "video_pll1_out", "audio_pll2_out", "audio_pll1_out", + "sys_pll1_800m", "sys_pll2_1000m", "sys_pll3_out", "clk_ext4" +}; +static const char *media_isp_p[] = { + "osc_24m", "sys_pll2_1000m", "sys_pll1_800m", "sys_pll3_out", + "sys_pll1_400m", "audio_pll2_out", "clk_ext1", "sys_pll2_500m" +}; +static const char *media_mipi_phy1_ref_p[] = { + "osc_24m", "sys_pll2_333m", "sys_pll2_100m", "sys_pll1_800m", + "sys_pll2_1000m", "clk_ext2", "audio_pll2_out", "video_pll1_out" +}; +static const char *media_mipi_test_byte_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll2_50m", "sys_pll3_out", + "sys_pll2_100m", "sys_pll1_80m", "sys_pll1_160m", "sys_pll1_200m" +}; +static const char *media_ldb_p[] = { + "osc_24m", "sys_pll2_333m", "sys_pll2_100m", "sys_pll1_800m", + "sys_pll2_1000m", "clk_ext2", "audio_pll2_out", "video_pll1_out" +}; +static const char *memrepair_p[] = { + "osc_24m", "sys_pll2_100m", "sys_pll1_80m", "sys_pll1_800m", + "sys_pll2_1000m", "sys_pll3_out", "clk_ext3", "audio_pll2_out" +}; +static const char *mipi_dsi_esc_rx_p[] = { + "osc_24m", "sys_pll2_100m", "sys_pll1_80m", "sys_pll1_800m", + "sys_pll2_1000m", "sys_pll3_out", "clk_ext3", "audio_pll2_out" +}; +static const char *ml_p[] = { + "osc_24m", "gpu_pll_out", "sys_pll1_800m", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *ml_ahb_p[] = { + "osc_24m", "sys_pll1_800m", "gpu_pll_out", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *ml_axi_p[] = { + "osc_24m", "sys_pll1_800m", "gpu_pll_out", "sys_pll3_out", + "sys_pll2_1000m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *nand_p[] = { + "osc_24m", "sys_pll2_500m", "audio_pll1_out", "sys_pll1_400m", + "audio_pll2_out", "sys_pll3_out", "sys_pll2_250m", "video_pll1_out" +}; +static const char *noc_p[] = { + "osc_24m", "sys_pll1_800m", "sys_pll3_out", "sys_pll2_1000m", + "sys_pll2_500m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *noc_io_p[] = { + "osc_24m", "sys_pll1_800m", "sys_pll3_out", "sys_pll2_1000m", + "sys_pll2_500m", "audio_pll1_out", "video_pll1_out", "audio_pll2_out" +}; +static const char *pcie_aux_p[] = { + "osc_24m", "sys_pll2_200m", "sys_pll2_50m", "sys_pll3_out", + "sys_pll2_100m", "sys_pll1_80m", "sys_pll1_160m", "sys_pll1_200m" +}; +static const char *pdm_p[] = { + "osc_24m", "sys_pll2_100m", "audio_pll1_out", "sys_pll1_800m", + "sys_pll2_1000m", "sys_pll3_out", "clk_ext3", "audio_pll2_out" +}; +static const char *pwm_p[] = { + "osc_24m", "sys_pll2_100m", "sys_pll1_160m", "sys_pll1_40m", + "sys_pll3_out", "clk_ext1", "sys_pll1_80m", "video_pll1_out" +}; +static const char *qspi_p[] = { + "osc_24m", "sys_pll1_400m", "sys_pll2_333m", "sys_pll2_500m", + "audio_pll2_out", "sys_pll1_266m", "sys_pll3_out", "sys_pll1_100m" +}; +static const char *sai1_p[] = { + "osc_24m" , "sys_pll1_133m" , "audio_pll1_out", "audio_pll2_out", + "video_pll1_out", "clk_ext1", "clk_ext2", "dummy", +}; +static const char *sai2_p[] = { + "osc_24m" , "sys_pll1_133m" , "audio_pll1_out", "audio_pll2_out", + "video_pll1_out", "clk_ext2", "clk_ext3", "dummy", +}; +static const char *sai3_p[] = { + "osc_24m" , "sys_pll1_133m" , "audio_pll1_out", "audio_pll2_out", + "video_pll1_out", "clk_ext3", "clk_ext4", "dummy", +}; +static const char *sai5_p[] = { + "osc_24m" , "sys_pll1_133m" , "audio_pll1_out", "audio_pll2_out", + "video_pll1_out", "clk_ext2", "clk_ext3", "dummy", +}; +static const char *sai6_p[] = { + "osc_24m" , "sys_pll1_133m" , "audio_pll1_out", "audio_pll2_out", + "video_pll1_out", "clk_ext3", "clk_ext4", "dummy", +}; +static const char *sai7_p[] = { + "osc_24m" , "sys_pll1_133m" , "audio_pll1_out", "audio_pll2_out", + "video_pll1_out", "clk_ext3", "clk_ext4", "dummy", +}; +static const char *uart_p[] = { + "osc_24m", "sys_pll1_80m", "sys_pll2_200m", "sys_pll2_100m", + "sys_pll3_out", "clk_ext2", "clk_ext4", "audio_pll2_out" +}; +static const char *usb_core_ref_p[] = { + "osc_24m", "sys_pll1_100m", "sys_pll1_40m", "sys_pll2_100m", + "sys_pll2_200m", "clk_ext2", "clk_ext3", "audio_pll2_out" +}; +static const char *usdhc_p[] = { + "osc_24m", "sys_pll1_400m", "sys_pll1_800m", "sys_pll2_500m", + "sys_pll3_out", "sys_pll1_266m", "audio_pll2_out", "sys_pll1_100m" +}; +static const char *usb_phy_ref_p[] = { + "osc_24m", "sys_pll1_100m", "sys_pll1_40m", "sys_pll2_100m", + "sys_pll2_200m", "clk_ext2", "clk_ext3", "audio_pll2_out" +}; +static const char *usdhc_nand_p[] = { + "osc_24m", "sys_pll1_266m", "sys_pll1_800m", "sys_pll2_200m", + "sys_pll1_133m", "sys_pll3_out", "sys_pll2_250m", "audio_pll1_out" +}; +static const char *vpu_bus_p[] = { + "osc_24m", "sys_pll1_800m", "vpu_pll_out", "audio_pll2_out", + "sys_pll3_out", "sys_pll2_1000m", "sys_pll2_200m", "sys_pll1_100m" +}; +static const char *vpu_g_p[] = { + "osc_24m", "vpu_pll_out", "sys_pll1_800m", "sys_pll2_1000m", + "sys_pll1_100m", "sys_pll2_125m", "sys_pll3_out", "audio_pll1_out" +}; +static const char *vpu_vc8000e_p[] = { + "osc_24m", "vpu_pll_out", "sys_pll1_800m", "sys_pll2_1000m", + "audio_pll2_out", "sys_pll2_125m", "sys_pll3_out", "audio_pll1_out" +}; +static const char *wdog_p[] = { + "osc_24m", "sys_pll1_133m", "sys_pll1_160m", "vpu_pll_out", + "sys_pll2_125m", "sys_pll3_out", "sys_pll1_80m", "sys_pll2_166m" +}; +static const char *wrclk_p[] = { + "osc_24m", "sys_pll1_40m", "vpu_pll_out", "sys_pll3_out", + "sys_pll2_200m", "sys_pll1_266m", "sys_pll2_500m", "sys_pll1_100m" +}; + +static struct imx_clk imx8mp_clks[] = { + FIXED(IMX8MP_CLK_DUMMY, "dummy", 0), + + LINK(IMX8MP_CLK_32K, "osc_32k"), + LINK(IMX8MP_CLK_24M, "osc_24m"), + LINK(IMX8MP_CLK_EXT1, "clk_ext1"), + LINK(IMX8MP_CLK_EXT2, "clk_ext2"), + LINK(IMX8MP_CLK_EXT3, "clk_ext3"), + LINK(IMX8MP_CLK_EXT4, "clk_ext4"), + + MUX(IMX8MP_AUDIO_PLL1_REF_SEL, "audio_pll1_ref_sel", pll_ref_p, 0, 0x00, 0, 2), + MUX(IMX8MP_AUDIO_PLL2_REF_SEL, "audio_pll2_ref_sel", pll_ref_p, 0, 0x14, 0, 2), + MUX(IMX8MP_VIDEO_PLL1_REF_SEL, "video_pll1_ref_sel", pll_ref_p, 0, 0x28, 0, 2), + MUX(IMX8MP_DRAM_PLL_REF_SEL, "dram_pll_ref_sel", pll_ref_p, 0, 0x50, 0, 2), + MUX(IMX8MP_GPU_PLL_REF_SEL, "gpu_pll_ref_sel", pll_ref_p, 0, 0x64, 0, 2), + MUX(IMX8MP_VPU_PLL_REF_SEL, "vpu_pll_ref_sel", pll_ref_p, 0, 0x74, 0, 2), + MUX(IMX8MP_ARM_PLL_REF_SEL, "arm_pll_ref_sel", pll_ref_p, 0, 0x84, 0, 2), + MUX(IMX8MP_SYS_PLL1_REF_SEL, "sys_pll1_ref_sel", pll_ref_p, 0, 0x94, 0, 2), + MUX(IMX8MP_SYS_PLL2_REF_SEL, "sys_pll2_ref_sel", pll_ref_p, 0, 0x104, 0, 2), + MUX(IMX8MP_SYS_PLL3_REF_SEL, "sys_pll3_ref_sel", pll_ref_p, 0, 0x114, 0, 2), + + FRAC_PLL(IMX8MP_AUDIO_PLL1, "audio_pll1", "audio_pll1_ref_sel", 0x00), + FRAC_PLL(IMX8MP_AUDIO_PLL2, "audio_pll2", "audio_pll2_ref_sel", 0x14), + FRAC_PLL(IMX8MP_VIDEO_PLL1, "video_pll1", "video_pll1_ref_sel", 0x28), + FRAC_PLL(IMX8MP_DRAM_PLL, "dram_pll", "dram_pll_ref_sel", 0x50), + FRAC_PLL(IMX8MP_GPU_PLL, "gpu_pll", "gpu_pll_ref_sel", 0x64), + FRAC_PLL(IMX8MP_VPU_PLL, "vpu_pll", "vpu_pll_ref_sel", 0x74), + FRAC_PLL(IMX8MP_ARM_PLL, "arm_pll", "arm_pll_ref_sel", 0x84), + FRAC_PLL(IMX8MP_SYS_PLL1, "sys_pll1", "sys_pll1_ref_sel", 0x94), + FRAC_PLL(IMX8MP_SYS_PLL2, "sys_pll2", "sys_pll2_ref_sel", 0x104), + FRAC_PLL(IMX8MP_SYS_PLL3, "sys_pll3", "sys_pll3_ref_sel", 0x114), + + MUX(IMX8MP_AUDIO_PLL1_BYPASS, "audio_pll1_bypass", audio_pll1_bypass_p, 1, 0x00, 16, 1), + MUX(IMX8MP_AUDIO_PLL2_BYPASS, "audio_pll2_bypass", audio_pll2_bypass_p, 1, 0x14, 16, 1), + MUX(IMX8MP_VIDEO_PLL1_BYPASS, "video_pll1_bypass", video_pll1_bypass_p, 1, 0x28, 16, 1), + MUX(IMX8MP_DRAM_PLL_BYPASS, "dram_pll_bypass", dram_pll_bypass_p, 1, 0x50, 16, 1), + MUX(IMX8MP_GPU_PLL_BYPASS, "gpu_pll_bypass", gpu_pll_bypass_p, 1, 0x64, 28, 1), + MUX(IMX8MP_VPU_PLL_BYPASS, "vpu_pll_bypass", vpu_pll_bypass_p, 1, 0x74, 28, 1), + MUX(IMX8MP_ARM_PLL_BYPASS, "arm_pll_bypass", arm_pll_bypass_p, 1, 0x84, 28, 1), + MUX(IMX8MP_SYS_PLL1_BYPASS, "sys_pll1_bypass", sys_pll1_bypass_p, 1, 0x94, 28, 1), + MUX(IMX8MP_SYS_PLL2_BYPASS, "sys_pll2_bypass", sys_pll2_bypass_p, 1, 0x104, 28, 1), + MUX(IMX8MP_SYS_PLL3_BYPASS, "sys_pll3_bypass", sys_pll3_bypass_p, 1, 0x114, 28, 1), + + GATE(IMX8MP_AUDIO_PLL1_OUT, "audio_pll1_out", "audio_pll1_bypass", 0x00, 13), + GATE(IMX8MP_AUDIO_PLL2_OUT, "audio_pll2_out", "audio_pll2_bypass", 0x14, 13), + GATE(IMX8MP_VIDEO_PLL1_OUT, "video_pll1_out", "video_pll1_bypass", 0x28, 13), + GATE(IMX8MP_DRAM_PLL_OUT, "dram_pll_out", "dram_pll_bypass", 0x50, 13), + GATE(IMX8MP_GPU_PLL_OUT, "gpu_pll_out", "gpu_pll_bypass", 0x64, 11), + GATE(IMX8MP_VPU_PLL_OUT, "vpu_pll_out", "vpu_pll_bypass", 0x74, 11), + GATE(IMX8MP_ARM_PLL_OUT, "arm_pll_out", "arm_pll_bypass", 0x84, 11), + GATE(IMX8MP_SYS_PLL1_OUT, "sys_pll1_out", "sys_pll1_bypass", 0x94, 11), + GATE(IMX8MP_SYS_PLL2_OUT, "sys_pll2_out", "sys_pll2_bypass", 0x104, 11), + GATE(IMX8MP_SYS_PLL3_OUT, "sys_pll3_out", "sys_pll3_bypass", 0x114, 11), + + FFACT(IMX8MP_SYS_PLL1_40M, "sys_pll1_40m", "sys_pll1_out", 1, 20), + FFACT(IMX8MP_SYS_PLL1_80M, "sys_pll1_80m", "sys_pll1_out", 1, 10), + FFACT(IMX8MP_SYS_PLL1_100M, "sys_pll1_100m", "sys_pll1_out", 1, 8), + FFACT(IMX8MP_SYS_PLL1_133M, "sys_pll1_133m", "sys_pll1_out", 1, 6), + FFACT(IMX8MP_SYS_PLL1_160M, "sys_pll1_160m", "sys_pll1_out", 1, 5), + FFACT(IMX8MP_SYS_PLL1_200M, "sys_pll1_200m", "sys_pll1_out", 1, 4), + FFACT(IMX8MP_SYS_PLL1_266M, "sys_pll1_266m", "sys_pll1_out", 1, 3), + FFACT(IMX8MP_SYS_PLL1_400M, "sys_pll1_400m", "sys_pll1_out", 1, 2), + FFACT(IMX8MP_SYS_PLL1_800M, "sys_pll1_800m", "sys_pll1_out", 1, 1), + + FFACT(IMX8MP_SYS_PLL2_50M, "sys_pll2_50m", "sys_pll2_out", 1, 20), + FFACT(IMX8MP_SYS_PLL2_100M, "sys_pll2_100m", "sys_pll2_out", 1, 10), + FFACT(IMX8MP_SYS_PLL2_125M, "sys_pll2_125m", "sys_pll2_out", 1, 8), + FFACT(IMX8MP_SYS_PLL2_166M, "sys_pll2_166m", "sys_pll2_out", 1, 6), + FFACT(IMX8MP_SYS_PLL2_200M, "sys_pll2_200m", "sys_pll2_out", 1, 5), + FFACT(IMX8MP_SYS_PLL2_250M, "sys_pll2_250m", "sys_pll2_out", 1, 4), + FFACT(IMX8MP_SYS_PLL2_333M, "sys_pll2_333m", "sys_pll2_out", 1, 3), + FFACT(IMX8MP_SYS_PLL2_500M, "sys_pll2_500m", "sys_pll2_out", 1, 2), + FFACT(IMX8MP_SYS_PLL2_1000M, "sys_pll2_1000m", "sys_pll2_out", 1, 1), + + MUX(IMX8MP_CLK_CLKOUT1_SEL, "clkout1_sel", clkout_p, 0x128, 4, 4, 1), + DIV(IMX8MP_CLK_CLKOUT1_DIV, "clkout1_div", "clkout1_sel", 0x128, 0, 4), + GATE(IMX8MP_CLK_CLKOUT1, "clkout1", "clkout1_div", 0x128, 8), + + MUX(IMX8MP_CLK_CLKOUT2_SEL, "clkout2_sel", clkout_p, 0x128, 20, 4, 1), + DIV(IMX8MP_CLK_CLKOUT2_DIV, "clkout2_div", "clkout2_sel", 0x128, 16, 4), + GATE(IMX8MP_CLK_CLKOUT2, "clkout2", "clkout2_div", 0x128, 24), + + COMPOSITE(IMX8MP_CLK_A53_DIV, "arm_a53_div", a53_p, 0x8000, 0), + COMPOSITE(IMX8MP_CLK_M7_CORE, "m7_core", m7_p, 0x8080, 0), + COMPOSITE(IMX8MP_CLK_ML_CORE, "ml_core", ml_p, 0x8100, 0), + COMPOSITE(IMX8MP_CLK_GPU3D_CORE, "gpu3d_core", gpu_p, 0x8180, 0), + COMPOSITE(IMX8MP_CLK_GPU3D_SHADER_CORE, "gpu3d_shader", gpu_p, 0x8200, 0), + COMPOSITE(IMX8MP_CLK_GPU2D_CORE, "gpu2d_core", gpu_p, 0x8280, 0), + COMPOSITE(IMX8MP_CLK_AUDIO_AXI, "audio_axi", audio_axi_p, 0x8300, 0), + COMPOSITE(IMX8MP_CLK_HSIO_AXI, "hsio_axi", hsio_axi_p, 0x8380, 0), + COMPOSITE(IMX8MP_CLK_MEDIA_ISP, "media_isp", media_isp_p, 0x8400, 0), + COMPOSITE(IMX8MP_CLK_NAND_USDHC_BUS, "nand_usdhc_bus", usdhc_nand_p, 0x8900, 1), + + MUX(IMX8MP_CLK_A53_CORE, "arm_a53_core", a53_core_p, 0x9880, 24, 1, 1), + + COMPOSITE(IMX8MP_CLK_MAIN_AXI, "main_axi", main_axi_p, 0x8800, 1), + COMPOSITE(IMX8MP_CLK_ENET_AXI, "enet_axi", enet_axi_p, 0x8880, 1), + COMPOSITE(IMX8MP_CLK_VPU_BUS, "vpu_bus", vpu_bus_p, 0x8980, 1), + COMPOSITE(IMX8MP_CLK_MEDIA_AXI, "media_axi", media_axi_p, 0x8a00, 1), + COMPOSITE(IMX8MP_CLK_MEDIA_APB, "media_apb", media_apb_p, 0x8a80, 1), + COMPOSITE(IMX8MP_CLK_HDMI_APB, "hdmi_apb", media_apb_p, 0x8b00, 1), + COMPOSITE(IMX8MP_CLK_HDMI_AXI, "hdmi_axi", media_axi_p, 0x8b80, 1), + COMPOSITE(IMX8MP_CLK_GPU_AXI, "gpu_axi", gpu_axi_p, 0x8c00, 1), + COMPOSITE(IMX8MP_CLK_GPU_AHB, "gpu_ahb", gpu_ahb_p, 0x8c80, 1), + COMPOSITE(IMX8MP_CLK_NOC, "noc", noc_p, 0x8d00, 1), + COMPOSITE(IMX8MP_CLK_NOC_IO, "noc_io", noc_io_p, 0x8d80, 1), + COMPOSITE(IMX8MP_CLK_ML_AXI, "ml_axi", ml_axi_p, 0x8e00, 1), + COMPOSITE(IMX8MP_CLK_ML_AHB, "ml_ahb", ml_ahb_p, 0x8e80, 1), + + COMPOSITE(IMX8MP_CLK_AHB, "ahb_root", ahb_p, 0x9000, 1), + COMPOSITE(IMX8MP_CLK_AUDIO_AHB, "audio_ahb", audio_ahb_p, 0x9100, 1), + COMPOSITE(IMX8MP_CLK_MIPI_DSI_ESC_RX, "mipi_dsi_esc_rx", mipi_dsi_esc_rx_p, 0x9200, 1), + COMPOSITE(IMX8MP_CLK_MEDIA_DISP2_PIX, "media_disp2_pix", media_disp_pix_p, 0x9300, 1), + + DIV(IMX8MP_CLK_IPG_ROOT, "ipg_root", "ahb_root", 0x9080, 0, 1), + + COMPOSITE(IMX8MP_CLK_DRAM_ALT, "dram_alt", dram_alt_p, 0xa000, 0), + COMPOSITE(IMX8MP_CLK_DRAM_APB, "dram_apb", dram_apb_p, 0xa080, 0), + + COMPOSITE(IMX8MP_CLK_VPU_G1, "vpu_g1", vpu_g_p, 0xa100, 0), + COMPOSITE(IMX8MP_CLK_VPU_G2, "vpu_g2", vpu_g_p, 0xa180, 0), + + COMPOSITE(IMX8MP_CLK_CAN1, "can1", can_p, 0xa200, 0), + COMPOSITE(IMX8MP_CLK_CAN2, "can2", can_p, 0xa280, 0), + + COMPOSITE(IMX8MP_CLK_PCIE_AUX, "pcie_aux", pcie_aux_p, 0xa400, 0), + + COMPOSITE(IMX8MP_CLK_SAI1, "sai1", sai1_p, 0xa580, 0), + COMPOSITE(IMX8MP_CLK_SAI2, "sai2", sai2_p, 0xa600, 0), + COMPOSITE(IMX8MP_CLK_SAI3, "sai3", sai3_p, 0xa680, 0), + COMPOSITE(IMX8MP_CLK_SAI5, "sai5", sai5_p, 0xa780, 0), + COMPOSITE(IMX8MP_CLK_SAI6, "sai6", sai6_p, 0xa800, 0), + COMPOSITE(IMX8MP_CLK_SAI7, "sai7", sai7_p, 0xc300, 0), + + COMPOSITE(IMX8MP_CLK_ENET_QOS, "enet_qos", enet_qos_p, 0xa880, 0), + COMPOSITE(IMX8MP_CLK_ENET_QOS_TIMER, "enet_qos_timer", enet_qos_timer_p, 0xa900, 0), + COMPOSITE(IMX8MP_CLK_ENET_REF, "enet_ref", enet_ref_p, 0xa980, 0), + COMPOSITE(IMX8MP_CLK_ENET_TIMER, "enet_timer", enet_timer_p, 0xaa00, 0), + COMPOSITE(IMX8MP_CLK_ENET_PHY_REF, "enet_phy_ref", enet_phy_ref_p, 0xaa80, 0), + + COMPOSITE(IMX8MP_CLK_NAND, "nand", nand_p, 0xab00, 0), + COMPOSITE(IMX8MP_CLK_QSPI, "qspi", qspi_p, 0xab80, 0), + + COMPOSITE(IMX8MP_CLK_USDHC1, "usdhc1", usdhc_p, 0xac00, 0), + COMPOSITE(IMX8MP_CLK_USDHC2, "usdhc2", usdhc_p, 0xac80, 0), + COMPOSITE(IMX8MP_CLK_USDHC3, "usdhc3", usdhc_p, 0xbc80, 0), + + COMPOSITE(IMX8MP_CLK_I2C1, "i2c1", i2c_p, 0xad00, 0), + COMPOSITE(IMX8MP_CLK_I2C2, "i2c2", i2c_p, 0xad80, 0), + COMPOSITE(IMX8MP_CLK_I2C3, "i2c3", i2c_p, 0xae00, 0), + COMPOSITE(IMX8MP_CLK_I2C4, "i2c4", i2c_p, 0xae80, 0), + COMPOSITE(IMX8MP_CLK_I2C5, "i2c5", i2c_p, 0xa480, 0), + COMPOSITE(IMX8MP_CLK_I2C6, "i2c6", i2c_p, 0xa500, 0), + + COMPOSITE(IMX8MP_CLK_UART1, "uart1", uart_p, 0xaf00, 0), + COMPOSITE(IMX8MP_CLK_UART2, "uart2", uart_p, 0xaf80, 0), + COMPOSITE(IMX8MP_CLK_UART3, "uart3", uart_p, 0xb000, 0), + COMPOSITE(IMX8MP_CLK_UART4, "uart4", uart_p, 0xb080, 0), + + COMPOSITE(IMX8MP_CLK_USB_CORE_REF, "usb_core_ref", usb_core_ref_p, 0xb100, 0), + COMPOSITE(IMX8MP_CLK_USB_PHY_REF, "usb_phy_ref", usb_phy_ref_p, 0xb180, 0), + + COMPOSITE(IMX8MP_CLK_GIC, "gic", gic_p, 0xb200, 0), + + COMPOSITE(IMX8MP_CLK_ECSPI1, "ecspi1", ecspi_p, 0xb280, 0), + COMPOSITE(IMX8MP_CLK_ECSPI2, "ecspi2", ecspi_p, 0xb300, 0), + COMPOSITE(IMX8MP_CLK_ECSPI3, "ecspi3", ecspi_p, 0xc180, 0), + + COMPOSITE(IMX8MP_CLK_PWM1, "pwm1", pwm_p, 0xb380, 0), + COMPOSITE(IMX8MP_CLK_PWM2, "pwm2", pwm_p, 0xb400, 0), + COMPOSITE(IMX8MP_CLK_PWM3, "pwm3", pwm_p, 0xb480, 0), + COMPOSITE(IMX8MP_CLK_PWM4, "pwm4", pwm_p, 0xb500, 0), + + COMPOSITE(IMX8MP_CLK_GPT1, "gpt1", gpt_p, 0xb580, 0), + COMPOSITE(IMX8MP_CLK_GPT2, "gpt2", gpt_p, 0xb600, 0), + COMPOSITE(IMX8MP_CLK_GPT3, "gpt3", gpt_p, 0xb680, 0), + COMPOSITE(IMX8MP_CLK_GPT4, "gpt4", gpt_p, 0xb700, 0), + COMPOSITE(IMX8MP_CLK_GPT5, "gpt5", gpt_p, 0xb780, 0), + COMPOSITE(IMX8MP_CLK_GPT6, "gpt6", gpt_p, 0xb800, 0), + + COMPOSITE(IMX8MP_CLK_WDOG, "wdog", wdog_p, 0xb900, 0), + COMPOSITE(IMX8MP_CLK_WRCLK, "wrclk", wrclk_p, 0xb980, 0), + + COMPOSITE(IMX8MP_CLK_IPP_DO_CLKO1, "ipp_do_clko1", ipp_do_clko1_p, 0xba00, 0), + COMPOSITE(IMX8MP_CLK_IPP_DO_CLKO2, "ipp_do_clko2", ipp_do_clko2_p, 0xba80, 0), + + COMPOSITE(IMX8MP_CLK_HDMI_FDCC_TST, "hdmi_fdcc_tst", hdmi_fdcc_tst_p, 0xbb00, 0), + COMPOSITE(IMX8MP_CLK_HDMI_24M, "hdmi_24m", hdmi_24m_p, 0xbb80, 0), + COMPOSITE(IMX8MP_CLK_HDMI_REF_266M, "hdmi_ref_266m", hdmi_ref_266m_p, 0xbc00, 0), + COMPOSITE(IMX8MP_CLK_MEDIA_CAM1_PIX, "media_cam1_pix", media_cam1_pix_p, 0xbd00, 0), + COMPOSITE(IMX8MP_CLK_MEDIA_MIPI_PHY1_REF, "media_mipi_phy1_ref", media_mipi_phy1_ref_p, 0xbd80, 0), + COMPOSITE(IMX8MP_CLK_MEDIA_DISP1_PIX, "media_disp1_pix", media_disp_pix_p, 0xbe00, 0), + COMPOSITE(IMX8MP_CLK_MEDIA_CAM2_PIX, "media_cam2_pix", media_cam2_pix_p, 0xbe80, 0), + COMPOSITE(IMX8MP_CLK_MEDIA_LDB, "media_ldb", media_ldb_p, 0xbf00, 0), + + COMPOSITE(IMX8MP_CLK_MEMREPAIR, "mem_repair", memrepair_p, 0xbf80, 0), + + COMPOSITE(IMX8MP_CLK_MEDIA_MIPI_TEST_BYTE, "media_mipi_test_byte", media_mipi_test_byte_p, 0xc100, 0), + COMPOSITE(IMX8MP_CLK_PDM, "pdm", pdm_p, 0xc200, 0), + COMPOSITE(IMX8MP_CLK_VPU_VC8000E, "vpu_vc8000e", vpu_vc8000e_p, 0xc280, 0), + + FFACT(IMX8MP_CLK_DRAM_ALT_ROOT, "dram_alt_root", "dram_alt", 1, 4), + + MUX(IMX8MP_CLK_DRAM_CORE, "dram_core_clk", dram_core_p, 0x9800, 24, 1, 1), + ROOT_GATE(IMX8MP_CLK_DRAM1_ROOT, "dram1_root_clk", "dram_core_clk", 0x4050), + + ROOT_GATE(IMX8MP_CLK_ECSPI1_ROOT, "ecspi1_root_clk", "ecspi1", 0x4070), + ROOT_GATE(IMX8MP_CLK_ECSPI2_ROOT, "ecspi2_root_clk", "ecspi2", 0x4080), + ROOT_GATE(IMX8MP_CLK_ECSPI3_ROOT, "ecspi3_root_clk", "ecspi3", 0x4090), + ROOT_GATE(IMX8MP_CLK_ENET1_ROOT, "enet1_root_clk", "enet_axi", 0x40a0), + + ROOT_GATE(IMX8MP_CLK_GPIO1_ROOT ,"gpio1_root_clk", "ipg_root", 0x40b0), + ROOT_GATE(IMX8MP_CLK_GPIO2_ROOT ,"gpio2_root_clk", "ipg_root", 0x40c0), + ROOT_GATE(IMX8MP_CLK_GPIO3_ROOT ,"gpio3_root_clk", "ipg_root", 0x40d0), + ROOT_GATE(IMX8MP_CLK_GPIO4_ROOT ,"gpio4_root_clk", "ipg_root", 0x40e0), + ROOT_GATE(IMX8MP_CLK_GPIO5_ROOT ,"gpio5_root_clk", "ipg_root", 0x40f0), + + ROOT_GATE(IMX8MP_CLK_GPT1_ROOT, "gpt1_root_clk", "gpt1", 0x4100), + ROOT_GATE(IMX8MP_CLK_GPT2_ROOT, "gpt2_root_clk", "gpt2", 0x4110), + ROOT_GATE(IMX8MP_CLK_GPT3_ROOT, "gpt3_root_clk", "gpt3", 0x4120), + ROOT_GATE(IMX8MP_CLK_GPT4_ROOT, "gpt4_root_clk", "gpt4", 0x4130), + ROOT_GATE(IMX8MP_CLK_GPT5_ROOT, "gpt5_root_clk", "gpt5", 0x4140), + ROOT_GATE(IMX8MP_CLK_GPT6_ROOT, "gpt6_root_clk", "gpt6", 0x4150), + + ROOT_GATE(IMX8MP_CLK_I2C1_ROOT ,"i2c1_root_clk", "i2c1", 0x4170), + ROOT_GATE(IMX8MP_CLK_I2C2_ROOT ,"i2c2_root_clk", "i2c2", 0x4180), + ROOT_GATE(IMX8MP_CLK_I2C3_ROOT ,"i2c3_root_clk", "i2c3", 0x4190), + ROOT_GATE(IMX8MP_CLK_I2C4_ROOT ,"i2c4_root_clk", "i2c4", 0x41a0), + ROOT_GATE(IMX8MP_CLK_I2C5_ROOT ,"i2c5_root_clk", "i2c5", 0x4330), + ROOT_GATE(IMX8MP_CLK_I2C6_ROOT ,"i2c6_root_clk", "i2c6", 0x4340), + + ROOT_GATE(IMX8MP_CLK_MU_ROOT, "mu_root_clk", "ipg_root", 0x4210), + ROOT_GATE(IMX8MP_CLK_OCOTP_ROOT, "ocotp_root_clk", "ipg_root", 0x4220), + ROOT_GATE(IMX8MP_CLK_PCIE_ROOT, "pcie_root_clk", "pcie_aux", 0x4250), + + ROOT_GATE(IMX8MP_CLK_PWM1_ROOT, "pwm1_root_clk", "pwm1", 0x4280), + ROOT_GATE(IMX8MP_CLK_PWM2_ROOT, "pwm2_root_clk", "pwm2", 0x4290), + ROOT_GATE(IMX8MP_CLK_PWM3_ROOT, "pwm3_root_clk", "pwm3", 0x42a0), + ROOT_GATE(IMX8MP_CLK_PWM4_ROOT, "pwm4_root_clk", "pwm4", 0x42b0), + ROOT_GATE(IMX8MP_CLK_QOS_ROOT, "qos_root_clk", "ipg_root", 0x42c0), + ROOT_GATE(IMX8MP_CLK_QOS_ENET_ROOT, "qos_enet_root_clk", "ipg_root", 0x42e0), + ROOT_GATE(IMX8MP_CLK_QSPI_ROOT, "qspi_root_clk", "qspi", 0x42f0), + + ROOT_GATE(IMX8MP_CLK_NAND_ROOT, "nand_root_clk", "nand", 0x4300), + ROOT_GATE(IMX8MP_CLK_NAND_USDHC_BUS_RAWNAND_CLK, "nand_usdhc_rawnand_clk", "nand_usdhc_bus", 0x4300), + + ROOT_GATE(IMX8MP_CLK_CAN1_ROOT, "can1_root_clk", "can1", 0x4350), + ROOT_GATE(IMX8MP_CLK_CAN2_ROOT, "can2_root_clk", "can2", 0x4360), + + ROOT_GATE(IMX8MP_CLK_SDMA1_ROOT, "sdma1_root_clk", "ipg_root", 0x43a0), + ROOT_GATE(IMX8MP_CLK_SIM_ENET_ROOT, "sim_enet_root_clk", "enet_axi", 0x4400), + ROOT_GATE(IMX8MP_CLK_ENET_QOS_ROOT, "enet_qos_root_clk", "sim_enet_root_clk", 0x43b0), + ROOT_GATE(IMX8MP_CLK_GPU2D_ROOT, "gpu2d_root_clk", "gpu2d_core", 0x4450), + ROOT_GATE(IMX8MP_CLK_GPU3D_ROOT, "gpu3d_root_clk", "gpu3d_core", 0x4460), + + ROOT_GATE(IMX8MP_CLK_UART1_ROOT ,"uart1_root_clk", "uart1", 0x4490), + ROOT_GATE(IMX8MP_CLK_UART2_ROOT ,"uart2_root_clk", "uart2", 0x44a0), + ROOT_GATE(IMX8MP_CLK_UART3_ROOT ,"uart3_root_clk", "uart3", 0x44b0), + ROOT_GATE(IMX8MP_CLK_UART4_ROOT ,"uart4_root_clk", "uart4", 0x44c0), + + ROOT_GATE(IMX8MP_CLK_USB_ROOT ,"usb_root_clk", "hsio_axi", 0x44d0), + ROOT_GATE(IMX8MP_CLK_USB_SUSP ,"usb_suspend_clk", "osc_32k", 0x44d0), + ROOT_GATE(IMX8MP_CLK_USB_PHY_ROOT ,"usb_phy_root_clk", "usb_phy_ref", 0x44f0), + ROOT_GATE(IMX8MP_CLK_USDHC1_ROOT ,"usdhc1_root_clk", "usdhc1", 0x4510), + ROOT_GATE(IMX8MP_CLK_USDHC2_ROOT ,"usdhc2_root_clk", "usdhc2", 0x4520), + ROOT_GATE(IMX8MP_CLK_USDHC3_ROOT ,"usdhc3_root_clk", "usdhc3", 0x45e0), + + ROOT_GATE(IMX8MP_CLK_HSIO_ROOT, "hsio_root_clk", "ipg_root", 0x45c0), + + ROOT_GATE(IMX8MP_CLK_WDOG1_ROOT, "wdog1_root_clk", "wdog", 0x4530), + ROOT_GATE(IMX8MP_CLK_WDOG2_ROOT, "wdog2_root_clk", "wdog", 0x4540), + ROOT_GATE(IMX8MP_CLK_WDOG3_ROOT, "wdog3_root_clk", "wdog", 0x4550), + ROOT_GATE(IMX8MP_CLK_VPU_G1_ROOT, "vpu_g1_root_clk", "vpu_g1", 0x4560), + ROOT_GATE(IMX8MP_CLK_GPU_ROOT, "gpu_root_clk", "gpu_axi", 0x4570), + ROOT_GATE(IMX8MP_CLK_VPU_VC8KE_ROOT, "vpu_vc8ke_root_clk", "vpu_vc8000e", 0x4590), + ROOT_GATE(IMX8MP_CLK_VPU_G2_ROOT, "vpu_g2_root_clk", "vpu_g2", 0x45a0), + ROOT_GATE(IMX8MP_CLK_NPU_ROOT, "npu_root_clk", "ml_core", 0x45b0), + + ROOT_GATE(IMX8MP_CLK_MEDIA_APB_ROOT, "media_apb_root_clk", "media_apb", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_AXI_ROOT, "media_axi_root_clk", "media_axi", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT, "media_cam1_pix_root_clk", "media_cam1_pix", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT, "media_cam2_pix_root_clk", "media_cam2_pix", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT, "media_disp1_pix_root_clk", "media_disp1_pix", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT, "media_disp2_pix_root_clk", "media_disp2_pix", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT, "media_mipi_phy1_ref_root", "media_mipi_phy1_ref", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_LDB_ROOT, "media_ldb_root_clk", "media_ldb", 0x45d0), + ROOT_GATE(IMX8MP_CLK_MEDIA_ISP_ROOT, "media_isp_root_clk", "media_isp", 0x45d0), + + ROOT_GATE(IMX8MP_CLK_HDMI_ROOT, "hdmi_root_clk", "hdmi_axi", 0x45f0), + ROOT_GATE(IMX8MP_CLK_TSENSOR_ROOT, "tsensor_root_clk", "ipg_root", 0x4620), + ROOT_GATE(IMX8MP_CLK_VPU_ROOT, "vpu_root_clk", "vpu_bus", 0x4630), + + ROOT_GATE(IMX8MP_CLK_AUDIO_AHB_ROOT, "audio_ahb_root", "audio_ahb", 0x4650), + ROOT_GATE(IMX8MP_CLK_AUDIO_AXI_ROOT, "audio_axi_root", "audio_axi", 0x4650), + ROOT_GATE(IMX8MP_CLK_SAI1_ROOT, "sai1_root", "sai1", 0x4650), + ROOT_GATE(IMX8MP_CLK_SAI2_ROOT, "sai2_root", "sai2", 0x4650), + ROOT_GATE(IMX8MP_CLK_SAI3_ROOT, "sai3_root", "sai3", 0x4650), + ROOT_GATE(IMX8MP_CLK_SAI5_ROOT, "sai5_root", "sai5", 0x4650), + ROOT_GATE(IMX8MP_CLK_SAI6_ROOT, "sai6_root", "sai6", 0x4650), + ROOT_GATE(IMX8MP_CLK_SAI7_ROOT, "sai7_root", "sai7", 0x4650), + ROOT_GATE(IMX8MP_CLK_PDM_ROOT, "pdm_root", "pdm", 0x4650), +}; + +static int +imx8mp_ccm_attach(device_t dev) +{ + struct imx_ccm_softc *sc; + + sc = device_get_softc(dev); + sc->dev = dev; + + sc->clks = imx8mp_clks; + sc->nclks = nitems(imx8mp_clks); + + return (imx_ccm_attach(dev)); +} + +static int +imx8mp_ccm_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (ofw_bus_is_compatible(dev, "fsl,imx8mp-ccm") == 0) + return (ENXIO); + + device_set_desc(dev, "Freescale i.MX 8M Plus Clock Control Module"); + + return (BUS_PROBE_DEFAULT); +} + +static device_method_t imx8mp_ccm_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, imx8mp_ccm_probe), + DEVMETHOD(device_attach, imx8mp_ccm_attach), + + DEVMETHOD_END +}; + +DEFINE_CLASS_1(imx8mp_ccm, imx8mp_ccm_driver, imx8mp_ccm_methods, + sizeof(struct imx_ccm_softc), imx_ccm_driver); + +EARLY_DRIVER_MODULE(imx8mp_ccm, simplebus, imx8mp_ccm_driver, 0, 0, + BUS_PASS_CPU + BUS_PASS_ORDER_EARLY); diff --git a/sys/arm64/freescale/imx/imx8mp_ccm.h b/sys/arm64/freescale/imx/imx8mp_ccm.h new file mode 100644 index 000000000000..7f0bf5e979c1 --- /dev/null +++ b/sys/arm64/freescale/imx/imx8mp_ccm.h @@ -0,0 +1,456 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * Copyright (c) 2024 The FreeBSD Foundation + * + * Portions of this software were developed by Tom Jones + * under sponsorship from the FreeBSD Foundation. + * + */ + +#ifndef __IMX8MP_CCM_H__ +#define __IMX8MP_CCM_H__ + +#define IMX8MP_CLK_DUMMY 0 +#define IMX8MP_CLK_32K 1 +#define IMX8MP_CLK_24M 2 +#define IMX8MP_OSC_HDMI_CLK 3 +#define IMX8MP_CLK_EXT1 4 +#define IMX8MP_CLK_EXT2 5 +#define IMX8MP_CLK_EXT3 6 +#define IMX8MP_CLK_EXT4 7 + +#define IMX8MP_AUDIO_PLL1_REF_SEL 8 +#define IMX8MP_AUDIO_PLL2_REF_SEL 9 + +#define IMX8MP_VIDEO_PLL1_REF_SEL 10 + +#define IMX8MP_DRAM_PLL_REF_SEL 11 +#define IMX8MP_GPU_PLL_REF_SEL 12 +#define IMX8MP_VPU_PLL_REF_SEL 13 +#define IMX8MP_ARM_PLL_REF_SEL 14 + +#define IMX8MP_SYS_PLL1_REF_SEL 15 +#define IMX8MP_SYS_PLL2_REF_SEL 16 +#define IMX8MP_SYS_PLL3_REF_SEL 17 + +#define IMX8MP_AUDIO_PLL1 18 +#define IMX8MP_AUDIO_PLL2 19 +#define IMX8MP_VIDEO_PLL1 20 +#define IMX8MP_DRAM_PLL 21 +#define IMX8MP_GPU_PLL 22 +#define IMX8MP_VPU_PLL 23 +#define IMX8MP_ARM_PLL 24 + +#define IMX8MP_SYS_PLL1 25 +#define IMX8MP_SYS_PLL2 26 +#define IMX8MP_SYS_PLL3 27 + +#define IMX8MP_AUDIO_PLL1_BYPASS 28 +#define IMX8MP_AUDIO_PLL2_BYPASS 29 +#define IMX8MP_VIDEO_PLL1_BYPASS 30 +#define IMX8MP_DRAM_PLL_BYPASS 31 +#define IMX8MP_GPU_PLL_BYPASS 32 +#define IMX8MP_VPU_PLL_BYPASS 33 +#define IMX8MP_ARM_PLL_BYPASS 34 +#define IMX8MP_SYS_PLL1_BYPASS 35 +#define IMX8MP_SYS_PLL2_BYPASS 36 +#define IMX8MP_SYS_PLL3_BYPASS 37 + +#define IMX8MP_AUDIO_PLL1_OUT 38 +#define IMX8MP_AUDIO_PLL2_OUT 39 +#define IMX8MP_VIDEO_PLL1_OUT 40 +#define IMX8MP_DRAM_PLL_OUT 41 +#define IMX8MP_GPU_PLL_OUT 42 +#define IMX8MP_VPU_PLL_OUT 43 +#define IMX8MP_ARM_PLL_OUT 44 + +#define IMX8MP_SYS_PLL1_OUT 45 +#define IMX8MP_SYS_PLL2_OUT 46 +#define IMX8MP_SYS_PLL3_OUT 47 + +#define IMX8MP_SYS_PLL1_40M 48 +#define IMX8MP_SYS_PLL1_80M 49 +#define IMX8MP_SYS_PLL1_100M 50 +#define IMX8MP_SYS_PLL1_133M 51 +#define IMX8MP_SYS_PLL1_160M 52 +#define IMX8MP_SYS_PLL1_200M 53 +#define IMX8MP_SYS_PLL1_266M 54 +#define IMX8MP_SYS_PLL1_400M 55 +#define IMX8MP_SYS_PLL1_800M 56 +#define IMX8MP_SYS_PLL2_50M 57 +#define IMX8MP_SYS_PLL2_100M 58 +#define IMX8MP_SYS_PLL2_125M 59 +#define IMX8MP_SYS_PLL2_166M 60 +#define IMX8MP_SYS_PLL2_200M 61 +#define IMX8MP_SYS_PLL2_250M 62 +#define IMX8MP_SYS_PLL2_333M 63 +#define IMX8MP_SYS_PLL2_500M 64 +#define IMX8MP_SYS_PLL2_1000M 65 + +#define IMX8MP_CLK_A53_SRC 66 +#define IMX8MP_CLK_M7_SRC 67 +#define IMX8MP_CLK_ML_SRC 68 +#define IMX8MP_CLK_GPU3D_CORE_SRC 69 +#define IMX8MP_CLK_GPU3D_SHADER_SRC 70 +#define IMX8MP_CLK_GPU2D_SRC 71 +#define IMX8MP_CLK_AUDIO_AXI_SRC 72 +#define IMX8MP_CLK_HSIO_AXI_SRC 73 +#define IMX8MP_CLK_MEDIA_ISP_SRC 74 + +#define IMX8MP_CLK_A53_CG 75 +#define IMX8MP_CLK_M4_CG 76 +#define IMX8MP_CLK_ML_CG 77 +#define IMX8MP_CLK_GPU3D_CORE_CG 78 +#define IMX8MP_CLK_GPU3D_SHADER_CG 79 +#define IMX8MP_CLK_GPU2D_CG 80 +#define IMX8MP_CLK_AUDIO_AXI_CG 81 +#define IMX8MP_CLK_HSIO_AXI_CG 82 +#define IMX8MP_CLK_MEDIA_ISP_CG 83 + +#define IMX8MP_CLK_A53_DIV 84 +#define IMX8MP_CLK_M7_DIV 85 +#define IMX8MP_CLK_ML_DIV 86 +#define IMX8MP_CLK_GPU3D_CORE_DIV 87 +#define IMX8MP_CLK_GPU3D_SHADER_DIV 88 +#define IMX8MP_CLK_GPU2D_DIV 89 +#define IMX8MP_CLK_AUDIO_AXI_DIV 90 +#define IMX8MP_CLK_HSIO_AXI_DIV 91 +#define IMX8MP_CLK_MEDIA_ISP_DIV 92 + +#define IMX8MP_CLK_MAIN_AXI 93 +#define IMX8MP_CLK_ENET_AXI 94 +#define IMX8MP_CLK_NAND_USDHC_BUS 95 +#define IMX8MP_CLK_VPU_BUS 96 +#define IMX8MP_CLK_MEDIA_AXI 97 +#define IMX8MP_CLK_MEDIA_APB 98 +#define IMX8MP_CLK_HDMI_APB 99 +#define IMX8MP_CLK_HDMI_AXI 100 +#define IMX8MP_CLK_GPU_AXI 101 +#define IMX8MP_CLK_GPU_AHB 102 +#define IMX8MP_CLK_NOC 103 +#define IMX8MP_CLK_NOC_IO 104 +#define IMX8MP_CLK_ML_AXI 105 +#define IMX8MP_CLK_ML_AHB 106 +#define IMX8MP_CLK_AHB 107 +#define IMX8MP_CLK_AUDIO_AHB 108 +#define IMX8MP_CLK_MIPI_DSI_ESC_RX 109 +#define IMX8MP_CLK_IPG_ROOT 110 +#define IMX8MP_CLK_DRAM_ALT 112 +#define IMX8MP_CLK_DRAM_APB 113 + +#define IMX8MP_CLK_VPU_G1 114 +#define IMX8MP_CLK_VPU_G2 115 + +#define IMX8MP_CLK_CAN1 116 +#define IMX8MP_CLK_CAN2 117 +#define IMX8MP_CLK_MEMREPAIR 118 +#define IMX8MP_CLK_PCIE_AUX 120 + +#define IMX8MP_CLK_I2C5 121 +#define IMX8MP_CLK_I2C6 122 + +#define IMX8MP_CLK_SAI1 123 +#define IMX8MP_CLK_SAI2 124 +#define IMX8MP_CLK_SAI3 125 +#define IMX8MP_CLK_SAI5 127 +#define IMX8MP_CLK_SAI6 128 + +#define IMX8MP_CLK_ENET_QOS 129 +#define IMX8MP_CLK_ENET_QOS_TIMER 130 +#define IMX8MP_CLK_ENET_REF 131 +#define IMX8MP_CLK_ENET_TIMER 132 +#define IMX8MP_CLK_ENET_PHY_REF 133 + +#define IMX8MP_CLK_NAND 134 +#define IMX8MP_CLK_QSPI 135 + +#define IMX8MP_CLK_USDHC1 136 +#define IMX8MP_CLK_USDHC2 137 + +#define IMX8MP_CLK_I2C1 138 +#define IMX8MP_CLK_I2C2 139 +#define IMX8MP_CLK_I2C3 140 +#define IMX8MP_CLK_I2C4 141 + +#define IMX8MP_CLK_UART1 142 +#define IMX8MP_CLK_UART2 143 +#define IMX8MP_CLK_UART3 144 +#define IMX8MP_CLK_UART4 145 + +#define IMX8MP_CLK_USB_CORE_REF 146 +#define IMX8MP_CLK_USB_PHY_REF 147 + +#define IMX8MP_CLK_GIC 148 + +#define IMX8MP_CLK_ECSPI1 149 +#define IMX8MP_CLK_ECSPI2 150 + +#define IMX8MP_CLK_PWM1 151 +#define IMX8MP_CLK_PWM2 152 +#define IMX8MP_CLK_PWM3 153 +#define IMX8MP_CLK_PWM4 154 + +#define IMX8MP_CLK_GPT1 155 +#define IMX8MP_CLK_GPT2 156 +#define IMX8MP_CLK_GPT3 157 +#define IMX8MP_CLK_GPT4 158 +#define IMX8MP_CLK_GPT5 159 +#define IMX8MP_CLK_GPT6 160 + +#define IMX8MP_CLK_TRACE 161 +#define IMX8MP_CLK_WDOG 162 +#define IMX8MP_CLK_WRCLK 163 +#define IMX8MP_CLK_IPP_DO_CLKO1 164 +#define IMX8MP_CLK_IPP_DO_CLKO2 165 +#define IMX8MP_CLK_HDMI_FDCC_TST 166 +#define IMX8MP_CLK_HDMI_24M 167 +#define IMX8MP_CLK_HDMI_REF_266M 168 +#define IMX8MP_CLK_USDHC3 169 + +#define IMX8MP_CLK_MEDIA_CAM1_PIX 170 +#define IMX8MP_CLK_MEDIA_MIPI_PHY1_REF 171 +#define IMX8MP_CLK_MEDIA_DISP1_PIX 172 +#define IMX8MP_CLK_MEDIA_CAM2_PIX 173 +#define IMX8MP_CLK_MEDIA_LDB 174 +#define IMX8MP_CLK_MEDIA_MIPI_CSI2_ESC 175 +#define IMX8MP_CLK_MEDIA_MIPI_TEST_BYTE 178 + +#define IMX8MP_CLK_ECSPI3 179 +#define IMX8MP_CLK_PDM 180 +#define IMX8MP_CLK_VPU_VC8000E 181 +#define IMX8MP_CLK_SAI7 182 +#define IMX8MP_CLK_GPC_ROOT 183 +#define IMX8MP_CLK_ANAMIX_ROOT 184 +#define IMX8MP_CLK_CPU_ROOT 185 +#define IMX8MP_CLK_CSU_ROOT 186 + +#define IMX8MP_CLK_DEBUG_ROOT 187 +#define IMX8MP_CLK_DRAM1_ROOT 188 + +#define IMX8MP_CLK_ECSPI1_ROOT 189 +#define IMX8MP_CLK_ECSPI2_ROOT 190 +#define IMX8MP_CLK_ECSPI3_ROOT 191 +#define IMX8MP_CLK_ENET1_ROOT 192 + +#define IMX8MP_CLK_GPIO1_ROOT 193 +#define IMX8MP_CLK_GPIO2_ROOT 194 +#define IMX8MP_CLK_GPIO3_ROOT 195 +#define IMX8MP_CLK_GPIO4_ROOT 196 +#define IMX8MP_CLK_GPIO5_ROOT 197 + +#define IMX8MP_CLK_GPT1_ROOT 198 +#define IMX8MP_CLK_GPT2_ROOT 199 +#define IMX8MP_CLK_GPT3_ROOT 200 +#define IMX8MP_CLK_GPT4_ROOT 201 +#define IMX8MP_CLK_GPT5_ROOT 202 +#define IMX8MP_CLK_GPT6_ROOT 203 + +#define IMX8MP_CLK_HS_ROOT 204 + +#define IMX8MP_CLK_I2C1_ROOT 205 +#define IMX8MP_CLK_I2C2_ROOT 206 +#define IMX8MP_CLK_I2C3_ROOT 207 +#define IMX8MP_CLK_I2C4_ROOT 208 + +#define IMX8MP_CLK_IOMUX_ROOT 209 +#define IMX8MP_CLK_IPMUX1_ROOT 210 +#define IMX8MP_CLK_IPMUX2_ROOT 211 +#define IMX8MP_CLK_IPMUX3_ROOT 212 *** 210 LINES SKIPPED *** From nobody Fri Sep 13 15:38:44 2024 X-Original-To: dev-commits-src-main@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 4X4z441wxpz5V5RX; Fri, 13 Sep 2024 15:38: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4z441kBtz4rPZ; Fri, 13 Sep 2024 15:38:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726241924; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tI76hUAIsl8EKJfuZFJ7RvV6EmdM7ja87zrky08T+Vc=; b=aM6m7ioNNtrk0gB0dogblWaD6LOPMAJK9crvaC5y9DHafdQCkUNcf/mVn2SHcw/IcK8BNZ N+Y+uAbMptT7s6YnaVr63avkR34maZ1n9FYo5Du3548IRGsuUVLrGz11GtaYLCS8zGRenl wydqqaQVZnY8ujb6B8DvVrbcZ3DBM6ZUKgHlgErykcKXb/ISAWdGWNwqxZvjYQps7GW7Cw Y7PbfSgFKnaoIJleAdWKOR2jpDb4/R20+ZcwKIeT5qFAll3WJ2qKJlHd112Mj67J8ElGS8 Gw2Y1rvVPfXJSRuUhZ2F4hZG8uGW0k5fHc+zIzc/kTK7aTivUYUxVe9sVR97EQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726241924; a=rsa-sha256; cv=none; b=eGP/ar8z9s067JxVNlXTSAOgQNKXFdEbAppHQJaenwcXJLDOx/kpCGXJ8Hc1b3EYifE+g7 6ElI9PFhWaMIeaqepxXSpoySHEAU4UTNN1BJVHoOE+ujF+0PsWGp9K/Li9l/Bt28jrxE36 BFdq03ATmMSUsW59Hvnl156wOI6IVZIfR3sY5UPjQfHBI7ORy/u51C+U6vbws9B7koev8i v0Rolnn1QQ84KyViNdxQ2vti1xTwNK/jQrKJx64n0/XcONlPzAXCRWvdp0io4BrfGKvR6I 1qbfaMhSdg1YcqY5BPzU8WumScUO6PE/+pvwMujoFSRTmdlAeYNF2rDJDWlhZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726241924; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tI76hUAIsl8EKJfuZFJ7RvV6EmdM7ja87zrky08T+Vc=; b=aSALSRER4Flr4uQjvMKiHWy54YOv2Pll56kDbeA6ki5WQuXYsZoSdm8EtFqFURXHRK3tK0 Atpj4wOvLqBcLW2Pln4NRvoRjV7M6FoIuEGeNB8KrMwATj8Ac9oR5SSa5gEJDoHcZY4kTi QKrKDEV+TNiRa+BOhDqy861IeUipbhFpg3NMOP6T82soCPMwFl7pWsMxjnu6OBaPxybj/o aP1FzpdaVGJvCv4diumQrGNrLlLpy7O0nh2Yug6ifqaL4KPuwNGWyPhQ2sDO2cS9gkk0Vi jepGYZPXvtufDAMFt/gKse4lENsy9BIWo7cM6bBe10TNWZFyvmn3ZH0uv6BqKA== 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 4X4z441870zpNl; Fri, 13 Sep 2024 15:38:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48DFciHt006453; Fri, 13 Sep 2024 15:38:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48DFcihf006450; Fri, 13 Sep 2024 15:38:44 GMT (envelope-from git) Date: Fri, 13 Sep 2024 15:38:44 GMT Message-Id: <202409131538.48DFcihf006450@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: fd1d66628968 - main - pctrie: create iterator List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: fd1d66628968df747b66ee68df409211f642dd22 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=fd1d66628968df747b66ee68df409211f642dd22 commit fd1d66628968df747b66ee68df409211f642dd22 Author: Doug Moore AuthorDate: 2024-09-13 15:36:54 +0000 Commit: Doug Moore CommitDate: 2024-09-13 15:36:54 +0000 pctrie: create iterator Define a pctrie iterator type. A pctrie iterator is a wrapper around a pctrie that remembers a position in the trie where the last search left off, and where a new search can resume. When the next search is for an item very near in the trie to where the last search left off, iter-based search is faster because instead of starting from the root, the search usually only has to back up one or two steps up the root-to-last-search path to find the branch that leads to the new search target. Every kind of lookup (plain, lookup_ge, lookup_le) that can begin with the trie root can begin with an iterator instead. An iterator can also do a relative search ("look for the item 4 greater than the last item I found") because it remembers where that last search ended. It can also search within limits ("look for the item bigger than this one, but it has to be less than 100"), which can save time when the next item beyond the limits and that is known before we actually know what that item it is. An iterator can also be used to remove an item that has already been found, without having to search for it again. Iterators are vulnerable to unsynchronized data changes. If the iterator is created with a lock held, and that lock is released and acquired again, there's no guarantee that the iterator path remains valid. Reviewed by: markj Tested by: pho Differential Revision: https://reviews.freebsd.org/D45627 --- sys/kern/subr_pctrie.c | 409 +++++++++++++++++++++++++++++++++++++++++++------ sys/sys/pctrie.h | 134 +++++++++++++++- 2 files changed, 493 insertions(+), 50 deletions(-) diff --git a/sys/kern/subr_pctrie.c b/sys/kern/subr_pctrie.c index 6949e3de99bf..b461ffa3c5be 100644 --- a/sys/kern/subr_pctrie.c +++ b/sys/kern/subr_pctrie.c @@ -62,9 +62,6 @@ #include #endif -#define PCTRIE_MASK (PCTRIE_COUNT - 1) -#define PCTRIE_LIMIT (howmany(sizeof(uint64_t) * NBBY, PCTRIE_WIDTH) - 1) - #if PCTRIE_WIDTH == 3 typedef uint8_t pn_popmap_t; #elif PCTRIE_WIDTH == 4 @@ -87,18 +84,13 @@ struct pctrie_node { smr_pctnode_t pn_child[PCTRIE_COUNT]; /* Child nodes. */ }; -enum pctrie_access { PCTRIE_SMR, PCTRIE_LOCKED, PCTRIE_UNSERIALIZED }; - -static __inline void pctrie_node_store(smr_pctnode_t *p, void *val, - enum pctrie_access access); - /* * Map index to an array position for the children of node, */ static __inline int pctrie_slot(struct pctrie_node *node, uint64_t index) { - return ((index >> node->pn_clev) & PCTRIE_MASK); + return ((index >> node->pn_clev) & (PCTRIE_COUNT - 1)); } /* @@ -137,6 +129,8 @@ pctrie_node_put(struct pctrie_node *node) #endif } +enum pctrie_access { PCTRIE_SMR, PCTRIE_LOCKED, PCTRIE_UNSERIALIZED }; + /* * Fetch a node pointer from a slot. */ @@ -476,6 +470,21 @@ pctrie_insert_node(void *parentp, struct pctrie_node *parent, uint64_t *val) pctrie_node_store(parentp, parent, PCTRIE_LOCKED); } +/* + * Return the value associated with the node, if the node is a leaf that matches + * the index; otherwise NULL. + */ +static __always_inline uint64_t * +pctrie_match_value(struct pctrie_node *node, uint64_t index) +{ + uint64_t *m; + + if (!pctrie_isleaf(node) || (m = pctrie_toval(node)) == NULL || + *m != index) + m = NULL; + return (m); +} + /* * Returns the value stored at the index. If the index is not present, * NULL is returned. @@ -485,21 +494,13 @@ _pctrie_lookup(struct pctrie *ptree, uint64_t index, smr_t smr, enum pctrie_access access) { struct pctrie_node *node; - uint64_t *m; int slot; node = pctrie_root_load(ptree, smr, access); - for (;;) { - if (pctrie_isleaf(node)) { - if ((m = pctrie_toval(node)) != NULL && *m == index) - return (m); - break; - } - if (pctrie_keybarr(node, index, &slot)) - break; + /* Seek a node that matches index. */ + while (!pctrie_isleaf(node) && !pctrie_keybarr(node, index, &slot)) node = pctrie_node_load(&node->pn_child[slot], smr, access); - } - return (NULL); + return (pctrie_match_value(node, index)); } /* @@ -530,6 +531,118 @@ pctrie_lookup_unlocked(struct pctrie *ptree, uint64_t index, smr_t smr) return (res); } +/* + * Returns the last node examined in the search for the index, and updates the + * search path to that node. + */ +static __always_inline struct pctrie_node * +_pctrie_iter_lookup_node(struct pctrie_iter *it, uint64_t index, smr_t smr, + enum pctrie_access access) +{ + struct pctrie_node *node; + int slot; + + /* + * Climb the search path to find the lowest node from which to start the + * search for a value matching 'index'. + */ + while (it->top != 0) { + node = it->path[it->top - 1]; + KASSERT(!powerof2(node->pn_popmap), + ("%s: freed node in iter path", __func__)); + if (!pctrie_keybarr(node, index, &slot)) { + node = pctrie_node_load( + &node->pn_child[slot], smr, access); + break; + } + --it->top; + } + if (it->top == 0) + node = pctrie_root_load(it->ptree, smr, access); + + /* Seek a node that matches index. */ + while (!pctrie_isleaf(node) && !pctrie_keybarr(node, index, &slot)) { + KASSERT(it->top < nitems(it->path), + ("%s: path overflow in trie %p", __func__, it->ptree)); + it->path[it->top++] = node; + node = pctrie_node_load(&node->pn_child[slot], smr, access); + } + return (node); +} + +/* + * Returns the value stored at a given index value, possibly NULL. + */ +static __always_inline uint64_t * +_pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index, smr_t smr, + enum pctrie_access access) +{ + struct pctrie_node *node; + + it->index = index; + node = _pctrie_iter_lookup_node(it, index, smr, access); + return (pctrie_match_value(node, index)); +} + +/* + * Returns the value stored at a given index value, possibly NULL. + */ +uint64_t * +pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index) +{ + return (_pctrie_iter_lookup(it, index, NULL, PCTRIE_LOCKED)); +} + +/* + * Returns the value stored at a fixed offset from the current index value, + * possibly NULL. + */ +static __always_inline uint64_t * +_pctrie_iter_stride(struct pctrie_iter *it, int stride, smr_t smr, + enum pctrie_access access) +{ + uint64_t index = it->index + stride; + + /* Detect stride overflow. */ + if ((stride > 0) != (index > it->index)) + return (NULL); + /* Detect crossing limit */ + if ((index < it->limit) != (it->index < it->limit)) + return (NULL); + + return (_pctrie_iter_lookup(it, index, smr, access)); +} + +/* + * Returns the value stored at a fixed offset from the current index value, + * possibly NULL. + */ +uint64_t * +pctrie_iter_stride(struct pctrie_iter *it, int stride) +{ + return (_pctrie_iter_stride(it, stride, NULL, PCTRIE_LOCKED)); +} + +/* + * Returns the value stored at one more than the current index value, possibly + * NULL, assuming access is externally synchronized by a lock. + */ +uint64_t * +pctrie_iter_next(struct pctrie_iter *it) +{ + return (_pctrie_iter_stride(it, 1, NULL, PCTRIE_LOCKED)); +} + +/* + * Returns the value stored at one less than the current index value, possibly + * NULL, assuming access is externally synchronized by a lock. + */ +uint64_t * +pctrie_iter_prev(struct pctrie_iter *it) +{ + return (_pctrie_iter_stride(it, -1, NULL, PCTRIE_LOCKED)); +} + /* * Returns the value with the least index that is greater than or equal to the * specified index, or NULL if there are no such values. @@ -633,6 +746,78 @@ pctrie_subtree_lookup_gt(struct pctrie_node *node, uint64_t index) return (pctrie_lookup_ge_node(node, index + 1)); } +/* + * Find first leaf >= index, and fill iter with the path to the parent of that + * leaf. Return NULL if there is no such leaf less than limit. + */ +uint64_t * +pctrie_iter_lookup_ge(struct pctrie_iter *it, uint64_t index) +{ + struct pctrie_node *node; + uint64_t *m; + int slot; + + /* Seek a node that matches index. */ + node = _pctrie_iter_lookup_node(it, index, NULL, PCTRIE_LOCKED); + + /* + * If no such node was found, and instead this path leads only to nodes + * < index, back up to find a subtrie with the least value > index. + */ + if (pctrie_isleaf(node) ? + (m = pctrie_toval(node)) == NULL || *m < index : + node->pn_owner < index) { + /* Climb the path to find a node with a descendant > index. */ + while (it->top != 0) { + node = it->path[it->top - 1]; + slot = pctrie_slot(node, index) + 1; + if ((node->pn_popmap >> slot) != 0) + break; + --it->top; + } + if (it->top == 0) + return (NULL); + + /* Step to the least child with a descendant > index. */ + slot += ffs(node->pn_popmap >> slot) - 1; + node = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } + /* Descend to the least leaf of the subtrie. */ + while (!pctrie_isleaf(node)) { + if (it->limit != 0 && node->pn_owner >= it->limit) + return (NULL); + slot = ffs(node->pn_popmap) - 1; + KASSERT(it->top < nitems(it->path), + ("%s: path overflow in trie %p", __func__, it->ptree)); + it->path[it->top++] = node; + node = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } + m = pctrie_toval(node); + if (it->limit != 0 && *m >= it->limit) + return (NULL); + it->index = *m; + return (m); +} + +/* + * Find the first leaf with value at least 'jump' greater than the previous + * leaf. Return NULL if that value is >= limit. + */ +uint64_t * +pctrie_iter_jump_ge(struct pctrie_iter *it, int64_t jump) +{ + uint64_t index = it->index + jump; + + /* Detect jump overflow. */ + if ((jump > 0) != (index > it->index)) + return (NULL); + if (it->limit != 0 && index >= it->limit) + return (NULL); + return (pctrie_iter_lookup_ge(it, index)); +} + #ifdef INVARIANTS void pctrie_subtree_lookup_gt_assert(struct pctrie_node *node, uint64_t index, @@ -720,6 +905,79 @@ pctrie_subtree_lookup_lt(struct pctrie_node *node, uint64_t index) return (pctrie_lookup_le_node(node, index - 1)); } +/* + * Find first leaf <= index, and fill iter with the path to the parent of that + * leaf. Return NULL if there is no such leaf greater than limit. + */ +uint64_t * +pctrie_iter_lookup_le(struct pctrie_iter *it, uint64_t index) +{ + struct pctrie_node *node; + uint64_t *m; + int slot; + + /* Seek a node that matches index. */ + node = _pctrie_iter_lookup_node(it, index, NULL, PCTRIE_LOCKED); + + /* + * If no such node was found, and instead this path leads only to nodes + * > index, back up to find a subtrie with the least value > index. + */ + if (pctrie_isleaf(node) ? + (m = pctrie_toval(node)) == NULL || *m > index : + node->pn_owner > index) { + /* Climb the path to find a node with a descendant < index. */ + while (it->top != 0) { + node = it->path[it->top - 1]; + slot = pctrie_slot(node, index); + if ((node->pn_popmap & ((1 << slot) - 1)) != 0) + break; + --it->top; + } + if (it->top == 0) + return (NULL); + + /* Step to the greatest child with a descendant < index. */ + slot = ilog2(node->pn_popmap & ((1 << slot) - 1)); + node = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } + /* Descend to the greatest leaf of the subtrie. */ + while (!pctrie_isleaf(node)) { + if (it->limit != 0 && it->limit >= + node->pn_owner + (PCTRIE_COUNT << node->pn_clev) - 1) + return (NULL); + slot = ilog2(node->pn_popmap); + KASSERT(it->top < nitems(it->path), + ("%s: path overflow in trie %p", __func__, it->ptree)); + it->path[it->top++] = node; + node = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } + m = pctrie_toval(node); + if (it->limit != 0 && *m <= it->limit) + return (NULL); + it->index = *m; + return (m); +} + +/* + * Find the first leaf with value at most 'jump' less than the previous + * leaf. Return NULL if that value is <= limit. + */ +uint64_t * +pctrie_iter_jump_le(struct pctrie_iter *it, int64_t jump) +{ + uint64_t index = it->index - jump; + + /* Detect jump overflow. */ + if ((jump > 0) != (index < it->index)) + return (NULL); + if (it->limit != 0 && index <= it->limit) + return (NULL); + return (pctrie_iter_lookup_le(it, index)); +} + #ifdef INVARIANTS void pctrie_subtree_lookup_lt_assert(struct pctrie_node *node, uint64_t index, @@ -738,42 +996,25 @@ pctrie_subtree_lookup_lt_assert(struct pctrie_node *node, uint64_t index, } #endif -/* - * Remove the specified index from the tree, and return the value stored at - * that index. If the index is not present, return NULL. - */ -uint64_t * -pctrie_remove_lookup(struct pctrie *ptree, uint64_t index, - struct pctrie_node **freenode) +static void +pctrie_remove(struct pctrie *ptree, uint64_t index, struct pctrie_node *parent, + struct pctrie_node *node, struct pctrie_node **freenode) { - struct pctrie_node *child, *node, *parent; - uint64_t *m; + struct pctrie_node *child; int slot; - *freenode = node = NULL; - child = pctrie_root_load(ptree, NULL, PCTRIE_LOCKED); - for (;;) { - if (pctrie_isleaf(child)) - break; - parent = node; - node = child; - slot = pctrie_slot(node, index); - child = pctrie_node_load(&node->pn_child[slot], NULL, - PCTRIE_LOCKED); - } - if ((m = pctrie_toval(child)) == NULL || *m != index) - return (NULL); if (node == NULL) { pctrie_root_store(ptree, PCTRIE_NULL, PCTRIE_LOCKED); - return (m); + return; } + slot = pctrie_slot(node, index); KASSERT((node->pn_popmap & (1 << slot)) != 0, ("%s: bad popmap slot %d in node %p", __func__, slot, node)); node->pn_popmap ^= 1 << slot; pctrie_node_store(&node->pn_child[slot], PCTRIE_NULL, PCTRIE_LOCKED); if (!powerof2(node->pn_popmap)) - return (m); + return; KASSERT(node->pn_popmap != 0, ("%s: bad popmap all zeroes", __func__)); slot = ffs(node->pn_popmap) - 1; child = pctrie_node_load(&node->pn_child[slot], NULL, PCTRIE_LOCKED); @@ -795,9 +1036,89 @@ pctrie_remove_lookup(struct pctrie *ptree, uint64_t index, */ pctrie_node_put(node); *freenode = node; +} + +/* + * Remove the specified index from the tree, and return the value stored at + * that index. If the index is not present, return NULL. + */ +uint64_t * +pctrie_remove_lookup(struct pctrie *ptree, uint64_t index, + struct pctrie_node **freenode) +{ + struct pctrie_node *child, *node, *parent; + uint64_t *m; + int slot; + + DEBUG_POISON_POINTER(parent); + *freenode = node = NULL; + child = pctrie_root_load(ptree, NULL, PCTRIE_LOCKED); + while (!pctrie_isleaf(child)) { + parent = node; + node = child; + slot = pctrie_slot(node, index); + child = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } + m = pctrie_match_value(child, index); + if (m != NULL) + pctrie_remove(ptree, index, parent, node, freenode); return (m); } +/* + * Remove from the trie the leaf last chosen by the iterator, and + * adjust the path if it's last member is to be freed. + */ +uint64_t * +pctrie_iter_remove(struct pctrie_iter *it, struct pctrie_node **freenode) +{ + struct pctrie_node *child, *node, *parent; + uint64_t *m; + int slot; + + DEBUG_POISON_POINTER(parent); + *freenode = NULL; + if (it->top >= 1) { + parent = (it->top >= 2) ? it->path[it->top - 2] : NULL; + node = it->path[it->top - 1]; + slot = pctrie_slot(node, it->index); + child = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } else { + node = NULL; + child = pctrie_root_load(it->ptree, NULL, PCTRIE_LOCKED); + } + m = pctrie_match_value(child, it->index); + if (m != NULL) + pctrie_remove(it->ptree, it->index, parent, node, freenode); + if (*freenode != NULL) + --it->top; + return (m); +} + +/* + * Return the current leaf, assuming access is externally synchronized by a + * lock. + */ +uint64_t * +pctrie_iter_value(struct pctrie_iter *it) +{ + struct pctrie_node *node; + int slot; + + if (it->top == 0) + node = pctrie_root_load(it->ptree, NULL, + PCTRIE_LOCKED); + else { + node = it->path[it->top - 1]; + slot = pctrie_slot(node, it->index); + node = pctrie_node_load(&node->pn_child[slot], NULL, + PCTRIE_LOCKED); + } + return (pctrie_toval(node)); +} + /* * Walk the subtrie rooted at *pnode in order, invoking callback on leaves and * using the leftmost child pointer for path reversal, until an interior node diff --git a/sys/sys/pctrie.h b/sys/sys/pctrie.h index d06b533a54b7..4d5450c25079 100644 --- a/sys/sys/pctrie.h +++ b/sys/sys/pctrie.h @@ -240,6 +240,85 @@ name##_PCTRIE_RECLAIM_CALLBACK(struct pctrie *ptree, \ } \ \ static __inline __unused struct type * \ +name##_PCTRIE_ITER_LOOKUP(struct pctrie_iter *it, uint64_t index) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_lookup(it, index)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_STRIDE(struct pctrie_iter *it, int stride) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_stride(it, stride)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_NEXT(struct pctrie_iter *it) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_next(it)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_PREV(struct pctrie_iter *it) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_prev(it)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_VALUE(struct pctrie_iter *it) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_value(it)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_LOOKUP_GE(struct pctrie_iter *it, uint64_t index) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_lookup_ge(it, index)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_JUMP_GE(struct pctrie_iter *it, int64_t jump) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_jump_ge(it, jump)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_STEP_GE(struct pctrie_iter *it) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_jump_ge(it, 1)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_LOOKUP_LE(struct pctrie_iter *it, uint64_t index) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_lookup_le(it, index)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_JUMP_LE(struct pctrie_iter *it, int64_t jump) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_jump_le(it, jump)); \ +} \ + \ +static __inline __unused struct type * \ +name##_PCTRIE_ITER_STEP_LE(struct pctrie_iter *it) \ +{ \ + return name##_PCTRIE_VAL2PTR(pctrie_iter_jump_le(it, 1)); \ +} \ + \ +static __inline __unused void \ +name##_PCTRIE_ITER_REMOVE(struct pctrie_iter *it) \ +{ \ + uint64_t *val; \ + struct pctrie_node *freenode; \ + \ + val = pctrie_iter_remove(it, &freenode); \ + if (val == NULL) \ + panic("%s: key not found", __func__); \ + if (freenode != NULL) \ + freefn(it->ptree, freenode); \ +} \ + \ +static __inline __unused struct type * \ name##_PCTRIE_REPLACE(struct pctrie *ptree, struct type *ptr) \ { \ \ @@ -272,6 +351,7 @@ name##_PCTRIE_REMOVE_LOOKUP(struct pctrie *ptree, uint64_t key) \ return name##_PCTRIE_VAL2PTR(val); \ } +struct pctrie_iter; void *pctrie_insert_lookup(struct pctrie *ptree, uint64_t *val, uint64_t **found_out); void *pctrie_insert_lookup_gt(struct pctrie *ptree, uint64_t *val, @@ -283,10 +363,22 @@ void *pctrie_insert_lookup_strict(struct pctrie *ptree, void pctrie_insert_node(void *parentp, struct pctrie_node *parent, uint64_t *val); uint64_t *pctrie_lookup(struct pctrie *ptree, uint64_t key); -uint64_t *pctrie_lookup_ge(struct pctrie *ptree, uint64_t key); -uint64_t *pctrie_lookup_le(struct pctrie *ptree, uint64_t key); uint64_t *pctrie_lookup_unlocked(struct pctrie *ptree, uint64_t key, smr_t smr); +uint64_t *pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index); +uint64_t *pctrie_iter_stride(struct pctrie_iter *it, int stride); +uint64_t *pctrie_iter_next(struct pctrie_iter *it); +uint64_t *pctrie_iter_prev(struct pctrie_iter *it); +uint64_t *pctrie_lookup_ge(struct pctrie *ptree, uint64_t key); +uint64_t *pctrie_subtree_lookup_gt(struct pctrie_node *node, + uint64_t key); +uint64_t *pctrie_iter_lookup_ge(struct pctrie_iter *it, uint64_t index); +uint64_t *pctrie_iter_jump_ge(struct pctrie_iter *it, int64_t jump); +uint64_t *pctrie_lookup_le(struct pctrie *ptree, uint64_t key); +uint64_t *pctrie_subtree_lookup_lt(struct pctrie_node *node, + uint64_t key); +uint64_t *pctrie_iter_lookup_le(struct pctrie_iter *it, uint64_t index); +uint64_t *pctrie_iter_jump_le(struct pctrie_iter *it, int64_t jump); struct pctrie_node *pctrie_reclaim_begin(struct pctrie_node **pnode, struct pctrie *ptree); struct pctrie_node *pctrie_reclaim_resume(struct pctrie_node **pnode); @@ -297,11 +389,10 @@ struct pctrie_node *pctrie_reclaim_resume_cb(struct pctrie_node **pnode, pctrie_cb_t callback, int keyoff, void *arg); uint64_t *pctrie_remove_lookup(struct pctrie *ptree, uint64_t index, struct pctrie_node **killnode); +uint64_t *pctrie_iter_remove(struct pctrie_iter *it, + struct pctrie_node **freenode); +uint64_t *pctrie_iter_value(struct pctrie_iter *it); uint64_t *pctrie_replace(struct pctrie *ptree, uint64_t *newval); -uint64_t *pctrie_subtree_lookup_gt(struct pctrie_node *node, - uint64_t key); -uint64_t *pctrie_subtree_lookup_lt(struct pctrie_node *node, - uint64_t key); size_t pctrie_node_size(void); int pctrie_zone_init(void *mem, int size, int flags); @@ -342,6 +433,37 @@ pctrie_is_empty(struct pctrie *ptree) #endif #define PCTRIE_COUNT (1 << PCTRIE_WIDTH) +#define PCTRIE_LIMIT howmany(sizeof(uint64_t) * NBBY, PCTRIE_WIDTH) + +struct pctrie_iter { + struct pctrie *ptree; + struct pctrie_node *path[PCTRIE_LIMIT]; + uint64_t index; + uint64_t limit; + int top; +}; + +static __inline void +pctrie_iter_reset(struct pctrie_iter *it) +{ + it->top = 0; +} + +static __inline void +pctrie_iter_init(struct pctrie_iter *it, struct pctrie *ptree) +{ + it->ptree = ptree; + it->top = 0; + it->limit = 0; +} + +static __inline void +pctrie_iter_limit_init(struct pctrie_iter *it, struct pctrie *ptree, + uint64_t limit) +{ + pctrie_iter_init(it, ptree); + it->limit = limit; +} #endif /* _KERNEL */ #endif /* !_SYS_PCTRIE_H_ */ From nobody Fri Sep 13 15:45:00 2024 X-Original-To: dev-commits-src-main@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 4X4zCr3V7jz5V6c3; Fri, 13 Sep 2024 15:45:28 +0000 (UTC) (envelope-from gallatin@fastmail.com) Received: from fout3-smtp.messagingengine.com (fout3-smtp.messagingengine.com [103.168.172.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4X4zCq5sgBz4s6M; Fri, 13 Sep 2024 15:45:27 +0000 (UTC) (envelope-from gallatin@fastmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=fastmail.com header.s=fm1 header.b="dl3d+/nS"; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=n4pIYDLl; dmarc=pass (policy=none) header.from=fastmail.com; spf=pass (mx1.freebsd.org: domain of gallatin@fastmail.com designates 103.168.172.146 as permitted sender) smtp.mailfrom=gallatin@fastmail.com Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id 57FCE13802AC; Fri, 13 Sep 2024 11:45:27 -0400 (EDT) Received: from phl-imap-13 ([10.202.2.103]) by phl-compute-10.internal (MEProxy); Fri, 13 Sep 2024 11:45:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1726242327; x=1726328727; bh=B6Nhf4y+S0 HS9fwp1LGLBzfBoJarB40zw41kYRzYj+w=; b=dl3d+/nS5puy1QVZi98ZLqLEqd Ov4rCJb1R8+OkWLNH8KPlElMrulqQHRv/v0ozn8yaE8pG4v0G7Nmqd2hFcqRVuPT VMxZtlSjhfFhg0GGhyCpM0KiJUK7hyhTtfGwNJg4oelWFQnjtkxRo7tiHuqZcvSv 9bIvlR906en0PXfiuqAfJF5xfgL1SNnYEMPuvJQOlxlhnAE1IVS+jKY1UI4T+qap +J2vaVeh9l19xzvuJLrXYXrvm+Fuqq2CyHFwtQTtGMoZHrlS96CX+RYPX4x53Sq+ v+7Vt504MiIs5PUK5gbk9yS7b0dOvw2nb3ia/TQc4gLaKFh5Zfgkd1XzQ5vA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1726242327; x=1726328727; bh=B6Nhf4y+S0HS9fwp1LGLBzfBoJar B40zw41kYRzYj+w=; b=n4pIYDLlVlCFeVS0VU1sG75bYMN0sOoS4caj1tnFU2ys FzuxI1krdldvNSOvy8r2kUgQXAGbIelSjsf1klqZXiGl5oJA9hIHfseEVmtGwSCJ JqzG06TG/IieX8K/iLWWgBhBqcJNxYmZ2R0YD6OST1hNHLb/69V/0WWob9kGbjIN YZJmxUSqD/PegL7GeVL17lGXd4rlYFFERqIAoixvmWfO7dqjzWozucfur2xEnxHx 93PaehBbVbH3e/O9w9/6RkWtj/P6Ik/fZa6DtVHhrmhIWXtvgPOKgBlgbOOx9kyB CKwVYFGvqyhWoBhoNVMAL05RRrbgtQtpYmNB56VUKQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudejjedgledvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgesmhdtreerredtjeen ucfhrhhomhepfdffrhgvficuifgrlhhlrghtihhnfdcuoehgrghllhgrthhinhesfhgrsh htmhgrihhlrdgtohhmqeenucggtffrrghtthgvrhhnpeefuefhgedvtdejvdduvdeuudeu geeuieduveethfehheeiueetgffhudfgledvjeenucffohhmrghinhepghhithhhuhgsrd gtohhmpdhfrhgvvggsshgurdhorhhgpdhshiiikhgrlhhlvghrrdgrphhpshhpohhtrdgt ohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepgh grlhhlrghtihhnsehfrghsthhmrghilhdrtghomhdpnhgspghrtghpthhtohepiedpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtohepuggvvhdqtghomhhmihhtshdqshhrtgdqrg hllhesfhhrvggvsghsugdrohhrghdprhgtphhtthhopeguvghvqdgtohhmmhhithhsqdhs rhgtqdhmrghinhesfhhrvggvsghsugdrohhrghdprhgtphhtthhopehjhhgssehfrhgvvg gsshgurdhorhhgpdhrtghpthhtohepkhhpsehfrhgvvggsshgurdhorhhgpdhrtghpthht ohepmhgrrhhkjhesfhhrvggvsghsugdrohhrghdprhgtphhtthhopehsrhgtqdgtohhmmh hithhtvghrshesfhhrvggvsghsugdrohhrgh X-ME-Proxy: Feedback-ID: i2f014658:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 23AFA1F0007A; Fri, 13 Sep 2024 11:45:27 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Date: Fri, 13 Sep 2024 11:45:00 -0400 From: "Drew Gallatin" To: "John Baldwin" , "Kristof Provost" , "Mark Johnston" Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Message-Id: In-Reply-To: <1f61b6de-0fe2-4343-b4ad-f0866785a4bc@FreeBSD.org> References: <202409111118.48BBIQ2h065089@gitrepo.freebsd.org> <2b1955e2-fbf1-41cb-b256-a9a257b16a83@FreeBSD.org> <1f61b6de-0fe2-4343-b4ad-f0866785a4bc@FreeBSD.org> Subject: Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them Content-Type: multipart/mixed; boundary=f05b720e4072433382bbf437e9890aa6 X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.05 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[fastmail.com,none]; R_DKIM_ALLOW(-0.20)[fastmail.com:s=fm1,messagingengine.com:s=fm1]; R_SPF_ALLOW(-0.20)[+ip4:103.168.172.128/27]; RCVD_IN_DNSWL_LOW(-0.10)[103.168.172.146:from]; MIME_GOOD(-0.10)[multipart/mixed,multipart/alternative,text/plain]; NEURAL_SPAM_SHORT(0.04)[0.039]; XM_UA_NO_VERSION(0.01)[]; FREEMAIL_ENVFROM(0.00)[fastmail.com]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[]; FREEMAIL_FROM(0.00)[fastmail.com]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_NONE(0.00)[messagingengine.com:dkim]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org,dev-commits-src-main@freebsd.org]; MID_RHS_MATCH_FROMTLD(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ASN(0.00)[asn:209242, ipnet:103.168.172.0/24, country:US]; DKIM_TRACE(0.00)[fastmail.com:+,messagingengine.com:+]; FREEFALL_USER(0.00)[gallatin]; HAS_ATTACHMENT(0.00)[]; RCPT_COUNT_FIVE(0.00)[6] X-Rspamd-Queue-Id: 4X4zCq5sgBz4s6M --f05b720e4072433382bbf437e9890aa6 Content-Type: multipart/alternative; boundary=16fb958509d44755bdf660d7a1b86bf9 --16fb958509d44755bdf660d7a1b86bf9 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I think you also need to remove M_EXTPG from M_WRITABLE(). Attached a t= rivial, untested patch. Drew On Thu, Sep 12, 2024, at 5:40 AM, John Baldwin wrote: > On 9/12/24 05:03, John Baldwin wrote: > > I think part of the motivation for marking M_EXTPG as read-only is t= hat you can't "write" > > to m_data via mtod() or the like. That said, M_EXTPG aren't really = read-only. It > > depends on the backing store. M_EXTPG were first merged into FreeBS= D prior to KTLS to > > support sendfile, and in that case, they should be M_RDONLY because = they alias pages > > from the file's VM object. However, M_EXTPG mbufs allocated via fun= ctions like > > m_uiotombuf_nomap should not be M_RDONLY. I think this originated i= n the original > > import of KTLS which doesn't push setting M_RDONLY out to the caller= s of mb_alloc_extpgs, > > and a few other places that hardcode M_RDONLY with M_EXTPG (_mb_unma= pped_to_ext should > > preserve M_RDONLY from the original mbuf instead of forcing M_RDONLY= ). > >=20 > > I can take a stab at a patch but won't have time to really test it u= ntil after Euro. >=20 > Patch available below. Compile tested but not run-tested: >=20 > https://github.com/freebsd/freebsd-src/compare/main...bsdjhb:freebsd:m= _extpg_rdonly >=20 > > On 9/11/24 16:56, Drew Gallatin wrote: > >> M_EXTPGS mbufs are marked read-only because they refer to external = data. The original crypto code, (before kTLS was converted to OCF), us= ed to just build an iovec using PHYS_TO_DMAP() on the page array. I thi= nk this case was missed during the conversion to OCF. > >> > >> I'm not sure what the best thing to do is, as they should be read o= nly, except this one specific case.... I'd be tempted to just nerf the K= ASSERT for EXTPGS. > >> > >> On Wed, Sep 11, 2024, at 11:02 AM, Kristof Provost wrote: > >>> On 11 Sep 2024, at 16:45, Mark Johnston wrote: > >>>> On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: > >>>>> The branch main has been updated by kp: > >>>>> > >>>>> URL: https://cgit.FreeBSD.org/src/commit/?id=3Df08247fd888e6f7db= 0ecf2aaa39377144ac40b4c > >>>>> > >>>>> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c > >>>>> Author: Kristof Provost > >>>>> AuthorDate: 2024-09-10 20:15:31 +0000 > >>>>> Commit: Kristof Provost > >>>>> CommitDate: 2024-09-11 11:17:48 +0000 > >>>>> > >>>>> Assert that mbufs are writable if we write to them > >>>>> > >>>>> m_copyback() modifies the mbuf, so it must be a writable m= buf. > >>>> > >>>> This change still triggers a panic for me when running KTLS tests= . I > >>>> note that EXTPG mbufs always have M_RDONLY set, but I'm not quite= sure > >>>> why. I suspect such mbufs need special handling with respect to = the new > >>>> assertion. > >>>> > >>>> syzbot also triggered this panic: > >>>> https://syzkaller.appspot.com/bug?extid=3D58c918369f9dc323409d > >>>> > >>> Yeah, I saw that one before I went out for a bike ride. > >>> > >>> Clearly something is wrong. Either ktls is using read-only buffers= or the M_WRITABLE() macro isn=E2=80=99t quite smart enough to spot this= specific case. > >>> > >>> I=E2=80=99m not familiar enough with ktls to easily tell which. > >>> > >>> I=E2=80=99ll back this assertion change out for now, so we=E2=80=99= re not panicing test machines while we figure this out. > >>> > >>> Best regards, > >>> Kristof > >>> > >> > >=20 >=20 > --=20 > John Baldwin >=20 >=20 --16fb958509d44755bdf660d7a1b86bf9 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
I think you als= o need to remove M_EXTPG from M_WRITABLE().  Attached a trivial, un= tested patch.

Drew

=
On Thu, Sep 12, 2024, at 5:40 AM, John Baldwin wrote:
On 9/12/24 05:03, John B= aldwin wrote:
> I think part of the motivation for mark= ing M_EXTPG as read-only is that you can't "write"
> to= m_data via mtod() or the like.  That said, M_EXTPG aren't really r= ead-only.  It
> depends on the backing store. = ; M_EXTPG were first merged into FreeBSD prior to KTLS to
= > support sendfile, and in that case, they should be M_RDONLY because= they alias pages
> from the file's VM object.  Ho= wever, M_EXTPG mbufs allocated via functions like
> m_u= iotombuf_nomap should not be M_RDONLY.  I think this originated in = the original
> import of KTLS which doesn't push settin= g M_RDONLY out to the callers of mb_alloc_extpgs,
> and= a few other places that hardcode M_RDONLY with M_EXTPG (_mb_unmapped_to= _ext should
> preserve M_RDONLY from the original mbuf = instead of forcing M_RDONLY).

>= ; I can take a stab at a patch but won't have time to really test it unt= il after Euro.

Patch available below. = Compile tested but not run-tested:


> On 9/= 11/24 16:56, Drew Gallatin wrote:
>> M_EXTPGS mbufs = are marked read-only because they refer to external data.   Th= e original crypto code, (before kTLS was converted to OCF), used to just= build an iovec using PHYS_TO_DMAP() on the page array.  I think th= is case was missed during the conversion to OCF.
>><= br>
>> I'm not sure what the best thing to do is, as the= y should be read only, except this one specific case.... I'd be tempted = to just nerf the KASSERT for EXTPGS.
>>
>> On Wed, Sep 11, 2024, at 11:02 AM, Kristof Provost wrote:
=
>>> On 11 Sep 2024, at 16:45, Mark Johnston wrote:
>>>> On Wed, Sep 11, 2024 at 11:18:26AM +0000, = Kristof Provost wrote:
>>>>> The branch mai= n has been updated by kp:
>>>>>
>>>>> URL: https://cgit.Fr= eeBSD.org/src/commit/?id=3Df08247fd888e6f7db0ecf2aaa39377144ac40b4c<= br>
>>>>>
>>>>> co= mmit f08247fd888e6f7db0ecf2aaa39377144ac40b4c
>>>= >> Author:     Kristof Provost <kp@FreeBSD.org>
>>>= >> AuthorDate: 2024-09-10 20:15:31 +0000
>>>= ;>> Commit:     Kristof Provost <kp@FreeBSD.org>
>>>= ;>> CommitDate: 2024-09-11 11:17:48 +0000
>>&g= t;>>
>>>>>    &nb= sp;  Assert that mbufs are writable if we write to them
>>>>>
>>>>>  &n= bsp;    m_copyback() modifies the mbuf, so it must be a w= ritable mbuf.
>>>>
>>>&= gt; This change still triggers a panic for me when running KTLS tests.&n= bsp; I
>>>> note that EXTPG mbufs always have = M_RDONLY set, but I'm not quite sure
>>>> why.=   I suspect such mbufs need special handling with respect to the ne= w
>>>> assertion.
>>>&g= t;
>>>> syzbot also triggered this panic:
<= /div>
>>>>
>>> Yeah, I saw that one before I went out for a bike ride.<= br>
>>>
>>> Clearly something = is wrong. Either ktls is using read-only buffers or the M_WRITABLE() mac= ro isn=E2=80=99t quite smart enough to spot this specific case.
>>>
>>> I=E2=80=99m not familiar e= nough with ktls to easily tell which.
>>>
>>> I=E2=80=99ll back this assertion change out for now,= so we=E2=80=99re not panicing test machines while we figure this out.
>>>
>>> Best regards,
>>> Kristof
>>>
&= gt;>


-- 
John Baldwin



--16fb958509d44755bdf660d7a1b86bf9-- --f05b720e4072433382bbf437e9890aa6 Content-Disposition: attachment; filename="t.diff" Content-Type: application/octet-stream; name="t.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3N5cy9zeXMvbWJ1Zi5oIGIvc3lzL3N5cy9tYnVmLmgKaW5kZXggYWI0 OTRhNzY4MzNlLi4zMWE3NjcwNGFlYjMgMTAwNjQ0Ci0tLSBhL3N5cy9zeXMvbWJ1Zi5oCisr KyBiL3N5cy9zeXMvbWJ1Zi5oCkBAIC0xMTM0LDcgKzExMzQsNyBAQCBtX2V4dHJlZmNudChz dHJ1Y3QgbWJ1ZiAqbSkKICAqIGJlIGJvdGggdGhlIGxvY2FsIGRhdGEgcGF5bG9hZCwgb3Ig YW4gZXh0ZXJuYWwgYnVmZmVyIGFyZWEsIGRlcGVuZGluZyBvbgogICogd2hldGhlciBNX0VY VCBpcyBzZXQpLgogICovCi0jZGVmaW5lCU1fV1JJVEFCTEUobSkJKCgobSktPm1fZmxhZ3Mg JiAoTV9SRE9OTFkgfCBNX0VYVFBHKSkgPT0gMCAmJglcCisjZGVmaW5lCU1fV1JJVEFCTEUo bSkJKCgobSktPm1fZmxhZ3MgJiBNX1JET05MWSkgPT0gMCAmJglcCiAJCQkgKCEoKChtKS0+ bV9mbGFncyAmIE1fRVhUKSkgfHwJCQlcCiAJCQkgKG1fZXh0cmVmY250KG0pID09IDEpKSkK IAo= --f05b720e4072433382bbf437e9890aa6-- From nobody Fri Sep 13 20:52:07 2024 X-Original-To: dev-commits-src-main@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 4X561h0jc0z5VsJp; Fri, 13 Sep 2024 20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X561h0BK7z4HbV; Fri, 13 Sep 2024 20: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=1726260728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U8PWWON8a4WvlDuUPkIEtJoG0O0cRuj5NxEJCmTljBQ=; b=SQr0CAtd/byx9cKVocG3rMaGyHI7kp4ey3jvUvFAAG34xoWCaWjqukT/TymD8C2HRRJt0Y FviTLYhZEYvEqw5TjXuQ41kcKdOdkkMPfghfIJQXuB2pb7Ik3MFiV7F1gWAjD5Te0wXchK TYa+6Bj5s/xaaZZKSKnWpov92n/Mf8MuGB8dwZFb4C+TrMa0MBOib2RRj4I0nnE/OYox5t WsC5v+jzswJ1/kizPF/5MXT4zg1YKToWp1SUSYyoR5rRVSIetZK79iMhADZcbnVZlJehC6 uYa571FsEqC4qfddxCZeybriJr6yTpUjulTqRrNyD89yekCSvlNA1BQyuQqYQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726260728; a=rsa-sha256; cv=none; b=aqijG2Y9XZQ1sp7W9drWtb6AKSpi3/dyi3EDQUnYJnNTNECn64Oos6o6ZUyEU9Hk9LS13D EC1L93qRtknbzEwzmm808/mgu51RFH8g0o9NxCq8qf9+Rbl+LDDpL7uxMz4Ulujglii6R9 59Gjp1tfP+uLt+dCh1yHBBuPkuYEr4ki3XeT4k2hRT7WFqMfrMkcT5SfIr2cNZlX4/YLkn v7Dnw30l2SA1x90hY81QS4VOwPP2jYdnbnDr0/pSB57gwAdz259MeZe5kxaGFfaMyq/VV4 spjkOZ97WdjqLdgx8Ixjnr5TfBM1mrkrbOceaTezPHjMaT7h0jO0dPyVmp5cfg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726260728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U8PWWON8a4WvlDuUPkIEtJoG0O0cRuj5NxEJCmTljBQ=; b=mP9e9oEuli8ZQqQlP6q1/22rHhwFCUNwk5nLeQ4+dR7Ht/Wj5PZ9zVxVev/3Mz5QT8x+30 ZdYZUcKYwccPAmb5OObOWlLHMrW5EusT1WkPoOqbjtgEBDelS45CRVxcls/iDlKwbBCUG8 AhdSPv6KtBF4r8LRmtFrEentwze2Hd60qWfzcKrsjLe4BnBnXSka0sgIPKYHscuIyXjXso dSm8tKEOXRKyndVg4OBHrjWdDWxDzMaDeC+e06qI9HOs9c6sxbgft1vPHZxA+BQ9YruIgE w5Edzmkxj10WUiWO6Hd6jsMKFwk66J67rE6SsFhaB8sBFeYkLo+42qoX3E/IOw== 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 4X561g6vQpzyc6; Fri, 13 Sep 2024 20:52:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48DKq7SK045371; Fri, 13 Sep 2024 20:52:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48DKq7FG045368; Fri, 13 Sep 2024 20:52:07 GMT (envelope-from git) Date: Fri, 13 Sep 2024 20:52:07 GMT Message-Id: <202409132052.48DKq7FG045368@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "R. Christian McDonald" Subject: git: 4269d1a2e496 - main - rc.subr: fix typo "save_dot" -> "safe_dot" List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rcm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4269d1a2e4967eb74cbef38ecc72ef9a08f51396 Auto-Submitted: auto-generated The branch main has been updated by rcm: URL: https://cgit.FreeBSD.org/src/commit/?id=4269d1a2e4967eb74cbef38ecc72ef9a08f51396 commit 4269d1a2e4967eb74cbef38ecc72ef9a08f51396 Author: R. Christian McDonald AuthorDate: 2024-09-11 14:40:04 +0000 Commit: R. Christian McDonald CommitDate: 2024-09-13 20:51:40 +0000 rc.subr: fix typo "save_dot" -> "safe_dot" Reviewed by: sjg Approved by: kp MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D46644 --- libexec/rc/rc.subr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 4bb2333addc2..df1501707a67 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -2782,6 +2782,6 @@ if ! have DebugOn; then return $_rc } fi -if ! have save_dot; then +if ! have safe_dot; then safe_dot() { dot "$@"; } fi From nobody Fri Sep 13 22:32:48 2024 X-Original-To: dev-commits-src-main@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 4X58Fr5VPSz5W6md; Fri, 13 Sep 2024 22:32: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X58Fr4rdcz4V3l; Fri, 13 Sep 2024 22:32:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726266768; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eHnowotcGFs9GBvAtIKm5GqlMEyndpfhH7yy/FoHpd0=; b=B6wsXKT/e+66VIg3jqkMNur1HNKFjpq6+ZoulNNeR+4zwxMpWLD7jjwi0nd/z8QrrN+E3l +NwUJiJDyOmwPTs4zLDxBMyGmsovtxLhGcMX4wE68Uw73+gcoeNNO3RV+lMEJTFwzGyAFJ C1nhMiNRfOiYME0+QuUFzoqQB04LFBhw/8k8gG9SOKHoJg/CsF+ulkRnnrvqfAP1TAbBpN ZoYVNrsXNv9Zb2l1ZcLHTm1FJNzwQMcIDpExSvfOYO+mHUs/ljL0oETP97pMYYqkuxqPM4 nerIZCmYAZicp/rzIH4z3KNnNONPir8kQw41QWB2Ay73cilhWdtOKXiase436Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726266768; a=rsa-sha256; cv=none; b=JXScpA3AoHVbCvxwJiC131nIcEwbOC/qUBlEVsdmzbwLKKemMuynG8k06I6w7e1c3VzixD 7yIrM6UCeGkcSjSZsS4s3bfpwA0r8Z7mx92X6tKIAq9OF4oql6qDG0NxUPzK/wSEDUBqhN 0onHrxixegvBIoxTM2Sp8ia5KL91IcqpfxcpQ1yRzUovjgEvrkT6aXpG60ZvANd/DfTPeG Xlh9K/eK/BOiUoTq4FOjghnYMqEx7AONQU8xhFuY/YO6PAwbuWLpK0gOUfA9N/o9G+ZZjK mOeBeHQYYc3BY0RbBAjjqGYSTwP4J8NtWnrDZgTAt2a30N7CQiS4R8Acg2Q+0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726266768; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eHnowotcGFs9GBvAtIKm5GqlMEyndpfhH7yy/FoHpd0=; b=vQSzJipeFGBdykm/FXW6O/nyqtylcOk8VnyaBisf8CnLwChpi+CKSS1GOxTfbx4xByN8mU JmqECfwnbn1dsttptBbuMaIbky01O91VzBi2jFBlteu5Tc/6mDeEOXNqdA9iZ6gtSeEQbd BrfUHaJb7mfSEJOvqyudpclTP/aTxSmhvu+AdyNm/0U4cbQn2O9v0TWUAebfJChmIchnLT Whj/7LflaiVwHhjBR9H319GL6+7Vn4k6gxc3zfx+GWOJh2iH6GIkP3TTDBpERR6tuAmcnV hElzD8n2loYUHuhyseKHrZ9GGvxalh+GfHcoXEQfAKcX+3yKyRS+cTJ/creRuQ== 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 4X58Fr4Smnz11wM; Fri, 13 Sep 2024 22:32:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48DMWmkd016632; Fri, 13 Sep 2024 22:32:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48DMWmQd016629; Fri, 13 Sep 2024 22:32:48 GMT (envelope-from git) Date: Fri, 13 Sep 2024 22:32:48 GMT Message-Id: <202409132232.48DMWmQd016629@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Adrian Chadd Subject: git: 3e52b265efe9 - main - net80211: fix fast BSS transition element ID name List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3e52b265efe9b617d57e7bf47d2cc1455313ee02 Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=3e52b265efe9b617d57e7bf47d2cc1455313ee02 commit 3e52b265efe9b617d57e7bf47d2cc1455313ee02 Author: Adrian Chadd AuthorDate: 2024-09-01 16:37:37 +0000 Commit: Adrian Chadd CommitDate: 2024-09-13 21:13:51 +0000 net80211: fix fast BSS transition element ID name This is a straight up typo! Differential Revision: https://reviews.freebsd.org/D46504 --- sys/net80211/ieee80211.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h index fe2a0a7f3b64..2e07c875ae01 100644 --- a/sys/net80211/ieee80211.h +++ b/sys/net80211/ieee80211.h @@ -421,7 +421,7 @@ struct ieee80211_action { #define IEEE80211_ACTION_CAT_BA 3 /* 9.6.4 Block Ack */ #define IEEE80211_ACTION_CAT_PUBLIC 4 /* 9.6.7 Public */ #define IEEE80211_ACTION_CAT_RADIO_MEASUREMENT 5 /* 9.6.6 Radio Measurement */ -#define IEEE80211_ACTION_CAT_FAST_BBS_TRANSITION 6 /* 9.6.8 Fast BSS Transition */ +#define IEEE80211_ACTION_CAT_FAST_BSS_TRANSITION 6 /* 9.6.8 Fast BSS Transition */ #define IEEE80211_ACTION_CAT_HT 7 /* 9.6.11 HT */ #define IEEE80211_ACTION_CAT_SA_QUERY 8 /* 9.6.9 SA Query */ #define IEEE80211_ACTION_CAT_PROTECTED_DUAL_OF_PUBLIC_ACTION 9 /* 9.6.10 Protected Dual of Public Action */ From nobody Fri Sep 13 22:32:49 2024 X-Original-To: dev-commits-src-main@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 4X58Fs6Jdvz5W6kT; Fri, 13 Sep 2024 22:32: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X58Fs5s5dz4V2D; Fri, 13 Sep 2024 22:32:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726266769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s6vqjApfzguZ9sP4D+1hPq8lpAdnd5PU80LPsenuNZA=; b=V2Vf0PpJlxMBPelWHMR3PFJ4E+Zuwk9ttBfgeKCdK2fSosTTZosnwaRA5oHggBVTlVBRcO Igtl3kqyYLZDqShHR+GpIC4zLCMouNR99uoMJ4Iz5R99nyuzhNyLnGVBZwZgRVjHRYdsSD H4X9if0N+EaN5NqCAF4Kk7ngGIZ3zUbLCJEXU+tiXuyQw3Q1o/dYXaTQ+D9k5brYnRr1Dq Ma15+fmKiWsXa3/rwxb2wK3YAHO4SHnN8EiwLalwAmmUZETLgxZAZYvqEckQsTOJChjUya 5P5SzlmJywd1I4jylEGiTPbTR/dxBn+kShshbeYFptypc9OYn7nv2lcpmmZdUQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726266769; a=rsa-sha256; cv=none; b=Z6ZwaVFuT9sY6EWjWGVAQUHPxgplXxUTtjwnbHr4vJE3NeMi03QiiLKMGC28FA6r/WXdWt V2MilvHBoOiEDQptnYvgUWaPiZMbZVvh6FI7DMSGMTvYYXADWzlFrH4aFuF2R647XHPzSt VhuLIRPHVPIwVnNbYLyZAStInWk0I9tSKmrVH/CHgtbG6Ipr1DRM1+5xZ6VmGYyoMn9TDm 4e94IxyFtZN/zqTKynpouAchbWzpRXnaVro9fcFdV7+JZWFEANxF/u5Bz0Sg9jiEOZ0LKH bB3cLRW0Fsnai6XF02WxsEDUZf7PIwqIz09K8f25f0bYbRek5eHJCoyB87T5Ew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726266769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s6vqjApfzguZ9sP4D+1hPq8lpAdnd5PU80LPsenuNZA=; b=X2Yl6J5CnGia+3RKsYufFxHlg6xkpMYnxwi8MPBd2ejqpp3Ltk78b8CGkhOjoiCIz20NSo Sy1qmGw3Y/mti0Bb4Gg0/107eF1KhZ60IWgdwov+BKtOZcpyZtbs/7p1PJIYcOqF4LHaWv j0gTA6Chknp+V00gPHYVBUlEWCgmpmc46nmFjBoTLMpFmqXnHN6TDSP9ZYBd8mzAW20Z4w GXRSkdXv/4ayTPOJ0ERv1GQNQJtTv7NnIZjTD9nyMv7Ouy3QJYgKctrzrcQvFo35vPqb6M IGcet5mMvdxYvBN7ncysA2q5s5B7stUWwjNyQrPiC6rqTfrbEjrq3rnIDalYcw== 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 4X58Fs5PGTz1215; Fri, 13 Sep 2024 22:32:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48DMWnBk016703; Fri, 13 Sep 2024 22:32:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48DMWnB5016700; Fri, 13 Sep 2024 22:32:49 GMT (envelope-from git) Date: Fri, 13 Sep 2024 22:32:49 GMT Message-Id: <202409132232.48DMWnB5016700@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Adrian Chadd Subject: git: 50982d26e45b - main - net80211: add MMIC element ID (for management frame protected group action frames) List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adrian X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 50982d26e45ba36dceee471a5a6bed4a2e5f171b Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=50982d26e45ba36dceee471a5a6bed4a2e5f171b commit 50982d26e45ba36dceee471a5a6bed4a2e5f171b Author: Adrian Chadd AuthorDate: 2024-09-01 16:40:30 +0000 Commit: Adrian Chadd CommitDate: 2024-09-13 21:13:58 +0000 net80211: add MMIC element ID (for management frame protected group action frames) * add the MMIC element ID * add a comment showing the source of this table from the 802.11-2016 specification. Differential Revision: https://reviews.freebsd.org/D46505 --- sys/net80211/ieee80211.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h index 2e07c875ae01..4203952367ca 100644 --- a/sys/net80211/ieee80211.h +++ b/sys/net80211/ieee80211.h @@ -1017,6 +1017,8 @@ struct ieee80211_ie_vht_txpwrenv { /* * Management information element payloads. + * + * 802.11-2016 Table 9-77 (Element IDs). */ enum { @@ -1058,6 +1060,7 @@ enum { IEEE80211_ELEMID_COEX_2040 = 72, IEEE80211_ELEMID_INTOL_CHN_REPORT = 73, IEEE80211_ELEMID_OVERLAP_BSS_SCAN_PARAM = 74, + IEEE80211_ELEMID_MMIC = 76, IEEE80211_ELEMID_TSF_REQ = 91, IEEE80211_ELEMID_TSF_RESP = 92, IEEE80211_ELEMID_WNM_SLEEP_MODE = 93, From nobody Sat Sep 14 01:34:29 2024 X-Original-To: dev-commits-src-main@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 4X5DHT4z6bz5WbWn; Sat, 14 Sep 2024 01:34: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5DHT47MDz3xsM; Sat, 14 Sep 2024 01:34:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726277669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SARI+kOvQPy0a6zYLkPs1OSBKlGEPp6HYT1KImCQaCg=; b=S8Wps1U9yxE/8cVII7dyUAefLXEOngF6NCGl4iXoktEk/X85jNs1uTPUwqJDsx9sAs8/T6 NnxNSW/11pG/tU+slGr6XkskUU8vDQjh+JHtindIMS5N0XaQoMTFth1d/w9nUgSwQJEKRT NJFCSERummF0tP4OI7NCUJ5UgZQW5Bt9vgb8M9vy3PbSQs5nMqAYniaQ+jab530XQNX5NB qfJ866JiOjvnp++JESqKIkXZVND0uHGuVYeA51am/OrElh0VymsipoIEvvkGuFkli3xItc q8/gwD3fo90eJ8YYm97FVRguA7FXkkN1ddxrWRVQu6N3a5sKrGaZK582ivJD0g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726277669; a=rsa-sha256; cv=none; b=h4daSoBxIFTbXPIvZTYrffOKEwmZxhHdBE1aByvgsxwYfdNgeKoo6qy7bkwr04y5bybFqJ l720IWl/bflgvYr7J0JgQYU9J+4L8Wik7ZSynGsh9T8m6HXH/qeNtqCG5QhmCZAXGKrQi8 /HhAwrvCgQoTPDIyat8okH+TSPSTwifpSXPnpqMKNBTuJ8CpD7nTd6tCpsqMIIm9pUv5sW fuVM3NKlDBeupvFTx30mZirZwR+dr9TUQqxBMeI5gFcJPuaXI4JLmbWW3EgBoLP2VmqKul LV52A+m/NkQQqj4NqJ2pi17KWNlza04GR9Rz728zB/p4w8FuiLiEFWHo4lcfXg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726277669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SARI+kOvQPy0a6zYLkPs1OSBKlGEPp6HYT1KImCQaCg=; b=HUIDamOeGWhXt+4BMPNF+gcz4WoTZ7Qwv30GmGzfklFc9V7ryjXXcPmrOgThm4YW8+hbvO 2FQYQXmr5z3xENxAPoeJgwpgNMJWWwTGXxd7YUXl9HIStt0EHyE+KpzrI3V48Amn2E8Zq6 iGknROLcJ1GZb9ULa9ej0qnz71Bl9/vHbI9BruTS8lrX95WBBSpooWDdt9I3aODBM83bbp QZW1x61vigOKx7RTT+KhY92wgoASNHC1ki12Q4WCwg7XOfhtWIGNCHxfgdBtgIs4XtUgkk tWiE8nJw/4JFjrVH6jhwPugsO679YdgkwNYfO4ewpZeWiWgyTYqyoztNo1GCJA== 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 4X5DHT3kmyz16gR; Sat, 14 Sep 2024 01:34:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48E1YTjP021038; Sat, 14 Sep 2024 01:34:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48E1YTlS021035; Sat, 14 Sep 2024 01:34:29 GMT (envelope-from git) Date: Sat, 14 Sep 2024 01:34:29 GMT Message-Id: <202409140134.48E1YTlS021035@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: 47112d359b36 - main - kassert: Remove KASAN marking from DEBUG_POISON_POINTER List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 47112d359b36899893a386f572bd1a4ab007e8a2 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=47112d359b36899893a386f572bd1a4ab007e8a2 commit 47112d359b36899893a386f572bd1a4ab007e8a2 Author: Mark Johnston AuthorDate: 2024-09-14 01:32:06 +0000 Commit: Mark Johnston CommitDate: 2024-09-14 01:34:12 +0000 kassert: Remove KASAN marking from DEBUG_POISON_POINTER While this approach works for trapping reads of an uninitialized pointer, it means that any attempt to store to the variable triggers a KASAN report, which is not what we want. Simply remove the kasan_mark() call. KMSAN will catch these kinds of bugs automatically anyway. Reported by: syzbot+c5e279db5763b58e8d69@syzkaller.appspotmail.com MFC after: 1 week --- sys/sys/kassert.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sys/sys/kassert.h b/sys/sys/kassert.h index ab2313bcbd8b..8dcea8352fdf 100644 --- a/sys/sys/kassert.h +++ b/sys/sys/kassert.h @@ -38,8 +38,7 @@ extern const char *panicstr; /* panic message */ #define KERNEL_PANICKED() __predict_false(panicstr != NULL) /* - * Trap accesses going through a pointer. Moreover if kasan is available trap - * reading the pointer itself. + * Trap accesses going through a pointer. * * Sample usage: you have a struct with numerous fields and by API contract * only some of them get populated, even if the implementation temporary writes @@ -61,7 +60,6 @@ extern caddr_t poisoned_buf; #define DEBUG_POISON_POINTER(x) ({ \ x = (void *)(DEBUG_POISON_POINTER_VALUE); \ - kasan_mark(&x, 0, sizeof(x), KASAN_GENERIC_REDZONE); \ }) #else From nobody Sat Sep 14 01:39:56 2024 X-Original-To: dev-commits-src-main@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 4X5DPn0CDFz5WcQK; Sat, 14 Sep 2024 01:39: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5DPm6SkRz40Qg; Sat, 14 Sep 2024 01:39:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726277996; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7Pibwoa7Ru6Kz4b2g9icOeD9YsrutmY+OxcWSuX0DYQ=; b=NELY8DdDfp9hs5cdQBqTDlIOItEJUep8xhscQLfADjWXMZY0reSkMn2lGVBeh+z0B7d6YI Hbzt/CnneBBPsu0Ybmm17BV9fjTIHAZJgiXoiKHJrj2zlZP6pfN1AWkE2JM0FGJ+bEnMQE 0CbP5a08e39xT+Etzv7E35ZPBD8u8FUdZkh5pM5A+41gskmsrL7/FEdb9vV0nGwdtqm9uc casAvM4bCZ5XEKBEq6rULqAXaUAWjFKIi737WZDPz7y2sbI7qXHjt/gWyJpzdHjG5P5Btr heN+OurG8eZRC9GwTgohv10q8nC1Fj1iEgDsKdNimDJbRwAH/w6fwlPxBdI9bA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726277996; a=rsa-sha256; cv=none; b=HUOPXyGcjZddWg54ryvCs7E4u7ERCkHhAzo3h6vzfbOiAhEgA+YXGaJ3XRtQEl+6IkjH6T 5Y4hyRe9LeAOxdz9uPSy8jFi9batObr66PocTRirc3gH6OdLzDvrs0J5FjeOGiPme+CxDh mvtoc5iIiN1vWX/pPycHB1S+IadUoq9V8o3lEwz8Nq5qxTIIUBmiNEar+bGocQbpv/EFw5 PkjtdiSbhMYA+j1a0IMkfgopP3ZNWWirTI0TbNYaT5l1KjGWZo/J37AaQIhUYbYvXwOao/ +LdNLS7ylyuBxOaITfwTjBGVl+yvRV978ZN87oVqpDR4wLeNbSwC6ePGIfOIFw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726277996; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7Pibwoa7Ru6Kz4b2g9icOeD9YsrutmY+OxcWSuX0DYQ=; b=vfE08p/habPrrVuwG7NwtLn9/SqfaT2QEcN6Yqfm2qtT4wnZQZzyvtlemcQ0/PJ0MH3Lkh hi6fs/us8FyTnxOV45NNoI9OZxoJoVuVq73bY2R6BCBUH+W7zmzORwoa5dYjjsM6sclzNG axmkP2BLJNVHlLYLlKPDzAoyyZebe2dytlKFj5CLEdan3Ox9pkv7HCwwZErxnt34AAORFa 1FJgfcZrszCS63MaoGkeEB/mJZptWN2LlPgxr5OjbbbbMxDMvBnBpKHpy7thw8QYCT4g3R QNVX7bjMMwzv6TqUrq6mWz5t028Wko3ZnZLM6/UPxJTt/wle3d3CY/YUBlArFg== 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 4X5DPm5g3Pz16rY; Sat, 14 Sep 2024 01:39:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48E1duFZ021864; Sat, 14 Sep 2024 01:39:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48E1duEC021861; Sat, 14 Sep 2024 01:39:56 GMT (envelope-from git) Date: Sat, 14 Sep 2024 01:39:56 GMT Message-Id: <202409140139.48E1duEC021861@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: afd096326aad - main - kassert: Further remove KASAN integration from DEBUG_POISON_POINTER List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: afd096326aad1a672fd5f39b9b05c433fa7fe7dc Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=afd096326aad1a672fd5f39b9b05c433fa7fe7dc commit afd096326aad1a672fd5f39b9b05c433fa7fe7dc Author: Mark Johnston AuthorDate: 2024-09-14 01:36:44 +0000 Commit: Mark Johnston CommitDate: 2024-09-14 01:36:44 +0000 kassert: Further remove KASAN integration from DEBUG_POISON_POINTER Fixes: 47112d359b36 ("kassert: Remove KASAN marking from DEBUG_POISON_POINTER") --- sys/sys/kassert.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sys/sys/kassert.h b/sys/sys/kassert.h index 8dcea8352fdf..7755a241888f 100644 --- a/sys/sys/kassert.h +++ b/sys/sys/kassert.h @@ -47,14 +47,10 @@ extern const char *panicstr; /* panic message */ * * DEBUG_POISON_POINTER(obj->ptr); * .... - * if (obj->ptr != NULL) // traps with kasan, does not trap otherwise - * .... - * if (obj->ptr->field) // traps with and without kasan + * if (obj->ptr->field) // traps */ #ifdef INVARIANTS -#include - extern caddr_t poisoned_buf; #define DEBUG_POISON_POINTER_VALUE poisoned_buf From nobody Sat Sep 14 03:13:47 2024 X-Original-To: dev-commits-src-main@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 4X5GV31SGsz5WrnG; Sat, 14 Sep 2024 03:13: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5GV31CfDz4Cj5; Sat, 14 Sep 2024 03:13:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726283627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Uvz7PDyHpuIteegQEto10JRm6qQ+wpZtGQ1x8hssLjc=; b=uQwjoOVSg1p4HqhT6nurvw6BScns3XODkuhqdEEdrRp7hKuPbrvjxJNK5wGEVnleS0G/DJ eRnaGn4tEESKosZziUd9E37PaNF1/FbmeByY2wsfcGIGHsR5IhhPBkxh1tVWhEhrnscs5d POsphP/Ca5G6/wWVF9uOp11D4V4unvDDLbDN0A5HqfWhIV9WhqPh8SzLBiqQ/FsxqZoSXH oIl/lnWNJiO4MeYH3MLIQHkCrX1AorydkuBU2Fz73PVtbiBpmjTG2+NsrTlwTfYHEkf3WW dRiviFTRVvwOcc12HAjQnw93FztHw1UMHOWBoS1FlcQd+J0F5jC5HMIl8vD7uw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726283627; a=rsa-sha256; cv=none; b=TgyNXCQPUGLDNEHL9Ss37KpFxidoHujyN2SBz2TYJ0plvPMakbb8DpUoqgHgd8xWIbA2HM 64AnkAHkqvteqMEP2W20RRg8OHu8v8FNC/C80/hTF6lMHfMVlDsFgaYval5hsrmzd4eyUe S/ej/Rv/VgabZkefk2l+7PJUbwaLi9QXuyyNIHgh7UPYQ/3QZt4MRlDdk76L1UKvkDFsjk Y8r2aiD7XqGTOmiRWSX7135mAclkeFBz/AXGj73gN/7x3LRHERoszk+bRHS8ch1IUsmHpi +YBWbzO9DyABByyamMCVKl2ekfFJe3nvp2TCvcsbfV9tLGk5jdV55IkBiZYVpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726283627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Uvz7PDyHpuIteegQEto10JRm6qQ+wpZtGQ1x8hssLjc=; b=b007OUtHjygYxm0nOjuenNLNQGhJ4SwehAK5HuctTFeQB5G+NQ6dTW8rXtqhwzIUmMZaqn G32xTtPbdzQqijnx69Cg28cmvr3sUaoZqBpycAOZ0+6bJLBwXlNtThsvJuylw/tOgNX78j mKoA57t2Y3hIUJN7NF4EuzEUsz+viRWdEFxaVD8H1P5zkUvMxt1HkCOJRMDq+zOtKF2Qrl dNKwrQbDHtCIquVt6q8U4Dz9wR6rZrshXolJcphZ0rR4cCu1msgdbde9TxpRuAohKimGLk +NbhjvGE/UUrKpdLM99TrllOgIxIqs0fK7VEXHiBGv4PAAplgF4QHlWq9NEmYw== 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 4X5GV30pTkz197f; Sat, 14 Sep 2024 03:13:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48E3Dl08091741; Sat, 14 Sep 2024 03:13:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48E3Dl2G091738; Sat, 14 Sep 2024 03:13:47 GMT (envelope-from git) Date: Sat, 14 Sep 2024 03:13:47 GMT Message-Id: <202409140313.48E3Dl2G091738@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 50a03971d332 - main - ps3: add elfv2 support List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 50a03971d3327f3ca5c2a1a96ec83c77b6a669c8 Auto-Submitted: auto-generated The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=50a03971d3327f3ca5c2a1a96ec83c77b6a669c8 commit 50a03971d3327f3ca5c2a1a96ec83c77b6a669c8 Author: Chattrapat Sangmanee AuthorDate: 2024-09-09 08:38:28 +0000 Commit: Justin Hibbits CommitDate: 2024-09-14 03:13:05 +0000 ps3: add elfv2 support ps3 are broken since we moved to clang/elfv2. Fix this by updating the hypercall glue to the new ABI. Signed-off-by: Chattrapat Sangmanee Reviewed by: jhibbits MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/1413 --- sys/powerpc/ps3/ps3-hv-asm.awk | 18 +- sys/powerpc/ps3/ps3-hvcall.S | 436 ++++++++++++++++++++--------------------- 2 files changed, 230 insertions(+), 224 deletions(-) diff --git a/sys/powerpc/ps3/ps3-hv-asm.awk b/sys/powerpc/ps3/ps3-hv-asm.awk index 91e114ba8e79..d3364a0c2bd7 100644 --- a/sys/powerpc/ps3/ps3-hv-asm.awk +++ b/sys/powerpc/ps3/ps3-hv-asm.awk @@ -12,6 +12,10 @@ BEGIN { } /HVCALL.*/ { + # Parameter save area + # 48 in elfv1, 32 in elfv2 + stack_offset = 32; + code = $2; ins = split($4, a, ",") outs = split($5, a, ",") @@ -19,7 +23,7 @@ BEGIN { printf("ASENTRY(%s)\n",$3); printf("\tmflr %%r0\n"); printf("\tstd %%r0,16(%%r1)\n"); - printf("\tstdu %%r1,-%d(%%r1)\n", 48+8*outs); + printf("\tstdu %%r1,-%d(%%r1)\n", stack_offset+8*outs); if ($4 == "UNUSED") ins = 0 @@ -27,10 +31,10 @@ BEGIN { # Save output reg addresses to the stack for (i = 0; i < outs; i++) { if (ins+i >= 8) { - printf("\tld %%r11,%d(%%r1)\n", 48+8*outs + 48 + 8*(i+ins)); - printf("\tstd %%r11,%d(%%r1)\n", 48+8*i); + printf("\tld %%r11,%d(%%r1)\n", stack_offset+8*outs + stack_offset + 8*(i+ins)); + printf("\tstd %%r11,%d(%%r1)\n", stack_offset+8*i); } else { - printf("\tstd %%r%d,%d(%%r1)\n", 3+ins+i, 48+8*i); + printf("\tstd %%r%d,%d(%%r1)\n", 3+ins+i, stack_offset+8*i); } } @@ -39,12 +43,14 @@ BEGIN { printf("\textsw %%r3,%%r3\n"); for (i = 0; i < outs; i++) { - printf("\tld %%r11,%d(%%r1)\n", 48+8*i); + printf("\tld %%r11,%d(%%r1)\n", stack_offset+8*i); printf("\tstd %%r%d,0(%%r11)\n", 4+i); } printf("\tld %%r1,0(%%r1)\n"); printf("\tld %%r0,16(%%r1)\n"); printf("\tmtlr %%r0\n"); - printf("\tblr\n\n"); + printf("\tblr\n"); + + printf("ASEND(%s)\n\n",$3); } diff --git a/sys/powerpc/ps3/ps3-hvcall.S b/sys/powerpc/ps3/ps3-hvcall.S index 99e503e2dcff..59dfe639ee61 100644 --- a/sys/powerpc/ps3/ps3-hvcall.S +++ b/sys/powerpc/ps3/ps3-hvcall.S @@ -1,4 +1,3 @@ - #include #define hc .long 0x44000022 @@ -6,15 +5,15 @@ ASENTRY(lv1_allocate_memory) mflr %r0 std %r0,16(%r1) - stdu %r1,-64(%r1) - std %r7,48(%r1) - std %r8,56(%r1) + stdu %r1,-48(%r1) + std %r7,32(%r1) + std %r8,40(%r1) li %r11,0 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -25,7 +24,7 @@ ASEND(lv1_allocate_memory) ASENTRY(lv1_write_htab_entry) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,1 hc extsw %r3,%r3 @@ -38,15 +37,15 @@ ASEND(lv1_write_htab_entry) ASENTRY(lv1_construct_virtual_address_space) mflr %r0 std %r0,16(%r1) - stdu %r1,-64(%r1) - std %r6,48(%r1) - std %r7,56(%r1) + stdu %r1,-48(%r1) + std %r6,32(%r1) + std %r7,40(%r1) li %r11,2 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -57,12 +56,12 @@ ASEND(lv1_construct_virtual_address_space) ASENTRY(lv1_get_virtual_address_space_id_of_ppe) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r4,48(%r1) + stdu %r1,-40(%r1) + std %r4,32(%r1) li %r11,4 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -73,24 +72,24 @@ ASEND(lv1_get_virtual_address_space_id_of_ppe) ASENTRY(lv1_query_logical_partition_address_region_info) mflr %r0 std %r0,16(%r1) - stdu %r1,-88(%r1) - std %r4,48(%r1) - std %r5,56(%r1) - std %r6,64(%r1) - std %r7,72(%r1) - std %r8,80(%r1) + stdu %r1,-72(%r1) + std %r4,32(%r1) + std %r5,40(%r1) + std %r6,48(%r1) + std %r7,56(%r1) + std %r8,64(%r1) li %r11,6 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) - ld %r11,64(%r1) + ld %r11,48(%r1) std %r6,0(%r11) - ld %r11,72(%r1) + ld %r11,56(%r1) std %r7,0(%r11) - ld %r11,80(%r1) + ld %r11,64(%r1) std %r8,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -101,7 +100,7 @@ ASEND(lv1_query_logical_partition_address_region_info) ASENTRY(lv1_select_virtual_address_space) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,7 hc extsw %r3,%r3 @@ -114,7 +113,7 @@ ASEND(lv1_select_virtual_address_space) ASENTRY(lv1_pause) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,9 hc extsw %r3,%r3 @@ -127,7 +126,7 @@ ASEND(lv1_pause) ASENTRY(lv1_destruct_virtual_address_space) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,10 hc extsw %r3,%r3 @@ -140,7 +139,7 @@ ASEND(lv1_destruct_virtual_address_space) ASENTRY(lv1_configure_irq_state_bitmap) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,11 hc extsw %r3,%r3 @@ -153,7 +152,7 @@ ASEND(lv1_configure_irq_state_bitmap) ASENTRY(lv1_connect_irq_plug_ext) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,12 hc extsw %r3,%r3 @@ -166,7 +165,7 @@ ASEND(lv1_connect_irq_plug_ext) ASENTRY(lv1_release_memory) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,13 hc extsw %r3,%r3 @@ -179,7 +178,7 @@ ASEND(lv1_release_memory) ASENTRY(lv1_put_iopte) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,15 hc extsw %r3,%r3 @@ -192,7 +191,7 @@ ASEND(lv1_put_iopte) ASENTRY(lv1_disconnect_irq_plug_ext) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,17 hc extsw %r3,%r3 @@ -205,12 +204,12 @@ ASEND(lv1_disconnect_irq_plug_ext) ASENTRY(lv1_construct_event_receive_port) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r3,48(%r1) + stdu %r1,-40(%r1) + std %r3,32(%r1) li %r11,18 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -221,7 +220,7 @@ ASEND(lv1_construct_event_receive_port) ASENTRY(lv1_destruct_event_receive_port) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,19 hc extsw %r3,%r3 @@ -234,7 +233,7 @@ ASEND(lv1_destruct_event_receive_port) ASENTRY(lv1_send_event_locally) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,24 hc extsw %r3,%r3 @@ -247,7 +246,7 @@ ASEND(lv1_send_event_locally) ASENTRY(lv1_end_of_interrupt) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,27 hc extsw %r3,%r3 @@ -260,7 +259,7 @@ ASEND(lv1_end_of_interrupt) ASENTRY(lv1_connect_irq_plug) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,28 hc extsw %r3,%r3 @@ -273,7 +272,7 @@ ASEND(lv1_connect_irq_plug) ASENTRY(lv1_disconnect_irq_plus) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,29 hc extsw %r3,%r3 @@ -286,7 +285,7 @@ ASEND(lv1_disconnect_irq_plus) ASENTRY(lv1_end_of_interrupt_ext) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,30 hc extsw %r3,%r3 @@ -299,7 +298,7 @@ ASEND(lv1_end_of_interrupt_ext) ASENTRY(lv1_did_update_interrupt_mask) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,31 hc extsw %r3,%r3 @@ -312,7 +311,7 @@ ASEND(lv1_did_update_interrupt_mask) ASENTRY(lv1_shutdown_logical_partition) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,44 hc extsw %r3,%r3 @@ -325,7 +324,7 @@ ASEND(lv1_shutdown_logical_partition) ASENTRY(lv1_destruct_logical_spe) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,54 hc extsw %r3,%r3 @@ -338,32 +337,32 @@ ASEND(lv1_destruct_logical_spe) ASENTRY(lv1_construct_logical_spe) mflr %r0 std %r0,16(%r1) - stdu %r1,-96(%r1) - std %r10,48(%r1) - ld %r11,208(%r1) + stdu %r1,-80(%r1) + std %r10,32(%r1) + ld %r11,176(%r1) + std %r11,40(%r1) + ld %r11,184(%r1) + std %r11,48(%r1) + ld %r11,192(%r1) std %r11,56(%r1) - ld %r11,216(%r1) + ld %r11,200(%r1) std %r11,64(%r1) - ld %r11,224(%r1) + ld %r11,208(%r1) std %r11,72(%r1) - ld %r11,232(%r1) - std %r11,80(%r1) - ld %r11,240(%r1) - std %r11,88(%r1) li %r11,57 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) - ld %r11,64(%r1) + ld %r11,48(%r1) std %r6,0(%r11) - ld %r11,72(%r1) + ld %r11,56(%r1) std %r7,0(%r11) - ld %r11,80(%r1) + ld %r11,64(%r1) std %r8,0(%r11) - ld %r11,88(%r1) + ld %r11,72(%r1) std %r9,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -374,7 +373,7 @@ ASEND(lv1_construct_logical_spe) ASENTRY(lv1_set_spe_interrupt_mask) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,61 hc extsw %r3,%r3 @@ -387,7 +386,7 @@ ASEND(lv1_set_spe_interrupt_mask) ASENTRY(lv1_disable_logical_spe) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,65 hc extsw %r3,%r3 @@ -400,7 +399,7 @@ ASEND(lv1_disable_logical_spe) ASENTRY(lv1_clear_spe_interrupt_status) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,66 hc extsw %r3,%r3 @@ -413,12 +412,12 @@ ASEND(lv1_clear_spe_interrupt_status) ASENTRY(lv1_get_spe_interrupt_status) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r5,48(%r1) + stdu %r1,-40(%r1) + std %r5,32(%r1) li %r11,67 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -429,12 +428,12 @@ ASEND(lv1_get_spe_interrupt_status) ASENTRY(lv1_get_logical_ppe_id) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r3,48(%r1) + stdu %r1,-40(%r1) + std %r3,32(%r1) li %r11,69 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -445,12 +444,12 @@ ASEND(lv1_get_logical_ppe_id) ASENTRY(lv1_get_logical_partition_id) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r3,48(%r1) + stdu %r1,-40(%r1) + std %r3,32(%r1) li %r11,74 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -461,12 +460,12 @@ ASEND(lv1_get_logical_partition_id) ASENTRY(lv1_get_spe_irq_outlet) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r5,48(%r1) + stdu %r1,-40(%r1) + std %r5,32(%r1) li %r11,78 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -477,7 +476,7 @@ ASEND(lv1_get_spe_irq_outlet) ASENTRY(lv1_set_spe_privilege_state_area_1_register) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,79 hc extsw %r3,%r3 @@ -490,15 +489,15 @@ ASEND(lv1_set_spe_privilege_state_area_1_register) ASENTRY(lv1_get_repository_node_value) mflr %r0 std %r0,16(%r1) - stdu %r1,-64(%r1) - std %r8,48(%r1) - std %r9,56(%r1) + stdu %r1,-48(%r1) + std %r8,32(%r1) + std %r9,40(%r1) li %r11,91 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -509,24 +508,24 @@ ASEND(lv1_get_repository_node_value) ASENTRY(lv1_read_htab_entries) mflr %r0 std %r0,16(%r1) - stdu %r1,-88(%r1) - std %r5,48(%r1) - std %r6,56(%r1) - std %r7,64(%r1) - std %r8,72(%r1) - std %r9,80(%r1) + stdu %r1,-72(%r1) + std %r5,32(%r1) + std %r6,40(%r1) + std %r7,48(%r1) + std %r8,56(%r1) + std %r9,64(%r1) li %r11,95 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) - ld %r11,64(%r1) + ld %r11,48(%r1) std %r6,0(%r11) - ld %r11,72(%r1) + ld %r11,56(%r1) std %r7,0(%r11) - ld %r11,80(%r1) + ld %r11,64(%r1) std %r8,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -537,7 +536,7 @@ ASEND(lv1_read_htab_entries) ASENTRY(lv1_set_dabr) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,96 hc extsw %r3,%r3 @@ -550,12 +549,12 @@ ASEND(lv1_set_dabr) ASENTRY(lv1_allocate_io_segment) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r6,48(%r1) + stdu %r1,-40(%r1) + std %r6,32(%r1) li %r11,116 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -566,7 +565,7 @@ ASEND(lv1_allocate_io_segment) ASENTRY(lv1_release_io_segment) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,117 hc extsw %r3,%r3 @@ -579,12 +578,12 @@ ASEND(lv1_release_io_segment) ASENTRY(lv1_construct_io_irq_outlet) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r4,48(%r1) + stdu %r1,-40(%r1) + std %r4,32(%r1) li %r11,120 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -595,7 +594,7 @@ ASEND(lv1_construct_io_irq_outlet) ASENTRY(lv1_destruct_io_irq_outlet) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,121 hc extsw %r3,%r3 @@ -608,12 +607,12 @@ ASEND(lv1_destruct_io_irq_outlet) ASENTRY(lv1_map_htab) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r4,48(%r1) + stdu %r1,-40(%r1) + std %r4,32(%r1) li %r11,122 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -624,7 +623,7 @@ ASEND(lv1_map_htab) ASENTRY(lv1_unmap_htab) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,123 hc extsw %r3,%r3 @@ -637,12 +636,12 @@ ASEND(lv1_unmap_htab) ASENTRY(lv1_get_version_info) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r3,48(%r1) + stdu %r1,-40(%r1) + std %r3,32(%r1) li %r11,127 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -653,19 +652,19 @@ ASEND(lv1_get_version_info) ASENTRY(lv1_insert_htab_entry) mflr %r0 std %r0,16(%r1) - stdu %r1,-72(%r1) - std %r9,48(%r1) - std %r10,56(%r1) - ld %r11,184(%r1) - std %r11,64(%r1) + stdu %r1,-56(%r1) + std %r9,32(%r1) + std %r10,40(%r1) + ld %r11,152(%r1) + std %r11,48(%r1) li %r11,158 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) - ld %r11,64(%r1) + ld %r11,48(%r1) std %r6,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -676,12 +675,12 @@ ASEND(lv1_insert_htab_entry) ASENTRY(lv1_read_virtual_uart) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r6,48(%r1) + stdu %r1,-40(%r1) + std %r6,32(%r1) li %r11,162 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -692,12 +691,12 @@ ASEND(lv1_read_virtual_uart) ASENTRY(lv1_write_virtual_uart) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r6,48(%r1) + stdu %r1,-40(%r1) + std %r6,32(%r1) li %r11,163 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -708,7 +707,7 @@ ASEND(lv1_write_virtual_uart) ASENTRY(lv1_set_virtual_uart_param) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,164 hc extsw %r3,%r3 @@ -721,12 +720,12 @@ ASEND(lv1_set_virtual_uart_param) ASENTRY(lv1_get_virtual_uart_param) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r5,48(%r1) + stdu %r1,-40(%r1) + std %r5,32(%r1) li %r11,165 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -737,12 +736,12 @@ ASEND(lv1_get_virtual_uart_param) ASENTRY(lv1_configure_virtual_uart) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r4,48(%r1) + stdu %r1,-40(%r1) + std %r4,32(%r1) li %r11,166 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -753,7 +752,7 @@ ASEND(lv1_configure_virtual_uart) ASENTRY(lv1_open_device) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,170 hc extsw %r3,%r3 @@ -766,7 +765,7 @@ ASEND(lv1_open_device) ASENTRY(lv1_close_device) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,171 hc extsw %r3,%r3 @@ -779,12 +778,12 @@ ASEND(lv1_close_device) ASENTRY(lv1_map_device_mmio_region) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r8,48(%r1) + stdu %r1,-40(%r1) + std %r8,32(%r1) li %r11,172 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -795,7 +794,7 @@ ASEND(lv1_map_device_mmio_region) ASENTRY(lv1_unmap_device_mmio_region) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,173 hc extsw %r3,%r3 @@ -808,12 +807,12 @@ ASEND(lv1_unmap_device_mmio_region) ASENTRY(lv1_allocate_device_dma_region) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r8,48(%r1) + stdu %r1,-40(%r1) + std %r8,32(%r1) li %r11,174 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -824,7 +823,7 @@ ASEND(lv1_allocate_device_dma_region) ASENTRY(lv1_free_device_dma_region) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,175 hc extsw %r3,%r3 @@ -837,7 +836,7 @@ ASEND(lv1_free_device_dma_region) ASENTRY(lv1_map_device_dma_region) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,176 hc extsw %r3,%r3 @@ -850,7 +849,7 @@ ASEND(lv1_map_device_dma_region) ASENTRY(lv1_unmap_device_dma_region) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,177 hc extsw %r3,%r3 @@ -863,12 +862,12 @@ ASEND(lv1_unmap_device_dma_region) ASENTRY(lv1_read_pci_config) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) - std %r9,48(%r1) + stdu %r1,-40(%r1) + std %r9,32(%r1) li %r11,178 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -879,7 +878,7 @@ ASEND(lv1_read_pci_config) ASENTRY(lv1_write_pci_config) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,179 hc extsw %r3,%r3 @@ -892,7 +891,7 @@ ASEND(lv1_write_pci_config) ASENTRY(lv1_net_add_multicast_address) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,185 hc extsw %r3,%r3 @@ -905,7 +904,7 @@ ASEND(lv1_net_add_multicast_address) ASENTRY(lv1_net_remove_multicast_address) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,186 hc extsw %r3,%r3 @@ -918,7 +917,7 @@ ASEND(lv1_net_remove_multicast_address) ASENTRY(lv1_net_start_tx_dma) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,187 hc extsw %r3,%r3 @@ -931,7 +930,7 @@ ASEND(lv1_net_start_tx_dma) ASENTRY(lv1_net_stop_tx_dma) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,188 hc extsw %r3,%r3 @@ -944,7 +943,7 @@ ASEND(lv1_net_stop_tx_dma) ASENTRY(lv1_net_start_rx_dma) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,189 hc extsw %r3,%r3 @@ -957,7 +956,7 @@ ASEND(lv1_net_start_rx_dma) ASENTRY(lv1_net_stop_rx_dma) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,190 hc extsw %r3,%r3 @@ -970,7 +969,7 @@ ASEND(lv1_net_stop_rx_dma) ASENTRY(lv1_net_set_interrupt_status_indicator) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,191 hc extsw %r3,%r3 @@ -983,7 +982,7 @@ ASEND(lv1_net_set_interrupt_status_indicator) ASENTRY(lv1_net_set_interrupt_mask) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,193 hc extsw %r3,%r3 @@ -996,15 +995,15 @@ ASEND(lv1_net_set_interrupt_mask) ASENTRY(lv1_net_control) mflr %r0 std %r0,16(%r1) - stdu %r1,-64(%r1) - std %r9,48(%r1) - std %r10,56(%r1) + stdu %r1,-48(%r1) + std %r9,32(%r1) + std %r10,40(%r1) li %r11,194 hc extsw %r3,%r3 - ld %r11,48(%r1) + ld %r11,32(%r1) std %r4,0(%r11) - ld %r11,56(%r1) + ld %r11,40(%r1) std %r5,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) @@ -1015,7 +1014,7 @@ ASEND(lv1_net_control) ASENTRY(lv1_connect_interrupt_event_receive_port) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,197 hc extsw %r3,%r3 @@ -1028,7 +1027,7 @@ ASEND(lv1_connect_interrupt_event_receive_port) ASENTRY(lv1_disconnect_interrupt_event_receive_port) mflr %r0 std %r0,16(%r1) - stdu %r1,-48(%r1) + stdu %r1,-32(%r1) li %r11,198 hc *** 305 LINES SKIPPED *** From nobody Sat Sep 14 05:46:54 2024 X-Original-To: dev-commits-src-main@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 4X5Ktk4TClz5VHpC; Sat, 14 Sep 2024 05:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5Ktk3r13z4TRB; Sat, 14 Sep 2024 05:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726292814; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CkF07cdLwl2Ul/s4UMmyVy2T9oSiDNp2w4Q8h1eSZ3o=; b=dsniVagPmDYYHuw2ctxblJCzRyNw6V0/CAJ7yPDbvW33gwJjzj7GdReeYW4bTXKamu9LvU GAdLdsVtCA8nnce1vk2fm+SOSsi/fOdyQtaP9bGVnIl9YRFPqYM51hd4or4BjFiouX+tqm bfZQA6m1ENvxUgU8xfKuQ6SgxfWbUe21xngzgs5dsL9aYCCYW/kmqFexNRA1wuofCcvSCs MrfdNWLY4SlIaF5264G6KfaXbEiPnlRxfIKMryuEYQyg+lXbW2uEx9KTUieNLtMjkM3FYi C6WvWc89v6LWGo+bEKq+ndP0Ch7MhA+EW55O8YNkHa2lK3Zp25Z/VxCTuuOPkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726292814; a=rsa-sha256; cv=none; b=TqeEka07JFNYxqgw9/BR/eK/QCpF+hIpxMewBpemerwUjucXNv51tvoHkWXEPgYs+2rdxm jfe7trMwOmMOdEdeEav0kGdjaPjN97OKvuFpxq0dbPSTX1lFWXqvRnoyctcUghfbMMBpQr ZtRZJ8zp+M/TLvtdyLvVokKsERasQdPySHLr/zUiGQZRiQ462CHoV+FEUHkKmOkf8fKByw MQqjlpLIi/xwE7SJRB52veRzt3N+lo/HiCXrdbkcjMVZKv+ElaBF+ZujC19yIk5C5l0rtf d/lvxmGyTPFMnACJqL5vluVNB/JmzjGz1NPYinnfngqxj6GyptJTkpp7ss11pQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726292814; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CkF07cdLwl2Ul/s4UMmyVy2T9oSiDNp2w4Q8h1eSZ3o=; b=IzcqJ0KWILu5955ig8j3ROhCgUFQ+Umv994ADvWNxbFdIJlrT9EKQx16PzAlZcr1odqrF/ BhBAb/NYkNpKqzjbBE1/w6hRwL7FCCL9pZyr3BpGrDkyc5rfnG7dd/rOvzFHdxJIpFIu7M mmh8dEqxlgpZzfFbKzVOymoljqRQYKxKelhQVxiRPhHMufJK5HQekwpcIWa+q4ldyUVQ0J Ja406fXPaOJsUK19SwyxxIyf8FLW6P1cwpB4ZVUEchdt7OaZiMRUoWDvNjy7fPmuWfLrLI k88ONJE6xe6MsehbClsouJaiLiSJvNy1jxKcmxFcXgRv8UKMCUIutA3o3AtEHg== 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 4X5Ktk3JkSzFpH; Sat, 14 Sep 2024 05:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48E5ksPr045509; Sat, 14 Sep 2024 05:46:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48E5ksQo045506; Sat, 14 Sep 2024 05:46:54 GMT (envelope-from git) Date: Sat, 14 Sep 2024 05:46:54 GMT Message-Id: <202409140546.48E5ksQo045506@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 696922fbfa3e - main - flua: add freebsd.kenv, kenv(2) bindings List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 696922fbfa3e1c400701a3a39dcadf7dee12b06c Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=696922fbfa3e1c400701a3a39dcadf7dee12b06c commit 696922fbfa3e1c400701a3a39dcadf7dee12b06c Author: Baptiste Daroussin AuthorDate: 2024-09-12 12:42:01 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-14 05:43:50 +0000 flua: add freebsd.kenv, kenv(2) bindings Add bindings for kenv(2) right now only get() has been created it allows do dump into a key/value table the kernel environement if no argument is passed, or it returns the value associated to the provided key. Reviewed by: imp, kevans, markj Accepted by: imp, kevans Differential Revision: https://reviews.freebsd.org/D46654 --- libexec/flua/libfreebsd/Makefile | 1 + libexec/flua/libfreebsd/Makefile.inc | 2 + libexec/flua/libfreebsd/kenv/Makefile | 5 ++ libexec/flua/libfreebsd/kenv/freebsd.kenv.3lua | 44 ++++++++++++ libexec/flua/libfreebsd/kenv/kenv.c | 96 ++++++++++++++++++++++++++ 5 files changed, 148 insertions(+) diff --git a/libexec/flua/libfreebsd/Makefile b/libexec/flua/libfreebsd/Makefile index 6ed0451055ff..36d39d6b0502 100644 --- a/libexec/flua/libfreebsd/Makefile +++ b/libexec/flua/libfreebsd/Makefile @@ -1,3 +1,4 @@ +SUBDIR+= kenv SUBDIR+= sys .include diff --git a/libexec/flua/libfreebsd/Makefile.inc b/libexec/flua/libfreebsd/Makefile.inc index 01b5f23410c8..26a1540482c7 100644 --- a/libexec/flua/libfreebsd/Makefile.inc +++ b/libexec/flua/libfreebsd/Makefile.inc @@ -1 +1,3 @@ +SHLIBDIR?= ${LIBDIR}/flua/freebsd + .include "../Makefile.inc" diff --git a/libexec/flua/libfreebsd/kenv/Makefile b/libexec/flua/libfreebsd/kenv/Makefile new file mode 100644 index 000000000000..1726c892c515 --- /dev/null +++ b/libexec/flua/libfreebsd/kenv/Makefile @@ -0,0 +1,5 @@ +SHLIB_NAME= kenv.so +SRCS+= kenv.c +MAN= freebsd.kenv.3lua + +.include diff --git a/libexec/flua/libfreebsd/kenv/freebsd.kenv.3lua b/libexec/flua/libfreebsd/kenv/freebsd.kenv.3lua new file mode 100644 index 000000000000..d254dd22c91c --- /dev/null +++ b/libexec/flua/libfreebsd/kenv/freebsd.kenv.3lua @@ -0,0 +1,44 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2024, Baptiste Daroussin +.\" +.Dd September 6, 2024 +.Dt FREEBSD.KENV 3lua +.Os +.Sh NAME +.Nm freebsd.kenv +.Nd Lua binding to +.Fx 's +Linker functions +.Sh SYNOPSIS +.Bd -literal +local kenv = require('freebsd.kenv') +.Ed +.Pp +.Bl -tag -width XXXX -compact +.It Dv table = kenv.get() +.It Dv value = kenv.get(key) +.El +.Sh DESCRIPTION +The +.Nm +module is a binding to the +.Xr kenv 2 +function. +.Pp +List of functions: +.Bl -tag -width XXXX +.It Dv table = freebsd.kenv.get() +Dump the kernel environnement into a key/value +.Fa table . +.It Dv value = freebsd.kenv.get(key) +Return the +.Fa value +associated to the +.Fa key , +if it exists, or +.Va nil +otherwise. +.Sh SEE ALSO +.Xr kenv 2 diff --git a/libexec/flua/libfreebsd/kenv/kenv.c b/libexec/flua/libfreebsd/kenv/kenv.c new file mode 100644 index 000000000000..954baa00facb --- /dev/null +++ b/libexec/flua/libfreebsd/kenv/kenv.c @@ -0,0 +1,96 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024, Baptiste Daroussin + */ + +#include +#include +#include +#include +#include + +#include +#include +#include + +int luaopen_freebsd_kenv(lua_State *L); + +static int +lua_kenv_get(lua_State *L) +{ + const char *env; + int ret, n; + char value[1024]; + + n = lua_gettop(L); + if (n == 0) { + char *buf, *bp, *cp; + int size; + + size = kenv(KENV_DUMP, NULL, NULL, 0); + if (size < 0) { + lua_pushnil(L); + lua_pushstring(L, strerror(errno)); + lua_pushinteger(L, errno); + return (3); + } + size += 1; + buf = malloc(size); + if (buf == NULL) { + lua_pushnil(L); + lua_pushstring(L, strerror(errno)); + lua_pushinteger(L, errno); + return (3); + } + if (kenv(KENV_DUMP, NULL, buf, size) < 0) { + free(buf); + lua_pushnil(L); + lua_pushstring(L, strerror(errno)); + lua_pushinteger(L, errno); + return (3); + } + + lua_newtable(L); + for (bp = buf; *bp != '\0'; bp += strlen(bp) + 1) { + cp = strchr(bp, '='); + if (cp == NULL) + continue; + *cp++ = '\0'; + lua_pushstring(L, cp); + lua_setfield(L, -2, bp); + bp = cp; + } + free(buf); + return (1); + } + env = luaL_checkstring(L, 1); + ret = kenv(KENV_GET, env, value, sizeof(value)); + if (ret == -1) { + if (errno == ENOENT) { + lua_pushnil(L); + return (1); + } + lua_pushnil(L); + lua_pushstring(L, strerror(errno)); + lua_pushinteger(L, errno); + return (3); + } + lua_pushstring(L, value); + return (1); +} + +#define REG_SIMPLE(n) { #n, lua_kenv_ ## n } +static const struct luaL_Reg freebsd_kenv[] = { + REG_SIMPLE(get), + { NULL, NULL }, +}; +#undef REG_SIMPLE + +int +luaopen_freebsd_kenv(lua_State *L) +{ + luaL_newlib(L, freebsd_kenv); + + return (1); +} From nobody Sat Sep 14 08:12:55 2024 X-Original-To: dev-commits-src-main@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 4X5P7C3kdfz5WCDX; Sat, 14 Sep 2024 08:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5P7C3Hf9z4kkH; Sat, 14 Sep 2024 08:12:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726301575; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j9k1he4D2hMqpO4tXCD8HkYq7o+jMFJbHF+jWlUgBnU=; b=DP63wJ0Rfv9Hs1W+4hj7QUh7Kuh3c25O6Oh8mmCaNVkb0J9ebGrQLRkrctIVn32p6DLjL8 UooccxX/APZAi9uNNpMJDaroG4MwKOZQMx2q5MxNjSmWPBVZ4HZb8HY24M5l7VmV8d9tjs FpmolPg/ZQFZatAwGcg18uYk8ijCwj1wt04/6BNcyvY2tyUerTPH68xmZK1q0pTTHaW+bq nKQEQhkhCMj9bgwPdeQcpmtw0Y+0aFx2nm4E/KUqhi9QuKTTuto0it7lJAV97crgdai7Ck kihnzZrItSwK59c0dG0F6XQizrEq5/xuoStMNj7c0Mi/HOeKgijavC+7Nu2oBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726301575; a=rsa-sha256; cv=none; b=GP1wo33YMTheoMRz+HlQHhkf8Vp/UntJFoFcRgzcNvRPQSO9p0Nv+js3hagZELz7gI57g9 Yv1SRuXrkVjMouLU3xaUg+plsBqqGZ7WOJbYv4H3PJSx+n7Fcxu8HPl/UokSNGtExfKseF iegTnPEQ0gHR8lk04zB0ajXMn7exOooonwpzsmDAd1TcEdjs7itIt7bfZVdnrFHt8NnX17 7fIY8jDt+kO2AZ5+dJBA5vsLDIKp1Da4zxjHw9LHxJQbvlktS0w+EuzMpFk0HZZg/3mCn3 xIKQ7195sb1p45F4iCU91FOe4ervQoA4jZSkRj67HQrSs3VNJ+XA6hvDWh/DAA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726301575; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j9k1he4D2hMqpO4tXCD8HkYq7o+jMFJbHF+jWlUgBnU=; b=eli44EPydx8F6Jrg9yWHRflw3wInWP3lo4PFxitJnwd9nI24GzXJ8hVPQyfOcumS2ktBRU VvGONnvzx5WwWKTltVvwSqC9dK9CG/+avJ4WD1UH9OCNkVK4djXwlnlZd/ubFp6oQ+t89k e/C5/JOz2RHQPXSZnncClOwUX+bmx8iOISJE7teHNVj0zSxmTBMFnNeP98tTJMUyquf13E crRpr4sscCZJzv5GiE6Rz+1NGLIqUGzBsmz7eg/oSaIaS99YKAco4qtw74+OsS14x+zVjY 1hNg8POepFhj1LxdxcnbvT4R8Pa76XWDwGRxdB9bWyztxIFZoLS0W+boAD28Rg== 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 4X5P7C2mjZzKB9; Sat, 14 Sep 2024 08:12:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48E8CtYG000118; Sat, 14 Sep 2024 08:12:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48E8CtUO000115; Sat, 14 Sep 2024 08:12:55 GMT (envelope-from git) Date: Sat, 14 Sep 2024 08:12:55 GMT Message-Id: <202409140812.48E8CtUO000115@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Igor Ostapenko Subject: git: 641fbfc82822 - main - pf tests: Do not handle ipfw presence List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 641fbfc82822ac269c778dcdba2406a4df520424 Auto-Submitted: auto-generated The branch main has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=641fbfc82822ac269c778dcdba2406a4df520424 commit 641fbfc82822ac269c778dcdba2406a4df520424 Author: Igor Ostapenko AuthorDate: 2024-09-14 08:08:06 +0000 Commit: Igor Ostapenko CommitDate: 2024-09-14 08:08:06 +0000 pf tests: Do not handle ipfw presence Initially, it was added to cover a conflicting case of ipfw and pf used together. But there are more drawbacks than benefits: - A half of these tests are always skipped. That leads to misunderstanding, while the test suite strives to avoid ambiguous situations. - Handling enabled ipfw on the test level is tedious, error-prone, and less maintainable. - CI and similar parties already know how to deal with ipfw for the test suite, like making it open by default. Extra complexity is not needed. In addition, ipfw+pf use cases are not officially supported. Reviewed by: kp, markj Approved by: kp (mentor), markj (mentor) Differential Revision: https://reviews.freebsd.org/D46655 --- tests/sys/netpfil/pf/divert-to.sh | 203 ++++++-------------------------------- tests/sys/netpfil/pf/if_enc.sh | 56 ++--------- 2 files changed, 37 insertions(+), 222 deletions(-) diff --git a/tests/sys/netpfil/pf/divert-to.sh b/tests/sys/netpfil/pf/divert-to.sh index 72adbeedb007..c7118c397032 100644 --- a/tests/sys/netpfil/pf/divert-to.sh +++ b/tests/sys/netpfil/pf/divert-to.sh @@ -51,8 +51,6 @@ # > outbound > diverted > outbound | network terminated # # Test case naming legend: -# ipfwon - with ipfw enabled -# ipfwoff - with ipfw disabled # in - inbound # div - diverted # out - outbound @@ -76,40 +74,21 @@ dummynet_init() fi } -ipfw_init() -{ - if ! kldstat -q -m ipfw; then - atf_skip "This test requires ipfw" - fi -} - -assert_ipfw_is_off() -{ - if kldstat -q -m ipfw; then - atf_skip "This test is for the case when ipfw is not loaded" - fi -} - -atf_test_case "ipfwoff_in_div" "cleanup" -ipfwoff_in_div_head() +atf_test_case "in_div" "cleanup" +in_div_head() { atf_set descr 'Test inbound > diverted | divapp terminated' atf_set require.user root } -ipfwoff_in_div_body() +in_div_body() { - local ipfwon - pft_init divert_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off epair=$(vnet_mkepair) vnet_mkjail div ${epair}b ifconfig ${epair}a 192.0.2.1/24 up jexec div ifconfig ${epair}b 192.0.2.2/24 up - test $ipfwon && jexec div ipfw add 65534 allow all from any to any # Sanity check atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 @@ -129,46 +108,26 @@ ipfwoff_in_div_body() wait $divapp_pid } -ipfwoff_in_div_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwon_in_div" "cleanup" -ipfwon_in_div_head() -{ - atf_set descr 'Test inbound > diverted | divapp terminated, with ipfw enabled' - atf_set require.user root -} -ipfwon_in_div_body() -{ - ipfwoff_in_div_body "ipfwon" -} -ipfwon_in_div_cleanup() +in_div_cleanup() { pft_cleanup } -atf_test_case "ipfwoff_in_div_in" "cleanup" -ipfwoff_in_div_in_head() +atf_test_case "in_div_in" "cleanup" +in_div_in_head() { atf_set descr 'Test inbound > diverted > inbound | host terminated' atf_set require.user root } -ipfwoff_in_div_in_body() +in_div_in_body() { - local ipfwon - pft_init divert_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off epair=$(vnet_mkepair) vnet_mkjail div ${epair}b ifconfig ${epair}a 192.0.2.1/24 up jexec div ifconfig ${epair}b 192.0.2.2/24 up - test $ipfwon && jexec div ipfw add 65534 allow all from any to any # Sanity check atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 @@ -188,46 +147,26 @@ ipfwoff_in_div_in_body() wait $divapp_pid } -ipfwoff_in_div_in_cleanup() +in_div_in_cleanup() { pft_cleanup } -atf_test_case "ipfwon_in_div_in" "cleanup" -ipfwon_in_div_in_head() -{ - atf_set descr 'Test inbound > diverted > inbound | host terminated, with ipfw enabled' - atf_set require.user root -} -ipfwon_in_div_in_body() -{ - ipfwoff_in_div_in_body "ipfwon" -} -ipfwon_in_div_in_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwoff_out_div" "cleanup" -ipfwoff_out_div_head() +atf_test_case "out_div" "cleanup" +out_div_head() { atf_set descr 'Test outbound > diverted | divapp terminated' atf_set require.user root } -ipfwoff_out_div_body() +out_div_body() { - local ipfwon - pft_init divert_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off epair=$(vnet_mkepair) vnet_mkjail div ${epair}b ifconfig ${epair}a 192.0.2.1/24 up jexec div ifconfig ${epair}b 192.0.2.2/24 up - test $ipfwon && jexec div ipfw add 65534 allow all from any to any # Sanity check atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 @@ -248,46 +187,26 @@ ipfwoff_out_div_body() wait $divapp_pid } -ipfwoff_out_div_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwon_out_div" "cleanup" -ipfwon_out_div_head() -{ - atf_set descr 'Test outbound > diverted | divapp terminated, with ipfw enabled' - atf_set require.user root -} -ipfwon_out_div_body() -{ - ipfwoff_out_div_body "ipfwon" -} -ipfwon_out_div_cleanup() +out_div_cleanup() { pft_cleanup } -atf_test_case "ipfwoff_out_div_out" "cleanup" -ipfwoff_out_div_out_head() +atf_test_case "out_div_out" "cleanup" +out_div_out_head() { atf_set descr 'Test outbound > diverted > outbound | network terminated' atf_set require.user root } -ipfwoff_out_div_out_body() +out_div_out_body() { - local ipfwon - pft_init divert_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off epair=$(vnet_mkepair) vnet_mkjail div ${epair}b ifconfig ${epair}a 192.0.2.1/24 up jexec div ifconfig ${epair}b 192.0.2.2/24 up - test $ipfwon && jexec div ipfw add 65534 allow all from any to any # Sanity check atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 @@ -308,40 +227,21 @@ ipfwoff_out_div_out_body() wait $divapp_pid } -ipfwoff_out_div_out_cleanup() +out_div_out_cleanup() { pft_cleanup } -atf_test_case "ipfwon_out_div_out" "cleanup" -ipfwon_out_div_out_head() -{ - atf_set descr 'Test outbound > diverted > outbound | network terminated, with ipfw enabled' - atf_set require.user root -} -ipfwon_out_div_out_body() -{ - ipfwoff_out_div_out_body "ipfwon" -} -ipfwon_out_div_out_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwoff_in_div_in_fwd_out_div_out" "cleanup" -ipfwoff_in_div_in_fwd_out_div_out_head() +atf_test_case "in_div_in_fwd_out_div_out" "cleanup" +in_div_in_fwd_out_div_out_head() { atf_set descr 'Test inbound > diverted > inbound > forwarded > outbound > diverted > outbound | network terminated' atf_set require.user root } -ipfwoff_in_div_in_fwd_out_div_out_body() +in_div_in_fwd_out_div_out_body() { - local ipfwon - pft_init divert_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off # host router site epair0=$(vnet_mkepair) @@ -352,12 +252,10 @@ ipfwoff_in_div_in_fwd_out_div_out_body() jexec router sysctl net.inet.ip.forwarding=1 jexec router ifconfig ${epair0}b 192.0.2.2/24 up jexec router ifconfig ${epair1}a 198.51.100.1/24 up - test $ipfwon && jexec router ipfw add 65534 allow all from any to any vnet_mkjail site ${epair1}b jexec site ifconfig ${epair1}b 198.51.100.2/24 up jexec site route add default 198.51.100.1 - test $ipfwon && jexec site ipfw add 65534 allow all from any to any route add -net 198.51.100.0/24 192.0.2.2 @@ -385,48 +283,28 @@ ipfwoff_in_div_in_fwd_out_div_out_body() wait $indivapp_pid && wait $outdivapp_pid } -ipfwoff_in_div_in_fwd_out_div_out_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwon_in_div_in_fwd_out_div_out" "cleanup" -ipfwon_in_div_in_fwd_out_div_out_head() -{ - atf_set descr 'Test inbound > diverted > inbound > forwarded > outbound > diverted > outbound | network terminated, with ipfw enabled' - atf_set require.user root -} -ipfwon_in_div_in_fwd_out_div_out_body() -{ - ipfwoff_in_div_in_fwd_out_div_out_body "ipfwon" -} -ipfwon_in_div_in_fwd_out_div_out_cleanup() +in_div_in_fwd_out_div_out_cleanup() { pft_cleanup } -atf_test_case "ipfwoff_in_dn_in_div_in_out_div_out_dn_out" "cleanup" -ipfwoff_in_dn_in_div_in_out_div_out_dn_out_head() +atf_test_case "in_dn_in_div_in_out_div_out_dn_out" "cleanup" +in_dn_in_div_in_out_div_out_dn_out_head() { atf_set descr 'Test inbound > delayed+diverted > outbound > diverted+delayed > outbound | network terminated' atf_set require.user root } -ipfwoff_in_dn_in_div_in_out_div_out_dn_out_body() +in_dn_in_div_in_out_div_out_dn_out_body() { - local ipfwon - pft_init divert_init dummynet_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off epair=$(vnet_mkepair) vnet_mkjail alcatraz ${epair}b ifconfig ${epair}a 192.0.2.1/24 up ifconfig ${epair}a ether 02:00:00:00:00:01 jexec alcatraz ifconfig ${epair}b 192.0.2.2/24 up - test $ipfwon && jexec alcatraz ipfw add 65534 allow all from any to any # Sanity check atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 @@ -489,41 +367,20 @@ ipfwoff_in_dn_in_div_in_out_div_out_dn_out_body() # } } -ipfwoff_in_dn_in_div_in_out_div_out_dn_out_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwon_in_dn_in_div_in_out_div_out_dn_out" "cleanup" -ipfwon_in_dn_in_div_in_out_div_out_dn_out_head() -{ - atf_set descr 'Test inbound > delayed+diverted > outbound > diverted+delayed > outbound | network terminated, with ipfw enabled' - atf_set require.user root -} -ipfwon_in_dn_in_div_in_out_div_out_dn_out_body() -{ - ipfwoff_in_dn_in_div_in_out_div_out_dn_out_body "ipfwon" -} -ipfwon_in_dn_in_div_in_out_div_out_dn_out_cleanup() +in_dn_in_div_in_out_div_out_dn_out_cleanup() { pft_cleanup } atf_init_test_cases() { - atf_add_test_case "ipfwoff_in_div" - atf_add_test_case "ipfwoff_in_div_in" - atf_add_test_case "ipfwon_in_div" - atf_add_test_case "ipfwon_in_div_in" + atf_add_test_case "in_div" + atf_add_test_case "in_div_in" - atf_add_test_case "ipfwoff_out_div" - atf_add_test_case "ipfwoff_out_div_out" - atf_add_test_case "ipfwon_out_div" - atf_add_test_case "ipfwon_out_div_out" + atf_add_test_case "out_div" + atf_add_test_case "out_div_out" - atf_add_test_case "ipfwoff_in_div_in_fwd_out_div_out" - atf_add_test_case "ipfwon_in_div_in_fwd_out_div_out" + atf_add_test_case "in_div_in_fwd_out_div_out" - atf_add_test_case "ipfwoff_in_dn_in_div_in_out_div_out_dn_out" - atf_add_test_case "ipfwon_in_dn_in_div_in_out_div_out_dn_out" + atf_add_test_case "in_dn_in_div_in_out_div_out_dn_out" } diff --git a/tests/sys/netpfil/pf/if_enc.sh b/tests/sys/netpfil/pf/if_enc.sh index 2e9060d4aa68..40090b175470 100644 --- a/tests/sys/netpfil/pf/if_enc.sh +++ b/tests/sys/netpfil/pf/if_enc.sh @@ -71,24 +71,8 @@ if_enc_init() fi } -ipfw_init() -{ - if ! kldstat -q -m ipfw; then - atf_skip "This test requires ipfw" - fi -} - -assert_ipfw_is_off() -{ - if kldstat -q -m ipfw; then - atf_skip "This test is for the case when ipfw is not loaded" - fi -} - build_test_network() { - local ipfwon=$1 - alan=$(vnet_mkepair) awan=$(vnet_mkepair) bwan=$(vnet_mkepair) @@ -98,7 +82,6 @@ build_test_network() vnet_mkjail a ${alan}a jexec a ifconfig ${alan}a 1.0.0.11/24 up jexec a route add default 1.0.0.1 - test $ipfwon && jexec a ipfw add 65534 allow all from any to any # host agw vnet_mkjail agw ${alan}b ${awan}a @@ -106,14 +89,12 @@ build_test_network() jexec agw ifconfig ${awan}a 2.0.0.22/24 up jexec agw route add default 2.0.0.1 jexec agw sysctl net.inet.ip.forwarding=1 - test $ipfwon && jexec agw ipfw add 65534 allow all from any to any # host wan vnet_mkjail wan ${awan}b ${bwan}b jexec wan ifconfig ${awan}b 2.0.0.1/24 up jexec wan ifconfig ${bwan}b 3.0.0.1/24 up jexec wan sysctl net.inet.ip.forwarding=1 - test $ipfwon && jexec wan ipfw add 65534 allow all from any to any # host bgw vnet_mkjail bgw ${bwan}a ${blan}b @@ -121,13 +102,11 @@ build_test_network() jexec bgw ifconfig ${blan}b 4.0.0.1/24 up jexec bgw route add default 3.0.0.1 jexec bgw sysctl net.inet.ip.forwarding=1 - test $ipfwon && jexec bgw ipfw add 65534 allow all from any to any # host b vnet_mkjail b ${blan}a jexec b ifconfig ${blan}a 4.0.0.44/24 up jexec b route add default 4.0.0.1 - test $ipfwon && jexec b ipfw add 65534 allow all from any to any # Office A VPN setup echo ' @@ -146,23 +125,19 @@ build_test_network() ' | jexec bgw setkey -c } -atf_test_case "ipfwoff_ip4_pfil_in_after_stripping" "cleanup" -ipfwoff_ip4_pfil_in_after_stripping_head() +atf_test_case "ip4_pfil_in_after_stripping" "cleanup" +ip4_pfil_in_after_stripping_head() { - atf_set descr 'Test that pf pulls up mbuf if m_len==0 after stripping the outer header, with ipfw disabled' + atf_set descr 'Test that pf pulls up mbuf if m_len==0 after stripping the outer header' atf_set require.user root atf_set require.progs nc } -ipfwoff_ip4_pfil_in_after_stripping_body() +ip4_pfil_in_after_stripping_body() { - local ipfwon - pft_init if_enc_init - test "$1" == "ipfwon" && ipfwon="yes" - test $ipfwon && ipfw_init || assert_ipfw_is_off - build_test_network $ipfwon + build_test_network # Sanity check atf_check -s exit:0 -o ignore jexec a ping -c3 4.0.0.44 @@ -192,29 +167,12 @@ ipfwoff_ip4_pfil_in_after_stripping_body() jexec b kill -KILL $nc_pid # in a fail case the catcher may listen forever atf_check_equal "$spell" "$(cat ./receiver)" } -ipfwoff_ip4_pfil_in_after_stripping_cleanup() -{ - pft_cleanup -} - -atf_test_case "ipfwon_ip4_pfil_in_after_stripping" "cleanup" -ipfwon_ip4_pfil_in_after_stripping_head() -{ - atf_set descr 'Test that pf pulls up mbuf if m_len==0 after stripping the outer header, with ipfw enabled' - atf_set require.user root - atf_set require.progs nc -} -ipfwon_ip4_pfil_in_after_stripping_body() -{ - ipfwoff_ip4_pfil_in_after_stripping_body "ipfwon" -} -ipfwon_ip4_pfil_in_after_stripping_cleanup() +ip4_pfil_in_after_stripping_cleanup() { pft_cleanup } atf_init_test_cases() { - atf_add_test_case "ipfwoff_ip4_pfil_in_after_stripping" - atf_add_test_case "ipfwon_ip4_pfil_in_after_stripping" + atf_add_test_case "ip4_pfil_in_after_stripping" } From nobody Sat Sep 14 09:09:09 2024 X-Original-To: dev-commits-src-main@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 4X5QN551kvz5WLpg; Sat, 14 Sep 2024 09:09: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5QN532dcz4sJy; Sat, 14 Sep 2024 09:09:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726304949; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cpccmYns4UJwDFQ/ADWBzKFgF5tebPFRAWtOKx4wNuE=; b=i90g4ZbMevGewWXRM5UU5nbx6FUAKrBG7VT9xoIQAvs20aGHiE8D/HNlKeVB/AlEKfOXqv ERC5k5XqVjgLarZy3wV6WjcvYwnqNczbmzUqZtV0gJ65sSCUUETZr8OzYdlWjqFba677Sz v1NGsCvCWCHY2OcZIk0Rsq3RNCbHCkhoLbcpqN1hOWT+I+U24KNjIQ6Xmbr+gzrmvr4sJE Iet6HnrJ0F6UnfSWpF7NLDmQJpGtjH0/s5vLTwRyQmlNHPv4Ypyc2nzg+K0ZkhsvBKAv4N SWi3+fhC4AsQy5enLJLpB/IA8/mRoMmEpOK0F+1wZiB+OIczFrQYqOqk7qSirQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726304949; a=rsa-sha256; cv=none; b=bvlfyBYgnmc3gpb6OG/PvUQ51Va0XEM9kkIZqLAfOXpziecDclSZr0o+4lpgD1TQSxwEGD XjnzjlmdHVtj4X8lwjz0QtuRRe9uulTgNKNXtsGUhj46Pwd2TMoCUGJwYWKq2ct4fFGghX 7PMMoBBNFqk4WG3+PgIUw5u28hqTkEAQsGWbQK2LsYISAqq62eDN2fNl3rRbaK1aYOIkKF kLKI92KuWOrQqWNOYslBPyLSfWkxwqlH6rtCoKppSt2xPIP+iJ7g7qhsK5zjb/rw/MCz1a eduGTc+5m9OZFmSXH4YyCYdvyvf0F+k307fTRIC4vqpI9xEN8ntSftVEqK9svw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726304949; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cpccmYns4UJwDFQ/ADWBzKFgF5tebPFRAWtOKx4wNuE=; b=EnLbvXgd6T3h0reAns+H6AniUWdWuKQ1jD7HNf5yFnyM9wLXk092bK+vceoOuew8yXo7Ok 7nhedJheWKn0ganhBYSsEHCng2f5agLQua8omtTkcd/F72iCv0LEwDtJBnzO3VPT0/+RKH XxitV6CvsxyzK1I4HLYEyoVOmRhlutv4BZLLN8uwDiaQr/T/Q8I75d5d1TE7ktso6SI7mJ +aNqST1+zlhSr+1HsvH2zlOgYFBnn+5FPSp/N8DECt//jmBHYmdD8cJauH9qCuQ4+1TbmD NET436DdwuJyC6b4KV/Rh4ZGODaWGOhKU6LzKRWWPE9YVeFPHNQeZm574Oft+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 4X5QN52RYNzKn5; Sat, 14 Sep 2024 09:09:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48E999MI086122; Sat, 14 Sep 2024 09:09:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48E999dp086119; Sat, 14 Sep 2024 09:09:09 GMT (envelope-from git) Date: Sat, 14 Sep 2024 09:09:09 GMT Message-Id: <202409140909.48E999dp086119@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Vladimir Kondratyev Subject: git: 92adaa5862d5 - main - gpiobus(4): Add an acpi variant of gpiobus List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 92adaa5862d5ea94318a011e0618622d0fb72521 Auto-Submitted: auto-generated The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=92adaa5862d5ea94318a011e0618622d0fb72521 commit 92adaa5862d5ea94318a011e0618622d0fb72521 Author: Ahmad Khalifa AuthorDate: 2024-07-08 12:22:17 +0000 Commit: Vladimir Kondratyev CommitDate: 2024-09-14 09:02:33 +0000 gpiobus(4): Add an acpi variant of gpiobus This currently only implements the address space handler and attempts to configure pins with flags obtained from ACPI. Reviewed by: wulf MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1359 --- sys/conf/files | 1 + sys/dev/gpio/acpi_gpiobus.c | 311 ++++++++++++++++++++++++++++++++++++++ sys/dev/gpio/gpiobus.c | 6 +- sys/dev/gpio/gpiobusvar.h | 2 + sys/modules/gpio/gpiobus/Makefile | 3 + 5 files changed, 319 insertions(+), 4 deletions(-) diff --git a/sys/conf/files b/sys/conf/files index 220e0e47ec73..9cb22af79ade 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1733,6 +1733,7 @@ dev/gve/gve_sysctl.c optional gve dev/gve/gve_tx.c optional gve dev/gve/gve_utils.c optional gve dev/goldfish/goldfish_rtc.c optional goldfish_rtc fdt +dev/gpio/acpi_gpiobus.c optional acpi gpio dev/gpio/dwgpio/dwgpio.c optional gpio dwgpio fdt dev/gpio/dwgpio/dwgpio_bus.c optional gpio dwgpio fdt dev/gpio/dwgpio/dwgpio_if.m optional gpio dwgpio fdt diff --git a/sys/dev/gpio/acpi_gpiobus.c b/sys/dev/gpio/acpi_gpiobus.c new file mode 100644 index 000000000000..eafa1c07fab1 --- /dev/null +++ b/sys/dev/gpio/acpi_gpiobus.c @@ -0,0 +1,311 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024 Ahmad Khalifa + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include + +#include +#include + +#include + +struct acpi_gpiobus_softc { + struct gpiobus_softc super_sc; + ACPI_CONNECTION_INFO handler_info; +}; + +struct acpi_gpiobus_ctx { + struct gpiobus_softc *sc; + ACPI_HANDLE dev_handle; +}; + +static uint32_t +acpi_gpiobus_convflags(ACPI_RESOURCE_GPIO *gpio_res) +{ + uint32_t flags = 0; + + /* Figure out pin flags */ +#ifdef NOT_YET + /* These are currently unused. */ + if (gpio_res->ConnectionType == ACPI_RESOURCE_GPIO_TYPE_INT) { + switch (gpio_res->Polarity) { + case ACPI_ACTIVE_HIGH: + flags = gpio_res->Triggering == ACPI_LEVEL_SENSITIVE ? + GPIO_INTR_LEVEL_HIGH : GPIO_INTR_EDGE_RISING; + break; + case ACPI_ACTIVE_LOW: + flags = gpio_res->Triggering == ACPI_LEVEL_SENSITIVE ? + GPIO_INTR_LEVEL_LOW : GPIO_INTR_EDGE_FALLING; + break; + case ACPI_ACTIVE_BOTH: + flags = GPIO_INTR_EDGE_BOTH; + break; + } + + if (gpio_res->Shareable == ACPI_SHARED) + flags |= GPIO_INTR_SHAREABLE; + } +#endif + switch (gpio_res->IoRestriction) { + case ACPI_IO_RESTRICT_INPUT: + flags = GPIO_PIN_INPUT; + break; + case ACPI_IO_RESTRICT_OUTPUT: + flags = GPIO_PIN_OUTPUT; + break; + } + + switch (gpio_res->PinConfig) { + case ACPI_PIN_CONFIG_PULLUP: + flags |= GPIO_PIN_PULLUP; + break; + case ACPI_PIN_CONFIG_PULLDOWN: + flags |= GPIO_PIN_PULLDOWN; + break; + } + + return (flags); +} + +static ACPI_STATUS +acpi_gpiobus_enumerate_res(ACPI_RESOURCE *res, void *context) +{ + ACPI_RESOURCE_GPIO *gpio_res = &res->Data.Gpio; + struct acpi_gpiobus_ctx *ctx = context; + struct gpiobus_softc *super_sc = ctx->sc; + ACPI_HANDLE handle; + uint32_t flags, i; + + if (res->Type != ACPI_RESOURCE_TYPE_GPIO) + return (AE_OK); + + if (ACPI_FAILURE(AcpiGetHandle(ACPI_ROOT_OBJECT, + gpio_res->ResourceSource.StringPtr, &handle)) || + handle != ctx->dev_handle) + return (AE_OK); + + if (__predict_false(gpio_res->PinTableLength > super_sc->sc_npins)) { + device_printf(super_sc->sc_busdev, + "invalid pin table length %hu, max: %d (bad ACPI tables?)\n", + gpio_res->PinTableLength, super_sc->sc_npins); + return (AE_LIMIT); + } + + flags = acpi_gpiobus_convflags(gpio_res); + for (i = 0; i < gpio_res->PinTableLength; i++) { + UINT16 pin = gpio_res->PinTable[i]; + + if (__predict_false(pin >= super_sc->sc_npins)) { + device_printf(super_sc->sc_busdev, + "invalid pin 0x%x, max: 0x%x (bad ACPI tables?)\n", + pin, super_sc->sc_npins - 1); + return (AE_LIMIT); + } + + GPIO_PIN_SETFLAGS(super_sc->sc_dev, pin, flags & + ~GPIO_INTR_MASK); + } + + return (AE_OK); +} + +static ACPI_STATUS +acpi_gpiobus_enumerate(ACPI_HANDLE handle, UINT32 depth, void *context, + void **result) +{ + UINT32 sta; + + /* + * If no _STA method or if it failed, then assume that + * the device is present. + */ + if (!ACPI_FAILURE(acpi_GetInteger(handle, "_STA", &sta)) && + !ACPI_DEVICE_PRESENT(sta)) + return (AE_OK); + + if (!acpi_has_hid(handle)) + return (AE_OK); + + /* Look for GPIO resources */ + AcpiWalkResources(handle, "_CRS", acpi_gpiobus_enumerate_res, context); + + return (AE_OK); +} + +static ACPI_STATUS +acpi_gpiobus_space_handler(UINT32 function, ACPI_PHYSICAL_ADDRESS address, + UINT32 length, UINT64 *value, void *context, void *region_context) +{ + ACPI_CONNECTION_INFO *info = context; + ACPI_RESOURCE_GPIO *gpio_res; + device_t controller; + ACPI_RESOURCE *res; + ACPI_STATUS status; + + status = AcpiBufferToResource(info->Connection, info->Length, &res); + if (ACPI_FAILURE(status) || res->Type != ACPI_RESOURCE_TYPE_GPIO) + goto err; + + gpio_res = &res->Data.Gpio; + controller = __containerof(info, struct acpi_gpiobus_softc, + handler_info)->super_sc.sc_dev; + + switch (function) { + case ACPI_WRITE: + if (__predict_false( + gpio_res->IoRestriction == ACPI_IO_RESTRICT_INPUT)) + goto err; + + for (int i = 0; i < length; i++) + if (GPIO_PIN_SET(controller, + gpio_res->PinTable[address + i], (*value & 1 << i) ? + GPIO_PIN_HIGH : GPIO_PIN_LOW) != 0) + goto err; + break; + case ACPI_READ: + if (__predict_false( + gpio_res->IoRestriction == ACPI_IO_RESTRICT_OUTPUT)) + goto err; + + for (int i = 0; i < length; i++) { + uint32_t v; + + if (GPIO_PIN_GET(controller, + gpio_res->PinTable[address + i], &v) != 0) + goto err; + *value |= v << i; + } + break; + default: + goto err; + } + + ACPI_FREE(res); + return (AE_OK); + +err: + ACPI_FREE(res); + return (AE_BAD_PARAMETER); +} + +static int +acpi_gpiobus_probe(device_t dev) +{ + device_t controller; + + if (acpi_disabled("gpiobus")) + return (ENXIO); + + controller = device_get_parent(dev); + if (controller == NULL) + return (ENXIO); + + if (acpi_get_handle(controller) == NULL) + return (ENXIO); + + device_set_desc(dev, "GPIO bus (ACPI-hinted)"); + return (BUS_PROBE_DEFAULT); +} + +static int +acpi_gpiobus_attach(device_t dev) +{ + struct acpi_gpiobus_softc *sc; + struct acpi_gpiobus_ctx ctx; + ACPI_HANDLE handle; + ACPI_STATUS status; + int err; + + if ((err = gpiobus_attach(dev)) != 0) + return (err); + + sc = device_get_softc(dev); + handle = acpi_get_handle(sc->super_sc.sc_dev); + if (handle == NULL) { + gpiobus_detach(dev); + return (ENXIO); + } + + status = AcpiInstallAddressSpaceHandler(handle, ACPI_ADR_SPACE_GPIO, + acpi_gpiobus_space_handler, NULL, &sc->handler_info); + + if (ACPI_FAILURE(status)) { + device_printf(dev, + "Failed to install GPIO address space handler\n"); + gpiobus_detach(dev); + return (ENXIO); + } + + ctx.dev_handle = handle; + ctx.sc = &sc->super_sc; + + status = AcpiWalkNamespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, + ACPI_UINT32_MAX, acpi_gpiobus_enumerate, NULL, &ctx, NULL); + + if (ACPI_FAILURE(status)) + device_printf(dev, "Failed to enumerate GPIO resources\n"); + + return (0); +} + +static int +acpi_gpiobus_detach(device_t dev) +{ + struct gpiobus_softc *super_sc; + ACPI_STATUS status; + + super_sc = device_get_softc(dev); + status = AcpiRemoveAddressSpaceHandler( + acpi_get_handle(super_sc->sc_dev), ACPI_ADR_SPACE_GPIO, + acpi_gpiobus_space_handler + ); + + if (ACPI_FAILURE(status)) + device_printf(dev, + "Failed to remove GPIO address space handler\n"); + + return (gpiobus_detach(dev)); +} + +static device_method_t acpi_gpiobus_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, acpi_gpiobus_probe), + DEVMETHOD(device_attach, acpi_gpiobus_attach), + DEVMETHOD(device_detach, acpi_gpiobus_detach), + + DEVMETHOD_END +}; + +DEFINE_CLASS_1(gpiobus, acpi_gpiobus_driver, acpi_gpiobus_methods, + sizeof(struct acpi_gpiobus_softc), gpiobus_driver); +EARLY_DRIVER_MODULE(acpi_gpiobus, gpio, acpi_gpiobus_driver, NULL, NULL, + BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE); +MODULE_VERSION(acpi_gpiobus, 1); +MODULE_DEPEND(acpi_gpiobus, acpi, 1, 1, 1); diff --git a/sys/dev/gpio/gpiobus.c b/sys/dev/gpio/gpiobus.c index 8c64ee9e862d..44484d82e2b9 100644 --- a/sys/dev/gpio/gpiobus.c +++ b/sys/dev/gpio/gpiobus.c @@ -52,8 +52,6 @@ static void gpiobus_print_pins(struct gpiobus_ivar *, struct sbuf *); static int gpiobus_parse_pins(struct gpiobus_softc *, device_t, int); static int gpiobus_probe(device_t); -static int gpiobus_attach(device_t); -static int gpiobus_detach(device_t); static int gpiobus_suspend(device_t); static int gpiobus_resume(device_t); static void gpiobus_probe_nomatch(device_t, device_t); @@ -550,7 +548,7 @@ gpiobus_probe(device_t dev) return (BUS_PROBE_GENERIC); } -static int +int gpiobus_attach(device_t dev) { int err; @@ -572,7 +570,7 @@ gpiobus_attach(device_t dev) * Since this is not a self-enumerating bus, and since we always add * children in attach, we have to always delete children here. */ -static int +int gpiobus_detach(device_t dev) { struct gpiobus_softc *sc; diff --git a/sys/dev/gpio/gpiobusvar.h b/sys/dev/gpio/gpiobusvar.h index 521132fbac9d..e3669e82e594 100644 --- a/sys/dev/gpio/gpiobusvar.h +++ b/sys/dev/gpio/gpiobusvar.h @@ -174,6 +174,8 @@ struct resource *gpio_alloc_intr_resource(device_t consumer_dev, int *rid, int gpio_check_flags(uint32_t, uint32_t); device_t gpiobus_attach_bus(device_t); int gpiobus_detach_bus(device_t); +int gpiobus_attach(device_t); +int gpiobus_detach(device_t); int gpiobus_init_softc(device_t); int gpiobus_alloc_ivars(struct gpiobus_ivar *); void gpiobus_free_ivars(struct gpiobus_ivar *); diff --git a/sys/modules/gpio/gpiobus/Makefile b/sys/modules/gpio/gpiobus/Makefile index d9345e00e2be..baaf7faf69e8 100644 --- a/sys/modules/gpio/gpiobus/Makefile +++ b/sys/modules/gpio/gpiobus/Makefile @@ -38,6 +38,9 @@ SRCS+= device_if.h bus_if.h opt_platform.h .if !empty(OPT_FDT) SRCS+= ofw_gpiobus.c .endif +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64" +SRCS+= acpi_gpiobus.c opt_acpi.h acpi_if.h +.endif CFLAGS+= -I. -I${SRCTOP}/sys/dev/gpio/ From nobody Sat Sep 14 09:10:44 2024 X-Original-To: dev-commits-src-main@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 4X5QR71FBdz5WMZq; Sat, 14 Sep 2024 09:11:47 +0000 (UTC) (envelope-from herbert@gojira.at) Received: from mail.bsd4all.net (mail.bsd4all.net [94.130.200.20]) (using TLSv1.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 ECDSA (P-384) client-digest SHA384) (Client CN "mail.bsd4all.net", Issuer "E5" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5QR62C3hz4tBJ; Sat, 14 Sep 2024 09:11:46 +0000 (UTC) (envelope-from herbert@gojira.at) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gojira.at header.s=mail202005 header.b=lkW53K64; dmarc=none; spf=pass (mx1.freebsd.org: domain of herbert@gojira.at designates 94.130.200.20 as permitted sender) smtp.mailfrom=herbert@gojira.at Date: Sat, 14 Sep 2024 11:10:44 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=gojira.at; s=mail202005; t=1726305098; bh=XJLdr6dKN73REbOh+uXZuGuM1KnmXB9IPhp1v8fY2lw=; h=Date:Message-ID:From:To:Cc:Subject:MIME-Version:Content-Type; b=lkW53K647navRu6aY8C5gj3cV7clYAXwT0Q+v/8rrsDAY1vTWrGh4S6JdEjcij+Fk jLEBVhADuIK5GmL/Sxnp9zAb4TWoHZ5TzEtUhmjLucRql7xMWGUzztzAQ53pD1XFqz K/zcBUz5i+o62f1FireAZDJQ4Zu/I5/x7lF6/7Alo/63ZJjDgJPy5Rk7ggX6p+Bc22 9tv0Zmm/G22wEMIr272JOMdh52+dQQzJCYok2uM0EPPFg0dmZcC9/kOh4kITqr+Fkk TMDCBeNYy67AEH2vJLikCtAwqLyHCNt+qstM5W4LZh+nuJGEWpu6T+X+usJqXreqiw QTSnPxl10b0/A== Message-ID: <87o74qa9d7.wl-herbert@gojira.at> From: "Herbert J. Skuhra" To: Cy Schubert Cc: Stefan =?ISO-8859-1?Q?E=DFer?= , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 12e0d316644a - main - vendor/bc: upgrade to version 7.0.0 In-Reply-To: <20240905174416.247B0293@slippy.cwsent.com> References: <202408261628.47QGSD1E072637@gitrepo.freebsd.org> <20240905174416.247B0293@slippy.cwsent.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/31.0 Mule/6.0 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.50 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.996]; R_SPF_ALLOW(-0.20)[+ip4:94.130.200.20]; R_DKIM_ALLOW(-0.20)[gojira.at:s=mail202005]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:94.130.0.0/16, country:DE]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_ZERO(0.00)[0]; DMARC_NA(0.00)[gojira.at]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org]; DKIM_TRACE(0.00)[gojira.at:+] X-Rspamd-Queue-Id: 4X5QR62C3hz4tBJ On Thu, 05 Sep 2024 19:44:16 +0200, Cy Schubert wrote: >=20 > In message <202408261628.47QGSD1E072637@gitrepo.freebsd.org>, Stefan=20 > =3D?utf-8?Q? > E=3DC3=3D9Fer?=3D writes: > > The branch main has been updated by se: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D12e0d316644a4f80f5f1f78c= f07bd93d > > ef43b1ca > > > > commit 12e0d316644a4f80f5f1f78cf07bd93def43b1ca > > Author: Stefan E=DFer > > AuthorDate: 2024-08-23 16:45:58 +0000 > > Commit: Stefan E=DFer > > CommitDate: 2024-08-26 16:27:29 +0000 > > > > vendor/bc: upgrade to version 7.0.0 > > =20 > > This is a production release to fix three bugs, none of which > > affects well formed scripts on FreeBSD: > > =20 > > The first bug is that bc/dc will exit on macOS when the terminal > > is resized. > > =20 > > The second bug is that an array, which should only be a function > > parameter, was accepted as part of larger expressions. > > =20 > > The third bug is that the value stack for dc was cleared on any err= or. > > However, this is not how other dc behave. To bring dc more in line > > with other implementations, this behavior was changed. This change = is > > why this version is a new major version. > > =20 > > (cherry picked from commit 54d20d67e2af28d948ce2df13feb039fa10900fc) > > =20 > > MFC after: 3 days >=20 > This commit introduced a regression. Prior to this one could exit bc usin= g=20 > the EOF character defined by stty(1), default ^D. Now one needs to enter = > the word quit instead of ^D. Reverting=20 https://git.gavinhoward.com/gavin/bc/commit/56bb18255a24b60f785560ab882447d= 9c959bd93 seems to resolve the issue. diff --git a/contrib/bc/src/history.c b/contrib/bc/src/history.c index 6ae9785d9a79..71afe62db879 100644 --- a/contrib/bc/src/history.c +++ b/contrib/bc/src/history.c @@ -264,7 +264,7 @@ bc_history_line(BcHistory* h, BcVec* vec, const char* p= rompt) errno =3D EINTR; =20 // Get the line. - while (line =3D=3D NULL && (len =3D=3D -1 || errno =3D=3D EINTR)) + while (line =3D=3D NULL && len =3D=3D -1 && errno =3D=3D EINTR) { line =3D el_gets(h->el, &len); bc_history_use_prompt =3D false; -- Herbert From nobody Sat Sep 14 17:11:21 2024 X-Original-To: dev-commits-src-main@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 4X5d4X6WfPz5WskG; Sat, 14 Sep 2024 17:11: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5d4X67kgz4t9y; Sat, 14 Sep 2024 17:11:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726333884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ix4pPO9SQS9JGZJr9KXOw7uHYDGW6bohgIgkFzAuW+M=; b=F/B+GDf5Le2UqY5iNfUduSS8YEiW/KQOLr+I3N7Di/tPDZCYhgR659coMUbhe62HRjDUj4 4vS9n3PCcISxXeRl9YiKaBPc+oRzR1sfMju6SNslLT6uxrXPCcbOHoZ+Rv/Pvcp/2bBifA ghLEAnsRm8n2sOmJtRsMf/Q7dpaa4fN/2haW9hn8W7wK/0QmHLa+cLbLNiG35q7byHzWXF /l5haZ/1O+cAiDtt+Qy4tI58qw7wcQw0UB8ypTQszuUQkX6blm2u4jAfLG3wVhl2RcJ0Pf UXQIr+lsGXfMRguMCotA/0emQMQFOT+t/zqXNvm20duQzDswKKF+9XtWPsaPPA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726333884; a=rsa-sha256; cv=none; b=XXUhLyL5dgfi7kzOgoCp4DAwz8ZMaRFqMV0ddQoaIBMBKtmpk3u79OM9KYuXi4+VDOzrse 1g4FryLL8eATHxOIo99aFIxgvS2mhU0xTje2IaaDH4GIFw9Gcsg2FTywEKdu4K6W5olhcG d4DIb6C2c5BcX3VcCRhl4loNo/8pUhd4yhWHUPVJRwxIlvGxQh0BCYYyu/HoIMdm+DmZY4 FbxaiZC0q696O1Sr0UDyBpShZOVyXFaTiTU2YiIDwuX9aG9Xygx95+4W2M7y6T0fHgaBv6 reLYI5fIWwfeUI1lwvQZmgzEeyehE5OxerPDZvOoK6ncVzN2/c1CJjlj/yVvNg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726333884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ix4pPO9SQS9JGZJr9KXOw7uHYDGW6bohgIgkFzAuW+M=; b=uHeN7rwnKXtUwMISOt9U64+t8OTg15STNhhQiyv6rzEdjDFhcvNNdjk/bo+L7VmtvLir36 G3MPilRnkgZlGUI4FR9lJUGKHbcVGSF9td54VshNQt4T76XbFtQtlaZP9XTPG4JVQgjw1/ 4FPts1PDTqds9qlE1xuwl5RWSbEWEMdH/pg7+vysI8s3o9EUrUdtUyVclbGMmDWfuwIwBM pLijtjcQh07coBvUHwoSUTKxVU1osGEUH3Bm9VsWOTamJaWvMkXGT5KUExshMGYlGoBCHV 9XTRIA7lu1PG9xjQ6FYvNd5lCvC1DZC6qh0kt2PEfnwhZAUZf2Me7ljAnwD8kQ== 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 4X5d4X5ZnrzbMm; Sat, 14 Sep 2024 17:11:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EHBONT012417; Sat, 14 Sep 2024 17:11:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EHBLrZ012411; Sat, 14 Sep 2024 17:11:21 GMT (envelope-from git) Date: Sat, 14 Sep 2024 17:11:21 GMT Message-Id: <202409141711.48EHBLrZ012411@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: afdbf109c6a6 - main - libpcap: Update to 1.10.5 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: afdbf109c6a661a729938f68211054a0a50d38ac Auto-Submitted: auto-generated The branch main has been updated by jrm: URL: https://cgit.FreeBSD.org/src/commit/?id=afdbf109c6a661a729938f68211054a0a50d38ac commit afdbf109c6a661a729938f68211054a0a50d38ac Merge: 92adaa5862d5 025be3f592b9 Author: Joseph Mingrone AuthorDate: 2024-09-14 17:09:34 +0000 Commit: Joseph Mingrone CommitDate: 2024-09-14 17:09:34 +0000 libpcap: Update to 1.10.5 Changes: https://git.tcpdump.org/libpcap/blob/bbcbc9174df3298a854daee2b3e666a4b6e5383a:/CHANGES Reviewed by: emaste Obtained from: https://www.tcpdump.org/release/libpcap-1.10.5.tar.gz Sponsored by: The FreeBSD Foundation contrib/libpcap/CHANGES | 181 +- contrib/libpcap/CMakeLists.txt | 1021 +- contrib/libpcap/CREDITS | 17 + contrib/libpcap/INSTALL.md | 84 +- contrib/libpcap/Makefile.in | 168 +- contrib/libpcap/TODO | 5 - contrib/libpcap/VERSION | 2 +- contrib/libpcap/aclocal.m4 | 227 +- contrib/libpcap/atmuni31.h | 2 +- contrib/libpcap/autogen.sh | 25 + contrib/libpcap/bpf_dump.c | 2 - contrib/libpcap/bpf_filter.c | 16 +- contrib/libpcap/bpf_image.c | 6 +- contrib/libpcap/charconv.c | 4 +- contrib/libpcap/cmake/Modules/Finddpdk.cmake | 2 +- contrib/libpcap/cmakeconfig.h.in | 6 +- contrib/libpcap/config.guess | 62 +- contrib/libpcap/config.h.in | 28 +- contrib/libpcap/config.sub | 230 +- contrib/libpcap/configure | 10815 ++++++++++--------- contrib/libpcap/configure.ac | 145 +- contrib/libpcap/diag-control.h | 174 +- contrib/libpcap/dlpisubs.c | 22 +- contrib/libpcap/doc/README.haiku.md | 57 + contrib/libpcap/doc/README.hpux | 2 +- .../doc/{README.Win32.md => README.windows.md} | 0 contrib/libpcap/etherent.c | 6 +- contrib/libpcap/extract.h | 2 +- contrib/libpcap/fad-getad.c | 30 +- contrib/libpcap/fad-gifc.c | 24 +- contrib/libpcap/fad-glifc.c | 28 +- contrib/libpcap/fmtutils.c | 59 +- contrib/libpcap/fmtutils.h | 10 +- contrib/libpcap/ftmacros.h | 4 +- contrib/libpcap/gencode.c | 596 +- contrib/libpcap/gencode.h | 4 +- contrib/libpcap/grammar.y.in | 140 +- contrib/libpcap/install-sh | 689 +- contrib/libpcap/missing/asprintf.c | 8 +- contrib/libpcap/missing/strlcat.c | 6 +- contrib/libpcap/missing/strlcpy.c | 6 +- contrib/libpcap/missing/strtok_r.c | 4 +- contrib/libpcap/missing/win_asprintf.c | 6 +- contrib/libpcap/mkdep | 28 +- contrib/libpcap/msdos/makefile | 2 +- contrib/libpcap/msdos/makefile.dj | 4 +- contrib/libpcap/msdos/makefile.wc | 6 +- contrib/libpcap/msdos/pktdrvr.c | 2 +- contrib/libpcap/msdos/pktdrvr.h | 2 +- contrib/libpcap/msdos/readme.dos | 4 +- contrib/libpcap/nametoaddr.c | 57 +- contrib/libpcap/nlpid.h | 2 +- contrib/libpcap/optimize.c | 34 +- contrib/libpcap/pcap-airpcap.c | 53 +- contrib/libpcap/pcap-bpf.c | 417 +- contrib/libpcap/pcap-bt-linux.c | 56 +- contrib/libpcap/pcap-bt-monitor-linux.c | 38 +- contrib/libpcap/pcap-common.c | 405 +- contrib/libpcap/pcap-config.1 | 108 +- contrib/libpcap/pcap-config.in | 11 +- contrib/libpcap/pcap-dag.c | 103 +- contrib/libpcap/pcap-dbus.c | 12 +- contrib/libpcap/pcap-dlpi.c | 72 +- contrib/libpcap/pcap-dos.c | 22 +- contrib/libpcap/pcap-dpdk.c | 32 +- contrib/libpcap/pcap-enet.c | 6 +- contrib/libpcap/pcap-filter.manmisc.in | 15 +- contrib/libpcap/pcap-haiku.c | 504 + contrib/libpcap/pcap-haiku.cpp | 305 - contrib/libpcap/pcap-int.h | 187 +- contrib/libpcap/pcap-libdlpi.c | 26 +- contrib/libpcap/pcap-linux.c | 654 +- contrib/libpcap/pcap-netfilter-linux.c | 61 +- contrib/libpcap/pcap-netmap.c | 24 +- contrib/libpcap/pcap-new.c | 31 +- contrib/libpcap/pcap-nit.c | 44 +- contrib/libpcap/pcap-npf.c | 296 +- contrib/libpcap/pcap-null.c | 10 +- contrib/libpcap/pcap-pf.c | 59 +- contrib/libpcap/pcap-rdmasniff.c | 16 +- contrib/libpcap/pcap-rpcap-int.h | 75 - contrib/libpcap/pcap-rpcap.c | 199 +- contrib/libpcap/pcap-savefile.manfile.in | 64 +- contrib/libpcap/pcap-septel.c | 14 +- contrib/libpcap/pcap-sita.c | 42 +- contrib/libpcap/pcap-sita.html | 4 +- contrib/libpcap/pcap-snf.c | 46 +- contrib/libpcap/pcap-snit.c | 57 +- contrib/libpcap/pcap-snoop.c | 54 +- contrib/libpcap/pcap-tc.c | 66 +- contrib/libpcap/pcap-tstamp.manmisc.in | 7 +- contrib/libpcap/pcap-usb-linux-common.c | 130 - contrib/libpcap/pcap-usb-linux-common.h | 107 +- contrib/libpcap/pcap-usb-linux.c | 95 +- contrib/libpcap/pcap-util.c | 287 +- contrib/libpcap/pcap-util.h | 6 +- contrib/libpcap/pcap.3pcap.in | 24 +- contrib/libpcap/pcap.c | 439 +- contrib/libpcap/pcap/can_socketcan.h | 25 +- contrib/libpcap/pcap/dlt.h | 75 +- contrib/libpcap/pcap/funcattrs.h | 106 +- contrib/libpcap/pcap/namedb.h | 27 +- contrib/libpcap/pcap/nflog.h | 2 +- contrib/libpcap/pcap/pcap-inttypes.h | 2 +- contrib/libpcap/pcap/pcap.h | 89 +- contrib/libpcap/pcap/sll.h | 1 + contrib/libpcap/pcap/socket.h | 56 +- contrib/libpcap/pcap/usb.h | 6 + contrib/libpcap/pcap_activate.3pcap | 12 +- contrib/libpcap/pcap_breakloop.3pcap | 2 +- contrib/libpcap/pcap_compile.3pcap.in | 3 +- contrib/libpcap/pcap_create.3pcap | 12 +- contrib/libpcap/pcap_dump.3pcap | 3 +- contrib/libpcap/pcap_findalldevs.3pcap | 43 +- contrib/libpcap/pcap_init.3pcap | 15 +- contrib/libpcap/pcap_lookupdev.3pcap | 10 +- contrib/libpcap/pcap_lookupnet.3pcap | 21 +- contrib/libpcap/pcap_loop.3pcap | 24 +- contrib/libpcap/pcap_next_ex.3pcap | 11 +- contrib/libpcap/pcap_offline_filter.3pcap | 3 +- contrib/libpcap/pcap_open_live.3pcap | 30 +- contrib/libpcap/pcap_open_offline.3pcap.in | 13 +- contrib/libpcap/pcap_set_tstamp_precision.3pcap.in | 3 +- contrib/libpcap/pcap_setnonblock.3pcap | 40 +- contrib/libpcap/pcap_strerror.3pcap | 14 +- contrib/libpcap/portability.h | 27 +- contrib/libpcap/ppp.h | 2 +- contrib/libpcap/rpcap-protocol.c | 4 +- contrib/libpcap/rpcap-protocol.h | 6 +- contrib/libpcap/rpcapd/CMakeLists.txt | 29 +- contrib/libpcap/rpcapd/Makefile.in | 4 +- contrib/libpcap/rpcapd/config_params.h | 2 +- contrib/libpcap/rpcapd/daemon.c | 70 +- contrib/libpcap/rpcapd/daemon.h | 4 +- contrib/libpcap/rpcapd/fileconf.c | 18 +- contrib/libpcap/rpcapd/log.c | 2 - contrib/libpcap/rpcapd/rpcapd-config.manfile.in | 12 +- contrib/libpcap/rpcapd/rpcapd.c | 62 +- contrib/libpcap/rpcapd/rpcapd.manadmin.in | 54 +- contrib/libpcap/rpcapd/win32-svc.c | 2 +- contrib/libpcap/savefile.c | 38 +- contrib/libpcap/scanner.l | 171 +- contrib/libpcap/sf-pcap.c | 150 +- contrib/libpcap/sf-pcapng.c | 24 +- contrib/libpcap/sockutils.c | 123 +- contrib/libpcap/sockutils.h | 26 +- contrib/libpcap/sslutils.c | 4 +- contrib/libpcap/sslutils.h | 10 +- contrib/libpcap/testprogs/Makefile.in | 2 +- contrib/libpcap/testprogs/filtertest.c | 6 +- contrib/libpcap/testprogs/findalldevstest-perf.c | 2 - contrib/libpcap/testprogs/findalldevstest.c | 8 +- contrib/libpcap/testprogs/valgrindtest.c | 4 +- contrib/libpcap/thread-local.h | 72 + 154 files changed, 12368 insertions(+), 9567 deletions(-) diff --cc contrib/libpcap/autogen.sh index 000000000000,c84a6b5c5dd2..c84a6b5c5dd2 mode 000000,100755..100755 --- a/contrib/libpcap/autogen.sh +++ b/contrib/libpcap/autogen.sh diff --cc contrib/libpcap/doc/README.haiku.md index 000000000000,b9b062bdf57e..b9b062bdf57e mode 000000,100644..100644 --- a/contrib/libpcap/doc/README.haiku.md +++ b/contrib/libpcap/doc/README.haiku.md diff --cc contrib/libpcap/install-sh index b44de0989d2f,000000000000..ec298b537402 mode 100755,000000..100755 --- a/contrib/libpcap/install-sh +++ b/contrib/libpcap/install-sh @@@ -1,250 -1,0 +1,541 @@@ - #! /bin/sh - # ++#!/bin/sh +# install - install a program, script, or datafile - # This comes from X11R5 (mit/util/scripts/install.sh). ++ ++scriptversion=2020-11-14.01; # UTC ++ ++# This originates from X11R5 (mit/util/scripts/install.sh), which was ++# later released in X11R6 (xc/config/util/install.sh) with the ++# following copyright and license. ++# ++# Copyright (C) 1994 X Consortium ++# ++# Permission is hereby granted, free of charge, to any person obtaining a copy ++# of this software and associated documentation files (the "Software"), to ++# deal in the Software without restriction, including without limitation the ++# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++# sell copies of the Software, and to permit persons to whom the Software is ++# furnished to do so, subject to the following conditions: ++# ++# The above copyright notice and this permission notice shall be included in ++# all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# - # Copyright 1991 by the Massachusetts Institute of Technology ++# Except as contained in this notice, the name of the X Consortium shall not ++# be used in advertising or otherwise to promote the sale, use or other deal- ++# ings in this Software without prior written authorization from the X Consor- ++# tium. +# - # Permission to use, copy, modify, distribute, and sell this software and its - # documentation for any purpose is hereby granted without fee, provided that - # the above copyright notice appear in all copies and that both that - # copyright notice and this permission notice appear in supporting - # documentation, and that the name of M.I.T. not be used in advertising or - # publicity pertaining to distribution of the software without specific, - # written prior permission. M.I.T. makes no representations about the - # suitability of this software for any purpose. It is provided "as is" - # without express or implied warranty. ++# ++# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent - # `make' implicit rules from creating a file called install from it ++# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written - # from scratch. It can only install one file at a time, a restriction - # shared with many OS's install programs. ++# from scratch. ++ ++tab=' ' ++nl=' ++' ++IFS=" $tab$nl" + ++# Set DOITPROG to "echo" to test this script. + - # set DOITPROG to echo to test this script ++doit=${DOITPROG-} ++doit_exec=${doit:-exec} + - # Don't use :- since 4.3BSD and earlier shells don't like it. - doit="${DOITPROG-}" ++# Put in absolute file names if you don't have them in your path; ++# or use environment vars. + ++chgrpprog=${CHGRPPROG-chgrp} ++chmodprog=${CHMODPROG-chmod} ++chownprog=${CHOWNPROG-chown} ++cmpprog=${CMPPROG-cmp} ++cpprog=${CPPROG-cp} ++mkdirprog=${MKDIRPROG-mkdir} ++mvprog=${MVPROG-mv} ++rmprog=${RMPROG-rm} ++stripprog=${STRIPPROG-strip} + - # put in absolute paths if you don't have them in your path; or use env. vars. ++posix_mkdir= + - mvprog="${MVPROG-mv}" - cpprog="${CPPROG-cp}" - chmodprog="${CHMODPROG-chmod}" - chownprog="${CHOWNPROG-chown}" - chgrpprog="${CHGRPPROG-chgrp}" - stripprog="${STRIPPROG-strip}" - rmprog="${RMPROG-rm}" - mkdirprog="${MKDIRPROG-mkdir}" ++# Desired mode of installed file. ++mode=0755 + - transformbasename="" - transform_arg="" - instcmd="$mvprog" - chmodcmd="$chmodprog 0755" - chowncmd="" - chgrpcmd="" - stripcmd="" ++# Create dirs (including intermediate dirs) using mode 755. ++# This is like GNU 'install' as of coreutils 8.32 (2020). ++mkdir_umask=22 ++ ++backupsuffix= ++chgrpcmd= ++chmodcmd=$chmodprog ++chowncmd= ++mvcmd=$mvprog +rmcmd="$rmprog -f" - mvcmd="$mvprog" - src="" - dst="" - dir_arg="" - - while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac - done ++stripcmd= + - if [ x"$src" = x ] - then - echo "install: no input file specified" - exit 1 - else - true - fi ++src= ++dst= ++dir_arg= ++dst_arg= + - if [ x"$dir_arg" != x ]; then - dst=$src - src="" ++copy_on_change=false ++is_target_a_directory=possibly + - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi - else ++usage="\ ++Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE ++ or: $0 [OPTION]... SRCFILES... DIRECTORY ++ or: $0 [OPTION]... -t DIRECTORY SRCFILES... ++ or: $0 [OPTION]... -d DIRECTORIES... + - # Waiting for this to be detected by the "$instcmd $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. ++In the 1st form, copy SRCFILE to DSTFILE. ++In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. ++In the 4th, create DIRECTORIES. + - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi ++Options: ++ --help display this help and exit. ++ --version display version info and exit. + - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi ++ -c (ignored) ++ -C install only if different (preserve data modification time) ++ -d create directories instead of installing files. ++ -g GROUP $chgrpprog installed files to GROUP. ++ -m MODE $chmodprog installed files to MODE. ++ -o USER $chownprog installed files to USER. ++ -p pass -p to $cpprog. ++ -s $stripprog installed files. ++ -S SUFFIX attempt to back up existing files, with suffix SUFFIX. ++ -t DIRECTORY install into DIRECTORY. ++ -T report an error if DSTFILE is a directory. + - # If destination is a directory, append the input filename; if your system - # does not like double slashes in filenames, you may need to add some logic ++Environment variables override the default commands: ++ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG ++ RMPROG STRIPPROG + - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi - fi ++By default, rm is invoked with -f; when overridden with RMPROG, ++it's up to you to specify -f if you want it. + - ## this sed command emulates the dirname command - dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` ++If -S is not specified, no backups are attempted. + - # Make sure that the destination directory exists. - # this part is taken from Noah Friedman's mkinstalldirs script ++Email bug reports to bug-automake@gnu.org. ++Automake home page: https://www.gnu.org/software/automake/ ++" + - # Skip lots of stat calls in the usual case. - if [ ! -d "$dstdir" ]; then - defaultIFS=' - ' - IFS="${IFS-${defaultIFS}}" ++while test $# -ne 0; do ++ case $1 in ++ -c) ;; + - oIFS="${IFS}" - # Some sh's can't handle IFS=/ for some reason. - IFS='%' - set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` - IFS="${oIFS}" ++ -C) copy_on_change=true;; + - pathcomp='' ++ -d) dir_arg=true;; + - while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift ++ -g) chgrpcmd="$chgrpprog $2" ++ shift;; + - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi ++ --help) echo "$usage"; exit $?;; + - pathcomp="${pathcomp}/" - done - fi ++ -m) mode=$2 ++ case $mode in ++ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) ++ echo "$0: invalid mode: $mode" >&2 ++ exit 1;; ++ esac ++ shift;; + - if [ x"$dir_arg" != x ] - then - $doit $instcmd $dst && ++ -o) chowncmd="$chownprog $2" ++ shift;; + - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi - else ++ -p) cpprog="$cpprog -p";; + - # If we're going to rename the final executable, determine the name now. ++ -s) stripcmd=$stripprog;; + - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi ++ -S) backupsuffix="$2" ++ shift;; + - # don't allow the sed command to completely eliminate the filename ++ -t) ++ is_target_a_directory=always ++ dst_arg=$2 ++ # Protect names problematic for 'test' and other utilities. ++ case $dst_arg in ++ -* | [=\(\)!]) dst_arg=./$dst_arg;; ++ esac ++ shift;; + - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi ++ -T) is_target_a_directory=never;; + - # Make a temp file name in the proper directory. ++ --version) echo "$0 $scriptversion"; exit $?;; + - dsttmp=$dstdir/#inst.$$# ++ --) shift ++ break;; + - # Move or copy the file name to the temp name ++ -*) echo "$0: invalid option: $1" >&2 ++ exit 1;; + - $doit $instcmd $src $dsttmp && ++ *) break;; ++ esac ++ shift ++done + - trap "rm -f ${dsttmp}" 0 && ++# We allow the use of options -d and -T together, by making -d ++# take the precedence; this is for compatibility with GNU install. + - # and set any options; do chmod last to preserve setuid bits ++if test -n "$dir_arg"; then ++ if test -n "$dst_arg"; then ++ echo "$0: target directory not allowed when installing a directory." >&2 ++ exit 1 ++ fi ++fi + - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $instcmd $src $dsttmp" command. ++if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then ++ # When -d is used, all remaining arguments are directories to create. ++ # When -t is used, the destination is already specified. ++ # Otherwise, the last argument is the destination. Remove it from $@. ++ for arg ++ do ++ if test -n "$dst_arg"; then ++ # $@ is not empty: it contains at least $arg. ++ set fnord "$@" "$dst_arg" ++ shift # fnord ++ fi ++ shift # arg ++ dst_arg=$arg ++ # Protect names problematic for 'test' and other utilities. ++ case $dst_arg in ++ -* | [=\(\)!]) dst_arg=./$dst_arg;; ++ esac ++ done ++fi + - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && ++if test $# -eq 0; then ++ if test -z "$dir_arg"; then ++ echo "$0: no input file specified." >&2 ++ exit 1 ++ fi ++ # It's OK to call 'install-sh -d' without argument. ++ # This can happen when creating conditional directories. ++ exit 0 ++fi + - # Now rename the file to the real destination. ++if test -z "$dir_arg"; then ++ if test $# -gt 1 || test "$is_target_a_directory" = always; then ++ if test ! -d "$dst_arg"; then ++ echo "$0: $dst_arg: Is not a directory." >&2 ++ exit 1 ++ fi ++ fi ++fi + - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile ++if test -z "$dir_arg"; then ++ do_exit='(exit $ret); exit $ret' ++ trap "ret=129; $do_exit" 1 ++ trap "ret=130; $do_exit" 2 ++ trap "ret=141; $do_exit" 13 ++ trap "ret=143; $do_exit" 15 ++ ++ # Set umask so as not to create temps with too-generous modes. ++ # However, 'strip' requires both read and write access to temps. ++ case $mode in ++ # Optimize common cases. ++ *644) cp_umask=133;; ++ *755) cp_umask=22;; ++ ++ *[0-7]) ++ if test -z "$stripcmd"; then ++ u_plus_rw= ++ else ++ u_plus_rw='% 200' ++ fi ++ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; ++ *) ++ if test -z "$stripcmd"; then ++ u_plus_rw= ++ else ++ u_plus_rw=,u+rw ++ fi ++ cp_umask=$mode$u_plus_rw;; ++ esac ++fi + - fi && ++for src ++do ++ # Protect names problematic for 'test' and other utilities. ++ case $src in ++ -* | [=\(\)!]) src=./$src;; ++ esac ++ ++ if test -n "$dir_arg"; then ++ dst=$src ++ dstdir=$dst ++ test -d "$dstdir" ++ dstdir_status=$? ++ # Don't chown directories that already exist. ++ if test $dstdir_status = 0; then ++ chowncmd="" ++ fi ++ else ++ ++ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command ++ # might cause directories to be created, which would be especially bad ++ # if $src (and thus $dsttmp) contains '*'. ++ if test ! -f "$src" && test ! -d "$src"; then ++ echo "$0: $src does not exist." >&2 ++ exit 1 ++ fi ++ ++ if test -z "$dst_arg"; then ++ echo "$0: no destination specified." >&2 ++ exit 1 ++ fi ++ dst=$dst_arg ++ ++ # If destination is a directory, append the input filename. ++ if test -d "$dst"; then ++ if test "$is_target_a_directory" = never; then ++ echo "$0: $dst_arg: Is a directory" >&2 ++ exit 1 ++ fi ++ dstdir=$dst ++ dstbase=`basename "$src"` ++ case $dst in ++ */) dst=$dst$dstbase;; ++ *) dst=$dst/$dstbase;; ++ esac ++ dstdir_status=0 ++ else ++ dstdir=`dirname "$dst"` ++ test -d "$dstdir" ++ dstdir_status=$? ++ fi ++ fi ++ ++ case $dstdir in ++ */) dstdirslash=$dstdir;; ++ *) dstdirslash=$dstdir/;; ++ esac ++ ++ obsolete_mkdir_used=false ++ ++ if test $dstdir_status != 0; then ++ case $posix_mkdir in ++ '') ++ # With -d, create the new directory with the user-specified mode. ++ # Otherwise, rely on $mkdir_umask. ++ if test -n "$dir_arg"; then ++ mkdir_mode=-m$mode ++ else ++ mkdir_mode= ++ fi ++ ++ posix_mkdir=false ++ # The $RANDOM variable is not portable (e.g., dash). Use it ++ # here however when possible just to lower collision chance. ++ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ ++ ++ trap ' ++ ret=$? ++ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null ++ exit $ret ++ ' 0 ++ ++ # Because "mkdir -p" follows existing symlinks and we likely work ++ # directly in world-writeable /tmp, make sure that the '$tmpdir' ++ # directory is successfully created first before we actually test ++ # 'mkdir -p'. ++ if (umask $mkdir_umask && ++ $mkdirprog $mkdir_mode "$tmpdir" && ++ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 ++ then ++ if test -z "$dir_arg" || { ++ # Check for POSIX incompatibilities with -m. ++ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or ++ # other-writable bit of parent directory when it shouldn't. ++ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ++ test_tmpdir="$tmpdir/a" ++ ls_ld_tmpdir=`ls -ld "$test_tmpdir"` ++ case $ls_ld_tmpdir in ++ d????-?r-*) different_mode=700;; ++ d????-?--*) different_mode=755;; ++ *) false;; ++ esac && ++ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ++ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` ++ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" ++ } ++ } ++ then posix_mkdir=: ++ fi ++ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" ++ else ++ # Remove any dirs left behind by ancient mkdir implementations. ++ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null ++ fi ++ trap '' 0;; ++ esac + ++ if ++ $posix_mkdir && ( ++ umask $mkdir_umask && ++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ++ ) ++ then : ++ else ++ ++ # mkdir does not conform to POSIX, ++ # or it failed possibly due to a race condition. Create the ++ # directory the slow way, step by step, checking for races as we go. ++ ++ case $dstdir in ++ /*) prefix='/';; ++ [-=\(\)!]*) prefix='./';; ++ *) prefix='';; ++ esac ++ ++ oIFS=$IFS ++ IFS=/ ++ set -f ++ set fnord $dstdir ++ shift ++ set +f ++ IFS=$oIFS ++ ++ prefixes= ++ ++ for d ++ do ++ test X"$d" = X && continue ++ ++ prefix=$prefix$d ++ if test -d "$prefix"; then ++ prefixes= ++ else ++ if $posix_mkdir; then ++ (umask $mkdir_umask && ++ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break ++ # Don't fail if two instances are running concurrently. ++ test -d "$prefix" || exit 1 ++ else ++ case $prefix in ++ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; ++ *) qprefix=$prefix;; ++ esac ++ prefixes="$prefixes '$qprefix'" ++ fi ++ fi ++ prefix=$prefix/ ++ done ++ ++ if test -n "$prefixes"; then ++ # Don't fail if two instances are running concurrently. ++ (umask $mkdir_umask && ++ eval "\$doit_exec \$mkdirprog $prefixes") || ++ test -d "$dstdir" || exit 1 ++ obsolete_mkdir_used=true ++ fi ++ fi ++ fi ++ ++ if test -n "$dir_arg"; then ++ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && ++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && ++ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || ++ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 ++ else ++ ++ # Make a couple of temp file names in the proper directory. ++ dsttmp=${dstdirslash}_inst.$$_ ++ rmtmp=${dstdirslash}_rm.$$_ ++ ++ # Trap to clean up those temp files at exit. ++ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 ++ ++ # Copy the file name to the temp name. ++ (umask $cp_umask && ++ { test -z "$stripcmd" || { ++ # Create $dsttmp read-write so that cp doesn't create it read-only, ++ # which would cause strip to fail. ++ if test -z "$doit"; then ++ : >"$dsttmp" # No need to fork-exec 'touch'. ++ else ++ $doit touch "$dsttmp" ++ fi ++ } ++ } && ++ $doit_exec $cpprog "$src" "$dsttmp") && ++ ++ # and set any options; do chmod last to preserve setuid bits. ++ # ++ # If any of these fail, we abort the whole thing. If we want to ++ # ignore errors from any of these, just make sure not to ignore ++ # errors from the above "$doit $cpprog $src $dsttmp" command. ++ # ++ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && ++ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && ++ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && ++ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && ++ ++ # If -C, don't bother to copy if it wouldn't change the file. ++ if $copy_on_change && ++ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && ++ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && ++ set -f && ++ set X $old && old=:$2:$4:$5:$6 && ++ set X $new && new=:$2:$4:$5:$6 && ++ set +f && ++ test "$old" = "$new" && ++ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 ++ then ++ rm -f "$dsttmp" ++ else ++ # If $backupsuffix is set, and the file being installed ++ # already exists, attempt a backup. Don't worry if it fails, ++ # e.g., if mv doesn't support -f. ++ if test -n "$backupsuffix" && test -f "$dst"; then ++ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null ++ fi ++ ++ # Rename the file to the real destination. ++ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || ++ ++ # The rename failed, perhaps because mv can't rename something else ++ # to itself, or perhaps because mv is so ancient that it does not ++ # support -f. ++ { ++ # Now remove or move aside any old file at destination location. ++ # We try this two ways since rm can't unlink itself on some ++ # systems and the destination file might be busy for other ++ # reasons. In this case, the final cleanup might fail but the new ++ # file should still install successfully. ++ { ++ test ! -f "$dst" || ++ $doit $rmcmd "$dst" 2>/dev/null || ++ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && ++ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } ++ } || ++ { echo "$0: cannot unlink or rename $dst" >&2 ++ (exit 1); exit 1 ++ } ++ } && ++ ++ # Now rename the file to the real destination. ++ $doit $mvcmd "$dsttmp" "$dst" ++ } ++ fi || exit 1 ++ ++ trap '' 0 ++ fi ++done + - exit 0 ++# Local variables: ++# eval: (add-hook 'before-save-hook 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC0" ++# time-stamp-end: "; # UTC" ++# End: diff --cc contrib/libpcap/pcap-haiku.c index 000000000000,6cb0e71a1f68..6cb0e71a1f68 mode 000000,100644..100644 --- a/contrib/libpcap/pcap-haiku.c +++ b/contrib/libpcap/pcap-haiku.c diff --cc contrib/libpcap/pcap/pcap.h index bd7715f2bf56,e014335bdfde..1ebae99616b7 --- a/contrib/libpcap/pcap/pcap.h +++ b/contrib/libpcap/pcap/pcap.h @@@ -1209,12 -1257,11 +1258,12 @@@ PCAP_AVAILABLE_1_9_REMOT PCAP_API int pcap_remoteact_list(char *hostlist, char sep, int size, char *errbuf); - PCAP_AVAILABLE_1_9 + PCAP_AVAILABLE_1_9_REMOTE PCAP_API int pcap_remoteact_close(const char *host, char *errbuf); - PCAP_AVAILABLE_1_9 + PCAP_AVAILABLE_1_9_REMOTE PCAP_API void pcap_remoteact_cleanup(void); +#endif /* Remote capture is disabled on FreeBSD */ #ifdef __cplusplus } diff --cc contrib/libpcap/thread-local.h index 000000000000,c9cbda2cbf2e..c9cbda2cbf2e mode 000000,100644..100644 --- a/contrib/libpcap/thread-local.h +++ b/contrib/libpcap/thread-local.h From nobody Sat Sep 14 17:19:57 2024 X-Original-To: dev-commits-src-main@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 4X5dGP6BKVz5Wtdg; Sat, 14 Sep 2024 17:19: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5dGP4bV9z4tr5; Sat, 14 Sep 2024 17:19:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726334397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pei3bJSJOg1be+COWE3QEVNOeM0Uc+pgJuAsiEA/3OY=; b=KRYA9vq8eEvcCRa42TsiyJfPJ74mi7i5H3XO3JR/bU7m85FYsKAIbQztXRnaaKNlhiNKiI Y0c/LTePMKgON26iTWr0lmeDEvZeO14sEKbnwcFLadBtBIo24h2jQAYgmY0tdvcZLBwbFB HKeljHDxHhY6VJSoXO7HxJD7Eb2pmuYJLKNsSRx2yhMqZx4Vh5QJzZjsMbRCcP9gdiNFfu 5QlQbvFGiWyIrsB5JQ5tt87tqrX/0uIeYGsNh922iFPbzkBIbWbmyvlT7wNWV2416Iv8Ej tADYnzw2dPsKjRKNR7fBMU4yBRsdD7Tlweztko/ai6+AmCa7ZVIT3M/C3uZzUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726334397; a=rsa-sha256; cv=none; b=CsH0bue8j4RXqhOkchpgfD6d6oQt3GxV/t96g1wo4FtYYuDwrN8WigZdSrTFsAvxApxnAv eUKmLmwv2wL4imFDWhmo4K/6rtkjO0HR45nlxXWOmgkgLC7eNZWdy9VGiL23EK9cdtg5nN 1tXV21bxUWmejMpVqQo5rOtDmmPupXx6bx7ergwoUqSh2gm6JLecURtf59ao9HTjIwOOdw jXD911rj2FyUbNtqRKBxcIErv2W9zx0shI883ENiTEI40mAHH2/mSVp0O61sS0Sa8Bh3Wc 9h99D59bFdcmy8SofNBXQNFNp44sXEoBJ0eq1CiVohPmpzCu41okvT3PUUGH9A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726334397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pei3bJSJOg1be+COWE3QEVNOeM0Uc+pgJuAsiEA/3OY=; b=WHetBmzRMfXnn1dTc5uXoN3oYdz4758AmyTvl5dLOMIfLnv5qdhubLkzeZ4cY08IpWqicc BlyXWS2ODc4G6ouRh5Iwns4twwjlN1ybT3XhrP8LLvukeA05fRIlZrt0jpFxeKjolM9qkK xJpG+wBEqf10Ipg+XHrBQL9YDWIsKJMWFNw7+68qQkj2Xp/6MAY/6yuSrov5qqqbUM5WyN jwmTsuawOqz+KfGFk+LW4RBul+R0q7sxwrmIcBrJt+Wvgx0YlVCOlcNtTbuw5PLcw0OmQM r8d7O1Ma1U9aHDVNfF4/FIRV0QuSL+EAQMrwNLrj4yPBU8PuryDyFG3JQMBGsA== 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 4X5dGP1cp9zbKj; Sat, 14 Sep 2024 17:19:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EHJvGC017253; Sat, 14 Sep 2024 17:19:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EHJvUG017250; Sat, 14 Sep 2024 17:19:57 GMT (envelope-from git) Date: Sat, 14 Sep 2024 17:19:57 GMT Message-Id: <202409141719.48EHJvUG017250@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: 407a9cced684 - main - ObsoleteFiles.inc: Update after libpcap upgrade from 1.10.4 to 1.10.5 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 407a9cced68440ce86f1c5d86c57e6b4ec3e4618 Auto-Submitted: auto-generated The branch main has been updated by jrm: URL: https://cgit.FreeBSD.org/src/commit/?id=407a9cced68440ce86f1c5d86c57e6b4ec3e4618 commit 407a9cced68440ce86f1c5d86c57e6b4ec3e4618 Author: Joseph Mingrone AuthorDate: 2024-09-14 17:13:23 +0000 Commit: Joseph Mingrone CommitDate: 2024-09-14 17:19:26 +0000 ObsoleteFiles.inc: Update after libpcap upgrade from 1.10.4 to 1.10.5 Sponsored by: The FreeBSD Foundation --- ObsoleteFiles.inc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 29cfdc05a3d3..2686086970ce 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,11 @@ # xargs -n1 | sort | uniq -d; # done +# 20240914 libpcap upgrade from 1.10.4 to 1.10.5 +OLD_FILES+=contrib/libpcap/pcap-haiku.cpp +OLD_FILES+=contrib/libpcap/pcap-rpcap-int.h +OLD_FILES+=contrib/libpcap/pcap-usb-linux-common.c + # 20240827: retire fips.so OLD_LIBS+=usr/lib/ossl-modules/fips.so From nobody Sat Sep 14 17:37:02 2024 X-Original-To: dev-commits-src-main@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 4X5df810TWz5WwwZ; Sat, 14 Sep 2024 17:37: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5df75vdYz4003; Sat, 14 Sep 2024 17:37:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726335423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WxTW43uAvy4uqCEhyJ+NAucaKoqu4AaECNZ6J5BhFaI=; b=t/aFM/q0oXSwlaRlMPf4GvlKm5mKc6rD1u//cjQbRx8+2jcx5RDu9c62u/Nfj/mijrAwEf RPZD11t2ijC2Aw2MekyeHEUWW09Uprfmgit74zSf431GABXL546HNP+czxf3clopR91AdZ P5d0at6uqR1R0X7ADhhHwRFLWyYJqSgBaL0ZdUOkcNhDigEympAqwvPAWq7MeUP2/AfLrN D6nVqlDDKVseIX+D3xATbG0A0PpTCAknCZRf8dYnIsCV4pDvLoLW105tegOvHoSMJzkRmW vBe8Vw4mAmJC2XlMhzxbxGNMrPd+jWfV45wfaB1K+TpV67yweaxNx5MXQ3TCbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726335423; a=rsa-sha256; cv=none; b=jOPxrleMUOF3L0SOsyQyFTIEqdaCIaeUFHnyABuSArBI5ZNu1F8V+g98q1TJmnuzT5x/br Nk/euTwGR/tY0WxOz4X4/66LtgJ0zFZGNHn37+cAz3Thwt0AjefTtvU5xFla/2HsN7g7wG 7Ii7vvi1NiI2YKj8TY9cSZZG0d8xHD9KZgeK0M8I31N5bhN9SJJu5ChT4G7HDJVJXExO+H nqqUwXdTLjVKg21At1jsbt5Wek6WPuueY7onJ+9xO0XaS0cZTsRO9cl8acWrm3puicSZGz LT4fE4Z+MsBM6JJ+9aejzt5FWTUdNo3NeueK6tI52xlBMUP/wawrDNg0bvRoig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726335423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WxTW43uAvy4uqCEhyJ+NAucaKoqu4AaECNZ6J5BhFaI=; b=yZaz2ipGyzy2ttG5ErvnUM607Lm2mRnFfH0mLUXqB2k8Q+WVW0ObkQt3u22/5TyiF4Jqpp 7O8CmIu0ocpfIdujNhJK+aBi5j+6stthKKVaTjV6ruDJwgmZ2U7DOrvR/mDYO775E5TCwV tQcKbwb89Mbs4VYvH4WzmEAP1bWaw/Uq+U8T3/LuupVHalMUeXUqdh/wB9zpzZvOun9dHV w0/5eemICI8Jp367XzgjH2lnfYRluNMC3cesRmrXapV7nHeFiXnMm2Ge8kY+hKkGtQRijB nqJIpy6WeX4sxlzKViOqFRL08zPvrIB0wT4h43iOyv0djST+tC/RAEwYqqseMg== 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 4X5df65T2dzcTy; Sat, 14 Sep 2024 17:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EHb282051332; Sat, 14 Sep 2024 17:37:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EHb2W1051329; Sat, 14 Sep 2024 17:37:02 GMT (envelope-from git) Date: Sat, 14 Sep 2024 17:37:02 GMT Message-Id: <202409141737.48EHb2W1051329@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: ecb75be376a3 - main - libpcap: Add changes missed in update to 1.10.5 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: ecb75be376a3e18d3e4836b6ee07015264784694 Auto-Submitted: auto-generated The branch main has been updated by jrm: URL: https://cgit.FreeBSD.org/src/commit/?id=ecb75be376a3e18d3e4836b6ee07015264784694 commit ecb75be376a3e18d3e4836b6ee07015264784694 Author: Joseph Mingrone AuthorDate: 2024-09-14 17:33:19 +0000 Commit: Joseph Mingrone CommitDate: 2024-09-14 17:35:58 +0000 libpcap: Add changes missed in update to 1.10.5 Fixes: afdbf109c6 (libpcap: Update to 1.10.5) Sponsored by: The FreeBSD Foundation --- lib/libpcap/Makefile | 1 - lib/libpcap/config.h | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/libpcap/Makefile b/lib/libpcap/Makefile index 792f0ff24e8a..9ba91504852b 100644 --- a/lib/libpcap/Makefile +++ b/lib/libpcap/Makefile @@ -19,7 +19,6 @@ SRCS= bpf_dump.c \ pcap-bpf.c \ pcap-common.c \ pcap-netmap.c \ - pcap-usb-linux-common.c \ pcap-util.c \ pcap.c \ savefile.c \ diff --git a/lib/libpcap/config.h b/lib/libpcap/config.h index 132b9bb29183..cea0cc4fd7cb 100644 --- a/lib/libpcap/config.h +++ b/lib/libpcap/config.h @@ -183,7 +183,7 @@ #define PACKAGE_NAME "pcap" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "pcap 1.10.4" +#define PACKAGE_STRING "pcap 1.10.5" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "pcap" @@ -192,7 +192,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.10.4" +#define PACKAGE_VERSION "1.10.5" /* target host supports netmap */ #define PCAP_SUPPORT_NETMAP 1 From nobody Sat Sep 14 18:42:59 2024 X-Original-To: dev-commits-src-main@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 4X5g6D0N5Qz5V6hC; Sat, 14 Sep 2024 18:43: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5g6C6x7pz477j; Sat, 14 Sep 2024 18:42:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726339380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rDfU53sq3PA5NdWyQLqr5pchdtKuxT1ZQsAd6Z2S/Sk=; b=pl3D3dHodpPxPH1Kjd1tNtsJuzxfvcURGecyhvs/cUD9F2Ol/LIWZwJat1dyGUuUiYUOpw j5kwY0KnMS3Tp/lNKvQ1BuTrNdVTNi04axFHrc85TJSj05sO5DyA67oGWpOQtrSbm8//13 FnYaYpEf3Kb6716fmLp4BXRLICLPuLX2wenxU2o7MYAFQ7GznNhH6cg/j1WlR0pDvEy4X/ TvxChwaShjqRFIKIwZ2yQptv2IF4ubmjX/q96l0MIPL9OgJUvmeMSc1FVL+EGC92zFgQa8 lwivXbieNFVjClhHhCIQUKMT836gwWZMx2Dky6MkcUmNmVQkjgNd/8Id++a0vQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726339380; a=rsa-sha256; cv=none; b=bqnJDebt3s7/q6ozbpHqM2KozGoZQ2t6El6cF+iF3fyCxSlI4g96EtjHw+ujv9LO2x5O4w VVA9BU9PCdiUzMHr/AZQkRr1xCeZ/cpQNKQ9dPJsDbbJ7tTes5kdit8Bxrehs4gPAosSx4 n1/W4f6stpsqaDE3s66DkRSoG8CIy0ZsbqgkTAv9UBXZ+Fq+WYvx1kX8tkLkcauLunySLy 9MgXOysioZhOxiXHUREyVUvTgpcTSyuHUShzMNP9pYQexxbwb5NQ/Zs5xXNzdOOpsyngT2 Oo6ChViXrqVbSmO4L7+3a7eXbL5O6yuWCJjWkKCylzrvqCFnyRlqsu/K/40hXA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726339380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rDfU53sq3PA5NdWyQLqr5pchdtKuxT1ZQsAd6Z2S/Sk=; b=ntj2irBqFPDC2GlhmPyTF1aQziyWC+MMdf6SX6xOwRY6SaG/WXVUzGtenEZso3KOEpm877 1uy8Qy4d1m1/Ug1KJZ8gbWwlFKjaL6zTJk70oCE0S+52AOed2W8vZSc0WP2eHRivxTb2Qu WVUiTlnV2mGKduYN4YXB4uSw+MCUBW9l8m9WfI9ERsdKgQ/f4d1a++GH/Q2uNAjxtnB5Rv GyAd0imAsPmNiC4H+9vH+2mlaN2bKYJpT+SqLsyQrZGZGCRoDd5BFOsgJKuxMRKYtOp36e ZrmhGKpOVX8tEEl/Qhy+YyS96rJAD0cyk+dWLodrRo1Y+lHaSxyWkdTAN1vlaw== 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 4X5g6C6XbHzdgZ; Sat, 14 Sep 2024 18:42:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EIgxuw070425; Sat, 14 Sep 2024 18:42:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EIgxsn070422; Sat, 14 Sep 2024 18:42:59 GMT (envelope-from git) Date: Sat, 14 Sep 2024 18:42:59 GMT Message-Id: <202409141842.48EIgxsn070422@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Robert Clausecker Subject: git: 61ed5748e4e9 - main - lib/libc/tests/string: improve memccpy "bounds" unit test List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 61ed5748e4e9c7397fcb2638b442f46ac5c9e7c5 Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=61ed5748e4e9c7397fcb2638b442f46ac5c9e7c5 commit 61ed5748e4e9c7397fcb2638b442f46ac5c9e7c5 Author: Robert Clausecker AuthorDate: 2024-07-19 20:50:28 +0000 Commit: Robert Clausecker CommitDate: 2024-09-14 18:42:19 +0000 lib/libc/tests/string: improve memccpy "bounds" unit test The purpose of the "bounds" test is to check that the function does not overread the array bounds. The old unit test, copied from the strlcpy() one, always ensured that we see the character c memccpy() is looking for in the source array before the array ends. While this is correct for strlcpy(), memccpy()'s specification does not guarantee that c is present within the given size limit. The updated test handles this case better, ensuring that the source array ends early if c is not supposed to be present. Reported by: getz Approved by: emaste See also: D46052 Event: GSoC 2024 Differential Revision: https://reviews.freebsd.org/D46051 --- lib/libc/tests/string/memccpy_test.c | 50 ++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/lib/libc/tests/string/memccpy_test.c b/lib/libc/tests/string/memccpy_test.c index 82f4ef34af54..4784fee4ede5 100644 --- a/lib/libc/tests/string/memccpy_test.c +++ b/lib/libc/tests/string/memccpy_test.c @@ -1,6 +1,6 @@ /*- * Copyright (c) 2009 David Schultz - * Copyright (c) 2023 The FreeBSD Foundation + * Copyright (c) 2023, 2024 The FreeBSD Foundation * All rights reserved. * * Portions of this software were developed by Robert Clausecker @@ -54,34 +54,57 @@ makebuf(size_t len, int guard_at_end) buf = mmap(NULL, alloc_size, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); assert(buf); if (guard_at_end) { - assert(munmap(buf + alloc_size - page_size, page_size) == 0); + assert(mprotect(buf + alloc_size - page_size, page_size, PROT_NONE) == 0); return (buf + alloc_size - page_size - len); } else { - assert(munmap(buf, page_size) == 0); + assert(mprotect(buf, page_size, PROT_NONE) == 0); return (buf + page_size); } } static void -test_memccpy(const char *s) +freebuf(char * buf, size_t len, int guard_at_end) +{ + size_t alloc_size, page_size; + + page_size = getpagesize(); + alloc_size = roundup2(len, page_size) + page_size; + + if (guard_at_end) + munmap(buf + len + page_size - alloc_size, alloc_size); + else + munmap(buf - page_size, alloc_size); +} + +static void +test_memccpy(const char *s, size_t size) { char *src, *dst, *expected; - size_t size, bufsize, x; + size_t bufsize, x; int i, j; - size = strlen(s) + 1; for (i = 0; i <= 1; i++) { for (j = 0; j <= 1; j++) { - for (bufsize = 0; bufsize <= size + 10; bufsize++) { - src = makebuf(size, i); - memcpy(src, s, size); + for (bufsize = 0; bufsize <= size + 32; bufsize++) { dst = makebuf(bufsize, j); + if (bufsize < size) { + src = makebuf(bufsize, i); + memcpy(src, s, bufsize); + expected = NULL; + } else { + src = makebuf(size, i); + memcpy(src, s, size); + expected = dst + size; + } + memset(dst, 'X', bufsize); - expected = bufsize >= size ? dst + size : NULL; - assert(memccpy_fn(dst, src, src[size-1], bufsize) == expected); - assert(bufsize == 0 || strncmp(src, dst, bufsize - 1) == 0); + assert(memccpy_fn(dst, src, s[size-1], bufsize) == expected); + assert(memcmp(src, dst, MIN(bufsize, size)) == 0); for (x = size; x < bufsize; x++) assert(dst[x] == 'X'); + + freebuf(dst, bufsize, j); + freebuf(src, bufsize < size ? bufsize : size, i); } } } @@ -168,7 +191,8 @@ ATF_TC_BODY(bounds, tc) for (i = 0; i < sizeof(buf) - 1; i++) { buf[i] = ' ' + i; - test_memccpy(buf); + buf[i+1] = '\0'; + test_memccpy(buf, i + 1); } } From nobody Sat Sep 14 19:25:22 2024 X-Original-To: dev-commits-src-main@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 4X5h365KKPz5VDn2; Sat, 14 Sep 2024 19:25: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5h364Z3nz4Fw1; Sat, 14 Sep 2024 19:25:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726341922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0G2osQN28Bz8m2Os64PenH73YtdLTqW/V/ERC4xhaIU=; b=xABotzUGXrvH8JsmvdDWjG1RRxFEciB4V8FvOVHTOSWYBQFGfH+EuR0YetjQlG9iIsYQwW NvUWt5qrphi1FoZUH6vk/EPNCiSUtNm8NFDfKFL6sRBI4xiQjjUrBR24XJ2vzowqRvuffd c7MYLgbjegm+7+sZFrbVVKlD75i5Yd0o319Q/Q5lRqDrhW0smw1zhyOJndddJeCWL7mKdo o8HQNHHNy9lHLSYpakLSaEg6d/qY42CVEp+z/gPtZBeChoxJddrBMKBXJvZICR+lEa2DSI +Zr9O3INPAQ9m7+wYWX6PbqS24ll+JpJ2XR9+1rVHyNz0+46SgzGeFycK2g3oQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726341922; a=rsa-sha256; cv=none; b=fNWMv2UmTxlE4uXtkHQ0GBu9uCzPHzcgzgpSLGhlPBTCPRP3jWJpO48ZYZfIO2+fSI0Oph 7JTgeEsD8yrpk44PmrV0YlMRrSFSJ8xxxTaBmaN3CnVfubfruNteDyBPgAVNIadQZz+H9K 6rCajdoqKHacso9SSr4n0YCvf2Fkq/tqIbv04wSxgiDpm7G1eTW8Feo1COv6Pdo5PYPCOf BcrVvDNHJs9CmCKFxFYlDspKLJUzNRCSRb9rGonqbAwoxufG8QX9FaNQkHpm5cG4zcepj0 wBCCZLTLLpn8NSwhOhcRUFInOaDGO/20OgjIi9KAcvqyDD2M6VkdrmoV89lbYQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726341922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0G2osQN28Bz8m2Os64PenH73YtdLTqW/V/ERC4xhaIU=; b=Wb6ixKDeZYare5W5vRoNlHt0NHb1MoSf5F7DNb/JHc9IPDK6hNHQd3KgxHS1ln0djQmj3J Uk6pMLiL72+5wF0CxYAqap6CPYTY6Vxd6s7aV59Y94hWdNh5xeTZ/yK/IZo+bcR7p7NvuP 3csrCb4z7+mzS5gr5lGyrKI6cAktZlUoIm4cvuDLToLoi47ycaFubSliJ49zeRNpyAjNfh /ghopC8Q3+bKCMmW7vgffeNACrPJiJXZQHSQxO+UcKhqmLzJ9f92GEKtz01AXtLKNpyIMQ s9kDVSo0R4NBoUgSyHIlUV1tZLZ2tLV9fm7fkky6tLwgpm7jUD06tjNHNoyzMg== 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 4X5h3649RbzfWW; Sat, 14 Sep 2024 19:25:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EJPMVv038719; Sat, 14 Sep 2024 19:25:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EJPM4E038716; Sat, 14 Sep 2024 19:25:22 GMT (envelope-from git) Date: Sat, 14 Sep 2024 19:25:22 GMT Message-Id: <202409141925.48EJPM4E038716@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: 0a5443da8143 - main - man4: Add a comment about Hardware Notes List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 0a5443da8143f8242c652aaff4fe6226d4718ab6 Auto-Submitted: auto-generated The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=0a5443da8143f8242c652aaff4fe6226d4718ab6 commit 0a5443da8143f8242c652aaff4fe6226d4718ab6 Author: Colin Percival AuthorDate: 2024-09-14 19:20:49 +0000 Commit: Colin Percival CommitDate: 2024-09-14 19:23:31 +0000 man4: Add a comment about Hardware Notes The Hardware Notes for each release are generated automatically from a template file and the HARDWARE sections of driver man pages. When man pages for new drivers are added here, they should usually be added to the release notes template file. Suggested by: bz Sponsored by: Amazon --- share/man/man4/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 6195211d2eb9..ad4bc47acfea 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1,5 +1,10 @@ .include +# If you add a new file here, please consider adding an entry to the +# hardware notes template (website/archetypes/release/hardware.adoc in +# the doc repository); otherwise the automatically generated hardware +# notes will not include your driver. + MAN= aac.4 \ aacraid.4 \ acpi.4 \ From nobody Sat Sep 14 19:38:32 2024 X-Original-To: dev-commits-src-main@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 4X5hLJ5G51z5VGg7; Sat, 14 Sep 2024 19:38: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5hLJ4zgCz4H76; Sat, 14 Sep 2024 19:38:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726342712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mDQWPHcZXLEjNZUvivu4sjpI4233w+Cg3+GVda4lD6s=; b=rn6gE3bofzGp8qez2dYuyhjzXQUS1REhaqIk8336b8hvnqm/cCCzCc9fXeLfjyOx3xPsP8 79jUYWB+zaSdORbiYWrFerCJP3426jMCPYiwHc4ja/7t+bDpCn2WDUrCNHSUvqRmMBRAcZ nNrO722qTnNn8Qo+I8+nMGkaK2fPwF4JmXQ/S+3266sin/f1pYD3yX8qPXpFRUHQvXUBD7 h/lbJ0WVeyddBzezHxdazI/0c6HaEchTmX31XTCOsC/zvGKXZmF8UJVfVsxn8DAjSjUAcY sDPkh5hOYbaRFbNWGnqdWWgSiaUYtHC9T261mIFBIEYtRFVsW+pnfokHRGHGjQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726342712; a=rsa-sha256; cv=none; b=Jcu486dY4XrAcAOyQDUTHFS+OFBz2MASHVHP+tnUGJ27zRf4em/RiXQXbRf0yKqeCvdWRG jqdMB+MEW3TZXI/jx0adL5oAPlKNQm+lRyKpguY0VExCfIj22XwOE8XUfoD0Kg0bui5b1B Yc9r4T/q9vMX8ayHHnB+zZh8fSAEJ60WS4xBa8FIPtroMX+UEmZzD5MSyiBd2hv4bkNwAe Em5Tj2MBHZfWUEw+UhFJHdYvTN9PEshXC3ypauFlp0CcNbEYyhKT2RzZnKeA5MvRwMJ7yb MH38XOcwCNjMKK883WqSNL120TWrQW9tZFt+H/Z536uHjDlcDu8hX5VK9Mtg8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726342712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mDQWPHcZXLEjNZUvivu4sjpI4233w+Cg3+GVda4lD6s=; b=NkmvdA1AyxUGrBOLlv0ufoQGqRNmhPKaQ5cW+9RqEk8EC392UEWWBq+N+JEXDBJfR8/moB hkpjfkq9DKzyEwyvhT4FOkr0k2kxUkfqAUcCUoM3B5mmpqO8SxdIcoN0Gpu5aV4pcWkjaD d2vF58KL682p/aI7POE/e+UOuY8+jaAyOygmaaOYmGjFyd3BN3f5TM8OVfynEi1qLY0+EJ bmWpZIOi9LOhJLhmZYwZ72zkmsDGGgS0VyOeQu/H47Wvvpvm5cPFHuN6ekz69ACcmGv2X9 Ot7GDiIXijRBSeUCNA+Pw00Q2GSukmLixGNcHB1Du4RW22y2jdCTJ1V3ve8OEQ== 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 4X5hLJ48FhzgFR; Sat, 14 Sep 2024 19:38:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EJcWoJ055654; Sat, 14 Sep 2024 19:38:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EJcWrP055651; Sat, 14 Sep 2024 19:38:32 GMT (envelope-from git) Date: Sat, 14 Sep 2024 19:38:32 GMT Message-Id: <202409141938.48EJcWrP055651@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Enji Cooper Subject: git: 77864b545b0a - main - sys/crypto/openssl: update powerpc* ASM List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ngie X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 77864b545b0aaa91bc78b1156c477825007a6233 Auto-Submitted: auto-generated The branch main has been updated by ngie: URL: https://cgit.FreeBSD.org/src/commit/?id=77864b545b0aaa91bc78b1156c477825007a6233 commit 77864b545b0aaa91bc78b1156c477825007a6233 Author: Enji Cooper AuthorDate: 2024-09-08 04:37:04 +0000 Commit: Enji Cooper CommitDate: 2024-09-14 19:38:17 +0000 sys/crypto/openssl: update powerpc* ASM This change updates the crypto powerpc* ASM via the prescribed process documented in `crypto/openssl/FREEBSD-upgrade`. This change syncs the ASM with 3.0.15's generated ASM. MFC after: 1 week MFC with: a7148ab39c03abd4d1a84997c70bf96f15dd2a09 MFC with: cc717b574d7faa2e0b2de1a985076286cef74187 Differential Revision: https://reviews.freebsd.org/D46604 --- sys/crypto/openssl/powerpc/aesp8-ppc.S | 143 +++++++++++++++++--------- sys/crypto/openssl/powerpc/poly1305-ppc.S | 64 ++++++------ sys/crypto/openssl/powerpc64/aesp8-ppc.S | 143 +++++++++++++++++--------- sys/crypto/openssl/powerpc64/poly1305-ppc.S | 64 ++++++------ sys/crypto/openssl/powerpc64le/aesp8-ppc.S | 143 +++++++++++++++++--------- sys/crypto/openssl/powerpc64le/poly1305-ppc.S | 64 ++++++------ 6 files changed, 378 insertions(+), 243 deletions(-) diff --git a/sys/crypto/openssl/powerpc/aesp8-ppc.S b/sys/crypto/openssl/powerpc/aesp8-ppc.S index 21067ff2521c..d0fb0f70adbc 100644 --- a/sys/crypto/openssl/powerpc/aesp8-ppc.S +++ b/sys/crypto/openssl/powerpc/aesp8-ppc.S @@ -9,11 +9,12 @@ rcon: .byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00 .byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +.long 0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe .Lconsts: mflr 0 bcl 20,31,$+4 mflr 6 - addi 6,6,-0x48 + addi 6,6,-0x58 mtlr 0 blr .long 0 @@ -2347,6 +2348,18 @@ _aesp8_xts_encrypt6x: li 31,0x70 mtspr 256,0 + + xxlor 2, 32+10, 32+10 + vsldoi 10,11,10,1 + xxlor 1, 32+10, 32+10 + + + mr 31, 6 + bl .Lconsts + lxvw4x 0, 28, 6 + mr 6, 31 + li 31,0x70 + subi 9,9,3 lvx 23,0,6 @@ -2389,69 +2402,77 @@ _aesp8_xts_encrypt6x: vperm 31,31,22,7 lvx 25,3,7 + + + + + + + + vperm 0,2,4,5 subi 10,10,31 vxor 17,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 7,0,17 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x7C235699 vxor 18,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 12,1,18 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x7C5A5699 andi. 31,5,15 vxor 19,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 13,2,19 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x7C7B5699 sub 5,5,31 vxor 20,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 14,3,20 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x7C9C5699 subi 5,5,0x60 vxor 21,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 15,4,21 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x7CBD5699 addi 10,10,0x60 vxor 22,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 16,5,22 - vxor 8,8,11 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 vxor 31,31,23 mtctr 9 @@ -2477,6 +2498,8 @@ _aesp8_xts_encrypt6x: lvx 25,3,7 bdnz .Loop_xts_enc6x + xxlor 32+10, 1, 1 + subic 5,5,96 vxor 0,17,31 .long 0x10E7C508 @@ -2486,7 +2509,6 @@ _aesp8_xts_encrypt6x: vaddubm 8,8,8 .long 0x11ADC508 .long 0x11CEC508 - vsldoi 11,11,11,15 .long 0x11EFC508 .long 0x1210C508 @@ -2494,7 +2516,8 @@ _aesp8_xts_encrypt6x: vand 11,11,10 .long 0x10E7CD08 .long 0x118CCD08 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x11ADCD08 .long 0x11CECD08 vxor 1,18,31 @@ -2505,13 +2528,13 @@ _aesp8_xts_encrypt6x: and 0,0,5 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x10E7D508 .long 0x118CD508 vand 11,11,10 .long 0x11ADD508 .long 0x11CED508 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x11EFD508 .long 0x1210D508 @@ -2525,7 +2548,6 @@ _aesp8_xts_encrypt6x: vaddubm 8,8,8 .long 0x10E7DD08 .long 0x118CDD08 - vsldoi 11,11,11,15 .long 0x11ADDD08 .long 0x11CEDD08 vand 11,11,10 @@ -2533,7 +2555,8 @@ _aesp8_xts_encrypt6x: .long 0x1210DD08 addi 7,1,32+15 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x10E7E508 .long 0x118CE508 vxor 3,20,31 @@ -2542,7 +2565,6 @@ _aesp8_xts_encrypt6x: .long 0x11ADE508 .long 0x11CEE508 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x11EFE508 .long 0x1210E508 lvx 24,0,7 @@ -2550,7 +2572,8 @@ _aesp8_xts_encrypt6x: .long 0x10E7ED08 .long 0x118CED08 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x11ADED08 .long 0x11CEED08 vxor 4,21,31 @@ -2560,14 +2583,14 @@ _aesp8_xts_encrypt6x: .long 0x1210ED08 lvx 25,3,7 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x10E7F508 .long 0x118CF508 vand 11,11,10 .long 0x11ADF508 .long 0x11CEF508 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x11EFF508 .long 0x1210F508 vxor 5,22,31 @@ -2577,7 +2600,6 @@ _aesp8_xts_encrypt6x: .long 0x10E70509 .long 0x7C005699 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x118C0D09 .long 0x7C235699 .long 0x11AD1509 @@ -2590,7 +2612,10 @@ _aesp8_xts_encrypt6x: .long 0x11EF2509 .long 0x7C9C5699 - vxor 8,8,11 + xxlor 10, 32+0, 32+0 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 + xxlor 32+0, 10, 10 .long 0x11702D09 @@ -2623,6 +2648,8 @@ _aesp8_xts_encrypt6x: mtctr 9 beq .Loop_xts_enc6x + xxlor 32+10, 2, 2 + addic. 5,5,0x60 beq .Lxts_enc6x_zero cmpwi 5,0x20 @@ -2999,6 +3026,18 @@ _aesp8_xts_decrypt6x: li 31,0x70 mtspr 256,0 + + xxlor 2, 32+10, 32+10 + vsldoi 10,11,10,1 + xxlor 1, 32+10, 32+10 + + + mr 31, 6 + bl .Lconsts + lxvw4x 0, 28, 6 + mr 6, 31 + li 31,0x70 + subi 9,9,3 lvx 23,0,6 @@ -3046,64 +3085,64 @@ _aesp8_xts_decrypt6x: vxor 17,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 7,0,17 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x7C235699 vxor 18,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 12,1,18 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x7C5A5699 andi. 31,5,15 vxor 19,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 13,2,19 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x7C7B5699 sub 5,5,31 vxor 20,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 14,3,20 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x7C9C5699 subi 5,5,0x60 vxor 21,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 15,4,21 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x7CBD5699 addi 10,10,0x60 vxor 22,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 16,5,22 - vxor 8,8,11 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 vxor 31,31,23 mtctr 9 @@ -3129,6 +3168,8 @@ _aesp8_xts_decrypt6x: lvx 25,3,7 bdnz .Loop_xts_dec6x + xxlor 32+10, 1, 1 + subic 5,5,96 vxor 0,17,31 .long 0x10E7C548 @@ -3138,7 +3179,6 @@ _aesp8_xts_decrypt6x: vaddubm 8,8,8 .long 0x11ADC548 .long 0x11CEC548 - vsldoi 11,11,11,15 .long 0x11EFC548 .long 0x1210C548 @@ -3146,7 +3186,8 @@ _aesp8_xts_decrypt6x: vand 11,11,10 .long 0x10E7CD48 .long 0x118CCD48 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x11ADCD48 .long 0x11CECD48 vxor 1,18,31 @@ -3157,13 +3198,13 @@ _aesp8_xts_decrypt6x: and 0,0,5 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x10E7D548 .long 0x118CD548 vand 11,11,10 .long 0x11ADD548 .long 0x11CED548 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x11EFD548 .long 0x1210D548 @@ -3177,7 +3218,6 @@ _aesp8_xts_decrypt6x: vaddubm 8,8,8 .long 0x10E7DD48 .long 0x118CDD48 - vsldoi 11,11,11,15 .long 0x11ADDD48 .long 0x11CEDD48 vand 11,11,10 @@ -3185,7 +3225,8 @@ _aesp8_xts_decrypt6x: .long 0x1210DD48 addi 7,1,32+15 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x10E7E548 .long 0x118CE548 vxor 3,20,31 @@ -3194,7 +3235,6 @@ _aesp8_xts_decrypt6x: .long 0x11ADE548 .long 0x11CEE548 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x11EFE548 .long 0x1210E548 lvx 24,0,7 @@ -3202,7 +3242,8 @@ _aesp8_xts_decrypt6x: .long 0x10E7ED48 .long 0x118CED48 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x11ADED48 .long 0x11CEED48 vxor 4,21,31 @@ -3212,14 +3253,14 @@ _aesp8_xts_decrypt6x: .long 0x1210ED48 lvx 25,3,7 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x10E7F548 .long 0x118CF548 vand 11,11,10 .long 0x11ADF548 .long 0x11CEF548 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x11EFF548 .long 0x1210F548 vxor 5,22,31 @@ -3229,7 +3270,6 @@ _aesp8_xts_decrypt6x: .long 0x10E70549 .long 0x7C005699 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x118C0D49 .long 0x7C235699 .long 0x11AD1549 @@ -3242,7 +3282,10 @@ _aesp8_xts_decrypt6x: .long 0x11EF2549 .long 0x7C9C5699 - vxor 8,8,11 + xxlor 10, 32+0, 32+0 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 + xxlor 32+0, 10, 10 .long 0x12102D49 .long 0x7CBD5699 @@ -3273,6 +3316,8 @@ _aesp8_xts_decrypt6x: mtctr 9 beq .Loop_xts_dec6x + xxlor 32+10, 2, 2 + addic. 5,5,0x60 beq .Lxts_dec6x_zero cmpwi 5,0x20 diff --git a/sys/crypto/openssl/powerpc/poly1305-ppc.S b/sys/crypto/openssl/powerpc/poly1305-ppc.S index d6fe34693724..41ef89e4f384 100644 --- a/sys/crypto/openssl/powerpc/poly1305-ppc.S +++ b/sys/crypto/openssl/powerpc/poly1305-ppc.S @@ -473,7 +473,7 @@ __poly1305_mul: .align 5 __poly1305_blocks_vsx: - stwu 1,-384(1) + stwu 1,-368(1) mflr 0 li 10,167 li 11,183 @@ -484,12 +484,12 @@ __poly1305_blocks_vsx: addi 11,11,32 stvx 22,10,1 addi 10,10,32 - stvx 23,10,1 - addi 10,10,32 - stvx 24,11,1 + stvx 23,11,1 addi 11,11,32 - stvx 25,10,1 + stvx 24,10,1 addi 10,10,32 + stvx 25,11,1 + addi 11,11,32 stvx 26,10,1 addi 10,10,32 stvx 27,11,1 @@ -500,15 +500,15 @@ __poly1305_blocks_vsx: addi 11,11,32 stvx 30,10,1 stvx 31,11,1 - stw 12,360(1) + stw 12,344(1) li 12,-1 mtspr 256,12 - stw 27,364(1) - stw 28,368(1) - stw 29,372(1) - stw 30,376(1) - stw 31,380(1) - stw 0,388(1) + stw 27,348(1) + stw 28,352(1) + stw 29,356(1) + stw 30,360(1) + stw 31,364(1) + stw 0,372(1) bl .LPICmeup @@ -1209,7 +1209,7 @@ __poly1305_blocks_vsx: .align 4 .Ldone_vsx: - lwz 0,388(1) + lwz 0,372(1) li 27,4 li 28,8 li 29,12 @@ -1220,39 +1220,39 @@ __poly1305_blocks_vsx: .long 0x7C7D1919 .long 0x7C9E1919 - lwz 12,360(1) + lwz 12,344(1) mtlr 0 li 10,167 li 11,183 mtspr 256,12 lvx 20,10,1 addi 10,10,32 - lvx 21,10,1 - addi 10,10,32 - lvx 22,11,1 + lvx 21,11,1 addi 11,11,32 - lvx 23,10,1 + lvx 22,10,1 addi 10,10,32 - lvx 24,11,1 + lvx 23,11,1 addi 11,11,32 - lvx 25,10,1 + lvx 24,10,1 addi 10,10,32 - lvx 26,11,1 + lvx 25,11,1 addi 11,11,32 - lvx 27,10,1 + lvx 26,10,1 addi 10,10,32 - lvx 28,11,1 + lvx 27,11,1 addi 11,11,32 - lvx 29,10,1 + lvx 28,10,1 addi 10,10,32 - lvx 30,11,1 - lvx 31,10,1 - lwz 27,364(1) - lwz 28,368(1) - lwz 29,372(1) - lwz 30,376(1) - lwz 31,380(1) - addi 1,1,384 + lvx 29,11,1 + addi 11,11,32 + lvx 30,10,1 + lvx 31,11,1 + lwz 27,348(1) + lwz 28,352(1) + lwz 29,356(1) + lwz 30,360(1) + lwz 31,364(1) + addi 1,1,368 blr .long 0 .byte 0,12,0x04,1,0x80,5,4,0 diff --git a/sys/crypto/openssl/powerpc64/aesp8-ppc.S b/sys/crypto/openssl/powerpc64/aesp8-ppc.S index 5fdbf0552b26..f2d9eb3c4664 100644 --- a/sys/crypto/openssl/powerpc64/aesp8-ppc.S +++ b/sys/crypto/openssl/powerpc64/aesp8-ppc.S @@ -10,11 +10,12 @@ rcon: .byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00 .byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +.long 0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe .Lconsts: mflr 0 bcl 20,31,$+4 mflr 6 - addi 6,6,-0x48 + addi 6,6,-0x58 mtlr 0 blr .long 0 @@ -2364,6 +2365,18 @@ _aesp8_xts_encrypt6x: li 31,0x70 or 0,0,0 + + xxlor 2, 32+10, 32+10 + vsldoi 10,11,10,1 + xxlor 1, 32+10, 32+10 + + + mr 31, 6 + bl .Lconsts + lxvw4x 0, 28, 6 + mr 6, 31 + li 31,0x70 + subi 9,9,3 lvx 23,0,6 @@ -2406,69 +2419,77 @@ _aesp8_xts_encrypt6x: vperm 31,31,22,7 lvx 25,3,7 + + + + + + + + vperm 0,2,4,5 subi 10,10,31 vxor 17,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 7,0,17 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x7C235699 vxor 18,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 12,1,18 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x7C5A5699 andi. 31,5,15 vxor 19,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 13,2,19 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x7C7B5699 sub 5,5,31 vxor 20,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 14,3,20 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x7C9C5699 subi 5,5,0x60 vxor 21,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 15,4,21 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x7CBD5699 addi 10,10,0x60 vxor 22,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 16,5,22 - vxor 8,8,11 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 vxor 31,31,23 mtctr 9 @@ -2494,6 +2515,8 @@ _aesp8_xts_encrypt6x: lvx 25,3,7 bdnz .Loop_xts_enc6x + xxlor 32+10, 1, 1 + subic 5,5,96 vxor 0,17,31 .long 0x10E7C508 @@ -2503,7 +2526,6 @@ _aesp8_xts_encrypt6x: vaddubm 8,8,8 .long 0x11ADC508 .long 0x11CEC508 - vsldoi 11,11,11,15 .long 0x11EFC508 .long 0x1210C508 @@ -2511,7 +2533,8 @@ _aesp8_xts_encrypt6x: vand 11,11,10 .long 0x10E7CD08 .long 0x118CCD08 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x11ADCD08 .long 0x11CECD08 vxor 1,18,31 @@ -2522,13 +2545,13 @@ _aesp8_xts_encrypt6x: and 0,0,5 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x10E7D508 .long 0x118CD508 vand 11,11,10 .long 0x11ADD508 .long 0x11CED508 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x11EFD508 .long 0x1210D508 @@ -2542,7 +2565,6 @@ _aesp8_xts_encrypt6x: vaddubm 8,8,8 .long 0x10E7DD08 .long 0x118CDD08 - vsldoi 11,11,11,15 .long 0x11ADDD08 .long 0x11CEDD08 vand 11,11,10 @@ -2550,7 +2572,8 @@ _aesp8_xts_encrypt6x: .long 0x1210DD08 addi 7,1,64+15 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x10E7E508 .long 0x118CE508 vxor 3,20,31 @@ -2559,7 +2582,6 @@ _aesp8_xts_encrypt6x: .long 0x11ADE508 .long 0x11CEE508 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x11EFE508 .long 0x1210E508 lvx 24,0,7 @@ -2567,7 +2589,8 @@ _aesp8_xts_encrypt6x: .long 0x10E7ED08 .long 0x118CED08 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x11ADED08 .long 0x11CEED08 vxor 4,21,31 @@ -2577,14 +2600,14 @@ _aesp8_xts_encrypt6x: .long 0x1210ED08 lvx 25,3,7 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x10E7F508 .long 0x118CF508 vand 11,11,10 .long 0x11ADF508 .long 0x11CEF508 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x11EFF508 .long 0x1210F508 vxor 5,22,31 @@ -2594,7 +2617,6 @@ _aesp8_xts_encrypt6x: .long 0x10E70509 .long 0x7C005699 vaddubm 8,8,8 - vsldoi 11,11,11,15 .long 0x118C0D09 .long 0x7C235699 .long 0x11AD1509 @@ -2607,7 +2629,10 @@ _aesp8_xts_encrypt6x: .long 0x11EF2509 .long 0x7C9C5699 - vxor 8,8,11 + xxlor 10, 32+0, 32+0 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 + xxlor 32+0, 10, 10 .long 0x11702D09 @@ -2640,6 +2665,8 @@ _aesp8_xts_encrypt6x: mtctr 9 beq .Loop_xts_enc6x + xxlor 32+10, 2, 2 + addic. 5,5,0x60 beq .Lxts_enc6x_zero cmpwi 5,0x20 @@ -3016,6 +3043,18 @@ _aesp8_xts_decrypt6x: li 31,0x70 or 0,0,0 + + xxlor 2, 32+10, 32+10 + vsldoi 10,11,10,1 + xxlor 1, 32+10, 32+10 + + + mr 31, 6 + bl .Lconsts + lxvw4x 0, 28, 6 + mr 6, 31 + li 31,0x70 + subi 9,9,3 lvx 23,0,6 @@ -3063,64 +3102,64 @@ _aesp8_xts_decrypt6x: vxor 17,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 7,0,17 - vxor 8,8,11 + xxlor 32+1, 0, 0 + vpermxor 8, 8, 11, 1 .long 0x7C235699 vxor 18,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 12,1,18 - vxor 8,8,11 + xxlor 32+2, 0, 0 + vpermxor 8, 8, 11, 2 .long 0x7C5A5699 andi. 31,5,15 vxor 19,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 13,2,19 - vxor 8,8,11 + xxlor 32+3, 0, 0 + vpermxor 8, 8, 11, 3 .long 0x7C7B5699 sub 5,5,31 vxor 20,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 14,3,20 - vxor 8,8,11 + xxlor 32+4, 0, 0 + vpermxor 8, 8, 11, 4 .long 0x7C9C5699 subi 5,5,0x60 vxor 21,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 15,4,21 - vxor 8,8,11 + xxlor 32+5, 0, 0 + vpermxor 8, 8, 11, 5 .long 0x7CBD5699 addi 10,10,0x60 vxor 22,8,23 vsrab 11,8,9 vaddubm 8,8,8 - vsldoi 11,11,11,15 vand 11,11,10 vxor 16,5,22 - vxor 8,8,11 + xxlor 32+0, 0, 0 + vpermxor 8, 8, 11, 0 vxor 31,31,23 mtctr 9 @@ -3146,6 +3185,8 @@ _aesp8_xts_decrypt6x: lvx 25,3,7 bdnz .Loop_xts_dec6x + xxlor 32+10, 1, 1 + subic 5,5,96 vxor 0,17,31 .long 0x10E7C548 @@ -3155,7 +3196,6 @@ _aesp8_xts_decrypt6x: vaddubm 8,8,8 .long 0x11ADC548 .long 0x11CEC548 - vsldoi 11,11,11,15 *** 826 LINES SKIPPED *** From nobody Sat Sep 14 20:30:38 2024 X-Original-To: dev-commits-src-main@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 4X5jVQ6jqJz5Vvxt; Sat, 14 Sep 2024 20:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5jVQ4YxYz4MQx; Sat, 14 Sep 2024 20:30:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726345838; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qyC4BFgI+wqQZjpUYHTA7m4RzhaPHdcfaAI4lrRWdT4=; b=dxuKxFDxLK48YgIW6cRfo9JqORln5fm5Gi0Sqb8JveHZq7T2YQmvS5IpaBOMAmpsHvo27A CsMDkn/bY2KvK/kUPvMX7gTyErKVVxHcSyDLVpvdB99PNfg779IIMSrpvd+efMimEq5twy kDkpk/fSOvLJrqSFmHGoo3rEehswYo6PkT+PJeTeNKRKouTpur1JFosY9bi1rJ/cbiOdog e7D9S5FtLsNRHaIMSfyd36T5qOlI9oOagEQ9kHItvTnqxBUHQmEICHb6x3sl1L5re1k5ff 1TZfUQm8F+fWYnwxVWsvgXDfF+IXmFlKg3wEvn/rHxMuPleLKXQDJMea/kywJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726345838; a=rsa-sha256; cv=none; b=dhPOh4fP3qdtfWRmou96OeDcRskAGJpRksiZRiACGSCDnBtuuzDJd3w62tMf4g1+6Frl2Y 1tElCFIggUm1xfnuQNW9naS+uY1cDCVeiMQ9e73X5B4Wopg/QYKGGU4/I+9k9/1ss8qAzJ QgSP1WpSsn+9/SJ2K5MMPM0sBPQig7226LreUUePj864qWwMWukp3mEUWIJzkT0B4xnR5K hx1pjbCsxTg/Z+ThqgD87kvSoNA/mQExmb5pDT02ZBbUxmfS37y5pThrh8oWggWhb6Vml8 zcomG4KKS48WvJiIl+KQRlRzhwkUQeH+ufD7Enb6qmARwNHyAcOPxh6v9dd47w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726345838; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qyC4BFgI+wqQZjpUYHTA7m4RzhaPHdcfaAI4lrRWdT4=; b=K67VBOGNCpMWq3p/zjIuMIXdbOv6trdnG3Qzp988UQgF61liHGrrsGSWgVGt0BZ8xzg6RO PmJ6gZXrcmti+RAona0pi0fZywDdgc3GM2BaC4RnBmopHLyQdnRP+5O3txCMfRtnTu1isQ 4C3yHgZlMxJx+RJXNWCP9xSj1+CbdnimKgz7WcFXswNlWP7AL774aQ5RIVfS3aZkWyssVX shAKxXzVI65/bRbTNBp9IrWPu4mVqiOT8wjCyVlHP4Qbn0HBX+E4artwQAco+CUwxA/x5n gWg5uA88P+GPQDX9MBjxVvpkFEvPy9uW2dFJBdvi2ODTcVvbfeQviMkMODBgAg== 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 4X5jVQ3J88zhLL; Sat, 14 Sep 2024 20:30:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48EKUc9x049204; Sat, 14 Sep 2024 20:30:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48EKUcfJ049201; Sat, 14 Sep 2024 20:30:38 GMT (envelope-from git) Date: Sat, 14 Sep 2024 20:30:38 GMT Message-Id: <202409142030.48EKUcfJ049201@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: f0bcebe67ef6 - main - pflogd: Define structures removed in libpcap-1.10.5 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: f0bcebe67ef6cf9f104535d6cd9f151c1b61dd6a Auto-Submitted: auto-generated The branch main has been updated by jrm: URL: https://cgit.FreeBSD.org/src/commit/?id=f0bcebe67ef6cf9f104535d6cd9f151c1b61dd6a commit f0bcebe67ef6cf9f104535d6cd9f151c1b61dd6a Author: Joseph Mingrone AuthorDate: 2024-09-14 19:52:36 +0000 Commit: Joseph Mingrone CommitDate: 2024-09-14 20:28:27 +0000 pflogd: Define structures removed in libpcap-1.10.5 In libpcap-1.10.5, two structures that we rely on, pcap_timeval and pcap_sf_pkthdr, were made private. https://github.com/the-tcpdump-group/libpcap/commit/c2d8cbb977963be1f6cb07863e5bb59609e87fae Temporarily define them here to fix the build. kp and I will investigate a permanent solution at EuroBSDCon in Dublin. Reviewed by: kp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46676 --- contrib/pf/pflogd/pflogd.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/contrib/pf/pflogd/pflogd.h b/contrib/pf/pflogd/pflogd.h index 596e69692614..6e6b588d24bf 100644 --- a/contrib/pf/pflogd/pflogd.h +++ b/contrib/pf/pflogd/pflogd.h @@ -40,6 +40,19 @@ int priv_open_log(void); int priv_move_log(void); pcap_t *pcap_open_live_fd(int fd, int snaplen, char *ebuf); +/* XXX TODO: Investigate a permanent solution, rather than defining these two + structures here. */ +struct pcap_timeval { + bpf_u_int32 tv_sec; /* seconds */ + bpf_u_int32 tv_usec; /* microseconds */ +}; + +struct pcap_sf_pkthdr { + struct pcap_timeval ts; /* time stamp */ + bpf_u_int32 caplen; /* length of portion present */ + bpf_u_int32 len; /* length of this packet (off wire) */ +}; + void set_pcap_filter(void); /* File descriptor send/recv */ void send_fd(int, int); From nobody Sun Sep 15 06:07:33 2024 X-Original-To: dev-commits-src-main@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 4X5yJ62Ykrz5WY4V; Sun, 15 Sep 2024 06:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5yJ60D4Cz4Zmq; Sun, 15 Sep 2024 06:07:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726380454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tf0HJZja5FlcexAPJAhnlee7QfEu6Zwf1TpCmFcxJnU=; b=szF5WM8OxBz4NAfR9LmJCEh+RZ8LyfalvwnEgphubbadqxqlT375BVjjD2IjksY5t6wKmN gc5MBpOUpmZjnUYTEZ93zXYlCPdjND6K9BP8nXknNC+B8ux7+W4J0zkCIyM5/Zi5AA69fY ty3iSqqWvIa9QIswatmRm7aWkxXrmbQA4NhaS8qVPBWVacz6yP2SJRq89rep5EJgeykwJw Br8lWIKJvc1my1kBgP1A5XLX+Wqm3y36vUyu1FycpXkkUSs9smx1pYD4gyaZ9ihFQ4/TKo loFCCcpIJaqJ8hP4lK9vTTqZyv/7+xMtHYIWYQdoE60Ds7EmpOrT6Z5ccPVaQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726380454; a=rsa-sha256; cv=none; b=nAGJuYHwo8HdZ2ng8frwGN9AuieD9CshNMLf0l7jIEht4Oi3PdjakZF2UBxSyog9AMk7OB GmovZfltSqASD3agUpdUeY04YM43QUxcFsBgWBmp2JIemLEvmhdTSVseFZGEYWpbGpZGOx RGVSSXNPCrPJq3Z2cuBP8inZodJ+VMOQ4FGP29xTvTSLYbzzJAUnnM3hOcUfkNEZJf/5oR dUw+0OEHcwM/GiErxBdgtSJJwA2JA9TjEMUs3uRF7x46CRew0jcBz1HzTJNR8XPg7pQPm9 fBb1z6oC9seZGVXjmHUd9zUFveIjDF6oLStu7+Q9mJdrdYGiHvsHhk69ijajTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726380454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tf0HJZja5FlcexAPJAhnlee7QfEu6Zwf1TpCmFcxJnU=; b=h/qPPtbQArJzL7R5HHicjnea71lRYNQ2ujlH9HHRQpOz4UtwTAfUV7Z62QzjVsS5oef0Ig Mr2QBUh/sBIhLXBD3RsN6InZ1bQ1EPPUpnp4unNPSjLdvDC+gUwNuNwwsdTuD5bpZ2CvLB O9cxVIfjPKsJ1ocz/C2K+lo0CZ3qs+VBWjCjRnTVkkZcxN6HTTS9LSCaaCKYQP2lRz/zWD m0v5lrrycpX7YWjtHmwWrTG7xxp9+/IhWazenUXR1PdjZazsuPEst8Qhsyo00kUVuZcsTz AFgxJYfAWv5VRmy5eyyJNQ+Kr4YYSxlWoW+nnhTLYvBiPH6AqeQKUEbBVF9F3A== 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 4X5yJ56NKgzyl3; Sun, 15 Sep 2024 06:07:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48F67XWi029319; Sun, 15 Sep 2024 06:07:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48F67XXO029316; Sun, 15 Sep 2024 06:07:33 GMT (envelope-from git) Date: Sun, 15 Sep 2024 06:07:33 GMT Message-Id: <202409150607.48F67XXO029316@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: 4ccad5452058 - main - swap_pager: avoid meta_transfer race List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 4ccad5452058749a2a6ee5865ff485a3f11b20df Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=4ccad5452058749a2a6ee5865ff485a3f11b20df commit 4ccad5452058749a2a6ee5865ff485a3f11b20df Author: Doug Moore AuthorDate: 2024-09-15 06:00:00 +0000 Commit: Doug Moore CommitDate: 2024-09-15 06:00:00 +0000 swap_pager: avoid meta_transfer race Function swp_pager_meta_transfer expects that after dropping and reacquiring an object lock, the swap block it's processing still exists, and has not been removed from the trie and freed. Rewrite to avoid depending on that, by scrubbing, removing and freeing it before releasing the lock. Reviewed by: alc, markj Differential Revision: https://reviews.freebsd.org/D46629 --- sys/vm/swap_pager.c | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index c7a9f16a2953..64ae4ad78786 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -2199,9 +2199,11 @@ swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, { struct page_range range; struct swblk *sb; - daddr_t blk; + daddr_t blk, d[SWAP_META_PAGES]; vm_pindex_t offset, last; - int i, limit, start; + int d_mask, i, limit, start; + _Static_assert(8 * sizeof(d_mask) >= SWAP_META_PAGES, + "d_mask not big enough"); VM_OBJECT_ASSERT_WLOCKED(srcobject); VM_OBJECT_ASSERT_WLOCKED(dstobject); @@ -2210,39 +2212,50 @@ swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, return; swp_pager_init_freerange(&range); + d_mask = 0; offset = pindex; last = pindex + count; sb = swblk_start_limit(srcobject, pindex, last); start = (sb != NULL && sb->p < pindex) ? pindex - sb->p : 0; for (; sb != NULL; sb = swblk_start_limit(srcobject, pindex, last), start = 0) { - limit = MIN(last - sb->p, SWAP_META_PAGES); + pindex = sb->p; + MPASS(d_mask == 0); + limit = MIN(last - pindex, SWAP_META_PAGES); for (i = start; i < limit; i++) { if (sb->d[i] == SWAPBLK_NONE) continue; blk = swp_pager_meta_build(dstobject, - sb->p + i - offset, sb->d[i], true); + pindex + i - offset, sb->d[i], true); if (blk == sb->d[i]) { /* - * Destination has no swapblk and is not - * resident, so transfer source. - * swp_pager_meta_build() failed memory - * allocation already, likely to sleep in retry. + * Failed memory allocation stopped transfer; + * save this block for transfer with lock + * released. */ - VM_OBJECT_WUNLOCK(srcobject); - swp_pager_meta_build(dstobject, - sb->p + i - offset, sb->d[i], false); - VM_OBJECT_WLOCK(srcobject); + d[i] = blk; + d_mask |= 1 << i; } else if (blk != SWAPBLK_NONE) swp_pager_update_freerange(&range, sb->d[i]); sb->d[i] = SWAPBLK_NONE; } - pindex = sb->p + SWAP_META_PAGES; if (swp_pager_swblk_empty(sb, 0, start) && swp_pager_swblk_empty(sb, limit, SWAP_META_PAGES)) { swblk_lookup_remove(srcobject, sb); uma_zfree(swblk_zone, sb); } + if (d_mask != 0) { + /* Finish block transfer, with the lock released. */ + VM_OBJECT_WUNLOCK(srcobject); + do { + i = ffs(d_mask) - 1; + swp_pager_meta_build(dstobject, + pindex + i - offset, d[i], false); + d_mask &= ~(1 << i); + } while (d_mask != 0); + VM_OBJECT_WLOCK(srcobject); + } + pindex += SWAP_META_PAGES; } swp_pager_freeswapspace(&range); } From nobody Sun Sep 15 06:31:23 2024 X-Original-To: dev-commits-src-main@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 4X5yqb3SYnz5Wck0; Sun, 15 Sep 2024 06:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5yqb31WMz4d9v; Sun, 15 Sep 2024 06:31:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726381883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yr0jJtrwP3Nl0gxTVHhSGQEC6c0Q1tzWN7S3bdd7wAc=; b=Kq6oTvYSs+PVLDasy+ZdVkavcCZC3drU9jTdDxxKUXoqfHBSo90IoTWQNI+0+92IhKEjFX 2Qlz4pa1PsNyrY6KGwc9ugg6s971ODsoolUvZ2CAaVULeudT0/EJpKSP+pZQbKclTueds/ VMN/7S43SOWMy0Sl16OfEdzKNaVIVas9ScuQ7obQ7MR3afq0wMShJ3ejDC5ro0wWF4WjLy SaeNxCdaXd3Za9YnhKu8uyf1SJAimEkCEH8fYCJdC94ugrtZbX8MZv89ZAncP6thA0E1z/ YeSD6SCk/oau3N19pwD8OQlYi8nbaSGzyhNXRzZS5bt9X8TzfCPUIxDn/Slwxg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726381883; a=rsa-sha256; cv=none; b=j1XLxKvmg/kaYMsOatGvv43cv9r3NVeITvBDqITTf5wjRJvPyenUz1a0ofzqNHzvsSJwan 6OBryD2vgYBpJt+JXA96YcyJxneb0QarnHbFmPPJa2oBUSVpt3SsrGQ2haKckic+myrlIp 35UVReEIJ76Ntc5V+4Y5vcIb7QGZna4rzbxPINC3yw4iD/Dpdv1mUxhtYpJXLyfLCZyrru KX77fL5XePsVrHIL3MEmy7r6M7u8S8ZLiNkOzxvQ+j5uQp26Lptc/yh3bV8h7XdOU7QFsU EgcHbRGMV597wtstV+ThVWpLfxHOMpDV/Vz7ZltJ7B0Tj9RuCcbbzBZlbOD0gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726381883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yr0jJtrwP3Nl0gxTVHhSGQEC6c0Q1tzWN7S3bdd7wAc=; b=SDNdPWiwoN05/G6hBM3OZPYjGxuupmhRszK406YP3aWb3voNtMN3B6zySJXchKzpxPCRDS r7Qg5vzCj+3aqrMCWkAlhNAncZTaaqBHsxZns0LcX9RgAIpovxUDixn1Vq4sIF9m1JYGQ5 z9MxcUNX7gzGiSG7HbbB0KGfA67Nco3vD3UHm4uK4lS81iZcVq84Jknvh7Q616KyTCDJCX Mll5h79rgZl3YzCaLyH+KR4txrg2q5lRmtm+dejVI+RUuKnmydX0Ni/GeIGuFOkECAlCTh oyyM2ifXL87sfp7F23MikrEHeMVmHvYgsQ0BVx2Y3j7me8VmRfkFENmsSgJfOQ== 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 4X5yqb2dB4z1037; Sun, 15 Sep 2024 06:31:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48F6VNVr072745; Sun, 15 Sep 2024 06:31:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48F6VNsm072742; Sun, 15 Sep 2024 06:31:23 GMT (envelope-from git) Date: Sun, 15 Sep 2024 06:31:23 GMT Message-Id: <202409150631.48F6VNsm072742@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 3a2a5d606082 - main - getrlimit(2): document RLIMIT_UMTXP List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 3a2a5d606082dd782594b393c3920b9478698f07 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3a2a5d606082dd782594b393c3920b9478698f07 commit 3a2a5d606082dd782594b393c3920b9478698f07 Author: Konstantin Belousov AuthorDate: 2024-09-10 04:06:32 +0000 Commit: Konstantin Belousov CommitDate: 2024-09-15 06:30:00 +0000 getrlimit(2): document RLIMIT_UMTXP Reviewed by: olce Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D46619 --- lib/libsys/getrlimit.2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/libsys/getrlimit.2 b/lib/libsys/getrlimit.2 index 670da91a4484..d9b8b7cb896c 100644 --- a/lib/libsys/getrlimit.2 +++ b/lib/libsys/getrlimit.2 @@ -112,6 +112,9 @@ sysctl is set. Please see .Xr tuning 7 for a complete description of this sysctl. +.It Dv RLIMIT_UMTXP +The limit of the number of process-shared posix thread library objects +allocated by user id. .It Dv RLIMIT_VMEM An alias for .Dv RLIMIT_AS . From nobody Sun Sep 15 06:31:24 2024 X-Original-To: dev-commits-src-main@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 4X5yqc6JkWz5Wcgb; Sun, 15 Sep 2024 06:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X5yqc41Xtz4cvM; Sun, 15 Sep 2024 06:31:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726381884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=drmO+e9fcvK44HxkX1QED6gvqVoqZvwbWuL6f9ghRbQ=; b=f8oiNREBcpCoQuCgEJldVJ4bm7QQ+bse7Gm+W8lRVSR5zmOzx0g4wFoTdTfypCuCOCaEg6 +PGvuE2XzsqJnwgRp9TPkmgXlnkXEsNWzZh3xw0ME9jmxZiT1qbYuqY3YDNSYJJXnZkjqF J7eJ9zTN8PPkH31x5dj8eOmj9o4GCKo88vWUiWoj+YQNIOvYDW51XuccDyHLokCAypEzyx Bhkmfzb63a+AmMmdfMmRAOream+A3M82BZE/h0P9xTgIn/tZei4eLtwA8Im78hvaOa4SMU 3ULeree4aTasfhSIhGuq4WiDbMq/mheyCymS+62i+1300MDDmC0PHCiVOE+V+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726381884; a=rsa-sha256; cv=none; b=pHsbXjfoeeZCjEAi6dKMyob4qulLwtiOVuOgYLN6wAOs3TGnoYBeIy9bn1Oi4J0poOqXcg nsId+53kWzx56bo8pxt16oJcVFBRwgQwtaevz9SX409SV2VOtHQ8iiNmQ++OL9ejaeb7qx jZemfhlX7eKpysP+Y/Bj64dbCvx2lcocU+VTSdiWcIWjfnlbnBG0hnBoqCRq417i0dglfn TRJJfMVIslU5Qiz9U+abJ+Giw1zNv6V596tApod3lKB4tW3nV51cELzckGRBQqbZdpbxuf H63tCRN5MzTUAY760nAykbHUPMjt7fj02sFt1MESsJbykfTASgTpnmVbw2LeqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726381884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=drmO+e9fcvK44HxkX1QED6gvqVoqZvwbWuL6f9ghRbQ=; b=t9Y+HnlxzVLwuuMJIV1czMGGLD6rd3UpIr2jYmKJbUKX2h++sb/tHrxVLTPjQDhhk52eU9 HEsv97l8RswjfGrwhgkJQZPs/T/Iyi4Fzm27ocODqGhulcfyvGe0915VeQFyqvGd+Ee9II K6jQE8h7uknY2MByxeSHnbp6iUa2HwX+5P0p++czNUlBDKOJTlhlqOGlBRzNbCH8MUut24 DGKWcAcZhs5bihdX1kjwrLg5OerA9j8c/fViRcSxq/PxArHSlukrch1YF2bn4ufc9bh3dI JzcnX67MrVJ7+5aVjNdOXgwFX3ghzwGL3Lqqd2U5Rb8vDZUYFSzE+1bvf4XWuw== 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 4X5yqc3cg9z1038; Sun, 15 Sep 2024 06:31:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48F6VOIa072796; Sun, 15 Sep 2024 06:31:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48F6VOH0072793; Sun, 15 Sep 2024 06:31:24 GMT (envelope-from git) Date: Sun, 15 Sep 2024 06:31:24 GMT Message-Id: <202409150631.48F6VOH0072793@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: e3b777534bae - main - procstat(1): make rlimit_param[] size assertion automatic List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: e3b777534baeb69a1ee88d0b18c76a68eacdb34e Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e3b777534baeb69a1ee88d0b18c76a68eacdb34e commit e3b777534baeb69a1ee88d0b18c76a68eacdb34e Author: Konstantin Belousov AuthorDate: 2024-09-14 13:15:20 +0000 Commit: Konstantin Belousov CommitDate: 2024-09-15 06:30:13 +0000 procstat(1): make rlimit_param[] size assertion automatic Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D46619 --- usr.bin/procstat/procstat_rlimit.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/usr.bin/procstat/procstat_rlimit.c b/usr.bin/procstat/procstat_rlimit.c index 1881f8ddbebf..3900ef7dcc14 100644 --- a/usr.bin/procstat/procstat_rlimit.c +++ b/usr.bin/procstat/procstat_rlimit.c @@ -47,7 +47,7 @@ static struct { const char *name; const char *suffix; -} rlimit_param[15] = { +} rlimit_param[] = { {"cputime", "sec"}, {"filesize", "B "}, {"datasize", "B "}, @@ -65,9 +65,8 @@ static struct { {"umtxp", " "}, }; -#if RLIM_NLIMITS > 15 -#error "Resource limits have grown. Add new entries to rlimit_param[]." -#endif +_Static_assert(nitems(rlimit_param) == RLIM_NLIMITS, + "Resource limits have grown. Add new entries to rlimit_param[]."); static const char * humanize_rlimit(int indx, rlim_t limit) From nobody Sun Sep 15 15:00:35 2024 X-Original-To: dev-commits-src-main@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 4X6B780ljVz5Wmhb; Sun, 15 Sep 2024 15:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X6B775z8bz4PPj; Sun, 15 Sep 2024 15:00:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726412435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Qee0wj8XNmd4wiT/KVt9nw/S430WU61oAc+Q/nzMstk=; b=KFCwjRPOY6hskb2yL5bKaR/Uw4PF6cyJ3LuDLprVfHHCtqLAadG2s6kJkIvEpIhiGnksCx LJ1UbxS6+Z9pVnz34/sCEw0YLXDeCvYp34oIDp626eaMtojKLGIcIsXJzpYNAzs+kZDMhy fCIzJ5HRVCGvpwfEqN6qdWPutVQyDcD2DmLcAmGpxLmAAs5ccyMrAVivOQLEWGAtu34eeB nKt3kIpBQVVpwiB/W8hLCg5CIMYg+qWBe6BEtZHC9qEVAmkPAAZZDXTM3WHokrPYqBkYQd qIv88xUtfRYWmbGuG5IpCvh1Cf9gchOvmQ4K0KzZKovpg07Mk1kEu4EHctaoAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726412435; a=rsa-sha256; cv=none; b=khFRTlF3yThm8Pw7NkBhtnaEddCYRbO5VmHyWSf4/15WzebxKn+tT1ck+96McIruJS89CX 30/LlJdTJB5BUxccpwCJtRIBo6EN/yRTEMb/1K8dOKCKHdslfTqnKOvRzi9shH3qJ7c+bb hkJbl0FEEgq++9rwpldeEtpmQu/s5mUqU27fFBOLxvYJ+0P87odOcjLhilMQtp2gnyrweW IVsGlMeNTfr85/+TR+c7bBA/dSPebiXWfY0ZxZnTNud8AS0ZkbCSYxgQLMOVsm5zQiag/V 2xSBaa3TGhivOzLq9/sU6+okdopBflwu2z8eNxt+Ycnw+VyPejMn9fb5wFkT9Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726412435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Qee0wj8XNmd4wiT/KVt9nw/S430WU61oAc+Q/nzMstk=; b=vKEU2GVY0tqs6AqwWwjwANLoGspDUDikSdk70GUi7razSXXQ/WBw1zGPGoBVwrNSQY/Rsj 8Dk+w9GfnX9OqsRSDXhI3jGVRU7ErcTpzEaMWsaEMiBFEIXDP2vMJgRi4R6ZubC1kew8ke mQd4PkoBfR9Pej/ErFuduqgBp5k8CeigJTbRNt1mBYzUw52v/2e/EwOYuRHPwp6mR1AaEK lG82TgUBn1Ggi18+/VZpuS+zEHGS+QRv9IRp41Fz6D4TBuw324ci8dMF68mpbagx2fkeLD 7flMPRyBsgdW3CYFsd1ia3w924lpF/hIUbfeghcdscuClyGwCt10e61EAxmlEA== 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 4X6B775bDWzFsQ; Sun, 15 Sep 2024 15:00:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48FF0ZRc042001; Sun, 15 Sep 2024 15:00:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48FF0ZMw041998; Sun, 15 Sep 2024 15:00:35 GMT (envelope-from git) Date: Sun, 15 Sep 2024 15:00:35 GMT Message-Id: <202409151500.48FF0ZMw041998@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 8276c6ea9cf7 - main - softdep_mount: on journal start failure, report the mount point path List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 8276c6ea9cf7cc3c7a0bd5a50fd1db298656f514 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8276c6ea9cf7cc3c7a0bd5a50fd1db298656f514 commit 8276c6ea9cf7cc3c7a0bd5a50fd1db298656f514 Author: Konstantin Belousov AuthorDate: 2024-09-15 08:05:42 +0000 Commit: Konstantin Belousov CommitDate: 2024-09-15 14:59:02 +0000 softdep_mount: on journal start failure, report the mount point path Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/ufs/ffs/ffs_softdep.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 86c90000e8d2..77d552ad5dff 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -2631,7 +2631,8 @@ softdep_mount(struct vnode *devvp, if ((fs->fs_flags & FS_SUJ) && (error = journal_mount(mp, fs, cred)) != 0) { - printf("Failed to start journal: %d\n", error); + printf("%s: failed to start journal: %d\n", + mp->mnt_stat.f_mntonname, error); softdep_unmount(mp); return (error); } From nobody Sun Sep 15 15:00:36 2024 X-Original-To: dev-commits-src-main@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 4X6B7923q4z5WmfM; Sun, 15 Sep 2024 15:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X6B7874w4z4PPm; Sun, 15 Sep 2024 15:00:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726412437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A58uKQVS/CIUtJV12baVkcERXbsRdq9IlBFecjQ5UyU=; b=enzcHCp/7PxLdBS+WnmiR9jFVmBVb0kDlGbQCbHzUOzFmdkXUxEUJIfdHtNY0WtQTx9DEm JqWNXha1A8YfxELEJu1yZi68b1xRTqXvjXgqF+DDBgt8hqoG4M7QdgHiwVeimSagN/jcUV GZ1HcT9mN5+iwlysT20DgbMmYJ3i4dZLrKWngyD37f23t/+5LZujG3hYY5dHy6pX0/fiq+ nu3sC7D7lxPx0+WNu521+tJ0TCLSEKYnk0cO+rl14bIUBlJxqBJVmqE1Qi37GILtNBmA3b EEQyhulraWBDIIYnx7DYSEOXKODM7gPjIGw0lUXyhHf+O3y5SM4drSxdwIMhPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1726412437; a=rsa-sha256; cv=none; b=IQGwYfr/6zfbqmP9zCbTttfpzmkMD6A7/LrEfF8lhCf7PETResk1+pS38Q45DjB5AdeNyJ 47FkQn2W9/1N3lMO345gOiLVSL961ijT4EW4iHZ0HvqKR9rK3jlZIvcnUXBASsA446kyHL BUwCHbD6uzl/RD0uD/ES1U+j77g38bD9PCIMnVcwfRRO7/mjNXLnCUNuC/wsfD2bM2e1bp hRljCNSRSRbHnIwxAc2JcdCX8HS1iD0K2VWgwD77mz06x+VoG5z0MgsjPMDf5kDjdyadjQ WrH+5dR/OEhBX1a7Pe1JQF+/l0bIuQ4p3CQJwrn1pZx6YiP9/WetR4o1+1IVug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1726412437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A58uKQVS/CIUtJV12baVkcERXbsRdq9IlBFecjQ5UyU=; b=LuUHq5AiswlbLGrZLszR4J7j59Y4GsfPRdJ7OJ/+OGb9b9KVjBHD/3ttk0Jv18nk7VyEX8 EE8Z9hxpejxsT+wuH44rq5RnTPlWCv7qMHmDYONwDgjEma58wpeQELCIzYdwMjVS2Biip2 cdQkOCTEUBaN6UE179MLwFDpJTyYPA1xfwpk8i8T+XT/OvA33tYgBHd62v6a3ISwWYRbzf G0Q0HTqEMZP+/rZOh71WEEm0pPVSWCQ7xF0Q6t5KOxxphwanAddImPadNfCysP7DeU+HXe eWkzzgb7ZS0+YLzbmEd30R6bbNbZqTQ1o94R8ZZchyhiYPlqG1IHOH0FI0BqbQ== 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 4X6B786gVrzFvc; Sun, 15 Sep 2024 15:00:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48FF0aLP042054; Sun, 15 Sep 2024 15:00:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48FF0akk042051; Sun, 15 Sep 2024 15:00:36 GMT (envelope-from git) Date: Sun, 15 Sep 2024 15:00:36 GMT Message-Id: <202409151500.48FF0akk042051@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 4b273a7fb9e6 - main - softdep_mount: report failure of the softdepflush thread creation List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 4b273a7fb9e6d9a006c5ac7cbd27f5d006569edb Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4b273a7fb9e6d9a006c5ac7cbd27f5d006569edb commit 4b273a7fb9e6d9a006c5ac7cbd27f5d006569edb Author: Konstantin Belousov AuthorDate: 2024-09-15 08:06:31 +0000 Commit: Konstantin Belousov CommitDate: 2024-09-15 14:59:10 +0000 softdep_mount: report failure of the softdepflush thread creation and do not hang waiting forever for an ack from non-existing thread. PR: 281511 Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/ufs/ffs/ffs_softdep.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 77d552ad5dff..97f50867b012 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -2642,10 +2642,18 @@ softdep_mount(struct vnode *devvp, ACQUIRE_LOCK(ump); ump->softdep_flags |= FLUSH_STARTING; FREE_LOCK(ump); - kproc_kthread_add(&softdep_flush, mp, &bufdaemonproc, + error = kproc_kthread_add(&softdep_flush, mp, &bufdaemonproc, &ump->softdep_flushtd, 0, 0, "softdepflush", "%s worker", mp->mnt_stat.f_mntonname); ACQUIRE_LOCK(ump); + if (error != 0) { + printf("%s: failed to start softdepflush thread: %d\n", + mp->mnt_stat.f_mntonname, error); + ump->softdep_flags &= ~FLUSH_STARTING; + FREE_LOCK(ump); + softdep_unmount(mp); + return (error); + } while ((ump->softdep_flags & FLUSH_STARTING) != 0) { msleep(&ump->softdep_flushtd, LOCK_PTR(ump), PVM, "sdstart", hz / 2);