From nobody Sat Jun 14 12:50:54 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bKGMz1qjMz5MQnt; Sat, 14 Jun 2025 12:50:55 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bKGMy666rz3MYV; Sat, 14 Jun 2025 12:50:54 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749905454; h=from:from:reply-to:subject: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=+p0JlRm/1skfgYGlyj4eIdvOyK/n9ORGzvMe5rqN8zQ=; b=Qg2JeZqEyVeMhFG4+V/XBzieMSP0Lu+HLHfbcyyeCAWHuP1DfJse8LXpUzqaussjrRJOyj 6JxVID+XsweAbyxcvb9ZPdpdl8sqS2KipPINSUtrc1C8ABpukoS3BlzkQBROqJB5hcXFe1 J48PlT29fJMjM8/q22wR/UMcABTAaVyYXGYIRb311jgCP4+jh7Xpqeg2YfNdrhabWsopDA fjw6Eu1XvfDDd8BIMJikQfVmfIdnwVhy9sA0ynpr2VgvUe7npjECBASeiFj69RyidQE5C2 X6kAbYTDzBf0rMNVHs8Mr2oTrceGnly1aGzVPn2ppRWRBvOMfYcOmz3B7CPGww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749905454; h=from:from:reply-to:subject: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=+p0JlRm/1skfgYGlyj4eIdvOyK/n9ORGzvMe5rqN8zQ=; b=GBEYFKzQAYnVVm9qUvLoFpNFasqhNjeyYD0CTaeng0CSK6lc4vqcoQotAWXoJQ6+vbK54c hyQcVj5pMZDcV1OxMmyzDY2mYHw8bgsnc5yurN6TU3r8EDxFe4suZQOlNCXYGbqr3U7Zqe fMrglI3qMvSIKFq0RiMQkRGKz/cSbZd4JR1oawzLRDrctyNylCBwpdLM6TbQjcr7+msLUd ruJwIUBoq5lJeM+e33viaXrwSRHQ1VY5oa/UEKSL4psTesm4HZ1NmYPX9NWDH5DbObl+6D hsgzAWPlb1C2eWlW3U1qSi+YghGny4Ux0y8GcbNUvEoLvAamOWgnLAloyVCCOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749905454; a=rsa-sha256; cv=none; b=L0hwqR026NdBl1wK/oQPMSfjPKlq/4C40LtVqw9bPiyqZmTENO0hLaKGSPu8LIH+LQ1nhQ 6V3tJfx4qFFGcRu/qWglho33ofGpxldwns3qbMIkyvMn5Es843oiP+lu9wOJ/VhwdUTxkK 9tkfIKgZERfMDGxk1RntcvafeHLYUDjq7lK2yc4OAjI7IVCQcT1jYCn2kRDkfwYIPKQWlS iZVqExKDJc9pODkbeBULBy3IyDZYIEKGRL03ufqA1izBvimHy4wpVTOXRirxPHFbQTVzNZ kqVlVVT4pEL5LpI06amQEHg7p2q1Y+ivgZR/NsiObDJTNWSEn3kfyuzgwgc9iQ== Received: from [10.201.5.108] (unknown [216.191.123.182]) (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 4bKGMy3fLwzMBc; Sat, 14 Jun 2025 12:50:54 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <0003a97e-60ed-4868-8844-0a0346bc97ee@FreeBSD.org> Date: Sat, 14 Jun 2025 08:50:54 -0400 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: 4e207e3849d4 - main - exterr: make SET_ERRORX() macros an expression evaluating to the errno Content-Language: en-US To: Konstantin Belousov , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202506131940.55DJeTa1046740@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: <202506131940.55DJeTa1046740@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 6/13/25 15:40, Konstantin Belousov wrote: > The branch main has been updated by kib: > > URL: https://cgit.FreeBSD.org/src/commit/?id=4e207e3849d47648ced17da16aad39355b99d9b2 > > commit 4e207e3849d47648ced17da16aad39355b99d9b2 > Author: Konstantin Belousov > AuthorDate: 2025-06-13 17:32:50 +0000 > Commit: Konstantin Belousov > CommitDate: 2025-06-13 19:39:55 +0000 > > exterr: make SET_ERRORX() macros an expression evaluating to the errno > > And move the actual td_kexterr fill code into the function, saving some > text. > > Suggested and reviewed by: markj > Sponsored by: The FreeBSD Foundation > Differential revision: https://reviews.freebsd.org/D50836 > --- > sys/kern/sys_generic.c | 20 ++++++++++++++++++++ > sys/sys/exterrvar.h | 22 +++++++--------------- > 2 files changed, 27 insertions(+), 15 deletions(-) > > diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c > index ec61d0bdc541..d31ff3b939cc 100644 > --- a/sys/kern/sys_generic.c > +++ b/sys/kern/sys_generic.c > @@ -2281,3 +2281,23 @@ sys_exterrctl(struct thread *td, struct exterrctl_args *uap) > return (EINVAL); > } > } > + > +int > +exterr_set(int eerror, int category, const char *mmsg, uintptr_t pp1, > + uintptr_t pp2, int line) > +{ > + struct thread *td; > + > + td = curthread; > + if ((td->td_pflags2 & TDP2_UEXTERR) != 0) { > + td->td_pflags2 |= TDP2_EXTERR; > + td->td_kexterr.error = eerror; > + td->td_kexterr.cat = category; > + td->td_kexterr.msg = mmsg; > + td->td_kexterr.p1 = pp1; > + td->td_kexterr.p2 = pp2; > + td->td_kexterr.src_line = line; > + ktrexterr(td); > + } > + return (eerror); > +} > diff --git a/sys/sys/exterrvar.h b/sys/sys/exterrvar.h > index 4b168446e23b..d3c2c7c92d06 100644 > --- a/sys/sys/exterrvar.h > +++ b/sys/sys/exterrvar.h > @@ -31,27 +31,19 @@ > #endif > > #ifdef BLOAT_KERNEL_WITH_EXTERR > -#define SET_ERROR_MSG(mmsg) _Td->td_kexterr.msg = mmsg > +#define SET_ERROR_MSG(mmsg) (mmsg) > #else > -#define SET_ERROR_MSG(mmsg) _Td->td_kexterr.msg = NULL > +#define SET_ERROR_MSG(mmsg) NULL > #endif > > -#define SET_ERROR2(eerror, mmsg, pp1, pp2) do { \ > - struct thread *_Td = curthread; \ > - if ((_Td->td_pflags2 & TDP2_UEXTERR) != 0) { \ > - _Td->td_pflags2 |= TDP2_EXTERR; \ > - _Td->td_kexterr.error = eerror; \ > - _Td->td_kexterr.cat = EXTERR_CATEGORY; \ > - SET_ERROR_MSG(mmsg); \ > - _Td->td_kexterr.p1 = (uintptr_t)pp1; \ > - _Td->td_kexterr.p2 = (uintptr_t)pp2; \ > - _Td->td_kexterr.src_line = __LINE__; \ > - ktrexterr(_Td); \ > - } \ > -} while (0) > +#define SET_ERROR2(eerror, mmsg, pp1, pp2) \ > + exterr_set(eerror, EXTERR_CATEGORY, SET_ERROR_MSG(mmsg), \ > + (uintptr_t)(pp1), (uintptr_t)(pp2), __LINE__) > #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_set(int eerror, int category, const char *mmsg, uintptr_t pp1, > + uintptr_t pp2, int line); > int exterr_to_ue(struct thread *td, struct uexterror *ue); > void ktrexterr(struct thread *td); BTW, you could have a single SET_ERROR(eerror, mmsg, ...) wrapper around SET_ERRORx following what is done for CTR() (vs CTRx()). -- John Baldwin