From nobody Wed Jul 15 09:32:42 2026 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 4h0WDW1rJmz6lBvP for ; Wed, 15 Jul 2026 09:32: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h0WDW0LsKz4KGp for ; Wed, 15 Jul 2026 09:32:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784107963; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XuvwAgjisGsM+iW+goTTYmCePGHAPXiIGSP5+rMorqc=; b=e47OtNziBzpDBpvh5cZ9Rq0yzUJ39ptM7lXD2tXLnWHG3LZIpKr8vsTJkY48GtBumpK3G0 Y1/zP8Hl9+qTXN87UVo3eTLkmpbGhgo5WvXg3wf6Z2YC6GbJrLNlfSnZRPKN6OGbpAkP0Y FCdnLnBp34GnV/DDStC94OsELEeAizpytxhI2k4Xy+D4ufLmcXTNimBGmRV4Q6lV4bqhGN X0zH4ewwaOEZItcVqXdzBxdMOqwmkCd9iJC7b5QEd+Z0HzgW2A3J/CR+jjjnjKdUbWqZw0 5f+wJoIJAYkzN24vIWXLwMQ4EFGcyGrKBYnHaWZL7cmwUsYwm2kkpDdOGH6KEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1784107963; a=rsa-sha256; cv=none; b=wnKX/z4cSMWgqxxpD+zYimzp57tIkAsyyUWeTNVR7/fLyqi1RalN5Q5HvXwO6CoPeIi6pX ru8NOkFzE30gNlsHn9OZpyoFeQm8+KL4YrfrlfAEWwztcCtihCkCGIpva/JD5K2jOmf7rF UpXmo5TxiNLpn5TBiG2xTkg6kS/977TAmEFGEnf5qYC/KDK6VrKQnN46OMI80BKybYG6XM hkEMKXtvPZtEfp7VfkuKP40ew3ziqqA+i6bBtVJnd/RSOO+sBwnE5MfB2wF+S3f3aWW3LU o7rh6qXhHHDN9FfNpyj0Vr6Xk+Tgm15dtFoOdLfuhiErfSEU4LXIGTiBcFltew== 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=1784107963; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XuvwAgjisGsM+iW+goTTYmCePGHAPXiIGSP5+rMorqc=; b=sm+2dysxFuoMxOJ0+SlPUDw4X/MLGqlukv1K5zhe3Fzi7cbBn2ZKCk8YefaJ/FqXSw6BUu 9Bd/JopQmbwTIvA2P5XwLTGUys1rxnGUCCz7QIRXkuxUWBVY5Y/vEzbWKULN8HtcTsvCkl hTISBelqPK2OmxEdD0DO5RbfnkdG5a2gh8bKGUR1Qr8HNcG0oZPDPVrEKfnt4Cf6GxOSKO x7abA7CNQmZB20VLzVLXfez+a0mzVX0Q4Vp2xl+adqHCftCIdAm1aX/jAvvNnowB3g2aaW bAIWajHcCT2G5u8AVI7m+eV31RMWnyvtfSPsGCGLzW02EJOI+2BTl8wLt+NkuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h0WDV6Wf3z9Tn for ; Wed, 15 Jul 2026 09:32:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45416 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 15 Jul 2026 09:32:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brooks Davis Subject: git: db3eca2be206 - main - exterrctl(2): add kern_exterrctl 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: db3eca2be2067f7e81d65686b33dcbd475aed363 Auto-Submitted: auto-generated Date: Wed, 15 Jul 2026 09:32:42 +0000 Message-Id: <6a5753ba.45416.2e3347a4@gitrepo.freebsd.org> The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=db3eca2be2067f7e81d65686b33dcbd475aed363 commit db3eca2be2067f7e81d65686b33dcbd475aed363 Author: Brooks Davis AuthorDate: 2026-07-15 08:43:50 +0000 Commit: Brooks Davis CommitDate: 2026-07-15 09:32:16 +0000 exterrctl(2): add kern_exterrctl Reviewed by: kib Effort: CHERI upstreaming Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D58055 --- sys/kern/sys_generic.c | 16 +++++++++++----- sys/sys/syscallsubr.h | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index bbfeebbe2f2e..c867867f2618 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -2310,25 +2310,31 @@ exterr_copyout(struct thread *td) int sys_exterrctl(struct thread *td, struct exterrctl_args *uap) +{ + return (kern_exterrctl(td, uap->op, uap->flags, uap->ptr)); +} + +int +kern_exterrctl(struct thread *td, u_int op, u_int flags, void *ptr) { uint32_t ver; int error; - if ((uap->flags & ~(EXTERRCTLF_FORCE)) != 0) + if ((flags & ~(EXTERRCTLF_FORCE)) != 0) return (EINVAL); - switch (uap->op) { + switch (op) { case EXTERRCTL_ENABLE: if ((td->td_pflags2 & TDP2_UEXTERR) != 0 && - (uap->flags & EXTERRCTLF_FORCE) == 0) + (flags & EXTERRCTLF_FORCE) == 0) return (EBUSY); td->td_pflags2 &= ~TDP2_UEXTERR; - error = copyin(uap->ptr, &ver, sizeof(ver)); + error = copyin(ptr, &ver, sizeof(ver)); if (error != 0) return (error); if (ver != UEXTERROR_VER) return (EINVAL); td->td_pflags2 |= TDP2_UEXTERR; - td->td_exterr_ptr = uap->ptr; + td->td_exterr_ptr = ptr; return (0); case EXTERRCTL_DISABLE: if ((td->td_pflags2 & TDP2_UEXTERR) == 0) diff --git a/sys/sys/syscallsubr.h b/sys/sys/syscallsubr.h index f0652806b999..e7a118195b53 100644 --- a/sys/sys/syscallsubr.h +++ b/sys/sys/syscallsubr.h @@ -167,6 +167,7 @@ int kern_extattr_set_fp(struct thread *td, struct file *fp, int kern_extattr_set_path(struct thread *td, const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes, int follow, enum uio_seg pathseg); +int kern_exterrctl(struct thread *td, u_int op, u_int flags, void *ptr); int kern_fchmodat(struct thread *td, int fd, const char *path, enum uio_seg pathseg, mode_t mode, int flag); int kern_fchownat(struct thread *td, int fd, const char *path,