From nobody Tue Jun 3 04:07:34 2025 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 4bBHHC0LWyz5xxYn; Tue, 03 Jun 2025 04:07: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 4bBHHB6lzMz3hYD; Tue, 03 Jun 2025 04: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=1748923655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mPs2wHm2SQxFXpRFwtgNC773TLo58Aq3eWitTEAaQ00=; b=bHsK0Vxiv5NTOPOQ+dLZRjXV4Am2l3vxBcHmLovmD7w8te+gBzU1+IDcXth1CgSEVEKZ7P iPw6VsDITcsSmqT2LDuMA2YYgKQFJ/s8vXrhivVezVwh1IFTJHGRfOnk2uCxtE+ng6asY3 I7frMRj2xcE5p9bDnfLPYGDScKZ0uuwnE2OeGDsdsHh+BbBs6QgOIdj5VoIHH5sk82yTMz uQ9ckfEKzG9VJkr3ugYH0+QvpjejsL/EaFiAd+376I7pshVfSK861snLkFVJ/SS/kAVrkq ohB5fIaOm8c1Nj5ZEUcE3v5h36p63dVn3eMNgEfVeSd2cFxN8dA+bHBi5v9pzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748923655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mPs2wHm2SQxFXpRFwtgNC773TLo58Aq3eWitTEAaQ00=; b=YVYXKvhiHHmVQJbXUShlOMDss58o2aA7Z/1qHq/eDRoesxLiMAkum1wTf+K9OD0S/CqDT8 8sZK0U0UO3tlH/718D2Gwcy/x5cb6QtKZ1iJjXavU/ZklHxXuJisVNlQ+hKDucIAMmQTBf osu61T2/v2y5VWibdE2/6XByx5y6sbh492z6e8q6T4F3J//tx+Wgy+ZGAeCaw5YP53K+cJ Xa80UHB+uV/f2gIQCgcxFisOY8t56pWJjCr/gLPi3vVI3GlsnQeywkq717/Z7B/bhwfYQO jnrGbVka09hu6Q32z1MB0YWH+rLKWhEkIC/5CWYjQjIKGpqYkyVv76WnvDYMvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748923655; a=rsa-sha256; cv=none; b=cjUC8hLSOCS/ftThkj15hWM7VOD9DfA/ompSVMTKhJkocbfxWTxP1425aE6YCgkdyxEtoP 2igy990o4OmWlK0pd2+BQn+p6vY3odFdArzxielfPhSyqfxCk+v+YjrOMEUgVx8KiCYhrW 1HBqqqEg1udCSdTJDXsRkZM7Q/VJQLp7bZpaRMmaPBjnDdWoePDtdE9WnH64G9vxR478iW 0Eo2fJsqQNjcxumABOexvCzkX0kFCTXRD/doWJqoBKzgZ1veVRUrNN1hwVCE/nnfOyGVZg Ch74G3H1e54fffb9SJVg+jJc13/YziI1eApzWTJbsDpw2v+oyx4NbjYu13mxtw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bBHHB69jyz6pp; Tue, 03 Jun 2025 04:07: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 55347Ymf071028; Tue, 3 Jun 2025 04:07:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55347YiF071025; Tue, 3 Jun 2025 04:07:34 GMT (envelope-from git) Date: Tue, 3 Jun 2025 04:07:34 GMT Message-Id: <202506030407.55347YiF071025@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: b3a93154db74 - main - Extract exterr_to_ue() 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: b3a93154db74e44d44d0210c728e12c713393a50 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b3a93154db74e44d44d0210c728e12c713393a50 commit b3a93154db74e44d44d0210c728e12c713393a50 Author: Konstantin Belousov AuthorDate: 2025-05-31 21:08:57 +0000 Commit: Konstantin Belousov CommitDate: 2025-06-03 02:43:58 +0000 Extract exterr_to_ue() Reviewed by: brooks Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D50633 --- sys/kern/sys_generic.c | 28 +++++++++++++++++++--------- sys/sys/exterrvar.h | 2 ++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index 91bf3e93fa7c..ec61d0bdc541 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -2202,6 +2202,23 @@ file_kcmp_generic(struct file *fp1, struct file *fp2, struct thread *td) return (kcmp_cmp((uintptr_t)fp1->f_data, (uintptr_t)fp2->f_data)); } +int +exterr_to_ue(struct thread *td, struct uexterror *ue) +{ + if ((td->td_pflags2 & TDP2_EXTERR) == 0) + return (ENOENT); + + memset(ue, 0, sizeof(*ue)); + ue->error = td->td_kexterr.error; + ue->cat = td->td_kexterr.cat; + ue->src_line = td->td_kexterr.src_line; + ue->p1 = td->td_kexterr.p1; + ue->p2 = td->td_kexterr.p2; + if (td->td_kexterr.msg != NULL) + strlcpy(ue->msg, td->td_kexterr.msg, sizeof(ue->msg)); + return (0); +} + void exterr_copyout(struct thread *td) { @@ -2215,18 +2232,11 @@ exterr_copyout(struct thread *td) uloc = (char *)td->td_exterr_ptr + __offsetof(struct uexterror, error); - if ((td->td_pflags2 & TDP2_EXTERR) == 0) { + error = exterr_to_ue(td, &ue); + if (error != 0) { ue.error = 0; sz = sizeof(ue.error); } else { - memset(&ue, 0, sizeof(ue)); - ue.error = td->td_kexterr.error; - ue.cat = td->td_kexterr.cat; - ue.src_line = td->td_kexterr.src_line; - ue.p1 = td->td_kexterr.p1; - ue.p2 = td->td_kexterr.p2; - if (td->td_kexterr.msg != NULL) - strlcpy(ue.msg, td->td_kexterr.msg, sizeof(ue.msg)); sz = sizeof(ue) - __offsetof(struct uexterror, error); } error = copyout(&ue.error, uloc, sz); diff --git a/sys/sys/exterrvar.h b/sys/sys/exterrvar.h index 5f55e377239a..3fe2c7446ed1 100644 --- a/sys/sys/exterrvar.h +++ b/sys/sys/exterrvar.h @@ -62,6 +62,8 @@ struct uexterror { #define SET_ERROR0(eerror, mmsg) SET_ERROR2(eerror, mmsg, 0, 0) #define SET_ERROR1(eerror, mmsg, pp1) SET_ERROR2(eerror, mmsg, pp1, 0) +int exterr_to_ue(struct thread *td, struct uexterror *ue); + #else /* _KERNEL */ __BEGIN_DECLS