From nobody Mon Apr 28 00:05:09 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 4Zm3c63w1Rz5vWTh; Mon, 28 Apr 2025 00:05: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 4Zm3c60FdPz3wPL; Mon, 28 Apr 2025 00:05:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745798710; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aNukYZXlkq4JVvcAIT10T3e8UZN87bnZ5RfocGMeJvw=; b=Pf4IxELV965hkL5YFLWmczHg/IjL9PVlHAZKPLKTnMVbL6obDYjKLcqZediJvtvLbNAK7R tiaQztpTlaR0ZDrB+ZQJ+qsBFK4ZkJJEvtRfbdvK1tCM9B00V23Zo9E5E8I9wb7XYe58zH 1l+TeWMmDXCfPwc9yNifKlMuAjWnbGkSJA/S8kwiyRRIA2/sUZ2hfBYO6cWg17JRFisMl5 Ks2XVXgiECy+M7uqlF+eyvokm89jM+EFghIwxaWyohoWD/ZeMZGQ0YXOY0n1w0Q6wXlsbb RqHFYwHvEQUIinOcdT8OtGyk1wOGKhKZB0WymlhDh5Ja060/acItfn6sreaanQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745798710; a=rsa-sha256; cv=none; b=n5B4iEKm/GBhkj690A1fG0QHJDiS4tkfcgcfTuFoT70wxBg+nN3iDzNlTYoYKRgpGMqh37 DVVM9MDccSscfRHD16sydcTM21Ww00nkRgDHBVEqsa9ab4TZMox9tQTFfmcEt9isWmUHMS WyYIeZGi1OWjdQReVUUyFyqnYizACGTRzv1R0w+q04MWUrczlgzcaQj1sykM2bdUXlyseJ 5nEUm7aKhaMaJX0NZweEd4lOniecfKfV+FjjfM05z1l9IK8NLsb8vt3QpE9L5+06eqKqfX jphclusTo2Bak8M8d6HaX3IESwWaLlVy2mLdTohJNIsuig4LF+SqwKJorWU4WA== 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=1745798710; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aNukYZXlkq4JVvcAIT10T3e8UZN87bnZ5RfocGMeJvw=; b=lxih3bkIObXn38UKNvvRLLZo7FP12ltwgLD1i+iKZ5G9PkC6LbubLgoxYaFJD/X7kx9M9m pbTBgFe8+0hTkvhL9ic6T+hqQ/Ay1PZ0boVNgnhikN8nGinNNNTRJoAkk+8QS/ML52MOgm uZAwcx+RWlgYk8MK6jL5fucKoQAUnsg7++459jUVbifofG3S5zfpXERp3du1dLZXW/whD8 rbF37vonkuYlPRhKyRk1tJGAHxj7wcL+zHFMuggvSa5NwNWEHFz3EGmBTLenK9kChFTtkV rlViQDh67V+ONdFdOyzOReUbb0izG0Dvy5Yhnlw5gsg5TXA6V6Q6Fqm8Tn3wsw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm3c56ZWKz1Qm8; Mon, 28 Apr 2025 00:05: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 53S059S3040562; Mon, 28 Apr 2025 00:05:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S059jX040559; Mon, 28 Apr 2025 00:05:09 GMT (envelope-from git) Date: Mon, 28 Apr 2025 00:05:09 GMT Message-Id: <202504280005.53S059jX040559@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: 8c7149c73f8f - main - wpa_supplicant: Handle systems without INET (legacy IP) 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: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8c7149c73f8f2301369f271c98470b72973b0c01 Auto-Submitted: auto-generated The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=8c7149c73f8f2301369f271c98470b72973b0c01 commit 8c7149c73f8f2301369f271c98470b72973b0c01 Author: Marek Zarychta AuthorDate: 2025-04-28 00:02:04 +0000 Commit: Cy Schubert CommitDate: 2025-04-28 00:04:45 +0000 wpa_supplicant: Handle systems without INET (legacy IP) support Currently, wpa_supplicant fails when legacy IP support is disabled in FreeBSD (i.e., the world built with WITHOUT_INET and nooptions INET in the kernel config). The proposed patch allows running wpa_supplicant and connecting to wireless networks without INET support when INET6 is available. Reviewed by: cy, adrian, philip, roy_marples.name Differential Revision: https://reviews.freebsd.org/D49959 --- contrib/wpa/src/drivers/driver_bsd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/contrib/wpa/src/drivers/driver_bsd.c b/contrib/wpa/src/drivers/driver_bsd.c index 6efaa9c27ff2..d23d720789f9 100644 --- a/contrib/wpa/src/drivers/driver_bsd.c +++ b/contrib/wpa/src/drivers/driver_bsd.c @@ -1800,9 +1800,19 @@ bsd_global_init(void *ctx) global->sock = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (global->sock < 0) { + if (errno == EAFNOSUPPORT) { + wpa_printf(MSG_INFO, "INET not supported, trying INET6..."); + global->sock = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0); + if (global->sock < 0) { + wpa_printf(MSG_ERROR, "socket[PF_INET6,SOCK_DGRAM]: %s", + strerror(errno)); + goto fail1; + } + } else { wpa_printf(MSG_ERROR, "socket[PF_INET,SOCK_DGRAM]: %s", strerror(errno)); goto fail1; + } } global->route = socket(PF_ROUTE, From nobody Mon Apr 28 00:13:54 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 4Zm3pG0CMZz5vWtL; Mon, 28 Apr 2025 00:13:58 +0000 (UTC) (envelope-from kevans@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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zm3pF0d9mz41HS; Mon, 28 Apr 2025 00:13:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745799237; 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=Jkyx2lOYITab2TXxHKXu1Tx45o4fJ9eSvsG4wJl+t1g=; b=mFIP0nl9meJNeucgyk7mGNyR6bjNOVZIpdL/QAUtf6EXgLvEWknBukee8uhETn2OulDuwO xEFhAGtl+QwU8DGlBGwuS63NDbD3n7E1s1Vo+P+Dud4RHHe6UxrNfFNstkZZgNEKpvBPkV Lom+gax/CQyf8uj8LQ0jr+21Ozx5x7Lwq/aurV1tFnxEinmYgymSvGKXumddTfmMozfbuU rmifF7dNc3AecP4nyCbRyFry8zY+ob/zMQxn4m4PasR7C2+4iELjD79y8w2OhDlPLuUs1v h64fewXxWQmLzvRZEGDOve5hCTSt+2UzO+oAx0F4ODNLJWtEWDwIbciqRwyPeQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745799237; a=rsa-sha256; cv=none; b=Y/ULOZGvSNAATiZSNdkgfk5ZFFI46a2P+oa+uJhVRcV4UnXIb5QrRqYs0WhBqXqYlyBERq JRRqtgkG4YEtjxBmrc9ps9pNwfqqh1cAhtxEsJuIv5o3xABS8gmoG5bEbFldVJd7UXFIbY SOgKED+PmjpWDOik7cNbw9kXnuxxkYWnVrhrwTBg9VdbbBBBpUCpyVjKe0zzsmnu8ICGfo 3LtxS3EeautNYh0xTAthsEAfJF8VdQLhgd6TTaReKCkGzK2C0pFdDcJDGF47Q/2VSptAq8 sIDXXxBsj8dklpcphALm2/pE37WXY12xxRNw/CaQUjyBZm65jXMh2XUuTTi0iQ== 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=1745799237; 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=Jkyx2lOYITab2TXxHKXu1Tx45o4fJ9eSvsG4wJl+t1g=; b=fTlqn8EcGTbzEloGzS28XYTdlcghVhfm+1PEHPxUxFwsfhf0xvFuGUShitxB/0I5A6bf53 tieTpmvIJSAbj4XRRAUe9rZMYscNE5ZkYgUTYnLczcgxnymnlsoU9Rgpi0uTdvAPbExLZk G7B6Ie1jl3Qt0Wa/0By3wCoR9EEeTnTkfPipqAqkS33TPDNm03poT+Pu2qD+lkEYF94jAO qFsz/3MH9IfA99IsFA2w1etx3mOrdx0THIKXjHkt3clZBzc+KfS54im+a7PlvzfDz0lrhn gyFZ9F0drkC+I+DNKCA/OazVbzL1ZWDUEoP5F1TzJx8ucuyu1y8i2lLelLsFKA== 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 4Zm3pD46jrzlqL; Mon, 28 Apr 2025 00:13:56 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Message-ID: <4fecf1e7-24a7-4cd4-9d37-1ad37335072e@FreeBSD.org> Date: Sun, 27 Apr 2025 19:13:54 -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: 8c7149c73f8f - main - wpa_supplicant: Handle systems without INET (legacy IP) support To: Cy Schubert , Marek Zarychta References: <202504280005.53S059jX040559@gitrepo.freebsd.org> Content-Language: en-US Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans In-Reply-To: <202504280005.53S059jX040559@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/27/25 19:05, Cy Schubert wrote: > The branch main has been updated by cy: > > URL: https://cgit.FreeBSD.org/src/commit/?id=8c7149c73f8f2301369f271c98470b72973b0c01 > > commit 8c7149c73f8f2301369f271c98470b72973b0c01 > Author: Marek Zarychta > AuthorDate: 2025-04-28 00:02:04 +0000 > Commit: Cy Schubert > CommitDate: 2025-04-28 00:04:45 +0000 > > wpa_supplicant: Handle systems without INET (legacy IP) support > > Currently, wpa_supplicant fails when legacy IP support is disabled > in FreeBSD (i.e., the world built with WITHOUT_INET and nooptions > INET in the kernel config). The proposed patch allows running > wpa_supplicant and connecting to wireless networks without INET > support when INET6 is available. > > Reviewed by: cy, adrian, philip, roy_marples.name > Differential Revision: https://reviews.freebsd.org/D49959 > --- It looks like we really only invoke interface ('i' group) ioctls on this socket, is there any particular reason we didn't just use a PF_LOCAL socket? It'd be less complex and match what ifconfig does for a lot of its work. Thanks, Kyle Evans > contrib/wpa/src/drivers/driver_bsd.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/contrib/wpa/src/drivers/driver_bsd.c b/contrib/wpa/src/drivers/driver_bsd.c > index 6efaa9c27ff2..d23d720789f9 100644 > --- a/contrib/wpa/src/drivers/driver_bsd.c > +++ b/contrib/wpa/src/drivers/driver_bsd.c > @@ -1800,9 +1800,19 @@ bsd_global_init(void *ctx) > > global->sock = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); > if (global->sock < 0) { > + if (errno == EAFNOSUPPORT) { > + wpa_printf(MSG_INFO, "INET not supported, trying INET6..."); > + global->sock = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0); > + if (global->sock < 0) { > + wpa_printf(MSG_ERROR, "socket[PF_INET6,SOCK_DGRAM]: %s", > + strerror(errno)); > + goto fail1; > + } > + } else { > wpa_printf(MSG_ERROR, "socket[PF_INET,SOCK_DGRAM]: %s", > strerror(errno)); > goto fail1; > + } > } > > global->route = socket(PF_ROUTE, From nobody Mon Apr 28 03:25:17 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 4Zm8321Prrz5tkqQ; Mon, 28 Apr 2025 03:25: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 4Zm8315wYPz3cmf; Mon, 28 Apr 2025 03:25:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810717; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JfWY8q1bGEb8YukEIUCrlwuA2ktAH+bfR66dhe5AoG0=; b=CrS3otwLpRVfMJeTdwu0ufYqWSujQ4C9CQ53P81lUZcCLl09rJcFjZK0Mjarmn+0md5aKX 6H89i2pIUqxb0Sabj5lg4fEz+nC8guKfPdldziu0Tq0Dtn4osOauvu0m+Mic6WOEPgPM0U w7yGmIxpQMD2XIg0Vu75W+MiEOYlirWrNqOyd9XTh74NjvGrlcsNiXUv7RN2oivIGfM1Gy /9iLfdGdfRaRS+6O93l5S1jcCV2zXvz8mJyUodzQhAXbNOOUtOX6Y8hMhEP8T1MfIe8fvc aIE1vKBAZuATtkYgEUAg9AskHAx51Z9ebqjHvVCkMqntBXWSZHy8STJMvw0Acw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810717; a=rsa-sha256; cv=none; b=aZwhe6UT81WBKKvORmVMMIVEsp8XkTQVsbuASr5mbRYQ+noLui1tCnF2W7LbIqKDdDmCir gYWbZHcmk1eYhoWiooYAerIMfTlPC9BqGto+PUwFEjdDw8ZEmiNgqN6RB4/6b746j+t3ym I71cjzYEdDTwS6Fhjq1xATOUUA5i/YEcgm7XkY6LTNYDlmVCLbpT+ZQqu/bMZCD6w+smdW iyr5e/viQ+AOvBXDl1pdp3WeXfVqTWavvFZT4XgJFXId4kezPMogH4EUqaT7aOxiQ8Vrco aBRpLqUiawlfLRJ1i+b19SNuNiruqqacdwwZr67Qxod2Bijq+iGJ51io0xGLYA== 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=1745810717; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JfWY8q1bGEb8YukEIUCrlwuA2ktAH+bfR66dhe5AoG0=; b=RtwnMZUHbj/u0Gl7x93AnJx5C5aICsYb/z4b1HnGelui1UsRuWQgQwP8TsX4CAQZE29cHj u/RVUBBv8AePX2RIziDDup+/+3Q1o+usEm/M3DqyU1pZtxxXaBRhV/DLo7id0cUk6o/YsU nyN0etyJZzRCKWrZXh0/O76X39HNtfL5U6Lx3BDzdzmQUKa4Gdl8Wa5k4fs49vF642InLm W2aX4VrX3mCtQBlPjjk+ZOxT5ZrJcCk8yXFvTz8WjlZ8lzp4dUUbITXBWIHDubxG5a03cd zIY0AKN/krj7SeqoppiGdyTopyi9bRLmYFZIRJly6/MI4hx5rISBr+lesfvn7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm8315P2Hz3ZQ; Mon, 28 Apr 2025 03:25: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 53S3PHGZ014636; Mon, 28 Apr 2025 03:25:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PH4U014633; Mon, 28 Apr 2025 03:25:17 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:17 GMT Message-Id: <202504280325.53S3PH4U014633@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 92f340d137ba - main - mpi3mr: Update MPI Header to Version 36 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 92f340d137ba5d6db7610ba1dae35842e2c9c8ea Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=92f340d137ba5d6db7610ba1dae35842e2c9c8ea commit 92f340d137ba5d6db7610ba1dae35842e2c9c8ea Author: Chandrakanth patil AuthorDate: 2025-04-27 23:23:44 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:55 +0000 mpi3mr: Update MPI Header to Version 36 Updated the MPI header files to version 36 to align with the latest MPI specification. This includes updated structures, field definitions, and constants required for compatibility with updated firmware. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49743 --- sys/dev/mpi3mr/mpi/mpi30_api.h | 2 +- sys/dev/mpi3mr/mpi/mpi30_cnfg.h | 200 ++++++++++++++++++++++++++++++++++- sys/dev/mpi3mr/mpi/mpi30_image.h | 26 +++-- sys/dev/mpi3mr/mpi/mpi30_init.h | 10 +- sys/dev/mpi3mr/mpi/mpi30_ioc.h | 32 +++++- sys/dev/mpi3mr/mpi/mpi30_pci.h | 5 +- sys/dev/mpi3mr/mpi/mpi30_raid.h | 3 +- sys/dev/mpi3mr/mpi/mpi30_sas.h | 4 +- sys/dev/mpi3mr/mpi/mpi30_targ.h | 11 +- sys/dev/mpi3mr/mpi/mpi30_tool.h | 7 +- sys/dev/mpi3mr/mpi/mpi30_transport.h | 79 +++++++++----- sys/dev/mpi3mr/mpi/mpi30_type.h | 3 +- 12 files changed, 336 insertions(+), 46 deletions(-) diff --git a/sys/dev/mpi3mr/mpi/mpi30_api.h b/sys/dev/mpi3mr/mpi/mpi30_api.h index 0c070672a16b..8b05deb7717c 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_api.h +++ b/sys/dev/mpi3mr/mpi/mpi30_api.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without diff --git a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h index 410ed0471f78..d4cec3330a56 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h +++ b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -64,6 +64,7 @@ * Configuration Page Attributes * ****************************************************************************/ #define MPI3_CONFIG_PAGEATTR_MASK (0xF0) +#define MPI3_CONFIG_PAGEATTR_SHIFT (4) #define MPI3_CONFIG_PAGEATTR_READ_ONLY (0x00) #define MPI3_CONFIG_PAGEATTR_CHANGEABLE (0x10) #define MPI3_CONFIG_PAGEATTR_PERSISTENT (0x20) @@ -84,58 +85,79 @@ /**** Device PageAddress Format ****/ #define MPI3_DEVICE_PGAD_FORM_MASK (0xF0000000) +#define MPI3_DEVICE_PGAD_FORM_SHIFT (28) #define MPI3_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_DEVICE_PGAD_FORM_HANDLE (0x20000000) #define MPI3_DEVICE_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_DEVICE_PGAD_HANDLE_SHIFT (0) /**** SAS Expander PageAddress Format ****/ #define MPI3_SAS_EXPAND_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SAS_EXPAND_PGAD_FORM_SHIFT (28) #define MPI3_SAS_EXPAND_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_SAS_EXPAND_PGAD_FORM_HANDLE_PHY_NUM (0x10000000) #define MPI3_SAS_EXPAND_PGAD_FORM_HANDLE (0x20000000) #define MPI3_SAS_EXPAND_PGAD_PHYNUM_MASK (0x00FF0000) #define MPI3_SAS_EXPAND_PGAD_PHYNUM_SHIFT (16) #define MPI3_SAS_EXPAND_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_SAS_EXPAND_PGAD_HANDLE_SHIFT (0) /**** SAS Phy PageAddress Format ****/ #define MPI3_SAS_PHY_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SAS_PHY_PGAD_FORM_SHIFT (28) #define MPI3_SAS_PHY_PGAD_FORM_PHY_NUMBER (0x00000000) #define MPI3_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x000000FF) +#define MPI3_SAS_PHY_PGAD_PHY_NUMBER_SHIFT (0) /**** SAS Port PageAddress Format ****/ #define MPI3_SASPORT_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SASPORT_PGAD_FORM_SHIFT (28) #define MPI3_SASPORT_PGAD_FORM_GET_NEXT_PORT (0x00000000) #define MPI3_SASPORT_PGAD_FORM_PORT_NUM (0x10000000) #define MPI3_SASPORT_PGAD_PORT_NUMBER_MASK (0x000000FF) +#define MPI3_SASPORT_PGAD_PORT_NUMBER_SHIFT (0) /**** Enclosure PageAddress Format ****/ #define MPI3_ENCLOS_PGAD_FORM_MASK (0xF0000000) +#define MPI3_ENCLOS_PGAD_FORM_SHIFT (28) #define MPI3_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_ENCLOS_PGAD_FORM_HANDLE (0x10000000) #define MPI3_ENCLOS_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_ENCLOS_PGAD_HANDLE_SHIFT (0) /**** PCIe Switch PageAddress Format ****/ #define MPI3_PCIE_SWITCH_PGAD_FORM_MASK (0xF0000000) +#define MPI3_PCIE_SWITCH_PGAD_FORM_SHIFT (28) #define MPI3_PCIE_SWITCH_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_PCIE_SWITCH_PGAD_FORM_HANDLE_PORT_NUM (0x10000000) #define MPI3_PCIE_SWITCH_PGAD_FORM_HANDLE (0x20000000) #define MPI3_PCIE_SWITCH_PGAD_PORTNUM_MASK (0x00FF0000) #define MPI3_PCIE_SWITCH_PGAD_PORTNUM_SHIFT (16) #define MPI3_PCIE_SWITCH_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_PCIE_SWITCH_PGAD_HANDLE_SHIFT (0) /**** PCIe Link PageAddress Format ****/ #define MPI3_PCIE_LINK_PGAD_FORM_MASK (0xF0000000) +#define MPI3_PCIE_LINK_PGAD_FORM_SHIFT (28) #define MPI3_PCIE_LINK_PGAD_FORM_GET_NEXT_LINK (0x00000000) #define MPI3_PCIE_LINK_PGAD_FORM_LINK_NUM (0x10000000) #define MPI3_PCIE_LINK_PGAD_LINKNUM_MASK (0x000000FF) +#define MPI3_PCIE_LINK_PGAD_LINKNUM_SHIFT (0) /**** Security PageAddress Format ****/ #define MPI3_SECURITY_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SECURITY_PGAD_FORM_SHIFT (28) #define MPI3_SECURITY_PGAD_FORM_GET_NEXT_SLOT (0x00000000) #define MPI3_SECURITY_PGAD_FORM_SLOT_NUM (0x10000000) #define MPI3_SECURITY_PGAD_SLOT_GROUP_MASK (0x0000FF00) #define MPI3_SECURITY_PGAD_SLOT_GROUP_SHIFT (8) #define MPI3_SECURITY_PGAD_SLOT_MASK (0x000000FF) +#define MPI3_SECURITY_PGAD_SLOT_SHIFT (0) + +/**** Instance PageAddress Format ****/ +#define MPI3_INSTANCE_PGAD_INSTANCE_MASK (0x0000FFFF) +#define MPI3_INSTANCE_PGAD_INSTANCE_SHIFT (0) + /***************************************************************************** * Configuration Request Message * @@ -149,7 +171,8 @@ typedef struct _MPI3_CONFIG_REQUEST U8 IOCUseOnly06; /* 0x06 */ U8 MsgFlags; /* 0x07 */ U16 ChangeCount; /* 0x08 */ - U16 Reserved0A; /* 0x0A */ + U8 ProxyIOCNumber; /* 0x0A */ + U8 Reserved0B; /* 0x0B */ U8 PageVersion; /* 0x0C */ U8 PageNumber; /* 0x0D */ U8 PageType; /* 0x0E */ @@ -212,6 +235,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_APHYINFO_BREAK_REPLY_CAPABLE (0x00000010) #define MPI3_SAS_APHYINFO_REASON_MASK (0x0000000F) +#define MPI3_SAS_APHYINFO_REASON_SHIFT (0) #define MPI3_SAS_APHYINFO_REASON_UNKNOWN (0x00000000) #define MPI3_SAS_APHYINFO_REASON_POWER_ON (0x00000001) #define MPI3_SAS_APHYINFO_REASON_HARD_RESET (0x00000002) @@ -231,6 +255,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PHYINFO_STATUS_VACANT (0x80000000) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_MASK (0x18000000) +#define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_SHIFT (27) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_ACTIVE (0x00000000) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_PARTIAL (0x08000000) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_SLUMBER (0x10000000) @@ -247,6 +272,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PHYINFO_ZONING_ENABLED (0x00100000) #define MPI3_SAS_PHYINFO_REASON_MASK (0x000F0000) +#define MPI3_SAS_PHYINFO_REASON_SHIFT (16) #define MPI3_SAS_PHYINFO_REASON_UNKNOWN (0x00000000) #define MPI3_SAS_PHYINFO_REASON_POWER_ON (0x00010000) #define MPI3_SAS_PHYINFO_REASON_HARD_RESET (0x00020000) @@ -266,12 +292,14 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PHYINFO_PARTIAL_PATHWAY_TIME_SHIFT (8) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_MASK (0x000000F0) +#define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_SHIFT (4) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_DIRECT (0x00000000) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_SUBTRACTIVE (0x00000010) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_TABLE (0x00000020) /**** Defines for the ProgrammedLinkRate field ****/ #define MPI3_SAS_PRATE_MAX_RATE_MASK (0xF0) +#define MPI3_SAS_PRATE_MAX_RATE_SHIFT (4) #define MPI3_SAS_PRATE_MAX_RATE_NOT_PROGRAMMABLE (0x00) #define MPI3_SAS_PRATE_MAX_RATE_1_5 (0x80) #define MPI3_SAS_PRATE_MAX_RATE_3_0 (0x90) @@ -279,6 +307,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PRATE_MAX_RATE_12_0 (0xB0) #define MPI3_SAS_PRATE_MAX_RATE_22_5 (0xC0) #define MPI3_SAS_PRATE_MIN_RATE_MASK (0x0F) +#define MPI3_SAS_PRATE_MIN_RATE_SHIFT (0) #define MPI3_SAS_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) #define MPI3_SAS_PRATE_MIN_RATE_1_5 (0x08) #define MPI3_SAS_PRATE_MIN_RATE_3_0 (0x09) @@ -288,12 +317,14 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER /**** Defines for the HwLinkRate field ****/ #define MPI3_SAS_HWRATE_MAX_RATE_MASK (0xF0) +#define MPI3_SAS_HWRATE_MAX_RATE_SHIFT (4) #define MPI3_SAS_HWRATE_MAX_RATE_1_5 (0x80) #define MPI3_SAS_HWRATE_MAX_RATE_3_0 (0x90) #define MPI3_SAS_HWRATE_MAX_RATE_6_0 (0xA0) #define MPI3_SAS_HWRATE_MAX_RATE_12_0 (0xB0) #define MPI3_SAS_HWRATE_MAX_RATE_22_5 (0xC0) #define MPI3_SAS_HWRATE_MIN_RATE_MASK (0x0F) +#define MPI3_SAS_HWRATE_MIN_RATE_SHIFT (0) #define MPI3_SAS_HWRATE_MIN_RATE_1_5 (0x08) #define MPI3_SAS_HWRATE_MIN_RATE_3_0 (0x09) #define MPI3_SAS_HWRATE_MIN_RATE_6_0 (0x0A) @@ -331,6 +362,9 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_MFGPAGE_DEVID_SAS5116_MPI_NS (0x00B5) #define MPI3_MFGPAGE_DEVID_SAS5116_NVME_NS (0x00B6) #define MPI3_MFGPAGE_DEVID_SAS5116_PCIE_SWITCH (0x00B8) +#define MPI3_MFGPAGE_DEVID_SAS5248_MPI (0x00F0) +#define MPI3_MFGPAGE_DEVID_SAS5248_MPI_NS (0x00F1) +#define MPI3_MFGPAGE_DEVID_SAS5248_PCIE_SWITCH (0x00F2) /***************************************************************************** * Manufacturing Page 0 * @@ -478,20 +512,28 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY /**** Defines for FunctionFlags when FunctionCode is ISTWI_RESET ****/ #define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_MASK (0x01) +#define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_SHIFT (0) #define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_ISTWI (0x00) #define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_RECEPTACLEID (0x01) /**** Defines for Param1 (Flags) when FunctionCode is EXT_INTERRUPT ****/ #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_MASK (0xF0) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_SHIFT (4) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_GENERIC (0x00) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_CABLE_MGMT (0x10) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_ACTIVE_CABLE_OVERCURRENT (0x20) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_ACK_REQUIRED (0x02) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_MASK (0x01) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_SHIFT (0) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_EDGE (0x00) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_LEVEL (0x01) +/**** Defines for Param1 (LEVEL) when FunctionCode is OVER_TEMPERATURE ****/ +#define MPI3_MAN6_GPIO_OVER_TEMP_PARAM1_LEVEL_WARNING (0x00) +#define MPI3_MAN6_GPIO_OVER_TEMP_PARAM1_LEVEL_CRITICAL (0x01) +#define MPI3_MAN6_GPIO_OVER_TEMP_PARAM1_LEVEL_FATAL (0x02) + /**** Defines for Param1 (PHY STATE) when FunctionCode is PORT_STATUS_GREEN ****/ #define MPI3_MAN6_GPIO_PORT_GREEN_PARAM1_PHY_STATUS_ALL_UP (0x00) #define MPI3_MAN6_GPIO_PORT_GREEN_PARAM1_PHY_STATUS_ONE_OR_MORE_UP (0x01) @@ -507,9 +549,11 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY /**** Defines for the Flags field ****/ #define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_MASK (0x0100) +#define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_SHIFT (8) #define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_FAST_EDGE (0x0100) #define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_SLOW_EDGE (0x0000) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_MASK (0x00C0) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_SHIFT (6) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_100OHM (0x0000) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_66OHM (0x0040) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_50OHM (0x0080) @@ -519,6 +563,7 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY #define MPI3_MAN6_GPIO_FLAGS_ACTIVE_HIGH (0x0008) #define MPI3_MAN6_GPIO_FLAGS_BI_DIR_ENABLED (0x0004) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_MASK (0x0003) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_SHIFT (0) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_INPUT (0x0000) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_OPEN_DRAIN_OUTPUT (0x0001) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_OPEN_SOURCE_OUTPUT (0x0002) @@ -571,9 +616,11 @@ typedef struct _MPI3_MAN7_RECEPTACLE_INFO /**** Defines for PEDClk field ****/ #define MPI3_MAN7_PEDCLK_ROUTING_MASK (0x10) +#define MPI3_MAN7_PEDCLK_ROUTING_SHIFT (4) #define MPI3_MAN7_PEDCLK_ROUTING_DIRECT (0x00) #define MPI3_MAN7_PEDCLK_ROUTING_CLOCK_BUFFER (0x10) #define MPI3_MAN7_PEDCLK_ID_MASK (0x0F) +#define MPI3_MAN7_PEDCLK_ID_SHIFT (0) #ifndef MPI3_MAN7_RECEPTACLE_INFO_MAX #define MPI3_MAN7_RECEPTACLE_INFO_MAX (1) @@ -595,6 +642,7 @@ typedef struct _MPI3_MAN_PAGE7 /**** Defines for Flags field ****/ #define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_MASK (0x01) +#define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_SHIFT (0) #define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_0 (0x00) #define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_1 (0x01) @@ -966,6 +1014,7 @@ typedef struct _MPI3_MAN11_BOARD_FAN_DEVICE_FORMAT /**** Defines for the Flags field ****/ #define MPI3_MAN11_BOARD_FAN_FLAGS_FAN_CTRLR_TYPE_MASK (0x07) +#define MPI3_MAN11_BOARD_FAN_FLAGS_FAN_CTRLR_TYPE_SHIFT (0) #define MPI3_MAN11_BOARD_FAN_FLAGS_FAN_CTRLR_TYPE_AMC6821 (0x00) typedef union _MPI3_MAN11_DEVICE_SPECIFIC_FORMAT @@ -1068,9 +1117,11 @@ typedef struct _MPI3_MAN_PAGE12 #define MPI3_MAN12_FLAGS_GROUP_ID_DISABLED (0x0100) #define MPI3_MAN12_FLAGS_SIO_CLK_FILTER_ENABLED (0x0004) #define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_MASK (0x0002) +#define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_SHIFT (1) #define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_PUSH_PULL (0x0000) #define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_OPEN_DRAIN (0x0002) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_MASK (0x0001) +#define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_SHIFT (0) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_PUSH_PULL (0x0000) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_OPEN_DRAIN (0x0001) @@ -1090,6 +1141,7 @@ typedef struct _MPI3_MAN_PAGE12 /*** Defines for the Pattern field ****/ #define MPI3_MAN12_PATTERN_RATE_MASK (0xE0000000) +#define MPI3_MAN12_PATTERN_RATE_SHIFT (29) #define MPI3_MAN12_PATTERN_RATE_2_HZ (0x00000000) #define MPI3_MAN12_PATTERN_RATE_4_HZ (0x20000000) #define MPI3_MAN12_PATTERN_RATE_8_HZ (0x40000000) @@ -1301,14 +1353,17 @@ typedef struct _MPI3_MAN_PAGE20 /**** Defines for the AllowedPersonalities field ****/ #define MPI3_MAN20_ALLOWEDPERSON_RAID_MASK (0x02) +#define MPI3_MAN20_ALLOWEDPERSON_RAID_SHIFT (1) #define MPI3_MAN20_ALLOWEDPERSON_RAID_ALLOWED (0x02) #define MPI3_MAN20_ALLOWEDPERSON_RAID_NOT_ALLOWED (0x00) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_MASK (0x01) +#define MPI3_MAN20_ALLOWEDPERSON_EHBA_SHIFT (0) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_ALLOWED (0x01) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_NOT_ALLOWED (0x00) /**** Defines for the NonpremiumFeatures field ****/ #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_MASK (0x01) +#define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_SHIFT (0) #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_ENABLED (0x00) #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_DISABLED (0x01) @@ -1329,13 +1384,16 @@ typedef struct _MPI3_MAN_PAGE21 /**** Defines for the Flags field ****/ #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_MASK (0x00000060) +#define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_SHIFT (5) #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_BLOCK (0x00000000) #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_ALLOW (0x00000020) #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_WARN (0x00000040) #define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_MASK (0x00000008) +#define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_SHIFT (3) #define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_ALLOW (0x00000000) #define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_PREVENT (0x00000008) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_MASK (0x00000001) +#define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_SHIFT (0) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_DEFAULT (0x00000000) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_OEM_SPECIFIC (0x00000001) @@ -1408,18 +1466,21 @@ typedef struct _MPI3_IO_UNIT_PAGE1 /**** Defines for the Flags field ****/ #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_MASK (0x00000030) +#define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_SHIFT (4) #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_ENABLE (0x00000000) #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_DISABLE (0x00000010) #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_NO_MODIFY (0x00000020) #define MPI3_IOUNIT1_FLAGS_ATA_SECURITY_FREEZE_LOCK (0x00000008) #define MPI3_IOUNIT1_FLAGS_WRITE_SAME_BUFFER (0x00000004) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_MASK (0x00000003) +#define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_SHIFT (0) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_ENABLE (0x00000000) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_DISABLE (0x00000001) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_UNCHANGED (0x00000002) /**** Defines for the DMDReport PCIe/SATA/SAS fields ****/ #define MPI3_IOUNIT1_DMD_REPORT_DELAY_TIME_MASK (0x7F) +#define MPI3_IOUNIT1_DMD_REPORT_DELAY_TIME_SHIFT (0) #define MPI3_IOUNIT1_DMD_REPORT_UNIT_16_SEC (0x80) /***************************************************************************** @@ -1445,6 +1506,7 @@ typedef struct _MPI3_IO_UNIT_PAGE2 #define MPI3_IOUNIT2_GPIO_FUNCTION_MASK (0xFFFC) #define MPI3_IOUNIT2_GPIO_FUNCTION_SHIFT (2) #define MPI3_IOUNIT2_GPIO_SETTING_MASK (0x0001) +#define MPI3_IOUNIT2_GPIO_SETTING_SHIFT (0) #define MPI3_IOUNIT2_GPIO_SETTING_OFF (0x0000) #define MPI3_IOUNIT2_GPIO_SETTING_ON (0x0001) @@ -1620,6 +1682,7 @@ typedef struct _MPI3_IO_UNIT_PAGE5 /**** Defines for the Phy field ****/ #define MPI3_IOUNIT5_PHY_SPINUP_GROUP_MASK (0x03) +#define MPI3_IOUNIT5_PHY_SPINUP_GROUP_SHIFT (0) /***************************************************************************** * IO Unit Page 6 * @@ -1700,6 +1763,7 @@ typedef struct _MPI3_IO_UNIT_PAGE8 #define MPI3_IOUNIT8_PAGEVERSION (0x00) /**** Defines for the SBMode field ****/ +#define MPI3_IOUNIT8_SBMODE_HARD_SECURE_RECERTIFIED (0x08) #define MPI3_IOUNIT8_SBMODE_SECURE_DEBUG (0x04) #define MPI3_IOUNIT8_SBMODE_HARD_SECURE (0x02) #define MPI3_IOUNIT8_SBMODE_CONFIG_SECURE (0x01) @@ -1710,10 +1774,15 @@ typedef struct _MPI3_IO_UNIT_PAGE8 #define MPI3_IOUNIT8_SBSTATE_SECURE_BOOT_ENABLED (0x01) /**** Defines for the Flags field ****/ +#define MPI3_IOUNIT8_FLAGS_CURRENT_KEY_IOUNIT17 (0x08) #define MPI3_IOUNIT8_FLAGS_DIGESTFORM_MASK (0x07) +#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_SHIFT (0) #define MPI3_IOUNIT8_FLAGS_DIGESTFORM_RAW (0x00) #define MPI3_IOUNIT8_FLAGS_DIGESTFORM_DIGEST_WITH_METADATA (0x01) +/**** Use MPI3_ENCRYPTION_ALGORITHM_ defines (see mpi30_image.h) for the CurrentKeyEncryptionAlgo field ****/ +/**** Use MPI3_HASH_ALGORITHM defines (see mpi30_image.h) for the KeyDigestHashAlgo field ****/ + /***************************************************************************** * IO Unit Page 9 * ****************************************************************************/ @@ -1740,6 +1809,7 @@ typedef struct _MPI3_IO_UNIT_PAGE9 /**** Defines for the FirstDevice field ****/ #define MPI3_IOUNIT9_FIRSTDEVICE_UNKNOWN (0xFFFF) +#define MPI3_IOUNIT9_FIRSTDEVICE_IN_DRIVER_PAGE_0 (0xFFFE) /***************************************************************************** * IO Unit Page 10 * @@ -1765,6 +1835,7 @@ typedef struct _MPI3_IO_UNIT_PAGE10 /**** Defines for the Flags field ****/ #define MPI3_IOUNIT10_FLAGS_VALID (0x01) #define MPI3_IOUNIT10_FLAGS_ACTIVEID_MASK (0x02) +#define MPI3_IOUNIT10_FLAGS_ACTIVEID_SHIFT (1) #define MPI3_IOUNIT10_FLAGS_ACTIVEID_FIRST_REGION (0x00) #define MPI3_IOUNIT10_FLAGS_ACTIVEID_SECOND_REGION (0x02) #define MPI3_IOUNIT10_FLAGS_PBLP_EXPECTED (0x80) @@ -1846,6 +1917,7 @@ typedef struct _MPI3_IO_UNIT_PAGE12 #define MPI3_IOUNIT12_FLAGS_NUMPASSES_32 (0x00000200) #define MPI3_IOUNIT12_FLAGS_NUMPASSES_64 (0x00000300) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_MASK (0x00000003) +#define MPI3_IOUNIT12_FLAGS_PASSPERIOD_SHIFT (0) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_DISABLED (0x00000000) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_500US (0x00000001) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_1MS (0x00000002) @@ -1956,6 +2028,7 @@ typedef struct _MPI3_IO_UNIT_PAGE15 /**** Defines for the Flags field ****/ #define MPI3_IOUNIT15_FLAGS_EPRINIT_INITREQUIRED (0x04) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_MASK (0x03) +#define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_SHIFT (0) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_NOT_SUPPORTED (0x00) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_WITHOUT_POWER_BRAKE_GPIO (0x01) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_WITH_POWER_BRAKE_GPIO (0x02) @@ -1995,6 +2068,90 @@ typedef struct _MPI3_IO_UNIT_PAGE16 /**** Defines for the PageVersion field ****/ #define MPI3_IOUNIT16_PAGEVERSION (0x00) +/***************************************************************************** + * IO Unit Page 17 * + ****************************************************************************/ + +#ifndef MPI3_IOUNIT17_CURRENTKEY_MAX +#define MPI3_IOUNIT17_CURRENTKEY_MAX (1) +#endif /* MPI3_IOUNIT17_CURRENTKEY_MAX */ + +typedef struct _MPI3_IO_UNIT_PAGE17 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 NumInstances; /* 0x08 */ + U8 Instance; /* 0x09 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C[4]; /* 0x0C */ + U16 KeyLength; /* 0x1C */ + U8 EncryptionAlgorithm; /* 0x1E */ + U8 Reserved1F; /* 0x1F */ + U32 CurrentKey[MPI3_IOUNIT17_CURRENTKEY_MAX]; /* 0x20 */ /* variable length */ +} MPI3_IO_UNIT_PAGE17, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE17, + Mpi3IOUnitPage17_t, MPI3_POINTER pMpi3IOUnitPage17_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT17_PAGEVERSION (0x00) + +/**** Use MPI3_ENCRYPTION_ALGORITHM_ defines (see mpi30_image.h) for the EncryptionAlgorithm field ****/ + +/***************************************************************************** + * IO Unit Page 18 * + ****************************************************************************/ + +typedef struct _MPI3_IO_UNIT_PAGE18 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 Flags; /* 0x08 */ + U8 PollInterval; /* 0x09 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C; /* 0x0C */ +} MPI3_IO_UNIT_PAGE18, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE18, + Mpi3IOUnitPage18_t, MPI3_POINTER pMpi3IOUnitPage18_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT18_PAGEVERSION (0x00) + +/**** Defines for the Flags field ****/ +#define MPI3_IOUNIT18_FLAGS_DIRECTATTACHED_ENABLE (0x01) + +/**** Defines for the PollInterval field ****/ +#define MPI3_IOUNIT18_POLLINTERVAL_DISABLE (0x00) + +/***************************************************************************** + * IO Unit Page 19 * + ****************************************************************************/ + +#ifndef MPI3_IOUNIT19_DEVICE_MAX +#define MPI3_IOUNIT19_DEVICE_MAX (1) +#endif /* MPI3_IOUNIT19_DEVICE_MAX */ + +typedef struct _MPI3_IOUNIT19_DEVICE_ +{ + U16 Temperature; /* 0x00 */ + U16 DevHandle; /* 0x02 */ + U16 PersistentID; /* 0x04 */ + U16 Reserved06; /* 0x06 */ +} MPI3_IOUNIT19_DEVICE, MPI3_POINTER PTR_MPI3_IOUNIT19_DEVICE, + Mpi3IOUnit19Device_t, MPI3_POINTER pMpi3IOUnit19Device_t; + +/**** Defines for the Temperature field ****/ +#define MPI3_IOUNIT19_DEVICE_TEMPERATURE_UNAVAILABLE (0x8000) + +typedef struct _MPI3_IO_UNIT_PAGE19 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U16 NumDevices; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C; /* 0x0C */ + MPI3_IOUNIT19_DEVICE Device[MPI3_IOUNIT19_DEVICE_MAX]; /* 0x10 */ +} MPI3_IO_UNIT_PAGE19, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE19, + Mpi3IOUnitPage19_t, MPI3_POINTER pMpi3IOUnitPage19_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT19_PAGEVERSION (0x00) + + /***************************************************************************** * IOC Configuration Pages * ****************************************************************************/ @@ -2096,9 +2253,11 @@ typedef struct _MPI3_ALLOWED_CMD_NVME /**** Defines for the NVMeCmdFlags field ****/ #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_MASK (0x80) +#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_SHIFT (7) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_IO (0x00) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_ADMIN (0x80) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_CMDSET_MASK (0x3F) +#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_CMDSET_SHIFT (0) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_CMDSET_NVM (0x00) typedef union _MPI3_ALLOWED_CMD @@ -2135,7 +2294,7 @@ typedef struct _MPI3_DRIVER_PAGE0 U8 TURInterval; /* 0x0F */ U8 Reserved10; /* 0x10 */ U8 SecurityKeyTimeout; /* 0x11 */ - U16 Reserved12; /* 0x12 */ + U16 FirstDevice; /* 0x12 */ U32 Reserved14; /* 0x14 */ U32 Reserved18; /* 0x18 */ } MPI3_DRIVER_PAGE0, MPI3_POINTER PTR_MPI3_DRIVER_PAGE0, @@ -2150,10 +2309,15 @@ typedef struct _MPI3_DRIVER_PAGE0 #define MPI3_DRIVER0_BSDOPTS_HEADLESS_MODE_ENABLE (0x00000008) #define MPI3_DRIVER0_BSDOPTS_DIS_HII_CONFIG_UTIL (0x00000004) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_MASK (0x00000003) +#define MPI3_DRIVER0_BSDOPTS_REGISTRATION_SHIFT (0) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_IOC_AND_DEVS (0x00000000) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_IOC_ONLY (0x00000001) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_IOC_AND_INTERNAL_DEVS (0x00000002) +/**** Defines for the FirstDevice field ****/ +#define MPI3_DRIVER0_FIRSTDEVICE_IGNORE1 (0x0000) +#define MPI3_DRIVER0_FIRSTDEVICE_IGNORE2 (0xFFFF) + /***************************************************************************** * Driver Page 1 * ****************************************************************************/ @@ -2161,7 +2325,8 @@ typedef struct _MPI3_DRIVER_PAGE1 { MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ U32 Flags; /* 0x08 */ - U32 Reserved0C; /* 0x0C */ + U8 TimeStampUpdate; /* 0x0C */ + U8 Reserved0D[3]; /* 0x0D */ U16 HostDiagTraceMaxSize; /* 0x10 */ U16 HostDiagTraceMinSize; /* 0x12 */ U16 HostDiagTraceDecrementSize; /* 0x14 */ @@ -2387,6 +2552,7 @@ typedef struct _MPI3_SECURITY_PAGE0 /**** Defines for the CertChainFlags field ****/ #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_MASK (0x0E) +#define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_SHIFT (1) #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_UNUSED (0x00) #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_CERBERUS (0x02) #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_SPDM (0x04) @@ -2425,6 +2591,7 @@ typedef struct _MPI3_SECURITY1_KEY_RECORD /**** Defines for the Flags field ****/ #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_MASK (0x1F) +#define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_SHIFT (0) #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_NOT_VALID (0x00) #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_HMAC (0x01) #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_AES (0x02) @@ -2560,6 +2727,7 @@ typedef struct _MPI3_SAS_IO_UNIT_PAGE0 /**** Defines for the PortFlags field ****/ #define MPI3_SASIOUNIT0_PORTFLAGS_DISC_IN_PROGRESS (0x08) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_MASK (0x03) +#define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_SHIFT (0) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_IOUNIT1 (0x00) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_DYNAMIC (0x01) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_BACKPLANE (0x02) @@ -2624,6 +2792,7 @@ typedef struct _MPI3_SAS_IO_UNIT_PAGE1 #define MPI3_SASIOUNIT1_CONTROL_SUBTRACTIVE_ILLEGAL (0x0004) #define MPI3_SASIOUNIT1_CONTROL_FIRST_LVL_DISC_ONLY (0x0002) #define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_MASK (0x0001) +#define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_SHIFT (0) #define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_DEVICE_NAME (0x0000) #define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_SAS_ADDRESS (0x0001) @@ -2653,6 +2822,7 @@ typedef struct _MPI3_SAS_IO_UNIT_PAGE1 #define MPI3_SASIOUNIT1_MMLR_MAX_RATE_12_0 (0xB0) #define MPI3_SASIOUNIT1_MMLR_MAX_RATE_22_5 (0xC0) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_MASK (0x0F) +#define MPI3_SASIOUNIT1_MMLR_MIN_RATE_SHIFT (0) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_6_0 (0x0A) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_12_0 (0x0B) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_22_5 (0x0C) @@ -3147,6 +3317,7 @@ typedef struct _MPI3_SAS_PHY_PAGE4 #define MPI3_PCIE_LINK_RETIMERS_MASK (0x30) #define MPI3_PCIE_LINK_RETIMERS_SHIFT (4) #define MPI3_PCIE_NEG_LINK_RATE_MASK (0x0F) +#define MPI3_PCIE_NEG_LINK_RATE_SHIFT (0) #define MPI3_PCIE_NEG_LINK_RATE_UNKNOWN (0x00) #define MPI3_PCIE_NEG_LINK_RATE_PHY_DISABLED (0x01) #define MPI3_PCIE_NEG_LINK_RATE_2_5 (0x02) @@ -3190,6 +3361,7 @@ typedef struct _MPI3_PCIE_IO_UNIT0_PHY_DATA /**** Defines for the LinkFlags field ****/ #define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_MASK (0x10) +#define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_SHIFT (4) #define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_IOUNIT1 (0x00) #define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_BKPLANE (0x10) #define MPI3_PCIEIOUNIT0_LINKFLAGS_ENUM_IN_PROGRESS (0x08) @@ -3266,6 +3438,7 @@ typedef struct _MPI3_PCIE_IO_UNIT1_PHY_DATA /**** Defines for the LinkFlags field ****/ #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_MASK (0x03) +#define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_SHIFT (0) #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_DIS_SEPARATE_REFCLK (0x00) #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_EN_SRIS (0x01) #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_EN_SRNS (0x02) @@ -3304,11 +3477,13 @@ typedef struct _MPI3_PCIE_IO_UNIT_PAGE1 /**** Defines for the ControlFlags field ****/ #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_MASK (0xE0000000) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_SHIFT (29) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_NONE (0x00000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_DEASSERT (0x20000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_ASSERT (0x40000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_BACKPLANE_ERROR (0x60000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_MASK (0x1C000000) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_SHIFT (26) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_NONE (0x00000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_ENABLE (0x04000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_DISABLE (0x08000000) @@ -3322,6 +3497,7 @@ typedef struct _MPI3_PCIE_IO_UNIT_PAGE1 #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_CLOCK_OVERRIDE_MODE_SRIS_ENABLED (0x00000010) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_CLOCK_OVERRIDE_MODE_SRNS_ENABLED (0x00000020) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_MASK (0x0000000F) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_SHIFT (0) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_USE_BACKPLANE (0x00000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_MAX_2_5 (0x00000002) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_MAX_5_0 (0x00000003) @@ -3557,14 +3733,17 @@ typedef struct _MPI3_ENCLOSURE_PAGE0 /**** Defines for the Flags field ****/ #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_MASK (0xC000) +#define MPI3_ENCLS0_FLAGS_ENCL_TYPE_SHIFT (0xC000) #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_VIRTUAL (0x0000) #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_SAS (0x4000) #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_PCIE (0x8000) #define MPI3_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020) #define MPI3_ENCLS0_FLAGS_ENCL_DEV_PRESENT_MASK (0x0010) +#define MPI3_ENCLS0_FLAGS_ENCL_DEV_PRESENT_SHIFT (4) #define MPI3_ENCLS0_FLAGS_ENCL_DEV_NOT_FOUND (0x0000) #define MPI3_ENCLS0_FLAGS_ENCL_DEV_PRESENT (0x0010) #define MPI3_ENCLS0_FLAGS_MNG_MASK (0x000F) +#define MPI3_ENCLS0_FLAGS_MNG_SHIFT (0) #define MPI3_ENCLS0_FLAGS_MNG_UNKNOWN (0x0000) #define MPI3_ENCLS0_FLAGS_MNG_IOC_SES (0x0001) #define MPI3_ENCLS0_FLAGS_MNG_SES_ENCLOSURE (0x0002) @@ -3646,6 +3825,7 @@ typedef struct _MPI3_DEVICE0_PCIE_FORMAT /**** Defines for DeviceInfo bitfield ****/ #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_MASK (0x0007) +#define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_SHIFT (0) #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_NO_DEVICE (0x0000) #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_NVME_DEVICE (0x0001) #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_SWITCH_DEVICE (0x0002) @@ -3675,9 +3855,11 @@ typedef struct _MPI3_DEVICE0_PCIE_FORMAT /**** Defines for the RecoveryInfo field ****/ #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_MASK (0xE0) +#define MPI3_DEVICE0_PCIE_RECOVER_METHOD_SHIFT (5) #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_NS_MGMT (0x00) #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_FORMAT (0x20) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_MASK (0x1F) +#define MPI3_DEVICE0_PCIE_RECOVER_REASON_SHIFT (0) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_NO_NS (0x00) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_NO_NSID_1 (0x01) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_TOO_MANY_NS (0x02) @@ -3724,6 +3906,11 @@ typedef struct _MPI3_DEVICE0_VD_FORMAT /**** Defines for the Flags field ****/ #define MPI3_DEVICE0_VD_FLAGS_IO_THROTTLE_GROUP_QD_MASK (0xF000) #define MPI3_DEVICE0_VD_FLAGS_IO_THROTTLE_GROUP_QD_SHIFT (12) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_MASK (0x0003) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_SHIFT (0) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_HDD (0x0000) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_SSD (0x0001) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_NO_GUIDANCE (0x0002) typedef union _MPI3_DEVICE0_DEV_SPEC_FORMAT { @@ -3801,6 +3988,7 @@ typedef struct _MPI3_DEVICE_PAGE0 #define MPI3_DEVICE0_ASTATUS_SIF_UDMA_SN (0x27) #define MPI3_DEVICE0_ASTATUS_SIF_ZONING_VIOLATION (0x28) #define MPI3_DEVICE0_ASTATUS_SIF_NOT_ADDRESSABLE (0x29) +#define MPI3_DEVICE0_ASTATUS_SIF_DEVICE_FAULT (0x2A) #define MPI3_DEVICE0_ASTATUS_SIF_MAX (0x2F) /* PCIe Access Status Codes */ #define MPI3_DEVICE0_ASTATUS_PCIE_UNKNOWN (0x30) @@ -3836,6 +4024,7 @@ typedef struct _MPI3_DEVICE_PAGE0 /**** Defines for the Flags field ****/ #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_MASK (0xE000) +#define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_SHIFT (13) #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_NO_LIMIT (0x0000) #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_256_LB (0x2000) #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_2048_LB (0x4000) @@ -3869,7 +4058,8 @@ typedef struct _MPI3_DEVICE1_PCIE_FORMAT U16 DeviceID; /* 0x02 */ U16 SubsystemVendorID; /* 0x04 */ U16 SubsystemID; /* 0x06 */ - U32 Reserved08; /* 0x08 */ + U16 ReadyTimeout; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ U8 RevisionID; /* 0x0C */ U8 Reserved0D; /* 0x0D */ U16 PCIParameters; /* 0x0E */ diff --git a/sys/dev/mpi3mr/mpi/mpi30_image.h b/sys/dev/mpi3mr/mpi/mpi30_image.h index 917763b3e921..73451d80fe58 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_image.h +++ b/sys/dev/mpi3mr/mpi/mpi30_image.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ + #ifndef MPI30_IMAGE_H #define MPI30_IMAGE_H 1 @@ -125,13 +126,16 @@ typedef struct _MPI3_COMPONENT_IMAGE_HEADER /**** Definitions for Flags field ****/ #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MASK (0x00000300) +#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_SHIFT (8) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_UNSPECIFIED (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_NOT_SIGNED (0x00000100) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MICROSOFT_SIGNED (0x00000200) #define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_MASK (0x000000C0) +#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_SHIFT (6) #define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_DEVICE_CERT (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_ALIAS_CERT (0x00000040) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_MASK (0x00000030) +#define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_SHIFT (4) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_CDI (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_DI (0x00000010) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_NVDATA (0x00000008) @@ -332,7 +336,7 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY U8 HashImageType; /* 0x00 */ U8 HashAlgorithm; /* 0x01 */ U8 EncryptionAlgorithm; /* 0x02 */ - U8 Reserved03; /* 0x03 */ + U8 Flags; /* 0x03 */ U16 PublicKeySize; /* 0x04 */ U16 SignatureSize; /* 0x06 */ U32 PublicKey[MPI3_PUBLIC_KEY_MAX]; /* 0x08 */ /* variable length */ @@ -342,16 +346,20 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY /* defines for the HashImageType field */ -#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_SIGNATURE (0x03) +#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_HASH (0x03) +#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_HASH_1_OF_2 (0x04) +#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_HASH_2_OF_2 (0x05) /* defines for the HashAlgorithm field */ #define MPI3_HASH_ALGORITHM_VERSION_MASK (0xE0) +#define MPI3_HASH_ALGORITHM_VERSION_SHIFT (5) #define MPI3_HASH_ALGORITHM_VERSION_NONE (0x00) #define MPI3_HASH_ALGORITHM_VERSION_SHA1 (0x20) /* Obsolete */ #define MPI3_HASH_ALGORITHM_VERSION_SHA2 (0x40) #define MPI3_HASH_ALGORITHM_VERSION_SHA3 (0x60) #define MPI3_HASH_ALGORITHM_SIZE_MASK (0x1F) +#define MPI3_HASH_ALGORITHM_SIZE_SHIFT (0) #define MPI3_HASH_ALGORITHM_SIZE_UNUSED (0x00) #define MPI3_HASH_ALGORITHM_SIZE_SHA256 (0x01) #define MPI3_HASH_ALGORITHM_SIZE_SHA512 (0x02) @@ -368,9 +376,15 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P256 (0x07) /* NIST secp256r1 curve */ #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P384 (0x08) /* NIST secp384r1 curve */ #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P521 (0x09) /* NIST secp521r1 curve */ -#define MPI3_ENCRYPTION_ALGORITHM_LMS_HSS (0x0A) /* Leighton-Micali Signature (LMS) - - * Hierarchical Signature System (HSS) - */ +#define MPI3_ENCRYPTION_ALGORITHM_LMS_HSS (0x0A) /* Leighton-Micali Signature (LMS) */ + /* Hierarchical Signature System (HSS) */ +#define MPI3_ENCRYPTION_ALGORITHM_ML_DSA_87 (0x0B) /* Module-Lattice-Based Sig Algo - Category 5 */ +#define MPI3_ENCRYPTION_ALGORITHM_ML_DSA_65 (0x0C) /* Module-Lattice-Based Sig Algo - Category 3 */ +#define MPI3_ENCRYPTION_ALGORITHM_ML_DSA_44 (0x0D) /* Module-Lattice-Based Sig Algo - Category 2 */ + +/* defines for the Flags field */ +#define MPI3_ENCRYPTED_HASH_ENTRY_FLAGS_PAIRED_KEY_MASK (0x0F) +#define MPI3_ENCRYPTED_HASH_ENTRY_FLAGS_PAIRED_KEY_SHIFT (0) #ifndef MPI3_ENCRYPTED_HASH_ENTRY_MAX #define MPI3_ENCRYPTED_HASH_ENTRY_MAX (1) diff --git a/sys/dev/mpi3mr/mpi/mpi30_init.h b/sys/dev/mpi3mr/mpi/mpi30_init.h index 361fb690fbe6..c24725972162 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_init.h +++ b/sys/dev/mpi3mr/mpi/mpi30_init.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ + #ifndef MPI30_INIT_H #define MPI30_INIT_H 1 @@ -91,12 +92,15 @@ typedef struct _MPI3_SCSI_IO_REQUEST /**** Defines for the Flags field ****/ #define MPI3_SCSIIO_FLAGS_LARGE_CDB_MASK (0x60000000) +#define MPI3_SCSIIO_FLAGS_LARGE_CDB_SHIFT (29) #define MPI3_SCSIIO_FLAGS_CDB_16_OR_LESS (0x00000000) #define MPI3_SCSIIO_FLAGS_CDB_GREATER_THAN_16 (0x20000000) #define MPI3_SCSIIO_FLAGS_CDB_IN_SEPARATE_BUFFER (0x40000000) #define MPI3_SCSIIO_FLAGS_CDB_PRODUCT_SPECIFIC (0x60000000) #define MPI3_SCSIIO_FLAGS_IOC_USE_ONLY_27_MASK (0x18000000) +#define MPI3_SCSIIO_FLAGS_IOC_USE_ONLY_27_SHIFT (27) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_MASK (0x07000000) +#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SHIFT (24) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SIMPLEQ (0x00000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_HEADOFQ (0x01000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_ORDEREDQ (0x02000000) @@ -104,12 +108,15 @@ typedef struct _MPI3_SCSI_IO_REQUEST #define MPI3_SCSIIO_FLAGS_CMDPRI_MASK (0x00F00000) #define MPI3_SCSIIO_FLAGS_CMDPRI_SHIFT (20) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_MASK (0x000C0000) +#define MPI3_SCSIIO_FLAGS_DATADIRECTION_SHIFT (18) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_NO_DATA_TRANSFER (0x00000000) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_WRITE (0x00040000) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_READ (0x00080000) #define MPI3_SCSIIO_FLAGS_DMAOPERATION_MASK (0x00030000) +#define MPI3_SCSIIO_FLAGS_DMAOPERATION_SHIFT (16) #define MPI3_SCSIIO_FLAGS_DMAOPERATION_HOST_PI (0x00010000) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_MASK (0x000000F0) +#define MPI3_SCSIIO_FLAGS_DIVERT_REASON_SHIFT (4) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_IO_THROTTLING (0x00000010) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_WRITE_SAME_TOO_LARGE (0x00000020) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_PROD_SPECIFIC (0x00000080) @@ -167,6 +174,7 @@ typedef struct _MPI3_SCSI_IO_REPLY /**** Defines for the SCSIState field ****/ #define MPI3_SCSI_STATE_SENSE_MASK (0x03) +#define MPI3_SCSI_STATE_SENSE_SHIFT (0) #define MPI3_SCSI_STATE_SENSE_VALID (0x00) #define MPI3_SCSI_STATE_SENSE_FAILED (0x01) #define MPI3_SCSI_STATE_SENSE_BUFF_Q_EMPTY (0x02) diff --git a/sys/dev/mpi3mr/mpi/mpi30_ioc.h b/sys/dev/mpi3mr/mpi/mpi30_ioc.h index 2d45a55b89e8..dc7b478536c3 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_ioc.h +++ b/sys/dev/mpi3mr/mpi/mpi30_ioc.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ + #ifndef MPI30_IOC_H #define MPI30_IOC_H 1 @@ -78,6 +79,7 @@ typedef struct _MPI3_IOC_INIT_REQUEST #define MPI3_IOCINIT_MSGFLAGS_WRITESAMEDIVERT_SUPPORTED (0x08) #define MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED (0x04) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SHIFT (0) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_INLINE (0x02) @@ -103,6 +105,13 @@ typedef struct _MPI3_DRIVER_INFO_LAYOUT } MPI3_DRIVER_INFO_LAYOUT, MPI3_POINTER PTR_MPI3_DRIVER_INFO_LAYOUT, Mpi3DriverInfoLayout_t, MPI3_POINTER pMpi3DriverInfoLayout_t; +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_MASK (0x00000003) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_SHIFT (0) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_GUIDANCE (0x00000000) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL (0x00000001) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_REPORT_AS_HDD (0x00000002) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_REPORT_AS_SSD (0x00000003) + /***************************************************************************** * IOCFacts Request Message * ****************************************************************************/ @@ -181,9 +190,11 @@ typedef struct _MPI3_IOC_FACTS_DATA /**** Defines for the IOCCapabilities field ****/ #define MPI3_IOCFACTS_CAPABILITY_NON_SUPERVISOR_MASK (0x80000000) +#define MPI3_IOCFACTS_CAPABILITY_NON_SUPERVISOR_SHIFT (31) #define MPI3_IOCFACTS_CAPABILITY_SUPERVISOR_IOC (0x00000000) #define MPI3_IOCFACTS_CAPABILITY_NON_SUPERVISOR_IOC (0x80000000) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_MASK (0x00000600) +#define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_SHIFT (9) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_FIXED_THRESHOLD (0x00000000) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_OUTSTANDING_IO (0x00000200) #define MPI3_IOCFACTS_CAPABILITY_COMPLETE_RESET_SUPPORTED (0x00000100) @@ -210,6 +221,7 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_EXCEPT_SAS_DISABLED (0x1000) #define MPI3_IOCFACTS_EXCEPT_SAFE_MODE (0x0800) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_MASK (0x0700) +#define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_SHIFT (8) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_NONE (0x0000) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_LOCAL_VIA_MGMT (0x0100) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_EXT_VIA_MGMT (0x0200) @@ -222,7 +234,10 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_EXCEPT_MANUFACT_CHECKSUM_FAIL (0x0020) #define MPI3_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0010) #define MPI3_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0008) +#define MPI3_IOCFACTS_EXCEPT_BLOCKING_BOOT_EVENT (0x0004) +#define MPI3_IOCFACTS_EXCEPT_SECURITY_SELFTEST_FAILURE (0x0002) #define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_MASK (0x0001) +#define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_SHIFT (0) #define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_PRIMARY (0x0000) #define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_SECONDARY (0x0001) @@ -242,10 +257,12 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_SHIFT (8) #define MPI3_IOCFACTS_FLAGS_MAX_REQ_PER_REPLY_QUEUE_LIMIT (0x00000040) #define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK (0x00000030) +#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_SHIFT (4) #define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_NOT_STARTED (0x00000000) #define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_IN_PROGRESS (0x00000010) #define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_COMPLETE (0x00000020) *** 547 LINES SKIPPED *** From nobody Mon Apr 28 03:25:18 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 4Zm83334D2z5tkbd; Mon, 28 Apr 2025 03:25: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 4Zm83273sbz3cvP; Mon, 28 Apr 2025 03:25:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/1lKlO57NKqQRtNHegTPQyFfOgpZTYOxVM8OFj2CRZ0=; b=Pg3HHphm0doxaaNro4Hn7Du2AMXD4D19WAMHKoui0dHuXf5JnP9jbcnntiZHt5cMrOzA3F GZl4xdhUdokstqRP8XKhMKS16fy1AQlb2ph0n7Bw2Lu7afrL4/fhh/bCv9VFCS8ZOYR7xM oAYoMDdn5nVrvK1TmHcaC5dfUofJwbUGQo8m2NKanSgBR7LskaTZMyBLWg7yrX1NXOZ43z iYjTXET32A4VU4BlcXCqorznVguJAW/Y9kou33G1ZY5CFjkjhSvD7ac7QFx1wBi5nAGVa+ 8vVHODlH37TcH2d2Pzujipu3uVVFQd2KuvAIYt6579KrCey88g5Jr9tVpflDJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810719; a=rsa-sha256; cv=none; b=lxbkvO84o86l0QSczImh9P67XSGDCHDHybFRaq0lneZJODbIm++ndk5jeZ/32S+qVkeoeo 1g20umXlbm0/3hKXknLFtkW+OZDuOr5UBlsEcCt05PWXbfoBoHhl0d+Npyp7QjiZuv7vEw JHhP+2PFwZSW++lZHFiBTP6JlacFiU/7Rpr+4mGfE7NTqE9tveSSHZmy1LGaZ7+VZenI4g 10IDtnrHfdybnyyExNDa81kV5U0iSYDWvxSbWOHIuxs8RASNuJ/PieTWB3lERbdb4tVT+Z yHZYeHslglGeF4Iv5H4xfe7Rjl0+rXIoSbclZScMQ9rSDg2i6LSImR2C4HEA5g== 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=1745810719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/1lKlO57NKqQRtNHegTPQyFfOgpZTYOxVM8OFj2CRZ0=; b=OKwuQTa+LN+wMuUwFXQ6EX5hYQSKOMJfP0bPAh/OoYcMxHTtXK3ROwLP2DSq2Vr8287wKq ZfhEEI59ihqYyilWcME4s3f7Rr+dPZJ0lru4Txn09w4mHWTAlXUIMU47laJdTwEa0DqpVW 8Zky82nT7DpeU89jlCo/MVqFFCJpF88978adJEDACGH9bT2h93pB6k9Ua2NRKkCzpidBH3 1x4kASBc3YebXJ1lGCdIgJkYo4U1irz23d1Fn2djojApxIpNGr35VOrAyLTmxO1U8R8P9m 1tvVBGN4PSv5jyNMDDc1X3yltsYXLIZRQyj8e8LNlsSV1Plc80CubGcOmQnqTA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm8326fCdz3L7; Mon, 28 Apr 2025 03:25: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 53S3PIhY014668; Mon, 28 Apr 2025 03:25:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PIkS014665; Mon, 28 Apr 2025 03:25:18 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:18 GMT Message-Id: <202504280325.53S3PIkS014665@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: d14c4ea0caeb - main - mpi3mr: Set Driver Capability for OS Exposure in IOCInit 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d14c4ea0caebb9d0ddb613e348cb8c1a19e8d8fc Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=d14c4ea0caebb9d0ddb613e348cb8c1a19e8d8fc commit d14c4ea0caebb9d0ddb613e348cb8c1a19e8d8fc Author: Chandrakanth patil AuthorDate: 2025-04-27 23:34:12 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:55 +0000 mpi3mr: Set Driver Capability for OS Exposure in IOCInit This patch updates the driver to set the OSExposure field in DriverCapability during IOCInit to MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL(0x1), aligning with the latest MPI specification version 36. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49745 --- sys/dev/mpi3mr/mpi3mr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index a83fb2ddbc4b..1825244f2082 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2145,7 +2145,7 @@ static int mpi3mr_issue_iocinit(struct mpi3mr_softc *sc) strcpy(drvr_info->DriverName, MPI3MR_DRIVER_NAME); strcpy(drvr_info->DriverVersion, MPI3MR_DRIVER_VERSION); strcpy(drvr_info->DriverReleaseDate, MPI3MR_DRIVER_RELDATE); - drvr_info->DriverCapabilities = 0; + drvr_info->DriverCapabilities = MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL; memcpy((U8 *)&sc->driver_info, (U8 *)drvr_info, sizeof(sc->driver_info)); memset(&iocinit_req, 0, sizeof(iocinit_req)); From nobody Mon Apr 28 03:25:19 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 4Zm83452dRz5tknK; Mon, 28 Apr 2025 03:25:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zm83417ybz3cmk; Mon, 28 Apr 2025 03:25:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dILUfG7xQjsOalKA/1y5WrfgGcmEJsl0OQNsgXHtsBk=; b=FebLMhUqcpjXO7jiZ5ycNwRHYk2X2xPqKyJLr218dbuQfWpFZKKnFF4bRad0aVPZ8Mrepe yFmICkNedCNMv44hwJZpT2HAFFWHgLQi8uAvO+rcLZPHPGj/ng/VMUT8IAS8ABZJ5ZjmE2 i4b7062jl/4cQ/T/ueK8rA8VZtWsf68xqRwn8exBs2z86vXfMn6Z/7NjqGK9IJUKBWt8Dk Enh+Aqj44a+nLvB0+Dp5FHRJykGpOvFBTybsuMrlLBt0DmDwyI0239gcNFkT4NL4MMCR0w LVrmX30hsbYb7OM3iZvXzvU71R18uwaA07yww/RAMOoHm9t0SCakkQPXEkiTwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810720; a=rsa-sha256; cv=none; b=cWGB8CU5QlPglCGwLpIv8Jjue2Mzb4ocojK/mg/C6sNVMLjZuEjtVvFaFo/qk/CrXjdybC fcrkjtpK1N5PeB2wQ6Kduq9I+NQRzchGdQk/D9Fbbkq/VydRBmooQerzlFw23sP4UizrZB 7l3rlCF0+8xBKoHSnsEonpKZegslJOaRNniJp/dpbFmexawUXb3tZbyFoz2ix1b/AawCjV JG1fmsXzGA2waltGPnQw5xKQEzR0JPs1uMGwHTi7xDteQokdXMiLs9XNkWGtgsxqE3arom Aot01lNZbBVdDAo5eq9Rhp1rzJ/Rw/NZ1+jK4T1Qd0i9AGuITQE/mOXzYOdF7g== 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=1745810720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dILUfG7xQjsOalKA/1y5WrfgGcmEJsl0OQNsgXHtsBk=; b=Qyo08JIl11WESNfNBOgKrPFBVKOqLEFjvnKutVwDmrqbQV3p/V3PHsU46VSp9UlbLx2cv0 MZx15wimFvUcvlLiPZY966LOBz4HFW8x9KWjn1kaYN8+Qu9HExYLv9qyob8BeDoT7dx5Y5 oNzaf0x70DVyEG9wfNv+/bwLt7r3qLo7CT61sh/y4UlP+hMtgmEbUdDN1F5+2aIpj+f2gq xVqoEIzA5v+Odgr0SURTDMbwxaAD5w6/NXi63kVWqAbkvoQ+TLmcPjAOFbJYZ2sm223dar KADGcIAr5KKCcGt9lnDehsrLXCqmkHzO3NMnsLkJRltdpu9UUIpoiyOavghG9Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm8340WPSz3C4; Mon, 28 Apr 2025 03:25:20 +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 53S3PJuq014701; Mon, 28 Apr 2025 03:25:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PJUC014698; Mon, 28 Apr 2025 03:25:19 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:19 GMT Message-Id: <202504280325.53S3PJUC014698@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: e977ed50bb2b - main - mpi3mr: Enhance Controller Enable Retry Logic in Host 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e977ed50bb2b9fce5e285756673286c5fcfb1f31 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e977ed50bb2b9fce5e285756673286c5fcfb1f31 commit e977ed50bb2b9fce5e285756673286c5fcfb1f31 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:34:54 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:55 +0000 mpi3mr: Enhance Controller Enable Retry Logic in Host Drivers This patch improves the retry logic during the IOC enable process. If a controller faults or if the reset history bit is detected during the ready status check, the driver will retry initialization up to three times or until 510 seconds have passed. A soft reset will also be issued if the controller is detected while waiting for the ready status. This enhances reliability during controller initialization. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49746 --- sys/dev/mpi3mr/mpi3mr.c | 216 ++++++++++++++++++++++++++---------------------- 1 file changed, 118 insertions(+), 98 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 1825244f2082..5688d6bb8d25 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1147,7 +1147,7 @@ enum mpi3mr_iocstate mpi3mr_get_iocstate(struct mpi3mr_softc *sc) return MRIOC_STATE_RESET_REQUESTED; } -static inline void mpi3mr_clear_resethistory(struct mpi3mr_softc *sc) +static inline void mpi3mr_clear_reset_history(struct mpi3mr_softc *sc) { U32 ioc_status; @@ -1177,7 +1177,7 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) mpi3mr_dprint(sc, MPI3MR_ERROR, "IOC is unrecoverable MUR not issued\n"); return retval; } - mpi3mr_clear_resethistory(sc); + mpi3mr_clear_reset_history(sc); scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << MPI3MR_RESET_REASON_OSTYPE_SHIFT) | @@ -1192,7 +1192,7 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) do { ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); if ((ioc_status & MPI3_SYSIF_IOC_STATUS_RESET_HISTORY)) { - mpi3mr_clear_resethistory(sc); + mpi3mr_clear_reset_history(sc); ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); if (!((ioc_status & MPI3_SYSIF_IOC_STATUS_READY) || @@ -1222,24 +1222,44 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) * * Return: 0 on success, appropriate error on failure. */ -static int mpi3mr_bring_ioc_ready(struct mpi3mr_softc *sc) +static int mpi3mr_bring_ioc_ready(struct mpi3mr_softc *sc, + U64 *start_time) { - U32 ioc_config, timeout; - enum mpi3mr_iocstate current_state; + enum mpi3mr_iocstate current_state; + U32 ioc_status; + int retval; - ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); - ioc_config |= MPI3_SYSIF_IOC_CONFIG_ENABLE_IOC; + U32 ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); + ioc_config |= MPI3_SYSIF_IOC_CONFIG_ENABLE_IOC; mpi3mr_regwrite(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET, ioc_config); - timeout = sc->ready_timeout * 10; - do { - current_state = mpi3mr_get_iocstate(sc); - if (current_state == MRIOC_STATE_READY) - return 0; - DELAY(100 * 1000); - } while (--timeout); + if (*start_time == 0) + *start_time = ticks; + + do { + ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); + if (ioc_status & (MPI3_SYSIF_IOC_STATUS_FAULT | MPI3_SYSIF_IOC_STATUS_RESET_HISTORY)) { + if (ioc_status & MPI3_SYSIF_IOC_STATUS_FAULT) { + mpi3mr_print_fault_info(sc); + retval = mpi3mr_issue_reset(sc, MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET, MPI3MR_RESET_FROM_BRINGUP); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Failed to soft reset the IOC, error 0x%d\n", __func__, retval); + return -1; + } + } + mpi3mr_clear_reset_history(sc); + return EAGAIN; + } + + current_state = mpi3mr_get_iocstate(sc); + if (current_state == MRIOC_STATE_READY) + return 0; + + DELAY(100 * 1000); - return -1; + } while (((ticks - *start_time) / hz) < sc->ready_timeout); + + return -1; } static const struct { @@ -2717,14 +2737,16 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) { int retval = 0; enum mpi3mr_iocstate ioc_state; - U64 ioc_info; + U64 ioc_info, start_ticks = 0; U32 ioc_status, ioc_control, i, timeout; Mpi3IOCFactsData_t facts_data; char str[32]; U32 size; + U8 retry = 0; sc->cpu_count = mp_ncpus; +retry_init: ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); ioc_control = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); ioc_info = mpi3mr_regread64(sc, MPI3_SYSIF_IOC_INFO_LOW_OFFSET); @@ -2732,28 +2754,25 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) mpi3mr_dprint(sc, MPI3MR_INFO, "SOD ioc_status: 0x%x ioc_control: 0x%x " "ioc_info: 0x%lx\n", ioc_status, ioc_control, ioc_info); - /*The timeout value is in 2sec unit, changing it to seconds*/ + /*The timeout value is in 2sec unit, changing it to seconds*/ sc->ready_timeout = ((ioc_info & MPI3_SYSIF_IOC_INFO_LOW_TIMEOUT_MASK) >> MPI3_SYSIF_IOC_INFO_LOW_TIMEOUT_SHIFT) * 2; ioc_state = mpi3mr_get_iocstate(sc); - mpi3mr_dprint(sc, MPI3MR_INFO, "IOC state: %s IOC ready timeout: %d\n", mpi3mr_iocstate_name(ioc_state), sc->ready_timeout); - if (ioc_state == MRIOC_STATE_BECOMING_READY || - ioc_state == MRIOC_STATE_RESET_REQUESTED) { - timeout = sc->ready_timeout * 10; - do { - DELAY(1000 * 100); - } while (--timeout); - + timeout = sc->ready_timeout * 10; + do { ioc_state = mpi3mr_get_iocstate(sc); - mpi3mr_dprint(sc, MPI3MR_INFO, - "IOC in %s state after waiting for reset time\n", - mpi3mr_iocstate_name(ioc_state)); - } + + if (ioc_state != MRIOC_STATE_BECOMING_READY && + ioc_state != MRIOC_STATE_RESET_REQUESTED) + break; + + DELAY(1000 * 100); + } while (--timeout); if (ioc_state == MRIOC_STATE_READY) { retval = mpi3mr_mur_ioc(sc, MPI3MR_RESET_FROM_BRINGUP); @@ -2774,44 +2793,48 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) mpi3mr_dprint(sc, MPI3MR_ERROR, "%s :Failed to soft reset IOC, error 0x%d\n", __func__, retval); - goto out_failed; + goto err_retry; } } - + ioc_state = mpi3mr_get_iocstate(sc); if (ioc_state != MRIOC_STATE_RESET) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Cannot bring IOC to reset state\n"); - goto out_failed; + goto err_retry; } retval = mpi3mr_setup_admin_qpair(sc); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to setup Admin queues, error 0x%x\n", retval); - goto out_failed; + if (retval == ENOMEM) + goto err; + goto err_retry; } - - retval = mpi3mr_bring_ioc_ready(sc); + + retval = mpi3mr_bring_ioc_ready(sc, &start_ticks); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to bring IOC ready, error 0x%x\n", - retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to bring IOC ready, error 0x%x\n", retval); + if (retval == EAGAIN) + goto err_retry; + goto err; } + if (init_type == MPI3MR_INIT_TYPE_INIT) { retval = mpi3mr_alloc_interrupts(sc, 1); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate interrupts, error 0x%x\n", retval); - goto out_failed; + goto err; } - + retval = mpi3mr_setup_irqs(sc); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to setup ISR, error 0x%x\n", retval); - goto out_failed; + goto err; } } @@ -2871,25 +2894,30 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) retval = mpi3mr_issue_iocfacts(sc, &facts_data); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Facts, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Facts, error: 0x%x\n", retval); - goto out_failed; + if (retval == ENOMEM) + goto err; + goto err_retry; } retval = mpi3mr_process_factsdata(sc, &facts_data); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "IOC Facts data processing failedi, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "IOC Facts data processing failed, error: 0x%x\n", retval); - goto out_failed; + goto err_retry; } sc->num_io_throttle_group = sc->facts.max_io_throttle_group; mpi3mr_atomic_set(&sc->pend_large_data_sz, 0); - + if (init_type == MPI3MR_INIT_TYPE_RESET) { retval = mpi3mr_validate_fw_update(sc); - if (retval) - goto out_failed; + if (retval) { + if (retval == ENOMEM) + goto err; + goto err_retry; + } } else { sc->reply_sz = sc->facts.reply_sz; } @@ -2898,25 +2926,27 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) retval = mpi3mr_reply_alloc(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated reply and sense buffers, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated reply and sense buffers, error: 0x%x\n", retval); - goto out_failed; + goto err; } - + if (init_type == MPI3MR_INIT_TYPE_INIT) { retval = mpi3mr_alloc_chain_bufs(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated chain buffers, retval: 0x%x\n", - retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated chain buffers, error: 0x%x\n", + retval); + goto err; } } - + retval = mpi3mr_issue_iocinit(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Init, retval: 0x%x\n", - retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Init, error: 0x%x\n", + retval); + if (retval == ENOMEM) + goto err; + goto err_retry; } mpi3mr_print_fw_pkg_ver(sc); @@ -2924,77 +2954,84 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) sc->reply_free_q_host_index = sc->num_reply_bufs; mpi3mr_regwrite(sc, MPI3_SYSIF_REPLY_FREE_HOST_INDEX_OFFSET, sc->reply_free_q_host_index); - + sc->sense_buf_q_host_index = sc->num_sense_bufs; - + mpi3mr_regwrite(sc, MPI3_SYSIF_SENSE_BUF_FREE_HOST_INDEX_OFFSET, sc->sense_buf_q_host_index); if (init_type == MPI3MR_INIT_TYPE_INIT) { retval = mpi3mr_alloc_interrupts(sc, 0); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate interrupts, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate interrupts, error: 0x%x\n", retval); - goto out_failed; + goto err; } retval = mpi3mr_setup_irqs(sc); if (retval) { - printf(IOCNAME "Failed to setup ISR, error: 0x%x\n", - sc->name, retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to setup ISR, error: 0x%x\n", retval); + goto err; } mpi3mr_enable_interrupts(sc); } else mpi3mr_enable_interrupts(sc); - - retval = mpi3mr_create_op_queues(sc); + retval = mpi3mr_create_op_queues(sc); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to create operational queues, error: %d\n", retval); - goto out_failed; + if (retval == ENOMEM) + goto err; + goto err_retry; } if (!sc->throttle_groups && sc->num_io_throttle_group) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "allocating memory for throttle groups\n"); size = sizeof(struct mpi3mr_throttle_group_info); sc->throttle_groups = (struct mpi3mr_throttle_group_info *) malloc(sc->num_io_throttle_group * size, M_MPI3MR, M_NOWAIT | M_ZERO); - if (!sc->throttle_groups) - goto out_failed; + if (!sc->throttle_groups) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "throttle groups memory allocation failed\n"); + goto err; + } } if (init_type == MPI3MR_INIT_TYPE_RESET) { - mpi3mr_dprint(sc, MPI3MR_INFO, "Re-register events\n"); + mpi3mr_dprint(sc, MPI3MR_XINFO, "Re-register events\n"); retval = mpi3mr_register_events(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to re-register events, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to re-register events, error: 0x%x\n", retval); - goto out_failed; + goto err_retry; } mpi3mr_dprint(sc, MPI3MR_INFO, "Issuing Port Enable\n"); retval = mpi3mr_issue_port_enable(sc, 0); if (retval) { - mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to issue port enable, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to issue port enable, error: 0x%x\n", retval); - goto out_failed; + goto err_retry; } } retval = mpi3mr_pel_alloc(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate memory for PEL, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate memory for PEL, error: 0x%x\n", retval); - goto out_failed; + goto err; } - + return retval; -out_failed: +err_retry: + if ((retry++ < 2) && (((ticks - start_ticks) / hz) < (sc->ready_timeout - 60))) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Retrying controller initialization," + "retry_count: %d\n", retry); + goto retry_init; + } +err: retval = -1; return retval; } @@ -5734,23 +5771,6 @@ static void mpi3mr_flush_io(struct mpi3mr_softc *sc) } } } -/** - * mpi3mr_clear_reset_history - Clear reset history - * @sc: Adapter instance reference - * - * Write the reset history bit in IOC Status to clear the bit, - * if it is already set. - * - * Return: Nothing. - */ -static inline void mpi3mr_clear_reset_history(struct mpi3mr_softc *sc) -{ - U32 ioc_status; - - ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); - if (ioc_status & MPI3_SYSIF_IOC_STATUS_RESET_HISTORY) - mpi3mr_regwrite(sc, MPI3_SYSIF_IOC_STATUS_OFFSET, ioc_status); -} /** * mpi3mr_set_diagsave - Set diag save bit for snapdump From nobody Mon Apr 28 03:25:21 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 4Zm836138Gz5tkwx; Mon, 28 Apr 2025 03: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 4Zm835254Tz3cxY; Mon, 28 Apr 2025 03:25:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fvCALm2gpyb01v/c+LFGu7RYQJ0R2dyqL4LS08SPLTE=; b=Ud4T52Iz0z9vMDdmEm/CUYLD81WMBSremARyhv/LDQP7DjQdAvWFWBkLnbEH9J5TDZd0C2 TT/lJxUIAS7nb7vLGGCwzA7fh0t1XsK6NAGRAL+JyZkdwDkyWp1lQ4/Lp8QPAPeVDAOrdk QnsD3oAQxM2Cbu3NShhcoaVWZoolw/w62nGZMs/0LGEAj6ioRnpJTvechVXa4rUsO4aCe9 Q0yJjrPMo8pF0nlhVbGJ+iMEbJNPhL/zkdMqY+lNIx/3xU/wMB56a/+mExoSJCAQcgYFec XGKFPbLqs1SrYSlqbTdrQhhomW61awZZVQ9bgeburil1h8Ymn/3oMf5JHIBsUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810721; a=rsa-sha256; cv=none; b=r3ZVyQQokVLp5RGhVTBkRmwpR2UHPbwbBJwaJuZCJSgpqAaELuFbvpPULLJnNwJ7VPqGEf H66/d01pzBEmeoclQz8uRwtG52QKjxRUQjJ86TUWb/JXsxy94dfD4nn5qgSfOz/n45j4He G7My2Irdd9z8G7X76YQVk0yiIS8dfXzLAq5Fm3w0OS80/koyVfAXYQixKl4g3wqZY2J4bS mWUvHcwl3vrsvu5aDhYlDQ23f8uTnJHna9jvEMYD9peayammYkQUcf0HeU/182fIe5ShA4 SkJBXBI/b3vOYq1zzr+oWxlNq1SGxusLYPSXEYhUHe/Ru7g+da/3/LPsRY+oTw== 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=1745810721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fvCALm2gpyb01v/c+LFGu7RYQJ0R2dyqL4LS08SPLTE=; b=Fec06nLSq2RjkbBTQk+RRRi5fy46QxCK1Lnm3oa5ZWrpiFsSKdfx0QiV3Plon2HlVXdW9+ +ldUtexh7YIEizMfWSBqvgGvtd4yPPEOag8poVWLVeThl0bXutYwbKUX8z9/0Xgz8M+mVf F2LvoFfc9d41+FwO1VUenVII3QQpZaosjH0+rEYjdov/fyn4uD995Oo0VOPzll4Mc9xPz7 1ylIVDhWDz0g+0734jBLcsW+LZcb/mKhWft91zLo0M/R0Vl/KzQoOXtaiyqMno9LonBON9 t/K123HoI2l3/OTbCFpcXZc4ua9I31VFpDYvUXwCh/Q7aUJU5QIahBbL3eGRYw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm8351TYQz3Hl; Mon, 28 Apr 2025 03:25:21 +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 53S3PLaF014741; Mon, 28 Apr 2025 03:25:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PL2f014738; Mon, 28 Apr 2025 03:25:21 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:21 GMT Message-Id: <202504280325.53S3PL2f014738@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 116c8b18a2b5 - main - mpi3mr: Handle Insufficient Power Fault Code 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 116c8b18a2b5278df0d1982a683193c3dba6f30c Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=116c8b18a2b5278df0d1982a683193c3dba6f30c commit 116c8b18a2b5278df0d1982a683193c3dba6f30c Author: Chandrakanth patil AuthorDate: 2025-04-27 23:35:23 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:55 +0000 mpi3mr: Handle Insufficient Power Fault Code The driver now checks for insufficient power faults during the load phase and immediately fails initialization instead of retrying. Additionally, if an insufficient power fault is detected by the watchdog after the controller is up, the controller is marked as unrecoverable instead of triggering a reset. This improves fault handling and avoids unnecessary recovery attempts in low-power conditions. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49747 --- sys/dev/mpi3mr/mpi3mr.c | 50 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 5688d6bb8d25..c92d05d972de 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2784,18 +2784,37 @@ retry_init: } if (ioc_state != MRIOC_STATE_RESET) { - mpi3mr_print_fault_info(sc); - mpi3mr_dprint(sc, MPI3MR_ERROR, "issuing soft reset to bring to reset state\n"); - retval = mpi3mr_issue_reset(sc, - MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET, - MPI3MR_RESET_FROM_BRINGUP); - if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, - "%s :Failed to soft reset IOC, error 0x%d\n", - __func__, retval); + if (ioc_state == MRIOC_STATE_FAULT) { + mpi3mr_print_fault_info(sc); + + U32 fault = mpi3mr_regread(sc, MPI3_SYSIF_FAULT_OFFSET) & + MPI3_SYSIF_FAULT_CODE_MASK; + if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) + mpi3mr_dprint(sc, MPI3MR_INFO, + "controller faulted due to insufficient power. " + "try by connecting it in a different slot\n"); + goto err; + + U32 host_diagnostic; + timeout = MPI3_SYSIF_DIAG_SAVE_TIMEOUT * 10; + do { + host_diagnostic = mpi3mr_regread(sc, MPI3_SYSIF_HOST_DIAG_OFFSET); + if (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_SAVE_IN_PROGRESS)) + break; + DELAY(100 * 1000); + } while (--timeout); + } + mpi3mr_dprint(sc, MPI3MR_ERROR, "issuing soft reset to bring to reset state\n"); + retval = mpi3mr_issue_reset(sc, + MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET, + MPI3MR_RESET_FROM_BRINGUP); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, + "%s :Failed to soft reset IOC, error 0x%d\n", + __func__, retval); goto err_retry; - } - } + } + } ioc_state = mpi3mr_get_iocstate(sc); @@ -3165,6 +3184,15 @@ mpi3mr_watchdog_thread(void *arg) sc->unrecoverable = 1; break; } + + if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) { + mpi3mr_dprint(sc, MPI3MR_INFO, + "controller faulted due to insufficient power, marking" + " controller as unrecoverable\n"); + sc->unrecoverable = 1; + break; + } + if ((fault == MPI3_SYSIF_FAULT_CODE_DIAG_FAULT_RESET) || (fault == MPI3_SYSIF_FAULT_CODE_SOFT_RESET_IN_PROGRESS) || (sc->reset_in_progress)) From nobody Mon Apr 28 03:25:22 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 4Zm8363Wn0z5tkbf; Mon, 28 Apr 2025 03: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 4Zm8362VnBz3cgh; Mon, 28 Apr 2025 03: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=1745810722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mm4CGzvtWJO4B90DIy31Uj2fGDVA1uVZz7DDZzgm5AY=; b=F10oPTHw+l5cyZT+3D2xEieMrMEG0T00KgvOWN0ZFLRzG/SS488btGHcdnU94W1j+GDIf2 3vOpz+bgys4qcIjYrUiwS9jynamgZsycB069DKnMdDtRPupiDuA2GA9CLuTkqmjWiz3CYc 7DFDYwBSfj2jisgkBTFwASeCEIw+009veIXu2XGeoAz8bVw/hZAk6W5K/bmgFYvuhNdkS8 jCwRYLxT1cikDVz5P7J5JBCknqEW2JA28kcZSMhhBTZeMaLhLtYGqtbZkOfkYldhLLzyHn WTSSImndSc1aJ9Jt2muO+Ttla5SgxqKX06W7u3gpxlAOarWjIH/GkGACcEjSjw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810722; a=rsa-sha256; cv=none; b=DUIC+VYwPPKLKnXuP3tJ022lpWni6UeCznjfEgKZe8CAImrH2xNkjfHpCNBvq3F8i6+JIT eKUKxJqZVsxLP3mR34FlGQLhAuTzdFzZu+CvO2HamTOecra2l5VV6iT9jMshRcteKT5e/5 7RSfDU4Y0ZjtjfaPgVJFD/pt2cQ791coFeM420uVnx246u3KDsZZj/Nixp8qrRZwB0EOwJ K5ew+DPx4VBDJO59A/9uAtSYIeKwAwKbpPfdL+K2MB/I3FugdO9ynwOFCUmut/xZRLdYeq Y6YIKilGTxdnn0fPN+wiCah1qPKdX6kUiR+yiaNpe8NN2BN696pYtowFRl3b8A== 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=1745810722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mm4CGzvtWJO4B90DIy31Uj2fGDVA1uVZz7DDZzgm5AY=; b=QSVrFrFlE+5ifpblWz0DNmubQpV1tRT7MLV7B6og1OW0LbmQ5atUPOoLfERE7I8QqD091W RdPs5Qq5cBa7V8EgX6k9UHR22VZfDB1pLLn8ySorN9Q0l95IRF9WaARtis/xyhZzGpDE9y oH/Vb2YaaZKQ6appxQuVjXCAipEDbm0N67IZQn26vLDFIq4zgrg6UVYdXWmFzX4RwB0G+X PxcVg9V09zpzdOPf9WsLWNzgcv0Iy5/Jo/BZiMt1xFP+OAeVmzPrEeZEAWrzoqgMkfQCr1 i23RncATVfC26g9tL3IAvgYENWUFkWEK5lYW8d06Al6OR4kgBaJ40ro0rlSydQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm83626Dcz3ZR; Mon, 28 Apr 2025 03: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 53S3PMY6014774; Mon, 28 Apr 2025 03: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 53S3PM4m014771; Mon, 28 Apr 2025 03:25:22 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:22 GMT Message-Id: <202504280325.53S3PM4m014771@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: e80317babdb9 - main - mpi3mr: Add NVData Parameter for Host Timestamp Synchronization 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e80317babdb9044962dcbf16c69633579cd90b00 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e80317babdb9044962dcbf16c69633579cd90b00 commit e80317babdb9044962dcbf16c69633579cd90b00 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:39:23 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:55 +0000 mpi3mr: Add NVData Parameter for Host Timestamp Synchronization The driver now retrieves the Time Stamp value from Driver Page 1 during load and after controller reset. If the value is valid, it is used to enable periodic host timestamp synchronization. This adds a tunable NVData parameter to control the behavior of host time sync, enhancing flexibility and platform-specific control. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49748 --- sys/dev/mpi3mr/mpi3mr.c | 325 ++++++++++++++++++++++++++++++++++++++++++++ sys/dev/mpi3mr/mpi3mr.h | 14 +- sys/dev/mpi3mr/mpi3mr_pci.c | 25 +++- 3 files changed, 362 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index c92d05d972de..398569a3963c 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1338,6 +1338,7 @@ static const struct { "diagnostic buffer post timeout" }, { MPI3MR_RESET_FROM_FIRMWARE, "firmware asynchronus reset" }, + { MPI3MR_RESET_FROM_CFG_REQ_TIMEOUT, "configuration request timeout" }, { MPI3MR_RESET_REASON_COUNT, "Reset reason count" }, }; @@ -1915,6 +1916,15 @@ static int mpi3mr_reply_alloc(struct mpi3mr_softc *sc) goto out_failed; } + sc->cfg_cmds.reply = malloc(sc->reply_sz, + M_MPI3MR, M_NOWAIT | M_ZERO); + + if (!sc->cfg_cmds.reply) { + printf(IOCNAME "Cannot allocate memory for cfg_cmds.reply\n", + sc->name); + goto out_failed; + } + sc->ioctl_cmds.reply = malloc(sc->reply_sz, M_MPI3MR, M_NOWAIT | M_ZERO); if (!sc->ioctl_cmds.reply) { printf(IOCNAME "Cannot allocate memory for ioctl_cmds.reply\n", @@ -2877,6 +2887,12 @@ retry_init: sc->init_cmds.dev_handle = MPI3MR_INVALID_DEV_HANDLE; sc->init_cmds.host_tag = MPI3MR_HOSTTAG_INITCMDS; + mtx_init(&sc->cfg_cmds.completion.lock, "CFG commands lock", NULL, MTX_DEF); + sc->cfg_cmds.reply = NULL; + sc->cfg_cmds.state = MPI3MR_CMD_NOTUSED; + sc->cfg_cmds.dev_handle = MPI3MR_INVALID_DEV_HANDLE; + sc->cfg_cmds.host_tag = MPI3MR_HOSTTAG_CFGCMDS; + mtx_init(&sc->ioctl_cmds.completion.lock, "IOCTL commands lock", NULL, MTX_DEF); sc->ioctl_cmds.reply = NULL; sc->ioctl_cmds.state = MPI3MR_CMD_NOTUSED; @@ -3042,6 +3058,9 @@ retry_init: goto err; } + if (mpi3mr_cfg_get_driver_pg1(sc) != 0) + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to get the cfg driver page1\n"); + return retval; err_retry: @@ -3119,6 +3138,116 @@ out: return retval; } +static int mpi3mr_timestamp_sync(struct mpi3mr_softc *sc) +{ + int retval = 0; + struct timeval current_time; + int64_t time_in_msec; + Mpi3IoUnitControlRequest_t iou_ctrl = {0}; + + mtx_lock(&sc->init_cmds.completion.lock); + if (sc->init_cmds.state & MPI3MR_CMD_PENDING) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: command is in use\n"); + mtx_unlock(&sc->init_cmds.completion.lock); + return -1; + } + + sc->init_cmds.state = MPI3MR_CMD_PENDING; + sc->init_cmds.is_waiting = 1; + sc->init_cmds.callback = NULL; + iou_ctrl.HostTag = htole64(MPI3MR_HOSTTAG_INITCMDS); + iou_ctrl.Function = MPI3_FUNCTION_IO_UNIT_CONTROL; + iou_ctrl.Operation = MPI3_CTRL_OP_UPDATE_TIMESTAMP; + getmicrotime(¤t_time); + time_in_msec = (int64_t)current_time.tv_sec * 1000 + current_time.tv_usec/1000; + iou_ctrl.Param64[0] = htole64(time_in_msec); + + init_completion(&sc->init_cmds.completion); + + retval = mpi3mr_submit_admin_cmd(sc, &iou_ctrl, sizeof(iou_ctrl)); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "timestamp sync: Admin Post failed\n"); + goto out_unlock; + } + + wait_for_completion_timeout(&sc->init_cmds.completion, + (MPI3MR_INTADMCMD_TIMEOUT)); + + if (!(sc->init_cmds.state & MPI3MR_CMD_COMPLETE)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: command timed out\n"); + sc->init_cmds.is_waiting = 0; + + if (!(sc->init_cmds.state & MPI3MR_CMD_RESET)) + mpi3mr_check_rh_fault_ioc(sc, MPI3MR_RESET_FROM_TSU_TIMEOUT); + + retval = -1; + goto out_unlock; + } + + if (((sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK) != MPI3_IOCSTATUS_SUCCESS) && + (sc->init_cmds.ioc_status != MPI3_IOCSTATUS_SUPERVISOR_ONLY)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: Failed IOCStatus(0x%04x) " + " Loginfo(0x%08x) \n", (sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK), + sc->init_cmds.ioc_loginfo); + retval = -1; + } + +out_unlock: + sc->init_cmds.state = MPI3MR_CMD_NOTUSED; + mtx_unlock(&sc->init_cmds.completion.lock); + + return retval; +} + +void +mpi3mr_timestamp_thread(void *arg) +{ + struct mpi3mr_softc *sc = (struct mpi3mr_softc *)arg; + U64 elapsed_time = 0; + + sc->timestamp_thread_active = 1; + mtx_lock(&sc->reset_mutex); + while (1) { + + if (sc->mpi3mr_flags & MPI3MR_FLAGS_SHUTDOWN || + (sc->unrecoverable == 1)) { + mpi3mr_dprint(sc, MPI3MR_INFO, + "Exit due to %s from %s\n", + sc->mpi3mr_flags & MPI3MR_FLAGS_SHUTDOWN ? "Shutdown" : + "Hardware critical error", __func__); + break; + } + mtx_unlock(&sc->reset_mutex); + + while (sc->reset_in_progress) { + if (elapsed_time) + elapsed_time = 0; + if (sc->unrecoverable) + break; + pause("mpi3mr_timestamp_thread", hz / 5); + } + + if (elapsed_time++ >= sc->ts_update_interval * 60) { + mpi3mr_timestamp_sync(sc); + elapsed_time = 0; + } + + /* + * Sleep for 1 second if we're not exiting, then loop to top + * to poll exit status and hardware health. + */ + mtx_lock(&sc->reset_mutex); + if (((sc->mpi3mr_flags & MPI3MR_FLAGS_SHUTDOWN) == 0) && + (!sc->unrecoverable) && (!sc->reset_in_progress)) { + msleep(&sc->timestamp_chan, &sc->reset_mutex, PRIBIO, + "mpi3mr_timestamp", 1 * hz); + } + } + mtx_unlock(&sc->reset_mutex); + sc->timestamp_thread_active = 0; + kproc_exit(0); +} + void mpi3mr_watchdog_thread(void *arg) { @@ -4398,6 +4527,9 @@ static void mpi3mr_process_admin_reply_desc(struct mpi3mr_softc *sc, case MPI3MR_HOSTTAG_INITCMDS: cmdptr = &sc->init_cmds; break; + case MPI3MR_HOSTTAG_CFGCMDS: + cmdptr = &sc->cfg_cmds; + break; case MPI3MR_HOSTTAG_IOCTLCMDS: cmdptr = &sc->ioctl_cmds; break; @@ -5303,6 +5435,184 @@ out_failed: mpi3mr_free_ioctl_dma_memory(sc); } +static void inline +mpi3mr_free_dma_mem(struct mpi3mr_softc *sc, + struct dma_memory_desc *mem_desc) +{ + if (mem_desc->dma_addr) + bus_dmamap_unload(mem_desc->tag, mem_desc->dmamap); + + if (mem_desc->addr != NULL) { + bus_dmamem_free(mem_desc->tag, mem_desc->addr, mem_desc->dmamap); + mem_desc->addr = NULL; + } + + if (mem_desc->tag != NULL) + bus_dma_tag_destroy(mem_desc->tag); +} + +static int +mpi3mr_alloc_dma_mem(struct mpi3mr_softc *sc, + struct dma_memory_desc *mem_desc) +{ + int retval; + + if (bus_dma_tag_create(sc->mpi3mr_parent_dmat, /* parent */ + 4, 0, /* algnmnt, boundary */ + sc->dma_loaddr, /* lowaddr */ + sc->dma_hiaddr, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + mem_desc->size, /* maxsize */ + 1, /* nsegments */ + mem_desc->size, /* maxsize */ + 0, /* flags */ + NULL, NULL, /* lockfunc, lockarg */ + &mem_desc->tag)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Cannot allocate DMA tag\n", __func__); + return ENOMEM; + } + + if (bus_dmamem_alloc(mem_desc->tag, (void **)&mem_desc->addr, + BUS_DMA_NOWAIT, &mem_desc->dmamap)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Cannot allocate DMA memory\n", __func__); + retval = ENOMEM; + goto out; + } + + bzero(mem_desc->addr, mem_desc->size); + + bus_dmamap_load(mem_desc->tag, mem_desc->dmamap, mem_desc->addr, mem_desc->size, + mpi3mr_memaddr_cb, &mem_desc->dma_addr, BUS_DMA_NOWAIT); + + if (!mem_desc->addr) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Cannot load DMA map\n", __func__); + retval = ENOMEM; + goto out; + } + return 0; +out: + mpi3mr_free_dma_mem(sc, mem_desc); + return retval; +} + +static int +mpi3mr_post_cfg_req(struct mpi3mr_softc *sc, Mpi3ConfigRequest_t *cfg_req) +{ + int retval; + + mtx_lock(&sc->cfg_cmds.completion.lock); + if (sc->cfg_cmds.state & MPI3MR_CMD_PENDING) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue cfg request: cfg command is in use\n"); + mtx_unlock(&sc->cfg_cmds.completion.lock); + return -1; + } + + sc->cfg_cmds.state = MPI3MR_CMD_PENDING; + sc->cfg_cmds.is_waiting = 1; + sc->cfg_cmds.callback = NULL; + sc->cfg_cmds.ioc_status = 0; + sc->cfg_cmds.ioc_loginfo = 0; + + cfg_req->HostTag = htole16(MPI3MR_HOSTTAG_CFGCMDS); + cfg_req->Function = MPI3_FUNCTION_CONFIG; + cfg_req->PageType = MPI3_CONFIG_PAGETYPE_DRIVER; + cfg_req->PageNumber = 1; + cfg_req->PageAddress = 0; + + init_completion(&sc->cfg_cmds.completion); + + retval = mpi3mr_submit_admin_cmd(sc, cfg_req, sizeof(*cfg_req)); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue cfg request: Admin Post failed\n"); + goto out; + } + + wait_for_completion_timeout(&sc->cfg_cmds.completion, + (MPI3MR_INTADMCMD_TIMEOUT)); + + if (!(sc->cfg_cmds.state & MPI3MR_CMD_COMPLETE)) { + if (!(sc->cfg_cmds.state & MPI3MR_CMD_RESET)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "config request command timed out\n"); + mpi3mr_check_rh_fault_ioc(sc, MPI3MR_RESET_FROM_CFG_REQ_TIMEOUT); + } + retval = -1; + sc->cfg_cmds.is_waiting = 0; + goto out; + } + + if ((sc->cfg_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK) != + MPI3_IOCSTATUS_SUCCESS ) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "config request failed, IOCStatus(0x%04x) " + " Loginfo(0x%08x) \n",(sc->cfg_cmds.ioc_status & + MPI3_IOCSTATUS_STATUS_MASK), sc->cfg_cmds.ioc_loginfo); + retval = -1; + } + +out: + sc->cfg_cmds.state = MPI3MR_CMD_NOTUSED; + mtx_unlock(&sc->cfg_cmds.completion.lock); + return retval; +} + +static int mpi3mr_process_cfg_req(struct mpi3mr_softc *sc, + Mpi3ConfigRequest_t *cfg_req, + Mpi3ConfigPageHeader_t *cfg_hdr, + void *cfg_buf, U32 cfg_buf_sz) +{ + int retval; + struct dma_memory_desc mem_desc = {0}; + + if (cfg_req->Action == MPI3_CONFIG_ACTION_PAGE_HEADER) + mem_desc.size = sizeof(Mpi3ConfigPageHeader_t); + else { + mem_desc.size = le16toh(cfg_hdr->PageLength) * 4; + cfg_req->PageLength = cfg_hdr->PageLength; + cfg_req->PageVersion = cfg_hdr->PageVersion; + } + + retval = mpi3mr_alloc_dma_mem(sc, &mem_desc); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Failed to allocate DMA memory\n", __func__); + return retval; + } + + mpi3mr_add_sg_single(&cfg_req->SGL, MPI3MR_SGEFLAGS_SYSTEM_SIMPLE_END_OF_LIST, + mem_desc.size, mem_desc.dma_addr); + + retval = mpi3mr_post_cfg_req(sc, cfg_req); + if (retval) + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Failed to post config request\n", __func__); + else + memcpy(cfg_buf, mem_desc.addr, min(mem_desc.size, cfg_buf_sz)); + + mpi3mr_free_dma_mem(sc, &mem_desc); + return retval; +} + +int mpi3mr_cfg_get_driver_pg1(struct mpi3mr_softc *sc) +{ + int retval; + Mpi3DriverPage1_t driver_pg1 = {0}; + Mpi3ConfigPageHeader_t cfg_hdr = {0}; + Mpi3ConfigRequest_t cfg_req = {0}; + + cfg_req.Action = MPI3_CONFIG_ACTION_PAGE_HEADER; + retval = mpi3mr_process_cfg_req(sc, &cfg_req, NULL, &cfg_hdr, sizeof(cfg_hdr)); + if (retval) + goto error; + + cfg_req.Action = MPI3_CONFIG_ACTION_READ_CURRENT; + retval = mpi3mr_process_cfg_req(sc, &cfg_req, &cfg_hdr, &driver_pg1, sizeof(driver_pg1)); + +error: + if (!retval && driver_pg1.TimeStampUpdate) + sc->ts_update_interval = driver_pg1.TimeStampUpdate; + else + sc->ts_update_interval = MPI3MR_TSUPDATE_INTERVAL; + + return retval; +} + void mpi3mr_destory_mtx(struct mpi3mr_softc *sc) { @@ -5334,6 +5644,9 @@ mpi3mr_destory_mtx(struct mpi3mr_softc *sc) if (mtx_initialized(&sc->init_cmds.completion.lock)) mtx_destroy(&sc->init_cmds.completion.lock); + if (mtx_initialized(&sc->cfg_cmds.completion.lock)) + mtx_destroy(&sc->cfg_cmds.completion.lock); + if (mtx_initialized(&sc->ioctl_cmds.completion.lock)) mtx_destroy(&sc->ioctl_cmds.completion.lock); @@ -5512,6 +5825,11 @@ mpi3mr_free_mem(struct mpi3mr_softc *sc) sc->init_cmds.reply = NULL; } + if (sc->cfg_cmds.reply) { + free(sc->cfg_cmds.reply, M_MPI3MR); + sc->cfg_cmds.reply = NULL; + } + if (sc->ioctl_cmds.reply) { free(sc->ioctl_cmds.reply, M_MPI3MR); sc->ioctl_cmds.reply = NULL; @@ -5629,6 +5947,9 @@ static void mpi3mr_flush_drv_cmds(struct mpi3mr_softc *sc) cmdptr = &sc->init_cmds; mpi3mr_drv_cmd_comp_reset(sc, cmdptr); + cmdptr = &sc->cfg_cmds; + mpi3mr_drv_cmd_comp_reset(sc, cmdptr); + cmdptr = &sc->ioctl_cmds; mpi3mr_drv_cmd_comp_reset(sc, cmdptr); @@ -5672,6 +5993,7 @@ static void mpi3mr_memset_buffers(struct mpi3mr_softc *sc) memset(sc->admin_reply, 0, sc->admin_reply_q_sz); memset(sc->init_cmds.reply, 0, sc->reply_sz); + memset(sc->cfg_cmds.reply, 0, sc->reply_sz); memset(sc->ioctl_cmds.reply, 0, sc->reply_sz); memset(sc->host_tm_cmds.reply, 0, sc->reply_sz); memset(sc->pel_cmds.reply, 0, sc->reply_sz); @@ -6014,6 +6336,9 @@ int mpi3mr_soft_reset_handler(struct mpi3mr_softc *sc, sc->reset_in_progress = 1; sc->block_ioctls = 1; + if (sc->timestamp_thread_active) + wakeup(&sc->timestamp_chan); + while (mpi3mr_atomic_read(&sc->pend_ioctls) && (i < PEND_IOCTLS_COMP_WAIT_TIME)) { ioc_state = mpi3mr_get_iocstate(sc); if (ioc_state == MRIOC_STATE_FAULT) diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index 1ab6b8815f59..f48d58ee85d2 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -141,6 +141,7 @@ #define MPI3MR_HOSTTAG_PELABORT 3 #define MPI3MR_HOSTTAG_PELWAIT 4 #define MPI3MR_HOSTTAG_TMS 5 +#define MPI3MR_HOSTTAG_CFGCMDS 6 #define MAX_MGMT_ADAPTERS 8 #define MPI3MR_WAIT_BEFORE_CTRL_RESET 5 @@ -163,7 +164,7 @@ extern char fmt_os_ver[16]; raw_os_ver[3], raw_os_ver[4], raw_os_ver[5],\ raw_os_ver[6]); #define MPI3MR_NUM_DEVRMCMD 1 -#define MPI3MR_HOSTTAG_DEVRMCMD_MIN (MPI3MR_HOSTTAG_TMS + 1) +#define MPI3MR_HOSTTAG_DEVRMCMD_MIN (MPI3MR_HOSTTAG_CFGCMDS + 1) #define MPI3MR_HOSTTAG_DEVRMCMD_MAX (MPI3MR_HOSTTAG_DEVRMCMD_MIN + \ MPI3MR_NUM_DEVRMCMD - 1) #define MPI3MR_INTERNALCMDS_RESVD MPI3MR_HOSTTAG_DEVRMCMD_MAX @@ -237,6 +238,8 @@ extern char fmt_os_ver[16]; #define WRITE_SAME_32 0x0d +#define MPI3MR_TSUPDATE_INTERVAL 900 + struct completion { unsigned int done; struct mtx lock; @@ -313,6 +316,7 @@ enum mpi3mr_reset_reason { MPI3MR_RESET_FROM_SCSIIO_TIMEOUT = 26, MPI3MR_RESET_FROM_FIRMWARE = 27, MPI3MR_DEFAULT_RESET_REASON = 28, + MPI3MR_RESET_FROM_CFG_REQ_TIMEOUT = 29, MPI3MR_RESET_REASON_COUNT, }; @@ -555,6 +559,7 @@ struct mpi3mr_softc { char driver_name[MPI3MR_NAME_LENGTH]; int bars; bus_addr_t dma_loaddr; + bus_addr_t dma_hiaddr; u_int mpi3mr_debug; struct mpi3mr_reset reset; int max_msix_vectors; @@ -688,6 +693,7 @@ struct mpi3mr_softc { struct mpi3mr_drvr_cmd host_tm_cmds; struct mpi3mr_drvr_cmd dev_rmhs_cmds[MPI3MR_NUM_DEVRMCMD]; struct mpi3mr_drvr_cmd evtack_cmds[MPI3MR_NUM_EVTACKCMD]; + struct mpi3mr_drvr_cmd cfg_cmds; U16 devrem_bitmap_sz; void *devrem_bitmap; @@ -765,6 +771,10 @@ struct mpi3mr_softc { struct dma_memory_desc ioctl_chain_sge; struct dma_memory_desc ioctl_resp_sge; bool ioctl_sges_allocated; + struct proc *timestamp_thread_proc; + void *timestamp_chan; + u_int8_t timestamp_thread_active; + U32 ts_update_interval; }; static __inline uint64_t @@ -977,6 +987,7 @@ void mpi3mrsas_release_simq_reinit(struct mpi3mr_cam_softc *cam_sc); void mpi3mr_watchdog_thread(void *arg); +void mpi3mr_timestamp_thread(void *arg); void mpi3mr_add_device(struct mpi3mr_softc *sc, U16 per_id); int mpi3mr_remove_device(struct mpi3mr_softc *sc, U16 handle); int @@ -996,4 +1007,5 @@ void mpi3mr_poll_pend_io_completions(struct mpi3mr_softc *sc); void int_to_lun(unsigned int lun, U8 *req_lun); void trigger_reset_from_watchdog(struct mpi3mr_softc *sc, U8 reset_type, U16 reset_reason); void mpi3mr_alloc_ioctl_dma_memory(struct mpi3mr_softc *sc); +int mpi3mr_cfg_get_driver_pg1(struct mpi3mr_softc *sc); #endif /*MPI3MR_H_INCLUDED*/ diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index 194401c5a847..808349f26827 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -332,6 +332,13 @@ mpi3mr_ich_startup(void *arg) mtx_unlock(&sc->mpi3mr_mtx); + error = mpi3mr_kproc_create(mpi3mr_timestamp_thread, sc, + &sc->timestamp_thread_proc, 0, 0, + "mpi3mr_timestamp_thread%d", + device_get_unit(sc->mpi3mr_dev)); + if (error) + device_printf(sc->mpi3mr_dev, "Error %d starting timestamp thread\n", error); + error = mpi3mr_kproc_create(mpi3mr_watchdog_thread, sc, &sc->watchdog_thread, 0, 0, "mpi3mr_watchdog%d", device_get_unit(sc->mpi3mr_dev)); @@ -474,7 +481,7 @@ mpi3mr_pci_attach(device_t dev) mpi3mr_dprint(sc, MPI3MR_ERROR, "CAM attach failed\n"); goto load_failed; } - + sc->mpi3mr_ich.ich_func = mpi3mr_ich_startup; sc->mpi3mr_ich.ich_arg = sc; if (config_intrhook_establish(&sc->mpi3mr_ich) != 0) { @@ -664,10 +671,26 @@ mpi3mr_pci_detach(device_t dev) mtx_lock(&sc->reset_mutex); sc->mpi3mr_flags |= MPI3MR_FLAGS_SHUTDOWN; + if (sc->timestamp_thread_active) + wakeup(&sc->timestamp_chan); + if (sc->watchdog_thread_active) wakeup(&sc->watchdog_chan); mtx_unlock(&sc->reset_mutex); + i = 0; + while (sc->timestamp_thread_active && (i < 180)) { + i++; + if (!(i % 5)) { + mpi3mr_dprint(sc, MPI3MR_INFO, + "[%2d]waiting for " + "timestamp thread to quit reset %d\n", i, + sc->timestamp_thread_active); + } + pause("mpi3mr_shutdown", hz); + } + + i = 0; while (sc->reset_in_progress && (i < PEND_IOCTLS_COMP_WAIT_TIME)) { i++; if (!(i % 5)) { From nobody Mon Apr 28 03:25:23 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 4Zm83819s9z5tknM; Mon, 28 Apr 2025 03:25: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 4Zm8373lZDz3cmp; Mon, 28 Apr 2025 03:25:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NYatj9mP6IbDgevjT3n7VtyraEur1EljkI5afhpyRiQ=; b=H4zdXi3qxQ///7S12b37M9BBOw43X0eOExRMHFMXVpN+Sjam/LQF2UzHwbhaPuRKEy1Ijc ka05CEuHcFKgg92Ryj3ryoxOvh0lQRFo5Ma9fTuBJQmcCQfp5PcTX52Nj+ex8ZOTTs7hrk SQ0xOb+w6CL7fdHWsPzw/qgWIGQkiwdVH/4IKdx5GJeefU4txiRpC4evyZ4dRUh7uLlBcm IdhDh5ktbEk6ZGrgA/i/wF5psZEJaKqBnNi3khO6BHt1cXryBWhiPKQV0NnqOawcc2lzld HpzcNjHZMu27E+3uQXDpcHuTX/ED5Xk8R3QUgapd/lK0achFeNmFLs3K2e5REA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810723; a=rsa-sha256; cv=none; b=TCjZDhi4G2c/oe/L2XZv5hVehXvIDZbbx+fxcYSewpN135XjaoRKU91BlpqbyVWtlrBWHb oOlhdQRdoJyv75kIXX0FO8MTHIDvx0BC7wvhae0P8daHZaisZjovAe/Rqn2NYteIUnlEbt U3AIVHupFjf5JD2BP8T6RNmeluJ0frx+oqpZ9AUmm7TD41wyAppD0ONatNwy18djdazBM1 PTahqY7BaYfON4XZ3G6NfLkNLr2lasxpJ1HxzV40x3ZQnO1lIQCNYCoVcBh/GTPVUkGLfW jVuPTaE3MT9igmX/W6TSurpsK8x2uUgmOxmpaD4PilSu43XQYfEcVPZdGgPKbw== 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=1745810723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NYatj9mP6IbDgevjT3n7VtyraEur1EljkI5afhpyRiQ=; b=x0i8NUPLWT4FBVJZegPWWYELw2hkDoLt4SczaZJc07y6dXxxjhGiTderFZyMNaVX20SMTw J/pg+9gX7hCsjX2dhtviVbV+B1lvVrnaMsiKPL7FXSfFmX2bho+G+r8pUgAwlxDe6h+WmG TFu23WiT9sR+KEFZEbD62iD4i3bzx2oUD6MRXhYTqat49kIqh36S/j4cXJZFW5srW9Hp5R gAjPg0vMEaFmQNalzerNk68zWA+YQgkZbtBf3j3YyLSwc26b59VvdQlPx7IQcwqQyKD+AB MX3MpP6WPkLA/84CXLRklgdUJlWtzJ1E3Dy2Jfm3+ttC6zehzm7tiQWLcIXwzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm837316vz3C5; Mon, 28 Apr 2025 03:25: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 53S3PNdU014810; Mon, 28 Apr 2025 03:25:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PNZm014807; Mon, 28 Apr 2025 03:25:23 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:23 GMT Message-Id: <202504280325.53S3PNZm014807@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 49445b54638f - main - mpi3mr: Block I/Os While Task Management is in Progress 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 49445b54638f7b2d45942edd61c70fe0baa28f37 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=49445b54638f7b2d45942edd61c70fe0baa28f37 commit 49445b54638f7b2d45942edd61c70fe0baa28f37 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:39:43 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:56 +0000 mpi3mr: Block I/Os While Task Management is in Progress The driver previously blocked I/Os only for OS-initiated task management commands. This patch extends the behavior to also block I/Os during application-initiated task management operations (excluding Task Abort). Before submitting such commands to the firmware, I/O submissions are paused for the respective device. Once the command completes, I/O operations are resumed. This ensures safe and consistent task management handling. [[ Note: Warner landed this with the pending suggestion since this change is good enough for 14.3, but chs' suggestion for better atomics needs to be implemented soon ]] Discussed with: imp, chs Differential Revision: https://reviews.freebsd.org/D49749 --- sys/dev/mpi3mr/mpi3mr_app.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sys/dev/mpi3mr/mpi3mr_app.c b/sys/dev/mpi3mr/mpi3mr_app.c index 7cd3f13e4117..3a8cf7044d26 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.c +++ b/sys/dev/mpi3mr/mpi3mr_app.c @@ -797,6 +797,8 @@ mpi3mr_app_mptcmds(struct cdev *dev, u_long cmd, void *uarg, struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers = NULL, *dma_buff = NULL; struct mpi3mr_ioctl_mpirepbuf *mpirepbuf = NULL; struct mpi3mr_ioctl_mptcmd *karg = (struct mpi3mr_ioctl_mptcmd *)uarg; + struct mpi3mr_target *tgtdev = NULL; + Mpi3SCSITaskMgmtRequest_t *tm_req = NULL; sc = mpi3mr_app_get_adp_instance(karg->mrioc_id); @@ -1060,6 +1062,18 @@ mpi3mr_app_mptcmds(struct cdev *dev, u_long cmd, void *uarg, } } + if (mpi_header->Function == MPI3_FUNCTION_SCSI_TASK_MGMT) { + tm_req = (Mpi3SCSITaskMgmtRequest_t *)mpi_request; + if (tm_req->TaskType != MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK) { + tgtdev = mpi3mr_find_target_by_dev_handle(sc->cam_sc, tm_req->DevHandle); + if (!tgtdev) { + rval = ENODEV; + goto out; + } + mpi3mr_atomic_inc(&tgtdev->block_io); + } + } + sc->ioctl_cmds.state = MPI3MR_CMD_PENDING; sc->ioctl_cmds.is_waiting = 1; sc->ioctl_cmds.callback = NULL; @@ -1178,6 +1192,9 @@ mpi3mr_app_mptcmds(struct cdev *dev, u_long cmd, void *uarg, sc->mpi3mr_aen_triggered = 0; out_failed: + if (tgtdev) + mpi3mr_atomic_dec(&tgtdev->block_io); + sc->ioctl_cmds.is_senseprst = 0; sc->ioctl_cmds.sensebuf = NULL; sc->ioctl_cmds.state = MPI3MR_CMD_NOTUSED; From nobody Mon Apr 28 03:25:24 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 4Zm83B04bLz5tknQ; Mon, 28 Apr 2025 03:25: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 4Zm8385qfHz3ckg; Mon, 28 Apr 2025 03:25:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810724; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sFL+iY5QrWVB1Cd0nvn+U97H5FpJhNY3RPv5Byphd2g=; b=mqTaajY+PIq57el0IOxwLxNCTexqJ0jGwj5octessdtRabualrylYQK/9glzge50oWuxvM JbSs7cM1a0nbACcYNiDsV3WI8SXtpQtxAk6hJdSgRhDzqOr117rw/J7rYN+jhyuwJcUYdJ 0J8ccV8aqhLeU65vVVJfYQLu5ExaGjo2jhatUrnVRDzPQYKkzRD5ZOZiXYXxZBP26z7npj XNt1wHvEhrumb164V4wuOEJKLJMpgkYTSnr6wUFyf2I3Z2NHKGLN+7BMhhC1yCEMjwhneY prfvWATUcexfkd07/ZHiPMxuv2NAjTtdtYrhQTzikReCiRBMwedmQjUIaGdzKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810724; a=rsa-sha256; cv=none; b=r5UK06qtLIZbihdSMBqD95ZdJ+7VigCkCgxH+n6S9P2JriZqffSmZ0tCUh7aT0eHaM/zJK h3x3NsyeSKpeEZ3ItF6xFqt6SiKCaPTz2atzleNgt/jK7avoHnYFVd0etovX4/VzXiblCJ Jf6ashlMLw89r6sT/6ETpxDi/aKKOatXvglbUtjJXCXe9o0KxK9yHF3k60XTQ/AoLo4yKy Ok9dsQy5Vxb/hbY5rJlp1kF8Xx5I6zFaAKGjDmpd4XmlnZ2tUkCfCUikugf3kKQhdJ6VTR jlWPsoEcW8ff0F9LGAntb7fzF+6QF79pEAxljeF5iCnZAKPatABi7uXiGJxa6A== 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=1745810724; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sFL+iY5QrWVB1Cd0nvn+U97H5FpJhNY3RPv5Byphd2g=; b=RxsLKQvyvJ7IEV9RBQgPNyk27CD70Qf8eWpPPahKhjGiKppksXZc2eMkWeSYUDEnLlN7sG ubErGb/TbF7inBEojbSQvy77N7l9g+hnpes/Sh+bEYjcyqGM0wvhRn3WD70lf7LqU+Y/Wv Te8znIcG+vHU+tq/hiWFUQoVyxHyyRXr8nCa79vszwT8u9nHnTw8hKc9B3UN0yI4hb/2fq A7uegL54kh1qIxZDzV4S1JbD4Mfv56zEHM6ju4HvzD7PLIFBTIz38DTdXUlBX9SE8+JzkP SqBEvBFtw4DCor0GBdeQRghbaZr1Qvs9Q8GqEUxGMKeRQloPAPpF3d0TTBs9vA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm8383yVsz3ZT; Mon, 28 Apr 2025 03:25: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 53S3POaE014843; Mon, 28 Apr 2025 03:25:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3POh3014840; Mon, 28 Apr 2025 03:25:24 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:24 GMT Message-Id: <202504280325.53S3POh3014840@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: b854677d970a - main - mpi3mr: Enable Diag Save for All Diagnostic Fault Cases 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b854677d970a11e87929fa95d0e4067f911faa62 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=b854677d970a11e87929fa95d0e4067f911faa62 commit b854677d970a11e87929fa95d0e4067f911faa62 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:04 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:56 +0000 mpi3mr: Enable Diag Save for All Diagnostic Fault Cases This patch ensures the driver sets the Diag Save bit for all diagnostic fault conditions before issuing a Diagnostic Fault Reset. The firmware now incorporates logic to manage snapdump saving and requires the driver to always set the Diag Save bit to enable this feature. This change supports improved diagnostic data collection and fault handling. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49750 --- sys/dev/mpi3mr/mpi3mr.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 398569a3963c..26c0cb06282a 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -6213,6 +6213,9 @@ static int mpi3mr_issue_reset(struct mpi3mr_softc *sc, U16 reset_type, unlock_retry_count, host_diagnostic); } while (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_DIAG_WRITE_ENABLE)); + if (reset_type == MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT) + mpi3mr_set_diagsave(sc); + scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << MPI3MR_RESET_REASON_OSTYPE_SHIFT) | (sc->facts.ioc_num << @@ -6406,10 +6409,14 @@ out: mpi3mr_app_send_aen(sc); } } else { - mpi3mr_issue_reset(sc, - MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT, reset_reason); + ioc_state = mpi3mr_get_iocstate(sc); + if (ioc_state != MRIOC_STATE_FAULT) + mpi3mr_issue_reset(sc, + MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT, reset_reason); + sc->unrecoverable = 1; sc->reset_in_progress = 0; + sc->block_ioctls = 0; } mpi3mr_dprint(sc, MPI3MR_INFO, "Soft Reset: %s\n", ((retval == 0) ? "SUCCESS" : "FAILED")); From nobody Mon Apr 28 03:25:26 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 4Zm83C21Gnz5tkx6; Mon, 28 Apr 2025 03:25:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zm83B66Qjz3csh; Mon, 28 Apr 2025 03:25:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NQyBsKA6292XJtdNBGZ7WDh0sXdvymYraMxap6C/jBI=; b=xXAeR0zCDbzsOuph3yjnztQFZwm7oIOKfW2+P4YeJdTH8rkTirnc862UVJCLdgfM2EUknk 4Elj1YzmT8VUFapJzCz5qT2BKKD/6F2q+DhA51z4+kN9iBD3JG3CUHjUoDPYd9hpyKTtHG KNsm+88Es6oKinU4A55zyv0j5OsMEb5SQT3s2+4NEqwywe9PUsvCJJk09SHp5F3k1/ZAI6 WoQ9vBtJOZyoO2XvBtbKRPIf5gB7Db1M6LmP2dYFT/EOPDE+LEHoGAh/u07PHdKn0pPYjL quAeKIeUguxk6x4n9RjV7so9QH2RvxHzi4VH0AOdLkhn+eVJHXlgo6BfJaeGnw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810726; a=rsa-sha256; cv=none; b=oyK3Hp7hOQAhZasSpEJPlq3L7E7Gl0oB5k4HJ0y4Gl4+4y3EtZOfhhvb6jkMwMXVb2npFU koeot18pqc/gCjhL51DQYjD+XrnT07zgaVWLZ1L80NLSegVP5E7o3QjgHoAQUHQJuf8fqG MnLmpRR8LFH5eiajGZIH/EcHTqwxTim+rl2rHI+m0fLsn5Dz1KPIwQ3c58Vo4sR51wGROh nNmvJvNR0A0pE9Aic5HmEiik2UG6ITSxg4CpbXPCEXzeh92jDtK7RswsDkZrpuG3/cmgcK fjRH5X0YlK5sIKl/Aobso1yJSapf3T5PfqNhz7eoABLhHf14A+Ueh1gXdKljBQ== 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=1745810726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NQyBsKA6292XJtdNBGZ7WDh0sXdvymYraMxap6C/jBI=; b=Y9Dc8WnA4MTc/i2PQovZf65GH0JedruxBZgmpMgYlKAbR1dHeZGP7eSVl26lYfDerF3Z15 hFp/kw3ExgXlMbaar1y84NlRt5XhYF70zG/Z8hSAaw0DaoSqJPzVouAiJuD7OfZxfyq598 tnNVAJ0ErnlBrfkfAU//VYso+kS9Lqk2fU3CQCHlRMlVM0kxNDjcKujsiFmhMg1z7dvjEn TcfYW/Llv1QWe185Ud3wlj20SUkesQWkTWJsb5lTohW3AYloiyE1AUH/r5YhvXCMkiVT5t ygge5+/Hyj8npNQuPKYc665MJkoBsLXu87CVb/Y5qnS3i1CbswElxD0+bp6KLg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm83B5jnnz3ZW; Mon, 28 Apr 2025 03:25: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 53S3PQKh014926; Mon, 28 Apr 2025 03:25:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PQp3014923; Mon, 28 Apr 2025 03:25:26 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:26 GMT Message-Id: <202504280325.53S3PQp3014923@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 69be9a247b84 - main - mpi3mr: Update Copyright Year to 2025 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 69be9a247b845b35146fed4575dacb565c9c18ba Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=69be9a247b845b35146fed4575dacb565c9c18ba commit 69be9a247b845b35146fed4575dacb565c9c18ba Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:25 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:56 +0000 mpi3mr: Update Copyright Year to 2025 All driver source files have been updated to reflect the year 2025. This change is cosmetic and does not affect functionality. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49752 --- sys/dev/mpi3mr/mpi3mr.c | 2 +- sys/dev/mpi3mr/mpi3mr.h | 2 +- sys/dev/mpi3mr/mpi3mr_app.c | 2 +- sys/dev/mpi3mr/mpi3mr_app.h | 2 +- sys/dev/mpi3mr/mpi3mr_cam.c | 2 +- sys/dev/mpi3mr/mpi3mr_cam.h | 2 +- sys/dev/mpi3mr/mpi3mr_pci.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 337f6a8e6470..4acf0c84023f 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index f48d58ee85d2..3c5cf1a81c62 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_app.c b/sys/dev/mpi3mr/mpi3mr_app.c index 3a8cf7044d26..7e439bf7ed72 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.c +++ b/sys/dev/mpi3mr/mpi3mr_app.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_app.h b/sys/dev/mpi3mr/mpi3mr_app.h index b0d62157db3c..a02c83ad32fe 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.h +++ b/sys/dev/mpi3mr/mpi3mr_app.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index c0dc15531ced..96dc975ed360 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_cam.h b/sys/dev/mpi3mr/mpi3mr_cam.h index 115ce0c4b8d7..a6c41226b2e5 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.h +++ b/sys/dev/mpi3mr/mpi3mr_cam.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index 808349f26827..b436541b26c0 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena From nobody Mon Apr 28 03:25:27 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 4Zm83D4pmFz5tkbn; Mon, 28 Apr 2025 03:25: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 4Zm83D1KDkz3cl7; Mon, 28 Apr 2025 03:25:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PitweYMHXSXsllI7szqY4wajn1T2omT8v2gWq7EdHBo=; b=YG+8PCQli0E9oQMwbpWQkwdum+B8h47KJ1euHhY1Rfaj0+nNRhW+Zm20M6d3/GQDem5+fJ CwhT3m5xx+a6oYCAMK6Wqah3OLpD+D5x9pIM273GfADGXDrTkstgeabnmLy9oaLPhS0pbQ WvCn3+5eoEKEdyzC+ro9Ldr4gtOjoEZTYRHtZh6vT9Ecm8ocN37ujUJBLw4ZJGSvbX57Do 5sBLGoeWY8Stp/+00DWMqfzooBtqR1SQPWO1lPpUxY6xP07fa4fwP8PMpDkJjSquTAdCPI h2C8FrGPaKrYz8L9IyEx21m+O3GfImvfgexRd8womkVD/ybcuBQZffkQ80VFlg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810728; a=rsa-sha256; cv=none; b=QJplhSzr6VkoPeWDLY9Sj4ejiDYosicDdVWz4R+dzI4ZbMij4//oBNMEPS2w5g8PZy/NAW nVs7e/1TLBAACNc5jnLNCxXsHX+2vhZTEPy4WxP7ZTAeASFjSbHs48Z3dQfOTd0Rw7pmU/ dXU9FmvbO1L4+jrkUtG3eGgxlZvBCHcw2ew1vQ/tEdZrGvL+AR0CgM68QfANMW5Si+EiYP ZDKncLL0xwebYH4sg44TY5NIYGltfsXBcXN9eP7sd5pzvQcBOszlCBrfahCFvXxhFzvTBx dMva8hkVD6rAOrRxDACjtAiqql+nynQ9dJ5TK26vEvan8Pvz+PAd9ubEgPNj9Q== 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=1745810728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PitweYMHXSXsllI7szqY4wajn1T2omT8v2gWq7EdHBo=; b=k1hbn7jWfB8mzf/uui/472nhCpf3CguljOyUi5ahI+uTgxrWO85kEKgYTENFEBb+Zbyp3v tGeFPFMfMEXalsOYX4Hn1CZ11UpwO7cT7IseaLI1p0FLmFmOqasQOgJaxXmn6Gev4VsMhB pwlPD9dB5nuKbdqRl4UqVmy2c/tpKpY6X3HNW5SMEsBMDJMk1NjUrCSsGffETDeJsatMut xQ8fdGgo2xCtYQbl8OcMC6lv3nYafSaxFchIVmdtlSoGWofqCMiTo9vYmh6wOw1E1s8xJr 2d2CG9NNCmStGzr9oTFO706btUy/8Brt1aszse8DDV/q1AfPetJL7/5iXG/1Sg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm83C6fp2z2xm; Mon, 28 Apr 2025 03:25: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 53S3PR0r014959; Mon, 28 Apr 2025 03:25:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PR9O014956; Mon, 28 Apr 2025 03:25:27 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:27 GMT Message-Id: <202504280325.53S3PR9O014956@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: f4d51d3e1a90 - main - mpi3mr: Update Driver Version to 8.14.0.2.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 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f4d51d3e1a90dabbed26aacf1b58e20e23a19342 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f4d51d3e1a90dabbed26aacf1b58e20e23a19342 commit f4d51d3e1a90dabbed26aacf1b58e20e23a19342 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:35 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:56 +0000 mpi3mr: Update Driver Version to 8.14.0.2.0 The driver version has been updated to 8.14.0.2.0 to reflect the latest release. This is a version-only update with no functional code changes. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49753 --- sys/dev/mpi3mr/mpi3mr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index 3c5cf1a81c62..e2f2bfc47fbf 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -87,8 +87,8 @@ #include #include "mpi/mpi30_api.h" -#define MPI3MR_DRIVER_VERSION "8.10.0.1.0" -#define MPI3MR_DRIVER_RELDATE "19th Mar 2024" +#define MPI3MR_DRIVER_VERSION "8.14.0.2.0" +#define MPI3MR_DRIVER_RELDATE "9th Apr 2025" #define MPI3MR_DRIVER_NAME "mpi3mr" From nobody Mon Apr 28 03:25:25 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 4Zm83B1hgGz5tkx4; Mon, 28 Apr 2025 03:25: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 4Zm8395kmRz3ch9; Mon, 28 Apr 2025 03:25:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810725; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yYPEqXILiP80LKYXMprtJjeyItv80X/I6DCPrl30OsE=; b=iD7+sajIomGrLXl9LsFJJcoInKwor75Q32zZMffqqU1fCxtL0Ghnrc6ndlmB1HB90f39Vm iGF82Yfb5BE4p0LZ86WzNULzVvxFicEQoW+iNhPjvM7EzeqqZB2kS0+IMYFPJbi3x3Z82M bEUfHXsUOGosA7cv3+F3OT6GKsVuxu+yW0OZzWkOpNctz6HV+e457vglfwrU/71bdCdWym c4JBZeDUzCAByJk/ga/zh6aCmKNML8k7thxOUO7NthevoJeE2BjYcLiUMw8sjfIMPiZzN1 7vOtdPJPaVmuQJn9uw0h5/85t42ek+1BtYrqmX81rH8ztYtD4QRkj7QlLAf3SA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810725; a=rsa-sha256; cv=none; b=tQVvjUuNRRq4cW5ffvliR3sRlwoGH/+2i6QdUEtSsnba7wqK8PgYnRu1q5Qjk5SCHxY4f3 f5iTS7J2YBqobaqX4IBIxC7cOMne0qwBjHudO00Wvu9cXNLDBfFq0KNs0QE1bsRdcx/45+ 6ey56ptbffbMvVReLZwUtU4frRgs5zsDps1TWBoURQPg2qtkAGfNptJcD7S+suO51E4owc T5xPudD0GfGNrOpXqHPpcjMhzKuqtQrkmIuOyw2dQdqWmQJ+MhH4I4fDi0WCUhlPD3VkIQ g0uA0ei8QuE6H3HulYC34A8D4xoxX0pfUnVjyI7dI7ZDL7o04Fr3+ZKX6mrR2A== 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=1745810725; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yYPEqXILiP80LKYXMprtJjeyItv80X/I6DCPrl30OsE=; b=w3sr7iAJ9918WRz+bN0U0Ryk5aX9/tYrrhafNUC0T3lSic15FeUXC6+yCHxP/vWn6kev4a ZZaTsheefa/bo822cTw+oLGc7gx+vXAttc4MC0Rh8LOiVkzGHsF85Q1UqnfBNCQ+ZZx6nT cAFcbeO1U8JWXqyETizIn+kFZHPMTv2av5GxxMaN0N5ClKtBWHd+Vkuiaj7p9Mtln1tuDO RP0JgrITqdLxo+nQGkseK6pxU7LFmuxtDfTGZcs0BwIcQ3eSJOwwTp6ePsw06RuuQsgcVP +7RuGKDlFFMBTHUYvpQB3N7xOLxU600NFkVXK4Iklz9rapizc22uLawhceNZ3A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm8394trVz3ZV; Mon, 28 Apr 2025 03:25: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 53S3PP9m014878; Mon, 28 Apr 2025 03:25:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PPNm014875; Mon, 28 Apr 2025 03:25:25 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:25 GMT Message-Id: <202504280325.53S3PPNm014875@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: df8a74fca036 - main - mpi3mr: Process LOG Data Events in Interrupt Top Half for Early Notification 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: df8a74fca036a0ba8026f3ae3da830dffb922faa Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=df8a74fca036a0ba8026f3ae3da830dffb922faa commit df8a74fca036a0ba8026f3ae3da830dffb922faa Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:14 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:22:56 +0000 mpi3mr: Process LOG Data Events in Interrupt Top Half for Early Notification The driver now processes LOG Data events in the interrupt top half instead of the bottom half. This allows LOG events to be handled immediately upon receipt, reducing latency and enabling early notification to the Library or applications. This change ensures LOG event handling occurs closer to the firmware's generation point, improving alignment with event-driven diagnostic and monitoring mechanisms. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49751 --- sys/dev/mpi3mr/mpi3mr.c | 7 ++++++- sys/dev/mpi3mr/mpi3mr_cam.c | 13 ------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 26c0cb06282a..337f6a8e6470 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -4384,11 +4384,16 @@ static void mpi3mr_process_events(struct mpi3mr_softc *sc, break; } case MPI3_EVENT_DEVICE_INFO_CHANGED: - case MPI3_EVENT_LOG_DATA: { process_evt_bh = 1; break; } + case MPI3_EVENT_LOG_DATA: + { + mpi3mr_app_save_logdata(sc, (char*)event_reply->EventData, + le16toh(event_reply->EventDataLength) * 4); + break; + } case MPI3_EVENT_ENERGY_PACK_CHANGE: { mpi3mr_energypackchg_evt_th(sc, event_reply); diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index af2bc0f8b55c..c0dc15531ced 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1675,14 +1675,6 @@ mpi3mr_process_sastopochg_evt(struct mpi3mr_softc *sc, struct mpi3mr_fw_event_wo return; } -static inline void -mpi3mr_logdata_evt_bh(struct mpi3mr_softc *sc, - struct mpi3mr_fw_event_work *fwevt) -{ - mpi3mr_app_save_logdata(sc, fwevt->event_data, - fwevt->event_data_size); -} - static void mpi3mr_pcietopochg_evt_debug(struct mpi3mr_softc *sc, Mpi3EventDataPcieTopologyChangeList_t *event_data) @@ -2035,11 +2027,6 @@ mpi3mr_fw_work(struct mpi3mr_softc *sc, struct mpi3mr_fw_event_work *fw_event) mpi3mr_process_pcietopochg_evt(sc, fw_event); break; } - case MPI3_EVENT_LOG_DATA: - { - mpi3mr_logdata_evt_bh(sc, fw_event); - break; - } default: mpi3mr_dprint(sc, MPI3MR_TRACE,"Unhandled event 0x%0X\n", fw_event->event); From nobody Mon Apr 28 03:25:30 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 4Zm83G6d3Pz5tl6b; Mon, 28 Apr 2025 03:25: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 4Zm83G1gzCz3ct2; Mon, 28 Apr 2025 03:25:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0+sIatB5oTRstvH4xiOGAvZKdbG15WKWPfXSXTxIUHQ=; b=rXxgTPWttazSbAUasxTpq8vgDXGHZNhLY7Giy4WVAM94zZqjz0KhmsJuCLMUmiLXmEE8s7 FEJHELQXFZmiFg9WdkvkXUDjimardB3lg7YqZTXxktXITydtbMVvUI6N4bMl2rQin/b/AG o5QJSlXKZyGMd9NchDZUZJhsYsyvTo3FkVpFcwrYAzme6dw52Vi4ii3Uk8jroi+yEEyYTh A6XOvU4qDDJm/7Tqr6u3lVQiTeGQhikzFFd9uN3TiPi+Mm1gQZ91qHanFRJia7o77xAqu/ gS1eYiy2qXKdtsWf4tsaT4DjqiaZMwRYv2RiIWfQMZdqJt1QsO1qzCw0fCBpaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810730; a=rsa-sha256; cv=none; b=ZVRFPfVVNYQHez1uxf4HUnGqxzghW9f7kXLtEInUSYskRmCDlyAUanfhafvXguvPUXIFyL sJ1mQDST/vL/N6wjaUMdxVKg8kRQCMS2NsXA+MKi4+DBtGuk4AslGYLz4STKWbagrybNxi J1CmcDIZ6q3zZrkYRt+p4ytA+xi4Z4ZNNzxqPAhnkC6pTL1AwFmjoE5vg+GMwQfpxieOS/ /piIPSGNLz8RJLEhopSv0/IbRNyjFlyEH3zHc1y8wERKQW9rDJf2gVegH3xarP42LJm/T1 hU1aEZ9AmQOtWHUmdTOi44Gh04frTG9Wwn6OmYk3L0AI0Lr+kgGpde0OCFg4wQ== 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=1745810730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0+sIatB5oTRstvH4xiOGAvZKdbG15WKWPfXSXTxIUHQ=; b=CdunPjDypWAWs2hdcmY0v7FE5oR7VtmgkzpyYUo5+6G7jBmNq8eHlfhBad8RJSI2N9UHEM gzDwoBUyFM5WmpRbLFyOGMlHCy8GkMKoRsYDMbf9NSljwODLA9BJof8VoISVaPESggsBtz IWjLhklftQek3FUrxg+8DF1KAp7jJDpA8UDOQZe7zUcQZ6rPm70PRm/Lc6JMJMExEFwwnC XN4setdkUYhv9llzMcvdRR7nJrexWjesS4xNq/ygWjn/dYpU+HRpHilZmACYIev8T+N/e7 WfHav64rBgOzGKXefYErh9mle0b1DjP1pm6FiP+O0zN3cxw/OUb3yuYRtyOzaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm83G1F0Zz3Hm; Mon, 28 Apr 2025 03:25: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 53S3PUEx015025; Mon, 28 Apr 2025 03:25:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PUcF015022; Mon, 28 Apr 2025 03:25:30 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:30 GMT Message-Id: <202504280325.53S3PUcF015022@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 4494ea5406f7 - main - mpi3mr: modified the log messages to be on a single 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4494ea5406f79a6cb2d3631a723eb286ca96a9b9 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=4494ea5406f79a6cb2d3631a723eb286ca96a9b9 commit 4494ea5406f79a6cb2d3631a723eb286ca96a9b9 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:41:19 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:24:52 +0000 mpi3mr: modified the log messages to be on a single line qThis change was made after feedback from upstream, aiming to align with the style guide for consistent log formatting. No functional changes were made to the driver, only the formatting of the log messages. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49799 --- sys/dev/mpi3mr/mpi3mr.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 4acf0c84023f..99edd3542619 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2801,8 +2801,7 @@ retry_init: MPI3_SYSIF_FAULT_CODE_MASK; if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) mpi3mr_dprint(sc, MPI3MR_INFO, - "controller faulted due to insufficient power. " - "try by connecting it in a different slot\n"); + "controller faulted due to insufficient power, try by connecting it in a different slot\n"); goto err; U32 host_diagnostic; @@ -3186,9 +3185,8 @@ static int mpi3mr_timestamp_sync(struct mpi3mr_softc *sc) if (((sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK) != MPI3_IOCSTATUS_SUCCESS) && (sc->init_cmds.ioc_status != MPI3_IOCSTATUS_SUPERVISOR_ONLY)) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: Failed IOCStatus(0x%04x) " - " Loginfo(0x%08x) \n", (sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK), - sc->init_cmds.ioc_loginfo); + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: Failed IOCStatus(0x%04x) Loginfo(0x%08x)\n", + (sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK), sc->init_cmds.ioc_loginfo); retval = -1; } @@ -3316,8 +3314,7 @@ mpi3mr_watchdog_thread(void *arg) if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) { mpi3mr_dprint(sc, MPI3MR_INFO, - "controller faulted due to insufficient power, marking" - " controller as unrecoverable\n"); + "controller faulted due to insufficient power, marking controller as unrecoverable\n"); sc->unrecoverable = 1; break; } From nobody Mon Apr 28 03:25:28 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 4Zm83F4rSXz5tkqb; Mon, 28 Apr 2025 03:25: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 4Zm83F0yZCz3cqf; Mon, 28 Apr 2025 03:25:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745810729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3382en57iOhc+w7j/H7rV7DK/ofbxAGDM8d6mwC+4s8=; b=wTfy+H+BSrClmy0Tk3B9NHPgxn0FUfK0x/mM+Rti7iNEaR43IueXwIa4Rs7DN2XVwCu0Oh qt1ASq17rxgm/B9tfVrK8e7dsO8TRN7Hf7SkovEOrcSNas7NLW4i61uYWJXkWsPYL1z62M +bvGhCYj52XdowUSHbh6BuyC+kG7iv3bIRfVG+tG1YCkFXeH0KQn/Xa6ahH4b0MkE1RWlg 9fnp1urKcAvITGBVQ4XXWHbM8Uq+BnE2d8Dk1keoiMMQ14iiv71IeGsn+eDgK7SH5xEs6t XNXsZE3Y51qLvf7C6hGa9oEGcnIxQ9MHQtriPR2vBTFbkwO8zR4oBbrDQ5vm9Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745810729; a=rsa-sha256; cv=none; b=kZnBTz5lLk49kAMQzor356ublbuY5M7KOiykAzaZ3hQNJNulS9bTixri4hGvYW90vNt+pL /slez6mpG/3ENgJCkAGM2z+2laJgzMOJBzCAAO2+7mfAaXe8gsvMXlBQZVNKlQM8CQyctW sPsf6AVYH7NOnBWwlv3R1G5dzc5b9KYwS5wUOn3dTrQ9XWVyPAbV/ll+Op9Uf+Iti/rhLi CQLnSEBitEFm7BGrDqFEr942P2jw4DqqsoTceSfu7RU78PS93V1EiVNcLrjUF3c8ZOa4p5 sLVNyIHpHlsClgZMmDi8fAEf90+348SmN4/11qoqzkHB+viJ1eTdtScqvhwAqw== 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=1745810729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3382en57iOhc+w7j/H7rV7DK/ofbxAGDM8d6mwC+4s8=; b=VJo7S/13xKZbRDqBZQNxig9blQXsSSTDwnmPeUefgPIFB8wWRjfaVEbCexYfjaUaAxWinW YmPDs0LBKni+DxRKW3HGI/+1ybDC8wCY5qp6WTkR8IBROaPwAguUANwN2aVRRyHlbWONnE uj5iKyI6/K7IkzRMS/v4ggxwzmPg/AMDhiO4TJzqOY4uFpBsKVhcQf00C22XyyYtZKhVSt OtVQWre3X2tDS+ezLzjYrRIoMosjKBTdm7Pg+TXdaTZXgREWDAP3HXxDzGCCrCXU4/xnn8 ikWqsYTGCWrnj4NdvCxYyTTDWOn6tsXkyt0TxIX3sedN3Z5ab9pS8hMTc/lvoQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zm83F0GrQz3C6; Mon, 28 Apr 2025 03:25: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 53S3PSP1014992; Mon, 28 Apr 2025 03:25:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3PSFp014989; Mon, 28 Apr 2025 03:25:28 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:25:28 GMT Message-Id: <202504280325.53S3PSFp014989@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 9cdd40759617 - main - mpi3mr: Allow driver to be in-kenrel and add to GENERIC 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9cdd40759617b15fdd6939d33f67aa2c9d2a6b1e Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=9cdd40759617b15fdd6939d33f67aa2c9d2a6b1e commit 9cdd40759617b15fdd6939d33f67aa2c9d2a6b1e Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:45 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:23:51 +0000 mpi3mr: Allow driver to be in-kenrel and add to GENERIC Registered the mpi3mr driver source files in sys/conf/files, enabling it to be compiled into the base kernel image. This matches the approach used for existing Broadcom drivers such as mrsas, mps, and mpr. Add mpi3mr to sys/conf/NOTES. With this change, the mpi3mr driver will be built as part of the base kernel, allowing automatic loading during boot when supported hardware is detected. Below changes are suggested by chs@: - Corrected the file name typo mistake in /sys/conf/files from mpi3mr_app.c.c to mpi3mr_app.c - Added mpi3mr driver entries in "sys/amd64/conf/GENERIC" and "sys/i386/conf/GENERIC" Reviewed by: ssaxena, chs, imp Differential Revision: https://reviews.freebsd.org/D49754 --- sys/amd64/conf/GENERIC | 1 + sys/conf/NOTES | 1 + sys/conf/files | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 6921c1d73a58..1c44bc54376b 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -145,6 +145,7 @@ device isp # Qlogic family device mpt # LSI-Logic MPT-Fusion device mps # LSI-Logic MPT-Fusion 2 device mpr # LSI-Logic MPT-Fusion 3 +device mpi3mr # LSI-Logic MPT-Fusion 4 device sym # NCR/Symbios Logic device isci # Intel C600 SAS controller device ocs_fc # Emulex FC adapters diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 081cb985c7fe..9afb04ce6ef1 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1592,6 +1592,7 @@ envvar hint.isp.0.topology="nport-only" envvar hint.isp.0.portwnn="w50000000aaaa0000" envvar hint.isp.0.nodewnn="w50000000aaaa0001" device ispfw +device mpi3mr # LSI-Logic MPT-Fusion 4 device mpr # LSI-Logic MPT-Fusion 3 device mps # LSI-Logic MPT-Fusion 2 device mpt # LSI-Logic MPT-Fusion diff --git a/sys/conf/files b/sys/conf/files index d3ee52399291..66d96acedfc6 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -2465,6 +2465,11 @@ dev/mrsas/mrsas.c optional mrsas dev/mrsas/mrsas_cam.c optional mrsas dev/mrsas/mrsas_ioctl.c optional mrsas dev/mrsas/mrsas_fp.c optional mrsas +dev/mpi3mr/mpi3mr.c optional mpi3mr +dev/mpi3mr/mpi3mr_pci.c optional mpi3mr +dev/mpi3mr/mpi3mr_app.c optional mpi3mr +dev/mpi3mr/mpi3mr_cam.c optional mpi3mr \ + compile-with "${LINUXKPI_C}" dev/msk/if_msk.c optional msk dev/mvs/mvs.c optional mvs dev/mvs/mvs_if.m optional mvs From nobody Mon Apr 28 09:22:32 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 4ZmHzD38Jjz5v6qh; Mon, 28 Apr 2025 09:22:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmHzD1zRxz3HNX; Mon, 28 Apr 2025 09:22:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745832152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jQYVJ7n1EKHiXRPPfpKEMi1rl9wiRLLwGA4elbO+yg8=; b=Fh6OZDykYhrY4cG34joReLc0CZVQ3ad3rB2BEEUIB+lg9vYFq46qdCJyF0TCqoTW4mkFjS iNZxta5OP+knkb+IDS16M5tVFB20bhXYPNq7mBno4SSGpo+k04WZ3rDlSWQbPM8OT8HvaJ NSyzRNyskwj7IR/TbeDr632DtsiiG3YrCH3ykJzc8lM870TKX+dAvQAejjWG8cLGglT01X ReR+FepvYFsB6Ah2YCF72MCVdCTuHIZ/GTz4NQtNzs5av3XbGVWAAQ+Z8b4HfzdUdJZ+wG q3R5wid9avfhd9JzZAp8HVR0v8D8dCPrMVJIDSL3tsWzhsQbHPQ0pOAWAlOYDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745832152; a=rsa-sha256; cv=none; b=PIgLQemgOLncvEWpPdTXcf5pNKIXrcDyfPCVWbwHQRS7ZVKuTbrHnLyQtAZ5bUqVECFiLD HYChmvdUDcP8L7XXyoBD6lY6O5nmvq1W8fYC/KdRpSJ2NtrOND5lyKf8IEZvhXEVpvAR/8 8xyWtFTFABmekXyWOoIjf4cSGOFuDKxc2Y5mWHI0skF6lZbaai2OucVfsuoAxD2Rw0G5Rb K2A/2FgHFHKZkZ9SGesCMxkqQFYNxUT0orDY1XpL3O2eYIEihteroUa1QjudefJcFCL2FV dU5R6LKP7zjQJ83pEE0LQJh5u9Uv4QSgNvpYHJeLHHzieFnlpDHfDKkKSH1erQ== 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=1745832152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jQYVJ7n1EKHiXRPPfpKEMi1rl9wiRLLwGA4elbO+yg8=; b=d1dCyHaNNy3/nuxi1FenkvNmekmhuMaWpFijSzw0zoqBb2hQNYuZ9Du46WN/4jadZDXf1T U2fb+OiVdG1aWwvJUwBVa5dA5C1kxGlWXVxxAn+Stt8qKIXkqEQYWPAui3K+v4NEplmb1v VhXswT3ttZMgH+/XsTq0xufvj3VDD+Z33o6+BWnQrXveei3SRnHla96+nbvNYr3FddYif8 ehAXDnJEgd5a0C5AmMVYo4LMrD+JOxYRJ4R+aqq78ogFU7t3fYqVmLTokwNDA2XJ7znlX6 jPgz7K4SN9cT8nlNm5rp86w9WYSNbg7+m+JFypeTWYwLKTSD2IQ9ItkRoEe/VQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmHzD1QldzDXj; Mon, 28 Apr 2025 09:22: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 53S9MWUM088097; Mon, 28 Apr 2025 09:22:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S9MWWA088094; Mon, 28 Apr 2025 09:22:32 GMT (envelope-from git) Date: Mon, 28 Apr 2025 09:22:32 GMT Message-Id: <202504280922.53S9MWWA088094@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: 3ad86f460fa8 - main - ath(4): Fix a typo in a source code 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: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3ad86f460fa81ecc036fb5af25848f10b68b4019 Auto-Submitted: auto-generated The branch main has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=3ad86f460fa81ecc036fb5af25848f10b68b4019 commit 3ad86f460fa81ecc036fb5af25848f10b68b4019 Author: Gordon Bergling AuthorDate: 2025-04-28 09:22:10 +0000 Commit: Gordon Bergling CommitDate: 2025-04-28 09:22:10 +0000 ath(4): Fix a typo in a source code comment - s/chang/change/ MFC after: 3 days --- sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c b/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c index 9352c6decd82..04b75dd09662 100644 --- a/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c +++ b/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c @@ -324,7 +324,7 @@ ar5212GetRfgain(struct ath_hal *ah) ahp->ah_rfgainState = HAL_RFGAIN_NEED_CHANGE; /* for ap51 */ ahp->ah_cwCalRequire = AH_TRUE; - /* Request IQ recalibration for temperature chang */ + /* Request IQ recalibration for temperature change */ ahp->ah_bIQCalibration = IQ_CAL_INACTIVE; } } From nobody Mon Apr 28 12:23:19 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 4ZmMzr5QwRz5vJ91; Mon, 28 Apr 2025 12:23:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmMzq6t2Vz3fjF; Mon, 28 Apr 2025 12:23:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1B9tWCr8+bvdFqVE1sMFTT12v8/iW8xV6BF9s+sW/4k=; b=sd+GCxeG4mZT2lvt1/TvUksTHKbmxDgTrU292aEksMjsds9RmiAtywWtOf0LKiBYhyjihA kCBjrOAdE5/fC5IIy8Xqwu8IO3NV4aHRzv3anpONFNYTo6IAqkjED5YYkfBHq0ZA31QvkM xp9g3YtcRu0QGmi7lc2nND/rmcC7EoD5m10QTiUhahmeMzbfLfI2pxPcF3cPsAUNpz8Bt4 ofIfO8Lzqs1NrYrqOa970IZ844kXTxorLiCoPn7k+NdL7fJtBgZCigEc4nwPtHTGArEIoM cofDidCstgRkjjH9eD8siXqmCYeHi2Me2NjWSPzZFFLuocjMCmhp3UaaySyH2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843000; a=rsa-sha256; cv=none; b=DZEjd0rGd8ggpISp/oaI5jIhE4js9i9EssXEPsuRxeGiN/lJineCJsu7gytoh3d8bR0EBX CuTdBIE/BDtznM7WO70hVSPUkYVgtxFxYfVuI8L5wbYgc/TQt8lJ6DbvqjsRIQ4r8Y9BaD LMbyEjwQ/0DfelaUIUbVAMbFTIlbVIwYwS0Ht5yqVNY4qDkRF9ZynnBBMXyTC5WPFEcKe9 mDhFJ4EwRdTBjftx5wlFjAW+s2TjaYLZHNi5XXzGH9IwRmu8YiGC98VRMmGP9L9IcB/dsA 22QR1BdemQYJVT2bO7on6XjzX9+ZVJZHtQXqktmeiRo4bhiV/IIx58bOvSctRQ== 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=1745843000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1B9tWCr8+bvdFqVE1sMFTT12v8/iW8xV6BF9s+sW/4k=; b=TFGdNQJ1yr5ZJiL3+cR1Dq6XsrXNf91S/MPUakf2Irubdw9IWBrP/HBm2VkdZ7bKz/sfja ZQk46rFwuY/J2GMzAAo+i59VMg7EVZtLdZqpcFrARzRaLSQm1MxgFCoLdis+P1Dh1sb/IU mDqCHE+72HaYvL2Rso7Wml40DIhbKEqa9vbEnP4NYPT4tg9jb0vcM7P5vKAyTpOU1iTgv+ 3erxKV7WSNATVG59tbbLIZsYs3ME27aOBWf5wgMJ92uQ6qWZtPjvx5mDSMtrcW+KJGn1cF H0u56EWgQyJ6KhkHtn49m8gwOiBp5lMdq1GLsmrBBHK9DyPsoSLjQm5yX+ka3g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzq6TNdzbwD; Mon, 28 Apr 2025 12:23: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 53SCNJ1l025120; Mon, 28 Apr 2025 12:23:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNJ5N025117; Mon, 28 Apr 2025 12:23:19 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:19 GMT Message-Id: <202504281223.53SCNJ5N025117@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 0d320eb5edc3 - main - ps(1): Whitespace 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0d320eb5edc37f6c1bfa5eabc0309350b87c08ad Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=0d320eb5edc37f6c1bfa5eabc0309350b87c08ad commit 0d320eb5edc37f6c1bfa5eabc0309350b87c08ad Author: Olivier Certner AuthorDate: 2025-04-25 18:53:30 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:55:40 +0000 ps(1): Whitespace cleanup No functional change (intended). MFC after: 3 days Sponsored by: The FreeBSD Foundation --- bin/ps/keyword.c | 2 +- bin/ps/ps.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index a03f91ec2831..0c8edb06b562 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -268,7 +268,7 @@ parsefmt(const char *p, int user) /* * If an item contains an equals sign, it specifies a column * header, may contain embedded separator characters and - * is always the last item. + * is always the last item. */ if (tempstr[strcspn(tempstr, "="FMTSEP)] != '=') while ((cp = strsep(&tempstr, FMTSEP)) != NULL && diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 3257f0885aa0..bd49fbe3b188 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1301,7 +1301,7 @@ saveuser(KINFO *ki) /* A macro used to improve the readability of pscomp(). */ #define DIFF_RETURN(a, b, field) do { \ if ((a)->field != (b)->field) \ - return (((a)->field < (b)->field) ? -1 : 1); \ + return (((a)->field < (b)->field) ? -1 : 1); \ } while (0) static int From nobody Mon Apr 28 12:23:18 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 4ZmMzq0h6Pz5vJ7Y; Mon, 28 Apr 2025 12:23: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 4ZmMzp64vyz3fxF; Mon, 28 Apr 2025 12:23:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745842998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IcgbuQDkm683l/PSKbGVUlSwuCN1YHFhXkvZ5dwyhMs=; b=Ew1O86jsL2O7Mdlx4//wMeduvCxNHPDyKKeA8uM1r3TOsORnAVuHM8YY5tjYa4OiB6aOuj FSSPYCHfklIAH335EXvoyGceWP7grVWswHD13LZJ5rG/9mbaov1iDuqINw0yW/7UrBpLvw 0bJwJXd6otsPJur/FD2XjuDRQCtqA4Q1fBwRQ2wpF9waiwmVdrrHRGz32sG/zBSzP5Kyk2 k062EpO+LmoRuMSQzM0MpA+DCc0YDvmed9y1oml0LazLwacq6KV0//5VT+oKvjD7X5kDZk BjHoYddvK0daAACELd49483Qby7Fo4eE0dLTU7YKqA9EFUa6CwOpUJwUbNZg/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745842998; a=rsa-sha256; cv=none; b=UPbRW8SH/fQcd4V2zQN1/uTi6qLlEwr8R6h+6+vgssBDz4fGch8nAXcDyAGW2spzON4w/8 cjo6RKUC5anbIruDNHBzdL32rmNY9BpEEuokK2W003otoG2yLi7T5zlP5ThMW1KESfiir3 D/pZy7CFRoQejTvfRP55hKWCJX1gMa7lYXJ79KZn9jz8D+92jdPkPCEgMfncUgwsXBWaV8 h+Nhd905OJj4iwOsKozOzGapBpHFovg6OGiRo/5eNk88jG4DHLOW371NaJ2CzQb5RUjjFx WLG9fmakIeQUP/XypU0FuIMVwxbLqprQzEyfY38y5ecrzji96qV4A9gaFrUJHg== 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=1745842998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IcgbuQDkm683l/PSKbGVUlSwuCN1YHFhXkvZ5dwyhMs=; b=Pr4BqS6qCRmZTxxR4KqlgjbSSq7xJalKQv+fGExfmzTT9ol/nz5QMmyrk4Yr04hBvsJAsE x6oS2SApVpRJeEZgHz6spY+f9lG59zfW7CnDtsHg2tly6cxLpOzQKmUnlv8OJ4SF4/Gnnv wRXX8pNG5CbSaERpZv9OCgw005hTrCMQdNKzlYOXantv/nYHK47QxJ9ANeGF+5Zk1L3Aih U7EeUsMrc3HhSqUdQgRFpv5MSldl7RhylG2NrNiyvSObM2ZkMyLBJAAgdYFuRHkL5T8YP8 V06xghBTWRVo89EX1wVjBr+nl2TF0vGeaVsogpdk5RMg3vAaQZZcc3VgSedu1w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzp5XRqzZpy; Mon, 28 Apr 2025 12:23: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 53SCNI8B025087; Mon, 28 Apr 2025 12:23:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNIEO025084; Mon, 28 Apr 2025 12:23:18 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:18 GMT Message-Id: <202504281223.53SCNIEO025084@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: ddf144a04b53 - main - ps.1: Revamp: Explain general principles, update to match reality 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ddf144a04b53d8599bdd00747e1b6d77e695c292 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=ddf144a04b53d8599bdd00747e1b6d77e695c292 commit ddf144a04b53d8599bdd00747e1b6d77e695c292 Author: Olivier Certner AuthorDate: 2025-03-14 16:17:30 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:55:01 +0000 ps.1: Revamp: Explain general principles, update to match reality The preamble has been revamped to give a thorough overview of the different aspects of the ps(1) command in the following separate paragraphs: 1. What it outputs. 2. Which processes are listed. 3. Which information is displayed by process. 4. How lines are sorted. 5. Considerations about the (mostly broken) output width. 6. Backwards compatibility features. Fix or expand the description of several options and some keywords to match their actual behavior. Expand the STANDARDS section, noting the options conforming to POSIX and those that do not (but may be changed to), as well as current diverging behaviors. Expand the BUGS section with a thorough description of other known problems. While here, document the POSIX-specified '-A' option. We have been supporting it since 2004 (commit "Support more POSIX/SUSv3 options:", a4c8a745a85b18d7, r127499) and it has been standard for longer. It seems now highly unlikely we will ever want to use it for any other purpose, so just stop trying to hide it. While here, re-order flags according to mdoc(7)'s prescription. Given the current state, this also requires less changes than, e.g., putting all uppercase flags first. While here, move the detailed specifications of keywords from the DESCRIPTION to the KEYWORDS section. While here, fix the formatting of some references to keywords. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49605 --- bin/ps/ps.1 | 957 ++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 607 insertions(+), 350 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 542ae71e898a..412d6a5a599b 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -1,6 +1,13 @@ .\"- +.\" SPDX-License-Identifier: BSD-3-Clause +.\" .\" Copyright (c) 1980, 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. +.\" Copyright (c) 2025 The FreeBSD Foundation +.\" +.\" Portions of this documentation were written by Olivier Certner +.\" at Kumacom SARL 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 @@ -26,7 +33,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 11, 2023 +.Dd March 14, 2025 .Dt PS 1 .Os .Sh NAME @@ -35,8 +42,9 @@ .Sh SYNOPSIS .Nm .Op Fl -libxo -.Op Fl aCcdefHhjlmrSTuvwXxZ -.Op Fl O Ar fmt | Fl o Ar fmt +.Op Fl AaCcdefHhjlmrSTuvwXxZ +.Op Fl O Ar fmt +.Op Fl o Ar fmt .Op Fl D Ar up | down | both .Op Fl G Ar gid Ns Op , Ns Ar gid Ns Ar ... .Op Fl J Ar jid Ns Op , Ns Ar jid Ns Ar ... @@ -51,36 +59,99 @@ .Sh DESCRIPTION The .Nm -utility -displays a header line, followed by lines containing information about -all of your -processes that have controlling terminals. -If the +utility displays information about a selection of processes. +Its traditional text style output consists of a header line followed by one line +of information per selected process, or possibly multiple ones if using +.Fl H +.Pq one per lightweight-process . +Other output styles can be requested via +.Fl -libxo . +.Pp +By default, only the processes of the calling user, determined by matching their +effective user ID with the real user ID of the +.Nm +process, that have controlling terminals are shown. +A different set of processes can be selected for display by using combinations +of the +.Fl A , a , D , G , J , p , T , t , U , X , +and .Fl x -options is specified, +options. +Except for options +.Fl A , a , X , +and +.Fl x , +as soon as one of them appears, it inhibits the default process selection, i.e., +the calling user's processes are shown only on request. +If more than one of these +.Pq with same exceptions +appear, .Nm -will also display processes that do not have controlling terminals. +will select processes as soon as they are matched by at least one of them +.Pq inclusive OR . +The +.Fl X +option can be independently used to further filter the listed processes to only +those that have a controlling terminal +.Po +except for those selected by +.Fl p +.Pc . +Its opposite, +.Fl x , +forcefully removes that filter. +If none of +.Fl X +and +.Fl x +is specified, the implied default behavior is that of +.Fl X +unless using another option whose description explicitly says that +.Fl x +is implied. .Pp -A different set of processes can be selected for display by using any -combination of the -.Fl a , D , G , J , p , T , t , +For each selected process, the default displayed information consists of the +process' ID, controlling terminal, state, CPU time +.Pq including both user and system time +and associated command +.Po +see the documentation for the +.Cm command +keyword below +.Pc . +This information can be tweaked using two groups of options which can be +combined as needed. +First, options +.Fl o and -.Fl U +.Fl O +add columns with data corresponding to the explicitly passed keywords and, for +.Fl O , +additionally the same columns as in the default display. +Available keywords are documented in the +.Sx KEYWORDS +section below. +They can be listed using option +.Fl L . +Second, options +.Fl j , l , u , +and +.Fl v +designate specific predefined groups of columns, also called canned displays. +Appearance of any of these options inhibits the default display, replacing it +all with the requested columns, and in the order options are passed. +The individual columns requested via a canned display option which have the same +keyword as that of some column added by earlier options are not added again. +This kind of automatic removal of duplicate keywords in canned displays is +useful for slightly tweaking these displays without having to rebuild variants +from scratch, e.g., using +.Fl o options. -If more than one of these options are given, then -.Nm -will select all processes which are matched by at least one of the -given options. .Pp -For the processes which have been selected for display, -.Nm -will usually display one line per process. -The +Output information lines are by default sorted first by controlling terminal, +then by process ID, and then, if .Fl H -option may result in multiple output lines (one line per thread) for -some processes. -By default all of these output lines are sorted first by controlling -terminal, then by process ID. +has been specified, by lightweight-process (thread) ID. The .Fl m , r , u , and @@ -89,23 +160,29 @@ options will change the sort order. If more than one sorting option was given, then the selected processes will be sorted by the last sorting option which was specified. .Pp -For the processes which have been selected for display, the information -to display is selected based on a set of keywords (see the -.Fl L , O , -and -.Fl o -options). -The default output format includes, for each process, the process' ID, -controlling terminal, state, CPU time (including both user and system time) -and associated command. -.Pp -If the +If the traditional text output (the default) is used, the default output width is that requested by the +.Ev COLUMNS +environment variable if present, else the line width of the terminal associated +to the .Nm -process is associated with a terminal, the default output width is that of the -terminal; otherwise the output width is unlimited. +process, if any. +In all other situations, the output width is unlimited. See also the .Fl w +option and the +.Sx BUGS +section. +.Pp +For backwards compatibility, +.Nm +attempts to interpret any positional argument as a process ID, as if specified +by the +.Fl p option. +Failure to do so will trigger an error. +.Nm +also accepts the old-style BSD options, whose format and effect are left +undocumented on purpose. .Pp The options are as follows: .Bl -tag -width indent @@ -116,16 +193,33 @@ in a selection of different human and machine readable formats. See .Xr xo_parse_args 3 for details on command line arguments. +The default is the traditional text style output. +.It Fl A +Display information about all processes in the system. +Using this option is strictly equivalent to specifying both +.Fl a +and +.Fl x . +Please see their description for more information. .It Fl a -Display information about other users' processes as well as your own. +Display information about all users' processes. +It does not, however, list all processes +.Po +see +.Fl A +and +.Fl x +.Pc . +Currently, this option has no effect if any other option selecting processes to +display is present, except for +.Fl X +and +.Fl x . If the .Va security.bsd.see_other_uids -sysctl is set to zero, this option is honored only if the UID of the user is 0. -.It Fl c -Change the -.Dq command -column output to just contain the executable name, -rather than the full command line. +sysctl is set to zero, this option is honored only if the real user ID of the +.Nm +process is 0. .It Fl C Change the way the CPU percentage is calculated by using a .Dq raw @@ -133,18 +227,11 @@ CPU calculation that ignores .Dq resident time (this normally has no effect). -.It Fl d -Arrange processes into descendancy order and prefix each command with -indentation text showing sibling and parent/child relationships as a tree. -If either of the -.Fl m -and -.Fl r -options are also used, they control how sibling processes are sorted -relative to each other. -Note that this option has no effect if the +.It Fl c +Change the .Dq command -column is not the last column displayed. +column output to just contain the executable name, +rather than the full command line. .It Fl D Expand the list of selected processes based on the process tree. .Dq UP @@ -157,21 +244,43 @@ will add both the ancestor and the descendant processes. does not imply .Fl d , but works well with it. +.It Fl d +Arrange processes into descendancy order and prefix each command with +indentation text showing sibling and parent/child relationships as a tree. +If either of the +.Fl m +and +.Fl r +options are also used, they control how sibling processes are sorted +relative to each other. +Note that this option has no effect if the last column does not have +.Cm comm , +.Cm command +or +.Cm ucomm +as its keyword. .It Fl e Display the environment as well. +.It Fl f +Indicates to print the full command and arguments in +.Cm command +columns. +This is the default behavior on +.Fx . +See +.Fl c +to turn it off. .It Fl G -Display information about processes which are running with the specified -real group IDs. +Display information about processes whose real group ID matches the specified +group IDs or names. +Implies +.Fl x +by default. .It Fl H Show all of the threads associated with each process. .It Fl h Repeat the information header as often as necessary to guarantee one header per page of information. -.It Fl j -Print information associated with the following keywords: -.Cm user , pid , ppid , pgid , sid , jobc , state , tt , time , -and -.Cm command . .It Fl J Display information about processes which match the specified jail IDs. This may be either the @@ -183,9 +292,14 @@ Use .Fl J .Sy 0 to display only host processes. -This flag implies +Implies .Fl x by default. +.It Fl j +Print information associated with the following keywords: +.Cm user , pid , ppid , pgid , sid , jobc , state , tt , time , +and +.Cm command . .It Fl L List the set of keywords available for the .Fl O @@ -208,21 +322,26 @@ terminal and process ID. Extract the name list from the specified system instead of the default, which is the kernel image the system has booted from. .It Fl O -Add the information associated with the space or comma separated list -of keywords specified, after the process ID, -in the default information -display. -Keywords may be appended with an equals +On first occurence, add all columns of the default display +.Po +as if by +.Fl o +.Pc +and insert just after the process ID column in that default display the columns +associated with the passed space- or comma-separated list of keywords. +On next occurences, just insert the keywords of the passed list, as if by +.Fl o . +The last keyword in the list may be appended with an equals sign .Pq Ql = -sign and a string. -This causes the printed header to use the specified string instead of -the standard header. +as explained for option +.Fl o +and with the same effect. .It Fl o -Display information associated with the space or comma separated -list of keywords specified. -The last keyword in the list may be appended with an equals +Display information associated with the space- or comma-separated list of +keywords specified. +The last keyword in the list may be appended with an equals sign .Pq Ql = -sign and a string that spans the rest of the argument, and can contain +and a string that spans the rest of the argument, and can contain space and comma characters. This causes the printed header to use the specified string instead of the standard header. @@ -233,6 +352,8 @@ So the header texts for multiple keywords can be changed. If all keywords have empty header texts, no header line is written. .It Fl p Display information about processes which match the specified process IDs. +Processes selected by this option are not subject to being filtered by +.Fl X . .It Fl r Sort by current CPU usage, instead of the combination of controlling terminal and process ID. @@ -248,8 +369,15 @@ devices. Full pathnames, as well as abbreviations (see explanation of the .Cm tt keyword) can be specified. +Implies +.Fl x +by default. .It Fl U -Display the processes belonging to the specified usernames. +Display information about processes whose effective user ID matches the +specified user IDs or names. +Implies +.Fl x +by default. .It Fl u Display information associated with the following keywords: .Cm user , pid , %cpu , %mem , vsz , rss , tt , state , start , time , @@ -272,278 +400,51 @@ option implies the .Fl m option. .It Fl w -Use at least 132 columns to display information, instead of the default which -is the window size if -.Nm -is associated with a terminal. -If the +Use at least 131 columns to display information. +If .Fl w -option is specified more than once, +is specified more than once, .Nm -will use as many columns as necessary without regard for the window size. -Note that this option has no effect if the -.Dq command -column is not the last column displayed. +will use as many columns as necessary. +Please see the preamble of this manual page for how the output width is +initially determined. +In particular, if the initial output width is unlimited, specifying +.Fl w +has no effect. +Please also consult the +.Sx BUGS +section. .It Fl X -When displaying processes matched by other options, skip any processes -which do not have a controlling terminal. -This is the default behaviour. +When displaying processes selected by other options, skip any processes which do +not have a controlling terminal, except for those selected through +.Fl p . +This is the default behaviour, unless using another option whose description +explicitly says that +.Fl x +is implied. .It Fl x -When displaying processes matched by other options, include processes -which do not have a controlling terminal. -This is the opposite of the -.Fl X -option. +When displaying processes selected by other options, include processes which do +not have a controlling terminal. +This option has the opposite behavior to that of +.Fl X . If both .Fl X and -.Fl x -are specified in the same command, then -.Nm -will use the one which was specified last. -.It Fl Z -Add -.Xr mac 4 -label to the list of keywords for which -.Nm -will display information. -.El -.Pp -A complete list of the available keywords are listed below. -Some of these keywords are further specified as follows: -.Bl -tag -width lockname -.It Cm %cpu -The CPU utilization of the process; this is a decaying average over up to -a minute of previous (real) time. -Since the time base over which this is computed varies (since processes may -be very young) it is possible for the sum of all -.Cm %cpu -fields to exceed 100%. -.It Cm %mem -The percentage of real memory used by this process. -.It Cm class -Login class associated with the process. -.It Cm flags -The flags associated with the process as in -the include file -.In sys/proc.h : -.Bl -column P_SINGLE_BOUNDARY 0x40000000 -.It Dv "P_ADVLOCK" Ta No "0x00000001" Ta "Process may hold a POSIX advisory lock" -.It Dv "P_CONTROLT" Ta No "0x00000002" Ta "Has a controlling terminal" -.It Dv "P_KPROC" Ta No "0x00000004" Ta "Kernel process" -.It Dv "P_PPWAIT" Ta No "0x00000010" Ta "Parent is waiting for child to exec/exit" -.It Dv "P_PROFIL" Ta No "0x00000020" Ta "Has started profiling" -.It Dv "P_STOPPROF" Ta No "0x00000040" Ta "Has thread in requesting to stop prof" -.It Dv "P_HADTHREADS" Ta No "0x00000080" Ta "Has had threads (no cleanup shortcuts)" -.It Dv "P_SUGID" Ta No "0x00000100" Ta "Had set id privileges since last exec" -.It Dv "P_SYSTEM" Ta No "0x00000200" Ta "System proc: no sigs, stats or swapping" -.It Dv "P_SINGLE_EXIT" Ta No "0x00000400" Ta "Threads suspending should exit, not wait" -.It Dv "P_TRACED" Ta No "0x00000800" Ta "Debugged process being traced" -.It Dv "P_WAITED" Ta No "0x00001000" Ta "Someone is waiting for us" -.It Dv "P_WEXIT" Ta No "0x00002000" Ta "Working on exiting" -.It Dv "P_EXEC" Ta No "0x00004000" Ta "Process called exec" -.It Dv "P_WKILLED" Ta No "0x00008000" Ta "Killed, shall go to kernel/user boundary ASAP" -.It Dv "P_CONTINUED" Ta No "0x00010000" Ta "Proc has continued from a stopped state" -.It Dv "P_STOPPED_SIG" Ta No "0x00020000" Ta "Stopped due to SIGSTOP/SIGTSTP" -.It Dv "P_STOPPED_TRACE" Ta No "0x00040000" Ta "Stopped because of tracing" -.It Dv "P_STOPPED_SINGLE" Ta No "0x00080000" Ta "Only one thread can continue" -.It Dv "P_PROTECTED" Ta No "0x00100000" Ta "Do not kill on memory overcommit" -.It Dv "P_SIGEVENT" Ta No "0x00200000" Ta "Process pending signals changed" -.It Dv "P_SINGLE_BOUNDARY" Ta No "0x00400000" Ta "Threads should suspend at user boundary" -.It Dv "P_HWPMC" Ta No "0x00800000" Ta "Process is using HWPMCs" -.It Dv "P_JAILED" Ta No "0x01000000" Ta "Process is in jail" -.It Dv "P_TOTAL_STOP" Ta No "0x02000000" Ta "Stopped for system suspend" -.It Dv "P_INEXEC" Ta No "0x04000000" Ta Process is in Xr execve 2 -.It Dv "P_STATCHILD" Ta No "0x08000000" Ta "Child process stopped or exited" -.It Dv "P_INMEM" Ta No "0x10000000" Ta "Always set, unused" -.It Dv "P_PPTRACE" Ta No "0x80000000" Ta "Vforked child issued ptrace(PT_TRACEME)" -.El -.It Cm flags2 -The flags kept in -.Va p_flag2 -associated with the process as in -the include file -.In sys/proc.h : -.Bl -column P2_INHERIT_PROTECTED 0x00000001 -.It Dv "P2_INHERIT_PROTECTED" Ta No "0x00000001" Ta "New children get P_PROTECTED" -.It Dv "P2_NOTRACE" Ta No "0x00000002" Ta "No" Xr ptrace 2 attach or coredumps -.It Dv "P2_NOTRACE_EXEC" Ta No "0x00000004" Ta Keep P2_NOPTRACE on Xr execve 2 -.It Dv "P2_AST_SU" Ta No "0x00000008" Ta "Handles SU ast for kthreads" -.It Dv "P2_PTRACE_FSTP" Ta No "0x00000010" Ta "SIGSTOP from PT_ATTACH not yet handled" -.It Dv "P2_TRAPCAP" Ta No "0x00000020" Ta "SIGTRAP on ENOTCAPABLE" -.It Dv "P2_ASLR_ENABLE" Ta No "0x00000040" Ta "Force enable ASLR" -.It Dv "P2_ASLR_DISABLE" Ta No "0x00000080" Ta "Force disable ASLR" -.It Dv "P2_ASLR_IGNSTART" Ta No "0x00000100" Ta "Enable ASLR to consume sbrk area" -.It Dv "P2_PROTMAX_ENABLE" Ta No "0x00000200" Ta "Force enable implied PROT_MAX" -.It Dv "P2_PROTMAX_DISABLE" Ta No "0x00000400" Ta "Force disable implied PROT_MAX" -.It Dv "P2_STKGAP_DISABLE" Ta No "0x00000800" Ta "Disable stack gap for MAP_STACK" -.It Dv "P2_STKGAP_DISABLE_EXEC" Ta No "0x00001000" Ta "Stack gap disabled after exec" -.It Dv "P2_ITSTOPPED" Ta No "0x00002000" Ta "itimers stopped (as part of process stop)" -.It Dv "P2_PTRACEREQ" Ta No "0x00004000" Ta "Active ptrace req" -.It Dv "P2_NO_NEW_PRIVS" Ta No "0x00008000" Ta "Ignore setuid on exec" -.It Dv "P2_WXORX_DISABLE" Ta No "0x00010000" Ta "WX mappings enabled" -.It Dv "P2_WXORX_ENABLE_EXEC" Ta No "0x00020000" Ta "WxorX enabled after exec" -.It Dv "P2_WEXIT" Ta No "0x00040000" Ta "Internal exit early state" -.It Dv "P2_REAPKILLED" Ta No "0x00080000" Ta "REAP_KILL pass handled the process" -.It Dv "P2_MEMBAR_PRIVE" Ta No "0x00100000" Ta "membarrier private expedited registered" -.It Dv "P2_MEMBAR_PRIVE_SYNCORE" Ta No "0x00200000" Ta "membarrier private expedited sync core registered" -.It Dv "P2_MEMBAR_GLOBE" Ta No "0x00400000" Ta "membar global expedited registered" -.El -.It Cm label -The MAC label of the process. -.It Cm lim -The soft limit on memory used, specified via a call to -.Xr setrlimit 2 . -.It Cm lstart -The exact time the command started, using the -.Ql %c -format described in -.Xr strftime 3 . -.It Cm lockname -The name of the lock that the process is currently blocked on. -If the name is invalid or unknown, then -.Dq ???\& -is displayed. -.It Cm logname -The login name associated with the session the process is in (see -.Xr getlogin 2 ) . -.It Cm mwchan -The event name if the process is blocked normally, or the lock name if -the process is blocked on a lock. -See the wchan and lockname keywords -for details. -.It Cm nice -The process scheduling increment (see -.Xr setpriority 2 ) . -.It Cm rss -the real memory (resident set) size of the process in KiB. -.It Cm start -The time the command started. -If the command started less than 24 hours ago, the start time is -displayed using the -.Dq Li %H:%M -format described in -.Xr strftime 3 . -If the command started less than 7 days ago, the start time is -displayed using the -.Dq Li %a%H -format. -Otherwise, the start time is displayed using the -.Dq Li %e%b%y -format. -.It Cm state -The state is given by a sequence of characters, for example, -.Dq Li RWNA . -The first character indicates the run state of the process: -.Pp -.Bl -tag -width indent -compact -.It Li D -Marks a process in disk (or other short term, uninterruptible) wait. -.It Li I -Marks a process that is idle (sleeping for longer than about 20 seconds). -.It Li L -Marks a process that is waiting to acquire a lock. -.It Li R -Marks a runnable process. -.It Li S -Marks a process that is sleeping for less than about 20 seconds. -.It Li T -Marks a stopped process. -.It Li W -Marks an idle interrupt thread. -.It Li Z -Marks a dead process (a -.Dq zombie ) . -.El -.Pp -Additional characters after these, if any, indicate additional state -information: -.Pp -.Bl -tag -width indent -compact -.It Li + -The process is in the foreground process group of its control terminal. -.It Li < -The process has raised CPU scheduling priority. -.It Li C -The process is in -.Xr capsicum 4 -capability mode. -.It Li E -The process is trying to exit. -.It Li J -Marks a process which is in -.Xr jail 2 . -The hostname of the prison can be found in -.Pa /proc/ Ns Ao Ar pid Ac Ns Pa /status . -.It Li L -The process has pages locked in core (for example, for raw I/O). -.It Li N -The process has reduced CPU scheduling priority (see -.Xr setpriority 2 ) . -.It Li s -The process is a session leader. -.It Li V -The process' parent is suspended during a -.Xr vfork 2 , -waiting for the process to exec or exit. -.It Li X -The process is being traced or debugged. -.El -.It Cm tt -An abbreviation for the pathname of the controlling terminal, if any. -The abbreviation consists of the three letters following -.Pa /dev/tty , -or, for pseudo-terminals, the corresponding entry in -.Pa /dev/pts . -This is followed by a -.Ql - -if the process can no longer reach that -controlling terminal (i.e., it has been revoked). -A -.Ql - -without a preceding two letter abbreviation or pseudo-terminal device number -indicates a process which never had a controlling terminal. -The full pathname of the controlling terminal is available via the -.Cm tty -keyword. -.It Cm wchan -The event (an address in the system) on which a process waits. -When printed numerically, the initial part of the address is -trimmed off and the result is printed in hex, for example, 0x80324000 prints -as 324000. -.El -.Pp -When printing using the command keyword, a process that has exited and -has a parent that has not yet waited for the process (in other words, a zombie) -is listed as -.Dq Li , -and a process which is blocked while trying -to exit is listed as -.Dq Li . -If the arguments cannot be located (usually because it has not been set, as is -the case of system processes and/or kernel threads) the command name is printed -within square brackets. -The -.Nm -utility first tries to obtain the arguments cached by the kernel (if they were -shorter than the value of the -.Va kern.ps_arg_cache_limit -sysctl). -The process can change the arguments shown with -.Xr setproctitle 3 . -Otherwise, +.Fl x +are specified, .Nm -makes an educated guess as to the file name and arguments given when the -process was created by examining memory or the swap area. -The method is inherently somewhat unreliable and in any event a process -is entitled to destroy this information. -The ucomm (accounting) keyword can, however, be depended on. -If the arguments are unavailable or do not agree with the ucomm keyword, -the value for the ucomm keyword is appended to the arguments in parentheses. +will obey the last occurence. +.It Fl Z +Add +.Xr mac 4 +label to the list of keywords for which +.Nm +will display information. +.El .Sh KEYWORDS -The following is a complete list of the available keywords and their -meanings. +The following is a complete list of the available keywords and their meanings. Several of them have aliases (keywords which are synonyms). +Detailed descriptions for some of them can be found after this list. .Pp .Bl -tag -width ".Cm sigignore" -compact .It Cm %cpu @@ -729,7 +630,7 @@ control terminal name (two letter abbreviation) .It Cm tty full name of control terminal .It Cm ucomm -name to be used for accounting +process name used for accounting .It Cm uid effective user ID (alias .Cm euid ) @@ -753,21 +654,258 @@ wait channel (as a symbolic name) exit or stop status (valid only for stopped or zombie process) .El .Pp -Note that the -.Cm pending -column displays bitmask of signals pending in the process queue when +Some of these keywords are further specified as follows: +.Bl -tag -width lockname +.It Cm %cpu +The CPU utilization of the process; this is a decaying average over up to +a minute of previous (real) time. +Since the time base over which this is computed varies (since processes may +be very young) it is possible for the sum of all +.Cm %cpu +fields to exceed 100%. +.It Cm %mem +The percentage of real memory used by this process. +.It Cm class +Login class associated with the process. +.It Cm command +The printed command and arguments are determined as follows. +A process that has exited and has a parent that has not yet waited for the +process (in other words, a zombie) is listed as +.Dq Li . +If the arguments cannot be located +.Po +usually because they have not been set, as is the case for system processes +and/or kernel threads +.Pc , +the command name is printed within square brackets. +The +.Nm +utility first tries to obtain the arguments cached by the kernel +.Po +if they were shorter than the value of the +.Va kern.ps_arg_cache_limit +sysctl +.Pc . +The process can change the arguments shown with +.Xr setproctitle 3 . +Otherwise, +.Nm +makes an educated guess as to the file name and arguments given when the +process was created by examining memory or the swap area. +The method is inherently somewhat unreliable and in any event a process +is entitled to destroy this information. +The +.Cm ucomm +keyword +.Pq accounting +can, however, be depended on. +If the arguments are unavailable or do not agree with the +.Cm ucomm +keyword, the value for the +.Cm ucomm +keyword is appended to the arguments in parentheses. +.It Cm flags +The flags associated with the process as in +the include file +.In sys/proc.h : +.Bl -column P_SINGLE_BOUNDARY 0x40000000 +.It Dv "P_ADVLOCK" Ta No "0x00000001" Ta "Process may hold a POSIX advisory lock" +.It Dv "P_CONTROLT" Ta No "0x00000002" Ta "Has a controlling terminal" +.It Dv "P_KPROC" Ta No "0x00000004" Ta "Kernel process" +.It Dv "P_PPWAIT" Ta No "0x00000010" Ta "Parent is waiting for child to exec/exit" +.It Dv "P_PROFIL" Ta No "0x00000020" Ta "Has started profiling" +.It Dv "P_STOPPROF" Ta No "0x00000040" Ta "Has thread in requesting to stop prof" +.It Dv "P_HADTHREADS" Ta No "0x00000080" Ta "Has had threads (no cleanup shortcuts)" +.It Dv "P_SUGID" Ta No "0x00000100" Ta "Had set id privileges since last exec" +.It Dv "P_SYSTEM" Ta No "0x00000200" Ta "System proc: no sigs, stats or swapping" +.It Dv "P_SINGLE_EXIT" Ta No "0x00000400" Ta "Threads suspending should exit, not wait" +.It Dv "P_TRACED" Ta No "0x00000800" Ta "Debugged process being traced" +.It Dv "P_WAITED" Ta No "0x00001000" Ta "Someone is waiting for us" +.It Dv "P_WEXIT" Ta No "0x00002000" Ta "Working on exiting" +.It Dv "P_EXEC" Ta No "0x00004000" Ta "Process called exec" +.It Dv "P_WKILLED" Ta No "0x00008000" Ta "Killed, shall go to kernel/user boundary ASAP" +.It Dv "P_CONTINUED" Ta No "0x00010000" Ta "Proc has continued from a stopped state" +.It Dv "P_STOPPED_SIG" Ta No "0x00020000" Ta "Stopped due to SIGSTOP/SIGTSTP" +.It Dv "P_STOPPED_TRACE" Ta No "0x00040000" Ta "Stopped because of tracing" +.It Dv "P_STOPPED_SINGLE" Ta No "0x00080000" Ta "Only one thread can continue" +.It Dv "P_PROTECTED" Ta No "0x00100000" Ta "Do not kill on memory overcommit" +.It Dv "P_SIGEVENT" Ta No "0x00200000" Ta "Process pending signals changed" +.It Dv "P_SINGLE_BOUNDARY" Ta No "0x00400000" Ta "Threads should suspend at user boundary" +.It Dv "P_HWPMC" Ta No "0x00800000" Ta "Process is using HWPMCs" +.It Dv "P_JAILED" Ta No "0x01000000" Ta "Process is in jail" +.It Dv "P_TOTAL_STOP" Ta No "0x02000000" Ta "Stopped for system suspend" +.It Dv "P_INEXEC" Ta No "0x04000000" Ta Process is in Xr execve 2 +.It Dv "P_STATCHILD" Ta No "0x08000000" Ta "Child process stopped or exited" +.It Dv "P_INMEM" Ta No "0x10000000" Ta "Always set, unused" +.It Dv "P_PPTRACE" Ta No "0x80000000" Ta "Vforked child issued ptrace(PT_TRACEME)" +.El +.It Cm flags2 +The flags kept in +.Va p_flag2 +associated with the process as in +the include file +.In sys/proc.h : +.Bl -column P2_INHERIT_PROTECTED 0x00000001 +.It Dv "P2_INHERIT_PROTECTED" Ta No "0x00000001" Ta "New children get P_PROTECTED" +.It Dv "P2_NOTRACE" Ta No "0x00000002" Ta "No" Xr ptrace 2 attach or coredumps +.It Dv "P2_NOTRACE_EXEC" Ta No "0x00000004" Ta Keep P2_NOPTRACE on Xr execve 2 +.It Dv "P2_AST_SU" Ta No "0x00000008" Ta "Handles SU ast for kthreads" +.It Dv "P2_PTRACE_FSTP" Ta No "0x00000010" Ta "SIGSTOP from PT_ATTACH not yet handled" +.It Dv "P2_TRAPCAP" Ta No "0x00000020" Ta "SIGTRAP on ENOTCAPABLE" +.It Dv "P2_ASLR_ENABLE" Ta No "0x00000040" Ta "Force enable ASLR" +.It Dv "P2_ASLR_DISABLE" Ta No "0x00000080" Ta "Force disable ASLR" +.It Dv "P2_ASLR_IGNSTART" Ta No "0x00000100" Ta "Enable ASLR to consume sbrk area" +.It Dv "P2_PROTMAX_ENABLE" Ta No "0x00000200" Ta "Force enable implied PROT_MAX" +.It Dv "P2_PROTMAX_DISABLE" Ta No "0x00000400" Ta "Force disable implied PROT_MAX" +.It Dv "P2_STKGAP_DISABLE" Ta No "0x00000800" Ta "Disable stack gap for MAP_STACK" +.It Dv "P2_STKGAP_DISABLE_EXEC" Ta No "0x00001000" Ta "Stack gap disabled after exec" +.It Dv "P2_ITSTOPPED" Ta No "0x00002000" Ta "itimers stopped (as part of process stop)" +.It Dv "P2_PTRACEREQ" Ta No "0x00004000" Ta "Active ptrace req" +.It Dv "P2_NO_NEW_PRIVS" Ta No "0x00008000" Ta "Ignore setuid on exec" +.It Dv "P2_WXORX_DISABLE" Ta No "0x00010000" Ta "WX mappings enabled" +.It Dv "P2_WXORX_ENABLE_EXEC" Ta No "0x00020000" Ta "WxorX enabled after exec" +.It Dv "P2_WEXIT" Ta No "0x00040000" Ta "Internal exit early state" +.It Dv "P2_REAPKILLED" Ta No "0x00080000" Ta "REAP_KILL pass handled the process" +.It Dv "P2_MEMBAR_PRIVE" Ta No "0x00100000" Ta "membarrier private expedited registered" +.It Dv "P2_MEMBAR_PRIVE_SYNCORE" Ta No "0x00200000" Ta "membarrier private expedited sync core registered" +.It Dv "P2_MEMBAR_GLOBE" Ta No "0x00400000" Ta "membar global expedited registered" +.El +.It Cm label +The MAC label of the process. +.It Cm lim +The soft limit on memory used, specified via a call to +.Xr setrlimit 2 . +.It Cm lstart +The exact time the command started, using the +.Ql %c +format described in +.Xr strftime 3 . +.It Cm lockname +The name of the lock that the process is currently blocked on. +If the name is invalid or unknown, then +.Dq ???\& +is displayed. +.It Cm logname +The login name associated with the session the process is in (see +.Xr getlogin 2 ) . +.It Cm mwchan +The event name if the process is blocked normally, or the lock name if +the process is blocked on a lock. +See the wchan and lockname keywords +for details. +.It Cm nice +The process scheduling increment (see +.Xr setpriority 2 ) . +.It Cm rss +the real memory (resident set) size of the process in KiB. +.It Cm start +The time the command started. +If the command started less than 24 hours ago, the start time is +displayed using the +.Dq Li %H:%M +format described in +.Xr strftime 3 . +If the command started less than 7 days ago, the start time is +displayed using the +.Dq Li %a%H +format. +Otherwise, the start time is displayed using the +.Dq Li %e%b%y +format. +.It Cm sig +The bitmask of signals pending in the process queue if the .Fl H -option is not specified, otherwise the per-thread queue of pending signals -is shown. +option has not been specified, else the per-thread queue of pending signals. +.It Cm state +The state is given by a sequence of characters, for example, +.Dq Li RWNA . +The first character indicates the run state of the process: +.Pp +.Bl -tag -width indent -compact +.It Li D +Marks a process in disk (or other short term, uninterruptible) wait. +.It Li I +Marks a process that is idle (sleeping for longer than about 20 seconds). +.It Li L +Marks a process that is waiting to acquire a lock. +.It Li R +Marks a runnable process. +.It Li S +Marks a process that is sleeping for less than about 20 seconds. +.It Li T +Marks a stopped process. +.It Li W +Marks an idle interrupt thread. +.It Li Z +Marks a dead process (a +.Dq zombie ) . +.El +.Pp +Additional characters after these, if any, indicate additional state +information: +.Pp +.Bl -tag -width indent -compact +.It Li + +The process is in the foreground process group of its control terminal. +.It Li < +The process has raised CPU scheduling priority. +.It Li C +The process is in +.Xr capsicum 4 +capability mode. *** 197 LINES SKIPPED *** From nobody Mon Apr 28 12:23:22 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 4ZmMzt71Jmz5vJLj; Mon, 28 Apr 2025 12:23: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 4ZmMzt1PC5z3frZ; Mon, 28 Apr 2025 12:23:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843002; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gGC9pjEEDbdciohxs/N9hX/HvC/E3O/Nxa2qePiLPlY=; b=clfg9G/T5KyN62+JvZB3i5nPzkPiC2hLRIdRcqM1Dm670oxluTyfAnNsaGoCM/p7nXjl76 VztyEBFrjPNC/CBvYBm38gxsMW3mbeXoN0f56M3P7/jJhc7xakbknZtY3ObYQVgvQIW5eB blydibA8LiHhl1gkTNs1HBXGgotgsiP84MnaSdwh5LECgyh5hdVDAi3neieuHgyLO1Sprm tnhHEYiQfV6fZd7cz1eMIlcVuUXIbiqU/S9GpZ4izze5+7GCvONyIdy1rOPHilaJ9hTmtk 43H+qyM0x608fdtrC/Ie6zcsEgQorBm0P/rnduofaxx/rR/7H9kWOsOqMtgUAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843002; a=rsa-sha256; cv=none; b=CHu9JfTDf/WC1m0wKLXAN/qbZ96KvMJ45XTYTrgsc9sdwEaSizoXUWMVirxVQP6lWIsgUd 3aKtJ5/WjKJh5N41Wkqi64S4y/vdSj8jLd4HKl4AqmsWeDm9afFD5dRX97orVFn0oAjL0C HiSXz9JkeGI7Yga2mz64xXEk0AQfhm5EWaz8gT/2cuNi5qdKd1IXOoK6Wgpou2wvQ1s4gf WSnBd86ThnQGFANXb6GSPg3mgBXiXalxzazNZ3+CATAjpa+WcDogACrIyxholS+fjCQyIL HlFR5xGwBYdEKoNoTTsdbE5ILi7nGXRjCtGfZjPd3uD13QEqbE8Y7v3HZ8dLhg== 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=1745843002; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gGC9pjEEDbdciohxs/N9hX/HvC/E3O/Nxa2qePiLPlY=; b=loH8X6B6HxaSQVmCug4YqcCdpxiEotTa46zuQ1YHSXJLYjpHE6jFhf9vAVNB+jHAIjfKVn 0pfC3kInsULqUHhAt4SFLpFbOUi6A5VDaVH4/YQWsbWNtcufNs3EGypu8ETgLa1Xmn8R0r 7/k24ENqJpihUkFbU9TcmEjJVYNzAKuY8hRNPuLw7LuBqujJGt/BjDyd1zOcAe5nqorgG+ No1k4dOSg/NaLTl7c4i7nHDJKLxH6vDwHD+22LW+pSfzuPs43BOQWmZAfE6l0M6UxQ6I9V teApSd5ljMOUAeBu2oadiN9XI6HCzJPfkBPz7vJeWNjRCYU24fwEgFvI+GnGhQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzt0yp3zbW0; Mon, 28 Apr 2025 12:23: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 53SCNMRh025192; Mon, 28 Apr 2025 12:23:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNMWe025188; Mon, 28 Apr 2025 12:23:22 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:22 GMT Message-Id: <202504281223.53SCNMWe025188@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 07a7557addc0 - main - ps(1): Have parsefmt() take the list of columns to update 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 07a7557addc03acd28aaae55b90419c4ef9d9ad1 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=07a7557addc03acd28aaae55b90419c4ef9d9ad1 commit 07a7557addc03acd28aaae55b90419c4ef9d9ad1 Author: Olivier Certner AuthorDate: 2025-02-27 17:15:14 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:56:20 +0000 ps(1): Have parsefmt() take the list of columns to update This is in preparation for changing the behavior of the '-O' option. While here, reformat the definition of 'struct varent', fix formatting of that of 'struct var' and expand slightly their herald comments. More reformatting/commenting in 'ps.h'. No functional change intended. Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49607 --- bin/ps/extern.h | 4 ++-- bin/ps/keyword.c | 17 +++++++++-------- bin/ps/ps.c | 20 ++++++++++---------- bin/ps/ps.h | 12 +++++++----- 4 files changed, 28 insertions(+), 25 deletions(-) diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 9d4630adfdd6..48c452aeb844 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -39,7 +39,7 @@ extern int cflag, eval, fscale, nlistread, rawcpu; extern unsigned long mempages; extern time_t now; extern int showthreads, sumrusage, termwidth; -extern STAILQ_HEAD(velisthead, varent) varlist; +extern struct velisthead varlist; __BEGIN_DECLS char *arguments(KINFO *, VARENT *); @@ -65,7 +65,7 @@ char *lockname(KINFO *, VARENT *); char *mwchan(KINFO *, VARENT *); char *nwchan(KINFO *, VARENT *); char *pagein(KINFO *, VARENT *); -void parsefmt(const char *, int); +void parsefmt(const char *, struct velisthead *, int); char *pcpu(KINFO *, VARENT *); char *pmem(KINFO *, VARENT *); char *pri(KINFO *, VARENT *); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 0c8edb06b562..72fe9e183aac 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -44,7 +44,7 @@ #include "ps.h" -static VAR *findvar(char *, int, char **header); +static VAR *findvar(char *, struct velisthead *, int, char **header); static int vcmp(const void *, const void *); /* Compute offset in common structures. */ @@ -254,7 +254,8 @@ showkey(void) } void -parsefmt(const char *p, int user) +parsefmt(const char *p, struct velisthead *const var_list, + const int user) { char *tempstr, *tempstr1; @@ -278,7 +279,7 @@ parsefmt(const char *p, int user) cp = tempstr; tempstr = NULL; } - if (cp == NULL || !(v = findvar(cp, user, &hp))) + if (cp == NULL || !(v = findvar(cp, var_list, user, &hp))) continue; if (!user) { /* @@ -302,10 +303,10 @@ parsefmt(const char *p, int user) if (vent->var == NULL) xo_errx(1, "malloc failed"); memcpy(vent->var, v, sizeof(*vent->var)); - STAILQ_INSERT_TAIL(&varlist, vent, next_ve); + STAILQ_INSERT_TAIL(var_list, vent, next_ve); } free(tempstr1); - if (STAILQ_EMPTY(&varlist)) { + if (STAILQ_EMPTY(var_list)) { xo_warnx("no valid keywords; valid keywords:"); showkey(); exit(1); @@ -313,7 +314,7 @@ parsefmt(const char *p, int user) } static VAR * -findvar(char *p, int user, char **header) +findvar(char *p, struct velisthead *const var_list, int user, char **header) { size_t rflen; VAR *v, key; @@ -334,7 +335,7 @@ findvar(char *p, int user, char **header) * process the alias. */ if (hp == NULL) - parsefmt(v->alias, user); + parsefmt(v->alias, var_list, user); else { /* * XXX - This processing will not be correct for @@ -347,7 +348,7 @@ findvar(char *p, int user, char **header) if (realfmt == NULL) xo_errx(1, "malloc failed"); snprintf(realfmt, rflen, "%s=%s", v->alias, hp); - parsefmt(realfmt, user); + parsefmt(realfmt, var_list, user); free(realfmt); } return ((VAR *)NULL); diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 15d4d70eebf5..a5ae43b7fad1 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -293,7 +293,7 @@ main(int argc, char *argv[]) nselectors++; break; case 'j': - parsefmt(jfmt, 0); + parsefmt(jfmt, &varlist, 0); _fmt = 1; jfmt[0] = '\0'; break; @@ -301,7 +301,7 @@ main(int argc, char *argv[]) showkey(); exit(0); case 'l': - parsefmt(lfmt, 0); + parsefmt(lfmt, &varlist, 0); _fmt = 1; lfmt[0] = '\0'; break; @@ -315,14 +315,14 @@ main(int argc, char *argv[]) nlistf = optarg; break; case 'O': - parsefmt(o1, 1); - parsefmt(optarg, 1); - parsefmt(o2, 1); + parsefmt(o1, &varlist, 1); + parsefmt(optarg, &varlist, 1); + parsefmt(o2, &varlist, 1); o1[0] = o2[0] = '\0'; _fmt = 1; break; case 'o': - parsefmt(optarg, 1); + parsefmt(optarg, &varlist, 1); _fmt = 1; break; case 'p': @@ -384,13 +384,13 @@ main(int argc, char *argv[]) nselectors++; break; case 'u': - parsefmt(ufmt, 0); + parsefmt(ufmt, &varlist, 0); sortby = SORTCPU; _fmt = 1; ufmt[0] = '\0'; break; case 'v': - parsefmt(vfmt, 0); + parsefmt(vfmt, &varlist, 0); sortby = SORTMEM; _fmt = 1; vfmt[0] = '\0'; @@ -420,7 +420,7 @@ main(int argc, char *argv[]) xkeep = 1; break; case 'Z': - parsefmt(Zfmt, 0); + parsefmt(Zfmt, &varlist, 0); Zfmt[0] = '\0'; break; case '?': @@ -454,7 +454,7 @@ main(int argc, char *argv[]) xo_errx(1, "%s", errbuf); if (!_fmt) - parsefmt(dfmt, 0); + parsefmt(dfmt, &varlist, 0); if (!all && nselectors == 0) { uidlist.l.ptr = malloc(sizeof(uid_t)); diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 521027427036..c5efb19fc00d 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -53,13 +53,15 @@ typedef struct kinfo { STAILQ_HEAD(, kinfo_str) ki_ks; } KINFO; -/* Variables. */ +/* Keywords/variables to be printed. */ typedef struct varent { - STAILQ_ENTRY(varent) next_ve; - const char *header; - struct var *var; + STAILQ_ENTRY(varent) next_ve; + const char *header; + struct var *var; } VARENT; +STAILQ_HEAD(velisthead, varent); +/* Structure representing one available keyword. */ typedef struct var { const char *name; /* name(s) of variable */ const char *header; /* default header */ @@ -71,7 +73,7 @@ typedef struct var { #define INF127 0x10 /* values >127 displayed as 127 */ u_int flag; /* output routine */ - char *(*oproc)(struct kinfo *, struct varent *); + char *(*oproc)(struct kinfo *, struct varent *); /* * The following (optional) elements are hooks for passing information * to the generic output routine pvar (which prints simple elements From nobody Mon Apr 28 12:23:23 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 4ZmMzv5nYgz5vJPH; Mon, 28 Apr 2025 12:23: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 4ZmMzv2MHQz3g2X; Mon, 28 Apr 2025 12:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wEbuoj3Gn/HHuxsLyljYr3zWPSxEisgvs/eE24fs1Qs=; b=aEmISlSoTomk4ji/zet8BLPML/rSStj0pwuTY6o4jggt0raR0cg5SX7ydE4NGR0BwMxyrv qGDz39o/R6V/B6+LnZn9DrnY3WBKvKnj5FCqKxRk4T6qz0elbs+hzT+UTcUjk2aXEALh0Q 8PlENngX9oxbYqMwRRzKN6uz8s2Y7OLv97sF37IaVsvOcctHNaWh1FH7Z0WJRPlFFF+y3T GjfD3AYWWaTbbK6Xkkb7Oh8Yq9gBe2uT3IAPH/zgVbCxTdxm6PaW3F79af1z+0IDg7GVCU VSNEhCZO5zw4TEIo0xGKUgGgrsKjVJH8r9zQTk9SCRT2kNWrmez9OAXAkMgP1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843003; a=rsa-sha256; cv=none; b=SOof4JQLnb6Ut+vzIl4+bsL5GkHzTzYPh1yIZjBilgFhxHUFi8sJq+w2+t5JpBnM9v3SR/ kYbfaggKKOHeBNyF7ek++Rv2uwWTJYlZf7tQULz0ybNPoCKk80QSTbIyxoqUEliOUOtAdP NHvEDHLyUSvTOU2AmfMgzgBd3j4EovbFC3AwV9wiDAWo6cNv44HfvAkZq6AHUi+q/JBwAA o0VdtHwmWKZ1w+zpmRSz9Ktm9i1pYb0jsBKEIwOD9wOMDxCfYeHTFlg1QGAhbg9r3sVrfx Kr55NTYVLJS+DmfVdkblWLQy2wn7PiEEwahflQ5mlZD69Vmv0x1DK3hlfzHNVw== 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=1745843003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wEbuoj3Gn/HHuxsLyljYr3zWPSxEisgvs/eE24fs1Qs=; b=qFlJ+y9hKVSqwdfrWpWnH6Go28bNtELFbmSPvw0Jy2YaC5E3epzW2nSKjzQC0QyEhxvQXw AsYGg0qY3Ie8p9znsZHtdqROC+JZy3SVhsTeEitnAu3yl0k6oXwLQnCQApHCQaaHttk7OG E22FQpdOCm60Z0gfV3IcvVPbHmpiiylNIMm0uAdF2rLDKI+l1UXBpAxnWGFtxuLEXBOtgQ 5d09ZaI9Ue3YYWK0VB5jiyua2HTawICaZ/2Zx3yvk85rFLZUi9SoPq6Fcw5fRFyGFAPhgx rI6gVKB1Wvl4faqnXn7i62dTJI0GXEclwSYmj/DU6OF4RwcfdiOzK0tYhc7Lmg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzv1fpDzbW1; Mon, 28 Apr 2025 12:23: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 53SCNNKD025225; Mon, 28 Apr 2025 12:23:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNNLu025222; Mon, 28 Apr 2025 12:23:23 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:23 GMT Message-Id: <202504281223.53SCNNLu025222@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: c1e5a7fdad63 - main - ps(1): find_varentry() to take a name instead of a VAR 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c1e5a7fdad631458768fc45a82b4d43bade8d0c8 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=c1e5a7fdad631458768fc45a82b4d43bade8d0c8 commit c1e5a7fdad631458768fc45a82b4d43bade8d0c8 Author: Olivier Certner AuthorDate: 2025-02-28 09:25:31 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:56:27 +0000 ps(1): find_varentry() to take a name instead of a VAR The only information that find_varentry() needs and uses is a keyword/var name. The rest of the fields in the passed VAR are unused. Changing its signature will ease introducing new calls to find_varentry() in subsequent commits, as there no VAR object will exist to be passed but just a name. Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49609 --- bin/ps/extern.h | 2 +- bin/ps/keyword.c | 2 +- bin/ps/ps.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 48c452aeb844..45b5969f3911 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -50,7 +50,7 @@ int donlist(void); char *elapsed(KINFO *, VARENT *); char *elapseds(KINFO *, VARENT *); char *emulname(KINFO *, VARENT *); -VARENT *find_varentry(VAR *); +VARENT *find_varentry(const char *); const char *fmt_argv(char **, char *, char *, size_t); double getpcpu(const KINFO *); char *jailname(KINFO *, VARENT *); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 72fe9e183aac..59011c906175 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -287,7 +287,7 @@ parsefmt(const char *p, struct velisthead *const var_list, * get on with our lives if this VAR is already * represented in the list. */ - vent = find_varentry(v); + vent = find_varentry(v->name); if (vent != NULL) continue; } diff --git a/bin/ps/ps.c b/bin/ps/ps.c index a5ae43b7fad1..2a94b4c37f31 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1180,12 +1180,12 @@ init_list(struct listinfo *inf, addelem_rtn artn, int elemsize, } VARENT * -find_varentry(VAR *v) +find_varentry(const char *name) { struct varent *vent; STAILQ_FOREACH(vent, &varlist, next_ve) { - if (strcmp(vent->var->name, v->name) == 0) + if (strcmp(vent->var->name, name) == 0) return vent; } return NULL; From nobody Mon Apr 28 12:23:26 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 4ZmMzy4yvbz5vJ7d; Mon, 28 Apr 2025 12:23: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 4ZmMzy47Q5z3fp0; Mon, 28 Apr 2025 12:23:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843006; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UN7AjQ01uUmDlHHWYkU3fCpq8i3Z9D0Z51tHP1upl7s=; b=QZ72z+TjXVJzEA+lkIeyiGwzwLOf8HyvKs1HRIqRu5G+WGlzizWXN6h5sILo/VeOYdlOe7 XjNknwDBYd7iJTQrD3l9MwJUpSQniwpS002EuKbKdcSiw3YNrVpT5i5+pplyJmQzJsn873 32pOvs2gudmo3aftrj4UYZXuwvLu8OY++fB1FEbfbvUh8oZgAJKQKxTMo5f+jq0ArKS45w gFc3hotrjCLhPEHYl+zfWx+BnOIXhrpNDqr/fTGCsToSG9cCmBqUT7utPxeKrheh0MfuV5 8leFGCt2K61owQM5PvznWzTkOrasJUbvcFgYNssDK5kxYfpQDfO/93NPCj4kRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843006; a=rsa-sha256; cv=none; b=WLfyBZ62z+GLpOfkOM0X+/Ow35UzzZ39uVYAVVSBvvXGHYxMsQ8ejFPSK4GyfngVnPH0Dd AnvuMHY2h/XlUdkPV3QvtTxdljWt3D28PFdnrdxkOImpxjFpX4fFzL8h+2XWQTd8N8OEb8 XIGzMIFtt5TE86f1ddmopcw5TlGyLchO3NCK43kiynPj9CNIw47BZlt2CvZU6CmILFB9vv SfHYFO/2Hufz5c8PqhAT6AW9Uq/X8ftS6ONQ6IW8yUb1eh26W5yWd2htmtpcOmH9TYZJTp XkAaAGqSVxgk61JH87kZEVsfwnfW4Z7SzSTBQ/XMx5dtOAZntfobKkNVnSdK1Q== 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=1745843006; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UN7AjQ01uUmDlHHWYkU3fCpq8i3Z9D0Z51tHP1upl7s=; b=gmMV5/4TVc34LFtZgox37kcohjrZRecAtGh5TLjDQronQkBoeZdlQl/MTI8PK2g1pnYqSN qT4E+e7zQGI8PAoZRO6c2xL+O2nSBEiGFsPVCoxh0qHvmzhP4Rn0OjJNVh4zDaQAOUQOTc WkwR3MlQ3/GYE0PkL8JcM3r4gvlGKGlo29eyLntDB3UG3gbq1GIDiYmhL5lz+RljAOq8Dm b8fS07TwzCPGGlDHqxAImwIcITVKbS8iHmJ+fvQpeQHetkBt2pQ+ViIq3LtSBcUEWpMaq6 X3vLZiWziYzgE8ag3zaK+voV4NNjK1T8pZ7rob0TMzrn6V2tRZ3Af1dfQT1ETQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzy3YbYzbwF; Mon, 28 Apr 2025 12:23: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 53SCNQt5025330; Mon, 28 Apr 2025 12:23:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNQf0025327; Mon, 28 Apr 2025 12:23:26 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:26 GMT Message-Id: <202504281223.53SCNQf0025327@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 090f0e5820ef - main - ps(1): Keywords: New UNSPEC type, rename 'alias', re-order 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 090f0e5820efc7f9459d1e4eb1be17fb98848df5 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=090f0e5820efc7f9459d1e4eb1be17fb98848df5 commit 090f0e5820efc7f9459d1e4eb1be17fb98848df5 Author: Olivier Certner AuthorDate: 2025-04-25 12:16:56 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:56:54 +0000 ps(1): Keywords: New UNSPEC type, rename 'alias', re-order fields This is in preparation for a change in how aliases are resolved, itself in preparation for being able to quickly identify columns displaying the same information (same final keyword). Add the new UNSPEC ("unspecified") type, as the keywords' type field is only used by the kvar() and rvar() output routines, and has no meaning for alias keywords. In particular, this will allow to check that no specific type is associated to any alias. An immediate benefit is that now most keywords have UNSPEC as their "type", which now makes kvar()/rvar() explicitly fail (instead of trying to print a character, as the previous CHAR type was requesting). A developer introducing new keywords via copy-paste will thus be reminded that it also needs to set 'type' meaningfully if using kvar()/rvar() as the output routine. Rename field 'alias' of keywords ('VAR' type) into 'aliased'. Move it just after the keyword's name, as it makes it easier to spot aliases in the list. Make it a union, as a subsequent commit will... alias it with a pointer to another 'VAR' structure. Turn aliases' header string ("" for all aliases) into NULL. It is currently not used, but will be when introducing the new "merge" procedure for aliases (where it will mean: Use the header of the aliased keyword). While here, rename vars[] into the more descriptive keywords[]. MFC after: 3 days Sponsored by: The FreeBSD Foundation --- bin/ps/keyword.c | 349 ++++++++++++++++++++++++++++--------------------------- bin/ps/print.c | 7 ++ bin/ps/ps.h | 9 +- 3 files changed, 190 insertions(+), 175 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 37a4a1711445..8fc42d8675e5 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -57,185 +57,190 @@ static int vcmp(const void *, const void *); #define PIDFMT "d" /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */ -static VAR var[] = { - {"%cpu", "%CPU", NULL, "percent-cpu", 0, pcpu, 0, CHAR, NULL}, - {"%mem", "%MEM", NULL, "percent-memory", 0, pmem, 0, CHAR, NULL}, - {"acflag", "ACFLG", NULL, "accounting-flag", 0, kvar, KOFF(ki_acflag), - USHORT, "x"}, - {"acflg", "", "acflag", NULL, 0, NULL, 0, CHAR, NULL}, - {"args", "COMMAND", NULL, "arguments", COMM|LJUST|USER, arguments, 0, - CHAR, NULL}, - {"blocked", "", "sigmask", NULL, 0, NULL, 0, CHAR, NULL}, - {"caught", "", "sigcatch", NULL, 0, NULL, 0, CHAR, NULL}, - {"class", "CLASS", NULL, "login-class", LJUST, loginclass, 0, CHAR, - NULL}, - {"comm", "COMMAND", NULL, "command", LJUST, ucomm, 0, CHAR, NULL}, - {"command", "COMMAND", NULL, "command", COMM|LJUST|USER, command, 0, - CHAR, NULL}, - {"cow", "COW", NULL, "copy-on-write-faults", 0, kvar, KOFF(ki_cow), - UINT, "u"}, - {"cpu", "C", NULL, "on-cpu", 0, cpunum, 0, CHAR, NULL}, - {"cputime", "", "time", NULL, 0, NULL, 0, CHAR, NULL}, - {"dsiz", "DSIZ", NULL, "data-size", 0, kvar, KOFF(ki_dsize), PGTOK, - "ld"}, - {"egid", "", "gid", NULL, 0, NULL, 0, CHAR, NULL}, - {"egroup", "", "group", NULL, 0, NULL, 0, CHAR, NULL}, - {"emul", "EMUL", NULL, "emulation-envirnment", LJUST, emulname, 0, - CHAR, NULL}, - {"etime", "ELAPSED", NULL, "elapsed-time", USER, elapsed, 0, CHAR, - NULL}, - {"etimes", "ELAPSED", NULL, "elapsed-times", USER, elapseds, 0, CHAR, - NULL}, - {"euid", "", "uid", NULL, 0, NULL, 0, CHAR, NULL}, - {"f", "F", NULL, "flags", 0, kvar, KOFF(ki_flag), LONG, "lx"}, - {"f2", "F2", NULL, "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x"}, - {"fib", "FIB", NULL, "fib", 0, kvar, KOFF(ki_fibnum), INT, "d"}, - {"flags", "", "f", NULL, 0, NULL, 0, CHAR, NULL}, - {"flags2", "", "f2", NULL, 0, NULL, 0, CHAR, NULL}, - {"gid", "GID", NULL, "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT}, - {"group", "GROUP", NULL, "group", LJUST, egroupname, 0, CHAR, NULL}, - {"ignored", "", "sigignore", NULL, 0, NULL, 0, CHAR, NULL}, - {"inblk", "INBLK", NULL, "read-blocks", USER, rvar, ROFF(ru_inblock), - LONG, "ld"}, - {"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL}, - {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL}, - {"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d"}, - {"jobc", "JOBC", NULL, "job-control-count", 0, kvar, KOFF(ki_jobc), - SHORT, "d"}, - {"ktrace", "KTRACE", NULL, "ktrace", 0, kvar, KOFF(ki_traceflag), INT, - "x"}, - {"label", "LABEL", NULL, "label", LJUST, label, 0, CHAR, NULL}, - {"lim", "LIM", NULL, "memory-limit", 0, maxrss, 0, CHAR, NULL}, - {"lockname", "LOCK", NULL, "lock-name", LJUST, lockname, 0, CHAR, NULL}, - {"login", "LOGIN", NULL, "login-name", LJUST, logname, 0, CHAR, NULL}, - {"logname", "", "login", NULL, 0, NULL, 0, CHAR, NULL}, - {"lstart", "STARTED", NULL, "start-time", LJUST|USER, lstarted, 0, - CHAR, NULL}, - {"lwp", "LWP", NULL, "thread-id", 0, kvar, KOFF(ki_tid), UINT, - LWPFMT}, - {"majflt", "MAJFLT", NULL, "major-faults", USER, rvar, ROFF(ru_majflt), - LONG, "ld"}, - {"minflt", "MINFLT", NULL, "minor-faults", USER, rvar, ROFF(ru_minflt), - LONG, "ld"}, - {"msgrcv", "MSGRCV", NULL, "received-messages", USER, rvar, - ROFF(ru_msgrcv), LONG, "ld"}, - {"msgsnd", "MSGSND", NULL, "sent-messages", USER, rvar, - ROFF(ru_msgsnd), LONG, "ld"}, - {"mwchan", "MWCHAN", NULL, "wait-channel", LJUST, mwchan, 0, CHAR, - NULL}, - {"ni", "", "nice", NULL, 0, NULL, 0, CHAR, NULL}, - {"nice", "NI", NULL, "nice", 0, kvar, KOFF(ki_nice), CHAR, "d"}, - {"nivcsw", "NIVCSW", NULL, "involuntary-context-switches", USER, rvar, - ROFF(ru_nivcsw), LONG, "ld"}, - {"nlwp", "NLWP", NULL, "threads", 0, kvar, KOFF(ki_numthreads), UINT, - NLWPFMT}, - {"nsignals", "", "nsigs", NULL, 0, NULL, 0, CHAR, NULL}, - {"nsigs", "NSIGS", NULL, "signals-taken", USER, rvar, - ROFF(ru_nsignals), LONG, "ld"}, - {"nswap", "NSWAP", NULL, "swaps", USER, rvar, ROFF(ru_nswap), LONG, - "ld"}, - {"nvcsw", "NVCSW", NULL, "voluntary-context-switches", USER, rvar, - ROFF(ru_nvcsw), LONG, "ld"}, - {"nwchan", "NWCHAN", NULL, "wait-channel-address", LJUST, nwchan, 0, - CHAR, NULL}, - {"oublk", "OUBLK", NULL, "written-blocks", USER, rvar, - ROFF(ru_oublock), LONG, "ld"}, - {"oublock", "", "oublk", NULL, 0, NULL, 0, CHAR, NULL}, - {"paddr", "PADDR", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx"}, - {"pagein", "PAGEIN", NULL, "pageins", USER, pagein, 0, CHAR, NULL}, - {"pcpu", "", "%cpu", NULL, 0, NULL, 0, CHAR, NULL}, - {"pending", "", "sig", NULL, 0, NULL, 0, CHAR, NULL}, - {"pgid", "PGID", NULL, "process-group", 0, kvar, KOFF(ki_pgid), UINT, - PIDFMT}, - {"pid", "PID", NULL, "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT}, - {"pmem", "", "%mem", NULL, 0, NULL, 0, CHAR, NULL}, - {"ppid", "PPID", NULL, "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT}, - {"pri", "PRI", NULL, "priority", 0, pri, 0, CHAR, NULL}, - {"re", "RE", NULL, "residency-time", INF127, kvar, KOFF(ki_swtime), - UINT, "d"}, - {"rgid", "RGID", NULL, "real-gid", 0, kvar, KOFF(ki_rgid), UINT, - UIDFMT}, - {"rgroup", "RGROUP", NULL, "real-group", LJUST, rgroupname, 0, CHAR, - NULL}, - {"rss", "RSS", NULL, "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld"}, - {"rtprio", "RTPRIO", NULL, "realtime-priority", 0, priorityr, - KOFF(ki_pri), CHAR, NULL}, - {"ruid", "RUID", NULL, "real-uid", 0, kvar, KOFF(ki_ruid), UINT, - UIDFMT}, - {"ruser", "RUSER", NULL, "real-user", LJUST, runame, 0, CHAR, NULL}, - {"sid", "SID", NULL, "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT}, - {"sig", "PENDING", NULL, "signals-pending", 0, kvar, KOFF(ki_siglist), - INT, "x"}, - {"sigcatch", "CAUGHT", NULL, "signals-caught", 0, kvar, - KOFF(ki_sigcatch), UINT, "x"}, - {"sigignore", "IGNORED", NULL, "signals-ignored", 0, kvar, - KOFF(ki_sigignore), UINT, "x"}, - {"sigmask", "BLOCKED", NULL, "signal-mask", 0, kvar, KOFF(ki_sigmask), - UINT, "x"}, - {"sl", "SL", NULL, "sleep-time", INF127, kvar, KOFF(ki_slptime), UINT, - "d"}, - {"ssiz", "SSIZ", NULL, "stack-size", 0, kvar, KOFF(ki_ssize), PGTOK, - "ld"}, - {"start", "STARTED", NULL, "start-time", LJUST|USER, started, 0, CHAR, - NULL}, - {"stat", "", "state", NULL, 0, NULL, 0, CHAR, NULL}, - {"state", "STAT", NULL, "state", LJUST, state, 0, CHAR, NULL}, - {"svgid", "SVGID", NULL, "saved-gid", 0, kvar, KOFF(ki_svgid), UINT, - UIDFMT}, - {"svuid", "SVUID", NULL, "saved-uid", 0, kvar, KOFF(ki_svuid), UINT, - UIDFMT}, - {"systime", "SYSTIME", NULL, "system-time", USER, systime, 0, CHAR, - NULL}, - {"tdaddr", "TDADDR", NULL, "thread-address", 0, kvar, KOFF(ki_tdaddr), - KPTR, "lx"}, - {"tdev", "TDEV", NULL, "terminal-device", 0, tdev, 0, CHAR, NULL}, - {"tdnam", "", "tdname", NULL, 0, NULL, 0, CHAR, NULL}, - {"tdname", "TDNAME", NULL, "thread-name", LJUST, tdnam, 0, CHAR, - NULL}, - {"tid", "", "lwp", NULL, 0, NULL, 0, CHAR, NULL}, - {"time", "TIME", NULL, "cpu-time", USER, cputime, 0, CHAR, NULL}, - {"tpgid", "TPGID", NULL, "terminal-process-gid", 0, kvar, - KOFF(ki_tpgid), UINT, PIDFMT}, - {"tracer", "TRACER", NULL, "tracer", 0, kvar, KOFF(ki_tracer), UINT, - PIDFMT}, - {"tsid", "TSID", NULL, "terminal-sid", 0, kvar, KOFF(ki_tsid), UINT, - PIDFMT}, - {"tsiz", "TSIZ", NULL, "text-size", 0, kvar, KOFF(ki_tsize), PGTOK, - "ld"}, - {"tt", "TT ", NULL, "terminal-name", 0, tname, 0, CHAR, NULL}, - {"tty", "TTY", NULL, "tty", LJUST, longtname, 0, CHAR, NULL}, - {"ucomm", "UCOMM", NULL, "accounting-name", LJUST, ucomm, 0, CHAR, - NULL}, - {"uid", "UID", NULL, "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT}, - {"upr", "UPR", NULL, "user-priority", 0, upr, 0, CHAR, NULL}, - {"uprocp", "UPROCP", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx"}, - {"user", "USER", NULL, "user", LJUST, username, 0, CHAR, NULL}, - {"usertime", "USERTIME", NULL, "user-time", USER, usertime, 0, CHAR, - NULL}, - {"usrpri", "", "upr", NULL, 0, NULL, 0, CHAR, NULL}, - {"vmaddr", "VMADDR", NULL, "vmspace-address", 0, kvar, KOFF(ki_vmspace), - KPTR, "lx"}, - {"vsize", "", "vsz", NULL, 0, NULL, 0, CHAR, NULL}, - {"vsz", "VSZ", NULL, "virtual-size", 0, vsize, 0, CHAR, NULL}, - {"wchan", "WCHAN", NULL, "wait-channel", LJUST, wchan, 0, CHAR, NULL}, - {"xstat", "XSTAT", NULL, "exit-status", 0, kvar, KOFF(ki_xstat), - USHORT, "x"}, +static VAR keywords[] = { + {"%cpu", {NULL}, "%CPU", "percent-cpu", 0, pcpu, 0, UNSPEC, NULL}, + {"%mem", {NULL}, "%MEM", "percent-memory", 0, pmem, 0, UNSPEC, NULL}, + {"acflag", {NULL}, "ACFLG", "accounting-flag", 0, kvar, KOFF(ki_acflag), + USHORT, "x"}, + {"acflg", {"acflag"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"args", {NULL}, "COMMAND", "arguments", COMM|LJUST|USER, arguments, 0, + UNSPEC, NULL}, + {"blocked", {"sigmask"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"caught", {"sigcatch"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"class", {NULL}, "CLASS", "login-class", LJUST, loginclass, 0, + UNSPEC, NULL}, + {"comm", {NULL}, "COMMAND", "command", LJUST, ucomm, 0, UNSPEC, NULL}, + {"command", {NULL}, "COMMAND", "command", COMM|LJUST|USER, command, 0, + UNSPEC, NULL}, + {"cow", {NULL}, "COW", "copy-on-write-faults", 0, kvar, KOFF(ki_cow), + UINT, "u"}, + {"cpu", {NULL}, "C", "on-cpu", 0, cpunum, 0, UNSPEC, NULL}, + {"cputime", {"time"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"dsiz", {NULL}, "DSIZ", "data-size", 0, kvar, KOFF(ki_dsize), + PGTOK, "ld"}, + {"egid", {"gid"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"egroup", {"group"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"emul", {NULL}, "EMUL", "emulation-envirnment", LJUST, emulname, 0, + UNSPEC, NULL}, + {"etime", {NULL}, "ELAPSED", "elapsed-time", USER, elapsed, 0, + UNSPEC, NULL}, + {"etimes", {NULL}, "ELAPSED", "elapsed-times", USER, elapseds, 0, + UNSPEC, NULL}, + {"euid", {"uid"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"f", {NULL}, "F", "flags", 0, kvar, KOFF(ki_flag), LONG, "lx"}, + {"f2", {NULL}, "F2", "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x"}, + {"fib", {NULL}, "FIB", "fib", 0, kvar, KOFF(ki_fibnum), INT, "d"}, + {"flags", {"f"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"flags2", {"f2"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"gid", {NULL}, "GID", "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT}, + {"group", {NULL}, "GROUP", "group", LJUST, egroupname, 0, UNSPEC, NULL}, + {"ignored", {"sigignore"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"inblk", {NULL}, "INBLK", "read-blocks", USER, rvar, ROFF(ru_inblock), + LONG, "ld"}, + {"inblock", {"inblk"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"jail", {NULL}, "JAIL", "jail-name", LJUST, jailname, 0, UNSPEC, NULL}, + {"jid", {NULL}, "JID", "jail-id", 0, kvar, KOFF(ki_jid), INT, "d"}, + {"jobc", {NULL}, "JOBC", "job-control-count", 0, kvar, KOFF(ki_jobc), + SHORT, "d"}, + {"ktrace", {NULL}, "KTRACE", "ktrace", 0, kvar, KOFF(ki_traceflag), + INT, "x"}, + {"label", {NULL}, "LABEL", "label", LJUST, label, 0, UNSPEC, NULL}, + {"lim", {NULL}, "LIM", "memory-limit", 0, maxrss, 0, UNSPEC, NULL}, + {"lockname", {NULL}, "LOCK", "lock-name", LJUST, lockname, 0, + UNSPEC, NULL}, + {"login", {NULL}, "LOGIN", "login-name", LJUST, logname, 0, + UNSPEC, NULL}, + {"logname", {"login"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"lstart", {NULL}, "STARTED", "start-time", LJUST|USER, lstarted, 0, + UNSPEC, NULL}, + {"lwp", {NULL}, "LWP", "thread-id", 0, kvar, KOFF(ki_tid), + UINT, LWPFMT}, + {"majflt", {NULL}, "MAJFLT", "major-faults", USER, rvar, ROFF(ru_majflt), + LONG, "ld"}, + {"minflt", {NULL}, "MINFLT", "minor-faults", USER, rvar, ROFF(ru_minflt), + LONG, "ld"}, + {"msgrcv", {NULL}, "MSGRCV", "received-messages", USER, rvar, + ROFF(ru_msgrcv), LONG, "ld"}, + {"msgsnd", {NULL}, "MSGSND", "sent-messages", USER, rvar, + ROFF(ru_msgsnd), LONG, "ld"}, + {"mwchan", {NULL}, "MWCHAN", "wait-channel", LJUST, mwchan, 0, + UNSPEC, NULL}, + {"ni", {"nice"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"nice", {NULL}, "NI", "nice", 0, kvar, KOFF(ki_nice), CHAR, "d"}, + {"nivcsw", {NULL}, "NIVCSW", "involuntary-context-switches", USER, rvar, + ROFF(ru_nivcsw), LONG, "ld"}, + {"nlwp", {NULL}, "NLWP", "threads", 0, kvar, KOFF(ki_numthreads), + UINT, NLWPFMT}, + {"nsignals", {"nsigs"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"nsigs", {NULL}, "NSIGS", "signals-taken", USER, rvar, + ROFF(ru_nsignals), LONG, "ld"}, + {"nswap", {NULL}, "NSWAP", "swaps", USER, rvar, ROFF(ru_nswap), + LONG, "ld"}, + {"nvcsw", {NULL}, "NVCSW", "voluntary-context-switches", USER, rvar, + ROFF(ru_nvcsw), LONG, "ld"}, + {"nwchan", {NULL}, "NWCHAN", "wait-channel-address", LJUST, nwchan, 0, + UNSPEC, NULL}, + {"oublk", {NULL}, "OUBLK", "written-blocks", USER, rvar, + ROFF(ru_oublock), LONG, "ld"}, + {"oublock", {"oublk"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"paddr", {NULL}, "PADDR", "process-address", 0, kvar, KOFF(ki_paddr), + KPTR, "lx"}, + {"pagein", {NULL}, "PAGEIN", "pageins", USER, pagein, 0, UNSPEC, NULL}, + {"pcpu", {"%cpu"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"pending", {"sig"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"pgid", {NULL}, "PGID", "process-group", 0, kvar, KOFF(ki_pgid), + UINT, PIDFMT}, + {"pid", {NULL}, "PID", "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT}, + {"pmem", {"%mem"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"ppid", {NULL}, "PPID", "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT}, + {"pri", {NULL}, "PRI", "priority", 0, pri, 0, UNSPEC, NULL}, + {"re", {NULL}, "RE", "residency-time", INF127, kvar, KOFF(ki_swtime), + UINT, "d"}, + {"rgid", {NULL}, "RGID", "real-gid", 0, kvar, KOFF(ki_rgid), + UINT, UIDFMT}, + {"rgroup", {NULL}, "RGROUP", "real-group", LJUST, rgroupname, 0, + UNSPEC, NULL}, + {"rss", {NULL}, "RSS", "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld"}, + {"rtprio", {NULL}, "RTPRIO", "realtime-priority", 0, priorityr, + KOFF(ki_pri), UNSPEC, NULL}, + {"ruid", {NULL}, "RUID", "real-uid", 0, kvar, KOFF(ki_ruid), + UINT, UIDFMT}, + {"ruser", {NULL}, "RUSER", "real-user", LJUST, runame, 0, UNSPEC, NULL}, + {"sid", {NULL}, "SID", "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT}, + {"sig", {NULL}, "PENDING", "signals-pending", 0, kvar, KOFF(ki_siglist), + INT, "x"}, + {"sigcatch", {NULL}, "CAUGHT", "signals-caught", 0, kvar, + KOFF(ki_sigcatch), UINT, "x"}, + {"sigignore", {NULL}, "IGNORED", "signals-ignored", 0, kvar, + KOFF(ki_sigignore), UINT, "x"}, + {"sigmask", {NULL}, "BLOCKED", "signal-mask", 0, kvar, KOFF(ki_sigmask), + UINT, "x"}, + {"sl", {NULL}, "SL", "sleep-time", INF127, kvar, KOFF(ki_slptime), + UINT, "d"}, + {"ssiz", {NULL}, "SSIZ", "stack-size", 0, kvar, KOFF(ki_ssize), + PGTOK, "ld"}, + {"start", {NULL}, "STARTED", "start-time", LJUST|USER, started, 0, + UNSPEC, NULL}, + {"stat", {"state"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"state", {NULL}, "STAT", "state", LJUST, state, 0, UNSPEC, NULL}, + {"svgid", {NULL}, "SVGID", "saved-gid", 0, kvar, KOFF(ki_svgid), + UINT, UIDFMT}, + {"svuid", {NULL}, "SVUID", "saved-uid", 0, kvar, KOFF(ki_svuid), + UINT, UIDFMT}, + {"systime", {NULL}, "SYSTIME", "system-time", USER, systime, 0, + UNSPEC, NULL}, + {"tdaddr", {NULL}, "TDADDR", "thread-address", 0, kvar, KOFF(ki_tdaddr), + KPTR, "lx"}, + {"tdev", {NULL}, "TDEV", "terminal-device", 0, tdev, 0, UNSPEC, NULL}, + {"tdnam", {"tdname"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"tdname", {NULL}, "TDNAME", "thread-name", LJUST, tdnam, 0, + UNSPEC, NULL}, + {"tid", {"lwp"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"time", {NULL}, "TIME", "cpu-time", USER, cputime, 0, UNSPEC, NULL}, + {"tpgid", {NULL}, "TPGID", "terminal-process-gid", 0, kvar, + KOFF(ki_tpgid), UINT, PIDFMT}, + {"tracer", {NULL}, "TRACER", "tracer", 0, kvar, KOFF(ki_tracer), + UINT, PIDFMT}, + {"tsid", {NULL}, "TSID", "terminal-sid", 0, kvar, KOFF(ki_tsid), + UINT, PIDFMT}, + {"tsiz", {NULL}, "TSIZ", "text-size", 0, kvar, KOFF(ki_tsize), + PGTOK, "ld"}, + {"tt", {NULL}, "TT ", "terminal-name", 0, tname, 0, UNSPEC, NULL}, + {"tty", {NULL}, "TTY", "tty", LJUST, longtname, 0, UNSPEC, NULL}, + {"ucomm", {NULL}, "UCOMM", "accounting-name", LJUST, ucomm, 0, + UNSPEC, NULL}, + {"uid", {NULL}, "UID", "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT}, + {"upr", {NULL}, "UPR", "user-priority", 0, upr, 0, UNSPEC, NULL}, + {"uprocp", {NULL}, "UPROCP", "process-address", 0, kvar, KOFF(ki_paddr), + KPTR, "lx"}, + {"user", {NULL}, "USER", "user", LJUST, username, 0, UNSPEC, NULL}, + {"usertime", {NULL}, "USERTIME", "user-time", USER, usertime, 0, + UNSPEC, NULL}, + {"usrpri", {"upr"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"vmaddr", {NULL}, "VMADDR", "vmspace-address", 0, kvar, + KOFF(ki_vmspace), KPTR, "lx"}, + {"vsize", {"vsz"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"vsz", {NULL}, "VSZ", "virtual-size", 0, vsize, 0, UNSPEC, NULL}, + {"wchan", {NULL}, "WCHAN", "wait-channel", LJUST, wchan, 0, + UNSPEC, NULL}, + {"xstat", {NULL}, "XSTAT", "exit-status", 0, kvar, KOFF(ki_xstat), + USHORT, "x"}, }; +static const size_t known_keywords_nb = nitems(keywords); + void showkey(void) { const VAR *v; - const VAR *const end = var + nitems(var); + const VAR *const end = keywords + known_keywords_nb; const char *sep; int i; i = 0; sep = ""; xo_open_list("key"); - for (v = var; v < end; ++v) { + for (v = keywords; v < end; ++v) { const char *const p = v->name; const int len = strlen(p); @@ -322,9 +327,9 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) *hp++ = '\0'; key.name = p; - v = bsearch(&key, var, nitems(var), sizeof(VAR), vcmp); + v = bsearch(&key, keywords, known_keywords_nb, sizeof(VAR), vcmp); - if (v && v->alias) { + if (v && v->aliased) { /* * If the user specified an alternate-header for this * (aliased) format-name, then we need to copy that @@ -332,7 +337,7 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) * process the alias. */ if (hp == NULL) - parsefmt(v->alias, var_list, user); + parsefmt(v->aliased, var_list, user); else { /* * XXX - This processing will not be correct for @@ -340,11 +345,11 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) * keywords. Presently there are no aliases * which do that. */ - rflen = strlen(v->alias) + strlen(hp) + 2; + rflen = strlen(v->aliased) + strlen(hp) + 2; realfmt = malloc(rflen); if (realfmt == NULL) xo_errx(1, "malloc failed"); - snprintf(realfmt, rflen, "%s=%s", v->alias, hp); + snprintf(realfmt, rflen, "%s=%s", v->aliased, hp); parsefmt(realfmt, var_list, user); free(realfmt); } diff --git a/bin/ps/print.c b/bin/ps/print.c index b496858c071b..2f17abdfdde2 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -747,6 +747,10 @@ printval(void *bp, const VAR *v) #define CHKINF127(n) (((n) > 127) && (v->flag & INF127) ? 127 : (n)) switch (v->type) { + case UNSPEC: + xo_errx(1, "cannot print value of unspecified type " + "(internal error)"); + break; case CHAR: (void)asprintf(&str, ofmt, *(char *)bp); break; @@ -777,6 +781,9 @@ printval(void *bp, const VAR *v) case PGTOK: (void)asprintf(&str, ofmt, ps_pgtok(*(u_long *)bp)); break; + default: + xo_errx(1, "unknown type (internal error)"); + break; } return (str); diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 1787af33021e..f52f67f50151 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -32,7 +32,8 @@ #include #define UNLIMITED 0 /* unlimited terminal width */ -enum type { CHAR, UCHAR, SHORT, USHORT, INT, UINT, LONG, ULONG, KPTR, PGTOK }; +enum type { UNSPEC, /* For output routines that don't care and aliases. */ + CHAR, UCHAR, SHORT, USHORT, INT, UINT, LONG, ULONG, KPTR, PGTOK }; typedef struct kinfo_str { STAILQ_ENTRY(kinfo_str) ks_next; @@ -65,8 +66,10 @@ STAILQ_HEAD(velisthead, varent); /* Structure representing one available keyword. */ typedef struct var { const char *name; /* name(s) of variable */ + union { + const char *aliased; /* keyword this one is an alias to */ + }; const char *header; /* default header */ - const char *alias; /* aliases */ const char *field; /* xo field name */ #define COMM 0x01 /* needs exec arguments and environment (XXX) */ #define LJUST 0x02 /* left adjust on output (trailing blanks) */ @@ -82,7 +85,7 @@ typedef struct var { */ size_t off; /* offset in structure */ enum type type; /* type of element */ - const char *fmt; /* printf format */ + const char *fmt; /* printf format (depends on output routine) */ } VAR; #include "extern.h" From nobody Mon Apr 28 12:23:24 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 4ZmMzx2Fcnz5vJ92; Mon, 28 Apr 2025 12:23: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 4ZmMzw2R5pz3g4n; Mon, 28 Apr 2025 12:23:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/QnKkZ+yDMY3DevPAvjellhtPAgNzTM6LDSVzRRCKw=; b=f/ZixjdUFHfKmfaRc+VUoi4bjjN2Y61RZ82gN5LCXXaPgh+9rYRcVqyCB9Uhb9iW1yUj5q St5oSjscPWLzkqlNwmHQuwiB95kveJuLyB3AmvIEBb8LpeBBQwxCu8DSQJQYVCa4Ht7cbu pKWFkUv+eaKKnTUPu4dJDVK5IrsxRgOfe4s+F8yn0NoWWlRr2tRL9DjGXiyuoQmX0R+3Ov 5txUmT/s4HWfLr4yK2Dt33kO8bEd/PPkKSQUvkJac/aYeBq4HWbU0fNFkjNUob2BJw+prD i7gvBGM/Zqt5Ch7JkG6m0fIDsUwnIiEZMD2zl7aKXmPuWY2LcBeDlpk4q7wDSQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843004; a=rsa-sha256; cv=none; b=AbsrBoLjbMb70IurC51NAtnW887TTQ6zzWKhjgzHyP1pjdZ8RaSM0TBqr6Qs9knsE/hlLq Y4SrywD7CGyMCm+j/cES2zZF5k60Ox4zQJzvHtZMpqXaAfuBVaRgME6hdfvVjYmcREm7e6 w+asfvM06cWuN3STY4/SHufbiEbdsqNFXvPtCIJtJwUN2Bhyu/AjLer6Dmrhvt+2trVlox imFR6Ldoe9bl4pUjNQpE9KIQ1uGIa6EMLqDeMEJFA+OI7FxqNPM6pVXB+5/EJosAQxRcnY kC839qqzad8MXiQ1/0ejOFVVPkeOQnOHlzwyz64+yxC3je3+7eH1hkfSP7RYMg== 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=1745843004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/QnKkZ+yDMY3DevPAvjellhtPAgNzTM6LDSVzRRCKw=; b=EUn3Qfh9W0wHpfxEJ45zPrq0qO1UJYqKwL8Mri3X6e9Il44ZdX4eXWsXq4peatNqqCTTY5 55Y373DNmF9cOJmUOgdEIyyF+5VT9uVTEXeYeHfAAXX9KpE91eVjeaCz3+MIVyWamuta5R bIhaPNFFQJCrteaHf1yTSuMbadOqOwi+6SFOtG2x1397zUoE03l+Cr7OWPrbxteO9MKTBb imtabNybt1zXmVY5oXq8OnJ4lak3E6ooVfINK+Guf9r6K0s/iMNJ4yO/RNMalH3HlDsQE6 BIaKJnKJQfRhqwP29mxNIRFf2UY2/N8f/5mqLVDhfv5rluxXnJTyEJrGVmgHUA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzw1zjszbkX; Mon, 28 Apr 2025 12:23: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 53SCNOYH025260; Mon, 28 Apr 2025 12:23:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNO25025256; Mon, 28 Apr 2025 12:23:24 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:24 GMT Message-Id: <202504281223.53SCNO25025256@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 490f251bf90d - main - ps(1): Move 'width' field from VAR to VARENT; Remove sizevars() 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 490f251bf90dbfda8043e2d1f4a71dd3a91a8628 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=490f251bf90dbfda8043e2d1f4a71dd3a91a8628 commit 490f251bf90dbfda8043e2d1f4a71dd3a91a8628 Author: Olivier Certner AuthorDate: 2025-02-28 18:30:54 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:56:33 +0000 ps(1): Move 'width' field from VAR to VARENT; Remove sizevars() Some column's width depends not only on the information displayed but also on the its header, which may have been customized. Consequently, that width is a property of the actual column and should not be attached to the keyword specifying which information to print. This change fixes a bug where multiple columns displaying the same information (same keyword) but with different headers would have the same width, although they should not if they have long enough headers that have different lengths (the width computed from the largest header would be applied to all the corresponding keyword's columns). Remove sizevars(), as the 'width' field is now initialized directly in parsefmt(), which creates the VARENT structures. While here, remove var[]'s sentinel line, and consequently adjust the upper limit in showkey()'s loop and findvar()'s binary search. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49610 --- bin/ps/keyword.c | 238 +++++++++++++++++++++++++++---------------------------- bin/ps/print.c | 4 +- bin/ps/ps.c | 26 +----- bin/ps/ps.h | 3 +- 4 files changed, 126 insertions(+), 145 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 59011c906175..f3ff567f2d57 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -58,188 +58,187 @@ static int vcmp(const void *, const void *); /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */ static VAR var[] = { - {"%cpu", "%CPU", NULL, "percent-cpu", 0, pcpu, 0, CHAR, NULL, 0}, - {"%mem", "%MEM", NULL, "percent-memory", 0, pmem, 0, CHAR, NULL, 0}, + {"%cpu", "%CPU", NULL, "percent-cpu", 0, pcpu, 0, CHAR, NULL}, + {"%mem", "%MEM", NULL, "percent-memory", 0, pmem, 0, CHAR, NULL}, {"acflag", "ACFLG", NULL, "accounting-flag", 0, kvar, KOFF(ki_acflag), - USHORT, "x", 0}, - {"acflg", "", "acflag", NULL, 0, NULL, 0, CHAR, NULL, 0}, + USHORT, "x"}, + {"acflg", "", "acflag", NULL, 0, NULL, 0, CHAR, NULL}, {"args", "COMMAND", NULL, "arguments", COMM|LJUST|USER, arguments, 0, - CHAR, NULL, 0}, - {"blocked", "", "sigmask", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"caught", "", "sigcatch", NULL, 0, NULL, 0, CHAR, NULL, 0}, + CHAR, NULL}, + {"blocked", "", "sigmask", NULL, 0, NULL, 0, CHAR, NULL}, + {"caught", "", "sigcatch", NULL, 0, NULL, 0, CHAR, NULL}, {"class", "CLASS", NULL, "login-class", LJUST, loginclass, 0, CHAR, - NULL, 0}, - {"comm", "COMMAND", NULL, "command", LJUST, ucomm, 0, CHAR, NULL, 0}, + NULL}, + {"comm", "COMMAND", NULL, "command", LJUST, ucomm, 0, CHAR, NULL}, {"command", "COMMAND", NULL, "command", COMM|LJUST|USER, command, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"cow", "COW", NULL, "copy-on-write-faults", 0, kvar, KOFF(ki_cow), - UINT, "u", 0}, - {"cpu", "C", NULL, "on-cpu", 0, cpunum, 0, CHAR, NULL, 0}, - {"cputime", "", "time", NULL, 0, NULL, 0, CHAR, NULL, 0}, + UINT, "u"}, + {"cpu", "C", NULL, "on-cpu", 0, cpunum, 0, CHAR, NULL}, + {"cputime", "", "time", NULL, 0, NULL, 0, CHAR, NULL}, {"dsiz", "DSIZ", NULL, "data-size", 0, kvar, KOFF(ki_dsize), PGTOK, - "ld", 0}, - {"egid", "", "gid", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"egroup", "", "group", NULL, 0, NULL, 0, CHAR, NULL, 0}, + "ld"}, + {"egid", "", "gid", NULL, 0, NULL, 0, CHAR, NULL}, + {"egroup", "", "group", NULL, 0, NULL, 0, CHAR, NULL}, {"emul", "EMUL", NULL, "emulation-envirnment", LJUST, emulname, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"etime", "ELAPSED", NULL, "elapsed-time", USER, elapsed, 0, CHAR, - NULL, 0}, + NULL}, {"etimes", "ELAPSED", NULL, "elapsed-times", USER, elapseds, 0, CHAR, - NULL, 0}, - {"euid", "", "uid", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"f", "F", NULL, "flags", 0, kvar, KOFF(ki_flag), LONG, "lx", 0}, - {"f2", "F2", NULL, "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x", 0}, - {"fib", "FIB", NULL, "fib", 0, kvar, KOFF(ki_fibnum), INT, "d", 0}, - {"flags", "", "f", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"flags2", "", "f2", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"gid", "GID", NULL, "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT, 0}, - {"group", "GROUP", NULL, "group", LJUST, egroupname, 0, CHAR, NULL, 0}, - {"ignored", "", "sigignore", NULL, 0, NULL, 0, CHAR, NULL, 0}, + NULL}, + {"euid", "", "uid", NULL, 0, NULL, 0, CHAR, NULL}, + {"f", "F", NULL, "flags", 0, kvar, KOFF(ki_flag), LONG, "lx"}, + {"f2", "F2", NULL, "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x"}, + {"fib", "FIB", NULL, "fib", 0, kvar, KOFF(ki_fibnum), INT, "d"}, + {"flags", "", "f", NULL, 0, NULL, 0, CHAR, NULL}, + {"flags2", "", "f2", NULL, 0, NULL, 0, CHAR, NULL}, + {"gid", "GID", NULL, "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT}, + {"group", "GROUP", NULL, "group", LJUST, egroupname, 0, CHAR, NULL}, + {"ignored", "", "sigignore", NULL, 0, NULL, 0, CHAR, NULL}, {"inblk", "INBLK", NULL, "read-blocks", USER, rvar, ROFF(ru_inblock), - LONG, "ld", 0}, - {"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL, 0}, - {"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d", 0}, + LONG, "ld"}, + {"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL}, + {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL}, + {"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d"}, {"jobc", "JOBC", NULL, "job-control-count", 0, kvar, KOFF(ki_jobc), - SHORT, "d", 0}, + SHORT, "d"}, {"ktrace", "KTRACE", NULL, "ktrace", 0, kvar, KOFF(ki_traceflag), INT, - "x", 0}, - {"label", "LABEL", NULL, "label", LJUST, label, 0, CHAR, NULL, 0}, - {"lim", "LIM", NULL, "memory-limit", 0, maxrss, 0, CHAR, NULL, 0}, - {"lockname", "LOCK", NULL, "lock-name", LJUST, lockname, 0, CHAR, NULL, - 0}, - {"login", "LOGIN", NULL, "login-name", LJUST, logname, 0, CHAR, NULL, - 0}, - {"logname", "", "login", NULL, 0, NULL, 0, CHAR, NULL, 0}, + "x"}, + {"label", "LABEL", NULL, "label", LJUST, label, 0, CHAR, NULL}, + {"lim", "LIM", NULL, "memory-limit", 0, maxrss, 0, CHAR, NULL}, + {"lockname", "LOCK", NULL, "lock-name", LJUST, lockname, 0, CHAR, NULL}, + {"login", "LOGIN", NULL, "login-name", LJUST, logname, 0, CHAR, NULL}, + {"logname", "", "login", NULL, 0, NULL, 0, CHAR, NULL}, {"lstart", "STARTED", NULL, "start-time", LJUST|USER, lstarted, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"lwp", "LWP", NULL, "thread-id", 0, kvar, KOFF(ki_tid), UINT, - LWPFMT, 0}, + LWPFMT}, {"majflt", "MAJFLT", NULL, "major-faults", USER, rvar, ROFF(ru_majflt), - LONG, "ld", 0}, + LONG, "ld"}, {"minflt", "MINFLT", NULL, "minor-faults", USER, rvar, ROFF(ru_minflt), - LONG, "ld", 0}, + LONG, "ld"}, {"msgrcv", "MSGRCV", NULL, "received-messages", USER, rvar, - ROFF(ru_msgrcv), LONG, "ld", 0}, + ROFF(ru_msgrcv), LONG, "ld"}, {"msgsnd", "MSGSND", NULL, "sent-messages", USER, rvar, - ROFF(ru_msgsnd), LONG, "ld", 0}, + ROFF(ru_msgsnd), LONG, "ld"}, {"mwchan", "MWCHAN", NULL, "wait-channel", LJUST, mwchan, 0, CHAR, - NULL, 0}, - {"ni", "", "nice", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"nice", "NI", NULL, "nice", 0, kvar, KOFF(ki_nice), CHAR, "d", 0}, + NULL}, + {"ni", "", "nice", NULL, 0, NULL, 0, CHAR, NULL}, + {"nice", "NI", NULL, "nice", 0, kvar, KOFF(ki_nice), CHAR, "d"}, {"nivcsw", "NIVCSW", NULL, "involuntary-context-switches", USER, rvar, - ROFF(ru_nivcsw), LONG, "ld", 0}, + ROFF(ru_nivcsw), LONG, "ld"}, {"nlwp", "NLWP", NULL, "threads", 0, kvar, KOFF(ki_numthreads), UINT, - NLWPFMT, 0}, - {"nsignals", "", "nsigs", NULL, 0, NULL, 0, CHAR, NULL, 0}, + NLWPFMT}, + {"nsignals", "", "nsigs", NULL, 0, NULL, 0, CHAR, NULL}, {"nsigs", "NSIGS", NULL, "signals-taken", USER, rvar, - ROFF(ru_nsignals), LONG, "ld", 0}, + ROFF(ru_nsignals), LONG, "ld"}, {"nswap", "NSWAP", NULL, "swaps", USER, rvar, ROFF(ru_nswap), LONG, - "ld", 0}, + "ld"}, {"nvcsw", "NVCSW", NULL, "voluntary-context-switches", USER, rvar, - ROFF(ru_nvcsw), LONG, "ld", 0}, + ROFF(ru_nvcsw), LONG, "ld"}, {"nwchan", "NWCHAN", NULL, "wait-channel-address", LJUST, nwchan, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"oublk", "OUBLK", NULL, "written-blocks", USER, rvar, - ROFF(ru_oublock), LONG, "ld", 0}, - {"oublock", "", "oublk", NULL, 0, NULL, 0, CHAR, NULL, 0}, + ROFF(ru_oublock), LONG, "ld"}, + {"oublock", "", "oublk", NULL, 0, NULL, 0, CHAR, NULL}, {"paddr", "PADDR", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx", 0}, - {"pagein", "PAGEIN", NULL, "pageins", USER, pagein, 0, CHAR, NULL, 0}, - {"pcpu", "", "%cpu", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"pending", "", "sig", NULL, 0, NULL, 0, CHAR, NULL, 0}, + KPTR, "lx"}, + {"pagein", "PAGEIN", NULL, "pageins", USER, pagein, 0, CHAR, NULL}, + {"pcpu", "", "%cpu", NULL, 0, NULL, 0, CHAR, NULL}, + {"pending", "", "sig", NULL, 0, NULL, 0, CHAR, NULL}, {"pgid", "PGID", NULL, "process-group", 0, kvar, KOFF(ki_pgid), UINT, - PIDFMT, 0}, - {"pid", "PID", NULL, "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT, 0}, - {"pmem", "", "%mem", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"ppid", "PPID", NULL, "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT, 0}, - {"pri", "PRI", NULL, "priority", 0, pri, 0, CHAR, NULL, 0}, + PIDFMT}, + {"pid", "PID", NULL, "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT}, + {"pmem", "", "%mem", NULL, 0, NULL, 0, CHAR, NULL}, + {"ppid", "PPID", NULL, "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT}, + {"pri", "PRI", NULL, "priority", 0, pri, 0, CHAR, NULL}, {"re", "RE", NULL, "residency-time", INF127, kvar, KOFF(ki_swtime), - UINT, "d", 0}, + UINT, "d"}, {"rgid", "RGID", NULL, "real-gid", 0, kvar, KOFF(ki_rgid), UINT, - UIDFMT, 0}, + UIDFMT}, {"rgroup", "RGROUP", NULL, "real-group", LJUST, rgroupname, 0, CHAR, - NULL, 0}, - {"rss", "RSS", NULL, "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld", 0}, + NULL}, + {"rss", "RSS", NULL, "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld"}, {"rtprio", "RTPRIO", NULL, "realtime-priority", 0, priorityr, - KOFF(ki_pri), CHAR, NULL, 0}, + KOFF(ki_pri), CHAR, NULL}, {"ruid", "RUID", NULL, "real-uid", 0, kvar, KOFF(ki_ruid), UINT, - UIDFMT, 0}, - {"ruser", "RUSER", NULL, "real-user", LJUST, runame, 0, CHAR, NULL, 0}, - {"sid", "SID", NULL, "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT, 0}, + UIDFMT}, + {"ruser", "RUSER", NULL, "real-user", LJUST, runame, 0, CHAR, NULL}, + {"sid", "SID", NULL, "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT}, {"sig", "PENDING", NULL, "signals-pending", 0, kvar, KOFF(ki_siglist), - INT, "x", 0}, + INT, "x"}, {"sigcatch", "CAUGHT", NULL, "signals-caught", 0, kvar, - KOFF(ki_sigcatch), UINT, "x", 0}, + KOFF(ki_sigcatch), UINT, "x"}, {"sigignore", "IGNORED", NULL, "signals-ignored", 0, kvar, - KOFF(ki_sigignore), UINT, "x", 0}, + KOFF(ki_sigignore), UINT, "x"}, {"sigmask", "BLOCKED", NULL, "signal-mask", 0, kvar, KOFF(ki_sigmask), - UINT, "x", 0}, + UINT, "x"}, {"sl", "SL", NULL, "sleep-time", INF127, kvar, KOFF(ki_slptime), UINT, - "d", 0}, + "d"}, {"ssiz", "SSIZ", NULL, "stack-size", 0, kvar, KOFF(ki_ssize), PGTOK, - "ld", 0}, + "ld"}, {"start", "STARTED", NULL, "start-time", LJUST|USER, started, 0, CHAR, - NULL, 0}, - {"stat", "", "state", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"state", "STAT", NULL, "state", LJUST, state, 0, CHAR, NULL, 0}, + NULL}, + {"stat", "", "state", NULL, 0, NULL, 0, CHAR, NULL}, + {"state", "STAT", NULL, "state", LJUST, state, 0, CHAR, NULL}, {"svgid", "SVGID", NULL, "saved-gid", 0, kvar, KOFF(ki_svgid), UINT, - UIDFMT, 0}, + UIDFMT}, {"svuid", "SVUID", NULL, "saved-uid", 0, kvar, KOFF(ki_svuid), UINT, - UIDFMT, 0}, + UIDFMT}, {"systime", "SYSTIME", NULL, "system-time", USER, systime, 0, CHAR, - NULL, 0}, + NULL}, {"tdaddr", "TDADDR", NULL, "thread-address", 0, kvar, KOFF(ki_tdaddr), - KPTR, "lx", 0}, - {"tdev", "TDEV", NULL, "terminal-device", 0, tdev, 0, CHAR, NULL, 0}, - {"tdnam", "", "tdname", NULL, 0, NULL, 0, CHAR, NULL, 0}, + KPTR, "lx"}, + {"tdev", "TDEV", NULL, "terminal-device", 0, tdev, 0, CHAR, NULL}, + {"tdnam", "", "tdname", NULL, 0, NULL, 0, CHAR, NULL}, {"tdname", "TDNAME", NULL, "thread-name", LJUST, tdnam, 0, CHAR, - NULL, 0}, - {"tid", "", "lwp", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"time", "TIME", NULL, "cpu-time", USER, cputime, 0, CHAR, NULL, 0}, + NULL}, + {"tid", "", "lwp", NULL, 0, NULL, 0, CHAR, NULL}, + {"time", "TIME", NULL, "cpu-time", USER, cputime, 0, CHAR, NULL}, {"tpgid", "TPGID", NULL, "terminal-process-gid", 0, kvar, - KOFF(ki_tpgid), UINT, PIDFMT, 0}, + KOFF(ki_tpgid), UINT, PIDFMT}, {"tracer", "TRACER", NULL, "tracer", 0, kvar, KOFF(ki_tracer), UINT, - PIDFMT, 0}, + PIDFMT}, {"tsid", "TSID", NULL, "terminal-sid", 0, kvar, KOFF(ki_tsid), UINT, - PIDFMT, 0}, + PIDFMT}, {"tsiz", "TSIZ", NULL, "text-size", 0, kvar, KOFF(ki_tsize), PGTOK, - "ld", 0}, - {"tt", "TT ", NULL, "terminal-name", 0, tname, 0, CHAR, NULL, 0}, - {"tty", "TTY", NULL, "tty", LJUST, longtname, 0, CHAR, NULL, 0}, + "ld"}, + {"tt", "TT ", NULL, "terminal-name", 0, tname, 0, CHAR, NULL}, + {"tty", "TTY", NULL, "tty", LJUST, longtname, 0, CHAR, NULL}, {"ucomm", "UCOMM", NULL, "accounting-name", LJUST, ucomm, 0, CHAR, - NULL, 0}, - {"uid", "UID", NULL, "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT, 0}, - {"upr", "UPR", NULL, "user-priority", 0, upr, 0, CHAR, NULL, 0}, + NULL}, + {"uid", "UID", NULL, "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT}, + {"upr", "UPR", NULL, "user-priority", 0, upr, 0, CHAR, NULL}, {"uprocp", "UPROCP", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx", 0}, - {"user", "USER", NULL, "user", LJUST, username, 0, CHAR, NULL, 0}, + KPTR, "lx"}, + {"user", "USER", NULL, "user", LJUST, username, 0, CHAR, NULL}, {"usertime", "USERTIME", NULL, "user-time", USER, usertime, 0, CHAR, - NULL, 0}, - {"usrpri", "", "upr", NULL, 0, NULL, 0, CHAR, NULL, 0}, + NULL}, + {"usrpri", "", "upr", NULL, 0, NULL, 0, CHAR, NULL}, {"vmaddr", "VMADDR", NULL, "vmspace-address", 0, kvar, KOFF(ki_vmspace), - KPTR, "lx", 0}, - {"vsize", "", "vsz", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"vsz", "VSZ", NULL, "virtual-size", 0, vsize, 0, CHAR, NULL, 0}, - {"wchan", "WCHAN", NULL, "wait-channel", LJUST, wchan, 0, CHAR, NULL, - 0}, + KPTR, "lx"}, + {"vsize", "", "vsz", NULL, 0, NULL, 0, CHAR, NULL}, + {"vsz", "VSZ", NULL, "virtual-size", 0, vsize, 0, CHAR, NULL}, + {"wchan", "WCHAN", NULL, "wait-channel", LJUST, wchan, 0, CHAR, NULL}, {"xstat", "XSTAT", NULL, "exit-status", 0, kvar, KOFF(ki_xstat), - USHORT, "x", 0}, - {"", NULL, NULL, NULL, 0, NULL, 0, CHAR, NULL, 0}, + USHORT, "x"}, }; void showkey(void) { - VAR *v; + const VAR *v; + const VAR *const end = var + nitems(var); + const char *sep; int i; - const char *p, *sep; i = 0; sep = ""; xo_open_list("key"); - for (v = var; *(p = v->name); ++v) { - int len = strlen(p); + for (v = var; v < end; ++v) { + const char *const p = v->name; + const int len = strlen(p); + if (termwidth && (i += len + 1) > termwidth) { i = len; sep = "\n"; @@ -299,6 +298,7 @@ parsefmt(const char *p, struct velisthead *const var_list, if (hp) vent->header = hp; } + vent->width = strlen(vent->header); vent->var = malloc(sizeof(*vent->var)); if (vent->var == NULL) xo_errx(1, "malloc failed"); @@ -325,7 +325,7 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) *hp++ = '\0'; key.name = p; - v = bsearch(&key, var, sizeof(var)/sizeof(VAR) - 1, sizeof(VAR), vcmp); + v = bsearch(&key, var, nitems(var), sizeof(VAR), vcmp); if (v && v->alias) { /* diff --git a/bin/ps/print.c b/bin/ps/print.c index 13ef646ea462..005268b30d8c 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -81,9 +81,9 @@ printheader(void) if (STAILQ_NEXT(vent, next_ve) == NULL) /* last one */ xo_emit("{T:/%hs}", vent->header); else - xo_emit("{T:/%-*hs}", v->width, vent->header); + xo_emit("{T:/%-*hs}", vent->width, vent->header); } else - xo_emit("{T:/%*hs}", v->width, vent->header); + xo_emit("{T:/%*hs}", vent->width, vent->header); if (STAILQ_NEXT(vent, next_ve) != NULL) xo_emit("{P: }"); } diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 2a94b4c37f31..db3826c958c6 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -130,7 +130,6 @@ static char *kludge_oldps_options(const char *, char *, const char *); static int pscomp(const void *, const void *); static void saveuser(KINFO *); static void scanvars(void); -static void sizevars(void); static void pidmax_init(void); static void usage(void); @@ -635,8 +634,6 @@ main(int argc, char *argv[]) } } - sizevars(); - if (nkept == 0) { printheader(); if (xo_finish() < 0) @@ -695,7 +692,7 @@ main(int argc, char *argv[]) /* No padding for the last column, if it's LJUST. */ fwidthmin = (xo_get_style(NULL) != XO_STYLE_TEXT || (STAILQ_NEXT(vent, next_ve) == NULL && - (vent->var->flag & LJUST))) ? 0 : vent->var->width; + (vent->var->flag & LJUST))) ? 0 : vent->width; snprintf(fmtbuf, sizeof(fmtbuf), "{:%s/%%%s%d..%dhs}", vent->var->field ? vent->var->field : vent->var->name, (vent->var->flag & LJUST) ? "-" : "", @@ -1213,7 +1210,7 @@ format_output(KINFO *ki) VAR *v; KINFO_STR *ks; char *str; - int len; + u_int len; STAILQ_INIT(&ki->ki_ks); STAILQ_FOREACH(vent, &varlist, next_ve) { @@ -1228,23 +1225,8 @@ format_output(KINFO *ki) len = strlen(str); } else len = 1; /* "-" */ - if (v->width < len) - v->width = len; - } -} - -static void -sizevars(void) -{ - struct varent *vent; - VAR *v; - int i; - - STAILQ_FOREACH(vent, &varlist, next_ve) { - v = vent->var; - i = strlen(vent->header); - if (v->width < i) - v->width = i; + if (vent->width < len) + vent->width = len; } } diff --git a/bin/ps/ps.h b/bin/ps/ps.h index c5efb19fc00d..a1ec49cd676b 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -58,6 +58,7 @@ typedef struct varent { STAILQ_ENTRY(varent) next_ve; const char *header; struct var *var; + u_int width; } VARENT; STAILQ_HEAD(velisthead, varent); @@ -82,8 +83,6 @@ typedef struct var { size_t off; /* offset in structure */ enum type type; /* type of element */ const char *fmt; /* printf format */ - - short width; /* calculated width */ } VAR; #include "extern.h" From nobody Mon Apr 28 12:23:28 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 4ZmN013nnwz5vJPS; Mon, 28 Apr 2025 12:23: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 4ZmN010sD6z3fsK; Mon, 28 Apr 2025 12:23:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H7MZaCiBJTDhnM0d6IAw2glpnkRRen8GEqOD+BfV48I=; b=N+Ml8dpeLCdiKI3d6VPrHkGJP675SJWxN7o/fnYc+mPpsGDMS8kUokIGAP+wkbB8VSDXEz Vm2R3WimWlenAgnCct1FGA60tqEbi7OekKwtYNA7KdPQ+xH1DVt0Q/osq8+xPOCQCciEJ9 ubA0GZqoUFjvhZuTlKSBIoBVHTxz7SNhR6v20IL3+piccndlgDzY5TteUY0sHaky/x6ZjB QUNsH+wOcbtHZ/XJEwP3N+pnQMvEboCYiuxGxhvAgcXN2DJ9sta1nrEWG4WhUYszLwR0uM XK6h5LS+x7hANHzRr5uXUeNU5bs16gXfZ090EYKq+o4nH71yBNN6GjSFEcL3eQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843009; a=rsa-sha256; cv=none; b=ult33hGALNHkIpBpWAazuc2a4UQxfy8JcdUG7BAtjXecJQX4CyW5YVTaZZpWSIo8XiX6W1 tPrQogtdE66U/bf+qk+cYYevXV7EWezbczf57AXztq0zOLaLx65bsK/1+5ADVcpMJrrQPb 12ldroOVfeV7TROSgfnVtfNxGiogTukM/isjjgBkgKlqNx5Bmn2xSXcDrSKmeKS1FqfAlZ 57FaYuF4kRJcZ0IMWHED8mIxKTvslFHl1eZTyfLYbD3fuwUo+udvyAwVYXtCUGWDL5iz4h me2Ym1hY6GDe9Ufvy0gIj2EuDtXLEkf9tAARwCBWQSVpte0H6YfRZ4o3WG14Lw== 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=1745843009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H7MZaCiBJTDhnM0d6IAw2glpnkRRen8GEqOD+BfV48I=; b=N/HXXty+zpa8D+79sXgNAQ6wb5nMxKKkuWmGn6txIkn4xhmVb1y+p4BWJ1nDbaMcDSaqQn ZNtUKFBDqmv8jEz9jfWg2IBH9DLlm/FDN5GmuMDz8By9l/P+EwiT1coV3ezjcBIYnMwCKB EZ0SoDJfq+cw1Ts5j3xTxCbEvmbRJeeXjEVoAcU6ZND6Iy8MGK2LBTFjIMmUj0l45+lC3W kvZA2gg4u/Ie5F9kLzqL8lILxgvwq8Wui+D5QgvGfNAr54Jtkn0rz1o7ryzsaJgtct/h14 opBHSHhCyRme98M1vNEEeiq/jRJy+S/INjW44oztErjficW+diqUnUXlLCj4kA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN005Q5bzbPp; Mon, 28 Apr 2025 12:23: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 53SCNSnw025396; Mon, 28 Apr 2025 12:23:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNSD7025393; Mon, 28 Apr 2025 12:23:28 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:28 GMT Message-Id: <202504281223.53SCNSD7025393@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: cd768a840644 - main - ps(1): Remove not-explicitly-requested columns with duplicate data 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cd768a840644ad55029ce9c3d41fc52b5045e0cc Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=cd768a840644ad55029ce9c3d41fc52b5045e0cc commit cd768a840644ad55029ce9c3d41fc52b5045e0cc Author: Olivier Certner AuthorDate: 2025-03-10 20:20:43 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:57:52 +0000 ps(1): Remove not-explicitly-requested columns with duplicate data Before this change, when stacking up more columns in the display through command-line options, if user requested to add some "canned" display (through options '-j', '-l', '-u' or '-v'), columns in it that were "duplicates" of already requested ones (meaning that they share the same keyword, regardless of whether their headers have been customized) were in the end omitted. However, this mechanism did not work the other way around, i.e., requesting some canned display(s) first and then adding some columns that are duplicates (through '-o' or '-O') would not remove them from the canned display. Additionally, it did not take into account keyword aliases (which also lead to displaying the same information). This whole mechanism of removing columns from requested canned displays when there are duplicates is useful in a number of scenarios: 1. When one wants the columns of a canned display, but with some of them in a different order and at the edges of the bulk. This needs the change here to move columns after the bulk (previously, only moving them before the bulk would work). 2. To combine multiple canned displays to get more information without repeating common columns. This part has been working before and this behavior is unchanged. 3. In combination with requesting a canned display and additional columns after it, ensure that a single COMMAND column appears at the end of the display (to benefit from the fact that a last COMMAND column can extend further to the right). Point 2 above implies that, when multiple canned displays are requested, we should keep the leftmost column with same keyword. However, columns requested explicitly by '-o' have priority (as the natural extension of point 1's behavior before this change), and in this case all matching columns in canned displays must be suppressed. To this end, when adding requested options to the display's list, we stop trying to find an earlier matching column (which is incidentally a O(n²) algorithm). Instead, we do a first pass over all requested options once they have all been added to the display's list (in scan_vars()). For each keyword, we note if it was requested at least once explicitly (through '-o' or '-O'), in addition to setting 'needuser' and 'needcomm' (as before). Then, a second pass decides whether to keep each column. A column is removed if it should not be kept absolutely (i.e., it wasn't specified via '-o' or '-O') and there is either a matching column that must be kept (determined during the first pass), or we have seen one already (earlier canned displays take precedence). Matching columns are in fact not only those that have same keywords, but also those that have keywords determined to be aliases to each other. Some previous commits ensured that this determination is O(1) and in practice just a few assembly instructions. find_varentry() has been kept although its last caller has been removed as next commit will reintroduce a call to it. MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49612 Differential Revision: https://reviews.freebsd.org/D49613 (manual page) --- bin/ps/extern.h | 2 ++ bin/ps/keyword.c | 25 +++++++++-------- bin/ps/ps.1 | 23 +++++++--------- bin/ps/ps.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++------ bin/ps/ps.h | 2 ++ 5 files changed, 102 insertions(+), 32 deletions(-) diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 93f1b018a88c..bb7a21bbc8be 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -40,6 +40,7 @@ extern unsigned long mempages; extern time_t now; extern int showthreads, sumrusage, termwidth; extern struct velisthead varlist; +extern const size_t known_keywords_nb; __BEGIN_DECLS char *arguments(KINFO *, VARENT *); @@ -55,6 +56,7 @@ VARENT *find_varentry(const char *); const char *fmt_argv(char **, char *, char *, size_t); double getpcpu(const KINFO *); char *jailname(KINFO *, VARENT *); +size_t aliased_keyword_index(const VAR *); char *kvar(KINFO *, VARENT *); char *label(KINFO *, VARENT *); char *loginclass(KINFO *, VARENT *); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 32a6992ea51d..3c19912144ac 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -42,6 +42,7 @@ #include #include #include + #include #include "ps.h" @@ -228,7 +229,18 @@ static VAR keywords[] = { USHORT, "x"}, }; -static const size_t known_keywords_nb = nitems(keywords); +const size_t known_keywords_nb = nitems(keywords); + +size_t +aliased_keyword_index(const VAR *const v) +{ + const VAR *const fv = (v->flag & RESOLVED_ALIAS) == 0 ? + v : v->final_kw; + const size_t idx = fv - keywords; + + assert(idx < known_keywords_nb); + return (idx); +} /* * Sanity checks on declared keywords. @@ -426,16 +438,6 @@ parsefmt(const char *p, struct velisthead *const var_list, eval = 1; continue; } - if (!user) { - /* - * If the user is NOT adding this field manually, - * get on with our lives if this VAR is already - * represented in the list. - */ - vent = find_varentry(v->name); - if (vent != NULL) - continue; - } #ifndef PS_CHECK_KEYWORDS /* @@ -456,6 +458,7 @@ parsefmt(const char *p, struct velisthead *const var_list, } vent->width = strlen(vent->header); vent->var = v; + vent->flags = user ? VE_KEEP : 0; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 412d6a5a599b..801b089820c7 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -140,11 +140,16 @@ and designate specific predefined groups of columns, also called canned displays. Appearance of any of these options inhibits the default display, replacing it all with the requested columns, and in the order options are passed. -The individual columns requested via a canned display option which have the same -keyword as that of some column added by earlier options are not added again. -This kind of automatic removal of duplicate keywords in canned displays is -useful for slightly tweaking these displays without having to rebuild variants -from scratch, e.g., using +The individual columns requested via a canned display option that have the same +keyword or an alias to that of some column added by an earlier canned display +option, or by an explicit +.Fl O +or +.Fl o +option anywhere on the command line, are suppressed. +This automatic removal of duplicate data in canned displays is useful for +slightly tweaking these displays and/or combining multiple ones without having +to rebuild variants from scratch, e.g., using only .Fl o options. .Pp @@ -1027,14 +1032,6 @@ elimination, contrary to those of canned displays. Finally, columns requested through multiple occurences are not grouped together, as one may naturally expect. .Pp -Automatic removal of duplicate columns from canned displays only works backwards -at time of insertion, i.e., adding a new canned display will lead to checking -columns before it but not those after it. -Besides the inconsistency, this prevents relocating columns of canned displays -further right, which can be useful, e.g., to relocate a column with the -.Cm command -keyword at end of display. -.Pp The .Fl a option has no effect if other options affecting the selection of processes are diff --git a/bin/ps/ps.c b/bin/ps/ps.c index a0b7297afe7b..ccbe40bbbc45 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -82,6 +82,19 @@ int sumrusage; /* -S */ int termwidth; /* Width of the screen (0 == infinity). */ int showthreads; /* will threads be shown? */ +struct keyword_info { + /* + * Whether there is (at least) one column referencing this keyword that + * must be kept. + */ +#define KWI_HAS_MUST_KEEP_COLUMN (1 << 0) + /* + * Whether a column with such a keyword has been seen. + */ +#define KWI_SEEN (1 << 1) + u_int flags; +}; + struct velisthead varlist = STAILQ_HEAD_INITIALIZER(varlist); static kvm_t *kd; @@ -129,7 +142,8 @@ static void init_list(struct listinfo *, addelem_rtn, int, const char *); static char *kludge_oldps_options(const char *, char *, const char *); static int pscomp(const void *, const void *); static void saveuser(KINFO *); -static void scanvars(void); +static void scan_vars(struct keyword_info *); +static void remove_redundant_columns(struct keyword_info *); static void pidmax_init(void); static void usage(void); @@ -166,6 +180,7 @@ main(int argc, char *argv[]) char fmtbuf[_POSIX2_LINE_MAX]; enum { NONE = 0, UP = 1, DOWN = 2, BOTH = 1 | 2 } directions = NONE; struct { int traversed; int initial; } pid_count; + struct keyword_info *keywords_info; (void) setlocale(LC_ALL, ""); time(&now); /* Used by routines in print.c. */ @@ -462,6 +477,22 @@ main(int argc, char *argv[]) if (!_fmt) parsefmt(dfmt, &varlist, 0); + keywords_info = calloc(known_keywords_nb, sizeof(struct keyword_info)); + if (keywords_info == NULL) + xo_errx(1, "malloc failed"); + /* + * Scan requested variables, noting which structures are needed and + * which keywords are specified. + */ + scan_vars(keywords_info); + /* + * Remove redundant columns from "canned" displays (see the callee's + * herald comment for more details). + */ + remove_redundant_columns(keywords_info); + free(keywords_info); + keywords_info = NULL; + if (!all && nselectors == 0) { uidlist.l.ptr = malloc(sizeof(uid_t)); if (uidlist.l.ptr == NULL) @@ -471,12 +502,6 @@ main(int argc, char *argv[]) *uidlist.l.uids = getuid(); } - /* - * scan requested variables, noting what structures are needed, - * and adjusting header widths as appropriate. - */ - scanvars(); - /* * Get process list. If the user requested just one selector- * option, then kvm_getprocs can be asked to return just those @@ -1196,7 +1221,7 @@ find_varentry(const char *name) } static void -scanvars(void) +scan_vars(struct keyword_info *const keywords_info) { struct varent *vent; const VAR *v; @@ -1207,6 +1232,47 @@ scanvars(void) needuser = 1; if (v->flag & COMM) needcomm = 1; + if ((vent->flags & VE_KEEP) != 0) + keywords_info[aliased_keyword_index(v)].flags |= + KWI_HAS_MUST_KEEP_COLUMN; + } +} + +/* + * For each explicitly requested keyword, remove all the same keywords + * from "canned" displays. If the same keyword appears multiple times + * only in "canned displays", then keep the first (leftmost) occurence + * only (with the reasoning that columns requested first are the most + * important as their positions catch the eye more). + */ +static void +remove_redundant_columns(struct keyword_info *const keywords_info) +{ + struct varent *prev_vent, *vent, *next_vent; + + prev_vent = NULL; + STAILQ_FOREACH_SAFE(vent, &varlist, next_ve, next_vent) { + const VAR *const v = vent->var; + struct keyword_info *const kwi = + &keywords_info[aliased_keyword_index(v)]; + + /* + * If the current column is not marked as to absolutely keep, + * and we have either already output one with the same keyword + * or know we will output one later, remove it. + */ + if ((vent->flags & VE_KEEP) == 0 && + (kwi->flags & (KWI_HAS_MUST_KEEP_COLUMN | KWI_SEEN)) != 0) { + if (prev_vent == NULL) + STAILQ_REMOVE_HEAD(&varlist, next_ve); + else + STAILQ_REMOVE_AFTER(&varlist, prev_vent, + next_ve); + } else + prev_vent = vent; + + + kwi->flags |= KWI_SEEN; } } diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 9b85972e688c..065a4c1f1c54 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -60,6 +60,8 @@ typedef struct varent { const char *header; const struct var *var; u_int width; +#define VE_KEEP (1 << 0) + uint16_t flags; } VARENT; STAILQ_HEAD(velisthead, varent); From nobody Mon Apr 28 12:23:27 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 4ZmN0031xdz5vJ9D; Mon, 28 Apr 2025 12:23: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 4ZmMzz6kDZz3g52; Mon, 28 Apr 2025 12:23:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fp5IjJ+/WDoU8wqEIDq2yjCT6GTCL3NBR7U8WzoITEw=; b=PiEsw6eZ3aLzOZ+FkkYOIhLEGPPdaDeDABdoJRhlSCKF/pnhidwSUk2YH8EI2F9yt3xhO4 TWvEtrUN+wS8azbbKYV1/a6rHJD3ggCTf3yi1TCFMnbYwygY4ygF7Md9ZRyn5AMEOxNras scXFmR3pE1xGFdRQV5Fvf+CmUJ4iT6ICjM8VJ/Rbd6SdRKwToMVHDRkjX2+wvraNHLGWe4 43s9MLsQpdM4ygrKH7W7Oznzusr+sWCZKIjFP6fZFpf/0aF27qhC/p6njY8pLKksdA5lxd MB5gmAgU0pC3r7Z5m2ZtBa/rpP6p5+kknxWie6Mac59o7PtWKC8YtOceQFeDQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843007; a=rsa-sha256; cv=none; b=kl0PrKtSkwn04Q1+vAJOmQ7i2mGo+XAdsSjm1XnnFGl/NlbNLGVtvB6uaTCzmozM+LkLY0 uS3HNqjeo97hoT32+HZ9dmRwR/lrO2XEkCbB4o/O/2pBg6syi3/pDvU6BGNj/qcdVRl6KF jqUYI8wTWEdbaudHkYeDJKNAM0KiJRAOb1kC268UOpq1MPNocVviRxk5QJmgan82xQ0p4u EOGzphS/k/EH2V3xaQv/DsdxEO67iW7d4P7cOmxCFpOCupUTYZS6p0aZ0RLZeuq603Nltf bYLahIMDsT00c9pu1ZbsrBqpfQGQeoQemuVPSZHK8UvPOMUMfVWBcWa1DI6vSQ== 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=1745843007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fp5IjJ+/WDoU8wqEIDq2yjCT6GTCL3NBR7U8WzoITEw=; b=hzomVo6HbkOwncSp+GU3LdSXYbluRVLgXNpfSiJO8n4RyfbIyPcWxgAUqZpIA6Wn1uAJpg 7uS48zATICFqiengz3JqKhsHBFDsvHE4XlNWf124FsN9XFVVBepSVEt0ipYwXX+xJzFeDl teuB6D0LBFFISolcNPGvLc3kQz4viRGyZq7pWoUIywd9qTLWokvOenXPRIt5iuOOXRyKW+ dGn8YDYY2+1xeKVEL2Osnvafs4QlmOjf59/6QkWAFbQeBr+8iBip/KE+DF0HqFlgw0NYTr Dt8auFaT+9ZUepj6g1ikqZkGNdMSFJVy/dqQE9ARfuJErD5+kpzc7v64I+a0/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 4ZmMzz4g49zbW2; Mon, 28 Apr 2025 12:23: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 53SCNRbv025363; Mon, 28 Apr 2025 12:23:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNR8d025360; Mon, 28 Apr 2025 12:23:27 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:27 GMT Message-Id: <202504281223.53SCNR8d025360@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 193e68d5174f - main - ps(1): Aliases: Resolve once, merge specifications 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 193e68d5174ffde70acc427f9d830797df9a13cb Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=193e68d5174ffde70acc427f9d830797df9a13cb commit 193e68d5174ffde70acc427f9d830797df9a13cb Author: Olivier Certner AuthorDate: 2025-04-25 13:20:08 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:57:01 +0000 ps(1): Aliases: Resolve once, merge specifications With this change, an alias keyword is resolved once and for all by merging specifications of the keyword (or chain of keywords) it points to. This merge in particular determines the final attributes of the alias keyword, as well as the final keyword it points to, which uniquely determines which information is printed (all non-alias keywords are assumed to display different data). Also, the alias resolving code has been moved into the resolve_alias() function and helpers (e.g., merge_alias()). Aliases are still resolved lazily as needed by default. The new top-level resolve_aliases() function is used to resolve them at once at program startup if ps(1) has been compiled with PS_CHECK_KEYWORDS defined. Else, it can also be called directly from a debugger. This is in preparation for removing columns that actually display the same information in a subsequent commit, as this requires being able to (quickly) determine if they are aliases to each other. *** The merge process is now explicit and more flexible. Previously, all fields of the resolved keyword were unconditionally used for the alias (the pointer to an alias keyword structure was replaced by one to the aliased keyword's one). Now, field 'final_kw' on the alias keyword will store a pointer to the aliased keyword structure (and not only its name, as a subsequent commit will need the structure address). Fields 'header', 'field' and 'flag' are taken from the aliased keyword if they have default values (NULL or 0), else the alias' values prevail. This allows an alias to override one or more of these fields. All fields after 'oproc', because they describe the information to display consistently with each other, are always taken from the aliased keyword. merge_alias() checks that the values of these fields in the alias keyword structure are unspecified (NULL, or some neutral value like 0 and UNSPEC). While here, parsefmt() was reworked to avoid any direct recursion and the break-up/recombination steps that were used when processing aliases. The latter was due to the mutual recursion with findvar() and its odd-for-that-purpose signature. findvar() has been removed in the process. Simplification of parsefmt() also allows to be more precise with the errors reported (in particular, the case of an empty keyword with a specific header would just be reported as a "keyword not found" message). While here, introduce the check_keywords() function, performing sanity checks on the declared keywords, currently only validating that they are declared in alphabetical order. As for resolve_aliases(), this function is called at startup on PS_CHECK_KEYWORDS, else it is available to be called from a debugger. Ideally, alias resolution should be done at compile time. In practice, it seems doing so at runtime was never a problem (there are only a few aliases compared to all available keywords, and there's currently at most one level of aliasing). With the changes here, it seems very unlikely to become one even if many more keywords, aliases or aliasing levels are added. MFC after: 3 days Sponsored by: The FreeBSD Foundation --- bin/ps/Makefile | 3 + bin/ps/extern.h | 2 + bin/ps/keyword.c | 244 +++++++++++++++++++++++++++++++++++++++---------------- bin/ps/ps.c | 7 ++ bin/ps/ps.h | 21 +++-- 5 files changed, 200 insertions(+), 77 deletions(-) diff --git a/bin/ps/Makefile b/bin/ps/Makefile index 71973b34dd24..94a6b07757f0 100644 --- a/bin/ps/Makefile +++ b/bin/ps/Makefile @@ -3,5 +3,8 @@ PROG= ps SRCS= fmt.c keyword.c nlist.c print.c ps.c LIBADD= m kvm jail xo +.ifdef PS_CHECK_KEYWORDS +CFLAGS+=-DPS_CHECK_KEYWORDS +.endif .include diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 45b5969f3911..93f1b018a88c 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -43,6 +43,7 @@ extern struct velisthead varlist; __BEGIN_DECLS char *arguments(KINFO *, VARENT *); +void check_keywords(void); char *command(KINFO *, VARENT *); char *cputime(KINFO *, VARENT *); char *cpunum(KINFO *, VARENT *); @@ -73,6 +74,7 @@ void printheader(void); char *priorityr(KINFO *, VARENT *); char *egroupname(KINFO *, VARENT *); char *rgroupname(KINFO *, VARENT *); +void resolve_aliases(void); char *runame(KINFO *, VARENT *); char *rvar(KINFO *, VARENT *); void showkey(void); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 8fc42d8675e5..32a6992ea51d 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -36,6 +36,8 @@ #include #include +#include +#include #include #include #include @@ -44,7 +46,6 @@ #include "ps.h" -static VAR *findvar(char *, struct velisthead *, int, char **header); static int vcmp(const void *, const void *); /* Compute offset in common structures. */ @@ -229,6 +230,120 @@ static VAR keywords[] = { static const size_t known_keywords_nb = nitems(keywords); +/* + * Sanity checks on declared keywords. + * + * Checks specific to aliases are done in resolve_alias() instead. + * + * Currently, only checks that keywords are alphabetically ordered by their + * names. More checks could be added, such as the absence of type (UNSPEC), + * 'fmt' (NULL) when the output routine is not kval()/rval(). + * + * Called from main() on PS_CHECK_KEYWORDS, else available when debugging. + */ +void +check_keywords(void) +{ + const VAR *k, *next_k; + bool order_violated = false; + + k = &keywords[0]; + for (size_t i = 1; i < known_keywords_nb; ++i) { + next_k = &keywords[i]; + if (vcmp(k, next_k) >= 0) { + xo_warnx("keywords bad order: '%s' followed by '%s'", + k->name, next_k->name); + order_violated = true; + } + k = next_k; + } + if (order_violated) + /* Must be the case as we rely on bsearch() + vcmp(). */ + xo_errx(2, "keywords are not in ascending order " + "(internal error)"); +} + +static void +alias_errx(const char *const name, const char *const what) +{ + xo_errx(2, "alias keyword '%s' specifies %s (internal error)", + name, what); +} + +static void +merge_alias(VAR *const k, VAR *const tgt) +{ + if ((tgt->flag & RESOLVED_ALIAS) != 0) + k->final_kw = tgt->final_kw; + else { + k->final_kw = tgt; + assert(tgt->aliased == NULL); + } + +#define MERGE_IF_SENTINEL(field, sentinel) do { \ + if (k->field == sentinel) \ + k->field = tgt->field; \ +} while (0) + + MERGE_IF_SENTINEL(header, NULL); + MERGE_IF_SENTINEL(field, NULL); + /* If NOINHERIT is present, no merge occurs. */ + MERGE_IF_SENTINEL(flag, 0); + +#undef MERGE_IF_SENTINEL + + /* We also check that aliases don't specify things they should not. */ +#define MERGE_CHECK_SENTINEL(field, sentinel, field_descr) do { \ + if (k->field != sentinel) \ + alias_errx(k->name, field_descr); \ + k->field = tgt->field; \ +} while (0); + + MERGE_CHECK_SENTINEL(oproc, NULL, "an output routine"); + MERGE_CHECK_SENTINEL(off, 0, "a structure offset"); + MERGE_CHECK_SENTINEL(type, UNSPEC, "a different type than UNSPEC"); + MERGE_CHECK_SENTINEL(fmt, NULL, "a printf format"); + +#undef MERGE_CHECK_SENTINEL +} + +static void +resolve_alias(VAR *const k) +{ + VAR *t, key; + + if ((k->flag & RESOLVED_ALIAS) != 0 || k->aliased == NULL) + return; + + if ((k->flag & RESOLVING_ALIAS) != 0) + xo_errx(2, "cycle when resolving alias keyword '%s'", k->name); + k->flag |= RESOLVING_ALIAS; + + key.name = k->aliased; + t = bsearch(&key, keywords, known_keywords_nb, sizeof(VAR), vcmp); + if (t == NULL) + xo_errx(2, "unknown target '%s' for keyword alias '%s'", + k->aliased, k->name); + + resolve_alias(t); + merge_alias(k, t); + + k->flag &= ~RESOLVING_ALIAS; + k->flag |= RESOLVED_ALIAS; +} + +/* + * Resolve all aliases immediately. + * + * Called from main() on PS_CHECK_KEYWORDS, else available when debugging. + */ +void +resolve_aliases(void) +{ + for (size_t i = 0; i < known_keywords_nb; ++i) + resolve_alias(&keywords[i]); +} + void showkey(void) { @@ -261,30 +376,56 @@ void parsefmt(const char *p, struct velisthead *const var_list, const int user) { - char *tempstr, *tempstr1; + char *copy, *cp; + char *hdr_p, sep; + size_t sep_idx; + VAR *v, key; + struct varent *vent; + + cp = copy = strdup(p); + if (copy == NULL) + xo_err(1, "strdup"); -#define FMTSEP " \t,\n" - tempstr1 = tempstr = strdup(p); - while (tempstr && *tempstr) { - char *cp, *hp; - VAR *v; - struct varent *vent; + sep = cp[0]; /* We only care if it's 0 or not here. */ + sep_idx = -1; + while (sep != '\0') { + cp += sep_idx + 1; /* * If an item contains an equals sign, it specifies a column * header, may contain embedded separator characters and * is always the last item. */ - if (tempstr[strcspn(tempstr, "="FMTSEP)] != '=') - while ((cp = strsep(&tempstr, FMTSEP)) != NULL && - *cp == '\0') - /* void */; - else { - cp = tempstr; - tempstr = NULL; + sep_idx = strcspn(cp, "= \t,\n"); + sep = cp[sep_idx]; + cp[sep_idx] = 0; + if (sep == '=') { + hdr_p = cp + sep_idx + 1; + sep = '\0'; /* No more keywords. */ + } else + hdr_p = NULL; + + /* At this point, '*cp' is '\0' iff 'sep_idx' is 0. */ + if (*cp == '\0') { + /* + * Empty keyword. Skip it, and silently unless some + * header has been specified. + */ + if (hdr_p != NULL) + xo_warnx("empty keyword with header '%s'", + hdr_p); + continue; } - if (cp == NULL || !(v = findvar(cp, var_list, user, &hp))) + + /* Find the keyword. */ + key.name = cp; + v = bsearch(&key, keywords, + known_keywords_nb, sizeof(VAR), vcmp); + if (v == NULL) { + xo_warnx("%s: keyword not found", cp); + eval = 1; continue; + } if (!user) { /* * If the user is NOT adding this field manually, @@ -295,19 +436,31 @@ parsefmt(const char *p, struct velisthead *const var_list, if (vent != NULL) continue; } + +#ifndef PS_CHECK_KEYWORDS + /* + * On PS_CHECK_KEYWORDS, this is not necessary as all aliases + * are resolved at startup in main() by calling + * resolve_aliases(). + */ + resolve_alias(v); +#endif + if ((vent = malloc(sizeof(struct varent))) == NULL) xo_errx(1, "malloc failed"); vent->header = v->header; - if (hp) { - hp = strdup(hp); - if (hp) - vent->header = hp; + if (hdr_p) { + hdr_p = strdup(hdr_p); + if (hdr_p) + vent->header = hdr_p; } vent->width = strlen(vent->header); vent->var = v; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } - free(tempstr1); + + free(copy); + if (STAILQ_EMPTY(var_list)) { xo_warnx("no valid keywords; valid keywords:"); showkey(); @@ -315,55 +468,6 @@ parsefmt(const char *p, struct velisthead *const var_list, } } -static VAR * -findvar(char *p, struct velisthead *const var_list, int user, char **header) -{ - size_t rflen; - VAR *v, key; - char *hp, *realfmt; - - hp = strchr(p, '='); - if (hp) - *hp++ = '\0'; - - key.name = p; - v = bsearch(&key, keywords, known_keywords_nb, sizeof(VAR), vcmp); - - if (v && v->aliased) { - /* - * If the user specified an alternate-header for this - * (aliased) format-name, then we need to copy that - * alternate-header when making the recursive call to - * process the alias. - */ - if (hp == NULL) - parsefmt(v->aliased, var_list, user); - else { - /* - * XXX - This processing will not be correct for - * any alias which expands into a list of format - * keywords. Presently there are no aliases - * which do that. - */ - rflen = strlen(v->aliased) + strlen(hp) + 2; - realfmt = malloc(rflen); - if (realfmt == NULL) - xo_errx(1, "malloc failed"); - snprintf(realfmt, rflen, "%s=%s", v->aliased, hp); - parsefmt(realfmt, var_list, user); - free(realfmt); - } - return ((VAR *)NULL); - } - if (!v) { - xo_warnx("%s: keyword not found", p); - eval = 1; - } - if (header) - *header = hp; - return (v); -} - static int vcmp(const void *a, const void *b) { diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 10b3322dc269..a0b7297afe7b 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -203,6 +203,13 @@ main(int argc, char *argv[]) pidmax_init(); +#ifdef PS_CHECK_KEYWORDS + /* Check for obvious problems in the keywords array. */ + check_keywords(); + /* Resolve all aliases at start to spot errors. */ + resolve_aliases(); +#endif + all = descendancy = _fmt = nselectors = optfatal = 0; prtheader = showthreads = wflag = xkeep_implied = 0; xkeep = -1; /* Neither -x nor -X. */ diff --git a/bin/ps/ps.h b/bin/ps/ps.h index f52f67f50151..9b85972e688c 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -63,20 +63,27 @@ typedef struct varent { } VARENT; STAILQ_HEAD(velisthead, varent); +struct var; +typedef struct var VAR; /* Structure representing one available keyword. */ -typedef struct var { +struct var { const char *name; /* name(s) of variable */ union { + /* Valid field depends on RESOLVED_ALIAS' presence. */ const char *aliased; /* keyword this one is an alias to */ + const VAR *final_kw; /* final aliased keyword */ }; const char *header; /* default header */ const char *field; /* xo field name */ -#define COMM 0x01 /* needs exec arguments and environment (XXX) */ -#define LJUST 0x02 /* left adjust on output (trailing blanks) */ -#define USER 0x04 /* needs user structure */ -#define INF127 0x10 /* values >127 displayed as 127 */ +#define COMM 0x01 /* needs exec arguments and environment (XXX) */ +#define LJUST 0x02 /* left adjust on output (trailing blanks) */ +#define USER 0x04 /* needs user structure */ +#define INF127 0x10 /* values >127 displayed as 127 */ +#define NOINHERIT 0x1000 /* Don't inherit flags from aliased keyword. */ +#define RESOLVING_ALIAS 0x10000 /* Used transiently to resolve aliases. */ +#define RESOLVED_ALIAS 0x20000 /* Mark that an alias has been resolved. */ u_int flag; - /* output routine */ + /* output routine */ char *(*oproc)(struct kinfo *, struct varent *); /* * The following (optional) elements are hooks for passing information @@ -86,6 +93,6 @@ typedef struct var { size_t off; /* offset in structure */ enum type type; /* type of element */ const char *fmt; /* printf format (depends on output routine) */ -} VAR; +}; #include "extern.h" From nobody Mon Apr 28 12:23:25 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 4ZmMzy1KMYz5vJ23; Mon, 28 Apr 2025 12:23: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 4ZmMzx3W4Hz3frl; Mon, 28 Apr 2025 12:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W51ebgYRvNqgasjJnAZtYgj3UwslqE0USAzWvRuErno=; b=fh5hUfxGfcE9OdwdXFDEMK+MeZL05vkqCQjNUVhu79alS3Jx9XbxsFGcTLGmt8iUYl4vRm x+bycSSkVSRBNZTkku6rWA8cFirjipF8wiHjZRT/eNYqWcabMhW8wxsN1E23JvBt/DUgHs Rs007BHaSWeRlj+IOnV/ThsU4B72DW4Ru2FzORL2ZQdZp4d2JJFBm3AQnCBH1EUd+W77ai f1pfTyVyPkVFxGxKiMuKxWj1dUlhuahzHRcxJx9hddRn1H6053FTQ8dpmQJSjizyuFwbyK e/1Dipb7GS93JN4ST8dNKLRMO49JqEZtY1+qxJS7Eb0adEvQe/ih7nVNFrNyDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843005; a=rsa-sha256; cv=none; b=aKOdrphb7yMnr3NfJWPvSYvLowqySffGXYoMr62anfUYrBTrG0WXkz7ZZA32aM6P6xKO1x Lk2Ldydu12kw8PHuPsGrapGOMD/JzRipjhBLkYlrURX6nSR5HBt6HLSQm0ncXqc1Hu1FL6 9VIDmtZeaZr2JUz2bhwqmIXq3a5rDD1OKIqY1RgW+zoWA8qjhK/mX9gljOkNpnTnpze8gF uXmuvEQr53OUErldC9gBJM021TAY5qoVza7VN6uycsFR9RCpgpPgD5/2dx3DwhJX3vlC6R +5AKEFNyWQgKAOCu2a+3rPVFIWywkIU7MDJaCZuLVDUyY7xToES0+zGjCEtn9g== 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=1745843005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W51ebgYRvNqgasjJnAZtYgj3UwslqE0USAzWvRuErno=; b=r25B99Mive6HLXBr1SoiTzhjJJxc/O0/5PczDuwXK/ZHQ+NeHrqZfz0R4Rrq1uQfjyzEFm b9iQoSk5CV3D6NZCA2vSftv9aeTlV6NgYXm9/CYezMJfTUWIpKVEN18Aizsk9obsfQuE0k RW+UZO7U5BhSdu1NLgRz4JNW40TsRw/R903ChlZOu64XQ0UfYOWRcvkJP4SJ+9Kbue1sKF c7HSRZ38d8QbrY9PE0mcizwPbwPTkUCjszQ3Gk8xhizX1iCrLiVHWMQ01y8QEcABbq0+pb zczKdWkQhf8m66aGVS32pkJhmfu1nE3FLnn6HYQQH8AMSYRJh3b/bbb38rkX2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzx2TPdzbSm; Mon, 28 Apr 2025 12:23: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 53SCNPD2025297; Mon, 28 Apr 2025 12:23:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNPqr025294; Mon, 28 Apr 2025 12:23:25 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:25 GMT Message-Id: <202504281223.53SCNPqr025294@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 1dbb1cca9b8b - main - ps(1): Consider references to keywords as immutable 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1dbb1cca9b8b7874f22c06f5340686361c76da47 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1dbb1cca9b8b7874f22c06f5340686361c76da47 commit 1dbb1cca9b8b7874f22c06f5340686361c76da47 Author: Olivier Certner AuthorDate: 2025-02-28 21:07:14 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:56:45 +0000 ps(1): Consider references to keywords as immutable Building on the previous commit that moved the 'width' field from VAR (structure representing the meaning of a keyword) to VARENT (structure representing an actual column in a display), it is now possible to declare the field 'var' of VARENT as a constant reference. At this point, it could be possible to constify the var[] array containing all the recognized keywords. However, we do not do it as a subsequent commit will change the way alias keywords are resolved, causing their fields to be modified to reflect the final values to use after alias resolution. In parsefmt(), forget about allocating a new VAR for the selected keyword to be pointed by the corresponding column (VARENT), and instead just keep a pointer to that structure in var[]. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49611 --- bin/ps/keyword.c | 5 +---- bin/ps/print.c | 8 ++++---- bin/ps/ps.c | 4 ++-- bin/ps/ps.h | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index f3ff567f2d57..37a4a1711445 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -299,10 +299,7 @@ parsefmt(const char *p, struct velisthead *const var_list, vent->header = hp; } vent->width = strlen(vent->header); - vent->var = malloc(sizeof(*vent->var)); - if (vent->var == NULL) - xo_errx(1, "malloc failed"); - memcpy(vent->var, v, sizeof(*vent->var)); + vent->var = v; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } free(tempstr1); diff --git a/bin/ps/print.c b/bin/ps/print.c index 005268b30d8c..b496858c071b 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -66,7 +66,7 @@ void printheader(void) { - VAR *v; + const VAR *v; struct varent *vent; STAILQ_FOREACH(vent, &varlist, next_ve) @@ -734,7 +734,7 @@ priorityr(KINFO *k, VARENT *ve __unused) * structures. */ static char * -printval(void *bp, VAR *v) +printval(void *bp, const VAR *v) { static char ofmt[32] = "%"; const char *fcp; @@ -785,7 +785,7 @@ printval(void *bp, VAR *v) char * kvar(KINFO *k, VARENT *ve) { - VAR *v; + const VAR *v; v = ve->var; return (printval((char *)((char *)k->ki_p + v->off), v)); @@ -794,7 +794,7 @@ kvar(KINFO *k, VARENT *ve) char * rvar(KINFO *k, VARENT *ve) { - VAR *v; + const VAR *v; v = ve->var; if (!k->ki_valid) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index db3826c958c6..10b3322dc269 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1192,7 +1192,7 @@ static void scanvars(void) { struct varent *vent; - VAR *v; + const VAR *v; STAILQ_FOREACH(vent, &varlist, next_ve) { v = vent->var; @@ -1207,7 +1207,7 @@ static void format_output(KINFO *ki) { struct varent *vent; - VAR *v; + const VAR *v; KINFO_STR *ks; char *str; u_int len; diff --git a/bin/ps/ps.h b/bin/ps/ps.h index a1ec49cd676b..1787af33021e 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -57,7 +57,7 @@ typedef struct kinfo { typedef struct varent { STAILQ_ENTRY(varent) next_ve; const char *header; - struct var *var; + const struct var *var; u_int width; } VARENT; STAILQ_HEAD(velisthead, varent); From nobody Mon Apr 28 12:23:30 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 4ZmN034wQJz5vJM2; Mon, 28 Apr 2025 12:23: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 4ZmN030yTsz3g1r; Mon, 28 Apr 2025 12:23:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=17NT04aqee3WOl7+5snsCd76vBJyRq08s1gjWvwti5Y=; b=JpJcm5MyAGkYj4Yrj2Iaty4gkGVVjULmJKEowa0fiWZSCK3xjks4U0+mprX1Jk32QDceBy qwD5KxgRpBo0iQIi6x8oL4Cl003gkHrjn3OY2EQCdk59pYDqBkgbgXi223wFRs7ZxKPZ9z +2vl0nrUSTa6ASkqRtdLeMW+JwHpgtrNdQKu6D2Rtq3/gQsEsqJJwX5vS1h3jF9Vws9fzu sxzDic9tfSIcoOlNyMkjwm9xQZRt+PNg+d9gbeJ14mYKTwPG4nUtI06E1DHQ+YHVDWqZkL SyRnSEp52lExiSnA42eqczrdgd5iI5CA+IWwO/B9u80FyfGtV0XysS1PyX9luQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843011; a=rsa-sha256; cv=none; b=v38AJbF2fve7NeScNtkpe+M1QM9vLjbhdamt8R7jqTBXDLa8/WfWjZbr5u2zumKI2CD9VD VyzaWN3OTgJmzWqIB3IoLLCCaiPsfKsMWY/e1+xBra8JBPNsZnT44BZkoi8f+w5nfirIz0 +j/xmxu8h0u78Bo5V3QuiTI6tiUf0UZRwd8tG6Txijxql03r+5C+/TGXrU4AKJTrSM0Wsv r3l2qi3CuhVqiePOdjJ0seT6tcRpE6IOnUBjdJbw5STcAiU2+UcIAqEuvjLY2qk/w6YvQ4 n2uq4J5rWdhx+2GOfgD+GW16ARLnnnENvXHytBtxe4wYl/BaQphxAXSffZ1ovQ== 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=1745843011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=17NT04aqee3WOl7+5snsCd76vBJyRq08s1gjWvwti5Y=; b=XRVlvE0l6y43WQsnhwLC6uP4UWXgjtes2Dv9jLaIGyT6Mp+ENISdEjrzBnqSz0fZ1HWT8P rHIsDBP4XdGVITyrq/cfmEku/5LIHi78DjTz30f4mXE7CDUYZIsdKunmWZiUNTFngXmSVz qFGMHv/lrbxptaW8Vhc/zqBPD+UeJ7HTXbvxcI00uWJnJuzQkIcl4JZt2w/kEP0LKz7dys ZkedQzXxMUon273e2KqUYwdpcYMLqWRW2tAAriML/X5DlDBdgeNk6lzab4cp2+rAHdbfBU LMMk6mrl7XJmc0hDoVbXXUxgmNwLZteQIMBSXID6TyM54o5LTzQPforEFtEWlA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN030F50zbkZ; Mon, 28 Apr 2025 12:23: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 53SCNUHX025474; Mon, 28 Apr 2025 12:23:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNUvO025471; Mon, 28 Apr 2025 12:23:30 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:30 GMT Message-Id: <202504281223.53SCNUvO025471@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: c02880233949 - main - queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY() 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c02880233949b01fcfb2067962596f5c05553471 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=c02880233949b01fcfb2067962596f5c05553471 commit c02880233949b01fcfb2067962596f5c05553471 Author: Olivier Certner AuthorDate: 2025-02-28 09:18:48 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:58:37 +0000 queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY() *_SPLIT_AFTER() allows to split an existing queue in two. It is the missing block that enables arbitrary splitting and recombinations of lists/queues together with *_CONCAT() and *_SWAP(). Add *_ASSERT_NONEMPTY(), used by *_SPLIT_AFTER(). Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49608 (stailq) Differential Revision: https://reviews.freebsd.org/D49969 (rest) --- share/man/man3/queue.3 | 54 +++++++++++++++++++++++++ sys/sys/queue.h | 108 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 155 insertions(+), 7 deletions(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index e55c7cfb7513..e0684fa7c70f 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -49,6 +49,7 @@ .Nm SLIST_REMOVE , .Nm SLIST_REMOVE_AFTER , .Nm SLIST_REMOVE_HEAD , +.Nm SLIST_SPLIT_AFTER , .Nm SLIST_SWAP , .Nm STAILQ_CLASS_ENTRY , .Nm STAILQ_CLASS_HEAD , @@ -72,6 +73,7 @@ .Nm STAILQ_REMOVE , .Nm STAILQ_REMOVE_AFTER , .Nm STAILQ_REMOVE_HEAD , +.Nm STAILQ_SPLIT_AFTER , .Nm STAILQ_SWAP , .Nm LIST_CLASS_ENTRY , .Nm LIST_CLASS_HEAD , @@ -94,6 +96,7 @@ .Nm LIST_PREV , .Nm LIST_REMOVE , .Nm LIST_REPLACE , +.Nm LIST_SPLIT_AFTER , .Nm LIST_SWAP , .Nm TAILQ_CLASS_ENTRY , .Nm TAILQ_CLASS_HEAD , @@ -122,6 +125,7 @@ .Nm TAILQ_PREV , .Nm TAILQ_REMOVE , .Nm TAILQ_REPLACE , +.Nm TAILQ_SPLIT_AFTER , .Nm TAILQ_SWAP .Nd implementations of singly-linked lists, singly-linked tail queues, lists and tail queues @@ -148,6 +152,7 @@ lists and tail queues .Fn SLIST_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "SLIST_ENTRY NAME" .Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME" .Fn SLIST_REMOVE_HEAD "SLIST_HEAD *head" "SLIST_ENTRY NAME" +.Fn SLIST_SPLIT_AFTER "SLIST_HEAD *head" "TYPE *elm" "SLIST_HEAD *rest" "SLIST_ENTRY NAME" .Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "TYPE" .\" .Fn STAILQ_CLASS_ENTRY "CLASSTYPE" @@ -172,6 +177,7 @@ lists and tail queues .Fn STAILQ_REMOVE "STAILQ_HEAD *head" "TYPE *elm" "TYPE" "STAILQ_ENTRY NAME" .Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME" .Fn STAILQ_REMOVE_HEAD "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" +.Fn STAILQ_SPLIT_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_HEAD *rest" "STAILQ_ENTRY NAME" .Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "TYPE" .\" .Fn LIST_CLASS_ENTRY "CLASSTYPE" @@ -195,6 +201,7 @@ lists and tail queues .Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME" .Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_REPLACE "TYPE *elm" "TYPE *new" "LIST_ENTRY NAME" +.Fn LIST_SPLIT_AFTER "LIST_HEAD *head" "TYPE *elm" "LIST_HEAD *rest" "LIST_ENTRY NAME" .Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME" .\" .Fn TAILQ_CLASS_ENTRY "CLASSTYPE" @@ -224,6 +231,7 @@ lists and tail queues .Fn TAILQ_PREV "TYPE *elm" "HEADNAME" "TAILQ_ENTRY NAME" .Fn TAILQ_REMOVE "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME" .Fn TAILQ_REPLACE "TAILQ_HEAD *head" "TYPE *elm" "TYPE *new" "TAILQ_ENTRY NAME" +.Fn TAILQ_SPLIT_AFTER "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_HEAD *rest" "TAILQ_ENTRY NAME" .Fn TAILQ_SWAP "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TYPE" "TAILQ_ENTRY NAME" .\" .Sh DESCRIPTION @@ -250,6 +258,8 @@ O(1) removal of an entry from the head of the list. .It Forward traversal through the list. .It +Splitting a list in two after any element in the list. +.It Swapping the contents of two lists. .El .Pp @@ -547,6 +557,17 @@ A doubly-linked list should be used if this macro is needed in high-usage code paths or to operate on long lists. .Pp The macro +.Nm SLIST_SPLIT_AFTER +splits the list referenced by +.Fa head , +making +.Fa rest +reference the list formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm SLIST_SWAP swaps the contents of .Fa head1 @@ -770,6 +791,17 @@ A doubly-linked tail queue should be used if this macro is needed in high-usage code paths or to operate on long tail queues. .Pp The macro +.Nm STAILQ_SPLIT_AFTER +splits the tail queue referenced by +.Fa head , +making +.Fa rest +reference the tail queue formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm STAILQ_SWAP swaps the contents of .Fa head1 @@ -998,6 +1030,17 @@ The element must not already be on a list. .Pp The macro +.Nm LIST_SPLIT_AFTER +splits the list referenced by +.Fa head , +making +.Fa rest +reference the list formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm LIST_SWAP swaps the contents of .Fa head1 @@ -1271,6 +1314,17 @@ The element must not already be on a list. .Pp The macro +.Nm TAILQ_SPLIT_AFTER +splits the tail queue referenced by +.Fa head , +making +.Fa rest +reference the tail queue formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm TAILQ_SWAP swaps the contents of .Fa head1 diff --git a/sys/sys/queue.h b/sys/sys/queue.h index 70d13ee92617..91da1ec08640 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -111,6 +111,7 @@ * _REMOVE_HEAD + + + + * _REMOVE s + s + * _REPLACE - + - + + * _SPLIT_AFTER + + + + * _SWAP + + + + * */ @@ -207,8 +208,20 @@ struct { \ panic("Bad prevptr *(%p) == %p != %p", \ (prevp), *(prevp), (elm)); \ } while (0) + +#define SLIST_ASSERT_EMPTY(head) do { \ + if (!SLIST_EMPTY((head))) \ + panic("%s: slist %p is not empty", __func__, (head)); \ +} while (0) + +#define SLIST_ASSERT_NONEMPTY(head) do { \ + if (SLIST_EMPTY((head))) \ + panic("%s: slist %p is empty", __func__, (head)); \ +} while (0) #else #define QMD_SLIST_CHECK_PREVPTR(prevp, elm) +#define SLIST_ASSERT_EMPTY(head) +#define SLIST_ASSERT_NONEMPTY(head) #endif #define SLIST_CONCAT(head1, head2, type, field) do { \ @@ -303,6 +316,12 @@ struct { \ TRASHIT((elm)->field.sle_next); \ } while (0) +#define SLIST_SPLIT_AFTER(head, elm, rest, field) do { \ + SLIST_ASSERT_NONEMPTY((head)); \ + SLIST_FIRST((rest)) = SLIST_NEXT((elm), field); \ + SLIST_NEXT((elm), field) = NULL; \ +} while (0) + #define SLIST_SWAP(head1, head2, type) do { \ QUEUE_TYPEOF(type) *swap_first = SLIST_FIRST(head1); \ SLIST_FIRST(head1) = SLIST_FIRST(head2); \ @@ -355,11 +374,6 @@ struct { \ "first field address", (head), (head)->stqh_last); \ } while (0) -#define STAILQ_ASSERT_EMPTY(head) do { \ - if (!STAILQ_EMPTY((head))) \ - panic("stailq %p is not empty", (head)); \ -} while (0) - /* * QMD_STAILQ_CHECK_TAIL(STAILQ_HEAD *head) * @@ -370,11 +384,23 @@ struct { \ panic("Stailq %p last element's next pointer is %p, " \ "not NULL", (head), *(head)->stqh_last); \ } while (0) + +#define STAILQ_ASSERT_EMPTY(head) do { \ + if (!STAILQ_EMPTY((head))) \ + panic("%s: stailq %p is not empty", __func__, (head)); \ +} while (0) + +#define STAILQ_ASSERT_NONEMPTY(head) do { \ + if (STAILQ_EMPTY((head))) \ + panic("%s: stailq %p is empty", __func__, (head)); \ +} while (0) + #else #define QMD_STAILQ_CHECK_EMPTY(head) -#define STAILQ_ASSERT_EMPTY(head) #define QMD_STAILQ_CHECK_TAIL(head) -#endif /* (_KERNEL && INVARIANTS) */ +#define STAILQ_ASSERT_EMPTY(head) +#define STAILQ_ASSERT_NONEMPTY(head) +#endif /* _KERNEL && INVARIANTS */ #define STAILQ_CONCAT(head1, head2) do { \ if (!STAILQ_EMPTY((head2))) { \ @@ -472,6 +498,20 @@ struct { \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0) +#define STAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ + STAILQ_ASSERT_NONEMPTY((head)); \ + QMD_STAILQ_CHECK_TAIL((head)); \ + if (STAILQ_NEXT((elm), field) == NULL) \ + /* 'elm' is the last element in 'head'. */ \ + STAILQ_INIT((rest)); \ + else { \ + STAILQ_FIRST((rest)) = STAILQ_NEXT((elm), field); \ + (rest)->stqh_last = (head)->stqh_last; \ + STAILQ_NEXT((elm), field) = NULL; \ + (head)->stqh_last = &STAILQ_NEXT((elm), field); \ + } \ +} while (0) + #define STAILQ_SWAP(head1, head2, type) do { \ QUEUE_TYPEOF(type) *swap_first = STAILQ_FIRST(head1); \ QUEUE_TYPEOF(type) **swap_last = (head1)->stqh_last; \ @@ -556,10 +596,22 @@ struct { \ if (*(elm)->field.le_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) + +#define LIST_ASSERT_EMPTY(head) do { \ + if (!LIST_EMPTY((head))) \ + panic("%s: list %p is not empty", __func__, (head)); \ +} while (0) + +#define LIST_ASSERT_NONEMPTY(head) do { \ + if (LIST_EMPTY((head))) \ + panic("%s: list %p is empty", __func__, (head)); \ +} while (0) #else #define QMD_LIST_CHECK_HEAD(head, field) #define QMD_LIST_CHECK_NEXT(elm, field) #define QMD_LIST_CHECK_PREV(elm, field) +#define LIST_ASSERT_EMPTY(head) +#define LIST_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ #define LIST_CONCAT(head1, head2, type, field) do { \ @@ -673,6 +725,19 @@ struct { \ TRASHIT(*oldprev); \ } while (0) +#define LIST_SPLIT_AFTER(head, elm, rest, field) do { \ + LIST_ASSERT_NONEMPTY((head)); \ + if (LIST_NEXT((elm), field) == NULL) \ + /* 'elm' is the last element in 'head'. */ \ + LIST_INIT((rest)); \ + else { \ + LIST_FIRST((rest)) = LIST_NEXT((elm), field); \ + LIST_NEXT((elm), field)->field.le_prev = \ + &LIST_FIRST((rest)); \ + LIST_NEXT((elm), field) = NULL; \ + } \ +} while (0) + #define LIST_SWAP(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *swap_tmp = LIST_FIRST(head1); \ LIST_FIRST((head1)) = LIST_FIRST((head2)); \ @@ -768,11 +833,23 @@ struct { \ if (*(elm)->field.tqe_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) + +#define TAILQ_ASSERT_EMPTY(head) do { \ + if (!TAILQ_EMPTY((head))) \ + panic("%s: tailq %p is not empty", __func__, (head)); \ +} while (0) + +#define TAILQ_ASSERT_NONEMPTY(head) do { \ + if (TAILQ_EMPTY((head))) \ + panic("%s: tailq %p is empty", __func__, (head)); \ +} while (0) #else #define QMD_TAILQ_CHECK_HEAD(head, field) #define QMD_TAILQ_CHECK_TAIL(head, headname) #define QMD_TAILQ_CHECK_NEXT(elm, field) #define QMD_TAILQ_CHECK_PREV(elm, field) +#define TAILQ_ASSERT_EMPTY(head) +#define TAILQ_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ #define TAILQ_CONCAT(head1, head2, field) do { \ @@ -948,6 +1025,23 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) +#define TAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ + TAILQ_ASSERT_NONEMPTY((head)); \ + QMD_TAILQ_CHECK_TAIL((head), field); \ + if (TAILQ_NEXT((elm), field) == NULL) \ + /* 'elm' is the last element in 'head'. */ \ + TAILQ_INIT((rest)); \ + else { \ + TAILQ_FIRST((rest)) = TAILQ_NEXT((elm), field); \ + (rest)->tqh_last = (head)->tqh_last; \ + TAILQ_NEXT((elm), field)->field.tqe_prev = \ + &TAILQ_FIRST((rest)); \ + \ + TAILQ_NEXT((elm), field) = NULL; \ + (head)->tqh_last = &TAILQ_NEXT((elm), field); \ + } \ +} while (0) + #define TAILQ_SWAP(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *swap_first = (head1)->tqh_first; \ QUEUE_TYPEOF(type) **swap_last = (head1)->tqh_last; \ From nobody Mon Apr 28 12:23:29 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 4ZmN025pNkz5vJM1; Mon, 28 Apr 2025 12:23: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 4ZmN016YByz3g9T; Mon, 28 Apr 2025 12:23:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JsGYkfLaXudOXScaobols4b51Gedlv10PnPEDvajxPE=; b=uU67yRw+XQIuFaR0pQbaHsN0uiYo4WNe537azH0Se6nm27N+lY6KNrd7xovoRMhek8le3t 2phPG4IL8EDq2M0naEc6A8OAlmoCAX2y36XvCQP4MA3HtmFWq5fkFp9puSX/FuJ0DNrHms jqy+QI8E4WkuElZ5Kk1kGjUfLUfq1HdY+kc8+iORmXl43FGlVt2xseL48H2QpsnMi4j+Vt svDOKQCjBhNvUxh3jrH1J3LLXEtBD2KId6LGE6ZvuLOSebvEqz28YquzsYydY7efrhD1Qg kptC2nYHbZcNZ1O3mYvkjXsjq1BuHEf9hjmq1lDbOuoD6DduN4/M+72+LbQ5VQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843010; a=rsa-sha256; cv=none; b=QTxiCDIh5EBrKh8Sq5V3bbj1tP7X44PXE/9D1ZcZdIF4CTwDw22XWa3wDhTXSnxz0s1Gs0 Ah+vzWMFpu/i+TqwuIF7BNCfIF5VdpY/MwI6qz2SUK/aPjOYgIyGLc8t94Wp31n7rF3Jce Zw0cg5oJGo32siTmB4r77Gmk83zSVOdp1QaLwGX0c83IuedGSBmwc7beleXfLaIX10iEGx BCsR2EsdvSvSOaMAEvw9zHs/oV3dZe0r5IKdqlKaLvFxkEd6eq8GqTFwIowcxJUxbbURu/ K1/bh4XTp+4VCI1YyjPP9fONn1IoWe9rGxUVwNqkGc6g8GEUpM2g/3EqV5LaLQ== 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=1745843010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JsGYkfLaXudOXScaobols4b51Gedlv10PnPEDvajxPE=; b=RLE55PJkDAGy+G7X3Ur2dLRHRN8I6qkasbt+733mWUI9egMZR+xPU8WQv40iSdv0fBo2uE L7odEJFOzPmKT4nhdKW9iDojQUoIjxeCCny/mMRU8Ax2x+mGCjpcqk7TKUOprE0Peoto9P 89mRf8991fSCAPEkdkllFgntvWssWibgMe48bIVNG/V+jyENJpsMPPqfDQxT4Zsmn38g2j 85Yv+Ow+vIC8L40MUbyFQxU8nvs6BZHgIj3tw2t5yewYxNpdd3+ZjsN3eKeSNfxDWTGs3V 9CaVROsPJwwF3GVW0HdlF+WQOWle/gwp0b2CxiEiHIYxUNlifCcxpBfdnDxvbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0165X7zbkY; Mon, 28 Apr 2025 12:23: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 53SCNTpr025435; Mon, 28 Apr 2025 12:23:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNT2o025432; Mon, 28 Apr 2025 12:23:29 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:29 GMT Message-Id: <202504281223.53SCNT2o025432@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: fd6b81712eb9 - main - ps(1): Constify the format strings for canned displays 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fd6b81712eb9a77bbe484954d18fe1fc4a27116b Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=fd6b81712eb9a77bbe484954d18fe1fc4a27116b commit fd6b81712eb9a77bbe484954d18fe1fc4a27116b Author: Olivier Certner AuthorDate: 2025-04-01 12:50:26 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:58:14 +0000 ps(1): Constify the format strings for canned displays Now that removal of non-explicitly-requested duplicate columns work with a O(n) algorithm, remove the ad-hoc optimization of crushing the canned displays' formats after first use and constify their format strings. No functional change intended. This change could also be useful if/when allowing, e.g., to double letters of canned displays to indicate their columns should not be subject to automatic removal of duplicates (e.g., 'ps -ll'). MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49614 --- bin/ps/ps.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index ccbe40bbbc45..0a4a289a6a63 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -147,16 +147,16 @@ static void remove_redundant_columns(struct keyword_info *); static void pidmax_init(void); static void usage(void); -static char dfmt[] = "pid,tt,state,time,command"; -static char jfmt[] = "user,pid,ppid,pgid,sid,jobc,state,tt,time,command"; -static char lfmt[] = "uid,pid,ppid,cpu,pri,nice,vsz,rss,mwchan,state," - "tt,time,command"; -static char o1[] = "pid"; -static char o2[] = "tt,state,time,command"; -static char ufmt[] = "user,pid,%cpu,%mem,vsz,rss,tt,state,start,time,command"; -static char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz," - "%cpu,%mem,command"; -static char Zfmt[] = "label"; +static const char dfmt[] = "pid,tt,state,time,command"; +static const char jfmt[] = "user,pid,ppid,pgid,sid,jobc,state,tt,time,command"; +static const char lfmt[] = "uid,pid,ppid,cpu,pri,nice,vsz,rss,mwchan,state," + "tt,time,command"; +static const char o1[] = "pid"; +static const char o2[] = "tt,state,time,command"; +static const char ufmt[] = "user,pid,%cpu,%mem,vsz,rss,tt,state,start,time,command"; +static const char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz," + "%cpu,%mem,command"; +static const char Zfmt[] = "label"; #define PS_ARGS "AaCcD:defG:gHhjJ:LlM:mN:O:o:p:rSTt:U:uvwXxZ" @@ -316,7 +316,6 @@ main(int argc, char *argv[]) case 'j': parsefmt(jfmt, &varlist, 0); _fmt = 1; - jfmt[0] = '\0'; break; case 'L': showkey(); @@ -324,7 +323,6 @@ main(int argc, char *argv[]) case 'l': parsefmt(lfmt, &varlist, 0); _fmt = 1; - lfmt[0] = '\0'; break; case 'M': memf = optarg; @@ -339,7 +337,6 @@ main(int argc, char *argv[]) parsefmt(o1, &varlist, 1); parsefmt(optarg, &varlist, 1); parsefmt(o2, &varlist, 1); - o1[0] = o2[0] = '\0'; _fmt = 1; break; case 'o': @@ -408,13 +405,11 @@ main(int argc, char *argv[]) parsefmt(ufmt, &varlist, 0); sortby = SORTCPU; _fmt = 1; - ufmt[0] = '\0'; break; case 'v': parsefmt(vfmt, &varlist, 0); sortby = SORTMEM; _fmt = 1; - vfmt[0] = '\0'; break; case 'w': if (wflag) @@ -442,7 +437,6 @@ main(int argc, char *argv[]) break; case 'Z': parsefmt(Zfmt, &varlist, 0); - Zfmt[0] = '\0'; break; case '?': default: From nobody Mon Apr 28 12:23:32 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 4ZmN046F09z5vJ0V; Mon, 28 Apr 2025 12:23: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 4ZmN041ZfKz3g7S; Mon, 28 Apr 2025 12:23:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4KrA/DppfVAtc6pb0PZXJo24X5Dc1nTBOSflqPH+S8I=; b=DCKSKMB3AWwIJ2tsVOyVXM/l5wtmSls0q18yNkhL2KhwUmPvSsQ0MIodf46SsVQGhwbmPB jfm61iRS/L507CCI/BaEHpZjAfr1lM6cxcX0UdBSmyzbBZMd9irjc2KFfGP8b9hw15/PUr vjOvvTflDZOeaXgZlWCOR7F6Bo0nHCEN66eU+g+sCN34cgo3S09vFzMNYWAVLW/lt1V9vu Y+7VH0BrR/bUmfbzQc57JoP1urbDrc7dYvj6N5CjqUFs2nrVGwQ3pwHcxJsHDEvH+7P5jy PR3MrAwmbPwnuQNaBBkDrhnh4TnYBCzb+3V7YZdkMez21MG9QUuEV/WvY+HV7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843012; a=rsa-sha256; cv=none; b=M3fN1pEaUhWHH8IxuOKK/KMuaMKT+CwKwYKtYoXWmt1uskJcHQsai2yG4QBxGKzzzzgooq Cwr5ffTSc2u3AZDvZlHwoYNuLTDrjQyCsvn0YBUa/O/P5QztfFGOA7An3/1Qz9cDbaJ+Qq J0dOR1rMn5HQUrg0Ze+VVQWRevD9ux9qg1GW4V1M28sRkvn9MupB/KY3IxkzvphF+n5+eI FcS0vanOFTFguzPChbV1L3wvbtHyiQiugJQjayOG4ix40kFcwhggCaSlV77TFX/p+3yDlO a7ib7MyeZfYMt3ULwgQPUqOZ+OIWl/4v1K2ZNrxYLKfj86p0cqw0zGaI/JmAJw== 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=1745843012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4KrA/DppfVAtc6pb0PZXJo24X5Dc1nTBOSflqPH+S8I=; b=EzoH8AdcxjUkSeFV+DH+evVMhbADcXn/PEkWJx1HYlq6TBZKR+lsy+rUogq6NigQJVwvy7 2hRNtmQTwq/tOqw4Jd2rpeNL7ok3xXxTtSVxwOnKWj4M8VlX6N7exE3Du8wcGIvfJ4CrG+ ZbD7P/ePWjhp4LOZWVzrLy+3w21UP9bX7JgRE3GxqHOVWino479w24wrnie/r3vbWXF/rX I7OfPv6CTppVo5H8CpZuYZtpwfcCtegZbwdzQcgyN8fQioyCMIXS8ZehA1M4+uRXSuf+Gy 9kp4xcUk8ojHOHw5dxWVHdlWvQlw+TyTmvH2c5i0n+l8ap3r+z5WEsBSwW44LQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN041BCKzbhH; Mon, 28 Apr 2025 12:23: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 53SCNW9t025508; Mon, 28 Apr 2025 12:23:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNWCf025505; Mon, 28 Apr 2025 12:23:32 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:32 GMT Message-Id: <202504281223.53SCNWCf025505@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 5dad61d9b949 - main - ps(1): Make '-O' more versatile and predictable 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5dad61d9b949bb859450266c6accebc106f50fcc Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=5dad61d9b949bb859450266c6accebc106f50fcc commit 5dad61d9b949bb859450266c6accebc106f50fcc Author: Olivier Certner AuthorDate: 2025-03-07 10:50:46 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:58:47 +0000 ps(1): Make '-O' more versatile and predictable The ps(1) display's list of columns is now first built without taking into account the '-O' options. In a second step, all columns passed via '-O' are finally inserted after the built-so-far display's first PID column (if it exists, else at start), in their order of appearance as arguments to the '-O' options. This new two-step procedure suppresses the following undesirable behaviors: - '-O' used to insert the columns of the default display even if the user also passed other options to request specific columns. - Each occurence of '-O' beyond the first would just insert the passed keywords after those requested by the previous options, as if by '-o', inconsistently with the behavior for the first occurence. These behaviors had more annoying consequences: - Where the columns of some '-O' occurence appear in the display used to depend on the actual position of '-O' with respect to other options, despite the natural expectation that they should go near a single PID column considered as an anchor regardless of other options adding columns. - Columns specified with multiple '-O' options would not be grouped together. - It used to be impossible to specify custom headers but for the last column for columns that are next to each other (i.e., specified by a single '-O' occurence). which are now all lifted. With these changes, '-O' can still be used alone to amend the default display, but can now be used also in conjunction with any specific display, and in particular "canned" ones invoked by '-j', '-l', '-u' or '-v'. ****** This part discusses other ps(1) implementations' behaviors and compares them to the one established by this change. NetBSD seems to be the only other BSD having refined the meaning of ps(1)'s '-O' option. While the behavior there is similar to the new one here on the surface, it differs on the following points: 1. If no options requesting a specific display are present before the first '-O' option, the appearance of '-O' triggers the insertion of the default display, regardless of whether such specific display options appear *after* it. 2. If options requesting a specific display appear before the first '-O' and none specify a PID column, columns listed in the first '-O' are appended to them (as '-o' would do), but columns passed by further '-O' options are then inserted next to the columns of the first '-O' options. Behavior of point 1 seems to have only one advantage: To allow to customize the default display by first using '-O' and then other options appending to it, but as the default display finishes with the COMMAND column, it is unlikely that one wants to use '-o' or other specific display options after '-O' (NetBSD's ps(1) does not suppress duplicate columns). A much simpler and easy-to-understand way to reach that effect in FreeBSD, if it really proves useful, would be to introduce a new explicit option that inserts the default display. The column-appending behavior of the first '-O' option in point 2 can be also achieved by using '-o' instead. As '-O' is used to insert columns after the PID one, which is located near the left in the default and all "canned" displays, we found it more consistent and practical to push its columns completely to the left on the absence of a PID column. The effect of multiple '-O' options in NetBSD when no PID column has been requested beforehand is also cumbersome and inconsistent with the documentation (it is likely a bug). Both NetBSD-specific behaviors exposed above also have the disadvantage that the position of '-O' options with respect to other ones is meaningful in ways that are not obvious and that are arguably not desirable as '-O' is meant to append columns after an anchor (the PID column). Linux's procps-ng's ps(1) is very limited in its handling of '-O', and more generally when mixing options tweaking the display. '-O' causes insertion of the default display (like NetBSD does). If '-o' options are specified, '-O' must come before them. '-O' is not usable with canned display options. Additionally, only one '-O' option may appear on the command line, limiting header customization. The only case in which these implementations and ours behave in the same way with respect to '-O' is if only a single '-O' option and no other options changing the display are specified. MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49615 (code) Differential Revision: https://reviews.freebsd.org/D49616 (manual page) --- bin/ps/ps.1 | 31 ++++++++++--------------------- bin/ps/ps.c | 28 ++++++++++++++++++++++------ 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 801b089820c7..2e25249c2e76 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -125,9 +125,7 @@ First, options .Fl o and .Fl O -add columns with data corresponding to the explicitly passed keywords and, for -.Fl O , -additionally the same columns as in the default display. +add columns with data corresponding to the explicitly passed keywords. Available keywords are documented in the .Sx KEYWORDS section below. @@ -327,15 +325,15 @@ terminal and process ID. Extract the name list from the specified system instead of the default, which is the kernel image the system has booted from. .It Fl O -On first occurence, add all columns of the default display -.Po -as if by -.Fl o -.Pc -and insert just after the process ID column in that default display the columns -associated with the passed space- or comma-separated list of keywords. -On next occurences, just insert the keywords of the passed list, as if by -.Fl o . +Save passed columns in a separate list that in the end is grafted just after the +display's first occurence of the process ID column as specified by other +options, or the default display if there is none. +If the display prepared by other options does not include a process ID column, +the list is inserted at start of the display. +Further occurences of +.Fl O +append to the to-be-grafted list of columns. +This option takes a space- or comma-separated list of keywords. The last keyword in the list may be appended with an equals sign .Pq Ql = as explained for option @@ -1023,15 +1021,6 @@ implementation (for other BSDs, illumos or Linux) behaves like this. For all these reasons, the behavior is expected to be changed soon to using the effective user ID instead. .Pp -Option -.Fl O -has not been designed to be combined with other options as it forces insertion -of the default display on first occurence. -Moreover, these default display's columns are then not considered for duplicate -elimination, contrary to those of canned displays. -Finally, columns requested through multiple occurences are not grouped together, -as one may naturally expect. -.Pp The .Fl a option has no effect if other options affecting the selection of processes are diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 0a4a289a6a63..48839cd00837 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -96,6 +96,7 @@ struct keyword_info { }; struct velisthead varlist = STAILQ_HEAD_INITIALIZER(varlist); +static struct velisthead Ovarlist = STAILQ_HEAD_INITIALIZER(Ovarlist); static kvm_t *kd; static int needcomm; /* -o "command" */ @@ -151,8 +152,6 @@ static const char dfmt[] = "pid,tt,state,time,command"; static const char jfmt[] = "user,pid,ppid,pgid,sid,jobc,state,tt,time,command"; static const char lfmt[] = "uid,pid,ppid,cpu,pri,nice,vsz,rss,mwchan,state," "tt,time,command"; -static const char o1[] = "pid"; -static const char o2[] = "tt,state,time,command"; static const char ufmt[] = "user,pid,%cpu,%mem,vsz,rss,tt,state,start,time,command"; static const char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz," "%cpu,%mem,command"; @@ -334,10 +333,7 @@ main(int argc, char *argv[]) nlistf = optarg; break; case 'O': - parsefmt(o1, &varlist, 1); - parsefmt(optarg, &varlist, 1); - parsefmt(o2, &varlist, 1); - _fmt = 1; + parsefmt(optarg, &Ovarlist, 1); break; case 'o': parsefmt(optarg, &varlist, 1); @@ -471,6 +467,26 @@ main(int argc, char *argv[]) if (!_fmt) parsefmt(dfmt, &varlist, 0); + if (!STAILQ_EMPTY(&Ovarlist)) { + VARENT *const pid_entry = find_varentry("pid"); + + /* + * We insert the keywords passed by '-O' after the process ID if + * specified, else at start. + */ + if (pid_entry != NULL) { + struct velisthead rest; + + STAILQ_SPLIT_AFTER(&varlist, pid_entry, &rest, next_ve); + STAILQ_CONCAT(&varlist, &Ovarlist); + STAILQ_CONCAT(&varlist, &rest); + } + else { + STAILQ_SWAP(&varlist, &Ovarlist, varent); + STAILQ_CONCAT(&varlist, &Ovarlist); + } + } + keywords_info = calloc(known_keywords_nb, sizeof(struct keyword_info)); if (keywords_info == NULL) xo_errx(1, "malloc failed"); From nobody Mon Apr 28 12:23:33 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 4ZmN056SZFz5vJ29; Mon, 28 Apr 2025 12:23: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 4ZmN053KFwz3g7j; Mon, 28 Apr 2025 12:23:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KHstyATDV1Bm2Pvw9OMnW0E4TmfGNzPpjcX2aMlGKgg=; b=UlFs+ov62Xlh+moDHanPnYSOime4THYl5UMQSF6RB263Ji+tNGcXrMHLoK/KZVeXJTso+q +/R7FbxxIWe1nDqC8nzkqC4/OnZQlZP1U/ppbMNC2a9k5mu3+OooFlEDNs14M1/wkyfPeC I4kGMMi5EegUU9pUtGNxpP7LyAl9oRCyoLsdD00h8ir13drXlqJ1zPJWB0nWo/IZBGqQ77 6gCPyX0Py/uvQcEYCFiVwpGUMX8AzjcS/zeJl95rUkXiuC2QC7gJ1ZXYxyDKWaIBphpwcJ eVobnF/uy9ND3rje03p6b7+vut2db82x1ofTrCFAiCDaa7Dhm0CTDoXxP4ebtQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843013; a=rsa-sha256; cv=none; b=Rgav/zOl/Y3Vfj4atAwnh0Rn71M7eOLbhdtA5auiY2AXE/WVSCBOdeWQkV5WOaH2AVW1Wi f+i2QcgwNBSqWKi1adlxROWiataMmUiaD6Q5kv2DyPJqTrpAbZ5dpt3vy3KNvmqDVYn9Gq QgXYEjImGNdd2DmWyJQt6z+t1yIQWO/0DoYYLQLTXTaTFfIgndcY4jgl/X6PbX7aTyMiXJ +lAItlSQZKn+no6Fb36CPgNSeqp8qGjsVuhyBO6Zdi17rXTRK0vd8ow9o7Ubk8yVLyVKyJ g8q2YPK1i3aJWfyqnUiwoDUrX6IHmOSinKxTS37Mx8EW6l9OUJ0wUaPHcF6o0g== 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=1745843013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KHstyATDV1Bm2Pvw9OMnW0E4TmfGNzPpjcX2aMlGKgg=; b=jgQDz2NMAt6zMJifQKi+Kvm98wfIBkB5aBenQipthVVLi2Kv/TzLTJH65PhCCxMSLo8aTK JnU1qhnot9pcFtTS4aNOljm7kbi5Olx7phkcqkfLGoNuEgdugy066OiXKXoC0HIJteEhwO xttU9VeOQ3Blj+Yq+WIC14NKXcEt6qnY1UGOv6zcf1A6ru6ZQCe26BIaNm/Y7925MMXzU+ e1jN6kevf5gZm2AoCj/AyMOBQMYLRuQDrZyKGohG1VUt1RzDMA9EClkwsHwalQSBdz/hMw o3xeRM/2ivrOH2KDS1n3VFmne5pzl0urji9Nl8hVaMnVboLM3MDkyc0k52g0BQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0527BSzbkb; Mon, 28 Apr 2025 12:23: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 53SCNXZB025544; Mon, 28 Apr 2025 12:23:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNXtr025541; Mon, 28 Apr 2025 12:23:33 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:33 GMT Message-Id: <202504281223.53SCNXtr025541@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 93a94ce731a8 - main - ps(1): Make '-a' and '-A' always show all processes 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 93a94ce731a89b5643021b486da599e7963da232 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=93a94ce731a89b5643021b486da599e7963da232 commit 93a94ce731a89b5643021b486da599e7963da232 Author: Olivier Certner AuthorDate: 2025-03-14 21:42:08 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:59:02 +0000 ps(1): Make '-a' and '-A' always show all processes When combined with other options affecting the selection of processes, except for '-X' and '-x', option '-a' would have no effect (and '-A' would reduce to just '-x'). This was in contradiction with the rule applying to all other selection options stating that one process is listed as soon as any of these options has been specified and selects it, which is both mandated by POSIX and arguably a natural expectation. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49617 (code) Differential Revision: https://reviews.freebsd.org/D49618 (manual page) --- bin/ps/ps.1 | 25 +++---------------------- bin/ps/ps.c | 9 ++++++++- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 2e25249c2e76..532e920d1cdd 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -78,7 +78,7 @@ and .Fl x options. Except for options -.Fl A , a , X , +.Fl X and .Fl x , as soon as one of them appears, it inhibits the default process selection, i.e., @@ -213,11 +213,6 @@ see and .Fl x .Pc . -Currently, this option has no effect if any other option selecting processes to -display is present, except for -.Fl X -and -.Fl x . If the .Va security.bsd.see_other_uids sysctl is set to zero, this option is honored only if the real user ID of the @@ -965,13 +960,13 @@ which is the current behavior of option .Pc . .Pp However, options -.Fl G , l , o , p , +.Fl A , a , G , l , o , p , and .Fl t behave as prescribed by .St -p1003.1-2024 . Options -.Fl A , a , f , U , +.Fl f , U , and .Fl w currently do not, but may be changed to in the future. @@ -1021,20 +1016,6 @@ implementation (for other BSDs, illumos or Linux) behaves like this. For all these reasons, the behavior is expected to be changed soon to using the effective user ID instead. .Pp -The -.Fl a -option has no effect if other options affecting the selection of processes are -used, except for (non-)filters -.Fl X -and -.Fl x. -Option -.Fl A -has the same restriction. -This idiosyncrasy is both in contradiction with -.St -p1003.1-2024 -and arguably with common sense, and is expected to be removed soon. -.Pp .Nm ps currently does not correctly limit the ouput width, and in most cases does not limit it at all when it should. diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 48839cd00837..f40f6160672d 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -503,7 +503,14 @@ main(int argc, char *argv[]) free(keywords_info); keywords_info = NULL; - if (!all && nselectors == 0) { + if (all) + /* + * We have to display all processes, regardless of other + * options. + */ + nselectors = 0; + else if (nselectors == 0) { + /* Default is to request our processes only. */ uidlist.l.ptr = malloc(sizeof(uid_t)); if (uidlist.l.ptr == NULL) xo_errx(1, "malloc failed"); From nobody Mon Apr 28 12:23: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 4ZmN071ZWvz5vJPY; Mon, 28 Apr 2025 12:23: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 4ZmN063VMHz3g3w; Mon, 28 Apr 2025 12:23:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DuhZCWuNyEQGYxZRZL9/xZE89Xj8gc1k4ROKl7k1bVA=; b=gm6lS8y//IujAe6A/ulGCHUyVwQj8IF9/wEDPxbOshy+wPTdkZIRYttTxs2j+C4nEdNjtv 55fmIUpfQmvbKJmgjCkNfTmzvMtt4iKh6GkSXB+cxxNOx7w/g+75hbYL6Qc0ta8m5DXv0D FDTjb6Pct1vTfBtnPy583cT9JNOUfufhEpxn4iKEtXHSRPHR4CKOL7HStrRmuN7H9K9HvN F1mZI75b+qrMgFq33eCN8L9rEuTMu9Xw2U27/sTPtczJXTeHKxYAhdWvHe+cTlxeMoqle/ zWbWE0EY2XJzSJW0Hzb8ozjX8McomdMei88MrFNXXfM43gVFvmBj1ssFFGxoDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843014; a=rsa-sha256; cv=none; b=nh1ZDEjdrTFAMymIBl3WnynL0F5PwDXb8YmowDv8VGrxx5TMnYJTRltZeNZRM+qzeBprpQ ZDj9vwSpoyv5+WHk26TNAZaMLrsBU211dyBELeV8a6mOOydUqSiZIld/Iv+ZBGwsS9wLoC LT/gBG1X562uZVLrJnFoncn8gWX1fIZcuWiICqCcBp+VVD36o0uCSmp7qwXQDU0IvuDfMj VJOkY15QoVtMECQk8JhAEEg4+RPdxRJmdLfPcLp1ZP98+RVdbSN8/uf7MEf8EJkRuvFZQx cdROXH3JkD4W4bGB0OioAkZdu8wWzYpqEkOjNOojEYzl8H5Eup+52sbvzM7KfA== 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=1745843014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DuhZCWuNyEQGYxZRZL9/xZE89Xj8gc1k4ROKl7k1bVA=; b=F24bz7pjBCwmGQWMXXC8zbGzOvk7T183QKwHY9ryuzIHEAt5ly8PDzp9Jgy6uECYx5q3m2 FFPsXjwIXT+tRp3JrqJxK4bUdVwlwaI1fHNCBoEzw4AJDld8CjjV7utNM54i5oazxKKXTC /9fh1ZQ2h3enWo+IExYHxfd5LebKXZMZrFTuiFR1LoHjCm8YfMSrAdOONLepCN1bwc2TVy a7gmUVgqMWhm9oP69YQHoteAbB8Fijg7/SPsjnCTAAtOPSZMk+J9KHnch3luJzJobHBJ/a YHgg1WoAELgpZzMzV8So7aKimTE4Eq4We+7KgajZIY5s1x0DdX3Y1G0X8OCQ7A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0630n6zbSn; Mon, 28 Apr 2025 12:23: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 53SCNYZQ025578; Mon, 28 Apr 2025 12:23:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNYfm025575; Mon, 28 Apr 2025 12:23:34 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:34 GMT Message-Id: <202504281223.53SCNYfm025575@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 1aabbb25c9f9 - main - ps(1): Match current user's processes using ps' effective UID 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1aabbb25c9f9c4372fd68621f8cabdc10b665527 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1aabbb25c9f9c4372fd68621f8cabdc10b665527 commit 1aabbb25c9f9c4372fd68621f8cabdc10b665527 Author: Olivier Certner AuthorDate: 2025-04-01 09:47:25 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:59:15 +0000 ps(1): Match current user's processes using ps' effective UID This puts our ps(1) in conformance with POSIX. While here, replace ad-hoc initialization of 'uidlist' with a call to expand_list(). *** Review of the ps(1) implementations in other BSDs, illumos, and Linux's procps shows they already behave as prescribed by POSIX. Previously, we would match processes with their effective user ID but using our real user ID. While the real user ID is meant as the real identity of a process, and is used, e.g., to perform accounting or be permitted to send signals to specific targets, selecting processes to display is arguably more akin to a kind of (advisory) access control. ps(1) is not installed setuid, so normally the real and effective user IDs of ps processes are the same. This may however not be the case when ps(1) is launched by another setuid executable, and the launching process may then logically expect that ps(1) lists the processes corresponding to its effective UID. MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49619 (code) Differential Revision: https://reviews.freebsd.org/D49620 (manual page) --- bin/ps/ps.1 | 26 +------------------------- bin/ps/ps.c | 13 +++++++------ 2 files changed, 8 insertions(+), 31 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 532e920d1cdd..174f18a2f2d9 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -68,7 +68,7 @@ Other output styles can be requested via .Fl -libxo . .Pp By default, only the processes of the calling user, determined by matching their -effective user ID with the real user ID of the +effective user ID with that of the .Nm process, that have controlling terminals are shown. A different set of processes can be selected for display by using combinations @@ -980,14 +980,6 @@ However, other UNIX systems that provide this functionality do so via option instead, reserving .Fl g to query by group leaders. -.Pp -.Nm -currently determines the processes of the current user by matching their -effective user IDs with its own real user ID, whereas -.St -p1003.1-2024 -mandates the traditional UNIX practice of using the effective user ID as the -current user. -This is expected to be changed soon. .Sh HISTORY The .Nm @@ -1000,22 +992,6 @@ Since cannot run faster than the system and is run as any other scheduled process, the information it displays can never be exact. .Pp -.Nm -currently uses its real user ID as the current user when determining default -processes to show. -Besides being inconsistent with POSIX, using the real user ID essentially makes -sense for programs installed as setuid executables, which -.Nm -is not. -It also complicates the use of -.Nm -from other setuid executables, which cannot rely on its default process listing. -Finally, no other -.Nm -implementation (for other BSDs, illumos or Linux) behaves like this. -For all these reasons, the behavior is expected to be changed soon to using the -effective user ID instead. -.Pp .Nm ps currently does not correctly limit the ouput width, and in most cases does not limit it at all when it should. diff --git a/bin/ps/ps.c b/bin/ps/ps.c index f40f6160672d..bb79c6c9af84 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -510,13 +510,14 @@ main(int argc, char *argv[]) */ nselectors = 0; else if (nselectors == 0) { - /* Default is to request our processes only. */ - uidlist.l.ptr = malloc(sizeof(uid_t)); - if (uidlist.l.ptr == NULL) - xo_errx(1, "malloc failed"); + /* + * Default is to request our processes only. As per POSIX, we + * match processes by their effective user IDs and we use our + * effective user ID as our own identity. + */ + expand_list(&uidlist); + uidlist.l.uids[uidlist.count++] = geteuid(); nselectors = 1; - uidlist.count = uidlist.maxcount = 1; - *uidlist.l.uids = getuid(); } /* From nobody Mon Apr 28 12:23:36 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 4ZmN0939XTz5vHlS; Mon, 28 Apr 2025 12:23: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 4ZmN0854nhz3gN0; Mon, 28 Apr 2025 12:23:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=md4yl44wSRChWtZTXft4eaeZSaMehE4MB1R6jtpxSQ0=; b=JwVeXEMelt0/LUYTyJkGSCs7WJUZ8rhnjxQQESVhdyvmFqWfxVD7dXPsPkE2NrhNjakiOY gyo5kcCS61hr1uiQRBjj1AirEQ0/mC4mpbl3r/85SzMWUBMd1LZ7kYjb8KCbEfrA7cSrjx 66onDcW+PuKgW5Yp2nX5pqO57o0SgpGEh4wwgYRpUiXpGPzUu9iEEDUEiL3/FnljxRlXK7 z5hgVUWjDoPxmOLiogtKWwFecyRO/9Ma9nkfvuxFbb6p5eKqBecKN4Wm65IERkOD7e7RNW EgLNJQOLui/cp0nAQfvgpaMsTEXKegCElzHQh1LsUGZUzrlgMDJaPCh+xkaS9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843016; a=rsa-sha256; cv=none; b=QCZFCKY2Uz0o/zIN7wlVtfznqNpv04Q8umJQshRBjwyLxltW6EAOLSHtBZX2yQQj2jCbrb Bl+keLGKAO/6KsD/c1QeZ7IO+Tm8jMnvXpbdRUOH/2VCOFU1yvRUIbGOYfXAYd86/E9IzA RAu+bM27EhZMoV1Tt2iSmcIQp7N0Q3B63M6xN7QrkyMfZ9w1dsEAcKi/qC1DxeH1Nl70X8 aPLZx3rgYqzsK5mb9oHQzg9sX4dDMV2UNih1QJVJl1Jub4MzcqWXfZKpP1fqQzZUe4Eq8H QYi07ruJV/6lGFBnaAXmjdEBHJw3ThHXl8vhBHqL0K1/RQp9SgwhkT51HqMX5Q== 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=1745843016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=md4yl44wSRChWtZTXft4eaeZSaMehE4MB1R6jtpxSQ0=; b=GLjXWNyWwBc1aOb+wp2AsImUh6mDtaYYIklFd7q95+zTTYkuDNlbj7vH/V+0mpuPFZ9DBk lBgmUnMxgfDuAuAJBseaKFnWuOkcs94x+vop66D7jv7Wx6dw/xisQ3zkMI+PdAQFbQZo4w 7ZX5sIh3cmYYH17kppMaZaFCXZpqmCZk9t2GD5Zy/7rH1H7jSj9CGp5s8+QaCMuuKBRM0f SltOYvGCX8qWImn8P6VrhA9sL+5ZsULex5TsvIKlvRalwFtfFQA13q19g7mHAtXiBYbXsK HoLT55rB/m/cEfcSK57fWFgO6Z8vagu/v0WRNYuNo1twLlziFeLOBK3M/iJ4GQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN084ZYmzbvp; Mon, 28 Apr 2025 12:23: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 53SCNaU9025655; Mon, 28 Apr 2025 12:23:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNahc025652; Mon, 28 Apr 2025 12:23:36 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:36 GMT Message-Id: <202504281223.53SCNahc025652@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 2d7f70975bd8 - main - ps(1): Update some options' conformance/practice comments 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2d7f70975bd8146f36b35477a8a1be490a0afc95 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=2d7f70975bd8146f36b35477a8a1be490a0afc95 commit 2d7f70975bd8146f36b35477a8a1be490a0afc95 Author: Olivier Certner AuthorDate: 2025-04-01 11:45:08 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:18:26 +0000 ps(1): Update some options' conformance/practice comments MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49621 --- bin/ps/ps.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index bb79c6c9af84..6c007e8fc1a1 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -288,17 +288,24 @@ main(int argc, char *argv[]) break; case 'g': #if 0 - /*- - * XXX - This SUSv3 behavior is still under debate - * since it conflicts with the (undocumented) - * `-g' option. So we skip it for now. + /* + * XXX - This behavior is still under debate since it + * conflicts with the (undocumented) `-g' option + * and is non-standard. However, it is the + * behavior of most UNIX systems except + * SunOS/Solaris/illumos (see next comment; see + * also comment for '-s' below). */ add_list(&pgrplist, optarg); xkeep_implied = 1; nselectors++; break; #else - /* The historical BSD-ish (from SunOS) behavior. */ + /* + * The historical BSD-ish (from SunOS) behavior: Also + * display process group leaders (but we do not filter + * them out). + */ break; /* no-op */ #endif case 'H': @@ -351,7 +358,7 @@ main(int argc, char *argv[]) break; #if 0 case 'R': - /*- + /* * XXX - This un-standard option is still under * debate. This is what SUSv3 defines as * the `-U' option, and while it would be @@ -371,11 +378,13 @@ main(int argc, char *argv[]) break; #if 0 case 's': - /*- - * XXX - This non-standard option is still under - * debate. This *is* supported on Solaris, - * Linux, and IRIX, but conflicts with `-s' - * on NetBSD and maybe some older BSD's. + /* + * XXX - This non-standard option is still under debate. + * It is supported on Solaris, Linux, IRIX, and + * OpenBSD but conflicts with '-s' on NetBSD. This + * is the same functionality as POSIX option '-g', + * but the cited systems do not provide it under + * '-g', only under '-s'. */ add_list(&sesslist, optarg); xkeep_implied = 1; @@ -392,7 +401,12 @@ main(int argc, char *argv[]) nselectors++; break; case 'U': - /* This is what SUSv3 defines as the `-u' option. */ + /* + * POSIX says that '-U' should match on real user IDs, + * not effective ones as we are doing here, which is + * normally the behavior of option '-u' according to the + * standard. + */ add_list(&uidlist, optarg); xkeep_implied = 1; nselectors++; @@ -892,7 +906,7 @@ addelem_pid(struct listinfo *inf, const char *elem) return (1); } -/*- +/* * The user can specify a device via one of three formats: * 1) fully qualified, e.g.: /dev/ttyp0 /dev/console /dev/pts/0 * 2) missing "/dev", e.g.: ttyp0 console pts/0 From nobody Mon Apr 28 12:23:39 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 4ZmN0D6wDfz5vJMH; Mon, 28 Apr 2025 12:23:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmN0D04Bdz3g96; Mon, 28 Apr 2025 12:23:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z6KhwoELpNuD8XDLzscy4tfSLUbV0Q42Gm3ISsWoMw0=; b=yShtS6cO4sihwXNkybqkg32NGASDvItq3QhJrjly723TAXafwMNXTjNhV+2pkRA5VXDtT+ 2EathO45g4nekJZG5UrH899srnq2KFlD4mJ2FU/HB5zkFffbaTUsXFAyYMslR1z6Adlr9E ThIiYEfPGwt1uap994NVxlRk5/Z2HCG4AdfgwMfdtvoBRAFFALJisC2QVXoQtSzrS7VmDz BF1JW/ol07Tj1cJlx5CDcvawbSmofirBfn3Ekt69LZk26hmkM9RS+qpkAPoNJ0blRMS16x AMBZ01kKzQuh3YHNnVDgmbn5CwW1plpu2FcTHR8M0wRPGqo8BVvVPlD2qQ2Bsw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843020; a=rsa-sha256; cv=none; b=EAMo7n7W5gS1E1/JVRNLUF4oSAzQTlN+/9sEZG8C4lIelyaQ074lX44BT43Y5RU+CLqo6G s3kdUpwa+6Wzm3OarWFDatft542YbjEO7/tP5vdYZLuv1vpokvcbOlXrVdaP/3oEuBCmmz QOQw0fWQEYkwaU+iInRDZUnHS2ptpoS/pwslavcqWInBe/0UJD7Srwzx3fkB8FyyiUtwEi dohVUnusqOi0jiaZnohlR2iNDsDAyxrThDmTY2YVQqxac9IdrtTiXldj/E8DsG9NuCzVKf TJRLBLX0XY777/Ym8kdZrdSKKlzhFcdU89LqqTiWqPrOB7ElZlJ9yy0DXyZGUg== 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=1745843020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z6KhwoELpNuD8XDLzscy4tfSLUbV0Q42Gm3ISsWoMw0=; b=foCZXbjz3xaTtslOGDTzg2ly+P8l3Li5BYHs6cAKR/HdQVUQCG0H1P6ecBkCskKShzISiS wUR7kDrl5uO+VLCZPCLI1LYsUanNpZG6aEsXzy//sgt5Lbvhpvw3+9nmQnUx+JdysM7bJ8 h3i7xhMMieI3dEoOpEPwIbBfXWlJak4a02zyseLoyRDrbafGgwhhr2mLfm/4it+efuEohT OhD0oE1Pmh534FIRIGXbjw1SKkToGg/G0Nmh3T5h1AY7YeMPW3dkWH1AZsGtS0gk3UsX5c tCGArHIMeTnslWrp7reY2l20ABKfevgC9vtFDqmBg2Gl7BszicN9A+Q/drNQiQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0C6V5Qzbkc; Mon, 28 Apr 2025 12:23:39 +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 53SCNdL8025763; Mon, 28 Apr 2025 12:23:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNdbK025760; Mon, 28 Apr 2025 12:23:39 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:39 GMT Message-Id: <202504281223.53SCNdbK025760@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: a4df0830d74d - main - queue(3): Consistent single space after all #define 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a4df0830d74dba9d20c01d8c108bddeb1ecd62cd Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=a4df0830d74dba9d20c01d8c108bddeb1ecd62cd commit a4df0830d74dba9d20c01d8c108bddeb1ecd62cd Author: Olivier Certner AuthorDate: 2025-04-04 19:33:29 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:19:42 +0000 queue(3): Consistent single space after all #define Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49970 --- sys/sys/queue.h | 302 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 151 insertions(+), 151 deletions(-) diff --git a/sys/sys/queue.h b/sys/sys/queue.h index 91da1ec08640..307ac9f0ba44 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -30,7 +30,7 @@ */ #ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ +#define _SYS_QUEUE_H_ #include @@ -117,8 +117,8 @@ */ #ifdef QUEUE_MACRO_DEBUG #warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH -#define QUEUE_MACRO_DEBUG_TRACE -#define QUEUE_MACRO_DEBUG_TRASH +#define QUEUE_MACRO_DEBUG_TRACE +#define QUEUE_MACRO_DEBUG_TRASH #endif #ifdef QUEUE_MACRO_DEBUG_TRACE @@ -130,17 +130,17 @@ struct qm_trace { const char *prevfile; }; -#define TRACEBUF struct qm_trace trace; -#define TRACEBUF_INITIALIZER { __LINE__, 0, __FILE__, NULL } , +#define TRACEBUF struct qm_trace trace; +#define TRACEBUF_INITIALIZER { __LINE__, 0, __FILE__, NULL } , -#define QMD_TRACE_HEAD(head) do { \ +#define QMD_TRACE_HEAD(head) do { \ (head)->trace.prevline = (head)->trace.lastline; \ (head)->trace.prevfile = (head)->trace.lastfile; \ (head)->trace.lastline = __LINE__; \ (head)->trace.lastfile = __FILE__; \ } while (0) -#define QMD_TRACE_ELEM(elem) do { \ +#define QMD_TRACE_ELEM(elem) do { \ (elem)->trace.prevline = (elem)->trace.lastline; \ (elem)->trace.prevfile = (elem)->trace.lastfile; \ (elem)->trace.lastline = __LINE__; \ @@ -148,53 +148,53 @@ struct qm_trace { } while (0) #else /* !QUEUE_MACRO_DEBUG_TRACE */ -#define QMD_TRACE_ELEM(elem) -#define QMD_TRACE_HEAD(head) -#define TRACEBUF -#define TRACEBUF_INITIALIZER +#define QMD_TRACE_ELEM(elem) +#define QMD_TRACE_HEAD(head) +#define TRACEBUF +#define TRACEBUF_INITIALIZER #endif /* QUEUE_MACRO_DEBUG_TRACE */ #ifdef QUEUE_MACRO_DEBUG_TRASH -#define QMD_SAVELINK(name, link) void **name = (void *)&(link) -#define TRASHIT(x) do {(x) = (void *)-1;} while (0) -#define QMD_IS_TRASHED(x) ((x) == (void *)(intptr_t)-1) +#define QMD_SAVELINK(name, link) void **name = (void *)&(link) +#define TRASHIT(x) do {(x) = (void *)-1;} while (0) +#define QMD_IS_TRASHED(x) ((x) == (void *)(intptr_t)-1) #else /* !QUEUE_MACRO_DEBUG_TRASH */ -#define QMD_SAVELINK(name, link) -#define TRASHIT(x) -#define QMD_IS_TRASHED(x) 0 +#define QMD_SAVELINK(name, link) +#define TRASHIT(x) +#define QMD_IS_TRASHED(x) 0 #endif /* QUEUE_MACRO_DEBUG_TRASH */ #ifdef __cplusplus /* * In C++ there can be structure lists and class lists: */ -#define QUEUE_TYPEOF(type) type +#define QUEUE_TYPEOF(type) type #else -#define QUEUE_TYPEOF(type) struct type +#define QUEUE_TYPEOF(type) struct type #endif /* * Singly-linked List declarations. */ -#define SLIST_HEAD(name, type) \ +#define SLIST_HEAD(name, type) \ struct name { \ struct type *slh_first; /* first element */ \ } -#define SLIST_CLASS_HEAD(name, type) \ +#define SLIST_CLASS_HEAD(name, type) \ struct name { \ class type *slh_first; /* first element */ \ } -#define SLIST_HEAD_INITIALIZER(head) \ +#define SLIST_HEAD_INITIALIZER(head) \ { NULL } -#define SLIST_ENTRY(type) \ +#define SLIST_ENTRY(type) \ struct { \ struct type *sle_next; /* next element */ \ } -#define SLIST_CLASS_ENTRY(type) \ +#define SLIST_CLASS_ENTRY(type) \ struct { \ class type *sle_next; /* next element */ \ } @@ -203,25 +203,25 @@ struct { \ * Singly-linked List functions. */ #if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ +#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ if (*(prevp) != (elm)) \ panic("Bad prevptr *(%p) == %p != %p", \ (prevp), *(prevp), (elm)); \ } while (0) -#define SLIST_ASSERT_EMPTY(head) do { \ +#define SLIST_ASSERT_EMPTY(head) do { \ if (!SLIST_EMPTY((head))) \ panic("%s: slist %p is not empty", __func__, (head)); \ } while (0) -#define SLIST_ASSERT_NONEMPTY(head) do { \ +#define SLIST_ASSERT_NONEMPTY(head) do { \ if (SLIST_EMPTY((head))) \ panic("%s: slist %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) -#define SLIST_ASSERT_EMPTY(head) -#define SLIST_ASSERT_NONEMPTY(head) +#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) +#define SLIST_ASSERT_EMPTY(head) +#define SLIST_ASSERT_NONEMPTY(head) #endif #define SLIST_CONCAT(head1, head2, type, field) do { \ @@ -237,55 +237,55 @@ struct { \ } \ } while (0) -#define SLIST_EMPTY(head) ((head)->slh_first == NULL) +#define SLIST_EMPTY(head) ((head)->slh_first == NULL) -#define SLIST_EMPTY_ATOMIC(head) \ +#define SLIST_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->slh_first) == NULL) -#define SLIST_FIRST(head) ((head)->slh_first) +#define SLIST_FIRST(head) ((head)->slh_first) -#define SLIST_FOREACH(var, head, field) \ +#define SLIST_FOREACH(var, head, field) \ for ((var) = SLIST_FIRST((head)); \ (var); \ (var) = SLIST_NEXT((var), field)) -#define SLIST_FOREACH_FROM(var, head, field) \ +#define SLIST_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ (var); \ (var) = SLIST_NEXT((var), field)) -#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ +#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = SLIST_FIRST((head)); \ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ +#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ for ((varp) = &SLIST_FIRST((head)); \ ((var) = *(varp)) != NULL; \ (varp) = &SLIST_NEXT((var), field)) -#define SLIST_INIT(head) do { \ +#define SLIST_INIT(head) do { \ SLIST_FIRST((head)) = NULL; \ } while (0) -#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ +#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ SLIST_NEXT((slistelm), field) = (elm); \ } while (0) -#define SLIST_INSERT_HEAD(head, elm, field) do { \ +#define SLIST_INSERT_HEAD(head, elm, field) do { \ SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ SLIST_FIRST((head)) = (elm); \ } while (0) -#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) +#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) -#define SLIST_REMOVE(head, elm, type, field) do { \ +#define SLIST_REMOVE(head, elm, type, field) do { \ if (SLIST_FIRST((head)) == (elm)) { \ SLIST_REMOVE_HEAD((head), field); \ } \ @@ -304,19 +304,19 @@ struct { \ TRASHIT(*oldnext); \ } while (0) -#define SLIST_REMOVE_HEAD(head, field) do { \ +#define SLIST_REMOVE_HEAD(head, field) do { \ QMD_SAVELINK(oldnext, SLIST_FIRST(head)->field.sle_next); \ SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ TRASHIT(*oldnext); \ } while (0) -#define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ +#define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ QMD_SLIST_CHECK_PREVPTR(prevp, elm); \ *(prevp) = SLIST_NEXT(elm, field); \ TRASHIT((elm)->field.sle_next); \ } while (0) -#define SLIST_SPLIT_AFTER(head, elm, rest, field) do { \ +#define SLIST_SPLIT_AFTER(head, elm, rest, field) do { \ SLIST_ASSERT_NONEMPTY((head)); \ SLIST_FIRST((rest)) = SLIST_NEXT((elm), field); \ SLIST_NEXT((elm), field) = NULL; \ @@ -328,32 +328,32 @@ struct { \ SLIST_FIRST(head2) = swap_first; \ } while (0) -#define SLIST_END(head) NULL +#define SLIST_END(head) NULL /* * Singly-linked Tail queue declarations. */ -#define STAILQ_HEAD(name, type) \ +#define STAILQ_HEAD(name, type) \ struct name { \ struct type *stqh_first;/* first element */ \ struct type **stqh_last;/* addr of last next element */ \ } -#define STAILQ_CLASS_HEAD(name, type) \ +#define STAILQ_CLASS_HEAD(name, type) \ struct name { \ class type *stqh_first; /* first element */ \ class type **stqh_last; /* addr of last next element */ \ } -#define STAILQ_HEAD_INITIALIZER(head) \ +#define STAILQ_HEAD_INITIALIZER(head) \ { NULL, &(head).stqh_first } -#define STAILQ_ENTRY(type) \ +#define STAILQ_ENTRY(type) \ struct { \ struct type *stqe_next; /* next element */ \ } -#define STAILQ_CLASS_ENTRY(type) \ +#define STAILQ_CLASS_ENTRY(type) \ struct { \ class type *stqe_next; /* next element */ \ } @@ -368,7 +368,7 @@ struct { \ * Validates that the stailq head's pointer to the last element's next pointer * actually points to the head's first element pointer field. */ -#define QMD_STAILQ_CHECK_EMPTY(head) do { \ +#define QMD_STAILQ_CHECK_EMPTY(head) do { \ if ((head)->stqh_last != &(head)->stqh_first) \ panic("Empty stailq %p->stqh_last is %p, not head's " \ "first field address", (head), (head)->stqh_last); \ @@ -379,30 +379,30 @@ struct { \ * * Validates that the stailq's last element's next pointer is NULL. */ -#define QMD_STAILQ_CHECK_TAIL(head) do { \ +#define QMD_STAILQ_CHECK_TAIL(head) do { \ if (*(head)->stqh_last != NULL) \ panic("Stailq %p last element's next pointer is %p, " \ "not NULL", (head), *(head)->stqh_last); \ } while (0) -#define STAILQ_ASSERT_EMPTY(head) do { \ +#define STAILQ_ASSERT_EMPTY(head) do { \ if (!STAILQ_EMPTY((head))) \ panic("%s: stailq %p is not empty", __func__, (head)); \ } while (0) -#define STAILQ_ASSERT_NONEMPTY(head) do { \ +#define STAILQ_ASSERT_NONEMPTY(head) do { \ if (STAILQ_EMPTY((head))) \ panic("%s: stailq %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_STAILQ_CHECK_EMPTY(head) -#define QMD_STAILQ_CHECK_TAIL(head) -#define STAILQ_ASSERT_EMPTY(head) -#define STAILQ_ASSERT_NONEMPTY(head) +#define QMD_STAILQ_CHECK_EMPTY(head) +#define QMD_STAILQ_CHECK_TAIL(head) +#define STAILQ_ASSERT_EMPTY(head) +#define STAILQ_ASSERT_NONEMPTY(head) #endif /* _KERNEL && INVARIANTS */ -#define STAILQ_CONCAT(head1, head2) do { \ +#define STAILQ_CONCAT(head1, head2) do { \ if (!STAILQ_EMPTY((head2))) { \ *(head1)->stqh_last = (head2)->stqh_first; \ (head1)->stqh_last = (head2)->stqh_last; \ @@ -410,69 +410,69 @@ struct { \ } \ } while (0) -#define STAILQ_EMPTY(head) ({ \ +#define STAILQ_EMPTY(head) ({ \ if (STAILQ_FIRST(head) == NULL) \ QMD_STAILQ_CHECK_EMPTY(head); \ STAILQ_FIRST(head) == NULL; \ }) -#define STAILQ_EMPTY_ATOMIC(head) \ +#define STAILQ_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->stqh_first) == NULL) -#define STAILQ_FIRST(head) ((head)->stqh_first) +#define STAILQ_FIRST(head) ((head)->stqh_first) -#define STAILQ_FOREACH(var, head, field) \ +#define STAILQ_FOREACH(var, head, field) \ for((var) = STAILQ_FIRST((head)); \ (var); \ (var) = STAILQ_NEXT((var), field)) -#define STAILQ_FOREACH_FROM(var, head, field) \ +#define STAILQ_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ (var); \ (var) = STAILQ_NEXT((var), field)) -#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ +#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = STAILQ_FIRST((head)); \ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define STAILQ_INIT(head) do { \ +#define STAILQ_INIT(head) do { \ STAILQ_FIRST((head)) = NULL; \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0) -#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ +#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ STAILQ_NEXT((tqelm), field) = (elm); \ } while (0) -#define STAILQ_INSERT_HEAD(head, elm, field) do { \ +#define STAILQ_INSERT_HEAD(head, elm, field) do { \ if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ STAILQ_FIRST((head)) = (elm); \ } while (0) -#define STAILQ_INSERT_TAIL(head, elm, field) do { \ +#define STAILQ_INSERT_TAIL(head, elm, field) do { \ QMD_STAILQ_CHECK_TAIL(head); \ STAILQ_NEXT((elm), field) = NULL; \ *(head)->stqh_last = (elm); \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ } while (0) -#define STAILQ_LAST(head, type, field) \ +#define STAILQ_LAST(head, type, field) \ (STAILQ_EMPTY((head)) ? NULL : \ __containerof((head)->stqh_last, \ QUEUE_TYPEOF(type), field.stqe_next)) -#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) +#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) -#define STAILQ_REMOVE(head, elm, type, field) do { \ +#define STAILQ_REMOVE(head, elm, type, field) do { \ QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \ if (STAILQ_FIRST((head)) == (elm)) { \ STAILQ_REMOVE_HEAD((head), field); \ @@ -492,13 +492,13 @@ struct { \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ } while (0) -#define STAILQ_REMOVE_HEAD(head, field) do { \ +#define STAILQ_REMOVE_HEAD(head, field) do { \ if ((STAILQ_FIRST((head)) = \ STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0) -#define STAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ +#define STAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ STAILQ_ASSERT_NONEMPTY((head)); \ QMD_STAILQ_CHECK_TAIL((head)); \ if (STAILQ_NEXT((elm), field) == NULL) \ @@ -525,32 +525,32 @@ struct { \ (head2)->stqh_last = &STAILQ_FIRST(head2); \ } while (0) -#define STAILQ_END(head) NULL +#define STAILQ_END(head) NULL /* * List declarations. */ -#define LIST_HEAD(name, type) \ +#define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } -#define LIST_CLASS_HEAD(name, type) \ +#define LIST_CLASS_HEAD(name, type) \ struct name { \ class type *lh_first; /* first element */ \ } -#define LIST_HEAD_INITIALIZER(head) \ +#define LIST_HEAD_INITIALIZER(head) \ { NULL } -#define LIST_ENTRY(type) \ +#define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } -#define LIST_CLASS_ENTRY(type) \ +#define LIST_CLASS_ENTRY(type) \ struct { \ class type *le_next; /* next element */ \ class type **le_prev; /* address of previous next element */ \ @@ -567,7 +567,7 @@ struct { \ * If the list is non-empty, validates that the first element of the list * points back at 'head.' */ -#define QMD_LIST_CHECK_HEAD(head, field) do { \ +#define QMD_LIST_CHECK_HEAD(head, field) do { \ if (LIST_FIRST((head)) != NULL && \ LIST_FIRST((head))->field.le_prev != \ &LIST_FIRST((head))) \ @@ -580,7 +580,7 @@ struct { \ * If an element follows 'elm' in the list, validates that the next element * points back at 'elm.' */ -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ +#define QMD_LIST_CHECK_NEXT(elm, field) do { \ if (LIST_NEXT((elm), field) != NULL && \ LIST_NEXT((elm), field)->field.le_prev != \ &((elm)->field.le_next)) \ @@ -592,26 +592,26 @@ struct { \ * * Validates that the previous element (or head of the list) points to 'elm.' */ -#define QMD_LIST_CHECK_PREV(elm, field) do { \ +#define QMD_LIST_CHECK_PREV(elm, field) do { \ if (*(elm)->field.le_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) -#define LIST_ASSERT_EMPTY(head) do { \ +#define LIST_ASSERT_EMPTY(head) do { \ if (!LIST_EMPTY((head))) \ panic("%s: list %p is not empty", __func__, (head)); \ } while (0) -#define LIST_ASSERT_NONEMPTY(head) do { \ +#define LIST_ASSERT_NONEMPTY(head) do { \ if (LIST_EMPTY((head))) \ panic("%s: list %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#define LIST_ASSERT_EMPTY(head) -#define LIST_ASSERT_NONEMPTY(head) +#define QMD_LIST_CHECK_HEAD(head, field) +#define QMD_LIST_CHECK_NEXT(elm, field) +#define QMD_LIST_CHECK_PREV(elm, field) +#define LIST_ASSERT_EMPTY(head) +#define LIST_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ #define LIST_CONCAT(head1, head2, type, field) do { \ @@ -631,38 +631,38 @@ struct { \ } \ } while (0) -#define LIST_EMPTY(head) ((head)->lh_first == NULL) +#define LIST_EMPTY(head) ((head)->lh_first == NULL) -#define LIST_EMPTY_ATOMIC(head) \ +#define LIST_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->lh_first) == NULL) -#define LIST_FIRST(head) ((head)->lh_first) +#define LIST_FIRST(head) ((head)->lh_first) -#define LIST_FOREACH(var, head, field) \ +#define LIST_FOREACH(var, head, field) \ for ((var) = LIST_FIRST((head)); \ (var); \ (var) = LIST_NEXT((var), field)) -#define LIST_FOREACH_FROM(var, head, field) \ +#define LIST_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ (var); \ (var) = LIST_NEXT((var), field)) -#define LIST_FOREACH_SAFE(var, head, field, tvar) \ +#define LIST_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = LIST_FIRST((head)); \ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define LIST_INIT(head) do { \ +#define LIST_INIT(head) do { \ LIST_FIRST((head)) = NULL; \ } while (0) -#define LIST_INSERT_AFTER(listelm, elm, field) do { \ +#define LIST_INSERT_AFTER(listelm, elm, field) do { \ QMD_LIST_CHECK_NEXT(listelm, field); \ if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ LIST_NEXT((listelm), field)->field.le_prev = \ @@ -671,7 +671,7 @@ struct { \ (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ } while (0) -#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ +#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ QMD_LIST_CHECK_PREV(listelm, field); \ (elm)->field.le_prev = (listelm)->field.le_prev; \ LIST_NEXT((elm), field) = (listelm); \ @@ -679,7 +679,7 @@ struct { \ (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ } while (0) -#define LIST_INSERT_HEAD(head, elm, field) do { \ +#define LIST_INSERT_HEAD(head, elm, field) do { \ QMD_LIST_CHECK_HEAD((head), field); \ if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ @@ -687,9 +687,9 @@ struct { \ (elm)->field.le_prev = &LIST_FIRST((head)); \ } while (0) -#define LIST_NEXT(elm, field) ((elm)->field.le_next) +#define LIST_NEXT(elm, field) ((elm)->field.le_next) -#define LIST_PREV(elm, head, type, field) \ +#define LIST_PREV(elm, head, type, field) \ ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \ __containerof((elm)->field.le_prev, \ QUEUE_TYPEOF(type), field.le_next)) @@ -697,7 +697,7 @@ struct { \ #define LIST_REMOVE_HEAD(head, field) \ LIST_REMOVE(LIST_FIRST(head), field) -#define LIST_REMOVE(elm, field) do { \ +#define LIST_REMOVE(elm, field) do { \ QMD_SAVELINK(oldnext, (elm)->field.le_next); \ QMD_SAVELINK(oldprev, (elm)->field.le_prev); \ QMD_LIST_CHECK_NEXT(elm, field); \ @@ -725,7 +725,7 @@ struct { \ TRASHIT(*oldprev); \ } while (0) -#define LIST_SPLIT_AFTER(head, elm, rest, field) do { \ +#define LIST_SPLIT_AFTER(head, elm, rest, field) do { \ LIST_ASSERT_NONEMPTY((head)); \ if (LIST_NEXT((elm), field) == NULL) \ /* 'elm' is the last element in 'head'. */ \ @@ -748,36 +748,36 @@ struct { \ swap_tmp->field.le_prev = &LIST_FIRST((head2)); \ } while (0) -#define LIST_END(head) NULL +#define LIST_END(head) NULL /* * Tail queue declarations. */ -#define TAILQ_HEAD(name, type) \ +#define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ struct type **tqh_last; /* addr of last next element */ \ TRACEBUF \ } -#define TAILQ_CLASS_HEAD(name, type) \ +#define TAILQ_CLASS_HEAD(name, type) \ struct name { \ class type *tqh_first; /* first element */ \ class type **tqh_last; /* addr of last next element */ \ TRACEBUF \ } -#define TAILQ_HEAD_INITIALIZER(head) \ +#define TAILQ_HEAD_INITIALIZER(head) \ { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER } -#define TAILQ_ENTRY(type) \ +#define TAILQ_ENTRY(type) \ struct { \ struct type *tqe_next; /* next element */ \ struct type **tqe_prev; /* address of previous next element */ \ TRACEBUF \ } -#define TAILQ_CLASS_ENTRY(type) \ +#define TAILQ_CLASS_ENTRY(type) \ struct { \ class type *tqe_next; /* next element */ \ class type **tqe_prev; /* address of previous next element */ \ @@ -794,7 +794,7 @@ struct { \ * If the tailq is non-empty, validates that the first element of the tailq * points back at 'head.' */ -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ +#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ if (!TAILQ_EMPTY(head) && \ TAILQ_FIRST((head))->field.tqe_prev != \ &TAILQ_FIRST((head))) \ @@ -806,7 +806,7 @@ struct { \ * * Validates that the tail of the tailq is a pointer to pointer to NULL. */ -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ +#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ if (*(head)->tqh_last != NULL) \ panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ } while (0) @@ -817,7 +817,7 @@ struct { \ * If an element follows 'elm' in the tailq, validates that the next element * points back at 'elm.' */ -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ +#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ if (TAILQ_NEXT((elm), field) != NULL && \ TAILQ_NEXT((elm), field)->field.tqe_prev != \ &((elm)->field.tqe_next)) \ @@ -829,30 +829,30 @@ struct { \ * * Validates that the previous element (or head of the tailq) points to 'elm.' */ -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ +#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ if (*(elm)->field.tqe_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) -#define TAILQ_ASSERT_EMPTY(head) do { \ +#define TAILQ_ASSERT_EMPTY(head) do { \ if (!TAILQ_EMPTY((head))) \ panic("%s: tailq %p is not empty", __func__, (head)); \ } while (0) -#define TAILQ_ASSERT_NONEMPTY(head) do { \ +#define TAILQ_ASSERT_NONEMPTY(head) do { \ if (TAILQ_EMPTY((head))) \ panic("%s: tailq %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#define TAILQ_ASSERT_EMPTY(head) -#define TAILQ_ASSERT_NONEMPTY(head) +#define QMD_TAILQ_CHECK_HEAD(head, field) +#define QMD_TAILQ_CHECK_TAIL(head, headname) +#define QMD_TAILQ_CHECK_NEXT(elm, field) +#define QMD_TAILQ_CHECK_PREV(elm, field) +#define TAILQ_ASSERT_EMPTY(head) +#define TAILQ_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ -#define TAILQ_CONCAT(head1, head2, field) do { \ +#define TAILQ_CONCAT(head1, head2, field) do { \ if (!TAILQ_EMPTY(head2)) { \ *(head1)->tqh_last = (head2)->tqh_first; \ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ @@ -863,60 +863,60 @@ struct { \ } \ } while (0) -#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) +#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) -#define TAILQ_EMPTY_ATOMIC(head) \ +#define TAILQ_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->tqh_first) == NULL) -#define TAILQ_FIRST(head) ((head)->tqh_first) +#define TAILQ_FIRST(head) ((head)->tqh_first) -#define TAILQ_FOREACH(var, head, field) \ +#define TAILQ_FOREACH(var, head, field) \ for ((var) = TAILQ_FIRST((head)); \ (var); \ (var) = TAILQ_NEXT((var), field)) -#define TAILQ_FOREACH_FROM(var, head, field) \ +#define TAILQ_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ (var); \ (var) = TAILQ_NEXT((var), field)) -#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ +#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = TAILQ_FIRST((head)); \ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ +#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ for ((var) = TAILQ_LAST((head), headname); \ (var); \ (var) = TAILQ_PREV((var), headname, field)) -#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ +#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ (var); \ (var) = TAILQ_PREV((var), headname, field)) -#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ +#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ for ((var) = TAILQ_LAST((head), headname); \ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ (var) = (tvar)) -#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar)\ +#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar)\ for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ (var) = (tvar)) -#define TAILQ_INIT(head) do { \ +#define TAILQ_INIT(head) do { \ TAILQ_FIRST((head)) = NULL; \ (head)->tqh_last = &TAILQ_FIRST((head)); \ QMD_TRACE_HEAD(head); \ } while (0) -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ +#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ QMD_TAILQ_CHECK_NEXT(listelm, field); \ if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ TAILQ_NEXT((elm), field)->field.tqe_prev = \ @@ -931,7 +931,7 @@ struct { \ QMD_TRACE_ELEM(&(listelm)->field); \ } while (0) -#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ +#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ QMD_TAILQ_CHECK_PREV(listelm, field); \ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ TAILQ_NEXT((elm), field) = (listelm); \ @@ -941,7 +941,7 @@ struct { \ QMD_TRACE_ELEM(&(listelm)->field); \ } while (0) -#define TAILQ_INSERT_HEAD(head, elm, field) do { \ +#define TAILQ_INSERT_HEAD(head, elm, field) do { \ QMD_TAILQ_CHECK_HEAD(head, field); \ if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ TAILQ_FIRST((head))->field.tqe_prev = \ @@ -954,7 +954,7 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) -#define TAILQ_INSERT_TAIL(head, elm, field) do { \ +#define TAILQ_INSERT_TAIL(head, elm, field) do { \ QMD_TAILQ_CHECK_TAIL(head, field); \ TAILQ_NEXT((elm), field) = NULL; \ (elm)->field.tqe_prev = (head)->tqh_last; \ @@ -964,7 +964,7 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) -#define TAILQ_LAST(head, headname) \ +#define TAILQ_LAST(head, headname) \ (*(((struct headname *)((head)->tqh_last))->tqh_last)) /* @@ -974,22 +974,22 @@ struct { \ * the previous element. FAST is very useful for instances when * you may want to prefetch the last data element. */ -#define TAILQ_LAST_FAST(head, type, field) \ +#define TAILQ_LAST_FAST(head, type, field) \ (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next)) -#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) +#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) -#define TAILQ_PREV(elm, headname, field) \ +#define TAILQ_PREV(elm, headname, field) \ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) -#define TAILQ_PREV_FAST(elm, head, type, field) \ +#define TAILQ_PREV_FAST(elm, head, type, field) \ ((elm)->field.tqe_prev == &(head)->tqh_first ? NULL : \ __containerof((elm)->field.tqe_prev, QUEUE_TYPEOF(type), field.tqe_next)) #define TAILQ_REMOVE_HEAD(head, field) \ TAILQ_REMOVE(head, TAILQ_FIRST(head), field) -#define TAILQ_REMOVE(head, elm, field) do { \ +#define TAILQ_REMOVE(head, elm, field) do { \ QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \ QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \ QMD_TAILQ_CHECK_NEXT(elm, field); \ @@ -1025,7 +1025,7 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) -#define TAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ +#define TAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ TAILQ_ASSERT_NONEMPTY((head)); \ QMD_TAILQ_CHECK_TAIL((head), field); \ if (TAILQ_NEXT((elm), field) == NULL) \ @@ -1059,6 +1059,6 @@ struct { \ (head2)->tqh_last = &(head2)->tqh_first; \ } while (0) -#define TAILQ_END(head) NULL +#define TAILQ_END(head) NULL #endif /* !_SYS_QUEUE_H_ */ From nobody Mon Apr 28 12:23:37 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 4ZmN0B1pvHz5vJRf; Mon, 28 Apr 2025 12:23: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 4ZmN095YS1z3g8V; Mon, 28 Apr 2025 12:23:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MIqKF7NQYId8vXYt6fT7pvWKfFpC2jLu2JZMYhAM5AA=; b=SvhDTjaitWshkRbHyX8n/ZzF2fyO1Z3X4TUJW6C+VGgQOiwuYdesIB0FQ5V37aIwAgx7q+ PPtwN4O9KVJ0N2+D+B/57xyWQx6ZApLZKuVDDkLUO9QAZrOdjJLZyd0LazO07WGfn/ylsI O/gJRKnXoiSkpgd1GjrF5PK6szkSCmmQpiopm4mAAEVRKrgEGGv4OjDOes6/VOympuldRy fJIUt2NcbuIdy/CLTBaGppjBEkZBTa1EP+PerCRBljkrcx3KIZI8iEa6p2wSnJbcttv1dt /hkhDFJXzF4tX9v5F+p34suZC3rGI1ewbQwxgtuDN94zqC5l41QV7vVB6WB2yA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843017; a=rsa-sha256; cv=none; b=TCa835XhHUTDPvJCQVz4MqA6VwanXLNrBYeP0HMOekii1NDyA1m3yjS8NpPdrLSJvluDq8 PI2rwDT8oj+tzwaZC4i4WCxzN3h37/n+mq4IvW4KjHT9lhdyku+nLaU/tqJhpiYQdmbElW JSJHKvVGovgg01alrfUCYs5nULYlhG+AdjpYb5KjJ/05arCby1L3p2RS4lSSQnrokxw/Fw IfQpSqqgaK0RHoPrC2HyG+GAG8DZkOTF8JrNtGeWUsAean721xntbanKsOo/ooRAsiv4fM uNdfC8Y8BOBzG6iyKc5DxXa5zyBO/LFSTf9+0inwUhdO7G3gNITJHgbmZnjfJg== 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=1745843017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MIqKF7NQYId8vXYt6fT7pvWKfFpC2jLu2JZMYhAM5AA=; b=QzGXu1Jx9sbPYp9huQcIu6MIu88SomJ/vq83rnnFvwHXu63fm5t0H4tQ6jA1x2PI6jc5Jl mCkG0/gzIealagMvnmWQ3y8io8L2uhojZ6aFyI/ms/A98q57r+pvchNfRt+kLBCghDkcIe A8K5dMgEwkJbqu1pLPodU2MrviZMdoYGZVF+f0cB0480GB1YuVT8bSWIl4fmfoRH4NAy8D X2RDW0ChsaVtUC5m5taoCJWSepOqq4sqz8qhTTwbeTIwzDcc4QsIvrUMYOuMjBXTP6fqKv 9mz0nDV5m/wyJt1yuw4fVg+Hr6YVX5zGMfYL66B1cUo46tOQP0OyZ7MuQ5sk9g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0957lbzbwG; Mon, 28 Apr 2025 12:23: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 53SCNb0n025689; Mon, 28 Apr 2025 12:23:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNbSL025686; Mon, 28 Apr 2025 12:23:37 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:37 GMT Message-Id: <202504281223.53SCNbSL025686@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 995b690d1398 - main - ps(1): '-U' to select processes by real user IDs 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 995b690d1398044dc9d85a6d86ec550cda30b2ac Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=995b690d1398044dc9d85a6d86ec550cda30b2ac commit 995b690d1398044dc9d85a6d86ec550cda30b2ac Author: Olivier Certner AuthorDate: 2025-04-01 13:07:24 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:18:26 +0000 ps(1): '-U' to select processes by real user IDs This is what POSIX mandates for option '-U' and arguably the behavior that most users actually need in most cases. Before, '-U' would select processes by their effective user IDs (which is the behavior mandated by POSIX for option '-u'). Matching by real user IDs allows to list all processes belonging to the passed users, including those temporarily having a different effective user ID, which can happen if launched by a setuid executable or if using some credentials-changing facility (such as seteuid() for root processes or mac_do(4)/setcred(2)). Conversely, processes temporarily assuming the identity of some of the passed users will not be listed anymore (they do not "belong" to these users). This change also makes '-U' consistent with '-G', the latter already matching on real group IDs. While here, remove the (non-compiled) code for tentative option '-R' as its proposed behavior was the one established here for '-U'. Also, move the compiled-out old code for '-U' under '-u' for reference, as this is what the latter should do according to POSIX, even if it seems unlikely we will want to change the behavior of '-u'. Reviewed by: manpages (ziaee) MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49622 (code) Differential Revision: https://reviews.freebsd.org/D49623 (manual page) --- bin/ps/ps.1 | 14 +++++--------- bin/ps/ps.c | 37 ++++++++++++++++++------------------- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 174f18a2f2d9..ff9a847ffd86 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -371,8 +371,8 @@ Implies .Fl x by default. .It Fl U -Display information about processes whose effective user ID matches the -specified user IDs or names. +Display information about processes whose real user ID matches the specified +user IDs or names. Implies .Fl x by default. @@ -953,20 +953,16 @@ equivalently to .Pc , and option .Fl u -to select processes by effective user ID -.Po -which is the current behavior of option -.Fl U -.Pc . +to select processes by effective user ID. .Pp However, options -.Fl A , a , G , l , o , p , +.Fl A , a , G , l , o , p , U , and .Fl t behave as prescribed by .St -p1003.1-2024 . Options -.Fl f , U , +.Fl f and .Fl w currently do not, but may be changed to in the future. diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 6c007e8fc1a1..a75ea512ad54 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -356,20 +356,6 @@ main(int argc, char *argv[]) */ nselectors++; break; -#if 0 - case 'R': - /* - * XXX - This un-standard option is still under - * debate. This is what SUSv3 defines as - * the `-U' option, and while it would be - * nice to have, it could cause even more - * confusion to implement it as `-R'. - */ - add_list(&ruidlist, optarg); - xkeep_implied = 1; - nselectors++; - break; -#endif case 'r': sortby = SORTCPU; break; @@ -401,21 +387,34 @@ main(int argc, char *argv[]) nselectors++; break; case 'U': + add_list(&ruidlist, optarg); + xkeep_implied = 1; + nselectors++; + break; + case 'u': +#if 0 /* - * POSIX says that '-U' should match on real user IDs, - * not effective ones as we are doing here, which is - * normally the behavior of option '-u' according to the - * standard. + * POSIX's '-u' behavior. + * + * This has not been activated because: + * 1. Option '-U' is a substitute for most users, and + * those that care seem more likely to want to match + * on the real user ID to display all processes + * launched by some users. + * 2. '-u' has been a canned display on the BSDs for + * a very long time (POLA). */ add_list(&uidlist, optarg); xkeep_implied = 1; nselectors++; break; - case 'u': +#else + /* Historical BSD's '-u'. */ parsefmt(ufmt, &varlist, 0); sortby = SORTCPU; _fmt = 1; break; +#endif case 'v': parsefmt(vfmt, &varlist, 0); sortby = SORTMEM; From nobody Mon Apr 28 12:23:35 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 4ZmN081Kg3z5vHlR; Mon, 28 Apr 2025 12:23: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 4ZmN074bs1z3gMl; Mon, 28 Apr 2025 12:23:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CRoys4V2+l2yNanuJuEricLCFiU1k/Xjdd+Zp83JTCc=; b=vLQvvTqePiA+uY/5erMo3chVKMLMvxkajCCwHHclB9sDEwlO/dsKAD5pjZBhvYPonI/QnM yQbZOhYf68l124PI3i4JxH45UIju/ggMzvJrLHaYg99V//l30OKNCFB6rOIRIuBAEARj4f hDu9LpygNndhZrztODF0B5mgXHi8zuiaplUay6aBrhkYj5/HcK3QvPTsvJ72CBeFq5C2Ox amDAzdX74L9p9dtS6bu5I/gxKhTw26zbGGkFM/jd0ROuWtXv8/uuq2ffduvI+K0ekpXC4v oj3w672yBWepydgJsIv2YAgyHxy3PO2e36GHdTkQb9ZthJeNtG9TYicEEMTgDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843015; a=rsa-sha256; cv=none; b=B8PiUxingoIprXSP31amukUsVo+jL8bbZhFF04kIJ9S80pFC+2kDbNcO2SHtMQ9jEXodlt vIc7Jm01GMLSUuweMSsjTiUJ4diFGz4TcPFfuFKtvZjyatpPd483n/yfcLANGR93obhMqx wtBlXAaJYCCg4KkHw5B8UK9Uv/NJWhf+hfEWEv04e+3p3D+RmyiJQMXCq96YJRkAf5W2E8 JnO49/B1FnYh/dOcvghfn8c3CYHDaNu+tjerMstkNYJ3C6Pl1/rkBbjBWBwJp6Qe18Xg4L uBurcrcAzLYm6n0oH5cZWsnxUPg3AaORuoLfBWlKcgbuZ0CvUFgKwliiS7TZaw== 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=1745843015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CRoys4V2+l2yNanuJuEricLCFiU1k/Xjdd+Zp83JTCc=; b=kwL0DR2a5n+VDexUoSVPUdqR+RFmLZf4aLkt3UHxl0tj/UwEd0cxu2UeNpIG6Mz3AXGMdh HebJkG3vwbyHn5yHIz5OZ50SwF8HRAuIzJTImGMRMfGOr/vsGmOFsr/y8kcJk7I+mb4MbF Hvm/38cqdrhQP96md9FhNYTaGbcImkX84yaBqYeMQds+6hsO3aMKiR+795kJsQylgn0Uzd S48TfnJTD13i3lWzV1v/ya0D0wr4fmM12CxElANuAUhczezCebHDDOe9srHpKtJnIwr51R z6g1h3/0XSehrCQ6SUs+jvGCi0dR8of1+3KWNGOrzOjchoIPh45SU7u8TX85oQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN073zCgzbW3; Mon, 28 Apr 2025 12:23: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 53SCNZAU025612; Mon, 28 Apr 2025 12:23:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNZ5e025609; Mon, 28 Apr 2025 12:23:35 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:35 GMT Message-Id: <202504281223.53SCNZ5e025609@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 44265f3b3056 - main - RELNOTES: ps(1): Change of how current user's processes are matched 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 44265f3b30562f58db78d5bcd905f3db21fc418e Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=44265f3b30562f58db78d5bcd905f3db21fc418e commit 44265f3b30562f58db78d5bcd905f3db21fc418e Author: Olivier Certner AuthorDate: 2025-04-22 16:11:07 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:18:17 +0000 RELNOTES: ps(1): Change of how current user's processes are matched MFC after: 3 days Sponsored by: The FreeBSD Foundation --- RELNOTES | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/RELNOTES b/RELNOTES index 70b59cdb621e..ee1a5e41bd75 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,13 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +1aabbb25c9f9: + ps(1)'s default list of processes now comes from matching its effective + user ID instead of its real user ID with the effective user ID of all + processes, in accordance with POSIX. As ps(1) itself is not installed + setuid, this only affects processes having different real and effective + user IDs that launch ps(1) processes. + f0600c41e754-de701f9bdbe0, bc201841d139: mac_do(4) is now considered production-ready and its functionality has been considerably extended at the price of breaking credentials From nobody Mon Apr 28 12:23:38 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 4ZmN0D2Pk5z5vJMF; Mon, 28 Apr 2025 12:23:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmN0C1N5dz3gSv; Mon, 28 Apr 2025 12:23:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mRNkHSIsK12Pa/Uw1PPNOpkY+9k9mF/3P+bEoNkj/uM=; b=hloFNvmj0jtTpia7KqH5ldD214Wx39QvWcKFf/S+UdQUpHBgFPJyWWvYVW/Xbi6Hmdp834 tguTnbTIGvB23IPqEW5MNNswiGoMvzRG7uTsaDW7ceS52FpfDpyA6SihDKYl87hK4pdTep 2wQYmHC7ZIwiGrGGndzzrYaAV1WykcmTCLp5sF34FDLOt0L+dPJoC1+uHoothP5A9LROrA x+YJuuy2+Hyfe3u9nrhDmiu7Igo/0HSvS74wZkGSqazgxl8GbwHEQMfMXGroGsx+H1lh1k x15gYFzx+wZTlfbbTB07auxv/hRveQ5J7x1HSjGxMU0AnejKA0CJB2t7VSuhFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843019; a=rsa-sha256; cv=none; b=H3AquziG2XZ/HmB1A+pTCxWw69JPTWlaKkKBjfe7SPy74vY8HKPi3S7pUACrfj0Ox4mXPr eggEPv9oJusoPzTAQka7mMHKKi3VTaQXkHgdgugoQ/BUREupiEQjf4jf79xof+mCN1+o0o 1RUo2FThaR4xgE7C1ToNyxpI87JpNn3baj2Tad8lOw5sh2ucDtcJr5E0oLgWLaFjjFkX2H rWEf6lZuEbU2HASS2w31LIK8clxYS4OkHEJv1NGZkwuyC1gAr5HU8cxoNN+3fCkg7v4USK 5CaqBx6GURE0dn/q+1v9zj+27bI74trZAwtYpBNkAUOG+UgUQOTOluHzzrfzfw== 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=1745843019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mRNkHSIsK12Pa/Uw1PPNOpkY+9k9mF/3P+bEoNkj/uM=; b=odP6rcOKk0b1tUBHQPxQojFYtpe0QoHNjwM2Ja7pgrHwjxy35OD3uUqRaA3t0KaLPBvrun nzMa9SHwjBlLzhhgHd6EiUutOAHg9Y0dLlUVncGzpe0D4saihtjb8ItgZlO5hD/bp8TUYy 7zWq1MaoagHXlB7gkdh133wzyhqx1Y9IA6VtG8EYvjqhGqGZcxoAuq9Hkf4ogjuhjAjHOK Zq+t6hz1XljKJzWUABwHxLkAOdB9JoaLiPi5aKm68sMlrOCP9g3RYK2w+nP+HHPNuvlNGb ZMJx/JWc/9iMnS+rPQYqcl218zODmlPk7XcowQZ085XPrnFZU5m9LAsNBZvcxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0B659hzbvq; Mon, 28 Apr 2025 12:23: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 53SCNcwW025727; Mon, 28 Apr 2025 12:23:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNcNa025724; Mon, 28 Apr 2025 12:23:38 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:38 GMT Message-Id: <202504281223.53SCNcNa025724@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: a8dccfa7462b - main - RELNOTES: ps(1): Change in behavior for option '-U' 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a8dccfa7462b47e326a863d06f5575e4ed11b5be Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=a8dccfa7462b47e326a863d06f5575e4ed11b5be commit a8dccfa7462b47e326a863d06f5575e4ed11b5be Author: Olivier Certner AuthorDate: 2025-04-22 16:18:45 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:19:32 +0000 RELNOTES: ps(1): Change in behavior for option '-U' MFC after: 3 days Sponsored by: The FreeBSD Foundation --- RELNOTES | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/RELNOTES b/RELNOTES index ee1a5e41bd75..4e0b0a0b3cdb 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,16 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +995b690d1398: + ps(1)'s '-U' option has been changed to select processes by their real + user IDs instead of their effective one, in accordance with POSIX and + the use case of wanting to list processes launched by some user, which + is expected to be more frequent than listing processes having the rights + of some user. This only affects the selection of processes whose real + and effective user IDs differ. After this change, ps(1)'s '-U' flag + behaves differently then in other BSDs but identically to that of + Linux's procps and illumos. + 1aabbb25c9f9: ps(1)'s default list of processes now comes from matching its effective user ID instead of its real user ID with the effective user ID of all From nobody Mon Apr 28 12:23:40 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 4ZmN0F5YPFz5vJ0m; Mon, 28 Apr 2025 12:23:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmN0F0nk0z3gC4; Mon, 28 Apr 2025 12:23:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4ids4gb1SLh33sPxA1GC09gMJIxwE357xYQLq3TLvPI=; b=Za9+7plAOqDjdjFeaarrKrjZGbg5P1ztm4+zQREqoAA8mrlxTJ4GOH2ZQOai97EFkc2kKZ Qr2UjZHBulK3oge5pyu3Ke3wpoPJCZUD+UNZefhPMcHaV8vdV/8EcnKr/6Q9/z6tQiNLwk +5/Z/KdPMdea+g1bcLEo8EKo9Fb19gh+8r9gMPne33nEuHakNP0ABaXpZHqt4im8qhqz9M UpedfieG/q7j64oLR5GT8nnwkDt4aD6w+UoSHUGmrdyjIgJV3QvMTyK38jSSeXE7/YbhQ4 119Iqonj/XPrsV8guHBcNc9KXcwNmt5dVmNR3ChwnJq7ZZmstC/Kn1L31OtvQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843021; a=rsa-sha256; cv=none; b=vPLiKSIDxWgTj03F3WjPy7xrXoLeA85JtFwjbtMj2akVKRoMssEVG7eAGdgncEjHtYbOLn KMZiaYelfUE2Ln+UmdzNTj5A9DbKDODh+Ae9aMUTQaFqLScq5A6T0ZBdScRLhDfPp9/TYY O8bJM4NG9JwFdVvEv3SOLPNTIzjFqHc4QAZgqo2+sRoLwGRhSIcs28CO9ECU0qJXkEazZT +zzx0n6AtrabwhcwbR2YEfcp36hLNkeS9cu6wY429VU8g9aR8YwzQhx8Js/tIeiRoLAUdk fcdR83ZwuGMvzfThBH6w6cHwGnlvfYOna6i0YF9J8AgqlOvhgJxxCvnwh+vW4g== 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=1745843021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4ids4gb1SLh33sPxA1GC09gMJIxwE357xYQLq3TLvPI=; b=yEs3XzLWr0TmglkJz6y1Jjdg41R74KPEpg/ELis7NllDV409dbPtcboLCYWZTHiAriMcVU n7BaanYAD6KdhaFGiJB+Qj3pUrICxtUEdsiC2OhSiqKJ4c6Myr17g0kncmEry5cmQJiJFb vgj8KU2UXlC3JI9Zz14Hpt6l1FqXySwIF5AXa9V73MkGbPo/YM9xgmKXDYWV8eUvK5bdE3 YajgwTnbdBBuIbxjsEVOquwoMYUwqEFNLzxW7FQu+h5+Di5wgeof4ujw36YO3wyQpHUx4j GsFSsX3SNzJnUziSNtjpqowyvP+vhw3PFZgGC4lnVL8WMMHRr+5Kj4FBOBc9mw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0F0MfNzbwH; Mon, 28 Apr 2025 12:23: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 53SCNehJ025797; Mon, 28 Apr 2025 12:23:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNemQ025794; Mon, 28 Apr 2025 12:23:40 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:40 GMT Message-Id: <202504281223.53SCNemQ025794@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: b0d4c946572d - main - kassert: Turn 'poisoned_buf' into a 'void *' 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b0d4c946572d0120ebbd264bdff328eb6aec9ce6 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=b0d4c946572d0120ebbd264bdff328eb6aec9ce6 commit b0d4c946572d0120ebbd264bdff328eb6aec9ce6 Author: Olivier Certner AuthorDate: 2025-04-07 13:15:49 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:19:42 +0000 kassert: Turn 'poisoned_buf' into a 'void *' This is a step to make usable without the need to explicitly include other headers. 'poisoned_buf' is only used for its value and never subject to pointer arithmetics. Keeping 'caddr_t' would require to include (at least on INVARIANTS). Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49971 --- sys/kern/vfs_bio.c | 2 +- sys/sys/kassert.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 08ba752bcf29..ea66a81b5903 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -160,7 +160,7 @@ nbufp(unsigned i) caddr_t __read_mostly unmapped_buf; #ifdef INVARIANTS -caddr_t poisoned_buf = (void *)-1; +void *poisoned_buf = (void *)-1; #endif /* Used below and for softdep flushing threads in ufs/ffs/ffs_softdep.c */ diff --git a/sys/sys/kassert.h b/sys/sys/kassert.h index 7755a241888f..a2bc42058d93 100644 --- a/sys/sys/kassert.h +++ b/sys/sys/kassert.h @@ -51,11 +51,11 @@ extern const char *panicstr; /* panic message */ */ #ifdef INVARIANTS -extern caddr_t poisoned_buf; +extern void *poisoned_buf; #define DEBUG_POISON_POINTER_VALUE poisoned_buf #define DEBUG_POISON_POINTER(x) ({ \ - x = (void *)(DEBUG_POISON_POINTER_VALUE); \ + x = (DEBUG_POISON_POINTER_VALUE); \ }) #else From nobody Mon Apr 28 12:23:42 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 4ZmN0G545Qz5vJPy; Mon, 28 Apr 2025 12:23: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 4ZmN0G1Yt7z3gQX; Mon, 28 Apr 2025 12:23:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cEzlclDkFIkXQ4RrzmjfP7keSuLPL2RS9dO/Maal078=; b=sgwuyUnL/2lHQiP6kamyQOHOTzljTbDWhDWPMprSCcWP56tD4UFmogg0Necw5TeKOJegB4 rTUEBB6sa6H7H2Poi+bzXxmkrQw0caWtwQUSSJSqpg/PR2IEegUY5tGAEdY3KuoybTPzEs JXSIcTHYECFSouXz3v2plqijAogTHv5Ggu02NM205pnQJwTgVX2DOAdMZFKipEcT7Bpz++ Dp3XoAJpOp2UcQ5oVECObHlB6XApF25ha7S6PJ3UXglo8KHUD4ACfOWDzZpZhQFkrzmUey YZSz7UJ2RNFuOSPoFUaq5iBLjo6r/N2Qz3N5JQpd6VPHFlR+YuHlTnAMiH4Bbg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843022; a=rsa-sha256; cv=none; b=pU0aLiJQJp7slP9/35BoSxpVFNZtsiqPePoIqPJTx7tXkXwJlqD3DSgH/2ZcSYFEftQLnx 10wQWv5A/gQjkk9jSy19HbZIYkR/vhRJH273aKQe8rP6djjCeLmpuJ1Ayy9MwcrxDiiCnm kQ5gpmw2uGzJ3edO9Y1swv7Ryc7ZBA0wiZMisWiQdNnncmNO4UmvjlrG6YjtBEjGxTto0M BO1M1X1vlmNQDoS1xfWzxGxR2+j0dDSeG5ZrBZ3qL7KdX0YzHuMyHV2Oj+XG2T5zt5hicz ASiqvwczvji/qFHxdYIbkmp/MH2t431ntnHDFXK8eG7BZMp5C4bo9onaCTQGTg== 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=1745843022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cEzlclDkFIkXQ4RrzmjfP7keSuLPL2RS9dO/Maal078=; b=b57o9k6ITeGO1gs9XKJhUfmj37yMbs6WEdtDkbtlcmZuzL8nAmTE2OOQGN2Y/w1zAJJl+A 1bLcbumiefk8bJJDA4tomzgNr3r/IJJ37hebAa5ZnzWXHczSBrid4LfFIHy+Otmx5ntpum 5cD+XbgTRdHs7FdGlPCX4aJBNF1YacEtSzyhCvoZmW7SsheI46nIs6Fx5RmeJenTveUiYP oUH28RlD/hbwWhyRsI8Wcryg24awwGnfYnLK4leIlmStswEoHLtl+5Km5Cm/THCq7PQ1ks sWLwmhV/38G4RcKe2Bicsrl35QQu3tKbgfwPl/m6p31KZl8eSlgnDaSirJ7cVw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0G18kJzbW4; Mon, 28 Apr 2025 12:23: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 53SCNgtD025837; Mon, 28 Apr 2025 12:23:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNg4B025834; Mon, 28 Apr 2025 12:23:42 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:42 GMT Message-Id: <202504281223.53SCNg4B025834@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 0f2090ccfeb6 - main - kassert: Explicitly include 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0f2090ccfeb6e3e1a2290300b53baedfb057c2b5 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=0f2090ccfeb6e3e1a2290300b53baedfb057c2b5 commit 0f2090ccfeb6e3e1a2290300b53baedfb057c2b5 Author: Olivier Certner AuthorDate: 2025-04-07 12:16:34 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:19:42 +0000 kassert: Explicitly include Include it as has direct references defined in it (to '__va_list' and '__printflike' at least). This is a step to make usable without the need to explicitly include other headers. Reviewed by: imp, markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49972 --- sys/sys/kassert.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/kassert.h b/sys/sys/kassert.h index a2bc42058d93..e61eca308c07 100644 --- a/sys/sys/kassert.h +++ b/sys/sys/kassert.h @@ -31,6 +31,7 @@ #ifndef _SYS_KASSERT_H_ #define _SYS_KASSERT_H_ +#include #include #ifdef _KERNEL From nobody Mon Apr 28 12:23:43 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 4ZmN0J0NXxz5vJMQ; Mon, 28 Apr 2025 12:23: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 4ZmN0H32nNz3gTp; Mon, 28 Apr 2025 12:23:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fPVMHUIzbdWrQMCgO0kIp9PE9VJ8FthVVggc1hEQ9FI=; b=G5G9KqjrsXYKa00UjJ4z2JjC3ik/3S3svSEjUsaeiJn0ZKk/gFH/mit9Mu6ChiNPR56pGY /sxk6KyA3sMrU8lHPJQE5DXsvmzeNREmgS0c4whvC6Ekp7izsASjsUeBpJsy7t16lTMvML E65uyLdoAg7g/zcjFlM3qC9wWX9fCMxUVXlTW8huD39GbNhexI0gwb8fOCA58Pc3lZVThe 4GTE+VvjPKYK779vtGPcrT6swm3WwNvMS+tAlbXSg+XaY5StM3JBEooUzYATLNGAoEqXPf bsFTaXnhP8qDW5ZQXwwyGB2P5R1niQV5NCt6TtCNCmD19CXXz0P6efhPXBMyVw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843023; a=rsa-sha256; cv=none; b=RrjQx+t3cUMve3PblNOqGxtYW5pmkaUY3mZUqUUtstaK966JAE7aSS+Cx5SJOP6yNm54Dw o5sFPItRDXqfDjVwY+vrUy4acLnB5rDoCrgkoA7zbpmgAAZIiJ/NlD/oDE676+XMc360T/ ubeMp68+mfO2TQJV2EP5hPP6uLG67x3fsnnYEBCG1yNIttWbpMq33jkvMswgRDhUkupZzc 75E7nOz4fuT0z5eJuR8nB16WVuperpICOBDnNVATWl4EZqyMiMBZfNVO0+avyODEV/FGxD X+IOCN8wmnJGNXYatibW54Uo0Q4erLEc9YNtWnd2lTg42GdFtCQskNkYPHjEeA== 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=1745843023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fPVMHUIzbdWrQMCgO0kIp9PE9VJ8FthVVggc1hEQ9FI=; b=pm8W11R8527Sz2VsKTx2csOJ4/KWwDjuZowiBqRpGQVW6gwS7vR09yMJzRQu/IvrkAsq3s sxtJXEtSqP4E2VTN4mbIigUrvdddluP3fwtcyPsW6fTfVx+q0lmGqqZjM+t8vq/eMVd6A1 b4aNCxIr8B9sjVINjCOI5FBlqkmbEIXu5GzKIokuvBXZi9DeGeDypeq+OOYLHYog5KUeJy Kr2tncj7CWcMMx6sdqz/wBWneZU91gkaUgk3RU2zCFIr7KQWE4cFbLPBbY/+GacHtxd9n1 BJJpbXpj2z+yX2hWHYnRUG8rKLAE2rOOhZCoOh8pP3wySZBS/PumAtFNEDoB2g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0H20cDzbSp; Mon, 28 Apr 2025 12:23:43 +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 53SCNhQZ025870; Mon, 28 Apr 2025 12:23:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNhaD025867; Mon, 28 Apr 2025 12:23:43 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:43 GMT Message-Id: <202504281223.53SCNhaD025867@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 1c5fea9e8b56 - main - queue(3): Debug macros: Finer control knobs, userland 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1c5fea9e8b563186b8f5773064458c4ecf2d7004 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1c5fea9e8b563186b8f5773064458c4ecf2d7004 commit 1c5fea9e8b563186b8f5773064458c4ecf2d7004 Author: Olivier Certner AuthorDate: 2025-04-04 19:51:43 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:19:42 +0000 queue(3): Debug macros: Finer control knobs, userland support Support enabling debugging macros for userland and _STANDALONE builds, in addition to the already existing kernel support. On runtime error, panic() is used for kernel and _STANDALONE builds, and a simple fprintf() + abort() combination for userland ones. These can be overriden if needed by defining the QMD_PANIC() and/or QMD_ASSERT() macros. The expansion of queue debug macros can now be controlled more finely thanks to the QUEUE_MACRO_DEBUG_ASSERTIONS and QUEUE_MACRO_NO_DEBUG_ASSERTIONS macros. The first one serves to forcibly enable debug code and the second to forcibly disable it. These are meant to be used as compile options only, and should normally not be defined in a source file. It is an error to have both of them defined. If none of the two above-mentioned macros are defined, an automatic determination is performed. When compiling kernel code, QUEUE_MACRO_DEBUG_ASSERTIONS is defined if INVARIANTS has been defined (as before). For userland and _STANDALONE builds, no debug code is ever automatically inserted even if NDEBUG is not defined, as doing so would inflate code size and users may want to have working assert() calls without this overhead by default. In the manual page, document check code control under DIAGNOSTICS. While here, rework a bit the rest of the DIAGNOSTICS section. Reviewed by: markj (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49973 --- share/man/man3/queue.3 | 94 +++++++++++++------ sys/sys/queue.h | 249 ++++++++++++++++++++++++++----------------------- 2 files changed, 199 insertions(+), 144 deletions(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index e0684fa7c70f..53b4a3eab120 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -1390,49 +1390,87 @@ while (n1 != NULL) { TAILQ_INIT(&head); .Ed .Sh DIAGNOSTICS -When debugging -.Nm queue(3) , -it can be useful to trace queue changes. -To enable tracing, define the macro -.Va QUEUE_MACRO_DEBUG_TRACE -at compile time. +.Nm queue(3) +provides several diagnostic and debugging facilities. .Pp -It can also be useful to trash pointers that have been unlinked from a queue, -to detect use after removal. -To enable pointer trashing, define the macro -.Va QUEUE_MACRO_DEBUG_TRASH -at compile time. -The macro -.Fn QMD_IS_TRASHED "void *ptr" -returns true if -.Fa ptr -has been trashed by the -.Va QUEUE_MACRO_DEBUG_TRASH -option. +Check code that performs basic integrity and API conformance checks is +automatically inserted when using queue macros in the kernel if compiling it +with +.Va INVARIANTS . +One can request insertion or elision of check code by respectively defining one +of the macros +.Va QUEUE_MACRO_DEBUG_ASSERTIONS +or +.Va QUEUE_MACRO_NO_DEBUG_ASSERTIONS +before first inclusion of +.In sys/queue.h . +When check code encounters an anomaly, it panics the kernel or aborts the +program. +To this end, in the kernel or in +.Va _STANDALONE +builds, it by default calls +.Fn panic , +while in userland builds it prints the diagnostic message on +.Dv stderr +and then calls +.Fn abort . +These behaviors can be overriden by defining a custom +.Fn QMD_PANIC +macro before first inclusion of +.In sys/queue.h . +The diagnostic messages automatically include the source file, line and function +where the failing check occured. +This behavior can be overriden by defining a custom +.Fn QMD_ASSERT +macro before first inclusion of +.In sys/queue.h . .Pp -In the kernel (with -.Va INVARIANTS -enabled), the +The .Fn SLIST_REMOVE_PREVPTR macro is available to aid debugging: .Bl -hang -offset indent .It Fn SLIST_REMOVE_PREVPTR "TYPE **prev" "TYPE *elm" "SLIST_ENTRY NAME" .Pp -Removes +Removes element .Fa elm , which must directly follow the element whose .Va &SLIST_NEXT() is .Fa prev , -from the SLIST. -This macro validates that +from the list. +This macro may insert, under conditions detailed above, check code that +validates that .Fa elm -follows +indeed follows .Fa prev -in -.Va INVARIANTS -mode. +in the list +.Po +through the +.Fn QMD_SLIST_CHECK_PREVPTR +macro +.Pc . .El +.Pp +When debugging, it can be useful to trace queue changes. +To enable tracing, define the macro +.Va QUEUE_MACRO_DEBUG_TRACE . +Note that, at the moment, only macros for regular tail queues have been +instrumented. +.Pp +It can also be useful to trash pointers that have been unlinked from a queue, +to detect use after removal. +To enable pointer trashing, define the macro +.Va QUEUE_MACRO_DEBUG_TRASH +at compile time. +Note that, at the moment, only a limited number of macros have been +instrumented. +The macro +.Fn QMD_IS_TRASHED "void *ptr" +returns true if +.Fa ptr +has been trashed by the +.Va QUEUE_MACRO_DEBUG_TRASH +option. .Sh SEE ALSO .Xr arb 3 , .Xr tree 3 diff --git a/sys/sys/queue.h b/sys/sys/queue.h index 307ac9f0ba44..b4814706cb76 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -116,11 +116,10 @@ * */ #ifdef QUEUE_MACRO_DEBUG -#warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH +#warn Use QUEUE_MACRO_DEBUG_xxx instead (TRACE, TRASH and/or ASSERTIONS) #define QUEUE_MACRO_DEBUG_TRACE #define QUEUE_MACRO_DEBUG_TRASH #endif - #ifdef QUEUE_MACRO_DEBUG_TRACE /* Store the last 2 places the queue element or head was altered */ struct qm_trace { @@ -164,6 +163,62 @@ struct qm_trace { #define QMD_IS_TRASHED(x) 0 #endif /* QUEUE_MACRO_DEBUG_TRASH */ +#if defined(QUEUE_MACRO_DEBUG_ASSERTIONS) && \ + defined(QUEUE_MACRO_NO_DEBUG_ASSERTIONS) +#error Both QUEUE_MACRO_DEBUG_ASSERTIONS and QUEUE_MACRO_NO_DEBUG_ASSERTIONS defined +#endif + +/* + * Automatically define QUEUE_MACRO_DEBUG_ASSERTIONS when compiling the kernel + * with INVARIANTS, if not already defined and not prevented by presence of + * QUEUE_MACRO_NO_DEBUG_ASSERTIONS. + */ +#if !defined(QUEUE_MACRO_DEBUG_ASSERTIONS) && \ + !defined(QUEUE_MACRO_NO_DEBUG_ASSERTIONS) && \ + (defined(_KERNEL) && defined(INVARIANTS)) +#define QUEUE_MACRO_DEBUG_ASSERTIONS +#endif + +/* + * If queue assertions are enabled, provide default definitions for QMD_PANIC() + * and QMD_ASSERT() if undefined. + */ +#ifdef QUEUE_MACRO_DEBUG_ASSERTIONS +#ifndef QMD_PANIC +#if defined(_KERNEL) || defined(_STANDALONE) +/* + * On _STANDALONE, either or the headers using provide + * a declaration or macro for panic(). + */ +#ifdef _KERNEL +#include +#endif +#define QMD_PANIC(fmt, ...) do { \ + panic(fmt, ##__VA_ARGS__); \ +} while (0) +#else /* !(_KERNEL || _STANDALONE) */ +#include +#include +#define QMD_PANIC(fmt, ...) do { \ + fprintf(stderr, fmt "\n", ##__VA_ARGS__); \ + abort(); \ +} while (0) +#endif /* _KERNEL || _STANDALONE */ +#endif /* !QMD_PANIC */ + +#ifndef QMD_ASSERT +#define QMD_ASSERT(expression, fmt, ...) do { \ + if (!(expression)) \ + QMD_PANIC("%s:%u: %s: " fmt, \ + __FILE__, __LINE__, __func__, ##__VA_ARGS__); \ +} while (0) +#endif /* !QMD_ASSERT */ +#else /* !QUEUE_MACRO_DEBUG_ASSERTIONS */ +#undef QMD_ASSERT +#define QMD_ASSERT(test, fmt, ...) do {} while (0) +#endif /* QUEUE_MACRO_DEBUG_ASSERTIONS */ + + #ifdef __cplusplus /* * In C++ there can be structure lists and class lists: @@ -176,6 +231,7 @@ struct qm_trace { /* * Singly-linked List declarations. */ + #define SLIST_HEAD(name, type) \ struct name { \ struct type *slh_first; /* first element */ \ @@ -202,27 +258,19 @@ struct { \ /* * Singly-linked List functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ - if (*(prevp) != (elm)) \ - panic("Bad prevptr *(%p) == %p != %p", \ - (prevp), *(prevp), (elm)); \ -} while (0) -#define SLIST_ASSERT_EMPTY(head) do { \ - if (!SLIST_EMPTY((head))) \ - panic("%s: slist %p is not empty", __func__, (head)); \ -} while (0) +#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) \ + QMD_ASSERT(*(prevp) == (elm), \ + "Bad prevptr *(%p) == %p != %p", \ + (prevp), *(prevp), (elm)) -#define SLIST_ASSERT_NONEMPTY(head) do { \ - if (SLIST_EMPTY((head))) \ - panic("%s: slist %p is empty", __func__, (head)); \ -} while (0) -#else -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) -#define SLIST_ASSERT_EMPTY(head) -#define SLIST_ASSERT_NONEMPTY(head) -#endif +#define SLIST_ASSERT_EMPTY(head) \ + QMD_ASSERT(SLIST_EMPTY((head)), \ + "slist %p is not empty", (head)) + +#define SLIST_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!SLIST_EMPTY((head)), \ + "slist %p is empty", (head)) #define SLIST_CONCAT(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head1); \ @@ -333,6 +381,7 @@ struct { \ /* * Singly-linked Tail queue declarations. */ + #define STAILQ_HEAD(name, type) \ struct name { \ struct type *stqh_first;/* first element */ \ @@ -361,46 +410,36 @@ struct { \ /* * Singly-linked Tail queue functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) + /* * QMD_STAILQ_CHECK_EMPTY(STAILQ_HEAD *head) * * Validates that the stailq head's pointer to the last element's next pointer * actually points to the head's first element pointer field. */ -#define QMD_STAILQ_CHECK_EMPTY(head) do { \ - if ((head)->stqh_last != &(head)->stqh_first) \ - panic("Empty stailq %p->stqh_last is %p, not head's " \ - "first field address", (head), (head)->stqh_last); \ -} while (0) +#define QMD_STAILQ_CHECK_EMPTY(head) \ + QMD_ASSERT((head)->stqh_last == &(head)->stqh_first, \ + "Empty stailq %p->stqh_last is %p, " \ + "not head's first field address", \ + (head), (head)->stqh_last) /* * QMD_STAILQ_CHECK_TAIL(STAILQ_HEAD *head) * * Validates that the stailq's last element's next pointer is NULL. */ -#define QMD_STAILQ_CHECK_TAIL(head) do { \ - if (*(head)->stqh_last != NULL) \ - panic("Stailq %p last element's next pointer is %p, " \ - "not NULL", (head), *(head)->stqh_last); \ -} while (0) - -#define STAILQ_ASSERT_EMPTY(head) do { \ - if (!STAILQ_EMPTY((head))) \ - panic("%s: stailq %p is not empty", __func__, (head)); \ -} while (0) +#define QMD_STAILQ_CHECK_TAIL(head) \ + QMD_ASSERT(*(head)->stqh_last == NULL, \ + "Stailq %p last element's next pointer is " \ + "%p, not NULL", (head), *(head)->stqh_last) -#define STAILQ_ASSERT_NONEMPTY(head) do { \ - if (STAILQ_EMPTY((head))) \ - panic("%s: stailq %p is empty", __func__, (head)); \ -} while (0) +#define STAILQ_ASSERT_EMPTY(head) \ + QMD_ASSERT(STAILQ_EMPTY((head)), \ + "stailq %p is not empty", (head)) -#else -#define QMD_STAILQ_CHECK_EMPTY(head) -#define QMD_STAILQ_CHECK_TAIL(head) -#define STAILQ_ASSERT_EMPTY(head) -#define STAILQ_ASSERT_NONEMPTY(head) -#endif /* _KERNEL && INVARIANTS */ +#define STAILQ_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!STAILQ_EMPTY((head)), \ + "stailq %p is empty", (head)) #define STAILQ_CONCAT(head1, head2) do { \ if (!STAILQ_EMPTY((head2))) { \ @@ -531,6 +570,7 @@ struct { \ /* * List declarations. */ + #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ @@ -560,19 +600,18 @@ struct { \ * List functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) /* * QMD_LIST_CHECK_HEAD(LIST_HEAD *head, LIST_ENTRY NAME) * * If the list is non-empty, validates that the first element of the list * points back at 'head.' */ -#define QMD_LIST_CHECK_HEAD(head, field) do { \ - if (LIST_FIRST((head)) != NULL && \ - LIST_FIRST((head))->field.le_prev != \ - &LIST_FIRST((head))) \ - panic("Bad list head %p first->prev != head", (head)); \ -} while (0) +#define QMD_LIST_CHECK_HEAD(head, field) \ + QMD_ASSERT(LIST_FIRST((head)) == NULL || \ + LIST_FIRST((head))->field.le_prev == \ + &LIST_FIRST((head)), \ + "Bad list head %p first->prev != head", \ + (head)) /* * QMD_LIST_CHECK_NEXT(TYPE *elm, LIST_ENTRY NAME) @@ -580,39 +619,28 @@ struct { \ * If an element follows 'elm' in the list, validates that the next element * points back at 'elm.' */ -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ - if (LIST_NEXT((elm), field) != NULL && \ - LIST_NEXT((elm), field)->field.le_prev != \ - &((elm)->field.le_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) +#define QMD_LIST_CHECK_NEXT(elm, field) \ + QMD_ASSERT(LIST_NEXT((elm), field) == NULL || \ + LIST_NEXT((elm), field)->field.le_prev == \ + &((elm)->field.le_next), \ + "Bad link elm %p next->prev != elm", (elm)) /* * QMD_LIST_CHECK_PREV(TYPE *elm, LIST_ENTRY NAME) * * Validates that the previous element (or head of the list) points to 'elm.' */ -#define QMD_LIST_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.le_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) +#define QMD_LIST_CHECK_PREV(elm, field) \ + QMD_ASSERT(*(elm)->field.le_prev == (elm), \ + "Bad link elm %p prev->next != elm", (elm)) -#define LIST_ASSERT_EMPTY(head) do { \ - if (!LIST_EMPTY((head))) \ - panic("%s: list %p is not empty", __func__, (head)); \ -} while (0) +#define LIST_ASSERT_EMPTY(head) \ + QMD_ASSERT(LIST_EMPTY((head)), \ + "list %p is not empty", (head)) -#define LIST_ASSERT_NONEMPTY(head) do { \ - if (LIST_EMPTY((head))) \ - panic("%s: list %p is empty", __func__, (head)); \ -} while (0) -#else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#define LIST_ASSERT_EMPTY(head) -#define LIST_ASSERT_NONEMPTY(head) -#endif /* (_KERNEL && INVARIANTS) */ +#define LIST_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!LIST_EMPTY((head)), \ + "list %p is empty", (head)) #define LIST_CONCAT(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *curelm = LIST_FIRST(head1); \ @@ -753,6 +781,7 @@ struct { \ /* * Tail queue declarations. */ + #define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ @@ -787,29 +816,29 @@ struct { \ /* * Tail queue functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) + /* * QMD_TAILQ_CHECK_HEAD(TAILQ_HEAD *head, TAILQ_ENTRY NAME) * * If the tailq is non-empty, validates that the first element of the tailq * points back at 'head.' */ -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ - if (!TAILQ_EMPTY(head) && \ - TAILQ_FIRST((head))->field.tqe_prev != \ - &TAILQ_FIRST((head))) \ - panic("Bad tailq head %p first->prev != head", (head)); \ -} while (0) +#define QMD_TAILQ_CHECK_HEAD(head, field) \ + QMD_ASSERT(TAILQ_EMPTY(head) || \ + TAILQ_FIRST((head))->field.tqe_prev == \ + &TAILQ_FIRST((head)), \ + "Bad tailq head %p first->prev != head", \ + (head)) /* * QMD_TAILQ_CHECK_TAIL(TAILQ_HEAD *head, TAILQ_ENTRY NAME) * * Validates that the tail of the tailq is a pointer to pointer to NULL. */ -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ - if (*(head)->tqh_last != NULL) \ - panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ -} while (0) +#define QMD_TAILQ_CHECK_TAIL(head, field) \ + QMD_ASSERT(*(head)->tqh_last == NULL, \ + "Bad tailq NEXT(%p->tqh_last) != NULL", \ + (head)) /* * QMD_TAILQ_CHECK_NEXT(TYPE *elm, TAILQ_ENTRY NAME) @@ -817,40 +846,28 @@ struct { \ * If an element follows 'elm' in the tailq, validates that the next element * points back at 'elm.' */ -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ - if (TAILQ_NEXT((elm), field) != NULL && \ - TAILQ_NEXT((elm), field)->field.tqe_prev != \ - &((elm)->field.tqe_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) +#define QMD_TAILQ_CHECK_NEXT(elm, field) \ + QMD_ASSERT(TAILQ_NEXT((elm), field) == NULL || \ + TAILQ_NEXT((elm), field)->field.tqe_prev == \ + &((elm)->field.tqe_next), \ + "Bad link elm %p next->prev != elm", (elm)) /* * QMD_TAILQ_CHECK_PREV(TYPE *elm, TAILQ_ENTRY NAME) * * Validates that the previous element (or head of the tailq) points to 'elm.' */ -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.tqe_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) +#define QMD_TAILQ_CHECK_PREV(elm, field) \ + QMD_ASSERT(*(elm)->field.tqe_prev == (elm), \ + "Bad link elm %p prev->next != elm", (elm)) -#define TAILQ_ASSERT_EMPTY(head) do { \ - if (!TAILQ_EMPTY((head))) \ - panic("%s: tailq %p is not empty", __func__, (head)); \ -} while (0) +#define TAILQ_ASSERT_EMPTY(head) \ + QMD_ASSERT(TAILQ_EMPTY((head)), \ + "tailq %p is not empty", (head)) -#define TAILQ_ASSERT_NONEMPTY(head) do { \ - if (TAILQ_EMPTY((head))) \ - panic("%s: tailq %p is empty", __func__, (head)); \ -} while (0) -#else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#define TAILQ_ASSERT_EMPTY(head) -#define TAILQ_ASSERT_NONEMPTY(head) -#endif /* (_KERNEL && INVARIANTS) */ +#define TAILQ_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!TAILQ_EMPTY((head)), \ + "tailq %p is empty", (head)) #define TAILQ_CONCAT(head1, head2, field) do { \ if (!TAILQ_EMPTY(head2)) { \ From nobody Mon Apr 28 12:23:44 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 4ZmN0K0KLTz5vJ0r; Mon, 28 Apr 2025 12:23: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 4ZmN0J4DZ7z3gCQ; Mon, 28 Apr 2025 12:23:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/emBpGNIUfYnwzEFS3Y1jLgY7ggelT4nBeaYiX4hREQ=; b=eMmY+d9IRNpsTPy149yMBF9jpXmgmZ4mgwKsKuvdpiE6sK72SLs8SObpJnlEmtyYdRfbrK CIlrnnQszDNG7XNCK63A4II1WU9o+OdrpEXBuVnqs/X0Gw/vrNHITL6b10lIOG/jCoJCRL usH3mUyMl/RGL362UMPt607UbwY9J8OsLseMgBEC9XKioUnbUu4Dy6UeLsNCRB1fE+bsSo h24aZosST24BUnRbJwCZIlX/7GkhOGeYRUKjCq1HlbI6WNyGYFNy8A9dLg+UW+Svk3GEi2 /QOKkstNc5Jd1fRCd8eQ5YfDCEGY++QDiTRKta59MhdY1Y91aS8aRrwwFvj8eQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843024; a=rsa-sha256; cv=none; b=Lf2PzRLIzE3M039ScfBzznqRGiLn+/vzR7r0/JQeYDz7OxLfSvHTagumXdGNNt3KJXXQzo U/Fe10XP/g+lMDkZldgspIpFjf1h4K62vZe/3iKEDqicmOWhdMI5gHiYtAaMURBCIVPy5Y it7ZNNH2tzL7ZvMIkWjIIkP2lUkYTNKS35UyZVoiBsI1EhUgmaOWqoN8siWTLbPbVl3PAV 26dfSKguCKS9eRkRbcWwgvQHlfTSHoP7GlnxszaiC+t4mMvuDf4U55v7Wxoj2/UsiyQtJm 52FonFGucvQZmBBd5ROnFdZlPiLh/NNsbnq9/EQx2uOe6eyem38E04eQBNZj4Q== 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=1745843024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/emBpGNIUfYnwzEFS3Y1jLgY7ggelT4nBeaYiX4hREQ=; b=afYGHlRyzlRrbIdc+ZAInMcbo7Z1AEB7vppII2UkDRhfliml6nQtgFt1fu9ok674Bsjlm2 csduoxSJCnkNNMrUFBe28OnEdDQGl/DZe5aXQFrrLdbV0h6KXZIO+LWLsmhFb4DhF4w9mb SwIpp0xT9BshJboL11juXDGVMVbzV3HZnimFooh319RPyWK3cRFt4hxAJxFUUeJBngt1OC voY998CY+ZDFHRsP/foZj7HaPj3gFR68QuFnTYCZwqYAVFHve264QfLNWthrN7IrIqH1Un cG0F546siHQx/cQ6swtr8cqmeyOJckEDQKd4QI5nB46EycHyc1BURiD0JvQ4Ag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0J2rr2zbhJ; Mon, 28 Apr 2025 12:23: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 53SCNihY025906; Mon, 28 Apr 2025 12:23:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNidf025902; Mon, 28 Apr 2025 12:23:44 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:44 GMT Message-Id: <202504281223.53SCNidf025902@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 613d66b5e17d - main - queue(3): Wrap QMD_ASSERT()'s guard with __predict_false() 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 613d66b5e17d92e5304fdc9abe4c62ba015ebf31 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=613d66b5e17d92e5304fdc9abe4c62ba015ebf31 commit 613d66b5e17d92e5304fdc9abe4c62ba015ebf31 Author: Olivier Certner AuthorDate: 2025-04-22 14:26:22 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:19:43 +0000 queue(3): Wrap QMD_ASSERT()'s guard with __predict_false() Such a guard is bound to be almost always false (obviously). Reviewed by: emaste (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49974 --- sys/sys/queue.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/queue.h b/sys/sys/queue.h index b4814706cb76..a29ad6b94f03 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -208,7 +208,7 @@ struct qm_trace { #ifndef QMD_ASSERT #define QMD_ASSERT(expression, fmt, ...) do { \ - if (!(expression)) \ + if (__predict_false(!(expression))) \ QMD_PANIC("%s:%u: %s: " fmt, \ __FILE__, __LINE__, __func__, ##__VA_ARGS__); \ } while (0) From nobody Mon Apr 28 12:23:45 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 4ZmN0K6MKtz5vJ9X; Mon, 28 Apr 2025 12:23: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 4ZmN0K4cHJz3gJn; Mon, 28 Apr 2025 12:23:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843025; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eSzD73/fOVo55HZKGdzp25UTesmejzfetl49OU2XD+c=; b=kUI4sEfT7/48NE7UuFDnY9qHl8SGd4QUnvAPRgKL6nbanTtMielZ106nriR6gUynQQpHA6 NkQwq/KcmbcSMEO1NkJ41AOE7DiX3QGlL2ITxUMo+35/1k3gTzNLjugi/7CuTgixraLeqt KHani9KfZh2OZJ599IDwXtsHecCWrNgrFzxXl1Q7IB8JPXGg1pumm8yo8zAakPaOU+8tw4 i/+Pvh/5G7bNFxyHLeBo71hlMjI9TWSPb0p9KJc+f+NVSWbsORZiHwRbdh00ThAQpjhMpw WacWLmNc3x8ThnuZF8GfTDx+WetOBMWLNSYOnzv5eYFzVoBc3vxKS2M9dTIGdw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843025; a=rsa-sha256; cv=none; b=IUJwmT5ZaZLd/NFTKeCcg+VhQP28T5VjImR6pBYbNsigJcbQSBFq57cdZJb/dnkv1CY20Z kqt66CzKUg0BpAvWcQ+kyZk4H1+o31+xwgSHoUeUsp1uwZfeAh8HEZgcuXmLQyYfcjfZPd R60GNXEuMN939tgmu+7f+KCk+v48fD+sogYDbQR/cB9NIN2+D0phSNYlLpTDjduPfNxUsE Q52PJG6n8lIl/heGLz7N7Lr4cVqWJCqA5p3fwT+GvnIFUHJdDui4zTa4XN0rK/AK4NqHig Dbpgo0HTyk5kw8E46mDEvmts9/OFri5A6l3jwF0d11kfdjPnkUGN8O2BOIyKeA== 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=1745843025; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eSzD73/fOVo55HZKGdzp25UTesmejzfetl49OU2XD+c=; b=YE8sUxMMulstJ9lIvX+4gG0McoQueCV+h+KcWapB6uz6muAio6uGnpD5pbb9YR+ZhLbL6t UslLXC5Tka48hg2txt/rjMe08jf14vvyYL9oBL0nQ1FNfM2XPgUXPAAC4bxqOERfERyDRr V4cphXnfI7aQplJE63bF5AcUoBSN0g8oyVZJYDyuJE6xmeqMoHYXmLpOEHCLnJXuY+lfKH E3XWkY/moB1B/k2jxmNhlYSHP4jETZmtKkmHSxrJLnHQ6oygDGlhNgTmjqLJ1FzJajyTnp Ri4emmYvNqU77A8DbxUsJoNlY2PgOk4+yM8aLI/qmrKD0nyxmF9S195Ljm0KIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0K3dxfzbSq; Mon, 28 Apr 2025 12:23: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 53SCNjuu025940; Mon, 28 Apr 2025 12:23:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNjAY025937; Mon, 28 Apr 2025 12:23:45 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:45 GMT Message-Id: <202504281223.53SCNjAY025937@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 9f0c9349b907 - main - .git-blame-ignore-revs: ps(1) whitespace 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9f0c9349b907ec507a80d6b659ee1c8c194b3cf5 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=9f0c9349b907ec507a80d6b659ee1c8c194b3cf5 commit 9f0c9349b907ec507a80d6b659ee1c8c194b3cf5 Author: Olivier Certner AuthorDate: 2025-04-25 19:15:49 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:22:05 +0000 .git-blame-ignore-revs: ps(1) whitespace cleanup MFC after: 3 days Sponsored by: The FreeBSD Foundation --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index a2e4845c1e59..bf063070f6b4 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -8,6 +8,8 @@ # # This file is sorted in git log order (newest commits first). +# bin/ps whitespace cleanup +0d320eb5edc37f6c1bfa5eabc0309350b87c08ad # reformat libexec/rtld-elf 7e2f38311e62b1a3ba4a023042f2dc36e27cdd06 986c96b54b9ec1118d285b723f53c7451a4c0772 From nobody Mon Apr 28 12:23:46 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 4ZmN0M5Z8Cz5vJ9c; Mon, 28 Apr 2025 12:23: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 4ZmN0L4s3Vz3gCj; Mon, 28 Apr 2025 12:23:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Unxqs3Xe619J3QFR1NmkjFXEW1spFHoWlTa6aLsQR7c=; b=uFnDYt1sd3D/xY+gy+9YKNzMRALy0epyXF9h86eCj4A9zHrF3e20TblZjjYYWHzrrtzSaQ E3EI6o79od1mbXWKD6cPEHMowWJE6y7nFeCmqJDkUQ4u1Ok0ehQ4z5TagWFSoMhqFiNb3l QDJJHpOsHi3U0eaWPJPDJDrlWHQt+mxn0jSeBpN2cmeA4NhMB/9lhy92LZ7NDKYlAyUTBe B2BjtuN8iWRn2KCyTNAPoOcbjARU37XZHe7vjsE25BY6f91rMJSqjSAyZyjo2WCM2yfh+n ntKYQaSc7K/JsiEdmlVEUBrA7qf6QT5rOKG2MF0/pT6aPNolJvEbO/Eexy7S0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843026; a=rsa-sha256; cv=none; b=b/NXMO7bG+r3wXzoUzFBjzM68HrFr0NOusM5I+d4i6pOkJYfpWgESvX7DJKqt/Lxzu58J9 RSyG5NMeN+E72yW5C8qLc2nOnuy6Qhdncrh89QMO+PJ88+iJeMiofTqEsh++o2N4NLcR+S 160/GzzUWvYuWACnqTbce3L9ir2e5KCTQr6/cO9qZRm7BCybQGoF4NoOEDvgy3OeRLRhsf /VB79BUmdUIboqR/AOjyHm7Mz3eQ53ZrvBbOngcRjIUK7Ee5w9g9pyl5VpW1GjdMGXZPF8 8W2aDUvOXiLq2yiaet2+RCPJ1ZiW2Dl5LR4bUo/i79gO4IjR0fHn71mnn6ufOg== 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=1745843026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Unxqs3Xe619J3QFR1NmkjFXEW1spFHoWlTa6aLsQR7c=; b=YqXAXKqkcOoFf/wa/GVrFVkPF7aETyJv22tmGV6EX7pFlVI5Y08DpTbmsmbYR30tCJrHfe ROhI7iqWTSs6PHoa6hk8Hsgcnb67lpmqNdduefvLitgzwhD/Ho6HtwW4PdGksecL/lNxhs XLDoPKfCAt9jRX0oDA+smgR5HxlJl0P8g4IMxntUgmS9H+Qh/2nFvy4zr4TZ/sJAts032e siti4+mDsQQfIPdTuaGV/Jz7tNDRFWYJimhrwhRE/7B4CnQ3ih1YOAjnrFzI4sC1Dwa3XJ fBDQ1hqQrQW8YDwiCTNCgRRUy/pb27qAdUL9h0ozDYCm0AS43dxxgHijqyegZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmN0L4Cr8zbPq; Mon, 28 Apr 2025 12:23: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 53SCNk15025973; Mon, 28 Apr 2025 12:23:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNk7I025970; Mon, 28 Apr 2025 12:23:46 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:46 GMT Message-Id: <202504281223.53SCNk7I025970@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: ddaf2f562fa0 - main - .git-blame-ignore-revs: queue(3): Single space after all #define 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ddaf2f562fa0a162fae95779d76b425f464e3a8b Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=ddaf2f562fa0a162fae95779d76b425f464e3a8b commit ddaf2f562fa0a162fae95779d76b425f464e3a8b Author: Olivier Certner AuthorDate: 2025-04-25 19:18:05 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:22:10 +0000 .git-blame-ignore-revs: queue(3): Single space after all #define MFC after: 3 days Sponsored by: The FreeBSD Foundation --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index bf063070f6b4..52799d554460 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -8,6 +8,8 @@ # # This file is sorted in git log order (newest commits first). +# queue(3) single space after all #define +a4df0830d74dba9d20c01d8c108bddeb1ecd62cd # bin/ps whitespace cleanup 0d320eb5edc37f6c1bfa5eabc0309350b87c08ad # reformat libexec/rtld-elf From nobody Mon Apr 28 12:55:45 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 4ZmNjG3Lc1z5vKvn; Mon, 28 Apr 2025 12:55: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 4ZmNjG0RvXz42ql; Mon, 28 Apr 2025 12:55:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745844946; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I0EZLcNCtnE7xGo/E7w6rxBGWxMd3OmNvU6foLRd10I=; b=R8sQLj4J5I93mzbn1/WlS4DqnvGllZi4l1p7lBUHGtDNBR8oP2tC6FQaZIdzBaTOysOYrO an4pSYm4RPvc6SSvZWpa4JUG4dZea8QhnY44uhpFA3KgB6K3VNjMZvElF56/4Wzw9LiJZ5 mWURyW1mdGZhW0ifNXKtHsXiww5eklhwYt04j4tt5iXJel/U6DoKdJc9HjOT21Y/Un+hhi K/DMAwz7rn/dX0Xe8ocdRGz2XNLpwMYI9sI/7gxhZciSgBwaoQ7kybu3JFSNsl+4NywwSl HH+IDcRQ12OvmOEcaornmqIdMFi1dYMx0d2F835CbNvqh3kDRYH/Bri/y7fPBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745844946; a=rsa-sha256; cv=none; b=DjNkmTegvqjJmCxYG8Ci7kxTKf509hCHpZ1ltWDDniF85ghbRHwLhkBwM8LccROrckg8Ux 0dvDT+MQwvuLsZXbBZ3F+M2nDJFJfWlZZw4f+j5JkXLafiq7T9veRQIIfHz610yC/giSsa 6gb0DWFAZ7tyowdjqywb2EMtJLmsU8RDO9gE6BxvpNZ4ndBrdhgkVP9UpCZ8ij3fMAlK1v 3f641/0VnUeOczdM71JjTaVYej5UlPMPif6KuHyDJonhaG6BMnso/6w6sxOEhY3IzaWh5f rJN2zGmVWn0U3muJlIL1uHkcyEzLyrjW6+mY+52mdZowjKxCKV+MELWH8RyVxA== 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=1745844946; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I0EZLcNCtnE7xGo/E7w6rxBGWxMd3OmNvU6foLRd10I=; b=lKPLdZM2RaQCTm3dtAHs1iUGZLvEJNIkoxJLGiPy+hyo6hlRf9A1ZKIq25mJZ0hxa1mpUj 3VNV2Z5t1w46Z5gpjVGmuq9RkW7Bpupoin7kwPvlS5FE8sWLWER9zJlK4tJQyvhSe7IESi 2KaCqsRpHZYO3dBgQYimPaP+BWKXFY/588JwHjWKlFiNNkHfNbwHY1UZLo56gulTMONUCT dTCWntABMhzGlkNa+zOYMQeg8wJs2fTqgm7b1Uxpwu4yVseT0qtcdpsMfczwA+pmzsOkXW uDUvuQyTYhG3eV6yufwd8q3rs+Q6cg07HOAWZGBoJFTgoIuu3d2VUFKZE6+HMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmNjF6W1szcPK; Mon, 28 Apr 2025 12:55: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 53SCtjaA082737; Mon, 28 Apr 2025 12:55:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCtj72082734; Mon, 28 Apr 2025 12:55:45 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:55:45 GMT Message-Id: <202504281255.53SCtj72082734@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: b222e491178f - main - ps(1): Add copyright 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b222e491178ff46ddec1bded5f3fe597328c85da Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=b222e491178ff46ddec1bded5f3fe597328c85da commit b222e491178ff46ddec1bded5f3fe597328c85da Author: Olivier Certner AuthorDate: 2025-04-28 12:55:00 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 12:55:00 +0000 ps(1): Add copyright Where appropriate. MFC after: 3 days Sponsored by: The FreeBSD Foundation --- bin/ps/keyword.c | 5 +++++ bin/ps/ps.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 3c19912144ac..f05e5245f695 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -3,6 +3,11 @@ * * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. + * Copyright (c) 2025 The FreeBSD Foundation + * + * Portions of this software were developed by Olivier Certner + * at Kumacom SARL 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 diff --git a/bin/ps/ps.c b/bin/ps/ps.c index a75ea512ad54..bb5102729957 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -3,6 +3,11 @@ * * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. + * Copyright (c) 2025 The FreeBSD Foundation + * + * Portions of this software were developed by Olivier Certner + * at Kumacom SARL 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 From nobody Mon Apr 28 14:34:13 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 4ZmQts5Lc0z5vR5q; Mon, 28 Apr 2025 14:34:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmQts4fRwz3qkf; Mon, 28 Apr 2025 14:34:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745850853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FyWl/38t3E38Zw8VL8QHVTEmTlKSvaH1IqT09Lr0fVo=; b=CYGEIkh9At5+YodKtDJ24pGdFdCwmgnm8938BjB4sgGVxzsTJgP1NpfzfYEEkv9E0by2K4 Uejqr43+aj019avYVRsRdR3taQPmPVzuDFTofzK7KmtMtfZcMEsio5s4kmqlJDYBkBM5bk MULOixkSQYQn+LQ3eMMfvxhPhxAPrYgvoXhcOmeL7S1J9qLLfnk2h961y00Adrm3NOdYDn aG/pUosYVcINlIxqM0Hs8Oyeu0HX6NNyfORhPYSNxY4JfLzHr+GWWXslqT7JY2NkpltaKX wQZ0nfiw66Tr8balN900LL586rhrFFtRdu/ClLMehJ2fJfWLHL1IAr+6PAu1/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745850853; a=rsa-sha256; cv=none; b=r1vnB8E5mkH0VOUeOJGFcPkaEj2M/l8g/zvkkO8i+gXFYAmk1FkG4JSKoXVfXZkzZbGMa9 LJ2hkNXnzTWSgmM0Ac/VP5RFnpstcgpIjsPHSzoKOEI5s1eVANEPZJHrOeNYIXceiHw0q+ s/t+G+poV2tzJWptZbQoAkNXkQSSAYusMPy3bE5Nb5K6civUD9sWh5VgcFno4IRBep257v Z5eqar7wuv6ZQ/T7VXT5AuxZzQmYkYHFjnHjQ1ubMfcxtrGW4e+D2bnDcXgfnFCeCmRLNA tGiliAHD2euQjKZrcepQxZXIe2lw2X/EHwW0cHu8BOiKwuu+TEEREhYESDNpiA== 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=1745850853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FyWl/38t3E38Zw8VL8QHVTEmTlKSvaH1IqT09Lr0fVo=; b=EXbLHlTK4gBXkExbWasdhIN+IOJ5MFiDF4EH9fqIXYwt9m21I67zDXRw+vy9tO4RPuT80L 5vhgw397KCdUNlPyuwXh+eaEMZ6mvJIHMGRGHLzUaE2SsLXMnNBEBUC6H1xF0phXsABwWq D6LBeiN9enaNIkCqErftnfO3lhN/9ZC2yDcjNEzpsf9EUlC1LWR7QHMIB6WABiXhkq05mw KK6SgeRyTZ30zj8AMFxIcA1WgNoI+u7tmPs4wI4AH0Rf1RpPZ2k5iM/gcHapE33tpPh8EI Sfu4RRSZcEpx18+fcD+MoINp9+YmQCkBMxacHJ/0DYsJXjZImjFCb36tzJb62Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmQts40G9zfrB; Mon, 28 Apr 2025 14:34:13 +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 53SEYDvH069313; Mon, 28 Apr 2025 14:34:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SEYD54069310; Mon, 28 Apr 2025 14:34:13 GMT (envelope-from git) Date: Mon, 28 Apr 2025 14:34:13 GMT Message-Id: <202504281434.53SEYD54069310@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 2f721943bf20 - main - mpi3mr: Broadcom's MPT-Fusion version 4 is amd64 and aarch64 only 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2f721943bf20e53b0ba7b5032a2900d0beb67413 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2f721943bf20e53b0ba7b5032a2900d0beb67413 commit 2f721943bf20e53b0ba7b5032a2900d0beb67413 Author: Warner Losh AuthorDate: 2025-04-28 14:27:18 +0000 Commit: Warner Losh CommitDate: 2025-04-28 14:31:42 +0000 mpi3mr: Broadcom's MPT-Fusion version 4 is amd64 and aarch64 only Broadcom's MPT-Fusion version 4 driver only works on 64-bit systems, and has only been tested in amd64 and aarch64, so move it's building to just those. I didn't notice this in the review and neglected to test those cases (since I knew it didn't work there, so was a blind spot). Pointy-hat: imp Fixes: 9cdd40759617 Sponsored-by: Netflix Sponsored by: Netflix --- sys/amd64/conf/NOTES | 3 +++ sys/arm64/conf/NOTES | 4 ++++ sys/conf/NOTES | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES index a6f12aec7dc8..e0a9e1b77d93 100644 --- a/sys/amd64/conf/NOTES +++ b/sys/amd64/conf/NOTES @@ -68,6 +68,9 @@ device tdfx # Enable 3Dfx Voodoo support # device smartpqi +# Broadcom MPT Fusion, version 4, is 64-bit only +device mpi3mr # LSI-Logic MPT-Fusion 4 + # # Network interfaces: # diff --git a/sys/arm64/conf/NOTES b/sys/arm64/conf/NOTES index c3e1930836b9..5f29112d535d 100644 --- a/sys/arm64/conf/NOTES +++ b/sys/arm64/conf/NOTES @@ -97,6 +97,10 @@ device ice_ddp # Intel 800 Series DDP Package # Etherswitch devices device e6000sw # Marvell mv88e6085 based switches +# Storage +# Broadcom MPT Fusion, version 4, is 64-bit only +device mpi3mr # LSI-Logic MPT-Fusion 4 + # MMC/SD/SDIO Card slot support device sdhci_xenon # Marvell Xenon SD/MMC controller device aw_mmc # Allwinner SD/MMC controller diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 9afb04ce6ef1..d85980e4e122 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1592,7 +1592,8 @@ envvar hint.isp.0.topology="nport-only" envvar hint.isp.0.portwnn="w50000000aaaa0000" envvar hint.isp.0.nodewnn="w50000000aaaa0001" device ispfw -device mpi3mr # LSI-Logic MPT-Fusion 4 +# Only works on aarch64 and amd64 +#device mpi3mr # LSI-Logic MPT-Fusion 4 device mpr # LSI-Logic MPT-Fusion 3 device mps # LSI-Logic MPT-Fusion 2 device mpt # LSI-Logic MPT-Fusion From nobody Mon Apr 28 15:14:27 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 4ZmRnH3ZlMz5vT11; Mon, 28 Apr 2025 15:14:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmRnH2rlYz48m3; Mon, 28 Apr 2025 15:14:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745853267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3L1UPJEYvu1TCJ/lCly0xKFVYfD3gjtF8cJhiUuwtig=; b=Hs2vr0RaYGWLIz5fpaocD+DZxWHo7rHwypolgxxqpmUJtorVszLaAm+dTnDQ9ti3ROQslu fKOGJcEwdTFMiOswv4JGJH2RTViYkw2GclQSFBDB46Whpaqbfo+OMSwaVgLPuzITAYlcZS yMFE7uammqaGwUTie9iznQEQlqzAdqJOStgjqEEXoU0YYmWzv2hDsEL8i18rl2F8jJQcMO cGlaEqMST3eF8pCcjHzZNLX8U5AuHxBwsAEkvCnZGyoblpr/7g8GHKh0o1eY5EoJIZCpo8 WVoH+3z3MBuDRKe9aaz3I9UrClK1gCK+S9ZxJvjE2cEcPHSp/wqYKulu4a8SsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745853267; a=rsa-sha256; cv=none; b=aGZzOT1NeLODzJjhs64Sho9Z73s87tMdapIdZbhe/O5r0LNJ2nzpP8JubH1Bja1OCKpWuT Q+7BwYLQOKIT7k/4IzOxaxghsVR1+wXvL+7VZE6PBVGJUuzSI1EgABQPxqP6F3g9cx4f/h 8CFGs9udWE4ycSihAK1S/eGxgMF+DoEG0pBiBAX0gCl+gxEhBV9EvMpOxcOEYZ8E/Au8sN oPb+MmsrTGgh86bX76UGdqVlXz4ucUI8JAt8HAavYDryygr77/Iy5IyOKsc2PqSCB31Qpy SLDcY9Sc3vnNnyWowQkxM95wwa6oGngPBW0i8tH0unNYZGJIwhg3FKx29S9M6w== 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=1745853267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3L1UPJEYvu1TCJ/lCly0xKFVYfD3gjtF8cJhiUuwtig=; b=PL+1LcStGTnjfYOPHMApMonikpO8S5hmtCTSE3p1edA26RnEWaSYjFpuz28WfwHdfSp9zy 5UeD+bY0t/AOOML5ZmtWRFuq2KRhtZArQVPSsWXH846nB2yrolmwZeJZ/DCpvYQfVLO7eR XoRlh93bFr110kpXWwu/aMWN6yaLhR0rltsRRgHutYXZDm0PEKdivDxJSoaU1NgGIiCENA FTFLNsBPpi1Ja7HJc872S/OawHJT49xFSTFbUVbP6USPNo6iasmkfrd5Nm+YmxlZTA3kWS 1XG4LYE1t9JPnQ7wKGlNPzB3n+mckV5iLrTe+2Dhn6KstcjcryANeP7xu2mH7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmRnH2Rsnzgkp; Mon, 28 Apr 2025 15:14: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 53SFERqj044920; Mon, 28 Apr 2025 15:14:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SFERBW044917; Mon, 28 Apr 2025 15:14:27 GMT (envelope-from git) Date: Mon, 28 Apr 2025 15:14:27 GMT Message-Id: <202504281514.53SFERBW044917@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: eee8cd8c2d6b - main - ps.1: Update .Dd 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eee8cd8c2d6b3350b1d88e33007f31a1422b8459 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=eee8cd8c2d6b3350b1d88e33007f31a1422b8459 commit eee8cd8c2d6b3350b1d88e33007f31a1422b8459 Author: Olivier Certner AuthorDate: 2025-04-28 14:58:58 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 15:13:46 +0000 ps.1: Update .Dd Noted by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation --- bin/ps/ps.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index ff9a847ffd86..24d8f98b1f73 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -33,7 +33,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 14, 2025 +.Dd April 28, 2025 .Dt PS 1 .Os .Sh NAME From nobody Mon Apr 28 15:14:28 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 4ZmRnJ6mZ2z5vT5j; Mon, 28 Apr 2025 15:14: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 4ZmRnJ3T8Vz48mC; Mon, 28 Apr 2025 15:14:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745853268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XlamLSCYx1h4R/VCSpDZTmjsoD8saS/lRPmxUnReYxU=; b=g+LFY36iAJDR6bzd6I3YPfSofHzknEydTJki369jg0bpZu4j6bSiqwUc4/2IgzJAWcz7Cj JT0vkxBaa+Fe2UU4kDXjoNxvKCKxZoiRBHIYBr93m5oD3Bg+FlOT3zQnpvRw5eJMlJrCYE GG8lmasPd0hTpoS8b5TJMNBtO/Hy+HLdETUNtp4hDTNsdp1kwHkhHSi+ZLOPtpJ1HZziTz SlyP3zElaNtLs4Q2ukm8UatghWSXan6uD8/kPC0VZmo8XcI/pUJt1yjjrWRqv3WR1lSZjE CD+M5is56mv/kkUHX/IhHjiDokm7ZvUsJ/C/69NSxWzk42Yr5cwkylciWFXxjw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745853268; a=rsa-sha256; cv=none; b=VDU/wvTmDPVs9yump3FscnNFtXXi/cwXCANYi2MDxuZjt2So1E4vUq38eUPN/C7qgGwvqS 43JyeKgEzdfZlBMZVnKGSx0JoLjD3Ye5xY826swNiEwKmXMgX8k7cO+KyAa/rL2jM5X/J8 VdeeKkdW9PSk8nQtYjYHc0GATfoLvYhZTP1e3LE+EoI4BJMKbtGBwXt+3hnXGQMtPMVUB+ om70BmGZXzFRuPpA2Si50jVdaZspwf9jjUfU7HiClzuEosUSyxqD2X3XXLWxhmBvSrkFzt xwdu52rKccQHU2XmYfkkM47iVlHZaAsr8gAxtfX9rWsA4stQ9APLgbkaZjvZAg== 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=1745853268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XlamLSCYx1h4R/VCSpDZTmjsoD8saS/lRPmxUnReYxU=; b=wfGq0bHTj9P0q7M9hC0qFZqL2HHer/gODKewZkjiOTBlfk/drdxrWP5C9pAeruHNtyuoWt o50qP3wEkScEuEcKTPydeY7t6bnRa4vczyePQ2E/7JntXugoyAYUtHtr2iUJclK0alQkG/ zCOKs1iPwX0Y93hITkaF4ecTxMZwjgRnulSQYHfEBDIPGcgxgCmZiRPCdLFqM/xC4h3SWk M4B5IwMSAJF+yUwEbBC/4rMMtotZg2nY7pXCAIKUNsXeVBrSI0JbofJpB5WW+SJusGUL4C eOCY4rxAY+xOhzGsNT/IdR2ZPUt45zzdE9C5fbOUF9F/GBL06n08JI+dHmxWkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmRnJ31GJzgmg; Mon, 28 Apr 2025 15:14: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 53SFESxh044960; Mon, 28 Apr 2025 15:14:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SFESZi044957; Mon, 28 Apr 2025 15:14:28 GMT (envelope-from git) Date: Mon, 28 Apr 2025 15:14:28 GMT Message-Id: <202504281514.53SFESZi044957@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: c3b03044e7e3 - main - queue.3: Update .Dd 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c3b03044e7e3a0a37159acf97d2f94d3a21449f3 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=c3b03044e7e3a0a37159acf97d2f94d3a21449f3 commit c3b03044e7e3a0a37159acf97d2f94d3a21449f3 Author: Olivier Certner AuthorDate: 2025-04-28 14:59:11 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 15:13:50 +0000 queue.3: Update .Dd Noted by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation --- share/man/man3/queue.3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index 53b4a3eab120..8d4492b8be69 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 10, 2025 +.Dd April 28, 2025 .Dt QUEUE 3 .Os .Sh NAME From nobody Mon Apr 28 15:32:44 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 4ZmSBQ2yHqz5vVNw; Mon, 28 Apr 2025 15:32:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmSBQ1W4yz4Kc8; Mon, 28 Apr 2025 15:32:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745854366; h=from:from:reply-to:subject: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=zkJUmrPqAqrvac12cIghNPC3XmUfXtYYMJ2bWb3ytc4=; b=YUhhMq61IKuWYQEIt7EuK31ZuJtaXjn8W1Vv3hki3X5WrOIl3QDUqMF4oqJ/lciXbY9sN1 Bm2OoZ9egv8oFZ0UrDOQFDeljor/JB5ytidAeheuPi3TgU8fFrHo+MMcevbP/p2uzhcVAd rocbgzY3Xr/6ktDMMEfi1w8DAk+Pa1rA7rihu6vZCNRTiw3q8e8+nBwyM3afgcJ8OTXJHY RVsZI6RMSohS1Vqo2VBH62/gLMcF5FQJUFvgUPOwe4BNrRI23+J7kpubQLDzpVIByuf15l F5wkkvMlTMK/vhYtEH2YEUjN6Xycj3wXAXEa3OzY951FHoFUFQ/I1+Sbxt4zfw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745854366; a=rsa-sha256; cv=none; b=Z9Bz/TvOJ/zKFa9WEsSt/nu9FYD5jqzCmQw2QbLtvEUYzCH0LTcoCpDgyZQx7Nisy+RGrL vJlJNcNN4qBkIUOIih7p7SWeAWlhiZn78GbObl/EA49uurG3t8sDaRRihhpzFiNzpna131 arXDc7I5s8yrDYDM5ynXclJuHvOndcFtoNSqhABrs2AGjRxXStQt4DDwU8N+kgkC4PLLxE hI3N8EKPG2wvcLjFqcXtGYd1kAJJz6CiXGu8lqO46voaFD6K5ASz3jYP3hd0K3qxt7h9Tk v2PiGh8MRhfheztBC2Hpa1/PGTS4P62QfUZ2Hut+O/Sg/Rd4rMOxT7W/MzQ5Aw== 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=1745854366; h=from:from:reply-to:subject: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=zkJUmrPqAqrvac12cIghNPC3XmUfXtYYMJ2bWb3ytc4=; b=qhZdenZbwvptm66OfeKnEJt+kT16IIUfNg1HZqKCLOvIrUySNvqsPB81Zm3c0afho2lKMZ 4NtFF2X/4Y9tnoWoiEDz0e9JBvrjluk/IoD1keCe5k8q+ZfzLBiiOIYWDPBpC6FzcV9bNZ HnlSpgMyH6cgeyjAnMzm9r7l9BpFLktw0ViNdiHmHrGOUH72u3nF154cFPQ/8VSDoKq7Vc lgVv0y0Om+OGTlXyEuxLBrzHs2lg0OmTsdK2+twI0c/gPJGr8DGkq4bZf/xu0/h6zt1b0O rqEYdS+Weka5UV5kOllzC8rddRTE09W4BfSM/CBkPMVyUT40FKgkfEKYmPDZ5w== Received: from [IPV6:2601:5c0:4200:b830:a502:8833:7847:ef8] (unknown [IPv6:2601:5c0:4200:b830:a502:8833:7847:ef8]) (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 4ZmSBP6lLnz16MB; Mon, 28 Apr 2025 15:32:45 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <053e6747-445d-41b5-9117-7d7aa05073e1@FreeBSD.org> Date: Mon, 28 Apr 2025 11:32:44 -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: a34d2231fa38 - main - Partially revert 6527682ab705 for llvm-based projects Content-Language: en-US To: Dimitry Andric , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202504241436.53OEanKM076888@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: <202504241436.53OEanKM076888@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/24/25 10:36, Dimitry Andric wrote: > The branch main has been updated by dim: > > URL: https://cgit.FreeBSD.org/src/commit/?id=a34d2231fa38a5e440ecdc94dbca3b3deb5a7f50 > > commit a34d2231fa38a5e440ecdc94dbca3b3deb5a7f50 > Author: Dimitry Andric > AuthorDate: 2025-04-24 12:03:38 +0000 > Commit: Dimitry Andric > CommitDate: 2025-04-24 14:36:40 +0000 > > Partially revert 6527682ab705 for llvm-based projects > > Upstream llvm compiles most of their subprojects with -std=c++17 > explicitly, not -std=gnu++17. In gnu++17 mode, both clang and gcc define > the macro 'i386' on i386, which clashes with a namespace identifier in > contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/i386.h. > > Since the default after 6527682ab705 is now CXXSTD=gnu++17, explicitly > set CXXSTD=c++17 for lib/clang, lib/libclang_rt and lib/libomp. Oops. I had done my testing in base with CXXSTD=c++17, but switched to gnu++17 due to breakage in ports. :( -- John Baldwin From nobody Mon Apr 28 15:45:01 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 4ZmSSZ6YWhz5vVWj; Mon, 28 Apr 2025 15:45:02 +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 4ZmSSZ5lxwz4QQV; Mon, 28 Apr 2025 15:45:02 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745855102; 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=CK2plDc2JaAw45cevpPj+hXo7jDUZWro1otks1jyfi8=; b=wOI3+sP6gtmu15bmUsd7PmjiIOxsLfPym/RroQSiCJmqKBN4a4ex5/8V7y9aGMiRD6/OtF g06ZlVxB7FrYRb9AwLu0n7IGJLyETmGCwNVgqvKUSgcRE2jYtqbZFMc/mwFZLuoah0okSa q5GZmhN+o1og2kcee3YKKgoHst0NZclvBAm9WNLls6DZPkbFSm64qwzm+t7F2LG5gGibSO hotK5H8kRz8VDQCSfP+86LSKg7R3qkuRhtoo0wRJ4F2BWwJpr205ZBOImudvH9HWSMJXFU BE4RQEIAu7w02OF1r0Xh9HrWUFXOjZcXGyE9t0ZlttsHDvC7jDtcy4pDa63ZdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745855102; a=rsa-sha256; cv=none; b=LWvNGevJ/Li8/oX8M0NvJ7EHV1K3DnriGNw2/yBfygd3YzQZs/wmfdWcppjaj6OIZLxWJW 644Azc7a2qS4BdMCF1laygsp+0u05Xr/x5yhReJfsZnedGRRjCqqV7YlwH9XEVR6DnW61T OkQFfD+IDtpEkppsftr0eH3f8Xv6OJb5JkXKgdt6icAKmFbDP4Z/NvtZljHzsRh5KZ7dBj k//Vk8EUqTmi0WAuVN3CKKW4tvtREabbXTKDuZ9iurooAw0xI/69Va6shKU6TIhfdYRP4T /I1bS/N8Wd+PtUWpjhnbFfJ0i1F9kT3OLuJuzpeasrwvEsK7WYsjIBtlcMq4aQ== 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=1745855102; 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=CK2plDc2JaAw45cevpPj+hXo7jDUZWro1otks1jyfi8=; b=ZftJNXR+QVYc4tGRe7glJUAYmINrfuL5ZItVNjZD/JylT1PK+1hugYJoofj2cyNSS+YzwI pg0fIuSPdwOFcX2xYTjBIgXTmIkwk2RogeDjZmjZ5CesXR6xgyTvfYCqIX6JpEv5n4/EG7 8CltMjviEqdLRwX+A8QrjvZoNqi0FdgddeyqzWr0PrpGmFR+JFD5eC78UmStuZp+Kxy6ut 6euFRMveBTn7bTQmjWiIU/YqAnbbE9z4e0gZr6Ii8+p1TtkqyqwZPpQZnlrm9RPWiPzx0X Q+/CJYfSs4rWY5Ft/bV3sEaVXU/PdUnChCiKyHyj+P31f3BrCRSwWF2dZD4MNw== Received: from [IPV6:2601:5c0:4200:b830:a502:8833:7847:ef8] (unknown [IPv6:2601:5c0:4200:b830:a502:8833:7847:ef8]) (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 4ZmSSZ3XYVz17JX; Mon, 28 Apr 2025 15:45:02 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <5a261558-6c1f-4e29-a71b-fd3cb6bd1e70@FreeBSD.org> Date: Mon, 28 Apr 2025 11:45:01 -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: a098111a28ed - main - secure: Add ssh-sk-client to all consumers of libssh Content-Language: en-US To: Jessica Clarke , Shawn Webb Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202504220207.53M27okn077850@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 4/24/25 18:56, Jessica Clarke wrote: > On 24 Apr 2025, at 23:45, Shawn Webb wrote: >> On Tue, Apr 22, 2025 at 02:07:50AM +0000, John Baldwin wrote: >>> The branch main has been updated by jhb: >>> >>> URL: https://cgit.FreeBSD.org/src/commit/?id=a098111a28ed59e1ab1101ad09913f0235ebd28f >>> >>> commit a098111a28ed59e1ab1101ad09913f0235ebd28f >>> Author: John Baldwin >>> AuthorDate: 2025-04-22 02:05:28 +0000 >>> Commit: John Baldwin >>> CommitDate: 2025-04-22 02:05:28 +0000 >>> >>> secure: Add ssh-sk-client to all consumers of libssh >>> >>> These all failed to link with ld.bfd used by GCC due to >>> Fssh_sshsk_sign being an unresolved symbol. >>> >>> Fixes: 65d8491719bb ("secure: Adapt Makefile to ssh-sk-client everywhere") >> >> Hey John, >> >> I'm getting the following error from the RTLD when the rc scripts >> start sshd: >> >> ==== BEGIN LOG ==== >> ld-elf.so.1: /usr/lib/libprivatessh.so.5: Undefined symbol "Fssh_sshsk_sign >> ==== END LOG ==== >> >> This is on HardenedBSD 15-CURRENT/amd64. I'll try to reproduce next >> week with vanilla FreeBSD, unless someone else beats me to it. This error seems to be that you've built the new libssh but have an old sshd, etc. > I don’t understand how this is meant to work. sshsk_sign is used by > sshkey.c, which is in libssh, so why are we putting the definition of > sshsk_sign (namespaced) in each and every program? Yeah, it's not clear to me that the original commit is correct. It makes libssh no longer be self-contained. -- John Baldwin From nobody Mon Apr 28 16:04:01 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 4ZmStV1hxPz5vWw5; Mon, 28 Apr 2025 16:04: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 4ZmStT5JCPz3J0p; Mon, 28 Apr 2025 16:04:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745856241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NdT70fVc7LQIiMMoF0AlMxVbd+5XK7w3zOFNqa+FHJI=; b=mb0uQAFPHwLzQt8cmKPPgrKpWlz178DV6c9Fv9VIjPi4PkMxGMlsKr7g1BgXvYAjEtJgho YDms1riRTla8tWGWRIwYAyYIKluCKVGgQHnPKBvUSDvs5SeIr6u+RJZcnwfvYyb3/Yib2x AFRuiHu51BAiOpsZjfOdqMJ3Ke3FtlrXdjqAWXU3PDRGjGnhGEQzTuR+4TkySaWSi7PwU/ 4cizRY+n0x2xatSxANIHikSq5VP5qwLs/VlFVbTJoLE6YkMZfuuA2DL6IlB2eAD2WGMKXc nsQvRW6GjqVa/caD7fsUC/ubjN0qMjcqqmiGohSkk6ILjkWl5m5y7aJPmwCVhQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745856241; a=rsa-sha256; cv=none; b=JRN0WoPOhO6X3SP+Cqyxtf39r8CRls5n/C7sUlClOQgRRGju6ZZA9/2M58B7vyVsWLJwx/ DGGOuF4Fek8AwKahkoW+w98VUGMvSTLR3MbyZml/HkcFa+w/wCkkd5wV3Rzrfep93yoP4i n/VEVod7p4nfauYtzbfGYqFvgwhZqQPYq/CIvKs+9yHw69+FFMfoe2y3zTxoj1YsJBxhXr wELifKadJ/40Q57Cwaw4NJn3BpExrMwsmJfh4Zh3y310M6VAobv/A3rBPiODX+yGSHwdmT wYL/467ISFcA2ncmo3DV1Fnp2RsQJBV4q2S9tTkuw8V2D82dUxN4ZBeEMJMQ0g== 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=1745856241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NdT70fVc7LQIiMMoF0AlMxVbd+5XK7w3zOFNqa+FHJI=; b=QJTicEEhw/BOlTtftZbtv91W8/Nm4CH1oKbloIesJ2wSgRPFK3G6CDKd2VP+F5okZ0na5c qw3M9TeG9p+9KYXtCPZjIG7AEprLTexh979HMYP5O04tuxOUrK/esbAado3TBAgoHRPqQ1 DBdA0XAU06nW4ro+HFK+4P0+5HyUTXnz8arGz8Nhce4W+qPd76g0qTbBwhZFTBBtowrU70 uH+8Y917IfKMk7juFPMIgGWVCvHGLBWuVEke02REIngEiQ9/p3GyJDi0s+HrpxWJ3rOHXd qpXBYrdsIT6SfOjAFnkES1JC//QVW/rEN6bVrrnddYwjrofyIDWVuPOewKgK0Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmStT4kkwzjTL; Mon, 28 Apr 2025 16:04: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 53SG41Mb039049; Mon, 28 Apr 2025 16:04:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SG41Fo039046; Mon, 28 Apr 2025 16:04:01 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:04:01 GMT Message-Id: <202504281604.53SG41Fo039046@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: fa38579f317d - main - graid.8: fix typo 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fa38579f317d5c2ff2926fab9b12ee6d429bd155 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=fa38579f317d5c2ff2926fab9b12ee6d429bd155 commit fa38579f317d5c2ff2926fab9b12ee6d429bd155 Author: Miroslav Cimerman AuthorDate: 2025-04-28 12:38:38 +0000 Commit: Warner Losh CommitDate: 2025-04-28 16:01:30 +0000 graid.8: fix typo Signed-off-by: Miroslav Cimerman Reviewed-by: imp@FreeBSD.org Pull-request: https://github.com/freebsd/freebsd-src/pull/1680 --- lib/geom/raid/graid.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/geom/raid/graid.8 b/lib/geom/raid/graid.8 index f722fd5c17bd..4ef0cd22e703 100644 --- a/lib/geom/raid/graid.8 +++ b/lib/geom/raid/graid.8 @@ -275,7 +275,7 @@ NVIDIA metadata format does not support volumes above 2TiB. .Sh SYSCTL VARIABLES The following .Xr sysctl 8 -variable can be used to control the behavior of the +variables can be used to control the behavior of the .Nm RAID GEOM class. .Bl -tag -width indent From nobody Mon Apr 28 16:04:02 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 4ZmStW3X9kz5vWtq; Mon, 28 Apr 2025 16:04: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 4ZmStV62jBz3J5S; Mon, 28 Apr 2025 16:04:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745856242; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc; bh=BUHUJ9fn6AUcXV5JwI6XbY5LpYRLd6mHEa7kDGmHOp0=; b=aK5HXqaZ3JWHhC/9w5he6BiPjm3fhNb2Iz1599eQYC21ZMLKsjO1f4PmBpjBITr8ypYB7z +WLztmoNlfnIxqqJW0KLRJ89AsJUCyBG0DqxTDHGEA9qg9ykzq/ouMEwDUv9f6j5GwayyL /5vRG35kJcbr7IYI5+baNKs/ws+uqcSjo3AuyE31hDySFMUvQ7IpbgqCdnFo7xygIMGdTe SStuWvkZq9/otgwRfaltuYvEL7xBM8mfKnWbG1jzy66KpE+hHZLxflSZIO/YyidN2howki 5FO/c1DEPDyhLqbpDpoPdQVUb9uEWvPACyfku0eKtgvKIrTQpPk6h4SjE/oqHw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745856242; a=rsa-sha256; cv=none; b=oLwt9jYWINJN7WTh0wdypL9c99k7UTAEeKgGorDLPHhlUsJzPge43BeZnAihjG6By0GzgG Msgcrf5osa6fmXeE2CcVzLvTzS+ZiRoHgmBiaGZ1XrWauBMkTKXzVqUdYQLKTnITj0FU6w FoAB4g3DfyszGinG+u79OU7fZalg3+vAHaMQwIwZZnBqGZDDIMT7MTncTWOb8c1oylagEu 0dggnJ2z7DTODMMsZqzQNvspv3YMK520cC9TMMNAcuTJk4Jfm2YUlvKEDpLAxnlJk+/V01 07d0jN/iLNhvaodNXfX459kikP6aFwAxcgWcB743PORcSl7UlufDaYTpgJD9cA== 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=1745856242; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc; bh=BUHUJ9fn6AUcXV5JwI6XbY5LpYRLd6mHEa7kDGmHOp0=; b=xiVIxOGotOPmtrkT/8JvUPIJP0BPJY2wIwg6Ghah2XuFh/qAasqnmBQsdTEBsgqdJ2rgg5 JNDliNO/bVsrMt97sYCEyuy7zE3CFmQOX6HpcU605M0/QsEvaZPFQrDiXQMCl6IID35qO+ qaH03RbVeHpUeHbbONUn65bopYA5Ect6NxNurMwlGh1VvoQvW1uimH6rVVlN5Agj/6ykFj ItR7iEmjqbz2JsMztdQB2qzE8ofYKs8gr38DzaWq5Qprp1LAFeadEIUI85pcKlIyJid2a6 xNngYwiNdvehk9Tp/v1UlYeVOv9HMT5hsbu8UMm1T6hD3PlZX3tzlNfuLDlbCQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmStV5ddkzjTY; Mon, 28 Apr 2025 16:04: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 53SG42NU039087; Mon, 28 Apr 2025 16:04:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SG421W039084; Mon, 28 Apr 2025 16:04:02 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:04:02 GMT Message-Id: <202504281604.53SG421W039084@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 77be1f2fa6a1 - main - =?utf-8?Q?Fix TXFIFO register write and timeout message Changes: - Fixed incorrect = 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 register write for TXFIFO invalidation (FSPI_IPRXFCR =E2=86=92 FSPI_IPTXF= CR). - Corrected error message for TXFIFO wait timeout (FSPI_INTR_IPRXWA = =E2=86=92 FSPI_INTR_IPTXWE). - Corrected comment for TXFIFO available (RX= FIFO -> TXFIFO)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 77be1f2fa6a18afc0d9111b2e4880fd4bacca02a Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=77be1f2fa6a18afc0d9111b2e4880fd4bacca02a commit 77be1f2fa6a18afc0d9111b2e4880fd4bacca02a Author: Premal Gajjar AuthorDate: 2025-02-24 13:46:13 +0000 Commit: Warner Losh CommitDate: 2025-04-28 16:02:50 +0000 Fix TXFIFO register write and timeout message Changes: - Fixed incorrect register write for TXFIFO invalidation (FSPI_IPRXFCR → FSPI_IPTXFCR). - Corrected error message for TXFIFO wait timeout (FSPI_INTR_IPRXWA → FSPI_INTR_IPTXWE). - Corrected comment for TXFIFO available (RXFIFO -> TXFIFO) Reviewed-by: imp@FreeBSD.org Reviewed-by: jlduran@FreeBSD.org Pull-request: https://github.com/freebsd/freebsd-src/pull/1604 --- sys/dev/flash/flexspi/flex_spi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/flash/flexspi/flex_spi.c b/sys/dev/flash/flexspi/flex_spi.c index 9382b237ee71..44246f4b1c2d 100644 --- a/sys/dev/flash/flexspi/flex_spi.c +++ b/sys/dev/flash/flexspi/flex_spi.c @@ -329,20 +329,20 @@ flex_spi_write_txfifo(struct flex_spi_softc *sc, uint8_t *buf, uint8_t size) int i, ret, reg; /* invalid the TXFIFO */ - write_reg(sc, FSPI_IPRXFCR, FSPI_IPTXFCR_CLR); + write_reg(sc, FSPI_IPTXFCR, FSPI_IPTXFCR_CLR); /* * Default value of water mark level is 8 bytes, hence in single * read request controller can read max 8 bytes of data. */ for (i = 0; i < size; i += 4) { - /* Wait for RXFIFO available */ + /* Wait for TXFIFO available */ if (i % 8 == 0) { ret = reg_read_poll_tout(sc, FSPI_INTR, FSPI_INTR_IPTXWE, 1, 50000, 1); if (ret) device_printf(sc->dev, - "timed out waiting for FSPI_INTR_IPRXWA\n"); + "timed out waiting for FSPI_INTR_IPTXWE\n"); } if (size >= (i + 4)) From nobody Mon Apr 28 16:14:07 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 4ZmT682y9Hz5vXd1; Mon, 28 Apr 2025 16:14: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 4ZmT6773yXz3NMx; Mon, 28 Apr 2025 16:14:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745856848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZrJ+cAgpNwa3mcPGzXEAXJI5LEiFY6/oqVCmmtRho5w=; b=cEE61u4C6xTSwvqTxSfWjK50PWCtDjZ7rUOJFzvlcnJlpQNZ14kgs3B0OPFjzM08oAToMv weAlDlW7bCVS+GnHq4KQtU1SQVymzI/YwId8+rE5n3WA7MCZMxOkcfpO1+VA62bpaiazrI ruGsl9OBSxsWSNfwxzuHsBBk0eskFK5YsDRsnlOZdU26XN2W+E+xcJXH8Ba5TPZtuuJ8fY OEmARi84isSXZRRp80SyG2ZteLDsHv3Tmgqdo8WSwRhjQw1ANjO/2NkbYa7P+JS2gT1jTs 0lNsMakT7/uWs32gGhBSPSnYbAAjZAhsXKv/ipYjYzW8zPrTwAsvTgs9DGH1Lg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745856848; a=rsa-sha256; cv=none; b=Jlhaahhj73b03RbCQLjGv14+eML2SgiZQmtUnTnmcOinvov8IFpCN9XP+/kMUh8xnFcS/0 dLdDdHwm+cf57Yf7qDS1ofnvKgVxxiigclDLxrloFivYSSz5W4nwZ2NiY6jEMMxMyHkRRh Pu5h6LlZxbO1I8qg6Q4kfXd2aBTbR9ZnIAfsad9TmK46t2EEjXtmHstPKInXNsTedOtNcK B9Zfz6RVAbZ95X9yfSdoUp27NAGR3kQwhxg9xtvCx4F2I6sGtVzmRpKfERrkqMEMiAZcmV hmFx3Ww7q+AVD3DOVVgF1WoXsVBjG6diutmvuezWjKyK5GhHmBLCOwa0OL6kBA== 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=1745856848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZrJ+cAgpNwa3mcPGzXEAXJI5LEiFY6/oqVCmmtRho5w=; b=VbOdmU8W1BTMHXgPcuOpfh+7lQu8GM0UDIi1eIIGkXPd9pRU7u7MgoTiFdhOElpah+PpiG h/oFkiFdmhQMgJ8RR+SUuiEIzrIJrNRtf4L8GkVTsnEdKWfqviaMxg3TZ+TKJNjfwHkV1m 3b8DIiSBpLt+HOiaGo7dvJoxyw72ZpwBh/1Hx7Y4tYzAfBg3F+rdfyR36NASFBi9LXMg8P qd3udOkUsbBN3cvjmrr3VWEhhMvMcOD7Azae9xswKhb8NNIgG2bEhhJNzf3oMlXrsVTG4/ LwUCVEag6lCZ9rJy9DOfPiQimoTVrMUPxjnfdujMF/YtMbihP5W7gjzuFD9elQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmT676TFzzhyb; Mon, 28 Apr 2025 16:14: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 53SGE7sq057520; Mon, 28 Apr 2025 16:14:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGE7HH057518; Mon, 28 Apr 2025 16:14:07 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:14:07 GMT Message-Id: <202504281614.53SGE7HH057518@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: ee9cfd727578 - main - bsdinstall: add pkgbase target 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ee9cfd7275784b61b030beb242df588bb35b21f0 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ee9cfd7275784b61b030beb242df588bb35b21f0 commit ee9cfd7275784b61b030beb242df588bb35b21f0 Author: Isaac Freund AuthorDate: 2025-04-01 23:25:49 +0000 Commit: Ed Maste CommitDate: 2025-04-28 16:12:27 +0000 bsdinstall: add pkgbase target Reviewed by: ziaee (manpages), kevans (lua), emaste Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49822 --- usr.sbin/bsdinstall/FreeBSD-base.conf.in | 7 ++ usr.sbin/bsdinstall/Makefile | 17 +++ usr.sbin/bsdinstall/bsdinstall.8 | 22 ++++ usr.sbin/bsdinstall/scripts/Makefile | 6 ++ usr.sbin/bsdinstall/scripts/pkgbase.in | 172 +++++++++++++++++++++++++++++++ 5 files changed, 224 insertions(+) diff --git a/usr.sbin/bsdinstall/FreeBSD-base.conf.in b/usr.sbin/bsdinstall/FreeBSD-base.conf.in new file mode 100644 index 000000000000..792c290facdf --- /dev/null +++ b/usr.sbin/bsdinstall/FreeBSD-base.conf.in @@ -0,0 +1,7 @@ +FreeBSD-base: { + url: "pkg+https://pkg.FreeBSD.org/${ABI}/%%SUBURL%%", + mirror_type: "srv", + signature_type: "fingerprints", + fingerprints: "/usr/share/keys/pkg", + enabled: yes +} diff --git a/usr.sbin/bsdinstall/Makefile b/usr.sbin/bsdinstall/Makefile index c9ba7cb52cd6..75db149b814b 100644 --- a/usr.sbin/bsdinstall/Makefile +++ b/usr.sbin/bsdinstall/Makefile @@ -12,4 +12,21 @@ SCRIPTSDIR_startbsdinstall= ${LIBEXECDIR}/bsdinstall UPDATE_DEPENDFILE= no +FILESDIR= ${SHAREDIR}/bsdinstall +FILES= FreeBSD-base.conf + +_BRANCH!= ${MAKE} -C ${SRCTOP}/release -V BRANCH +BRANCH?= ${_BRANCH} +_REVISION!= ${MAKE} -C ${SRCTOP}/release -V REVISION +REVISION?= ${_REVISION} + +.if ${BRANCH} == CURRENT || ${BRANCH} == STABLE +SUBURL= base_latest +.else +SUBURL= base_release_${REVISION:C/[0-9]+\.//} +.endif + +FreeBSD-base.conf: FreeBSD-base.conf.in + sed "s|%%SUBURL%%|${SUBURL}|" < ${.ALLSRC} > ${.TARGET} + .include diff --git a/usr.sbin/bsdinstall/bsdinstall.8 b/usr.sbin/bsdinstall/bsdinstall.8 index 50c8948a7989..8fadacab9189 100644 --- a/usr.sbin/bsdinstall/bsdinstall.8 +++ b/usr.sbin/bsdinstall/bsdinstall.8 @@ -244,6 +244,17 @@ Extracts the distributions listed in .Ev DISTRIBUTIONS into .Ev BSDINSTALL_CHROOT . +.It Cm pkgbase Op Fl --no-kernel +Fetch and install base system packages to +.Ev BSDINSTALL_CHROOT . +Packages are fetched according to repository configuration in +.Ev BSDINSTALL_PKG_REPOS_DIR +if set, or +.Lk pkg.freebsd.org +otherwise. +If the +.Fl --no-kernel +option is passed, no kernel is installed. .It Cm firmware executes .Xr fwget 8 @@ -324,6 +335,17 @@ Example: .Pa https://download.freebsd.org/ftp/releases/powerpc/powerpc64/13.1-RELEASE/ or .Pa http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/12.2-RELEASE/ . +.It Ev BSDINSTALL_PKG_REPOS_DIR +Directory containing +.Xr pkg 8 +repository configuration files used by the +.Cm pkgbase +target. +See +.Sx REPOSITORY CONFIGURATION +in +.Xr pkg.conf 5 . +Default: unset .It Ev BSDINSTALL_CHROOT The directory into which the distribution files should be unpacked and the directory at which the root file system of the new system should be mounted. diff --git a/usr.sbin/bsdinstall/scripts/Makefile b/usr.sbin/bsdinstall/scripts/Makefile index f3b9f07ed376..4fd59e49d506 100644 --- a/usr.sbin/bsdinstall/scripts/Makefile +++ b/usr.sbin/bsdinstall/scripts/Makefile @@ -1,3 +1,5 @@ +.include + SCRIPTS=auto \ adduser \ bootconfig \ @@ -17,6 +19,7 @@ SCRIPTS=auto \ netconfig \ netconfig_ipv4 \ netconfig_ipv6 \ + pkgbase \ rootpass \ script \ services \ @@ -29,4 +32,7 @@ BINDIR= ${LIBEXECDIR}/bsdinstall MAN= +pkgbase: pkgbase.in + sed "s|%%_ALL_libcompats%%|${_ALL_libcompats}|" < ${.ALLSRC} > ${.TARGET} + .include diff --git a/usr.sbin/bsdinstall/scripts/pkgbase.in b/usr.sbin/bsdinstall/scripts/pkgbase.in new file mode 100755 index 000000000000..7faeee40647b --- /dev/null +++ b/usr.sbin/bsdinstall/scripts/pkgbase.in @@ -0,0 +1,172 @@ +#!/usr/libexec/flua + +-- SPDX-License-Identifier: BSD-2-Clause +-- +-- Copyright(c) 2025 The FreeBSD Foundation. +-- +-- This software was developed by Isaac Freund +-- under sponsorship from the FreeBSD Foundation. + +local all_libcompats = "%%_ALL_libcompats%%" + +-- Run a command using the OS shell and capture the stdout +-- Strips exactly one trailing newline if present, does not strip any other whitespace. +-- Asserts that the command exits cleanly +local function capture(command) + local p = io.popen(command) + local output = p:read("*a") + assert(p:close()) + -- Strip exactly one trailing newline from the output, if there is one + return output:match("(.-)\n$") or output +end + +local function prompt_yn(question) + while true do + io.write(question .. " (y/n) ") + local input = io.read() + if input == "y" or input == "Y" then + return true + elseif input == "n" or input == "N" then + return false + end + end +end + +local function append_list(list, other) + for _, item in ipairs(other) do + table.insert(list, item) + end +end + +-- Returns a list of pkgbase packages equivalent to the default base.txz and kernel.txz +local function select_packages(pkg, options) + local components = { + ["kernel"] = {}, + ["kernel-dbg"] = {}, + ["base"] = {}, + ["base-dbg"] = {}, + ["src"] = {}, + ["tests"] = {}, + } + + for compat in all_libcompats:gmatch("%S+") do + components["lib" .. compat] = {} + components["lib" .. compat .. "-dbg"] = {} + end + + local rquery = capture(pkg .. "rquery -U -r FreeBSD-base %n") + for package in rquery:gmatch("[^\n]+") do + if package == "FreeBSD-src" or package:match("^FreeBSD%-src%-.*") then + table.insert(components["src"], package) + elseif package == "FreeBSD-tests" or package:match("^FreeBSD%-tests%-.*") then + table.insert(components["tests"], package) + elseif package:match("^FreeBSD%-kernel%-.*") then + -- Kernels other than FreeBSD-kernel-generic are ignored + if package == "FreeBSD-kernel-generic" then + table.insert(components["kernel"], package) + elseif package == "FreeBSD-kernel-generic-dbg" then + table.insert(components["kernel-dbg"], package) + end + elseif package:match(".*%-dbg$") then + table.insert(components["base-dbg"], package) + else + local found = false + for compat in all_libcompats:gmatch("%S+") do + if package:match(".*%-dbg%-lib" .. compat .. "$") then + table.insert(components["lib" .. compat .. "-dbg"], package) + found = true + break + elseif package:match(".*%-lib" .. compat .. "$") then + table.insert(components["lib" .. compat], package) + found = true + break + end + end + if not found then + table.insert(components["base"], package) + end + end + end + -- Don't assert the existence of dbg, tests, and src packages here. If using + -- a custom local repository with BSDINSTALL_PKG_REPOS_DIR we shouldn't + -- require it to have all packages. + assert(#components["kernel"] == 1) + assert(#components["base"] > 0) + + local selected = {} + append_list(selected, components["base"]) + if not options.no_kernel then + append_list(selected, components["kernel"]) + end + + return selected +end + +local function parse_options() + local options = {} + for _, a in ipairs(arg) do + if a == "--no-kernel" then + options.no_kernel = true + else + io.stderr:write("Error: unknown option " .. a .. "\n") + os.exit(1) + end + end + return options +end + +-- Fetch and install pkgbase packages to BSDINSTALL_CHROOT. +-- Respect BSDINSTALL_PKG_REPOS_DIR if set, otherwise use pkg.freebsd.org. +local function pkgbase() + local options = parse_options() + + -- TODO Support fully offline pkgbase installation by taking a new enough + -- version of pkg.pkg as input. + if not os.execute("pkg -N > /dev/null 2>&1") then + print("Bootstrapping pkg on the host system") + assert(os.execute("pkg bootstrap -y")) + end + + local chroot = assert(os.getenv("BSDINSTALL_CHROOT")) + assert(os.execute("mkdir -p " .. chroot)) + + local repos_dir = os.getenv("BSDINSTALL_PKG_REPOS_DIR") + if not repos_dir then + repos_dir = chroot .. "/usr/local/etc/pkg/repos/" + assert(os.execute("mkdir -p " .. repos_dir)) + assert(os.execute("cp /usr/share/bsdinstall/FreeBSD-base.conf " .. repos_dir)) + + -- Since pkg always interprets fingerprints paths as relative to + -- the --rootdir we must copy the key from the host. + assert(os.execute("mkdir -p " .. chroot .. "/usr/share/keys")) + assert(os.execute("cp -R /usr/share/keys/pkg " .. chroot .. "/usr/share/keys/")) + end + + -- We must use --repo-conf-dir rather than -o REPOS_DIR here as the latter + -- is interpreted relative to the --rootdir. BSDINSTALL_PKG_REPOS_DIR must + -- be allowed to point to a path outside the chroot. + local pkg = "pkg --rootdir " .. chroot .. + " --repo-conf-dir " .. repos_dir .. " -o IGNORE_OSVERSION=yes " + + while not os.execute(pkg .. "update") do + if not prompt_yn("Updating repositories failed, try again?") then + print("Canceled") + os.exit(1) + end + end + + local packages = table.concat(select_packages(pkg, options), " ") + + while not os.execute(pkg .. "install -U -F -y -r FreeBSD-base " .. packages) do + if not prompt_yn("Fetching packages failed, try again?") then + print("Canceled") + os.exit(1) + end + end + + if not os.execute(pkg .. "install -U -y -r FreeBSD-base " .. packages) then + os.exit(1) + end +end + +pkgbase() From nobody Mon Apr 28 16:17:45 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 4ZmTBZ60Mrz5vXkY; Mon, 28 Apr 2025 16:17:58 +0000 (UTC) (envelope-from jlduran@gmail.com) Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) (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 4ZmTBZ1xRFz3Q8f; Mon, 28 Apr 2025 16:17:58 +0000 (UTC) (envelope-from jlduran@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-e6b78b80393so657761276.1; Mon, 28 Apr 2025 09:17:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745857077; x=1746461877; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :reply-to:in-reply-to:references:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=mQMqBRtI7rqDjwPBsLPLJ8Bk5dbYF/HkTBiMbcbG4GA=; b=hQPVmBDQT2YiUt3SlSKycChHstSdk7KDVbc0qWDTlFV/Q5zIv5xkrVvwbIUGKOBCy1 s69w93ZEHBhPcYNJl9oMfSUuOwomiBfHTQ9+uvbXOHVAHglgBw8we/1lpY//Hc2EfQpH 2yM0iKZvZI+KaRfnZDWLfUuA4dvlwvjPJrF9Tzjr1Ke42QkP0XDbG6BHK9lsr/teMrP7 FCuVzAPbE2+DUOih0TZsQrusbUK0XbkPg67pFbRTi06NeRlMgEbcUkxeEAx/+c+J7/D1 YJRMnx8lb7YlwsNo/2+5DvqUgIyBkbFijr3j1gwAA0+7hSv5wmhwLJA53CGSSTY2v61S iRfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745857077; x=1746461877; h=content-transfer-encoding:cc:to:subject:message-id:date:from :reply-to:in-reply-to:references:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=mQMqBRtI7rqDjwPBsLPLJ8Bk5dbYF/HkTBiMbcbG4GA=; b=l5rPeu6KZLVSEFdxuxWWYmspwfhv2NC43Rz6M3Sfn+nK2jodBujTAl9j4gGRaxn9Cq ofVzEu7Q1kvCIb3qYW8hctYMJJDzCsoL6UKN0LWH1y0+NkUWJCCcRM2X5tVYuzymOP3i 1PmUwSr+6l3qiL1sgJEX8yb9q5vcTn+Wqf5ZTNbl+NNzIrXo0QpFil5NozxxQjYnhWnr rafshjg+/O7aztrdOoNoI//JBQS2DKYELPZVqXopNQz46QGrzXCuSQoYqOjEZLMdozcM Q06BZXkj9yJro5hfrvuV5jBri8gPkgrXW8+2tzlKLU5hAlV+kx1fgEyGVFc65ZBDOEJ2 jCvA== X-Forwarded-Encrypted: i=1; AJvYcCUQiLr6JlXybg/et5fFoEZnOc/pEROIXn9GEqt26SejFJp4/PH2f01SZlYRe6SQv/GFJZ9/KihrkyIfmlM2msm+hbcatZg=@freebsd.org, AJvYcCUu7mkYF4TzsG3yJrPWSUJgEunMf4KRScPzL/PtKuuDNR6GphWofS42sj5OmzC33YZr+T0vYEerhx5KiyB5Ulo=@freebsd.org, AJvYcCWvlKbQNbtQXKbsa/6qVEZIBwNHVXkjot/1Wou/w4WULgrCqiyH4fR0lBTs+cuSfgT+FafiFQXxp8GcbwU8KIbuu5P2@freebsd.org X-Gm-Message-State: AOJu0YwJCxYAkb/nl8rxwZ2X63vD2G7kh31EHP263/9t/JWh8sXu3YWa D8+pCwhSsWtu8ik68gjMcAHBYfMbCewUp8KuRcIVkfX+XIXwUqadh0iZs311rq8EurTSTh2jOCG Wxp8AZccJG5C58qKjNhnlSnBfMmhrrxAjz0g= X-Gm-Gg: ASbGncsRazvmT/Xuon1lVi1UJzoEImoKUYB20OcJLQXDbZs5xMg56cwlFHstNjljV1z 39iKZH1cedYx6cg7I2GjTR4Ikc4FKJWKBPq7Fnj7snGgbwrnDoTWN5vodEVFRPU2yDCzB/CEp/m yiqVwiMxMzw7RPo0wzxLSEXMc= X-Google-Smtp-Source: AGHT+IFGmWM7l3MIpTD8mPwTeqmptD2/gnbugTw575l/KUXLP7521Rei49w5OBvFzc4Sm8axRR850cuqWybX1FzOT80= X-Received: by 2002:a05:6902:981:b0:e6d:e693:4109 with SMTP id 3f1490d57ef6-e7316495abcmr8017324276.0.1745857076827; Mon, 28 Apr 2025 09:17:56 -0700 (PDT) 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 References: <202504220207.53M27okn077850@gitrepo.freebsd.org> <5a261558-6c1f-4e29-a71b-fd3cb6bd1e70@FreeBSD.org> In-Reply-To: <5a261558-6c1f-4e29-a71b-fd3cb6bd1e70@FreeBSD.org> Reply-To: jlduran+freebsd@freebsd.org From: Jose Luis Duran Date: Mon, 28 Apr 2025 11:17:45 -0500 X-Gm-Features: ATxdqUHtHj-2hlTkkHsqNouIdK_HF8ClttMn9wTmyuANMCO0-jhPF4-BSQK88hE Message-ID: Subject: Re: git: a098111a28ed - main - secure: Add ssh-sk-client to all consumers of libssh To: John Baldwin Cc: Jessica Clarke , Shawn Webb , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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)[]; TAGGED_FROM(0.00)[freebsd]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4ZmTBZ1xRFz3Q8f X-Spamd-Bar: ---- On Mon, Apr 28, 2025 at 10:45=E2=80=AFAM John Baldwin wro= te: > > On 4/24/25 18:56, Jessica Clarke wrote: > > On 24 Apr 2025, at 23:45, Shawn Webb wrote= : > >> On Tue, Apr 22, 2025 at 02:07:50AM +0000, John Baldwin wrote: > >>> The branch main has been updated by jhb: > >>> > >>> URL: https://cgit.FreeBSD.org/src/commit/?id=3Da098111a28ed59e1ab1101= ad09913f0235ebd28f > >>> > >>> commit a098111a28ed59e1ab1101ad09913f0235ebd28f > >>> Author: John Baldwin > >>> AuthorDate: 2025-04-22 02:05:28 +0000 > >>> Commit: John Baldwin > >>> CommitDate: 2025-04-22 02:05:28 +0000 > >>> > >>> secure: Add ssh-sk-client to all consumers of libssh > >>> > >>> These all failed to link with ld.bfd used by GCC due to > >>> Fssh_sshsk_sign being an unresolved symbol. > >>> > >>> Fixes: 65d8491719bb ("secure: Adapt Makefile to ssh-sk-c= lient everywhere") > >> > >> Hey John, > >> > >> I'm getting the following error from the RTLD when the rc scripts > >> start sshd: > >> > >> =3D=3D=3D=3D BEGIN LOG =3D=3D=3D=3D > >> ld-elf.so.1: /usr/lib/libprivatessh.so.5: Undefined symbol "Fssh_sshsk= _sign > >> =3D=3D=3D=3D END LOG =3D=3D=3D=3D > >> > >> This is on HardenedBSD 15-CURRENT/amd64. I'll try to reproduce next > >> week with vanilla FreeBSD, unless someone else beats me to it. > > This error seems to be that you've built the new libssh but have an old > sshd, etc. > > > I don=E2=80=99t understand how this is meant to work. sshsk_sign is use= d by > > sshkey.c, which is in libssh, so why are we putting the definition of > > sshsk_sign (namespaced) in each and every program? > > Yeah, it's not clear to me that the original commit is correct. It makes > libssh no longer be self-contained. I have created: https://reviews.freebsd.org/D50020 > -- > John Baldwin > From nobody Mon Apr 28 16:18:08 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 4ZmTBm5Q7tz5vXkc; Mon, 28 Apr 2025 16:18: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 4ZmTBm2dv6z3Q99; Mon, 28 Apr 2025 16:18:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745857088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JZeOPnlQ4xNZ7Y4LxU8GZcONO6DjqNuZuXaJ1wAmnXw=; b=foBKqb6fK6QRp0WScHwNwppBSEQRDObVhDryAN4dyDX7BfznLEPvEXEGkwznn5AWOItEQx 7bRwET0Cxt3gm8vStN/+BRZqmiW8kQKlaLoWPb9dxPmvJccblta74wKRsB1p0ugQIwpZAM 2J3usvYkS5mC9Tf/ygzlSLyI4/gT9/64nLjTG1o9OGMrBbffdDzm1FiTdtJl8whGlL3QGd eziND9E7GOBtrWAXh/5j+R97q7PuEYvsAUa1N5bfWLWrPk5hBfeokFM3oVFHibyG1REKls JH6PJ7grZyO9ylXmfjqbyXVRYJoDc4v84Q3U7iN8Lfmj5/ERFigKbiFPm+KJGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745857088; a=rsa-sha256; cv=none; b=SMwo5Fi2DyrADIRqF7COftANW/6rlBT0AyFE7JD3k9jF9tH5J/cXsMss2RhBjqHk4mE5mA FmAdSdA9AKYnFSTit+8ba7MAgl8XNSHPwMFAtR8mcw+y8lQLN2xxyi68hcKhxSefpF9dZF QxbZJwyS89fbOifv3ayUBUSlFxejMi0IVa3mJ5/iAdQKFGNz4qpVQwschduiCz4+zpSA9p 5KdMR0YR1Q9zkIrseg/xYxL9GWkz0csaoIt6OAGHz/5PbopR4A9DyDMS+OlAadSBFVoFSE cFVTDwk9Xql/Icx56/Q7o86r1frw2xI348qgQhW43ojAISPOZHnfJgv3RbyB7Q== 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=1745857088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JZeOPnlQ4xNZ7Y4LxU8GZcONO6DjqNuZuXaJ1wAmnXw=; b=hXQNzI2Vw8KcqrJK7hnsVi1Yi79CJH8Vnp0SlKcM8pt3iXbw3LllAWrUCSBdBOxUwOdHHG EfymmLe1M33K9bM0SyzBbAHU79d8Kv0PfzwjxxHxMhSjNC3I02115DNG3IP9kS/+0yiUFD dh1rBwJYqHOSEEKHoLJfaE+vJdoW+vx2NQBkowjnhgLBIs7MWf1HaDjPik1oNsA0JFuvXJ YrQJ7dfqfCC/Udi4vc4cVS3mm0IGGYVTnYAgX1+HWl6gfZM6l+Vigr1k5Qw2wSBKMvq1Xz dmJcouvvaAg8dKURV+4c7ooSsC8LezobEe2/s0ZaeGRO1kuxAjuoNUCq/vIV2g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmTBm25jRzjMK; Mon, 28 Apr 2025 16:18: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 53SGI8bS058794; Mon, 28 Apr 2025 16:18:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGI8D3058791; Mon, 28 Apr 2025 16:18:08 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:18:08 GMT Message-Id: <202504281618.53SGI8D3058791@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Ziaee Subject: git: 70b66cf80434 - main - networking.7: Clarifications 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 70b66cf804345902bb5baadd27448c4bf5251552 Auto-Submitted: auto-generated The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=70b66cf804345902bb5baadd27448c4bf5251552 commit 70b66cf804345902bb5baadd27448c4bf5251552 Author: Alexander Ziaee AuthorDate: 2025-02-19 16:46:04 +0000 Commit: Alexander Ziaee CommitDate: 2025-04-28 16:16:41 +0000 networking.7: Clarifications + standardize my license formatting with style guides + remove loading now-automatically loaded last-gen tethering driver + show contemporary internal hardware drivers for examples + tweak example language to hopefully improve clarity MFC after: 3 days Reviewed by: adrian, mhorne, Quentin Thebault Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49762 --- share/man/man7/networking.7 | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/share/man/man7/networking.7 b/share/man/man7/networking.7 index acd61f2864a7..2174577eb6a3 100644 --- a/share/man/man7/networking.7 +++ b/share/man/man7/networking.7 @@ -1,53 +1,51 @@ -.\"- -.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2024 Alexander Ziaee. Ohio. .\" -.Dd April 17, 2024 -.Dt "NETWORKING" 7 +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd March 21, 2025 +.Dt NETWORKING 7 .Os .Sh NAME .Nm networking , .Nm wifi .Nd quickstart guide to connecting to a network .Sh DESCRIPTION -In the following examples, it is assumed that we are connecting to Ethernet -with the first interface found by the -.Xr em 4 +In the following examples, it is assumed that +we are connecting to Ethernet with the first interface found by the +.Xr ix 4 driver, and Wi-Fi with the first interface found by the -.Xr iwn 4 +.Xr iwlwifi 4 driver, though your hardware will vary. .Sh EXAMPLES .Bl -tag -width 0n -.It Sy Connecting to an Ethernet network with DHCP: -.Bd -literal -offset 2n -.Ic # dhclient em0 -.Ed -.It Sy Connecting to a cellular network with USB tethering: +.It Sy Example 1: Connecting to an Ethernet network with DHCP .Pp -Load the USB tethering driver, -.Xr urndis 4 : +Ask for a DHCP lease on the first Intel 10Gb Ethernet interface: .Bd -literal -offset 2n -.Ic # kldload urndis +.Ic # dhclient ix0 .Ed +.It Sy Example 2: Connecting to a cellular network with USB tethering .Pp -Ask for a DHCP lease on the USB tethering interface: +Ask for a DHCP lease on the first USB tethering interface: .Bd -literal -offset 2n .Ic # dhclient ue0 .Ed -.It Sy Connecting to a Wi-Fi network: +.It Sy Example 3: Connecting to a Wi-Fi network .Pp Identify your Wi-Fi hardware: .Bd -literal -offset 2n .Ic % sysctl net.wlan.devices .Ed .Pp -Configure your Wi-Fi hardware as wlan0 interface: +Create the +.Sy wlan0 +interface with the first Intel Wi-Fi adapter: .Bd -literal -offset 2n -.Ic # sysrc wlans_iwn0="wlan0" +.Ic # sysrc wlans_iwlwifi0="wlan0" .Ed .Pp -Set that interface to negotiate a DHCP lease with +Set that interface to ask for a DHCP lease with .Xr wpa_supplicant 8 : .Bd -literal -offset 2n .Ic # sysrc ifconfig_wlan0="WPA SYNCDHCP" @@ -55,6 +53,7 @@ Set that interface to negotiate a DHCP lease with .Pp Enter the details of the Wi-Fi network: .Bd -literal -offset 2n +.Ic # cd /etc/ .Ic # wpa_passphrase \(dqmyssid\(dq \(dqmypassphrase\(dq >> wpa_supplicant.conf .Ed .Pp @@ -62,12 +61,11 @@ Restart the network interface daemon: .Bd -literal -offset 2n .Ic # service netif restart .Ed -.Pp -.It Sy Scanning for Wi-Fi networks: +.It Sy Example 4: Scanning for Wi-Fi networks .Bd -literal -offset 2n .Ic % ifconfig wlan0 scan .Ed -.It Sy Airplane mode: +.It Sy Example 5: Airplane mode .Bd -literal -offset 2n .Ic # service netif stop .Ed @@ -91,3 +89,5 @@ will need to be escaped for commonly using .Ql \e , see the manual page for your shell for more details. +.Pp +Stopping the network interface service also stops internal networking. From nobody Mon Apr 28 16:26:04 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 4ZmTMw69WXz5vYSQ; Mon, 28 Apr 2025 16:26: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 4ZmTMw2hDcz3SxC; Mon, 28 Apr 2025 16:26:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745857564; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TfQSRQnuUCkI3dp8E9ExapQArjSYh2Y42YuzjvCtR9o=; b=OCQ9pQWy3z870EoT6kSYgrZtJ846JvvpRmL8knw72yZtd0qt5v/vplFk+kOBZpUMQCgTX3 /fWA6BuDT1jFP1uPfkL3lcd9YgTuZ0gnoSmjWk6OfYN6nmltV5O/RG3t0ElS8/knoqLV+l hMmYluDegPz0XvORzXKZG6lZFcsdJ+eVNIHfp+R3BF0vKwqUFog7kA4HmkVB6jxWmKW5wu JakfPV/ZU3x+kUH9Hs5LpfcjcAYj1DA31JyKT3TwNn1I5UTikDI+fWhEURlefuBgXczRbm QokhgYADh48/tQJdzClRcpo06dt4UN9N+reCrrRoNJCe5QaXiGXBUcCtrzXzPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745857564; a=rsa-sha256; cv=none; b=nhVLfKE2jS8tjptfRloULdS4bq3pkbvOBrUxKQR8HxFYprVtj31MHIpy+vhipUuh/ciqtX 0P/dQlI+OshQZInC29eCftLuNEsFFV+uRtK3MoOjI7acI3hI6xRwlWcOQr4WEyT77R2EbW cyxFrnMtC2Oh+xA3UCgBwWTRwrdyRXoqd7/33VNiYYE6rgDs3qua1kkK4TwPhyJTNXWjlM ru8xsTqLmbrLRA0gpPHh65eFCTQr6MHq6MRAgApjGUbBkynjZbF8RYoo9R9pL9srOgwpAr Q/jLiU1dl4yNQzysOyimnzDsMvHlezXaMS2hBpuhtp9IXm5vzCA8NrIBv8zAWQ== 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=1745857564; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TfQSRQnuUCkI3dp8E9ExapQArjSYh2Y42YuzjvCtR9o=; b=iYx7VFIBbwy3wF4WLbaMLVgVVqeKGc9Hc7XMm0hOeY32TdtiBFZVJuUEqbvz68ud8t+ZEW pG/yXuqmYBsar/xQRyCLXk8BJRdcl3xJbv3apjZAgOsgFR1So48tShFEwk99Vf9c0hqu3t 3JDqR81dadHvlqzHQ/Hfz8R1/smVNwVA1cEwTKh9WbTIOjACqxz7jAuyKcIJ2wxls5L3kG rcU1ysDPpNQJvweUwGQICutP5FVNZGyfsSLoR8g+I9z0Vz6qr5xrWk75qqgTWsnMK1CqoD Aa8kcMJYU7CBHGQsGpZD29sSaqpHj7Be6jqSsUCpwByRA+8ejQrssRbdCp/7VA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmTMw2Hzlzjyc; Mon, 28 Apr 2025 16:26: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 53SGQ4mG077128; Mon, 28 Apr 2025 16:26:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGQ4MJ077125; Mon, 28 Apr 2025 16:26:04 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:26:04 GMT Message-Id: <202504281626.53SGQ4MJ077125@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Ziaee Subject: git: c33945a112c8 - main - iwlwifi.4: Update modes for recent 802.11ac 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c33945a112c84795c7bd87a8e94d0cf322ef5000 Auto-Submitted: auto-generated The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=c33945a112c84795c7bd87a8e94d0cf322ef5000 commit c33945a112c84795c7bd87a8e94d0cf322ef5000 Author: Alexander Ziaee AuthorDate: 2025-04-21 00:34:15 +0000 Commit: Alexander Ziaee CommitDate: 2025-04-28 16:24:50 +0000 iwlwifi.4: Update modes for recent 802.11ac Reported by: Pat Maddox Reviewed by: bz (previous version), emaste, mhorne Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49937 --- share/man/man4/iwlwifi.4 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4 index 04317c22936f..49d256e835c7 100644 --- a/share/man/man4/iwlwifi.4 +++ b/share/man/man4/iwlwifi.4 @@ -27,12 +27,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 10, 2024 +.Dd April 20, 2025 .Dt IWLWIFI 4 .Os .Sh NAME .Nm iwlwifi -.Nd Intel IEEE 802.11a/b/g/n/ac/ax wireless network driver +.Nd Intel IEEE 802.11a/b/g/n/ac/ax/be wireless network driver .Sh SYNOPSIS The driver will auto-load without any user interaction using .Xr devmatch 8 @@ -254,7 +254,7 @@ Certainly. .Pp While .Nm -supports 802.11a/b/g/n/ac/ax modes, -the compatibility code currently only supports 802.11a/b/g modes. -Support for 802.11n/ac/ax is yet to come. -802.11ax and 6Ghz support are planned. +supports 802.11a/b/g/n/ac/ax/be modes, +the compatibility code currently only supports 802.11a/b/g/n/ac modes. +802.11n/ac is only available on the 22000 and later chipset generations. +802.11ax/be and 6Ghz support are planned. From nobody Mon Apr 28 16:30:53 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 4ZmTTV40Hxz5vYck; Mon, 28 Apr 2025 16:30: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 4ZmTTT75jsz3WPB; Mon, 28 Apr 2025 16:30:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745857854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a4pj2hN4HvzVL9Cq3ZIQjhdsOiZr54KGGbFJ36JPANo=; b=Pn/Cx8f8vAgJ9IGwA9csNW+PPxVWc7qG4vn/tIi3wRhpr7NxOQuM2fpFSP3YrTffIQIghY mIfLJFGwdKS85PCMqyt8q1ZcVVraDbbDDPXeH16MfVdUnRu4aU5KWGb7TLAmnlWXJQp+uP e36DC3rxH91+6jMNodNFR7eOFhz0mWIDF1JcCFDBP3jVz34GSHo/SUor11kLnol68gXihp cygeniElcb0rOvFCKNRf2aZmsUdzLedkOwam1FG6DQM1dJagnvTcPVZ3YQS+Ssiu2KGgMx LqInKsSssz7HwSK6jAA3zbGQl7/zMgZHX8mIx28Wjj2bZwwI/8Qyo+Jqe9xt1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745857854; a=rsa-sha256; cv=none; b=sQ1o7aWqYxG9Hbc5W7cqtUcOolOcNGpeflPgbZmrChUKcGEgrZwVajqWSh8NDvacgKirHQ 5UrdyWf0Hdg/Ue2iRA6JvB0b4UJ4Hvfy2rekGuXHeNPCdbb/cFZ8C301/OeWo087HpXtDG rrxbZ0MfcD8MRSx/4VEFLgS8gpnew/GpXNGAS2i02W0UfldYMd6+8FG5GN0MU0TvQ4QiB0 hyKKXMDcWq1eNTDWlWNEwhV3S0xC1mFAqTiP/zwGdalwVV80zWYCfWHK4Ok1UMrquuGVxu ydnu/0BCGcebLXsrUkApTNB6c70pd9IP0ipbUCuefAsnyAbTbQ2RHlVUxLxO/w== 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=1745857854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a4pj2hN4HvzVL9Cq3ZIQjhdsOiZr54KGGbFJ36JPANo=; b=LSfyJ8fDmafMYeEP0Zr+q+EWwPG+Ojtp17UDTkYpqVDxlNwNrUUIjvgGCnTVfBZji35khy mGJIsHvO66MUXqdig4MHYiGz8nIS9lH9pg+HmpR9o0oWjzwmTzhvFJsJrW4WlhGvHx+2CJ h/oAM1PO/tnwsSOWw8pBz4WlaaovqA8eQ560LfrOuYcq780E1hv7yi+T7s3w7DDcd0yqz0 53AhuIymaAJrrPaHFlC8UmsPNdpR6S2b3gVmjWnqVZAo6EJujLXUp4LrmQz7R2xQd8pdal S+7YLHXNKnLwRVYHgeFS1Ow1kD3ebrJF4yRiDlZuAOH81020UiampQ4s7JtJ6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmTTT6js4zjYj; Mon, 28 Apr 2025 16:30: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 53SGUrYj088524; Mon, 28 Apr 2025 16:30:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGUrHN088507; Mon, 28 Apr 2025 16:30:53 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:30:53 GMT Message-Id: <202504281630.53SGUrHN088507@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 283da05b7d94 - main - vtnet(4): Small fix to style so that it follows the styleguide 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 283da05b7d9477e1633a37be17ebd086dabfe152 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=283da05b7d9477e1633a37be17ebd086dabfe152 commit 283da05b7d9477e1633a37be17ebd086dabfe152 Author: Bjoern Jakobsen AuthorDate: 2025-04-28 06:07:23 +0000 Commit: Warner Losh CommitDate: 2025-04-28 16:30:36 +0000 vtnet(4): Small fix to style so that it follows the styleguide Signed-off-by: Bjoern Jakobsen Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1679 --- sys/dev/virtio/network/if_vtnet.c | 8 ++++---- sys/dev/virtio/network/if_vtnetvar.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c index cf512b73de81..5060861ca7e0 100644 --- a/sys/dev/virtio/network/if_vtnet.c +++ b/sys/dev/virtio/network/if_vtnet.c @@ -657,7 +657,7 @@ vtnet_negotiate_features(struct vtnet_softc *sc) mtu = virtio_read_dev_config_2(dev, offsetof(struct virtio_net_config, mtu)); - if (mtu < VTNET_MIN_MTU /* || mtu > VTNET_MAX_MTU */) { + if (mtu < VTNET_MIN_MTU) { device_printf(dev, "Invalid MTU value: %d. " "MTU feature disabled.\n", mtu); features &= ~VIRTIO_NET_F_MTU; @@ -1037,19 +1037,19 @@ vtnet_alloc_virtqueues(struct vtnet_softc *sc) "%s-rx%d", device_get_nameunit(dev), rxq->vtnrx_id); txq = &sc->vtnet_txqs[i]; - VQ_ALLOC_INFO_INIT(&info[idx+1], sc->vtnet_tx_nsegs, + VQ_ALLOC_INFO_INIT(&info[idx + 1], sc->vtnet_tx_nsegs, vtnet_tx_vq_intr, txq, &txq->vtntx_vq, "%s-tx%d", device_get_nameunit(dev), txq->vtntx_id); } /* These queues will not be used so allocate the minimum resources. */ - for (/**/; i < sc->vtnet_max_vq_pairs; i++, idx += 2) { + for (; i < sc->vtnet_max_vq_pairs; i++, idx += 2) { rxq = &sc->vtnet_rxqs[i]; VQ_ALLOC_INFO_INIT(&info[idx], 0, NULL, rxq, &rxq->vtnrx_vq, "%s-rx%d", device_get_nameunit(dev), rxq->vtnrx_id); txq = &sc->vtnet_txqs[i]; - VQ_ALLOC_INFO_INIT(&info[idx+1], 0, NULL, txq, &txq->vtntx_vq, + VQ_ALLOC_INFO_INIT(&info[idx + 1], 0, NULL, txq, &txq->vtntx_vq, "%s-tx%d", device_get_nameunit(dev), txq->vtntx_id); } diff --git a/sys/dev/virtio/network/if_vtnetvar.h b/sys/dev/virtio/network/if_vtnetvar.h index d690ad3bf63c..46dad385345d 100644 --- a/sys/dev/virtio/network/if_vtnetvar.h +++ b/sys/dev/virtio/network/if_vtnetvar.h @@ -374,7 +374,7 @@ CTASSERT(((VTNET_TX_SEGS_MAX - 1) * MCLBYTES) >= VTNET_MAX_MTU); */ #define VTNET_DEFAULT_BUFRING_SIZE 4096 -#define VTNET_CORE_MTX(_sc) &(_sc)->vtnet_mtx +#define VTNET_CORE_MTX(_sc) (&(_sc)->vtnet_mtx) #define VTNET_CORE_LOCK(_sc) mtx_lock(VTNET_CORE_MTX((_sc))) #define VTNET_CORE_UNLOCK(_sc) mtx_unlock(VTNET_CORE_MTX((_sc))) #define VTNET_CORE_LOCK_DESTROY(_sc) mtx_destroy(VTNET_CORE_MTX((_sc))) From nobody Mon Apr 28 16:30:54 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 4ZmTTW1z9Sz5vYYm; Mon, 28 Apr 2025 16:30: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 4ZmTTW0fTwz3WDS; Mon, 28 Apr 2025 16:30:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745857855; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+/KH9BxTtX0/bp2bM5LteOuH6aKj/EDHYLirrWlGoss=; b=TBmqfMtkR07r6ewjDI6E2HLZ2loP5UGzh69uy7LIugLBmbcE7yDeJ3xuufm0rtWPlgDh7z 6Waz+srqDDOELRme3mjeeq+SdhQvZyMpLIZWH9OEaJLILBxeNopebBsNaVHb2yXCwsFvVV S5a+Y4hWqYJZXsFAU4RuuV7G2wc7zpNgnAkgL4/XdTj8RfZXuC00WU4Omijn+Dhe3J6R77 U8b1/xbfzyF+gtlL7tkIDnaNIomwgkXkZUIuLnXlJQDmfs47Swz6ZJab+EL688lipKt+1K BmOpxCHAXCnit2nOmiElbMRzpFd2XVK4bImExEuN8jFuVHFSxpjAYuDZUcUbog== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745857855; a=rsa-sha256; cv=none; b=g4jx3ZYgcXJFxXnlwGI85lQv48HXQoToMPYS6T9XPM2kvAN87lxY5VBDrHZTEXmnDSHDFN pNUsXREeTMuv9NHg/cSlscga0mpSw9/G2ZKKT3fdXSn56UPe+DroNKp2m+e3OBYhJLsa5p ExDj21gRWAZScsx5mcj4mB2H72LNi+AtslygnlxZiWw3Rb/Peo1cnv8Dj2CH2bu6+ouim8 MTQ79p6E85LdAUqFTp+umtIlKuffF8Z/inpbt6kn54x//j21IZR3fYKUuUbXxpZucEn2tr URUDPL1qF08m+5QncZ5QOMhCx36sBR/ggtVGHFZ751CoAodIobCcPB3k2g0ovg== 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=1745857855; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+/KH9BxTtX0/bp2bM5LteOuH6aKj/EDHYLirrWlGoss=; b=EPXxAne5MX1D/G34SF7SnlyM43LS7J1oSSPEApgJlo0sGSK4ghQli8vJUgiMPrNtr/o9Jm WOBM1I/jJ6rzuYdOzw/wX5AbAfZa/vFzc9yoJAA8WgGBUDrFEFYIblt6u5sAlAjRKt32Ez izhJM1dy5a2BxaO1IsmO8Yw7B2APxH4Yaa8rlbRRkkkf8wi372rS28y4hnqn9pwybhIp9i YE3GWeG7Dl4qLP24PbPv5trgsjCwsbPDCaqsNwzdP1hD+N9lTw0T5MbsXTsvDjs0qDx587 jIbukBHEG9laI54hKhrNAyJNMepq6AlADP9nFGBEM3jluop3c/iSOFOmbGtKrw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmTTW0FCszjyP; Mon, 28 Apr 2025 16:30: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 53SGUsoh089143; Mon, 28 Apr 2025 16:30:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGUscg089140; Mon, 28 Apr 2025 16:30:54 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:30:54 GMT Message-Id: <202504281630.53SGUscg089140@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 108e5d07805e - main - vtnet(4): Added tunable hw.vtnet.altq_disable 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 108e5d07805e6bced5e74fb986a65100022b8e87 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=108e5d07805e6bced5e74fb986a65100022b8e87 commit 108e5d07805e6bced5e74fb986a65100022b8e87 Author: Bjoern Jakobsen AuthorDate: 2025-04-28 06:18:32 +0000 Commit: Warner Losh CommitDate: 2025-04-28 16:30:36 +0000 vtnet(4): Added tunable hw.vtnet.altq_disable Signed-off-by: Bjoern Jakobsen Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1679 --- sys/dev/virtio/network/if_vtnet.c | 13 +++++++++++++ sys/dev/virtio/network/if_vtnetvar.h | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c index 5060861ca7e0..ddc691744190 100644 --- a/sys/dev/virtio/network/if_vtnet.c +++ b/sys/dev/virtio/network/if_vtnet.c @@ -309,6 +309,19 @@ static int vtnet_lro_mbufq_depth = 0; SYSCTL_UINT(_hw_vtnet, OID_AUTO, lro_mbufq_depth, CTLFLAG_RDTUN, &vtnet_lro_mbufq_depth, 0, "Depth of software LRO mbuf queue"); +/* Deactivate ALTQ Support */ +static int vtnet_altq_disable = 0; +SYSCTL_INT(_hw_vtnet, OID_AUTO, altq_disable, CTLFLAG_RDTUN, + &vtnet_altq_disable, 0, "Disables ALTQ Support"); + +/* + * For the driver to be considered as having altq enabled, + * it must be compiled with an ALTQ capable kernel, + * and the tunable hw.vtnet.altq_disable must be zero + */ +#define VTNET_ALTQ_ENABLED (VTNET_ALTQ_CAPABLE && (!vtnet_altq_disable)) + + static uma_zone_t vtnet_tx_header_zone; static struct virtio_feature_desc vtnet_feature_desc[] = { diff --git a/sys/dev/virtio/network/if_vtnetvar.h b/sys/dev/virtio/network/if_vtnetvar.h index 46dad385345d..b47b15543dce 100644 --- a/sys/dev/virtio/network/if_vtnetvar.h +++ b/sys/dev/virtio/network/if_vtnetvar.h @@ -29,8 +29,10 @@ #ifndef _IF_VTNETVAR_H #define _IF_VTNETVAR_H +#define VTNET_ALTQ_CAPABLE (0) #ifdef ALTQ -#define VTNET_LEGACY_TX +#undef VTNET_ALTQ_CAPABLE +#define VTNET_ALTQ_CAPABLE (1) #endif struct vtnet_softc; From nobody Mon Apr 28 16:30:56 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 4ZmTTX4Q0pz5vYYp; Mon, 28 Apr 2025 16:30:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmTTX1tRLz3WXS; Mon, 28 Apr 2025 16:30:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745857856; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vou0BzQaNmWRgK0Ws5z39D1Fe/IMcYpfnGpelECiaII=; b=ESGc9SP/x0no6zA1WtWp1AmPM4fbxdplkD4LCTBEQg7GVkbiKRQjYR3mfh1JxxYdDn6AKy YsO3ZPHe/RNTzQCpEp5An8s6R5Cdno2UUf5ZA/P6wx+7m9977lZmPxECyG+xs7CT/slQKV jh9ZoTPgUIuai80R7GJQ4cGb6vtow6jQvGuOYiFNhKiI4eXCGqZNLEHyvMxiC+Ez9QQccL 6pW+hW5SmTJ/L5T3Y58pdVvM/dbBZNEDAJzxkabxo035MSnRqO+M3J5HLN/3KI7XY4pVCB feoMlzSo/914xIF3J9n7Y60+63bi4y3Qdy82u2xjitBkMjuCBpIa7vORDu4tAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745857856; a=rsa-sha256; cv=none; b=Tz1ZIBvqKsN6NNQlaMno68+KUljZq0Hp5es5LnmtdYmuV1mcCxgWlOWjIGgTARk4BKy+yk MiVwy/Z3W+BzxjJcpEzT3wj9qA8+SpyNUZAZEbVo2r41fPxrzc4/inqfP6tpng5oNW3xUF sGnz+LyubICljYtc4dOIUE4U5AAm/gqQ7GbgEX2NU3rQmmclshX42FdYvpnX9wpksGsKrO f/zJEplHducX/MDFS4bjnSpiK7RjfYdzhOnRNtZbuAwitUO4bJdrUXhOIhNqvhdHyhMkKI vNIG3gaYRgIyCdd2XKFNpgwMk2zKhOXbbiY2MYpfiSg5xeEMG5OUJHCHxN/MAA== 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=1745857856; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vou0BzQaNmWRgK0Ws5z39D1Fe/IMcYpfnGpelECiaII=; b=F+eDP89z77WnhqoYdkl7Pugj7CMsawXaLzt7dBQOZIeg9SOvA+PeWs3ifT4Z3i1ELwmyim CEDIRe9p6UbcX18ba9+ZT5GIyQOrCpR8T1pZaEKgVinBP8VpzshSRsJfvgeAzxhR5VEjBT PO345tZ0WsjkZ0Y3eXm7CxQbpyuHqtfrX/7/sG7dykdgglGn8oM6AeTLQ7czwfkpqoS+Ex 4WLedY1wnQwiHut9c5NA62eU/3Z5VJIQMrsZpGKhh4Qma95HD9DkG7izkOFIvongvqr7ur GTLHVB4m7YAFJYDHhaF7yyHPOTezgvFNEM7PVkM0RwoFHMVJeRsrvkI5MDybtA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmTTX1CKbzjyQ; Mon, 28 Apr 2025 16:30: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 53SGUu8F089178; Mon, 28 Apr 2025 16:30:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGUuFp089175; Mon, 28 Apr 2025 16:30:56 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:30:56 GMT Message-Id: <202504281630.53SGUuFp089175@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 3a9ebff23e85 - main - vtnet(4): Replaced compiletime checks for ALTQ support to runtime checks 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3a9ebff23e85332542e6c35f2d394d1357e0329b Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3a9ebff23e85332542e6c35f2d394d1357e0329b commit 3a9ebff23e85332542e6c35f2d394d1357e0329b Author: Bjoern Jakobsen AuthorDate: 2025-04-28 06:27:43 +0000 Commit: Warner Losh CommitDate: 2025-04-28 16:30:36 +0000 vtnet(4): Replaced compiletime checks for ALTQ support to runtime checks Signed-off-by: Bjoern Jakobsen Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1679 --- sys/dev/virtio/network/if_vtnet.c | 99 +++++++++++++++++------------------- sys/dev/virtio/network/if_vtnetvar.h | 4 -- 2 files changed, 47 insertions(+), 56 deletions(-) diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c index ddc691744190..2ff9be9680b8 100644 --- a/sys/dev/virtio/network/if_vtnet.c +++ b/sys/dev/virtio/network/if_vtnet.c @@ -163,24 +163,24 @@ static struct mbuf * static int vtnet_txq_enqueue_buf(struct vtnet_txq *, struct mbuf **, struct vtnet_tx_header *); static int vtnet_txq_encap(struct vtnet_txq *, struct mbuf **, int); -#ifdef VTNET_LEGACY_TX + +/* Required for ALTQ */ static void vtnet_start_locked(struct vtnet_txq *, if_t); static void vtnet_start(if_t); -#else + +/* Required for MQ */ static int vtnet_txq_mq_start_locked(struct vtnet_txq *, struct mbuf *); static int vtnet_txq_mq_start(if_t, struct mbuf *); static void vtnet_txq_tq_deferred(void *, int); -#endif +static void vtnet_qflush(if_t); + + static void vtnet_txq_start(struct vtnet_txq *); static void vtnet_txq_tq_intr(void *, int); static int vtnet_txq_eof(struct vtnet_txq *); static void vtnet_tx_vq_intr(void *); static void vtnet_tx_start_all(struct vtnet_softc *); -#ifndef VTNET_LEGACY_TX -static void vtnet_qflush(if_t); -#endif - static int vtnet_watchdog(struct vtnet_txq *); static void vtnet_accum_stats(struct vtnet_softc *, struct vtnet_rxq_stats *, struct vtnet_txq_stats *); @@ -656,12 +656,9 @@ vtnet_negotiate_features(struct vtnet_softc *sc) if (no_csum || vtnet_tunable_int(sc, "lro_disable", vtnet_lro_disable)) features &= ~VTNET_LRO_FEATURES; -#ifndef VTNET_LEGACY_TX - if (vtnet_tunable_int(sc, "mq_disable", vtnet_mq_disable)) + /* Deactivate MQ Feature flag, if driver has ALTQ enabled, or MQ is explicitly disabled */ + if (VTNET_ALTQ_ENABLED || vtnet_tunable_int(sc, "mq_disable", vtnet_mq_disable)) features &= ~VIRTIO_NET_F_MQ; -#else - features &= ~VIRTIO_NET_F_MQ; -#endif negotiated_features = virtio_negotiate_features(dev, features); @@ -879,14 +876,14 @@ vtnet_init_txq(struct vtnet_softc *sc, int id) if (txq->vtntx_sg == NULL) return (ENOMEM); -#ifndef VTNET_LEGACY_TX - txq->vtntx_br = buf_ring_alloc(VTNET_DEFAULT_BUFRING_SIZE, M_DEVBUF, - M_NOWAIT, &txq->vtntx_mtx); - if (txq->vtntx_br == NULL) - return (ENOMEM); + if (!VTNET_ALTQ_ENABLED) { + txq->vtntx_br = buf_ring_alloc(VTNET_DEFAULT_BUFRING_SIZE, M_DEVBUF, + M_NOWAIT, &txq->vtntx_mtx); + if (txq->vtntx_br == NULL) + return (ENOMEM); - TASK_INIT(&txq->vtntx_defrtask, 0, vtnet_txq_tq_deferred, txq); -#endif + TASK_INIT(&txq->vtntx_defrtask, 0, vtnet_txq_tq_deferred, txq); + } TASK_INIT(&txq->vtntx_intrtask, 0, vtnet_txq_tq_intr, txq); txq->vtntx_tq = taskqueue_create(txq->vtntx_name, M_NOWAIT, taskqueue_thread_enqueue, &txq->vtntx_tq); @@ -957,12 +954,12 @@ vtnet_destroy_txq(struct vtnet_txq *txq) txq->vtntx_sg = NULL; } -#ifndef VTNET_LEGACY_TX - if (txq->vtntx_br != NULL) { - buf_ring_free(txq->vtntx_br, M_DEVBUF); - txq->vtntx_br = NULL; + if (!VTNET_ALTQ_ENABLED) { + if (txq->vtntx_br != NULL) { + buf_ring_free(txq->vtntx_br, M_DEVBUF); + txq->vtntx_br = NULL; + } } -#endif if (mtx_initialized(&txq->vtntx_mtx) != 0) mtx_destroy(&txq->vtntx_mtx); @@ -1106,15 +1103,16 @@ vtnet_setup_interface(struct vtnet_softc *sc) if_setinitfn(ifp, vtnet_init); if_setioctlfn(ifp, vtnet_ioctl); if_setgetcounterfn(ifp, vtnet_get_counter); -#ifndef VTNET_LEGACY_TX - if_settransmitfn(ifp, vtnet_txq_mq_start); - if_setqflushfn(ifp, vtnet_qflush); -#else - struct virtqueue *vq = sc->vtnet_txqs[0].vtntx_vq; - if_setstartfn(ifp, vtnet_start); - if_setsendqlen(ifp, virtqueue_size(vq) - 1); - if_setsendqready(ifp); -#endif + + if (!VTNET_ALTQ_ENABLED) { + if_settransmitfn(ifp, vtnet_txq_mq_start); + if_setqflushfn(ifp, vtnet_qflush); + } else { + struct virtqueue *vq = sc->vtnet_txqs[0].vtntx_vq; + if_setstartfn(ifp, vtnet_start); + if_setsendqlen(ifp, virtqueue_size(vq) - 1); + if_setsendqready(ifp); + } vtnet_get_macaddr(sc); @@ -2627,7 +2625,6 @@ fail: return (error); } -#ifdef VTNET_LEGACY_TX static void vtnet_start_locked(struct vtnet_txq *txq, if_t ifp) @@ -2693,7 +2690,6 @@ vtnet_start(if_t ifp) VTNET_TXQ_UNLOCK(txq); } -#else /* !VTNET_LEGACY_TX */ static int vtnet_txq_mq_start_locked(struct vtnet_txq *txq, struct mbuf *m) @@ -2804,7 +2800,6 @@ vtnet_txq_tq_deferred(void *xtxq, int pending __unused) VTNET_TXQ_UNLOCK(txq); } -#endif /* VTNET_LEGACY_TX */ static void vtnet_txq_start(struct vtnet_txq *txq) @@ -2815,13 +2810,14 @@ vtnet_txq_start(struct vtnet_txq *txq) sc = txq->vtntx_sc; ifp = sc->vtnet_ifp; -#ifdef VTNET_LEGACY_TX - if (!if_sendq_empty(ifp)) - vtnet_start_locked(txq, ifp); -#else - if (!drbr_empty(ifp, txq->vtntx_br)) - vtnet_txq_mq_start_locked(txq, NULL); -#endif + if (!VTNET_ALTQ_ENABLED) { + if (!drbr_empty(ifp, txq->vtntx_br)) + vtnet_txq_mq_start_locked(txq, NULL); + } else { + if (!if_sendq_empty(ifp)) + vtnet_start_locked(txq, ifp); + + } } static void @@ -2936,7 +2932,6 @@ vtnet_tx_start_all(struct vtnet_softc *sc) } } -#ifndef VTNET_LEGACY_TX static void vtnet_qflush(if_t ifp) { @@ -2958,7 +2953,6 @@ vtnet_qflush(if_t ifp) if_qflush(ifp); } -#endif static int vtnet_watchdog(struct vtnet_txq *txq) @@ -3039,12 +3033,14 @@ vtnet_get_counter(if_t ifp, ift_counter cnt) return (rxaccum.vrxs_ierrors); case IFCOUNTER_OPACKETS: return (txaccum.vtxs_opackets); -#ifndef VTNET_LEGACY_TX case IFCOUNTER_OBYTES: - return (txaccum.vtxs_obytes); + if (!VTNET_ALTQ_ENABLED) + return (txaccum.vtxs_obytes); + /* FALLTHROUGH */ case IFCOUNTER_OMCASTS: - return (txaccum.vtxs_omcasts); -#endif + if (!VTNET_ALTQ_ENABLED) + return (txaccum.vtxs_omcasts); + /* FALLTHROUGH */ default: return (if_get_counter_default(ifp, cnt)); } @@ -3148,9 +3144,8 @@ vtnet_drain_taskqueues(struct vtnet_softc *sc) txq = &sc->vtnet_txqs[i]; if (txq->vtntx_tq != NULL) { taskqueue_drain(txq->vtntx_tq, &txq->vtntx_intrtask); -#ifndef VTNET_LEGACY_TX - taskqueue_drain(txq->vtntx_tq, &txq->vtntx_defrtask); -#endif + if (!VTNET_ALTQ_ENABLED) + taskqueue_drain(txq->vtntx_tq, &txq->vtntx_defrtask); } } } diff --git a/sys/dev/virtio/network/if_vtnetvar.h b/sys/dev/virtio/network/if_vtnetvar.h index b47b15543dce..0144b0f3232d 100644 --- a/sys/dev/virtio/network/if_vtnetvar.h +++ b/sys/dev/virtio/network/if_vtnetvar.h @@ -114,18 +114,14 @@ struct vtnet_txq { struct vtnet_softc *vtntx_sc; struct virtqueue *vtntx_vq; struct sglist *vtntx_sg; -#ifndef VTNET_LEGACY_TX struct buf_ring *vtntx_br; -#endif int vtntx_id; int vtntx_watchdog; int vtntx_intr_threshold; struct vtnet_txq_stats vtntx_stats; struct taskqueue *vtntx_tq; struct task vtntx_intrtask; -#ifndef VTNET_LEGACY_TX struct task vtntx_defrtask; -#endif #ifdef DEV_NETMAP struct virtio_net_hdr_mrg_rxbuf vtntx_shrhdr; #endif /* DEV_NETMAP */ From nobody Mon Apr 28 16:30:57 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 4ZmTTY39rbz5vYTV; Mon, 28 Apr 2025 16:30: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 4ZmTTY2NCfz3WVL; Mon, 28 Apr 2025 16:30:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745857857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mWGff/4vSQJ9m9F856QMc+5tyaSmm83R3OF605Njmqo=; b=KtvnaZT/T2vzEPGV6mXGmuL9ZBVLGNX2CpL0FvVOuIByN34AkCU4JfIvMQROzP2aqrHN51 Y1rjIe00bmUToKU7vKp/1I46l04564TAi9NWxa8aTga7SwI1mxwm6fOqS/obdWvuQJbhGY vx03kp0bujJtmGTcYiOXPBYgQYttY2+L9rUtieu+b9tzRI7aBxjbI/jO3G5UOLdtPvD1oN twI14Y6C67/PDJAZS+zKkDqh3mndzDCp3G7EmxucHARnsLCC5pReOQ12BrtSsBH+jA2/Or 8BhIjIHge3dis5V4J5ffLp9lzVKjl3FAYxyJdnMjcjZLje0+pBmh/yjOzjbg0Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745857857; a=rsa-sha256; cv=none; b=Dynpu+7VNAgFiIECD8kqFrstbgnYB+nvQzkKt7aHaW/sCuHhQa4WZuVVKujHhLbQMBpnmY vQTsIGeGZ3DbdLQJGyTIzi0F9Nkg6Pnuz3GXevRVjHAKDMwx6E/ZPlCH6VqL2pTxuHKD5g XJ10y9PcFdt0kt73XyYbLkHd8z7CInOTSzo1+v7/aG7bGwVkKzZez+aPkTf6/MYUGWrMxa jLWZBeedObHnodkXD9mPOxeOHEJD8t/7m2A9nUy4iOp2RNDhuCFAN6hD1KLN1oJJg232nq 1MUx+2IHlrz+4l2kVjgW8WpGwLtFiuNRHznaB8MPUCn8HxuTlOr3+0WXDiHpqw== 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=1745857857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mWGff/4vSQJ9m9F856QMc+5tyaSmm83R3OF605Njmqo=; b=KTcHsQuUIQFImhFNnckz2CcWOcbHYHtRVaepYE3L+rLtxmuZEa5KOTj1dwL6etfjIisAem JFP9dKm55ctJqATnvyvMmZtNnDpXZUbyQnR9/OkZ4VX6A9j0n64fijEbmjszykNjLaqpum hVi6Eb7D30rWiC5caGFojK5r3Xm6ZTlhAF7nkI3VztirIu4PL+H14zZcwUk+34erGO38uY mDSDRiEvOd0j96HMPZss59RawrW1EoHTvKnE88GCO+7Ufvxda4XGWqySgjUSRxiqEINng3 h2SqM5h+vx0JK2zDSUILgcAFQ+nIfKnPyaObNYiW1JjdZ6qdcxXdQHS/97RecA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmTTY1yxhzjyR; Mon, 28 Apr 2025 16:30: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 53SGUvFa089213; Mon, 28 Apr 2025 16:30:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SGUv13089210; Mon, 28 Apr 2025 16:30:57 GMT (envelope-from git) Date: Mon, 28 Apr 2025 16:30:57 GMT Message-Id: <202504281630.53SGUv13089210@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 1a7c8b973933 - main - vtnet(4): Added hw.vtnet.altq_disable tunable to manpage 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1a7c8b9739331e031fce531ca82d04cae6733001 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=1a7c8b9739331e031fce531ca82d04cae6733001 commit 1a7c8b9739331e031fce531ca82d04cae6733001 Author: Bjoern Jakobsen AuthorDate: 2025-04-28 06:37:19 +0000 Commit: Warner Losh CommitDate: 2025-04-28 16:30:36 +0000 vtnet(4): Added hw.vtnet.altq_disable tunable to manpage Signed-off-by: Bjoern Jakobsen Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1679 --- share/man/man4/vtnet.4 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/share/man/man4/vtnet.4 b/share/man/man4/vtnet.4 index e45a47ff6c87..270366488a98 100644 --- a/share/man/man4/vtnet.4 +++ b/share/man/man4/vtnet.4 @@ -91,6 +91,10 @@ The number of queue pairs used is the lesser of the maximum supported by the driver and the hypervisor, the number of CPUs present in the guest, and this tunable if not zero. The default value is 0. +.It Va hw.vtnet.altq_disable +This tunable disables ALTQ support, allowing the use of multiqueue instead. +This option applies to all interfaces. +The default value is 0. .El .Sh SEE ALSO .Xr arp 4 , From nobody Mon Apr 28 17:02:48 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 4ZmVBJ6R9zz5tbgp; Mon, 28 Apr 2025 17:02: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 4ZmVBJ5sxGz3pCX; Mon, 28 Apr 2025 17:02:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745859768; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+Z6Gf6PP/ZcRUJeBh5sUayahP2KoVBXa/nNUXj6QTZY=; b=cYGUosIP/8s1r4mgKsL3BJL0sWL3UIlBqs3ZbbgXwp+MWAKqrIwb1GP2UWzLV/LMdyQZsq IWYhS/as/Wsrj4wk7Y2gHM83KdoHVUglJcNGaJBGim/PPUSxD0/atKUgSakuabjNpZ8SOM DJY7HHT+WMFfVFbHOJq/tIext47yTJ9BQmSTqwIKjORokoalBCMaKJHG51qqhQ/5L4ynvE sOPO5X7NTxdgiRwaEktcJGeAnbBieP2BkOvW31smKdm/a/GW5Izbth3aPRwwlX2j5JqdAQ i2OxcIUBtJlpSNiM2VQJ9plC/ObVtUkZNXNsnwTGzW4z1ImJPCR6CUVHlG5YGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745859768; a=rsa-sha256; cv=none; b=TyHYpEf3nmg9l2VQr0r1sccYjdurCVoGBDdrJSRPMKejXgIPiNdLyXqVIn0K8E+W7qWgFt MpBoCj1SGr4nzNdpmnLrftlLrEGH3bQhwhh1VjL11S5L+8mIAnxfZ8QvtM4Lb+rT7k1cAb TxnuaWIBIqzEI+Xhe6mHMsIrtA5eBPoZBGpQxCS4QeHfDki32dAivFkhFHaJT3TOB6QlGQ pTV/136wws33Wk41Zvg4YFlEA3qoImD13LK5M2SZx17POrRJie/V4j2dTzuFZV4yrlAZbv Mu/1lLwoVKUldTxbWetpjukBmH5QhKef4NJzIbaCuGJENR/2sJGdlif1Wif3bg== 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=1745859768; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+Z6Gf6PP/ZcRUJeBh5sUayahP2KoVBXa/nNUXj6QTZY=; b=sVxK6lWTAvVodogVAGMrn/l3iDbCRqvFzJ1EAPkwNJl8x/v2KqHYHJxt9sKBVEnzO0iZZu izTtJhm7bL2AKGLEUK/AHZfkbP4ToHnAcsZpoJB0KJh7CsRW7xMgRjylAMHnAMjZfBMya1 /m2O8YfXhmlFKSfNGRg9zbxEHneBbpzrmLZ3Qbp0kBlnGS7niKItMaLjbVt8KtpFC+qqWw 30hDx5Av8Luchk/bsw1dsPDnjQmtqs+3T8/JR6dV8Szs6KSAv9+wh7Uk/pAqxZlnzBj2nk 4V49zEdDuReLaHN8BSLskHYC/pBXmwrkK0/FbrM577zBXCQ/6sjwVb6nY+vmew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmVBJ5SjdzkyL; Mon, 28 Apr 2025 17:02: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 53SH2mg5051260; Mon, 28 Apr 2025 17:02:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SH2m72051257; Mon, 28 Apr 2025 17:02:48 GMT (envelope-from git) Date: Mon, 28 Apr 2025 17:02:48 GMT Message-Id: <202504281702.53SH2m72051257@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: b392a90ba4e5 - main - kyua: Switch from std::auto_ptr<> to std::unique_ptr<> 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b392a90ba4e5ea07d8a88a834fd102191d1967bf Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b392a90ba4e5ea07d8a88a834fd102191d1967bf commit b392a90ba4e5ea07d8a88a834fd102191d1967bf Author: John Baldwin AuthorDate: 2025-04-28 17:01:32 +0000 Commit: John Baldwin CommitDate: 2025-04-28 17:01:32 +0000 kyua: Switch from std::auto_ptr<> to std::unique_ptr<> A few places were assigning auto_ptr<>s depending on the ownership handoff. These now use an explicit std::move() as required by unique_ptr<>. Reviewed by: ngie, emaste Differential Revision: https://reviews.freebsd.org/D49790 --- contrib/kyua/cli/cmd_report.cpp | 2 +- contrib/kyua/cli/cmd_report_junit.cpp | 2 +- contrib/kyua/cli/common.hpp | 2 +- contrib/kyua/cli/main.cpp | 4 +- contrib/kyua/engine/config.cpp | 2 +- contrib/kyua/engine/scheduler.cpp | 4 +- contrib/kyua/model/metadata.cpp | 8 ++-- contrib/kyua/model/metadata.hpp | 2 +- contrib/kyua/model/test_program.hpp | 2 +- contrib/kyua/os/freebsd/utils/jail.cpp | 4 +- contrib/kyua/utils/auto_array.hpp | 4 +- contrib/kyua/utils/cmdline/commands_map.hpp | 2 +- contrib/kyua/utils/config/lua_module_test.cpp | 2 +- contrib/kyua/utils/config/nodes.cpp | 18 ++++----- contrib/kyua/utils/config/parser.hpp | 2 +- contrib/kyua/utils/config/tree_test.cpp | 2 +- contrib/kyua/utils/format/formatter.cpp | 2 +- contrib/kyua/utils/fs/directory.cpp | 2 +- contrib/kyua/utils/logging/operations.cpp | 2 +- contrib/kyua/utils/process/child.cpp | 26 ++++++------- contrib/kyua/utils/process/child.hpp | 14 +++---- contrib/kyua/utils/process/child.ipp | 8 ++-- contrib/kyua/utils/process/child_test.cpp | 44 +++++++++++----------- .../kyua/utils/process/deadline_killer_test.cpp | 4 +- contrib/kyua/utils/process/executor.cpp | 8 ++-- contrib/kyua/utils/process/executor.hpp | 4 +- contrib/kyua/utils/process/executor.ipp | 8 ++-- contrib/kyua/utils/process/fdstream.hpp | 2 +- contrib/kyua/utils/process/isolation_test.cpp | 2 +- contrib/kyua/utils/process/operations_test.cpp | 8 ++-- contrib/kyua/utils/process/systembuf.hpp | 2 +- contrib/kyua/utils/signals/interrupts.cpp | 18 ++++----- contrib/kyua/utils/signals/interrupts_test.cpp | 4 +- contrib/kyua/utils/signals/misc_test.cpp | 4 +- contrib/kyua/utils/signals/programmer.hpp | 2 +- contrib/kyua/utils/signals/timer.cpp | 4 +- contrib/kyua/utils/signals/timer.hpp | 2 +- contrib/kyua/utils/stream.cpp | 4 +- contrib/kyua/utils/stream.hpp | 2 +- contrib/kyua/utils/stream_test.cpp | 6 +-- usr.bin/kyua/Makefile | 3 -- 41 files changed, 122 insertions(+), 125 deletions(-) diff --git a/contrib/kyua/cli/cmd_report.cpp b/contrib/kyua/cli/cmd_report.cpp index 27827e893de7..1bf2b425236f 100644 --- a/contrib/kyua/cli/cmd_report.cpp +++ b/contrib/kyua/cli/cmd_report.cpp @@ -404,7 +404,7 @@ cmd_report::run(cmdline::ui* ui, const cmdline::parsed_cmdline& cmdline, const config::tree& /* user_config */) { - std::auto_ptr< std::ostream > output = utils::open_ostream( + std::unique_ptr< std::ostream > output = utils::open_ostream( cmdline.get_option< cmdline::path_option >("output")); const fs::path results_file = layout::find_results( diff --git a/contrib/kyua/cli/cmd_report_junit.cpp b/contrib/kyua/cli/cmd_report_junit.cpp index c4846c8795f2..acbda414d2e7 100644 --- a/contrib/kyua/cli/cmd_report_junit.cpp +++ b/contrib/kyua/cli/cmd_report_junit.cpp @@ -77,7 +77,7 @@ cmd_report_junit::run(cmdline::ui* /* ui */, const fs::path results_file = layout::find_results( results_file_open(cmdline)); - std::auto_ptr< std::ostream > output = utils::open_ostream( + std::unique_ptr< std::ostream > output = utils::open_ostream( cmdline.get_option< cmdline::path_option >("output")); drivers::report_junit_hooks hooks(*output.get()); diff --git a/contrib/kyua/cli/common.hpp b/contrib/kyua/cli/common.hpp index 15a7e9fa3344..65aadcf326b6 100644 --- a/contrib/kyua/cli/common.hpp +++ b/contrib/kyua/cli/common.hpp @@ -68,7 +68,7 @@ typedef utils::cmdline::base_command< utils::config::tree > cli_command; /// Scoped, strictly owned pointer to a cli_command. -typedef std::auto_ptr< cli_command > cli_command_ptr; +typedef std::unique_ptr< cli_command > cli_command_ptr; /// Collection of result types. diff --git a/contrib/kyua/cli/main.cpp b/contrib/kyua/cli/main.cpp index 531c252b0a75..dd7ce939e162 100644 --- a/contrib/kyua/cli/main.cpp +++ b/contrib/kyua/cli/main.cpp @@ -198,7 +198,7 @@ safe_main(cmdline::ui* ui, int argc, const char* const argv[], commands.insert(new cli::cmd_report_junit(), "Reporting"); if (mock_command.get() != NULL) - commands.insert(mock_command); + commands.insert(std::move(mock_command)); const cmdline::parsed_cmdline cmdline = cmdline::parse(argc, argv, options); @@ -277,7 +277,7 @@ cli::main(cmdline::ui* ui, const int argc, const char* const* const argv, cli_command_ptr mock_command) { try { - const int exit_code = safe_main(ui, argc, argv, mock_command); + const int exit_code = safe_main(ui, argc, argv, std::move(mock_command)); // Codes above 1 are reserved to report conditions captured as // exceptions below. diff --git a/contrib/kyua/engine/config.cpp b/contrib/kyua/engine/config.cpp index a7c418e3164c..d53e9936ba91 100644 --- a/contrib/kyua/engine/config.cpp +++ b/contrib/kyua/engine/config.cpp @@ -141,7 +141,7 @@ public: config::detail::base_node* engine::user_node::deep_copy(void) const { - std::auto_ptr< user_node > new_node(new user_node()); + std::unique_ptr< user_node > new_node(new user_node()); new_node->_value = _value; return new_node.release(); } diff --git a/contrib/kyua/engine/scheduler.cpp b/contrib/kyua/engine/scheduler.cpp index d4507a247323..5179436073b8 100644 --- a/contrib/kyua/engine/scheduler.cpp +++ b/contrib/kyua/engine/scheduler.cpp @@ -1567,12 +1567,12 @@ scheduler::scheduler_handle::debug_test( // file, waiting for further output to appear... as this only works on pipes // or sockets. We need a better interface for this whole thing. { - std::auto_ptr< std::ostream > output = utils::open_ostream( + std::unique_ptr< std::ostream > output = utils::open_ostream( stdout_target); *output << utils::read_file(result_handle->stdout_file()); } { - std::auto_ptr< std::ostream > output = utils::open_ostream( + std::unique_ptr< std::ostream > output = utils::open_ostream( stderr_target); *output << utils::read_file(result_handle->stderr_file()); } diff --git a/contrib/kyua/model/metadata.cpp b/contrib/kyua/model/metadata.cpp index 26b7f7322c6e..85248d596727 100644 --- a/contrib/kyua/model/metadata.cpp +++ b/contrib/kyua/model/metadata.cpp @@ -76,7 +76,7 @@ public: virtual base_node* deep_copy(void) const { - std::auto_ptr< bytes_node > new_node(new bytes_node()); + std::unique_ptr< bytes_node > new_node(new bytes_node()); new_node->_value = _value; return new_node.release(); } @@ -106,7 +106,7 @@ public: virtual base_node* deep_copy(void) const { - std::auto_ptr< delta_node > new_node(new delta_node()); + std::unique_ptr< delta_node > new_node(new delta_node()); new_node->_value = _value; return new_node.release(); } @@ -166,7 +166,7 @@ class user_node : public config::string_node { virtual base_node* deep_copy(void) const { - std::auto_ptr< user_node > new_node(new user_node()); + std::unique_ptr< user_node > new_node(new user_node()); new_node->_value = _value; return new_node.release(); } @@ -197,7 +197,7 @@ class paths_set_node : public config::base_set_node< fs::path > { virtual base_node* deep_copy(void) const { - std::auto_ptr< paths_set_node > new_node(new paths_set_node()); + std::unique_ptr< paths_set_node > new_node(new paths_set_node()); new_node->_value = _value; return new_node.release(); } diff --git a/contrib/kyua/model/metadata.hpp b/contrib/kyua/model/metadata.hpp index 83bc5348774a..263ecc86106d 100644 --- a/contrib/kyua/model/metadata.hpp +++ b/contrib/kyua/model/metadata.hpp @@ -95,7 +95,7 @@ class metadata_builder : utils::noncopyable { struct impl; /// Pointer to the shared internal implementation. - std::auto_ptr< impl > _pimpl; + std::unique_ptr< impl > _pimpl; public: metadata_builder(void); diff --git a/contrib/kyua/model/test_program.hpp b/contrib/kyua/model/test_program.hpp index 974ec2a12d19..ab00dbeb44e4 100644 --- a/contrib/kyua/model/test_program.hpp +++ b/contrib/kyua/model/test_program.hpp @@ -87,7 +87,7 @@ class test_program_builder : utils::noncopyable { struct impl; /// Pointer to the shared internal implementation. - std::auto_ptr< impl > _pimpl; + std::unique_ptr< impl > _pimpl; public: test_program_builder(const std::string&, const utils::fs::path&, diff --git a/contrib/kyua/os/freebsd/utils/jail.cpp b/contrib/kyua/os/freebsd/utils/jail.cpp index b39761f28e51..d2f320d1f460 100644 --- a/contrib/kyua/os/freebsd/utils/jail.cpp +++ b/contrib/kyua/os/freebsd/utils/jail.cpp @@ -213,7 +213,7 @@ jail::create(const std::string& jail_name, av.push_back("persist"); // invoke jail - std::auto_ptr< process::child > child = child::fork_capture( + std::unique_ptr< process::child > child = child::fork_capture( run(fs::path("/usr/sbin/jail"), av)); process::status status = child->wait(); @@ -288,7 +288,7 @@ jail::remove(const std::string& jail_name) av.push_back(jail_name); // invoke jail - std::auto_ptr< process::child > child = child::fork_capture( + std::unique_ptr< process::child > child = child::fork_capture( run(fs::path("/usr/sbin/jail"), av)); process::status status = child->wait(); diff --git a/contrib/kyua/utils/auto_array.hpp b/contrib/kyua/utils/auto_array.hpp index 0cc3d0e0afd5..93b3e20223cf 100644 --- a/contrib/kyua/utils/auto_array.hpp +++ b/contrib/kyua/utils/auto_array.hpp @@ -66,8 +66,8 @@ public: /// A simple smart pointer for arrays providing strict ownership semantics. /// -/// This class is the counterpart of std::auto_ptr for arrays. The semantics of -/// the API of this class are the same as those of std::auto_ptr. +/// This class is the counterpart of std::unique_ptr for arrays. The semantics of +/// the API of this class are the same as those of std::unique_ptr. /// /// The wrapped pointer must be NULL or must have been allocated using operator /// new[]. diff --git a/contrib/kyua/utils/cmdline/commands_map.hpp b/contrib/kyua/utils/cmdline/commands_map.hpp index 5378a6f2c471..d5933cc31e33 100644 --- a/contrib/kyua/utils/cmdline/commands_map.hpp +++ b/contrib/kyua/utils/cmdline/commands_map.hpp @@ -72,7 +72,7 @@ public: ~commands_map(void); /// Scoped, strictly-owned pointer to a command from this map. - typedef typename std::auto_ptr< BaseCommand > command_ptr; + typedef typename std::unique_ptr< BaseCommand > command_ptr; void insert(command_ptr, const std::string& = ""); void insert(BaseCommand*, const std::string& = ""); diff --git a/contrib/kyua/utils/config/lua_module_test.cpp b/contrib/kyua/utils/config/lua_module_test.cpp index 484d129c4021..d5d0bfc1a1f2 100644 --- a/contrib/kyua/utils/config/lua_module_test.cpp +++ b/contrib/kyua/utils/config/lua_module_test.cpp @@ -67,7 +67,7 @@ public: virtual base_node* deep_copy(void) const { - std::auto_ptr< custom_node > new_node(new custom_node()); + std::unique_ptr< custom_node > new_node(new custom_node()); new_node->_value = _value; return new_node.release(); } diff --git a/contrib/kyua/utils/config/nodes.cpp b/contrib/kyua/utils/config/nodes.cpp index 1c6e848daf07..2747c11989ad 100644 --- a/contrib/kyua/utils/config/nodes.cpp +++ b/contrib/kyua/utils/config/nodes.cpp @@ -110,7 +110,7 @@ config::detail::inner_node::combine_children_into( continue; } - std::auto_ptr< base_node > new_node; + std::unique_ptr< base_node > new_node; children_map::const_iterator iter2 = c2.find(name); if (iter2 == c2.end()) { @@ -296,7 +296,7 @@ config::detail::static_inner_node::static_inner_node(void) : config::detail::base_node* config::detail::static_inner_node::deep_copy(void) const { - std::auto_ptr< inner_node > new_node(new static_inner_node()); + std::unique_ptr< inner_node > new_node(new static_inner_node()); copy_into(new_node.get()); return new_node.release(); } @@ -314,7 +314,7 @@ config::detail::base_node* config::detail::static_inner_node::combine(const tree_key& key, const base_node* other) const { - std::auto_ptr< inner_node > new_node(new static_inner_node()); + std::unique_ptr< inner_node > new_node(new static_inner_node()); combine_into(key, other, new_node.get()); return new_node.release(); } @@ -377,7 +377,7 @@ config::detail::dynamic_inner_node::dynamic_inner_node(void) : config::detail::base_node* config::detail::dynamic_inner_node::deep_copy(void) const { - std::auto_ptr< inner_node > new_node(new dynamic_inner_node()); + std::unique_ptr< inner_node > new_node(new dynamic_inner_node()); copy_into(new_node.get()); return new_node.release(); } @@ -395,7 +395,7 @@ config::detail::base_node* config::detail::dynamic_inner_node::combine(const tree_key& key, const base_node* other) const { - std::auto_ptr< inner_node > new_node(new dynamic_inner_node()); + std::unique_ptr< inner_node > new_node(new dynamic_inner_node()); combine_into(key, other, new_node.get()); return new_node.release(); } @@ -441,7 +441,7 @@ config::leaf_node::combine(const detail::tree_key& key, config::detail::base_node* config::bool_node::deep_copy(void) const { - std::auto_ptr< bool_node > new_node(new bool_node()); + std::unique_ptr< bool_node > new_node(new bool_node()); new_node->_value = _value; return new_node.release(); } @@ -480,7 +480,7 @@ config::bool_node::set_lua(lutok::state& state, const int value_index) config::detail::base_node* config::int_node::deep_copy(void) const { - std::auto_ptr< int_node > new_node(new int_node()); + std::unique_ptr< int_node > new_node(new int_node()); new_node->_value = _value; return new_node.release(); } @@ -532,7 +532,7 @@ config::positive_int_node::validate(const value_type& new_value) const config::detail::base_node* config::string_node::deep_copy(void) const { - std::auto_ptr< string_node > new_node(new string_node()); + std::unique_ptr< string_node > new_node(new string_node()); new_node->_value = _value; return new_node.release(); } @@ -571,7 +571,7 @@ config::string_node::set_lua(lutok::state& state, const int value_index) config::detail::base_node* config::strings_set_node::deep_copy(void) const { - std::auto_ptr< strings_set_node > new_node(new strings_set_node()); + std::unique_ptr< strings_set_node > new_node(new strings_set_node()); new_node->_value = _value; return new_node.release(); } diff --git a/contrib/kyua/utils/config/parser.hpp b/contrib/kyua/utils/config/parser.hpp index cb69e756cbe8..a0496f0bda40 100644 --- a/contrib/kyua/utils/config/parser.hpp +++ b/contrib/kyua/utils/config/parser.hpp @@ -66,7 +66,7 @@ public: private: /// Pointer to the internal implementation. - std::auto_ptr< impl > _pimpl; + std::unique_ptr< impl > _pimpl; /// Hook to initialize the tree keys before reading the file. /// diff --git a/contrib/kyua/utils/config/tree_test.cpp b/contrib/kyua/utils/config/tree_test.cpp index b6efd64a84a6..328b8b59a785 100644 --- a/contrib/kyua/utils/config/tree_test.cpp +++ b/contrib/kyua/utils/config/tree_test.cpp @@ -76,7 +76,7 @@ public: virtual base_node* deep_copy(void) const { - std::auto_ptr< wrapped_int_node > new_node(new wrapped_int_node()); + std::unique_ptr< wrapped_int_node > new_node(new wrapped_int_node()); new_node->_value = _value; return new_node.release(); } diff --git a/contrib/kyua/utils/format/formatter.cpp b/contrib/kyua/utils/format/formatter.cpp index 99cfd40f03ab..1746f6cbd332 100644 --- a/contrib/kyua/utils/format/formatter.cpp +++ b/contrib/kyua/utils/format/formatter.cpp @@ -118,7 +118,7 @@ to_int(const std::string& format, const std::string& str, const char* what) static std::ostringstream* new_ostringstream(const std::string& format) { - std::auto_ptr< std::ostringstream > output(new std::ostringstream()); + std::unique_ptr< std::ostringstream > output(new std::ostringstream()); if (format.length() <= 2) { // If the format is empty, we create a new stream so that we don't have diff --git a/contrib/kyua/utils/fs/directory.cpp b/contrib/kyua/utils/fs/directory.cpp index ff7ad5e34357..c8cd5e008490 100644 --- a/contrib/kyua/utils/fs/directory.cpp +++ b/contrib/kyua/utils/fs/directory.cpp @@ -138,7 +138,7 @@ struct utils::fs::detail::directory_iterator::impl : utils::noncopyable { /// This is separate from _dirent because this is the type we return to the /// user. We must keep this as a pointer so that we can support the common /// operators (* and ->) over iterators. - std::auto_ptr< directory_entry > _entry; + std::unique_ptr< directory_entry > _entry; /// Constructs an iterator pointing to the "end" of the directory. impl(void) : _path("invalid-directory-entry"), _dirp(NULL) diff --git a/contrib/kyua/utils/logging/operations.cpp b/contrib/kyua/utils/logging/operations.cpp index 88f25361fa18..ce86183910b2 100644 --- a/contrib/kyua/utils/logging/operations.cpp +++ b/contrib/kyua/utils/logging/operations.cpp @@ -105,7 +105,7 @@ struct global_state { std::vector< std::pair< logging::level, std::string > > backlog; /// Stream to the currently open log file. - std::auto_ptr< std::ostream > logfile; + std::unique_ptr< std::ostream > logfile; global_state() : log_level(logging::level_debug), diff --git a/contrib/kyua/utils/process/child.cpp b/contrib/kyua/utils/process/child.cpp index fef09ccaad3b..bfde8159d5c8 100644 --- a/contrib/kyua/utils/process/child.cpp +++ b/contrib/kyua/utils/process/child.cpp @@ -65,7 +65,7 @@ struct child::impl : utils::noncopyable { pid_t _pid; /// The input stream for the process' stdout and stderr. May be NULL. - std::auto_ptr< process::ifdstream > _output; + std::unique_ptr< process::ifdstream > _output; /// Initializes private implementation data. /// @@ -192,7 +192,7 @@ process::child::~child(void) /// noncopyable. In the case of the child, a NULL pointer. /// /// \throw process::system_error If the calls to pipe(2) or fork(2) fail. -std::auto_ptr< process::child > +std::unique_ptr< process::child > process::child::fork_capture_aux(void) { std::cout.flush(); @@ -202,7 +202,7 @@ process::child::fork_capture_aux(void) if (detail::syscall_pipe(fds) == -1) throw process::system_error("pipe(2) failed", errno); - std::auto_ptr< signals::interrupts_inhibiter > inhibiter( + std::unique_ptr< signals::interrupts_inhibiter > inhibiter( new signals::interrupts_inhibiter); pid_t pid = detail::syscall_fork(); if (pid == -1) { @@ -223,13 +223,13 @@ process::child::fork_capture_aux(void) std::cerr << F("Failed to set up subprocess: %s\n") % e.what(); std::abort(); } - return std::auto_ptr< process::child >(NULL); + return std::unique_ptr< process::child >(NULL); } else { ::close(fds[1]); LD(F("Spawned process %s: stdout and stderr inherited") % pid); signals::add_pid_to_kill(pid); inhibiter.reset(NULL); // Unblock signals. - return std::auto_ptr< process::child >( + return std::unique_ptr< process::child >( new process::child(new impl(pid, new process::ifdstream(fds[0])))); } } @@ -252,14 +252,14 @@ process::child::fork_capture_aux(void) /// noncopyable. In the case of the child, a NULL pointer. /// /// \throw process::system_error If the call to fork(2) fails. -std::auto_ptr< process::child > +std::unique_ptr< process::child > process::child::fork_files_aux(const fs::path& stdout_file, const fs::path& stderr_file) { std::cout.flush(); std::cerr.flush(); - std::auto_ptr< signals::interrupts_inhibiter > inhibiter( + std::unique_ptr< signals::interrupts_inhibiter > inhibiter( new signals::interrupts_inhibiter); pid_t pid = detail::syscall_fork(); if (pid == -1) { @@ -284,13 +284,13 @@ process::child::fork_files_aux(const fs::path& stdout_file, std::cerr << F("Failed to set up subprocess: %s\n") % e.what(); std::abort(); } - return std::auto_ptr< process::child >(NULL); + return std::unique_ptr< process::child >(NULL); } else { LD(F("Spawned process %s: stdout=%s, stderr=%s") % pid % stdout_file % stderr_file); signals::add_pid_to_kill(pid); inhibiter.reset(NULL); // Unblock signals. - return std::auto_ptr< process::child >( + return std::unique_ptr< process::child >( new process::child(new impl(pid, NULL))); } } @@ -309,10 +309,10 @@ process::child::fork_files_aux(const fs::path& stdout_file, /// /// \throw process::system_error If the process cannot be spawned due to a /// system call error. -std::auto_ptr< process::child > +std::unique_ptr< process::child > process::child::spawn_capture(const fs::path& program, const args_vector& args) { - std::auto_ptr< child > child = fork_capture_aux(); + std::unique_ptr< child > child = fork_capture_aux(); if (child.get() == NULL) exec(program, args); log_exec(program, args); @@ -335,13 +335,13 @@ process::child::spawn_capture(const fs::path& program, const args_vector& args) /// /// \throw process::system_error If the process cannot be spawned due to a /// system call error. -std::auto_ptr< process::child > +std::unique_ptr< process::child > process::child::spawn_files(const fs::path& program, const args_vector& args, const fs::path& stdout_file, const fs::path& stderr_file) { - std::auto_ptr< child > child = fork_files_aux(stdout_file, stderr_file); + std::unique_ptr< child > child = fork_files_aux(stdout_file, stderr_file); if (child.get() == NULL) exec(program, args); log_exec(program, args); diff --git a/contrib/kyua/utils/process/child.hpp b/contrib/kyua/utils/process/child.hpp index 2c9450f6500a..3e00cea8752c 100644 --- a/contrib/kyua/utils/process/child.hpp +++ b/contrib/kyua/utils/process/child.hpp @@ -76,11 +76,11 @@ class child : noncopyable { struct impl; /// Pointer to the shared internal implementation. - std::auto_ptr< impl > _pimpl; + std::unique_ptr< impl > _pimpl; - static std::auto_ptr< child > fork_capture_aux(void); + static std::unique_ptr< child > fork_capture_aux(void); - static std::auto_ptr< child > fork_files_aux(const fs::path&, + static std::unique_ptr< child > fork_files_aux(const fs::path&, const fs::path&); explicit child(impl *); @@ -89,16 +89,16 @@ public: ~child(void); template< typename Hook > - static std::auto_ptr< child > fork_capture(Hook); + static std::unique_ptr< child > fork_capture(Hook); std::istream& output(void); template< typename Hook > - static std::auto_ptr< child > fork_files(Hook, const fs::path&, + static std::unique_ptr< child > fork_files(Hook, const fs::path&, const fs::path&); - static std::auto_ptr< child > spawn_capture( + static std::unique_ptr< child > spawn_capture( const fs::path&, const args_vector&); - static std::auto_ptr< child > spawn_files( + static std::unique_ptr< child > spawn_files( const fs::path&, const args_vector&, const fs::path&, const fs::path&); int pid(void) const; diff --git a/contrib/kyua/utils/process/child.ipp b/contrib/kyua/utils/process/child.ipp index aa90373652fd..beb2ea3b0b0a 100644 --- a/contrib/kyua/utils/process/child.ipp +++ b/contrib/kyua/utils/process/child.ipp @@ -52,11 +52,11 @@ namespace process { /// \throw process::system_error If the process cannot be spawned due to a /// system call error. template< typename Hook > -std::auto_ptr< child > +std::unique_ptr< child > child::fork_files(Hook hook, const fs::path& stdout_file, const fs::path& stderr_file) { - std::auto_ptr< child > child = fork_files_aux(stdout_file, stderr_file); + std::unique_ptr< child > child = fork_files_aux(stdout_file, stderr_file); if (child.get() == NULL) { try { hook(); @@ -85,10 +85,10 @@ child::fork_files(Hook hook, const fs::path& stdout_file, /// \throw process::system_error If the process cannot be spawned due to a /// system call error. template< typename Hook > -std::auto_ptr< child > +std::unique_ptr< child > child::fork_capture(Hook hook) { - std::auto_ptr< child > child = fork_capture_aux(); + std::unique_ptr< child > child = fork_capture_aux(); if (child.get() == NULL) { try { hook(); diff --git a/contrib/kyua/utils/process/child_test.cpp b/contrib/kyua/utils/process/child_test.cpp index 69de9991ae13..68911ae04660 100644 --- a/contrib/kyua/utils/process/child_test.cpp +++ b/contrib/kyua/utils/process/child_test.cpp @@ -292,7 +292,7 @@ do_inherit_test(const char* fork_stdout, const char* fork_stderr, ::close(fd); } - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_simple_function< 123, 'Z' >, fs::path(fork_stdout), fs::path(fork_stderr)); const process::status status = child->wait(); @@ -323,7 +323,7 @@ child__fork_capture__ok(Hook hook) { std::cout << "This unflushed message should not propagate to the child"; std::cerr << "This unflushed message should not propagate to the child"; - std::auto_ptr< process::child > child = process::child::fork_capture(hook); + std::unique_ptr< process::child > child = process::child::fork_capture(hook); std::cout.flush(); std::cerr.flush(); @@ -365,7 +365,7 @@ ATF_TEST_CASE_BODY(child__fork_capture__ok_functor) ATF_TEST_CASE_WITHOUT_HEAD(child__fork_capture__catch_exceptions); ATF_TEST_CASE_BODY(child__fork_capture__catch_exceptions) { - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_throw_exception); std::string message; @@ -383,7 +383,7 @@ ATF_TEST_CASE_BODY(child__fork_capture__catch_exceptions) ATF_TEST_CASE_WITHOUT_HEAD(child__fork_capture__new_session); ATF_TEST_CASE_BODY(child__fork_capture__new_session) { - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_check_own_session); const process::status status = child->wait(); ATF_REQUIRE(status.exited()); @@ -411,7 +411,7 @@ ATF_TEST_CASE_BODY(child__fork_capture__fork_cannot_exit) const pid_t parent_pid = ::getpid(); atf::utils::create_file("to-not-be-deleted", ""); - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_return); if (::getpid() != parent_pid) { // If we enter this clause, it is because the hook returned. @@ -431,7 +431,7 @@ ATF_TEST_CASE_BODY(child__fork_capture__fork_cannot_unwind) const pid_t parent_pid = ::getpid(); atf::utils::create_file("to-not-be-deleted", ""); try { - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_raise_exception< int, 123 >); const process::status status = child->wait(); ATF_REQUIRE(status.signaled()); @@ -467,7 +467,7 @@ ATF_TEST_CASE_BODY(child__fork_files__ok_function) const fs::path file1("file1.txt"); const fs::path file2("file2.txt"); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_simple_function< 15, 'Z' >, file1, file2); const process::status status = child->wait(); ATF_REQUIRE(status.exited()); @@ -490,7 +490,7 @@ ATF_TEST_CASE_BODY(child__fork_files__ok_functor) atf::utils::create_file(filea.str(), "Initial stdout\n"); atf::utils::create_file(fileb.str(), "Initial stderr\n"); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_simple_functor(16, "a functor"), filea, fileb); const process::status status = child->wait(); ATF_REQUIRE(status.exited()); @@ -513,7 +513,7 @@ ATF_TEST_CASE_BODY(child__fork_files__ok_functor) ATF_TEST_CASE_WITHOUT_HEAD(child__fork_files__catch_exceptions); ATF_TEST_CASE_BODY(child__fork_files__catch_exceptions) { - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_throw_exception, fs::path("unused.out"), fs::path("stderr")); @@ -528,7 +528,7 @@ ATF_TEST_CASE_BODY(child__fork_files__catch_exceptions) ATF_TEST_CASE_WITHOUT_HEAD(child__fork_files__new_session); ATF_TEST_CASE_BODY(child__fork_files__new_session) { - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_check_own_session, fs::path("unused.out"), fs::path("unused.err")); const process::status status = child->wait(); @@ -557,7 +557,7 @@ ATF_TEST_CASE_BODY(child__fork_files__fork_cannot_exit) const pid_t parent_pid = ::getpid(); atf::utils::create_file("to-not-be-deleted", ""); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_return, fs::path("out"), fs::path("err")); if (::getpid() != parent_pid) { // If we enter this clause, it is because the hook returned. @@ -577,7 +577,7 @@ ATF_TEST_CASE_BODY(child__fork_files__fork_cannot_unwind) const pid_t parent_pid = ::getpid(); atf::utils::create_file("to-not-be-deleted", ""); try { - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_raise_exception< int, 123 >, fs::path("out"), fs::path("err")); const process::status status = child->wait(); @@ -615,7 +615,7 @@ ATF_TEST_CASE_WITHOUT_HEAD(child__fork_files__create_stdout_fail); ATF_TEST_CASE_BODY(child__fork_files__create_stdout_fail) { process::detail::syscall_open = open_fail< ENOENT >; - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_simple_function< 1, 'A' >, fs::path("raise-error"), fs::path("created")); const process::status status = child->wait(); @@ -630,7 +630,7 @@ ATF_TEST_CASE_WITHOUT_HEAD(child__fork_files__create_stderr_fail); ATF_TEST_CASE_BODY(child__fork_files__create_stderr_fail) { process::detail::syscall_open = open_fail< ENOENT >; - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_simple_function< 1, 'A' >, fs::path("created"), fs::path("raise-error")); const process::status status = child->wait(); @@ -650,7 +650,7 @@ ATF_TEST_CASE_BODY(child__spawn__absolute_path) const fs::path program = get_helpers(this); INV(program.is_absolute()); - std::auto_ptr< process::child > child = process::child::spawn_files( + std::unique_ptr< process::child > child = process::child::spawn_files( program, args, fs::path("out"), fs::path("err")); const process::status status = child->wait(); @@ -669,7 +669,7 @@ ATF_TEST_CASE_BODY(child__spawn__relative_path) ATF_REQUIRE(::mkdir("root", 0755) != -1); ATF_REQUIRE(::symlink(get_helpers(this).c_str(), "root/helpers") != -1); - std::auto_ptr< process::child > child = process::child::spawn_files( + std::unique_ptr< process::child > child = process::child::spawn_files( fs::path("root/helpers"), args, fs::path("out"), fs::path("err")); const process::status status = child->wait(); @@ -687,7 +687,7 @@ ATF_TEST_CASE_BODY(child__spawn__basename_only) ATF_REQUIRE(::symlink(get_helpers(this).c_str(), "helpers") != -1); - std::auto_ptr< process::child > child = process::child::spawn_files( + std::unique_ptr< process::child > child = process::child::spawn_files( fs::path("helpers"), args, fs::path("out"), fs::path("err")); const process::status status = child->wait(); @@ -707,7 +707,7 @@ ATF_TEST_CASE_BODY(child__spawn__no_path) const fs::path helpers = get_helpers(this); utils::setenv("PATH", helpers.branch_path().c_str()); - std::auto_ptr< process::child > child = process::child::spawn_capture( + std::unique_ptr< process::child > child = process::child::spawn_capture( fs::path(helpers.leaf_name()), args); std::string line; @@ -725,7 +725,7 @@ ATF_TEST_CASE_WITHOUT_HEAD(child__spawn__no_args); ATF_TEST_CASE_BODY(child__spawn__no_args) { std::vector< std::string > args; - std::auto_ptr< process::child > child = process::child::spawn_capture( + std::unique_ptr< process::child > child = process::child::spawn_capture( get_helpers(this), args); std::string line; @@ -746,7 +746,7 @@ ATF_TEST_CASE_BODY(child__spawn__some_args) args.push_back("print-args"); args.push_back("foo"); args.push_back(" bar baz "); - std::auto_ptr< process::child > child = process::child::spawn_capture( + std::unique_ptr< process::child > child = process::child::spawn_capture( get_helpers(this), args); std::string line; @@ -772,7 +772,7 @@ ATF_TEST_CASE_WITHOUT_HEAD(child__spawn__missing_program); ATF_TEST_CASE_BODY(child__spawn__missing_program) { std::vector< std::string > args; - std::auto_ptr< process::child > child = process::child::spawn_capture( + std::unique_ptr< process::child > child = process::child::spawn_capture( fs::path("a/b/c"), args); std::string line; @@ -790,7 +790,7 @@ ATF_TEST_CASE_BODY(child__spawn__missing_program) ATF_TEST_CASE_WITHOUT_HEAD(child__pid); ATF_TEST_CASE_BODY(child__pid) { - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_write_pid); const int pid = child->pid(); diff --git a/contrib/kyua/utils/process/deadline_killer_test.cpp b/contrib/kyua/utils/process/deadline_killer_test.cpp index 06c89660ac31..56ac31d3dda0 100644 --- a/contrib/kyua/utils/process/deadline_killer_test.cpp +++ b/contrib/kyua/utils/process/deadline_killer_test.cpp @@ -66,7 +66,7 @@ child_sleep(void) ATF_TEST_CASE_WITHOUT_HEAD(activation); ATF_TEST_CASE_BODY(activation) { - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_sleep< 60 >); datetime::timestamp start = datetime::timestamp::now(); @@ -85,7 +85,7 @@ ATF_TEST_CASE_BODY(activation) ATF_TEST_CASE_WITHOUT_HEAD(no_activation); ATF_TEST_CASE_BODY(no_activation) { - std::auto_ptr< process::child > child = process::child::fork_capture( + std::unique_ptr< process::child > child = process::child::fork_capture( child_sleep< 1 >); datetime::timestamp start = datetime::timestamp::now(); diff --git a/contrib/kyua/utils/process/executor.cpp b/contrib/kyua/utils/process/executor.cpp index b73a86b9c1b9..843c9d862304 100644 --- a/contrib/kyua/utils/process/executor.cpp +++ b/contrib/kyua/utils/process/executor.cpp @@ -541,10 +541,10 @@ struct utils::process::executor::executor_handle::impl : utils::noncopyable { size_t last_subprocess; /// Interrupts handler. - std::auto_ptr< signals::interrupts_handler > interrupts_handler; + std::unique_ptr< signals::interrupts_handler > interrupts_handler; /// Root work directory for all executed subprocesses. - std::auto_ptr< fs::auto_directory > root_work_directory; + std::unique_ptr< fs::auto_directory > root_work_directory; /// Mapping of PIDs to the data required at run time. exec_handles_map all_exec_handles; @@ -807,7 +807,7 @@ executor::executor_handle::spawn_post( const fs::path& stderr_file, const datetime::delta& timeout, const optional< passwd::user > unprivileged_user, - std::auto_ptr< process::child > child) + std::unique_ptr< process::child > child) { const exec_handle handle(std::shared_ptr< exec_handle::impl >( new exec_handle::impl( @@ -853,7 +853,7 @@ executor::exec_handle executor::executor_handle::spawn_followup_post( const exit_handle& base, const datetime::delta& timeout, - std::auto_ptr< process::child > child) + std::unique_ptr< process::child > child) { INV(*base.state_owners() > 0); const exec_handle handle(std::shared_ptr< exec_handle::impl >( diff --git a/contrib/kyua/utils/process/executor.hpp b/contrib/kyua/utils/process/executor.hpp index 01a17ff8c681..efc541d304b3 100644 --- a/contrib/kyua/utils/process/executor.hpp +++ b/contrib/kyua/utils/process/executor.hpp @@ -187,12 +187,12 @@ class executor_handle { const utils::fs::path&, const utils::datetime::delta&, const utils::optional< utils::passwd::user >, - std::auto_ptr< utils::process::child >); + std::unique_ptr< utils::process::child >); void spawn_followup_pre(void); exec_handle spawn_followup_post(const exit_handle&, const utils::datetime::delta&, - std::auto_ptr< utils::process::child >); + std::unique_ptr< utils::process::child >); public: ~executor_handle(void); diff --git a/contrib/kyua/utils/process/executor.ipp b/contrib/kyua/utils/process/executor.ipp index e91f994673d7..0fc8cd943da5 100644 --- a/contrib/kyua/utils/process/executor.ipp +++ b/contrib/kyua/utils/process/executor.ipp @@ -129,7 +129,7 @@ executor::executor_handle::spawn( const fs::path stderr_path = stderr_target ? stderr_target.get() : (unique_work_directory / detail::stderr_name); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( detail::run_child< Hook >(hook, unique_work_directory, unique_work_directory / detail::work_subdir, @@ -137,7 +137,7 @@ executor::executor_handle::spawn( stdout_path, stderr_path); return spawn_post(unique_work_directory, stdout_path, stderr_path, - timeout, unprivileged_user, child); + timeout, unprivileged_user, std::move(child)); } @@ -165,14 +165,14 @@ executor::executor_handle::spawn_followup(Hook hook, { spawn_followup_pre(); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( detail::run_child< Hook >(hook, base.control_directory(), base.work_directory(), base.unprivileged_user()), base.stdout_file(), base.stderr_file()); - return spawn_followup_post(base, timeout, child); + return spawn_followup_post(base, timeout, std::move(child)); } diff --git a/contrib/kyua/utils/process/fdstream.hpp b/contrib/kyua/utils/process/fdstream.hpp index e785b0ac4282..bfcb16ec439e 100644 --- a/contrib/kyua/utils/process/fdstream.hpp +++ b/contrib/kyua/utils/process/fdstream.hpp @@ -52,7 +52,7 @@ class ifdstream : public std::istream, noncopyable struct impl; /// Pointer to the shared internal implementation. - std::auto_ptr< impl > _pimpl; + std::unique_ptr< impl > _pimpl; public: explicit ifdstream(const int); diff --git a/contrib/kyua/utils/process/isolation_test.cpp b/contrib/kyua/utils/process/isolation_test.cpp index dc723cc65c88..44aa4729d51c 100644 --- a/contrib/kyua/utils/process/isolation_test.cpp +++ b/contrib/kyua/utils/process/isolation_test.cpp @@ -78,7 +78,7 @@ template< typename Hook > static process::status fork_and_run(Hook hook) { - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( hook, fs::path("subprocess.stdout"), fs::path("subprocess.stderr")); const process::status status = child->wait(); diff --git a/contrib/kyua/utils/process/operations_test.cpp b/contrib/kyua/utils/process/operations_test.cpp index e9c1ebb65a3d..d30dc890abd2 100644 --- a/contrib/kyua/utils/process/operations_test.cpp +++ b/contrib/kyua/utils/process/operations_test.cpp @@ -161,7 +161,7 @@ write_loop(const int fd) static void check_exec_no_args(const atf::tests::tc* tc, const exec_function do_exec) { - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_exec(do_exec, get_helpers(tc), process::args_vector()), fs::path("stdout"), fs::path("stderr")); const process::status status = child->wait(); @@ -183,7 +183,7 @@ check_exec_some_args(const atf::tests::tc* tc, const exec_function do_exec) args.push_back("foo"); args.push_back("bar"); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_exec(do_exec, get_helpers(tc), args), fs::path("stdout"), fs::path("stderr")); const process::status status = child->wait(); @@ -214,7 +214,7 @@ ATF_TEST_CASE_BODY(exec__fail) { utils::avoid_coredump_on_crash(); - std::auto_ptr< process::child > child = process::child::fork_files( + std::unique_ptr< process::child > child = process::child::fork_files( child_exec(process::exec, fs::path("non-existent"), *** 228 LINES SKIPPED *** From nobody Mon Apr 28 17: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 4ZmVHq3CCZz5tc4t; Mon, 28 Apr 2025 17: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 4ZmVHp4R22z3q9D; Mon, 28 Apr 2025 17: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=1745860054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LhDpDZEyLJF28AJRBkYdVTUhlSPaD+AluV+9VmGUmz8=; b=XrI0C0QoQj5fEelDYMXDUSzuEen/8cOdnsgOGlYs1fBfFJ64ibopa4KgJAZUK+EyWt6svp IqCFwwJbiJzm5TXRW9bvSOAHa3UFmvmXJIYyIsRIJW9+c+MVNH6sLcF7vFHQSnWhCEjo46 PekNjMLQkKpPiURxr5Qy1lJWf7GQXmEjLr/w0SvdS0MMAgc9IAQvyYKJ94Fou9WSJKA2sQ gf+J1mJ5g3msU/h62cDKnWbFmBNyE3e69TY/MYw6grSHlCUQLPjn1kLKq+QY7KUv7T2bPq h5vbX6VZQyxGgSahWb2pAgiyBRcsy3as3HDsdwb9kuMHG9vFCVjvsQhUVvhppQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745860054; a=rsa-sha256; cv=none; b=fmqcXwbiHGVceX0OyjfIOcQaT+RUJsqTcY7H43N7K79ScS/L0jALO6JiIUNZZE9TVJJFkk nvDq59N3dLC+5NgNZT3mm1gP8iMBNdm0k0zeL+p20MR7CwcwLidC2KSfbnz2Ggvn5td6UI ZZ/KMG54z2+iSxjo0x5ZLXbeHIIF5TE7FIpErbBQW3bM0aeQa/wtPUEd8cE6dsPBteptjy qlk3zO4Mcf6WQ85AsXTPNUVROYyyu9lYkRDoaqWj9DgvCH9Z5cLhvv/Q2XfpQ3Z2r+gI4q /LdfjkT4zMK0VKW8qrbEfH1mg1gbfFk1LtybDI2NokQLD75owlJZoA5j2Eg/Gw== 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=1745860054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LhDpDZEyLJF28AJRBkYdVTUhlSPaD+AluV+9VmGUmz8=; b=MtZLbQqjRZHyTOud6IQtLwyeGvCZH31hORSJ3NM1k3hEtrRtwJ7Rrz6Ad9i/3sXy4iPkdL ADSSLVe/6DImjSvUCK1dlol8HNNfv0pV96rP67ToBbicPUOKvFnCuj3MAxldXvwK+Mt45j HVSjkeeLh2dALa+MFN7Q3hYa2SlELKGISKsMp8jLkizq8O74McFLT9fPJNd1Ky3VOMB7xy XFVqoMC9eWhnFHe+89SDP1L1JKCuMfX5UI3e14BDisBoskC2VY0RS3A9INjHL0lhN4wBRn kAJ4x9iSG3bRvknDW4jC+LsDc9pj6Sw6/istd8B42WtRPMy96KYhHIA+oObZEw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmVHp41pkzkmL; Mon, 28 Apr 2025 17: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 53SH7YJX052749; Mon, 28 Apr 2025 17: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 53SH7Yro052746; Mon, 28 Apr 2025 17:07:34 GMT (envelope-from git) Date: Mon, 28 Apr 2025 17:07:34 GMT Message-Id: <202504281707.53SH7Yro052746@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: ac3110dc9ec0 - main - : Conditionally export table of bit 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ac3110dc9ec06a9a1fb928902ac2ba742747be15 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=ac3110dc9ec06a9a1fb928902ac2ba742747be15 commit ac3110dc9ec06a9a1fb928902ac2ba742747be15 Author: John Baldwin AuthorDate: 2025-04-28 17:05:38 +0000 Commit: John Baldwin CommitDate: 2025-04-28 17:05:38 +0000 : Conditionally export table of bit names Only export the array of string names if _WANT_IFCAP_BIT_NAMES is defined. Exporting them unconditionally can trigger unused variable warnings if a consumer doesn't use the array. Reviewed by: olce, bz, brooks Differential Revision: https://reviews.freebsd.org/D49954 --- sbin/ifconfig/ifconfig_netlink.c | 2 ++ sys/net/if_strings.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c index 5a986e840d7f..c1e6b7be587f 100644 --- a/sbin/ifconfig/ifconfig_netlink.c +++ b/sbin/ifconfig/ifconfig_netlink.c @@ -25,6 +25,8 @@ * SUCH DAMAGE. */ +#define _WANT_IFCAP_BIT_NAMES + #include #include #include diff --git a/sys/net/if_strings.h b/sys/net/if_strings.h index a127fa273a8b..a40debd30ed5 100644 --- a/sys/net/if_strings.h +++ b/sys/net/if_strings.h @@ -66,6 +66,7 @@ #define IFCAP2_RXTLS6_NAME IFCAP_RXTLS6_NAME #define IFCAP2_IPSEC_OFFLOAD_NAME IFCAP_IPSEC_OFFLOAD_NAME +#ifdef _WANT_IFCAP_BIT_NAMES static const char *ifcap_bit_names[] = { IFCAP_RXCSUM_NAME, IFCAP_TXCSUM_NAME, @@ -108,5 +109,6 @@ static const char *ifcap_bit_names[] = { _Static_assert(sizeof(ifcap_bit_names) >= IFCAP_B_SIZE * sizeof(char *), "ifcap bit names missing from ifcap_bit_names"); #endif +#endif #endif From nobody Mon Apr 28 17:07:35 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 4ZmVHr04QVz5tc7Y; Mon, 28 Apr 2025 17:07: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 4ZmVHq5CTxz3pw8; Mon, 28 Apr 2025 17:07:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745860055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HyiAn2kLr9zR241C5KbQ3iTvA6gwWM4jteVO+rSqKN8=; b=tJK3/x5qQZMkpj31o2UPZq16eLKJ09v9OhxxwGIq5oxIX/EJICHj+/lF0aGgDl3q8X+5em 2YApwHrG828W+SXl4+yM2zm1PK4+4HuycQQFsMAgHXlLGe3MFHLMvSpxk+bLEA75NRp524 CNhzS8Zhjl2oEmUqIIyxmYXzrwxM5YeT7vqVwlLDrtLSCtxAfNDw1im5dEXoO0VpJhWa5M T0AUHrA5CKOfHdMCZNUBWC3iwmrvIG6xVSBDDo3z4rD1428XRlPilhTL7nuqH054ZUdeac Ho9nxEYyh350v9DLJGYNLkqA06CkWNWA2bgD/bh0JwuItLAf+Qhh50vXqw/e+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745860055; a=rsa-sha256; cv=none; b=qcIM/BCqU0J88UyuuSTuThSk39BiA2FQKCbPWw/BKd8dTb5PPf1GdjEV1rGn5i0el0Z/k7 e5txxaD/t+FIHveMgtgXYjUh/ACV4XqyaP34HhLUm+TbGeHH9y1hl5m++XHQVqGb1RuKz0 fWjd2EW1O3empjoAPViv/WfQlRnn3szBZo6DXa1D6bMopX120e82tsE1XBJas27dlKU0kq Bbuz1f1NOHqv4jcJ/OreMIo9tLVluoYKLtyz64XxKUjhNz+3xf8GosyJpGbccyjFdqrM2R LHfeaw3bMu+wYRF0YPkhKPiYv356qT/1FLUAo/GV9w2sW2CTY5VLfAIWUwFCIQ== 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=1745860055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HyiAn2kLr9zR241C5KbQ3iTvA6gwWM4jteVO+rSqKN8=; b=QW3tOeimUg+CThTQ5TnRBF7nsI2DCdkT4EKkg0SG8UpqqpkjmaUSMYMfylFRohmmvxjsHf rpyh6jooly62nsU4sIgRXlfQx7TzSc/Xs261MX2nkGmOJ0URb0HJfsXw5HPQ0L5p867oTS xaiSiRu7FroT5InKKPpUqGCmGKG7FBT+49+mzpDnaPjw2ZvgHrB1d5S6qid971O6ba70Mi NlXv4os9XLpUTeKm7euqAPZBfE92O1m8PuurCgZsJCJbXcsJSSxphcVEEdspfLtdbH3F/Y VCGEfNTP3eaYi7ZOBfA5PC9WpfwenOC888EOzgTputtYaps1L/AnSA7qlgQEFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmVHq4gPyzkNW; Mon, 28 Apr 2025 17:07: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 53SH7ZxX052786; Mon, 28 Apr 2025 17:07:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SH7Z5C052783; Mon, 28 Apr 2025 17:07:35 GMT (envelope-from git) Date: Mon, 28 Apr 2025 17:07:35 GMT Message-Id: <202504281707.53SH7Z5C052783@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: dcb2a1ae46ad - main - : Conditionally export table of ID 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dcb2a1ae46ad4a5b810203abcbf5ddebbfc1741d Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=dcb2a1ae46ad4a5b810203abcbf5ddebbfc1741d commit dcb2a1ae46ad4a5b810203abcbf5ddebbfc1741d Author: John Baldwin AuthorDate: 2025-04-28 17:06:07 +0000 Commit: John Baldwin CommitDate: 2025-04-28 17:06:07 +0000 : Conditionally export table of ID names Only export the array of ID names if either _WANT_SFF_8024_ID or _WANT_SFF_8472_ID is defined. Exporting them unconditionally can trigger unused variable warnings if a consumer doesn't use the array. Reviewed by: olce, bz, brooks Differential Revision: https://reviews.freebsd.org/D49955 --- lib/libifconfig/libifconfig_sfp.c | 2 ++ sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c | 2 ++ sys/net/sff8472.h | 2 ++ usr.sbin/cxgbetool/cxgbetool.c | 2 ++ 4 files changed, 8 insertions(+) diff --git a/lib/libifconfig/libifconfig_sfp.c b/lib/libifconfig/libifconfig_sfp.c index 8292135d3e47..1ba6d231a992 100644 --- a/lib/libifconfig/libifconfig_sfp.c +++ b/lib/libifconfig/libifconfig_sfp.c @@ -24,6 +24,8 @@ * SUCH DAMAGE. */ +#define _WANT_SFF_8024_ID + #include #include #include diff --git a/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c b/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c index 182be547272a..9730ab3c56c1 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_diagnostics.c @@ -26,6 +26,8 @@ #include "opt_rss.h" #include "opt_ratelimit.h" +#define _WANT_SFF_8024_ID + #include #include #include diff --git a/sys/net/sff8472.h b/sys/net/sff8472.h index a33dfed84b0b..33b6dddb5b9f 100644 --- a/sys/net/sff8472.h +++ b/sys/net/sff8472.h @@ -415,6 +415,7 @@ enum { SFF_8024_ID_LAST = SFF_8024_ID_QSFP_CMIS }; +#if defined(_WANT_SFF_8024_ID) || defined(_WANT_SFF_8472_ID) static const char *sff_8024_id[SFF_8024_ID_LAST + 1] = { "Unknown", "GBIC", @@ -448,6 +449,7 @@ static const char *sff_8024_id[SFF_8024_ID_LAST + 1] = { "x8MiniLink", "QSFP+(CIMS)" }; +#endif /* Keep compatibility with old definitions */ #define SFF_8472_ID_UNKNOWN SFF_8024_ID_UNKNOWN diff --git a/usr.sbin/cxgbetool/cxgbetool.c b/usr.sbin/cxgbetool/cxgbetool.c index 8f58fe8107dc..c3bd883b39fc 100644 --- a/usr.sbin/cxgbetool/cxgbetool.c +++ b/usr.sbin/cxgbetool/cxgbetool.c @@ -25,6 +25,8 @@ * SUCH DAMAGE. */ +#define _WANT_SFF_8472_ID + #include #include #include From nobody Mon Apr 28 17:10:59 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 4ZmVMm0pjSz5tblC; Mon, 28 Apr 2025 17:11: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 4ZmVMl3sbrz3rsl; Mon, 28 Apr 2025 17:10:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745860259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bZaMEOtKk5gZpezhkyNBcj9Dj+8DYV/KweVMkMUaGes=; b=aC37qbUYQ8YMYTR2yU1XZgtf2YrUQmu7yoaxKSqHnw8+lRG3xTkLkkpaMMD/x9P1FSsYhW UmQA0LeCIyb7+2VT5DnZSDSSKMH4YZgV6hja+qulMbFw3wxEFVv32baVbPwodOqRGNoCu9 3z/UB0CRrp3a7Rg/FKN0as+a2XTgwTX1uKCgm7G7NQ3+Qt5pPa+94V1CNgI8la+cfB6Ipm 0ua6sbQt0331Rgt75dgDx0t9/O0u2Hth6uGhpjDYy1N9ukDcjj6w02GfpKPVujWW8IlE9f y2cw8jJGFAPath3NmBMcGaMr6BvLahITKagV+jtWBV6tUikFuAFUcYnQlRJ5Uw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745860259; a=rsa-sha256; cv=none; b=C1QWIT7HyeO/yQ6IjgiYLD7vFDN8oxx56LBYbliidb/zGFl5J7Z5W6k2IvKBda2TzoJEvT 2BGbC3i7QYMKPi/DOwo5qcpDxLsi0Cun3fQgTV+sJvGHHx8DJ7A/W2HuM8V81k8Voi1YZ0 KYm8oa9xf2uHjogHODvGgT3LvS9ylbQfZeicVKRFJ1disqASccDGJxZ+uR/03//QOjBWdQ RTX6nmJc6D9hOfr0nGEilNN4i7UDc9nZKXCf3TOeFHJ4BIp3YnUJLXtGjLSsqkf4nRuxaF TNoc89TdTuFSnOb0811udeWABpvvT2u6bfBlXaK3FaqtsRfcaiCFRdhliqvDbg== 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=1745860259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bZaMEOtKk5gZpezhkyNBcj9Dj+8DYV/KweVMkMUaGes=; b=qvYLzBxsvXKHr4nvsrA5XbfFXBpyGN62hGbX6aYmDFpbp87sxCV60cjMHJS9xqF4fH/Fu8 9XM0yOQyevq23uoivVjwL3+6xnKPN+odDB5zyT57B+awd6dCSsUugJlv9VxkAz0Ozo5HyF t2vPrIITPv4HZvaJxQCiQB3GR6QvGd19PUUFFBHCvolMzJOD1T5GIlWQST3C6gWBCqLhiq Py/J+mOKGTQwsH7hrq6gCvNw3F3b/GYLGVkTIS388TLwvkmZq2tDaxZEoW0BJJbDWaQPPW Ghjjf18GjmTXRWTnXxMOiv3TU/vaNEzjZ2EyoKm3CEBC+lIZ8xGjJEHs2JCM1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmVMl39vVzl1T; Mon, 28 Apr 2025 17:10: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 53SHAxqt066153; Mon, 28 Apr 2025 17:10:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SHAxGp066150; Mon, 28 Apr 2025 17:10:59 GMT (envelope-from git) Date: Mon, 28 Apr 2025 17:10:59 GMT Message-Id: <202504281710.53SHAxGp066150@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 4e2616b74cb7 - main - cross-build: Workaround system-provided strchrnul on macOS 15.4+ 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4e2616b74cb7eed921aa10fb776cdc2d5fd4e42f Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=4e2616b74cb7eed921aa10fb776cdc2d5fd4e42f commit 4e2616b74cb7eed921aa10fb776cdc2d5fd4e42f Author: John Baldwin AuthorDate: 2025-04-28 17:10:41 +0000 Commit: John Baldwin CommitDate: 2025-04-28 17:10:41 +0000 cross-build: Workaround system-provided strchrnul on macOS 15.4+ macOS added a native strchrnul in 15.4. There is not an easy way to detect it at compile time, so use a macro to rename our local inline version to avoid conflicts while also forcing its use during bootstrap. The local version can be removed once macOS versions older than 15.4 are no longer supported as build hosts. Co-authored by: jrtc27 Reported by: kib Reviewed by: jrtc27 Differential Revision: https://reviews.freebsd.org/D49893 --- tools/build/cross-build/include/mac/string.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/build/cross-build/include/mac/string.h b/tools/build/cross-build/include/mac/string.h index d7db0d3023a4..58464f1f9834 100644 --- a/tools/build/cross-build/include/mac/string.h +++ b/tools/build/cross-build/include/mac/string.h @@ -38,9 +38,12 @@ #include_next /* - * strchrnul is not provided by macOS and the strchrnul.c implementation - * can not be compiled on macOS so just provide it inline here + * strchrnul is provided by macOS 15.4 and later. However, there is + * no good way to detect the current host version at compile time, so + * provide an inline definition under an alternate name. */ +#define strchrnul(p, ch) __freebsd_strchrnul(p, ch) + static inline char * strchrnul(const char *p, int ch) { From nobody Mon Apr 28 17:58:24 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 4ZmWQT0FYPz5tfy0; Mon, 28 Apr 2025 17:58: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 4ZmWQS69gYz3JZ2; Mon, 28 Apr 2025 17:58:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745863104; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a5lIwOj7yz0GM7Hbi+uYHV+rLwRmoDrRc76xK7xpEeg=; b=TYdmmP+71NyAxuQiM+0mzfy13Tk+KBJPvFuRMOcEVQbHsf6J0UM3R3zg6uf/11AcpfPkFu ZD3LWKP1RjB3evjPV0qHKXln6fJpkqIfcdoQ+y8IHenY6Pb45DVAfPfXB9IXpmV4lXMAAw fKww5D/iIcHn83NtvKzsawIOGieNN0cDDmOJVgXuDyDG1ltuXWrZ14BHwHOu27mZvC0r1e ZSdq36+83kOPpI7z9z0/snYlfqjzZgDlnT1pm2rmbfuSC6f1wDtUiycZ3G5VGVbfQMG+CY SBNm4XzG961WfC/0d0rfQ4xz3Q3kNoQItoyc41s1izoQCYRC6qg9Zy4NZjlFPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745863104; a=rsa-sha256; cv=none; b=f4tY4vEEbugvuMV06MS7HLz6lkewbkXOf4iZ+/lckuBEsh3EmEwtcu0/FSo4zPJwwubGpD 0bkMnutSYojY4WzaI0IDn2FFK5stKyQf3YQADkI9nd381hwkM0ZzkiR5ap598uxRg7jZ0Z 4Jd8KxiU+XrfB3MbZIE/68KDO2FVppW3rQnaCW+ZhdoSFgBMP9WntAeCbzIkay41MqNlqJ q85FbZaL7YTtfg2yzei2u2KHdiI/+F5gPRwRjpdd/xxpUZvlqlleNfOvT9R7m0JD2OrkR1 LCdfuxeBxvZqRMWn7E9WbJSK/PcgRhKAPMB9GW34G0ouX2mPmJu72cCjdbzkhA== 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=1745863104; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a5lIwOj7yz0GM7Hbi+uYHV+rLwRmoDrRc76xK7xpEeg=; b=QF0P0uxlIhXrL98csISfh5KppYYx7+xjZk65gPL8e/56OWwAftIXH16wLgy6711f3Y120u LjjOESOrW6c2d37MCyMLwqGAy4TEcSAvEZM3WETpw7ymkLI55wYVPaYboYMZIlV3EuB+h2 HGZmVnV7ltwCZkAItrYtDsmyFEEY/sSFU6UUh1t/KKjLwvhm0GZzDT4QSlxVbeDqPDb5Oq 0Q9f1nlwfWPiT8DtFhKtYfpUPIDjQ3Qok9K6U9l/XG5FmV600iKQgUWHN6Z8f2B577WZtb BDhnZmKhLeijwR/xH1h73WXMwcXyQJk7888QhJxGQGjjgIwn9tQjoC//By+Gbw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmWQS5mZNzm9F; Mon, 28 Apr 2025 17:58: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 53SHwOm8044996; Mon, 28 Apr 2025 17:58:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SHwO6M044993; Mon, 28 Apr 2025 17:58:24 GMT (envelope-from git) Date: Mon, 28 Apr 2025 17:58:24 GMT Message-Id: <202504281758.53SHwO6M044993@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Cy Schubert Subject: git: 6aeec6a74197 - main - wpa_supplicant: Use PF_LOCAL instead of PF_INET* 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: cy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6aeec6a741975143f53feabceb1726d5033aafd6 Auto-Submitted: auto-generated The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=6aeec6a741975143f53feabceb1726d5033aafd6 commit 6aeec6a741975143f53feabceb1726d5033aafd6 Author: Cy Schubert AuthorDate: 2025-04-28 01:16:37 +0000 Commit: Cy Schubert CommitDate: 2025-04-28 17:19:50 +0000 wpa_supplicant: Use PF_LOCAL instead of PF_INET* Using a local socket circumvents the issue of needing any Internet protocol (PF_INET or PF_INET6) support. We only use interface ("i" group) ioctls on this socket so we can get away with using PF_LOCAL instead of requring any Internet protocol (PF_INET or PF_INET6) support on the system. This simplifies the patch from 8c7149c73f8f. PR: 286259 Noted by: kevans Fixes: 8c7149c73f8f MFC after: 2 weeks Reviewed by: kevans, philip, zarychtam_plan-b.pwste.edu.pl (mzar) Differential revision: https://reviews.freebsd.org/D50050 --- contrib/wpa/src/drivers/driver_bsd.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/contrib/wpa/src/drivers/driver_bsd.c b/contrib/wpa/src/drivers/driver_bsd.c index d23d720789f9..3c1ff1b88044 100644 --- a/contrib/wpa/src/drivers/driver_bsd.c +++ b/contrib/wpa/src/drivers/driver_bsd.c @@ -1798,21 +1798,11 @@ bsd_global_init(void *ctx) global->ctx = ctx; dl_list_init(&global->ifaces); - global->sock = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); + global->sock = socket(PF_LOCAL, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (global->sock < 0) { - if (errno == EAFNOSUPPORT) { - wpa_printf(MSG_INFO, "INET not supported, trying INET6..."); - global->sock = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0); - if (global->sock < 0) { - wpa_printf(MSG_ERROR, "socket[PF_INET6,SOCK_DGRAM]: %s", - strerror(errno)); - goto fail1; - } - } else { - wpa_printf(MSG_ERROR, "socket[PF_INET,SOCK_DGRAM]: %s", + wpa_printf(MSG_ERROR, "socket[PF_LOCAL,SOCK_DGRAM]: %s", strerror(errno)); goto fail1; - } } global->route = socket(PF_ROUTE, From nobody Mon Apr 28 18:21:11 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 4ZmWwl4M90z5thb5; Mon, 28 Apr 2025 18:21: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 4ZmWwl3Npyz3YJw; Mon, 28 Apr 2025 18:21:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745864471; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nZQHaH9f56HP7/eGGhPAV16hmEvMamVhyPNo2aMCYJA=; b=T+O/hLbVe0DzIMuMq+3eWDVj8+H0kf3omC5AN+HeJzNVTfIjDJlsqVad9H/ttPyixbNSl0 jheR+SwpNZu9qtnnp5lPLLdDQ3fvptfsOLXybLhuVz7kICnlnvn2QngkKul4iHtnTtuFJ8 kzzPscAKddcF8ReI4t84Q8JJoA0V++1qWUNBcxSkN1HI4bkrZDEMmbQ9kl4w3lxGAKP0hz aeI2V0qQKwovK6OcmnjYkdI/7n8LtYR0rwfAzFW5Xrfp8lIdprPr2+9PnlAGf20KKtr3Qv Jfr2GlxIYFMexwEVq0Ypo1h9Ast41s+B2fdh3Quy343A9O9whgT5VbboiOcmjg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745864471; a=rsa-sha256; cv=none; b=yBm2moY1mxdekPxzyVojEce/kIW7jxLnLQrl2jQMExpTgejesr6St5gyUuNQycrErZ9mXk dHirnF9VERoedZIJEf+1T8S9mSukR+ozqTS7aqx/LYM4t3KMpf8OTroIvQcIzwCzKL+XU8 onMLQ/f86d+LpQvoNs6VcVIjrrJ2iMjNdQ3wzLdzpy3b8JFGXWyDu6weFNfJCfWD9qiBQP l3EGTY0k1hrbHbj9BkMGpZG5E2BiqYhFFTw/anlY6snUiVHn8mt1EAZq0iMPfZXx/MT129 SiZNQTOh3wjr/pdKdKGPsg0ehH+rxVDMye6PIbJEQ/OQhMgL0tuklrJR3LGkJw== 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=1745864471; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nZQHaH9f56HP7/eGGhPAV16hmEvMamVhyPNo2aMCYJA=; b=I65GvrBl1hkjn2zFWA57f/aSO7SqjCLwM2zAaKFlqzq1xHXWPNQX6hpdvGNf8XzDto99Dg c6BD2wBKYTfjZOmcM4VCq+ULxsYDl2S3l+BT/i9RBXju5NGNDA74rocreOzlGjJS44cSyB g5yPld5e54Ci1CzmXZaigIRxeDnT1Nwr/isuoXkr07/lDmlyGYwXoM/sHJ47lyid/qYxQJ RQR0Zc3vh4MmdJligd/ovSstWW13ANwwglf23RqT62NdPQZdVVYgvTpqdTUrvcrkysdp/m QSV8bvRQYiGiRskd3sPv4Uule/U5R9mj31jc8urssAGw2iuqxWxpbFSaNy7dJg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmWwl2gtyzmVl; Mon, 28 Apr 2025 18:21: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 53SILBZ0093140; Mon, 28 Apr 2025 18:21:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SILB7X093137; Mon, 28 Apr 2025 18:21:11 GMT (envelope-from git) Date: Mon, 28 Apr 2025 18:21:11 GMT Message-Id: <202504281821.53SILB7X093137@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: eeb2d4ffe95b - main - sysrc: Add some regressions tests 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: eeb2d4ffe95b4332811c14b56cfdf5fc6ea821b0 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=eeb2d4ffe95b4332811c14b56cfdf5fc6ea821b0 commit eeb2d4ffe95b4332811c14b56cfdf5fc6ea821b0 Author: Michal Scigocki AuthorDate: 2025-04-14 07:00:07 +0000 Commit: Mark Johnston CommitDate: 2025-04-28 18:18:08 +0000 sysrc: Add some regressions tests Reviewed by: markj MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1664 --- etc/mtree/BSD.tests.dist | 2 + usr.sbin/sysrc/Makefile | 5 + usr.sbin/sysrc/tests/Makefile | 3 + usr.sbin/sysrc/tests/sysrc_test.sh | 351 +++++++++++++++++++++++++++++++++++++ 4 files changed, 361 insertions(+) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 673452434080..22b9686fb761 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1277,6 +1277,8 @@ .. syslogd .. + sysrc + .. .. .. diff --git a/usr.sbin/sysrc/Makefile b/usr.sbin/sysrc/Makefile index 0f2f98e8b0e8..e1f48f2af97b 100644 --- a/usr.sbin/sysrc/Makefile +++ b/usr.sbin/sysrc/Makefile @@ -1,5 +1,10 @@ +.include + SCRIPTS= sysrc MAN= sysrc.8 +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include diff --git a/usr.sbin/sysrc/tests/Makefile b/usr.sbin/sysrc/tests/Makefile new file mode 100644 index 000000000000..8b4bad96f4cc --- /dev/null +++ b/usr.sbin/sysrc/tests/Makefile @@ -0,0 +1,3 @@ +ATF_TESTS_SH+= sysrc_test + +.include diff --git a/usr.sbin/sysrc/tests/sysrc_test.sh b/usr.sbin/sysrc/tests/sysrc_test.sh new file mode 100644 index 000000000000..fa79e6262c21 --- /dev/null +++ b/usr.sbin/sysrc/tests/sysrc_test.sh @@ -0,0 +1,351 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2025 Michal Scigocki +# + +readonly SYSRC_CONF="${PWD}/sysrc_test.conf" + +atf_test_case check_variable +check_variable_head() +{ + atf_set "descr" "Check rc variable" +} +check_variable_body() +{ + cat <<- EOF > "${SYSRC_CONF}" + test_enable="NO" + test_list="item1 item2" + test2_list="" + EOF + + atf_check -o inline:"test_enable: NO\n" \ + sysrc -f "${SYSRC_CONF}" test_enable + atf_check -o inline:"test2_list: \n" \ + sysrc -f "${SYSRC_CONF}" test2_list + atf_check -o inline:"test_enable: NO\ntest_list: item1 item2\n" \ + sysrc -f "${SYSRC_CONF}" test_enable test_list + atf_check -e inline:"sysrc: unknown variable 'noexist'\n" \ + -s exit:1 sysrc -f "${SYSRC_CONF}" noexist + atf_check -e inline:"sysrc: unknown variable 'noexist'\n" \ + -s exit:1 -o inline:"test_enable: NO\n" \ + sysrc -f "${SYSRC_CONF}" test_enable noexist +} + +atf_test_case set_variable +set_variable_head() +{ + atf_set "descr" "Set rc variable" +} +set_variable_body() +{ + # Previously unset variable + atf_check -o inline:"test_enable: -> YES\n" \ + sysrc -f "${SYSRC_CONF}" test_enable=YES + atf_check -o inline:'test_enable="YES"\n' cat "${SYSRC_CONF}" + # Change set variable + atf_check -o inline:"test_enable: YES -> YES\n" \ + sysrc -f "${SYSRC_CONF}" test_enable=YES + atf_check -o inline:'test_enable="YES"\n' cat "${SYSRC_CONF}" + atf_check -o inline:"test_enable: YES -> NO\n" \ + sysrc -f "${SYSRC_CONF}" test_enable=NO + atf_check -o inline:'test_enable="NO"\n' cat "${SYSRC_CONF}" + # Set an empty variable + atf_check -o inline:"test2_enable: -> \n" \ + sysrc -f "${SYSRC_CONF}" test2_enable="" + atf_check -o inline:'test_enable="NO"\ntest2_enable=""\n' \ + cat "${SYSRC_CONF}" +} + +atf_test_case remove_variable_x_flag +remove_variable_x_flag_head() +{ + atf_set "descr" "Remove rc variable (-x flag)" +} +remove_variable_x_flag_body() +{ + cat <<- EOF > "${SYSRC_CONF}" + test1_enable="YES" + test2_enable="NO" + test3_enable="" + EOF + + atf_check sysrc -f "${SYSRC_CONF}" -x test1_enable + atf_check -o inline:'test2_enable="NO"\ntest3_enable=""\n' \ + cat "${SYSRC_CONF}" + atf_check sysrc -f "${SYSRC_CONF}" -x test2_enable test3_enable + atf_check -o empty cat "${SYSRC_CONF}" + atf_check -e inline:"sysrc: unknown variable 'noexist'\n"\ + -s exit:1 sysrc -f "${SYSRC_CONF}" -x noexist +} + +atf_test_case append_list +append_list_head() +{ + atf_set "descr" "Append rc variable to list" +} +append_list_body() +{ + atf_check -o inline:"test_list: -> item1\n" \ + sysrc -f "${SYSRC_CONF}" test_list+=item1 + atf_check -o inline:'test_list="item1"\n' cat "${SYSRC_CONF}" + atf_check -o inline:"test_list: item1 -> item1\n" \ + sysrc -f "${SYSRC_CONF}" test_list+=item1 + atf_check -o inline:'test_list="item1"\n' cat "${SYSRC_CONF}" + atf_check -o inline:"test_list: item1 -> item1 item2\n" \ + sysrc -f "${SYSRC_CONF}" test_list+=item2 + atf_check -o inline:'test_list="item1 item2"\n' \ + cat "${SYSRC_CONF}" +} + +atf_test_case subtract_list +subtract_list_head() +{ + atf_set "descr" "Subtract rc variable from list" +} +subtract_list_body() +{ + echo 'test_list="item1 item2"' > "${SYSRC_CONF}" + + atf_check -o inline:"test_list: item1 item2 -> item1\n" \ + sysrc -f "${SYSRC_CONF}" test_list-=item2 + atf_check -o inline:'test_list="item1"\n' cat "${SYSRC_CONF}" + atf_check -o inline:"test_list: item1 -> \n" \ + sysrc -f "${SYSRC_CONF}" test_list-=item1 + atf_check -o inline:'test_list=""\n' cat "${SYSRC_CONF}" + atf_check -o inline:"test_list: -> \n" \ + sysrc -f "${SYSRC_CONF}" test_list-=item3 + atf_check -o inline:'test_list=""\n' cat "${SYSRC_CONF}" + + # Subtracting a non-existant rc variable results in an empty variable + # being created. This is by design, see sysrc(8). + atf_check -s exit:1 grep test2_list "${SYSRC_CONF}" + atf_check -o inline:"test2_list: -> \n" \ + sysrc -f "${SYSRC_CONF}" test2_list-=item1 + atf_check -o inline:'test_list=""\ntest2_list=""\n' \ + cat "${SYSRC_CONF}" +} + +atf_test_case multiple_operations +multiple_operations_head() +{ + atf_set "descr" "Check performing multiple operations on rc variables" +} +multiple_operations_body() +{ + atf_check -o inline:"test1_enable: -> YES\ntest1_list: -> item1\n" \ + sysrc -f "${SYSRC_CONF}" test1_enable=YES test1_list+=item1 + atf_check -o inline:'test1_enable="YES"\ntest1_list="item1"\n' \ + cat "${SYSRC_CONF}" + + # The trailing space on line "^test1_list:" is necessary. + cat <<- EOF > expected + test1_enable: YES + test1_enable: YES -> NO + test2_enable: -> YES + test1_list: item1 -> + test2_list: -> item3 + EOF + atf_check -s exit:1 -e inline:"sysrc: unknown variable 'noexist'\n" \ + -o file:expected sysrc -f "${SYSRC_CONF}" test1_enable \ + test1_enable=NO noexist test2_enable=YES test1_list-=item1 \ + test2_list+=item3 + + cat <<- EOF > expected + test1_enable="NO" + test1_list="" + test2_enable="YES" + test2_list="item3" + EOF + atf_check -o file:expected cat "${SYSRC_CONF}" +} + +atf_test_case a_flag +a_flag_head() +{ + atf_set "descr" "Verify -a behavior" +} +a_flag_body() +{ + echo 'test_enable="YES"' > "${SYSRC_CONF}" + + atf_check -o inline:"test_enable: YES\n" sysrc -f "${SYSRC_CONF}" -a +} + +atf_test_case A_flag cleanup +A_flag_head() +{ + atf_set "descr" "Verify -A behavior" +} +A_flag_body() +{ + RC_DEFAULTS="${PWD}/rc_defaults.conf" + echo "rc_conf_files=\"${SYSRC_CONF}\"" > "${RC_DEFAULTS}" + echo 'test_enable="NO"' >> "${RC_DEFAULTS}" + echo 'test_enable="YES"' > "${SYSRC_CONF}" + + export RC_DEFAULTS + + # sysrc is coupled to the "source_rc_confs" sh(1) script function in + # /etc/defaults/rc.conf. For this test we use a custom default + # rc.conf file that is missing the "source_rc_confs" function, which + # causes sysrc to print an error message. While the coupling exists, + # we assume the error message is expected behaviour instead of just + # ignoring the stderr output to make sure we don't ignore other error + # messages in case of future regressions. + atf_check -e inline:"/usr/sbin/sysrc: source_rc_confs: not found\n" \ + -o inline:"rc_conf_files: ${SYSRC_CONF}\ntest_enable: NO\n" \ + sysrc -A + # Because "source_rc_confs" does not exist in our custom default + # rc.conf file, we cannot get sysrc to load the other SYSRC_CONF file + # to compare results. We can only verify that configuration variables + # get read from the RC_DEFAULTS file. +} +A_flag_cleanup() +{ + unset RC_DEFAULTS +} + +atf_test_case c_flag +c_flag_head() +{ + atf_set "descr" "Verify -c behavior" +} +c_flag_body() +{ + echo 'test_enable="NO"' > "${SYSRC_CONF}" + echo 'test_list="item1 item2"' >> "${SYSRC_CONF}" + + # Test if rc variable is set + atf_check sysrc -f "${SYSRC_CONF}" -c test_enable + atf_check sysrc -f "${SYSRC_CONF}" -c test_list + atf_check sysrc -f "${SYSRC_CONF}" -c test_enable test_list + atf_check -e inline:"sysrc: unknown variable 'noexist'\n"\ + -s exit:1 sysrc -f "${SYSRC_CONF}" -c noexist + atf_check -e inline:"sysrc: unknown variable 'noexist'\n"\ + -s exit:1 sysrc -f "${SYSRC_CONF}" -c test_enable noexist + + cat <<- EOF > expected_err + sysrc: unknown variable 'noexist1' + sysrc: unknown variable 'noexist2' + EOF + atf_check -e file:expected_err -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c noexist1 noexist2 + + # Test rc variable assignment + atf_check sysrc -f "${SYSRC_CONF}" -c test_enable=NO + atf_check -s exit:1 sysrc -f "${SYSRC_CONF}" -c test_enable=YES + atf_check -s exit:1 sysrc -f "${SYSRC_CONF}" -c noexist=YES + + # Test appending rc variables + atf_check sysrc -f "${SYSRC_CONF}" -c test_list+=item1 + atf_check -s exit:1 sysrc -f "${SYSRC_CONF}" -c test_list+=item3 + atf_check -s exit:1 sysrc -f "${SYSRC_CONF}" -c noexist+=item1 + atf_check sysrc -f "${SYSRC_CONF}" -c test_enable=NO test_list+=item1 + atf_check -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c test_enable=YES test_list+=item1 + atf_check -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c test_enable=NO test_list+=item3 + atf_check -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c test_enable=YES test_list+=item3 + + # Test subracting rc variables + atf_check sysrc -f "${SYSRC_CONF}" -c test_list-=item3 + atf_check -s exit:1 sysrc -f "${SYSRC_CONF}" -c test_list-=item1 + atf_check -s exit:1 sysrc -f "${SYSRC_CONF}" -c noexist-=item1 + atf_check sysrc -f "${SYSRC_CONF}" -c test_enable=NO test_list-=item3 + atf_check -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c test_enable=YES test_list-=item3 + atf_check -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c test_enable=NO test_list-=item1 + atf_check -s exit:1 \ + sysrc -f "${SYSRC_CONF}" -c test_enable=YES test_list-=item1 +} + +atf_test_case d_flag cleanup +d_flag_head() +{ + atf_set "descr" "Verify -f behavior" +} +d_flag_body() +{ + echo 'test_enable="NO" # Test Description' > "${SYSRC_CONF}" + + export RC_DEFAULTS="${SYSRC_CONF}" + + atf_check -o inline:'test_enable: Test Description\n' \ + sysrc -d test_enable +} +d_flag_cleanup() +{ + unset RC_DEFAULTS +} + +atf_test_case f_flag +f_flag_head() +{ + atf_set "descr" "Verify -f behavior" +} +f_flag_body() +{ + local sysrc2_conf="${PWD}/sysrc2.conf" + echo 'test_list="item1"' > "${sysrc2_conf}" + echo 'test_enable="NO"' >> "${sysrc2_conf}" + + atf_check test ! -f "${SYSRC_CONF}" + atf_check -e inline:"sysrc: unknown variable 'noexist'\n" \ + -s exit:1 sysrc -f "${SYSRC_CONF}" noexist + atf_check test ! -f "${SYSRC_CONF}" + atf_check -o inline:"test_enable: -> YES\n" \ + sysrc -f "${SYSRC_CONF}" test_enable=YES + atf_check test -f "${SYSRC_CONF}" + atf_check -o inline:"test_enable: YES\n" \ + sysrc -f "${SYSRC_CONF}" test_enable + # -f file order impacts final settings + atf_check -o inline:"test_enable: YES\n" \ + sysrc -f "${sysrc2_conf}" -f "${SYSRC_CONF}" test_enable + atf_check -o inline:"test_enable: NO\n" \ + sysrc -f "${SYSRC_CONF}" -f "${sysrc2_conf}" test_enable + atf_check -o inline:"test_enable: YES\ntest_list: item1\n" \ + sysrc -f "${sysrc2_conf}" -f "${SYSRC_CONF}" -a +} + +atf_test_case F_flag +F_flag_head() +{ + atf_set "descr" "Verify -F behavior" +} +F_flag_body() +{ + local sysrc2_conf="${PWD}/sysrc2.conf" + echo 'test_list="item1"' > "${sysrc2_conf}" + echo 'test_enable="NO"' > "${SYSRC_CONF}" + + atf_check -o inline:"test_enable: ${SYSRC_CONF}\n" \ + sysrc -f "${SYSRC_CONF}" -F test_enable + atf_check -o inline:"test_list: ${sysrc2_conf}\n" \ + sysrc -f "${sysrc2_conf}" -F test_list + + cat <<- EOF > expected + test_enable: ${SYSRC_CONF} + test_list: ${sysrc2_conf} + EOF + atf_check -o file:expected sysrc -f "${SYSRC_CONF}" \ + -f ${sysrc2_conf} -F test_enable test_list +} + +atf_init_test_cases() +{ + atf_add_test_case check_variable + atf_add_test_case set_variable + atf_add_test_case remove_variable_x_flag + atf_add_test_case append_list + atf_add_test_case subtract_list + atf_add_test_case multiple_operations + atf_add_test_case a_flag + atf_add_test_case A_flag + atf_add_test_case c_flag + atf_add_test_case d_flag + atf_add_test_case f_flag + atf_add_test_case F_flag +} From nobody Mon Apr 28 18:21:13 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 4ZmWwq2PwRz5thLL; Mon, 28 Apr 2025 18:21: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 4ZmWwn4jVxz3Y1N; Mon, 28 Apr 2025 18:21:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745864473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O0aZw/PDAojyHAT09Ir6SjPnDzeZxdGiKyifZ2X4lvs=; b=Iz4i5P6/HNKNpwDb9hk9YSDB+alnPuMwzXjJWlMuLrmIpoSvsSEnZXpHaLgAfwk0qIwdp+ 1865x4GAhteU6aT2hcEMA+9Szdkml6pHiUkUMr7OrIPSu7GjSf1smFjFnwbLZMwCvl2IvZ Crl33tDeFnz3zW/O/WIXnEaP+8ETKyNFXftx7akyTkLrmzFMpOQ2vw5AwO6yAlAcv2csmb e9b0UOfkw3fPg+E3txo+nFRZbsv466e/gGx5sklxpvkLBUe3NnYDyrtI611DMNKBTYmpIU KY8CM4G+uBpwNXPYVuUasFoKpOi9ZXJGyYjSw0UfWDHXvrMBwoeP0az6UN3gzQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745864473; a=rsa-sha256; cv=none; b=qmVUacSd5tByOt8d41fKp+zNZ3sBPKTaqr1WmWAdGKhsD+IOmj8aQ+5fHim6ZD77uixRfs LZgRvmRLtPY533A2qUa2XtR94sn6eOXI/C//QVKFlg0hSydGjZ90+7leo9M8LJFJybaPKX Uf8OrShiyVftI3CFMSx1poW192pkS65DjnjD6+TJ5pqo9fSjhjNijF3QnN27qxajBkK5Xz aBv2fYM7DJ2mXGflM4c+VjWjEtZnL85tcB7ZF8vTMPD4PXVlnLAfpT3Dl+Iqph8kHZZ+xX Ob2EYkZ1wIa6LgsUxitTADxMSMbIbe55BAsvJulbuQdMr2JyMIIFQOwBYlMUeA== 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=1745864473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O0aZw/PDAojyHAT09Ir6SjPnDzeZxdGiKyifZ2X4lvs=; b=A1PKIQh8V2AI4eAEaeKkV8IMr9YgANAyyblm0NyHT3d7ZUsjwQtwHZiFZWee4Ui0ekkiX2 l3TxGdqntUeAow0KICem5n9bgWWJJQXWyEQx4uKOlo7RFwNny5YFQO/hfCNknyEZtnziO0 EbuI0PmwOCv+tx03h2eZjegDaHb305ZENA/tv2RmqymaS8m/xnE7L7DrGwkEMlgx1LAu7E M2Cbiiiny77NT601se4CZgloBO7kQeDKe8gr56elAXzVBfMid/otoYe28P4aS5ZTB1KFtz t90p6O7qTk2UyrCoQnaRY/KOwHcSYoonBDTyiqOjfMAB5YT289UDKz4Y4SKYBQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmWwn4JxyzmfZ; Mon, 28 Apr 2025 18:21:13 +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 53SILDEJ093205; Mon, 28 Apr 2025 18:21:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SILDfI093202; Mon, 28 Apr 2025 18:21:13 GMT (envelope-from git) Date: Mon, 28 Apr 2025 18:21:13 GMT Message-Id: <202504281821.53SILDfI093202@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: 3e5550d25c6d - main - du: Add regression tests 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: 3e5550d25c6d614f422506373f7068c6c366fa85 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3e5550d25c6d614f422506373f7068c6c366fa85 commit 3e5550d25c6d614f422506373f7068c6c366fa85 Author: Michal Scigocki AuthorDate: 2025-04-07 11:08:57 +0000 Commit: Mark Johnston CommitDate: 2025-04-28 18:20:23 +0000 du: Add regression tests Reviewed by: markj MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1648 --- usr.bin/du/tests/du_test.sh | 130 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 129 insertions(+), 1 deletion(-) diff --git a/usr.bin/du/tests/du_test.sh b/usr.bin/du/tests/du_test.sh index 0d7fc404b437..27076be8dc3e 100755 --- a/usr.bin/du/tests/du_test.sh +++ b/usr.bin/du/tests/du_test.sh @@ -97,6 +97,47 @@ I_flag_body() atf_check diff -u du.out du_I.out } +atf_test_case L_flag +L_flag_head() +{ + atf_set "descr" "Verify -L behavior" +} +L_flag_body() +{ + atf_check mkdir -p testdir1 + atf_check truncate -s 8192 testdir1/A + atf_check ln -s A testdir1/B + atf_check -o inline:'9\ttestdir1\n' du -A testdir1 + atf_check -o inline:'17\ttestdir1\n' du -AL testdir1 +} + +atf_test_case P_flag +P_flag_head() +{ + atf_set "descr" "Verify -P behavior" +} +P_flag_body() +{ + atf_check mkdir -p testdir1 + atf_check truncate -s 8192 testdir1/A + atf_check ln -s A testdir1/B + atf_check -o inline:'9\ttestdir1\n' du -A testdir1 + atf_check -o inline:'9\ttestdir1\n' du -AP testdir1 +} + +atf_test_case a_flag +a_flag_head() +{ + atf_set "descr" "Verify -a behavior" +} +a_flag_body() +{ + atf_check mkdir -p testdir1 + atf_check truncate -s 0 testdir1/A + atf_check -o inline:'1\ttestdir1\n' du -A testdir1 + atf_check -o inline:'0\ttestdir1/A\n1\ttestdir1\n' du -Aa testdir1 +} + atf_test_case c_flag c_flag_head() { @@ -104,7 +145,23 @@ c_flag_head() } c_flag_body() { - atf_check truncate -s 0 foo bar + atf_check truncate -s 8192 foo bar + atf_check -o inline:'8\tfoo\n8\tbar\n' du -A foo bar + atf_check -o inline:'8\tfoo\n8\tbar\n16\ttotal\n' du -Ac foo bar +} + +atf_test_case d_flag +d_flag_head() +{ + atf_set "descr" "Verify -d behavior" +} +d_flag_body() +{ + atf_check mkdir -p d0/d1/d2 + atf_check -o inline:'2\td0\n' du -A -d 0 d0 + atf_check -o inline:'1\td0/d1\n2\td0\n' du -A -d 1 d0 + atf_check -o inline:'1\td0/d1/d2\n1\td0/d1\n2\td0\n' du -A -d 2 d0 + atf_check -o inline:'1\td0/d1/d2\n1\td0/d1\n2\td0\n' du -A -d 3 d0 } atf_test_case g_flag @@ -149,6 +206,19 @@ k_flag_body() atf_check -o inline:'1\tA\n1024\tB\n' du -Ak A B } +atf_test_case l_flag +l_flag_head() +{ + atf_set "descr" "Verify -l output" +} +l_flag_body() +{ + atf_check truncate -s 0 A + atf_check ln A B + atf_check -o inline:'0\tA\n' du -A A B + atf_check -o inline:'0\tA\n0\tB\n' du -Al A B +} + atf_test_case m_flag m_flag_head() { @@ -162,6 +232,36 @@ m_flag_body() atf_check -o inline:'1\tA\n1\tB\n1024\tC\n' du -Am A B C } +atf_test_case n_flag +n_flag_head() +{ + atf_set "descr" "Verify -n output" +} +n_flag_body() +{ + atf_check truncate -s 0 A + atf_check truncate -s 0 B + atf_check -o inline:'0\tA\n0\tB\n' du -An A B + atf_check chflags nodump B + atf_check -o inline:'0\tA\n' du -An A B +} + +atf_test_case s_flag +s_flag_head() +{ + atf_set "descr" "Verify -s behavior" +} +s_flag_body() +{ + atf_check mkdir -p testdir1/testdir2 + atf_check truncate -s 0 testdir1/A testdir1/testdir2/B + atf_check -o inline:'1\ttestdir1\n' du -As testdir1 + atf_check -o inline:'0\ttestdir1/A\n' du -As testdir1/A + atf_check -o inline:'1\ttestdir1/testdir2\n' du -As testdir1/testdir2 + atf_check -o inline:'0\ttestdir1/testdir2/B\n' \ + du -As testdir1/testdir2/B +} + atf_test_case si_flag si_flag_head() { @@ -176,14 +276,42 @@ si_flag_body() atf_check -o inline:'1.5M\tA\n1.6M\tB\n' du -A --si A B } +atf_add_test_case t_flag +t_flag_head() +{ + atf_set "descr" "Verify -t output" +} +t_flag_body() +{ + atf_check mkdir -p testdir1/testdir2 + atf_check truncate -s 8192 testdir1/A testdir1/testdir2/B + + atf_check -o inline:'17\ttestdir1\n' du -At 10240 testdir1 + atf_check -o inline:'9\ttestdir1/testdir2\n' du -At -10240 testdir1 + atf_check -o inline:'9\ttestdir1/testdir2\n17\ttestdir1\n' \ + du -Aat 9216 testdir1 + atf_check -o save:du.out du -Aat -9216 testdir1 + atf_check -o inline:'8\ttestdir1/A\n8\ttestdir1/testdir2/B\n' \ + sort du.out +} + atf_init_test_cases() { atf_add_test_case A_flag atf_add_test_case H_flag atf_add_test_case I_flag + atf_add_test_case L_flag + atf_add_test_case P_flag + atf_add_test_case a_flag + atf_add_test_case c_flag + atf_add_test_case d_flag atf_add_test_case g_flag atf_add_test_case h_flag atf_add_test_case k_flag + atf_add_test_case l_flag atf_add_test_case m_flag + atf_add_test_case n_flag + atf_add_test_case s_flag atf_add_test_case si_flag + atf_add_test_case t_flag } From nobody Mon Apr 28 18:21:12 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 4ZmWwn3VSNz5thSM; Mon, 28 Apr 2025 18:21:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmWwm5MM6z3YW2; Mon, 28 Apr 2025 18:21:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745864472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R/zsRkPhqa4viI7kLT5SP4/Vc+UPrYz7VX+7LMcgTQg=; b=VDCNGN2RCSA1MTmAYgdsFUIPrJTfJ2SXtM+FI8UZIDkiyTtOZf52vKpi6U3AIgHygi9ViI 2sAo17v5nge7FtTAF8vhjytZYhCqjR4nNMuZfWkrkcJzgA9sYZN1AHR4B37mS5cHUVgeT3 iCd9pUTpwySgcCaW+EWH/MDPkwqsj2s9ZbB8EH05eoz+Cch/yMVc6XU22iBvd5lW5z0ueJ Yd7mHpxhWTfD1no8Rbxv3iWuCGl4WOzZB5SAQV7UWw3nI4QI6SDrZZO2AHHE5dyOQJJSjo 9q0IlSifl+36tv8ZJYAqEuz3KW6/qKHT2oGWTuWwckC+hfoMMgCNIbyEYoC50g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745864472; a=rsa-sha256; cv=none; b=X9/yjsidMezzIVtM480dGWrGb3bAdZ4yEeVZfGMg4kR2C8SPETs0D/xFIODpEuLIq+lxyV gww82MgvIZjoT2s0skm4UCl6iLdHNfdsJs79OuzqCeTsAf2j+TddxhszyI0OTC69yAJL/D cemya2Mv/70/402f0w2fTXkw81byNGoOTj02lw9cVSOXYeGS6/XU1+PMuOipS6dX4Yk75F m7nCNQp7adp3Vl6tLb+Gbgg/SZ/VODoEEg6wBcz/8IpT7Ju02svPwfvrHbhtFRbgQB8Z8S UTRq+fwFsUrmqMVEJX7BxpNlGUqy7G3Wi7FQYtv4VOAg0oMwta4xUlnJS8SZWw== 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=1745864472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R/zsRkPhqa4viI7kLT5SP4/Vc+UPrYz7VX+7LMcgTQg=; b=cZuruOev5XhQ2qp+Um9dDaZfYX2CmUbX2a82sc0ODzE0qqJ42ZBPKLA3WVEWqnNiPymFAz ZspwJ/I3Wk1pKPYz2oTWWMwXPiE0KipucJgJCQfBkGXU/b+1mAwYkwSQXBcDRloMj81EwF zzsRiVTuYSfYJxSnoTuKCUjwb1wiEMroGjuzGO+bywWx42H09mfW7eWoZa+h19ocumdFGP PVRHTho042c8/1OVSv7HipDpQzc6M5XlKP50sRnF3lw6yX37Lkum6+Tpop5jpEEJubq0jD 6kIrw/JvuZBXxoUtGpYHqRLSCXOsndUS5q1LIOUnPFrHX+Khs3Oz9nxvdqT7vg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmWwm3dVtzmGW; Mon, 28 Apr 2025 18:21:12 +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 53SILCAs093172; Mon, 28 Apr 2025 18:21:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SILC86093169; Mon, 28 Apr 2025 18:21:12 GMT (envelope-from git) Date: Mon, 28 Apr 2025 18:21:12 GMT Message-Id: <202504281821.53SILC86093169@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: c97460c4d97d - main - sysrc: Fix check flag logic for append and subtract 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: c97460c4d97db1bd46dab9f2bdbc90cd1ed7757f Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c97460c4d97db1bd46dab9f2bdbc90cd1ed7757f commit c97460c4d97db1bd46dab9f2bdbc90cd1ed7757f Author: Michal Scigocki AuthorDate: 2025-04-14 07:01:06 +0000 Commit: Mark Johnston CommitDate: 2025-04-28 18:18:08 +0000 sysrc: Fix check flag logic for append and subtract When using sysrc with the check flag (-c), the append (+=) and subtract (-=) operations result in incorrect return values because on the check path the necessary union/difference calculation logic is not performed. However, the correct union/difference calculation is already performed when running without the check flag. We fix the issue on the check path by using the results from the existing union/difference calculation in the check logic to get the correct return values. PR: 279200 Reviewed by: markj MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1664 --- usr.sbin/sysrc/sysrc | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/usr.sbin/sysrc/sysrc b/usr.sbin/sysrc/sysrc index 1766cf7ab835..625ff5ca4efd 100644 --- a/usr.sbin/sysrc/sysrc +++ b/usr.sbin/sysrc/sysrc @@ -764,33 +764,6 @@ while [ $# -gt 0 ]; do continue fi - # - # If `-c' is passed, simply compare and move on - # - if [ "$CHECK_ONLY" ]; then - if ! IGNORED=$( f_sysrc_get "$NAME?" ); then - status=$FAILURE - [ "$VERBOSE" ] && - echo "$NAME: not currently set" - shift 1 - continue - fi - value=$( f_sysrc_get "$NAME" ) - if [ "$value" != "${1#*=}" ]; then - status=$FAILURE - if [ "$VERBOSE" ]; then - echo -n "$( f_sysrc_find "$NAME" ): " - echo -n "$NAME: would change from " - echo "\`$value' to \`${1#*=}'" - fi - elif [ "$VERBOSE" ]; then - echo -n "$( f_sysrc_find "$NAME" ): " - echo "$NAME: already set to \`$value'" - fi - shift 1 - continue - fi - # # Determine both `before' value and appropriate `new' value # @@ -848,6 +821,31 @@ while [ $# -gt 0 ]; do new="${1#*=}" esac + # + # If `-c' is passed, simply compare and move on + # + if [ "$CHECK_ONLY" ]; then + if ! IGNORED=$( f_sysrc_get "$NAME?" ); then + status=$FAILURE + [ "$VERBOSE" ] && + echo "$NAME: not currently set" + shift 1 + continue + elif [ "$new" != "$before" ]; then + status=$FAILURE + if [ "$VERBOSE" ]; then + echo -n "$( f_sysrc_find "$NAME" ): " + echo -n "$NAME: would change from " + echo "\`$before' to \`$new'" + fi + elif [ "$VERBOSE" ]; then + echo -n "$( f_sysrc_find "$NAME" ): " + echo "$NAME: already set to \`$before'" + fi + shift 1 + continue + fi + # # If `-N' is passed, simplify the output # From nobody Mon Apr 28 18:21:14 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 4ZmWwq2zqWz5thNw; Mon, 28 Apr 2025 18:21: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 4ZmWwp69pcz3YKB; Mon, 28 Apr 2025 18:21:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745864474; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5ccFEptMPgNYCYF57R/IW6jrdZMc1taFX9RbiQGcnoc=; b=aM0xqeVggMoqK/dWYyS53yqO0AQoveZH7cpSR/5FBxmvB9R1UL5558wG9QL0SywIPy5v8W 4bWzMC7kF2nFV9105nzaHIbGNLAakxAxtaH5r47lQB2ANftsxdfPpmQ/yYijDzTRuUDmeN 2eScQhTFcJ7VYXebtDGgaBH4m8Do2SXJrGCd9FW8CXNKGH2x31GEOji8XDZVTNQfgYx1r9 0OGkqj2whRqm7CNsTpm6+unnalkXpOee4/3zTeLishjeGYrgHA5wLI0TminJ0G0wX3fdAq 6SGjbulkCUa0W+x10pOiZEPNnjTMM6jN5xQGGYbPze6ENWkCcyjfC7quNB8BEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745864474; a=rsa-sha256; cv=none; b=m5nCU/UvyxiSKRYEp+t42KOOROb90wL50DjvH+a8y97KCs5WmoOXZjLZctnOo/vBO16u88 lX26dB0q4BGFoSkhS2nCKQaoUy+bBXa1RhhxjnMSKhx6JLW1v/4SeNQwidwi539ogX2DbV I4eUwy2JQmgBylydbAiZqbmtT3JLEMtuSLKrdoBXNCLnLriGvJP8h6yDqKtQj5wGdyWS8W HTLfm99hb3Ex/KkK8ADkG89ttRr5ABl5QvbiY4H8WdL264gPV+BOWJJSSF7bQNdw8GrYB3 mjRC0tcsXQCRGR25aoorlTp1NWhikbNs74TPdU7FK4utHKT2nNqVKmTe/wsI7w== 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=1745864474; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5ccFEptMPgNYCYF57R/IW6jrdZMc1taFX9RbiQGcnoc=; b=QrGb8YzfKGhOjYqOcQ49cv3/bK5EK7VY9c+T0KT8LbceV93N5+QyQhVk/aoasTeUvcYclq NTPbNQPBevERxre3frc8dP4TR/Ns9MnZg3roeiIYsMzKynk4fIPLb7nXB4jJIGDnLyUOXa +3DDWRrPA/T3vIIzS2/vgbC82pmcIo5R4OPxpzK2jSEMmH1RiV3w7q7n1Eu+ZG/l5IWoJF ZX3Yc6Mc02by1OIdqQEIwoDLIkzh6/ib6fcQ8dAPI+57AwVQCZgbQqBYH3tGvmwv/GH7gg XLSAVEV1P83DampNaMm4CivYJUO/bCDFkwboPX7hocFDUI6pHXL0u76WYuorcQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmWwp5YZVzmgv; Mon, 28 Apr 2025 18:21: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 53SILECS093237; Mon, 28 Apr 2025 18:21:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SILE7B093234; Mon, 28 Apr 2025 18:21:14 GMT (envelope-from git) Date: Mon, 28 Apr 2025 18:21:14 GMT Message-Id: <202504281821.53SILE7B093234@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: 0ae2b9e866d3 - main - du: Fix threshold on non-directory 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0ae2b9e866d3aea1e9141841488561f12603f879 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0ae2b9e866d3aea1e9141841488561f12603f879 commit 0ae2b9e866d3aea1e9141841488561f12603f879 Author: Michal Scigocki AuthorDate: 2025-04-07 11:14:44 +0000 Commit: Mark Johnston CommitDate: 2025-04-28 18:20:37 +0000 du: Fix threshold on non-directory files PR: 265200 Reviewed by: markj MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1648 --- usr.bin/du/du.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/usr.bin/du/du.c b/usr.bin/du/du.c index 185a5cbe4465..5b71ceeb531f 100644 --- a/usr.bin/du/du.c +++ b/usr.bin/du/du.c @@ -322,7 +322,9 @@ main(int argc, char *argv[]) howmany(p->fts_statp->st_size, cblocksize) : howmany(p->fts_statp->st_blocks, cblocksize); - if (aflag || p->fts_level == 0) { + if ((aflag || p->fts_level == 0) && threshold <= + threshold_sign * howmany(curblocks * cblocksize, + blocksize)) { xo_open_instance("paths"); if (hflag > 0) { prthumanval("{:blocks/%4s}", curblocks); From nobody Mon Apr 28 18:21:15 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 4ZmWwr4rY3z5thVc; Mon, 28 Apr 2025 18:21: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 4ZmWwr0B60z3YWH; Mon, 28 Apr 2025 18:21:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745864476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LBelwbX5iKill1fhZfiXfxiMDuDt16jQIGLR7ZkbxN0=; b=acBwEjE8wW1odGpuDJ8XD2NQue6Dv8TXd+I7koK/PvSUWAfV+MfKO+eQEwhccN5eiw7wzw Tm0slepzDAqv83ZySkiiMarqb+kZKzKRlisXjwKe9QIG3MiG+tcOOSLamaJkUm6+OAuvNn sWIk9C+LwrJyvULzGI2y2AbjtFUpfowXivPsjedUJI6itg8SwnnT5kO2JbeZZXkYLoPWI9 Ga0EPy5Bg8W6Oc1MTOIVJZr9i4aQm/nO3lYJ09rzzWJj9is8x+RwS4z1G/XjGCBWd7oSiv uFcBQJJhJgGzuSD2qoNPFUshmIcrsRzKhGt/vgEE6lVBBNpTE7nDXCfCumPb/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745864476; a=rsa-sha256; cv=none; b=sJ3NdbNjWYQNWoAEcovDRxsfPoKp685Y2OXX+oz+DAsASBr9VFdPoiO0WSyYslTN/czSbP kPRfItsPkWGYV94uJYVpOp7ViTESek0JCmEnWcaijNSfTHqNIYrSo+KjftnT0ZTIur+Gnk YdFByQFAmExA+eqwywrh1BGNDlhWAg9ReCUR+YatN9rdE4lcb8ewOlSJL1yFd3KVb0zzh8 ZXEEGGcb3Lq6q7dMcRsXvlQqLzRhtETMF9P3U/igrARhqox/Mh8BndqNHIC34J4exLqQ3k 1t9nmxX2eguK0p8VD25eS+GkLxn8pQrBo1robAn4vtmKR5LviAgdfevKZP2eGw== 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=1745864476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LBelwbX5iKill1fhZfiXfxiMDuDt16jQIGLR7ZkbxN0=; b=hG7mg+RFZ7QXbxiR7HZ5K//rH0hb/3V9ZZXEi9/vSVCIbGp7NBWIQEtbmG9eTMG2FU+wq1 1mQq9r7xUN2p9WPoLgz9jKO/uaxg5/42fCTF6SMPp4j1mM9AjdccfFzOJxqvYOcQaAzgfE 8BM9YUOS5/GiBVYPD5vj5evz8ZUcZwyFfFC76w2Mqvuo6sp48vRRNiYEqywkF+r/KJlkqY B4TVo4wYpRJIqtKv7PAKd5SgpnSVcsgLw+ou+OgCpLOijVD9BNg+6jICfuDq5UfqMpMidB UPbJO1BfX7CF71Y5rgBcQbs8mP0te2Xu/yMeC9rp+1BQwgkPopYNlJgiIY+HWw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmWwq6d98zmgy; Mon, 28 Apr 2025 18:21: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 53SILF0L093271; Mon, 28 Apr 2025 18:21:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SILFjf093268; Mon, 28 Apr 2025 18:21:15 GMT (envelope-from git) Date: Mon, 28 Apr 2025 18:21:15 GMT Message-Id: <202504281821.53SILFjf093268@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: 74a9aac40e42 - main - du: General cleanup and style(9) 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: 74a9aac40e4283503952489645476155a3593954 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=74a9aac40e4283503952489645476155a3593954 commit 74a9aac40e4283503952489645476155a3593954 Author: Michal Scigocki AuthorDate: 2025-04-07 11:36:06 +0000 Commit: Mark Johnston CommitDate: 2025-04-28 18:20:50 +0000 du: General cleanup and style(9) - Refactor duplicate threshold and print code. - Replace obselete fts_bignum with fts_number. - Add missing "--libxo" to usage(). - Minor style(9) fixes. - Update list of POSIX extensions in du(1) man page. Reviewed by: markj MFC after: 1 month Pull Request: https://github.com/freebsd/freebsd-src/pull/1648 --- usr.bin/du/du.1 | 4 +- usr.bin/du/du.c | 129 +++++++++++++++++++++++++++++--------------------------- 2 files changed, 70 insertions(+), 63 deletions(-) diff --git a/usr.bin/du/du.1 b/usr.bin/du/du.1 index 568fded38073..37f7d7837b11 100644 --- a/usr.bin/du/du.1 +++ b/usr.bin/du/du.1 @@ -236,7 +236,9 @@ utility is compliant with the specification. .Pp The flags -.Op Fl cdhP , +.Op Fl ABIPcdghlmnt , +.Op Fl -libxo , +.Op Fl -si , as well as the .Ev BLOCKSIZE environment variable, diff --git a/usr.bin/du/du.c b/usr.bin/du/du.c index 5b71ceeb531f..16ca05fa9edc 100644 --- a/usr.bin/du/du.c +++ b/usr.bin/du/du.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -63,21 +64,24 @@ struct ignentry { SLIST_ENTRY(ignentry) next; }; -static int linkchk(FTSENT *); -static void usage(void); -static void prthumanval(const char *, int64_t); +static bool check_threshold(FTSENT *); static void ignoreadd(const char *); static void ignoreclean(void); static int ignorep(FTSENT *); +static int linkchk(FTSENT *); +static void print_file_size(FTSENT *); +static void prthumanval(const char *, int64_t); +static void record_file_size(FTSENT *); static void siginfo(int __unused); +static void usage(void); static int nodumpflag = 0; static int Aflag, hflag; static long blocksize, cblocksize; static volatile sig_atomic_t info; +static off_t threshold, threshold_sign; -static const struct option long_options[] = -{ +static const struct option long_options[] = { { "si", no_argument, NULL, SI_OPT }, { NULL, no_argument, NULL, 0 }, }; @@ -87,8 +91,7 @@ main(int argc, char *argv[]) { FTS *fts; FTSENT *p; - off_t savednumber, curblocks; - off_t threshold, threshold_sign; + off_t savednumber; int ftsoptions; int depth; int Hflag, Lflag, aflag, sflag, dflag, cflag; @@ -185,7 +188,7 @@ main(int argc, char *argv[]) break; case 'r': /* Compatibility. */ break; - case 't' : + case 't': if (expand_number(optarg, &threshold) != 0 || threshold == 0) { xo_warnx("invalid threshold: %s", optarg); @@ -271,32 +274,15 @@ main(int argc, char *argv[]) if (ignorep(p)) fts_set(fts, p, FTS_SKIP); break; - case FTS_DP: + case FTS_DP: /* Directory files */ if (ignorep(p)) break; - curblocks = Aflag ? - howmany(p->fts_statp->st_size, cblocksize) : - howmany(p->fts_statp->st_blocks, cblocksize); - p->fts_parent->fts_bignum += p->fts_bignum += - curblocks; - - if (p->fts_level <= depth && threshold <= - threshold_sign * howmany(p->fts_bignum * - cblocksize, blocksize)) { - xo_open_instance("paths"); - if (hflag > 0) { - prthumanval("{:blocks/%4s}", - p->fts_bignum); - xo_emit("\t{:path/%s}\n", p->fts_path); - } else { - xo_emit("{:blocks/%jd}\t{:path/%s}\n", - (intmax_t)howmany(p->fts_bignum * - cblocksize, blocksize), - p->fts_path); - } - xo_close_instance("paths"); - } + record_file_size(p); + + if (p->fts_level <= depth && check_threshold(p)) + print_file_size(p); + if (info) { info = 0; (void)printf("\t%s\n", p->fts_path); @@ -310,7 +296,7 @@ main(int argc, char *argv[]) xo_warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; break; - default: + default: /* All other files */ if (ignorep(p)) break; @@ -318,29 +304,12 @@ main(int argc, char *argv[]) linkchk(p)) break; - curblocks = Aflag ? - howmany(p->fts_statp->st_size, cblocksize) : - howmany(p->fts_statp->st_blocks, cblocksize); - - if ((aflag || p->fts_level == 0) && threshold <= - threshold_sign * howmany(curblocks * cblocksize, - blocksize)) { - xo_open_instance("paths"); - if (hflag > 0) { - prthumanval("{:blocks/%4s}", curblocks); - xo_emit("\t{:path/%s}\n", p->fts_path); - } else { - xo_emit("{:blocks/%jd}\t{:path/%s}\n", - (intmax_t)howmany(curblocks * - cblocksize, blocksize), - p->fts_path); - } - xo_close_instance("paths"); - } + record_file_size(p); - p->fts_parent->fts_bignum += curblocks; + if ((aflag || p->fts_level == 0) && check_threshold(p)) + print_file_size(p); } - savednumber = p->fts_parent->fts_bignum; + savednumber = p->fts_parent->fts_number; } xo_close_list("paths"); @@ -441,7 +410,7 @@ linkchk(FTSENT *p) } /* Try to locate this entry in the hash table. */ - hash = ( st->st_dev ^ st->st_ino ) % number_buckets; + hash = (st->st_dev ^ st->st_ino) % number_buckets; for (le = buckets[hash]; le != NULL; le = le->next) { if (le->dev == st->st_dev && le->ino == st->st_ino) { /* @@ -517,10 +486,10 @@ prthumanval(const char *fmt, int64_t bytes) static void usage(void) { - xo_error( - "usage: du [-Aclnx] [-H | -L | -P] [-g | -h | -k | -m] " - "[-a | -s | -d depth] [-B blocksize] [-I mask] " - "[-t threshold] [file ...]\n"); + xo_error("%s\n%s\n%s\n", + "usage: du [--libxo] [-Aclnx] [-H | -L | -P] [-g | -h | -k | -m]", + " [-a | -s | -d depth] [-B blocksize] [-I mask] [-t threshold]", + " [file ...]"); exit(EX_USAGE); } @@ -557,16 +526,52 @@ ignorep(FTSENT *ent) struct ignentry *ign; if (nodumpflag && (ent->fts_statp->st_flags & UF_NODUMP)) - return 1; + return (1); SLIST_FOREACH(ign, &ignores, next) if (fnmatch(ign->mask, ent->fts_name, 0) != FNM_NOMATCH) - return 1; - return 0; + return (1); + return (0); } static void siginfo(int sig __unused) { - info = 1; } + +/* + * Record the total disk/block size of the file or directory. The fts_number + * variable provided in FTSENT is used for keeping track of the total size. + * See FTS(3). + */ +static void +record_file_size(FTSENT *p) +{ + p->fts_number += Aflag ? + howmany(p->fts_statp->st_size, cblocksize) : + howmany(p->fts_statp->st_blocks, cblocksize); + + p->fts_parent->fts_number += p->fts_number; +} + +static bool +check_threshold(FTSENT *p) +{ + return (threshold <= threshold_sign * + howmany(p->fts_number * cblocksize, blocksize)); +} + +static void +print_file_size(FTSENT *p) +{ + xo_open_instance("paths"); + if (hflag > 0) { + prthumanval("{:blocks/%4s}", p->fts_number); + xo_emit("\t{:path/%s}\n", p->fts_path); + } else { + xo_emit("{:blocks/%jd}\t{:path/%s}\n", + (intmax_t)howmany(p->fts_number * cblocksize, blocksize), + p->fts_path); + } + xo_close_instance("paths"); +} From nobody Mon Apr 28 20:07:50 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 4ZmZHp5Ytpz5tq7C; Mon, 28 Apr 2025 20:07: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 4ZmZHp5GXhz3W17; Mon, 28 Apr 2025 20:07:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745870870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LB0JEBtosqz0bSp4Ve6bHdLFm9GTaDqPoUC+OtvMm88=; b=N5oPvT3PlMpcnAed0R2GLDde0qKrjFjF+uf4jpYaRUHx3/Aa8e2x/ylLxbH6mcixCnw4NS RqMNDL2etJLVpJdiILyML+3WDB3EiJljN8kvqCkBwJ56p/dMfn07dMNaP4Ae4m+iiKy30Q 133ch/vWUSXTnedgZ/Pqu7NkhBn4u6IXjNW0OkbzkFezSMwmnue7wvUO26Uxh7sLxGWtcO i4k6F27nq66QynBt//XrKE4JNUWRqLzxeL2x3vKzVwyZb35GM0N3oeq6lK6DxkJ33k8Rzm q3JrAu4eMAN1QyUwB18h/So++qAwcVlcyqjKOJIE2EF3JLxPmVARq/1EIwZISg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745870870; a=rsa-sha256; cv=none; b=FeRXvn/Twl72sOuYftsQW1T4TXXnItyP8tH+QqF37mTFv+96lnwk7eSYy3m4Uz6okOdnnx ct6dnQaa4jdOnO6O2AUB8s7hyWgZLdQAXYpEoonr97vrmAiI7W1URq8tkDb7psYR6mReCQ hNeGdDqp3UQV408r1OnRYVof7JuZ7/Ds4tz8Ae4tFf9RO6iBrhNyuaCPcfHTuP+tEo/675 UwK/rjGhPJK1H9dfQT+60r7mxM0fvYS8DAO/+QZ4IbvaQD38uwwyL1qovXkNBT7wgMmy0m HfHHRkaKwQ5PdYzvVyq17vMXi5KlWz/genB70BOMEbLN0dXdkogENs1cNb4zuQ== 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=1745870870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LB0JEBtosqz0bSp4Ve6bHdLFm9GTaDqPoUC+OtvMm88=; b=XYmogWsJKWVkjc/4MznqH7A12Io0U1O5xKMnvS9DdkRButSL/NJg5adPFj/b/1lQ30J7jt Kd/d8E/lBllWEetcZV3Otb/lWQcDb1a98A+aodG0EtQ+HtIa5wca0A2UBqDJ2TjcuZM7lc mD4GJRsugNKbemr8dUYjRgs3exiElCyz4D61Qyu6LukfBIHchsoeUjkd0BF+dhrXj7wbki 9bkuDe6mwjFTr+fZHoIGenb3GD7RkeYyoc+qdoFxPZBv5s7AfRBWSvZ3C1E+dCg9/iLc7v ToryyJEcdy3dW2MRfazZD57XrERWkgE8m05BpHiSApseRlqL4xsfm1JzU3dx/g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmZHp4sB3zqRT; Mon, 28 Apr 2025 20:07: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 53SK7oEe090245; Mon, 28 Apr 2025 20:07:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SK7ofd090242; Mon, 28 Apr 2025 20:07:50 GMT (envelope-from git) Date: Mon, 28 Apr 2025 20:07:50 GMT Message-Id: <202504282007.53SK7ofd090242@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kajetan Staszkiewicz Subject: git: e0fe26691fc9 - main - pf: Add modern NAT syntax 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: ks X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e0fe26691fc98a16cdda9d4f4beea9c5698ac64a Auto-Submitted: auto-generated The branch main has been updated by ks: URL: https://cgit.FreeBSD.org/src/commit/?id=e0fe26691fc98a16cdda9d4f4beea9c5698ac64a commit e0fe26691fc98a16cdda9d4f4beea9c5698ac64a Author: Kajetan Staszkiewicz AuthorDate: 2025-03-03 16:57:52 +0000 Commit: Kajetan Staszkiewicz CommitDate: 2025-04-28 20:06:08 +0000 pf: Add modern NAT syntax Now that pfctl has separate functions for parsing redirection pools and ports, we can finally add support for nat-to and rdr-to filter_opts. NAT and RDR actions are marked by having the respective pools filled in. Function pf_rule_apply_nat() is responsible for both NAT/RDR and af-to address translations. It is called both for match rules and the final pass rule. Use FreeBSD's original address translation code by splitting it into pf_translate_compat(). Call this function for old-style NAT ruleset and for modern NAT rules via pf_rule_apply_nat(). Initialize pfctl_rule's redirection pools on rule allocation, also for code paths not using expand_rule(), so that they can be safely checked for being empty in filter_consistent(). Move map-e NAT test to nat.sh for convenience, duplicate critical NAT tests into _compat (for old-style NAT ruleset) and _pass (for match/ pass) variants. Reviewed by: kp Approved by: kp (mentor) Sponsored by: InnoGames GmbH Differential Revision: https://reviews.freebsd.org/D49221 --- sbin/pfctl/parse.y | 292 +++++++++++++++++++---- sbin/pfctl/pfctl.c | 1 - sbin/pfctl/pfctl_parser.c | 35 +-- sbin/pfctl/tests/files/pf0016.in | 6 +- sbin/pfctl/tests/files/pf0016.ok | 4 + sbin/pfctl/tests/files/pf0018.in | 18 +- sbin/pfctl/tests/files/pf0018.ok | 19 ++ sbin/pfctl/tests/files/pf0019.in | 4 +- sbin/pfctl/tests/files/pf0019.ok | 9 + sbin/pfctl/tests/files/pf0020.in | 4 +- sbin/pfctl/tests/files/pf0020.ok | 12 + sbin/pfctl/tests/files/pf0048.in | 12 +- sbin/pfctl/tests/files/pf0048.ok | 8 + sbin/pfctl/tests/files/pf0069.in | 3 +- sbin/pfctl/tests/files/pf0069.ok | 1 + sbin/pfctl/tests/files/pf0070.in | 3 +- sbin/pfctl/tests/files/pf0070.ok | 1 + sbin/pfctl/tests/files/pf0071.in | 3 +- sbin/pfctl/tests/files/pf0071.ok | 1 + sbin/pfctl/tests/files/pf0072.in | 3 +- sbin/pfctl/tests/files/pf0072.ok | 2 + sbin/pfctl/tests/files/pf0084.in | 12 +- sbin/pfctl/tests/files/pf0084.ok | 3 + sbin/pfctl/tests/files/pf0098.in | 3 +- sbin/pfctl/tests/files/pf0098.ok | 1 + share/man/man5/pf.conf.5 | 285 +++++++++++++---------- sys/net/pfvar.h | 7 + sys/netpfil/pf/pf.c | 473 ++++++++++++++++++++++---------------- sys/netpfil/pf/pf_ioctl.c | 32 ++- sys/netpfil/pf/pf_lb.c | 116 ++++++---- tests/sys/netpfil/pf/Makefile | 1 - tests/sys/netpfil/pf/map_e.sh | 90 -------- tests/sys/netpfil/pf/nat.sh | 374 ++++++++++++++++++++++++++++-- tests/sys/netpfil/pf/rdr.sh | 109 +++++++-- tests/sys/netpfil/pf/src_track.sh | 110 ++++++++- 35 files changed, 1451 insertions(+), 606 deletions(-) diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y index 804d80b04152..f1ed5444cadd 100644 --- a/sbin/pfctl/parse.y +++ b/sbin/pfctl/parse.y @@ -245,6 +245,7 @@ struct redirspec { struct range rport; struct pool_opts pool_opts; int af; + bool binat; }; static struct filter_opts { @@ -381,7 +382,11 @@ void expand_eth_rule(struct pfctl_eth_rule *, int apply_rdr_ports(struct pfctl_rule *r, struct pfctl_pool *, struct redirspec *); int apply_nat_ports(struct pfctl_pool *, struct redirspec *); int apply_redirspec(struct pfctl_pool *, struct redirspec *); -void expand_rule(struct pfctl_rule *, struct node_if *, +int check_binat_redirspec(struct node_host *, struct pfctl_rule *, int); +void add_binat_rdr_rule(struct pfctl_rule *, struct redirspec *, + struct node_host *, struct pfctl_rule *, struct redirspec **, + struct node_host **); +void expand_rule(struct pfctl_rule *, bool, struct node_if *, struct redirspec *, struct redirspec *, struct redirspec *, struct node_proto *, struct node_os *, struct node_host *, struct node_port *, struct node_host *, struct node_port *, @@ -525,7 +530,8 @@ int parseport(char *, struct range *r, int); %token STICKYADDRESS ENDPI MAXSRCSTATES MAXSRCNODES SOURCETRACK GLOBAL RULE %token MAXSRCCONN MAXSRCCONNRATE OVERLOAD FLUSH SLOPPY PFLOW ALLOW_RELATED %token TAGGED TAG IFBOUND FLOATING STATEPOLICY STATEDEFAULTS ROUTE SETTOS -%token DIVERTTO DIVERTREPLY BRIDGE_TO RECEIVEDON NE LE GE AFTO +%token DIVERTTO DIVERTREPLY BRIDGE_TO RECEIVEDON NE LE GE AFTO NATTO RDRTO +%token BINATTO %token STRING %token NUMBER %token PORTBINARY @@ -1080,7 +1086,7 @@ anchorrule : ANCHOR anchorname dir quick interface af proto fromto decide_address_family($8.src.host, &r.af); decide_address_family($8.dst.host, &r.af); - expand_rule(&r, $5, NULL, NULL, NULL, + expand_rule(&r, false, $5, NULL, NULL, NULL, $7, $8.src_os, $8.src.host, $8.src.port, $8.dst.host, $8.dst.port, $9.uid, $9.gid, $9.rcv, $9.icmpspec, pf->astack[pf->asd + 1] ? pf->alast->name : $2); @@ -1104,7 +1110,7 @@ anchorrule : ANCHOR anchorname dir quick interface af proto fromto decide_address_family($6.src.host, &r.af); decide_address_family($6.dst.host, &r.af); - expand_rule(&r, $3, NULL, NULL, NULL, + expand_rule(&r, false, $3, NULL, NULL, NULL, $5, $6.src_os, $6.src.host, $6.src.port, $6.dst.host, $6.dst.port, 0, 0, 0, 0, $2); free($2); @@ -1147,7 +1153,7 @@ anchorrule : ANCHOR anchorname dir quick interface af proto fromto r.dst.port_op = $6.dst.port->op; } - expand_rule(&r, $3, NULL, NULL, NULL, + expand_rule(&r, false, $3, NULL, NULL, NULL, $5, $6.src_os, $6.src.host, $6.src.port, $6.dst.host, $6.dst.port, 0, 0, 0, 0, $2); free($2); @@ -1471,7 +1477,7 @@ scrubrule : scrubaction dir logquick interface af proto fromto scrub_opts r.match_tag_not = $8.match_tag_not; r.rtableid = $8.rtableid; - expand_rule(&r, $4, NULL, NULL, NULL, + expand_rule(&r, false, $4, NULL, NULL, NULL, $6, $7.src_os, $7.src.host, $7.src.port, $7.dst.host, $7.dst.port, NULL, NULL, NULL, NULL, ""); } @@ -1636,9 +1642,9 @@ antispoof : ANTISPOOF logquick antispoof_ifspc af antispoof_opts { } if (h != NULL) - expand_rule(&r, j, NULL, NULL, NULL, - NULL, NULL, h, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, ""); + expand_rule(&r, false, j, NULL, NULL, + NULL, NULL, NULL, h, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, ""); if ((i->ifa_flags & IFF_LOOPBACK) == 0) { bzero(&r, sizeof(r)); @@ -1658,10 +1664,10 @@ antispoof : ANTISPOOF logquick antispoof_ifspc af antispoof_opts { else h = ifa_lookup(i->ifname, 0); if (h != NULL) - expand_rule(&r, NULL, NULL, - NULL, NULL, NULL, NULL, h, + expand_rule(&r, false, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, ""); + NULL, h, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, ""); } else free(hh); } @@ -2797,9 +2803,36 @@ pfrule : action dir logquick interface route af proto fromto if ($9.marker & FOM_AFTO) { r.naf = $9.nat->af; + } else { + if ($9.nat) { + if (!r.af && ! $9.nat->host->ifindex) + r.af = $9.nat->host->af; + remove_invalid_hosts(&($9.nat->host), &r.af); + if (invalid_redirect($9.nat->host, r.af)) + YYERROR; + if ($9.nat->host->addr.type == PF_ADDR_DYNIFTL) { + if (($9.nat->host = gen_dynnode($9.nat->host, r.af)) == NULL) + err(1, "calloc"); + } + if (check_netmask($9.nat->host, r.af)) + YYERROR; + } + if ($9.rdr) { + if (!r.af && ! $9.rdr->host->ifindex) + r.af = $9.rdr->host->af; + remove_invalid_hosts(&($9.rdr->host), &r.af); + if (invalid_redirect($9.rdr->host, r.af)) + YYERROR; + if ($9.rdr->host->addr.type == PF_ADDR_DYNIFTL) { + if (($9.rdr->host = gen_dynnode($9.rdr->host, r.af)) == NULL) + err(1, "calloc"); + } + if (check_netmask($9.rdr->host, r.af)) + YYERROR; + } } - expand_rule(&r, $4, $9.nat, $9.rdr, $5.redirspec, + expand_rule(&r, false, $4, $9.nat, $9.rdr, $5.redirspec, $7, $8.src_os, $8.src.host, $8.src.port, $8.dst.host, $8.dst.port, $9.uid, $9.gid, $9.rcv, $9.icmpspec, ""); } @@ -3016,6 +3049,29 @@ filter_opt : USER uids { filter_opts.marker |= FOM_SCRUB_TCP; filter_opts.marker |= $3.marker; } + | NATTO port_redirspec { + if (filter_opts.nat) { + yyerror("cannot respecify nat-to/binat-to"); + YYERROR; + } + filter_opts.nat = $2; + } + | RDRTO port_redirspec { + if (filter_opts.rdr) { + yyerror("cannot respecify rdr-to"); + YYERROR; + } + filter_opts.rdr = $2; + } + | BINATTO port_redirspec { + if (filter_opts.nat) { + yyerror("cannot respecify nat-to/binat-to"); + YYERROR; + } + filter_opts.nat = $2; + filter_opts.nat->binat = 1; + filter_opts.nat->pool_opts.staticport = 1; + } | AFTO af FROM port_redirspec { if (filter_opts.nat) { yyerror("cannot respecify af-to"); @@ -4859,7 +4915,7 @@ natrule : nataction interface af proto fromto tag tagged rtable o = o->next; } - expand_rule(&r, $2, NULL, $9, NULL, $4, + expand_rule(&r, false, $2, NULL, $9, NULL, $4, $5.src_os, $5.src.host, $5.src.port, $5.dst.host, $5.dst.port, 0, 0, 0, 0, ""); } @@ -5028,8 +5084,6 @@ binatrule : no BINAT natpasslog interface af proto FROM ipspec toipspec tag YYERROR; } - TAILQ_INIT(&binat.rdr.list); - TAILQ_INIT(&binat.nat.list); pa = calloc(1, sizeof(struct pf_pooladdr)); if (pa == NULL) err(1, "binat: calloc"); @@ -5389,9 +5443,18 @@ filter_consistent(struct pfctl_rule *r, int anchor_call) break; default:; } - if (r->rdr.opts & PF_POOL_STICKYADDR && !r->keep_state) { + if (!TAILQ_EMPTY(&(r->nat.list)) || !TAILQ_EMPTY(&(r->rdr.list))) { + if (r->action != PF_MATCH && !r->keep_state) { + yyerror("nat-to and rdr-to require keep state"); + problems++; + } + if (r->direction == PF_INOUT) { + yyerror("nat-to and rdr-to require a direction"); + problems++; + } + } + if (r->route.opts & PF_POOL_STICKYADDR && !r->keep_state) { yyerror("'sticky-address' requires 'keep state'"); - problems++; } return (-problems); } @@ -6135,7 +6198,6 @@ apply_redirspec(struct pfctl_pool *rpool, struct redirspec *rs) memcpy(&(rpool->key), rs->pool_opts.key, sizeof(struct pf_poolhashkey)); - TAILQ_INIT(&(rpool->list)); for (h = rs->host; h != NULL; h = h->next) { pa = calloc(1, sizeof(struct pf_pooladdr)); if (pa == NULL) @@ -6153,8 +6215,115 @@ apply_redirspec(struct pfctl_pool *rpool, struct redirspec *rs) return 0; } +int +check_binat_redirspec(struct node_host *src_host, struct pfctl_rule *r, int af) +{ + struct pf_pooladdr *nat_pool = TAILQ_FIRST(&(r->nat.list)); + int error = 0; + + /* XXX: FreeBSD allows syntax like "{ host1 host2 }" for redirection + * pools but does not covert them to tables automatically, because + * syntax "{ (iface1 host1), (iface2 iface2) }" is allowed for route-to + * redirection. Add a FreeBSD-specific guard against using multiple + * hosts for source and redirection. + */ + if (src_host->next) { + yyerror("invalid use of table as the source address " + "of a binat-to rule"); + error++; + } + if (TAILQ_NEXT(nat_pool, entries)) { + yyerror ("tables cannot be used as the redirect " + "address of a binat-to rule"); + error++; + } + + if (disallow_table(src_host, "invalid use of table " + "<%s> as the source address of a binat-to rule") || + disallow_alias(src_host, "invalid use of interface " + "(%s) as the source address of a binat-to rule")) { + error++; + } else if ((r->src.addr.type != PF_ADDR_ADDRMASK && + r->src.addr.type != PF_ADDR_DYNIFTL) || + (nat_pool->addr.type != PF_ADDR_ADDRMASK && + nat_pool->addr.type != PF_ADDR_DYNIFTL)) { + yyerror("binat-to requires a specified " + "source and redirect address"); + error++; + } + if (DYNIF_MULTIADDR(r->src.addr) || + DYNIF_MULTIADDR(nat_pool->addr)) { + yyerror ("dynamic interfaces must be " + "used with:0 in a binat-to rule"); + error++; + } + if (PF_AZERO(&r->src.addr.v.a.mask, af) || + PF_AZERO(&(nat_pool->addr.v.a.mask), af)) { + yyerror ("source and redir addresess must have " + "a matching network mask in binat-rule"); + error++; + } + if (nat_pool->addr.type == PF_ADDR_TABLE) { + yyerror ("tables cannot be used as the redirect " + "address of a binat-to rule"); + error++; + } + if (r->direction != PF_INOUT) { + yyerror("binat-to cannot be specified " + "with a direction"); + error++; + } + + /* first specify outbound NAT rule */ + r->direction = PF_OUT; + + return (error); +} + +void +add_binat_rdr_rule( + struct pfctl_rule *binat_rule, + struct redirspec *binat_nat_redirspec, struct node_host *binat_src_host, + struct pfctl_rule *rdr_rule, struct redirspec **rdr_redirspec, + struct node_host **rdr_dst_host) +{ + struct node_host *rdr_src_host; + + /* + * We're copying the whole rule, but we must re-init redir pools. + * FreeBSD uses lists of pf_pooladdr, we can't just overwrite them. + */ + bcopy(binat_rule, rdr_rule, sizeof(struct pfctl_rule)); + TAILQ_INIT(&(rdr_rule->rdr.list)); + TAILQ_INIT(&(rdr_rule->nat.list)); + + /* now specify inbound rdr rule */ + rdr_rule->direction = PF_IN; + + if ((rdr_src_host = calloc(1, sizeof(*rdr_src_host))) == NULL) + err(1, "%s", __func__); + bcopy(binat_src_host, rdr_src_host, sizeof(*rdr_src_host)); + rdr_src_host->ifname = NULL; + rdr_src_host->next = NULL; + rdr_src_host->tail = NULL; + + if (((*rdr_dst_host) = calloc(1, sizeof(**rdr_dst_host))) == NULL) + err(1, "%s", __func__); + bcopy(&(binat_nat_redirspec->host->addr), &((*rdr_dst_host)->addr), + sizeof((*rdr_dst_host)->addr)); + (*rdr_dst_host)->ifname = NULL; + (*rdr_dst_host)->next = NULL; + (*rdr_dst_host)->tail = NULL; + + if (((*rdr_redirspec) = calloc(1, sizeof(**rdr_redirspec))) == NULL) + err(1, "%s", __func__); + bcopy(binat_nat_redirspec, (*rdr_redirspec), sizeof(**rdr_redirspec)); + (*rdr_redirspec)->pool_opts.staticport = 0; + (*rdr_redirspec)->host = rdr_src_host; +} + void -expand_rule(struct pfctl_rule *r, +expand_rule(struct pfctl_rule *r, bool keeprule, struct node_if *interfaces, struct redirspec *nat, struct redirspec *rdr, struct redirspec *route, struct node_proto *protos, @@ -6308,17 +6477,25 @@ expand_rule(struct pfctl_rule *r, } if (r->action == PF_RDR) { + /* Pre-FreeBSD 15 "rdr" rule */ error += apply_rdr_ports(r, &(r->rdr), rdr); + error += apply_redirspec(&(r->rdr), rdr); } else if (r->action == PF_NAT) { + /* Pre-FreeBSD 15 "nat" rule */ error += apply_nat_ports(&(r->rdr), rdr); - } + error += apply_redirspec(&(r->rdr), rdr); + } else { + /* Modern rule with optional NAT, BINAT, RDR or ROUTE*/ + error += apply_redirspec(&(r->route), route); - error += apply_redirspec(&(r->nat), nat); - error += apply_redirspec(&(r->rdr), rdr); - error += apply_redirspec(&(r->route), route); + error += apply_nat_ports(&(r->nat), nat); + error += apply_redirspec(&(r->nat), nat); + error += apply_rdr_ports(r, &(r->rdr), rdr); + error += apply_redirspec(&(r->rdr), rdr); - r->nat.proxy_port[0] = PF_NAT_PROXY_PORT_LOW; - r->nat.proxy_port[1] = PF_NAT_PROXY_PORT_HIGH; + if (nat && nat->binat) + error += check_binat_redirspec(src_host, r, af); + } if (rule_consistent(r, anchor_call[0]) < 0 || error) yyerror("skipping rule due to errors"); @@ -6328,6 +6505,22 @@ expand_rule(struct pfctl_rule *r, added++; } + /* Generate binat's matching inbound rule */ + if (!error && nat && nat->binat) { + struct pfctl_rule rdr_rule; + struct redirspec *rdr_redirspec; + struct node_host *rdr_dst_host; + + add_binat_rdr_rule( + r, nat, src_hosts, + &rdr_rule, &rdr_redirspec, &rdr_dst_host); + + expand_rule(&rdr_rule, true, interface, NULL, rdr_redirspec, + NULL, proto, src_os, dst_host, dst_port, + rdr_dst_host, src_port, uid, gid, rcv, icmp_type, + ""); + } + if (osrch && src_host->addr.type == PF_ADDR_DYNIFTL) { free(src_host); src_host = osrch; @@ -6339,27 +6532,29 @@ expand_rule(struct pfctl_rule *r, )))))))))); - FREE_LIST(struct node_if, interfaces); - FREE_LIST(struct node_proto, protos); - FREE_LIST(struct node_host, src_hosts); - FREE_LIST(struct node_port, src_ports); - FREE_LIST(struct node_os, src_oses); - FREE_LIST(struct node_host, dst_hosts); - FREE_LIST(struct node_port, dst_ports); - FREE_LIST(struct node_uid, uids); - FREE_LIST(struct node_gid, gids); - FREE_LIST(struct node_icmp, icmp_types); - if (nat) { - FREE_LIST(struct node_host, nat->host); - free(nat); - } - if (rdr) { - FREE_LIST(struct node_host, rdr->host); - free(rdr); - } - if (route) { - FREE_LIST(struct node_host, route->host); - free(route); + if (!keeprule) { + FREE_LIST(struct node_if, interfaces); + FREE_LIST(struct node_proto, protos); + FREE_LIST(struct node_host, src_hosts); + FREE_LIST(struct node_port, src_ports); + FREE_LIST(struct node_os, src_oses); + FREE_LIST(struct node_host, dst_hosts); + FREE_LIST(struct node_port, dst_ports); + FREE_LIST(struct node_uid, uids); + FREE_LIST(struct node_gid, gids); + FREE_LIST(struct node_icmp, icmp_types); + if (nat) { + FREE_LIST(struct node_host, nat->host); + free(nat); + } + if (rdr) { + FREE_LIST(struct node_host, rdr->host); + free(rdr); + } + if (route) { + FREE_LIST(struct node_host, route->host); + free(route); + } } if (!added) @@ -6445,6 +6640,7 @@ lookup(char *s) { "bandwidth", BANDWIDTH}, { "binat", BINAT}, { "binat-anchor", BINATANCHOR}, + { "binat-to", BINATTO}, { "bitmask", BITMASK}, { "block", BLOCK}, { "block-policy", BLOCKPOLICY}, @@ -6508,6 +6704,7 @@ lookup(char *s) { "modulate", MODULATE}, { "nat", NAT}, { "nat-anchor", NATANCHOR}, + { "nat-to", NATTO}, { "no", NO}, { "no-df", NODF}, { "no-route", NOROUTE}, @@ -6532,6 +6729,7 @@ lookup(char *s) { "random-id", RANDOMID}, { "rdr", RDR}, { "rdr-anchor", RDRANCHOR}, + { "rdr-to", RDRTO}, { "realtime", REALTIME}, { "reassemble", REASSEMBLE}, { "received-on", RECEIVEDON}, diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index a9fc33525dd6..6e0be926eff0 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -1739,7 +1739,6 @@ pfctl_add_pool(struct pfctl *pf, struct pfctl_pool *p, sa_family_t af, int which void pfctl_init_rule(struct pfctl_rule *r) { - memset(r, 0, sizeof(struct pfctl_rule)); TAILQ_INIT(&(r->rdr.list)); TAILQ_INIT(&(r->nat.list)); diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index eb3a0826578e..8a64578b136d 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -1240,25 +1240,34 @@ print_rule(struct pfctl_rule *r, const char *anchor_call, int verbose, int numer } #endif } - if (!anchor_call[0] && ! TAILQ_EMPTY(&r->nat.list) && - r->rule_flag & PFRULE_AFTO) { - printf(" af-to %s from ", r->naf == AF_INET ? "inet" : "inet6"); - print_pool(&r->nat, r->nat.proxy_port[0], r->nat.proxy_port[1], - r->naf ? r->naf : r->af, PF_NAT); + if (anchor_call[0]) + return; + if (r->action == PF_NAT || r->action == PF_BINAT || r->action == PF_RDR) { + printf(" -> "); + print_pool(&r->rdr, r->rdr.proxy_port[0], + r->rdr.proxy_port[1], r->af, r->action); + } else { + if (!TAILQ_EMPTY(&r->nat.list)) { + if (r->rule_flag & PFRULE_AFTO) { + printf(" af-to %s from ", r->naf == AF_INET ? "inet" : "inet6"); + } else { + printf(" nat-to "); + } + print_pool(&r->nat, r->nat.proxy_port[0], + r->nat.proxy_port[1], r->naf ? r->naf : r->af, + PF_NAT); + } if (!TAILQ_EMPTY(&r->rdr.list)) { - printf(" to "); + if (r->rule_flag & PFRULE_AFTO) { + printf(" to "); + } else { + printf(" rdr-to "); + } print_pool(&r->rdr, r->rdr.proxy_port[0], r->rdr.proxy_port[1], r->naf ? r->naf : r->af, PF_RDR); } } - if (!anchor_call[0] && - (r->action == PF_NAT || r->action == PF_BINAT || - r->action == PF_RDR)) { - printf(" -> "); - print_pool(&r->rdr, r->rdr.proxy_port[0], - r->rdr.proxy_port[1], r->af, r->action); - } } void diff --git a/sbin/pfctl/tests/files/pf0016.in b/sbin/pfctl/tests/files/pf0016.in index 738bfb664395..7dbc53aa6a21 100644 --- a/sbin/pfctl/tests/files/pf0016.in +++ b/sbin/pfctl/tests/files/pf0016.in @@ -1,5 +1,5 @@ # Test rule order processing: should fail unless nat -> filter -#match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 -#match in on lo0 proto tcp from any to 1.2.3.4/32 port 2222 rdr-to 10.0.0.10 port 22 -#match on lo0 from 192.168.1.1 to any binat-to 10.0.0.1 +match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 +match in on lo0 proto tcp from any to 1.2.3.4/32 port 2222 rdr-to 10.0.0.10 port 22 +match on lo0 from 192.168.1.1 to any binat-to 10.0.0.1 pass in on lo1000000 from any to any no state diff --git a/sbin/pfctl/tests/files/pf0016.ok b/sbin/pfctl/tests/files/pf0016.ok index 6f0c211a5b8a..d65374a16475 100644 --- a/sbin/pfctl/tests/files/pf0016.ok +++ b/sbin/pfctl/tests/files/pf0016.ok @@ -1 +1,5 @@ +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 +match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 static-port +match in on lo0 inet from any to 10.0.0.1 rdr-to 192.168.1.1 pass in on lo1000000 all no state diff --git a/sbin/pfctl/tests/files/pf0018.in b/sbin/pfctl/tests/files/pf0018.in index 46606b476d79..ab3c81f86c5f 100644 --- a/sbin/pfctl/tests/files/pf0018.in +++ b/sbin/pfctl/tests/files/pf0018.in @@ -3,17 +3,17 @@ TEST_LIST1 = "{ 192.168.1.5, 192.168.1.6, 192.168.1.7 }" TEST_LIST2 = "{ 172.6.1.1, 172.14.1.2/32, 172.16.2.0/24 }" -#match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 -#match out on lo0 proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 -#match out on lo0 proto udp from 192.168.1.3 to any nat-to 10.0.0.3 -#match out on lo0 proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 +match out on lo0 from 192.168.1.1 to any nat-to 10.0.0.1 +match out on lo0 proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 +match out on lo0 proto udp from 192.168.1.3 to any nat-to 10.0.0.3 +match out on lo0 proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 -#match out on lo0 inet from $TEST_LIST1 to $TEST_LIST2 nat-to lo0 +match out on lo0 inet from $TEST_LIST1 to $TEST_LIST2 nat-to lo0 -#match out on lo0 inet from 192.168.0.1/24 to any nat-to (lo0) +match out on lo0 inet from 192.168.0.1/24 to any nat-to (lo0) -#match out on lo0 from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 +match out on lo0 from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 -#match out on ! lo0 proto { udp, tcp } from any to any nat-to 10.0.0.8 static-port +match out on ! lo0 proto { udp, tcp } from any to any nat-to 10.0.0.8 static-port -#match out on { lo0, tun1000000 } from any to any nat-to 10.0.0.8 +match out on { lo0, tun1000000 } from any to any nat-to 10.0.0.8 diff --git a/sbin/pfctl/tests/files/pf0018.ok b/sbin/pfctl/tests/files/pf0018.ok index c19ead6da1f0..6ba137ae84f8 100644 --- a/sbin/pfctl/tests/files/pf0018.ok +++ b/sbin/pfctl/tests/files/pf0018.ok @@ -1,2 +1,21 @@ TEST_LIST1 = "{ 192.168.1.5, 192.168.1.6, 192.168.1.7 }" TEST_LIST2 = "{ 172.6.1.1, 172.14.1.2/32, 172.16.2.0/24 }" +match out on lo0 inet from 192.168.1.1 to any nat-to 10.0.0.1 +match out on lo0 inet proto tcp from 192.168.1.2 to any nat-to 10.0.0.2 +match out on lo0 inet proto udp from 192.168.1.3 to any nat-to 10.0.0.3 +match out on lo0 inet proto icmp from 192.168.1.4 to any nat-to 10.0.0.4 +match out on lo0 inet from 192.168.1.5 to 172.6.1.1 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.5 to 172.14.1.2 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.5 to 172.16.2.0/24 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.6 to 172.6.1.1 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.6 to 172.14.1.2 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.6 to 172.16.2.0/24 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.7 to 172.6.1.1 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.7 to 172.14.1.2 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.1.7 to 172.16.2.0/24 nat-to 127.0.0.1 +match out on lo0 inet from 192.168.0.0/24 to any nat-to (lo0) round-robin +match out on lo0 inet from 192.168.1.8 to ! 172.17.0.0/16 nat-to 10.0.0.8 +match out on ! lo0 inet proto udp all nat-to 10.0.0.8 static-port +match out on ! lo0 inet proto tcp all nat-to 10.0.0.8 static-port +match out on lo0 inet all nat-to 10.0.0.8 +match out on tun1000000 inet all nat-to 10.0.0.8 diff --git a/sbin/pfctl/tests/files/pf0019.in b/sbin/pfctl/tests/files/pf0019.in index 0b1456e6fd03..e2bedbb64bd0 100644 --- a/sbin/pfctl/tests/files/pf0019.in +++ b/sbin/pfctl/tests/files/pf0019.in @@ -3,7 +3,7 @@ GOOD = "{ lo0, lo1000000 }" GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" -#match in on lo0 proto tcp from any to 1.2.3.4/32 port 2222 rdr-to 10.0.0.10 port 22 +match in on lo0 proto tcp from any to 1.2.3.4/32 port 2222 rdr-to 10.0.0.10 port 22 # Test list processing -#match in on $GOOD proto tcp from $GOOD_NET to $DEST_NET port 21 rdr-to 127.0.0.1 port 8021 +match in on $GOOD proto tcp from $GOOD_NET to $DEST_NET port 21 rdr-to 127.0.0.1 port 8021 diff --git a/sbin/pfctl/tests/files/pf0019.ok b/sbin/pfctl/tests/files/pf0019.ok index 16c845aa2cd6..a5afc374d19f 100644 --- a/sbin/pfctl/tests/files/pf0019.ok +++ b/sbin/pfctl/tests/files/pf0019.ok @@ -2,3 +2,12 @@ EVIL = "lo0" GOOD = "{ lo0, lo1000000 }" GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" +match in on lo0 inet proto tcp from any to 1.2.3.4 port = 2222 rdr-to 10.0.0.10 port 22 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 diff --git a/sbin/pfctl/tests/files/pf0020.in b/sbin/pfctl/tests/files/pf0020.in index b00125bbcdb8..c973785bc9c5 100644 --- a/sbin/pfctl/tests/files/pf0020.in +++ b/sbin/pfctl/tests/files/pf0020.in @@ -5,5 +5,5 @@ GOOD = "{ lo0, lo1000000 }" GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" -#match out on $EVIL inet from $GOOD_NET to $DEST_NET nat-to $EVIL -#match in on $GOOD proto tcp from $GOOD_NET to $DEST_NET port 21 rdr-to 127.0.0.1 port 8021 +match out on $EVIL inet from $GOOD_NET to $DEST_NET nat-to $EVIL +match in on $GOOD proto tcp from $GOOD_NET to $DEST_NET port 21 rdr-to 127.0.0.1 port 8021 diff --git a/sbin/pfctl/tests/files/pf0020.ok b/sbin/pfctl/tests/files/pf0020.ok index 16c845aa2cd6..bd2c6cf2055d 100644 --- a/sbin/pfctl/tests/files/pf0020.ok +++ b/sbin/pfctl/tests/files/pf0020.ok @@ -2,3 +2,15 @@ EVIL = "lo0" GOOD = "{ lo0, lo1000000 }" GOOD_NET = "{ 127.0.0.0/24, 10.0.1.0/24 }" DEST_NET = "{ 1.2.3.4/25, 2.4.6.8/30 }" +match out on lo0 inet from 127.0.0.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 +match out on lo0 inet from 127.0.0.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 +match out on lo0 inet from 10.0.1.0/24 to 1.2.3.0/25 nat-to 127.0.0.1 +match out on lo0 inet from 10.0.1.0/24 to 2.4.6.8/30 nat-to 127.0.0.1 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo0 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 127.0.0.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 1.2.3.0/25 port = ftp rdr-to 127.0.0.1 port 8021 +match in on lo1000000 inet proto tcp from 10.0.1.0/24 to 2.4.6.8/30 port = ftp rdr-to 127.0.0.1 port 8021 diff --git a/sbin/pfctl/tests/files/pf0048.in b/sbin/pfctl/tests/files/pf0048.in index e97a819de945..a0dd143c8dd2 100644 --- a/sbin/pfctl/tests/files/pf0048.in +++ b/sbin/pfctl/tests/files/pf0048.in @@ -1,12 +1,12 @@ table < regress > { 1.2.3.4 !5.6.7.8 10/8 lo0 } table const { ::1 fe80::/64 } table { 1.2.3.4 !5.6.7.8 } { ::1 ::2 ::3 } file "/dev/null" const { 4.3.2.1 } -#match out on lo0 inet from < regress.1> to nat-to lo0:0 -#match out on !lo0 inet from ! to nat-to lo0:0 -#match in on lo0 inet6 from to rdr-to lo0:0 -#match in on !lo0 inet6 from !< regress.1 > to rdr-to lo0:0 -#match in from { ! } to any -#match out from any to { !, } +match out on lo0 inet from < regress.1> to nat-to lo0:0 +match out on !lo0 inet from ! to nat-to lo0:0 +match in on lo0 inet6 from to rdr-to lo0:0 +match in on !lo0 inet6 from !< regress.1 > to rdr-to lo0:0 +match in from { ! } to any +match out from any to { !, } pass in from to any pass out from any to pass in from { } to any diff --git a/sbin/pfctl/tests/files/pf0048.ok b/sbin/pfctl/tests/files/pf0048.ok index f3536f566d35..89569fb4f8ba 100644 --- a/sbin/pfctl/tests/files/pf0048.ok +++ b/sbin/pfctl/tests/files/pf0048.ok @@ -1,6 +1,14 @@ table { 1.2.3.4 !5.6.7.8 10.0.0.0/8 ::1 fe80::1 127.0.0.1 } table const { ::1 fe80::/64 } table const { 1.2.3.4 !5.6.7.8 ::1 ::2 ::3 } file "/dev/null" { 4.3.2.1 } +match out on lo0 inet from to nat-to 127.0.0.1 +match out on ! lo0 inet from ! to nat-to 127.0.0.1 +match in on lo0 inet6 from to rdr-to ::1 +match in on ! lo0 inet6 from ! to rdr-to ::1 +match in from to any +match in from ! to any +match out from any to ! +match out from any to pass in from to any flags S/SA keep state pass out from any to flags S/SA keep state pass in from to any flags S/SA keep state diff --git a/sbin/pfctl/tests/files/pf0069.in b/sbin/pfctl/tests/files/pf0069.in index 1298954bbeda..85847b9bd6b2 100644 --- a/sbin/pfctl/tests/files/pf0069.in +++ b/sbin/pfctl/tests/files/pf0069.in @@ -1,3 +1,2 @@ -#match out on lo0 inet all tag regress nat-to lo0 +match out on lo0 inet all tag regress nat-to lo0 pass out quick on lo0 keep state tagged regress - diff --git a/sbin/pfctl/tests/files/pf0069.ok b/sbin/pfctl/tests/files/pf0069.ok index 33e0519645fc..2bf34c04baa7 100644 --- a/sbin/pfctl/tests/files/pf0069.ok +++ b/sbin/pfctl/tests/files/pf0069.ok @@ -1 +1,2 @@ +match out on lo0 inet all tag regress nat-to 127.0.0.1 pass out quick on lo0 all flags S/SA keep state tagged regress diff --git a/sbin/pfctl/tests/files/pf0070.in b/sbin/pfctl/tests/files/pf0070.in index 8d5e34a13ff8..1ccec9302436 100644 --- a/sbin/pfctl/tests/files/pf0070.in +++ b/sbin/pfctl/tests/files/pf0070.in @@ -1,3 +1,2 @@ -#match out on lo0 from 10.0.0.0/8 to any nat-to lo0 +match out on lo0 from 10.0.0.0/8 to any nat-to lo0 block out on lo0 tagged regress - diff --git a/sbin/pfctl/tests/files/pf0070.ok b/sbin/pfctl/tests/files/pf0070.ok index d30b70ff3e5a..cf79485b40c1 100644 --- a/sbin/pfctl/tests/files/pf0070.ok +++ b/sbin/pfctl/tests/files/pf0070.ok @@ -1 +1,2 @@ +match out on lo0 inet from 10.0.0.0/8 to any nat-to 127.0.0.1 block drop out on lo0 all tagged regress diff --git a/sbin/pfctl/tests/files/pf0071.in b/sbin/pfctl/tests/files/pf0071.in index 48976b61ed3d..8975a8ebc943 100644 --- a/sbin/pfctl/tests/files/pf0071.in +++ b/sbin/pfctl/tests/files/pf0071.in @@ -1,3 +1,2 @@ -#match in on lo0 proto tcp from 10.0.0.0/8 to port 80 rdr-to lo0 +match in on lo0 proto tcp from 10.0.0.0/8 to port 80 rdr-to lo0 block out on lo0 tagged regress - diff --git a/sbin/pfctl/tests/files/pf0071.ok b/sbin/pfctl/tests/files/pf0071.ok index d30b70ff3e5a..2bae94fc8fac 100644 --- a/sbin/pfctl/tests/files/pf0071.ok +++ b/sbin/pfctl/tests/files/pf0071.ok @@ -1 +1,2 @@ +match in on lo0 inet proto tcp from 10.0.0.0/8 to any port = http rdr-to 127.0.0.1 block drop out on lo0 all tagged regress diff --git a/sbin/pfctl/tests/files/pf0072.in b/sbin/pfctl/tests/files/pf0072.in index fd037f31ef27..d23843b799d5 100644 --- a/sbin/pfctl/tests/files/pf0072.in +++ b/sbin/pfctl/tests/files/pf0072.in @@ -1,4 +1,3 @@ # test binat tagging -#match on lo0 from 192.168.1.1 to any tag regress binat-to 10.0.0.1 +match on lo0 from 192.168.1.1 to any tag regress binat-to 10.0.0.1 block out on lo0 tagged regress - diff --git a/sbin/pfctl/tests/files/pf0072.ok b/sbin/pfctl/tests/files/pf0072.ok index d30b70ff3e5a..02e676dadc06 100644 --- a/sbin/pfctl/tests/files/pf0072.ok +++ b/sbin/pfctl/tests/files/pf0072.ok @@ -1 +1,3 @@ +match out on lo0 inet from 192.168.1.1 to any tag regress nat-to 10.0.0.1 static-port +match in on lo0 inet from any to 10.0.0.1 tag regress rdr-to 192.168.1.1 block drop out on lo0 all tagged regress diff --git a/sbin/pfctl/tests/files/pf0084.in b/sbin/pfctl/tests/files/pf0084.in index c0390df889e3..17140a786d73 100644 --- a/sbin/pfctl/tests/files/pf0084.in +++ b/sbin/pfctl/tests/files/pf0084.in @@ -1,9 +1,9 @@ -#match out on tun1000000 from 10.0.0.0/24 to any \ -# nat-to { 10.0.1.1, 10.0.1.2 } round-robin sticky-address -#match in on tun1000000 from any to 10.0.1.1 \ -# rdr-to { 10.0.0.0/24 } sticky-address random -#match in on tun1000000 from any to 10.0.1.2 \ -# rdr-to { 10.0.0.1, 10.0.0.2 } sticky-address +match out on tun1000000 from 10.0.0.0/24 to any \ + nat-to { 10.0.1.1, 10.0.1.2 } round-robin sticky-address +match in on tun1000000 from any to 10.0.1.1 \ + rdr-to { 10.0.0.0/24 } sticky-address random +match in on tun1000000 from any to 10.0.1.2 \ + rdr-to { 10.0.0.1, 10.0.0.2 } sticky-address pass in proto tcp from any to any port 22 \ keep state (source-track) diff --git a/sbin/pfctl/tests/files/pf0084.ok b/sbin/pfctl/tests/files/pf0084.ok index 272fd6052023..1ca89e515a3d 100644 --- a/sbin/pfctl/tests/files/pf0084.ok +++ b/sbin/pfctl/tests/files/pf0084.ok @@ -1,3 +1,6 @@ +match out on tun1000000 inet from 10.0.0.0/24 to any nat-to { 10.0.1.1, 10.0.1.2 } round-robin sticky-address +match in on tun1000000 inet from any to 10.0.1.1 rdr-to 10.0.0.0/24 random sticky-address +match in on tun1000000 inet from any to 10.0.1.2 rdr-to { 10.0.0.1, 10.0.0.2 } round-robin sticky-address pass in proto tcp from any to any port = ssh flags S/SA keep state (source-track global) pass in proto tcp from any to any port = smtp flags S/SA keep state (source-track global) pass in proto tcp from any to any port = http flags S/SA keep state (source-track rule, max-src-states 3, max-src-nodes 1000) diff --git a/sbin/pfctl/tests/files/pf0098.in b/sbin/pfctl/tests/files/pf0098.in index b2b642be2026..c26f0fcfe4d3 100644 --- a/sbin/pfctl/tests/files/pf0098.in +++ b/sbin/pfctl/tests/files/pf0098.in @@ -1,4 +1,3 @@ # Test rule order processing should pass (require-order no longer required) pass in on lo1000000 all -#match out on lo0 inet6 all nat-to lo0 - +match out on lo0 inet6 all nat-to lo0 diff --git a/sbin/pfctl/tests/files/pf0098.ok b/sbin/pfctl/tests/files/pf0098.ok index 62016c91d60b..105bb46b4ae5 100644 --- a/sbin/pfctl/tests/files/pf0098.ok +++ b/sbin/pfctl/tests/files/pf0098.ok @@ -1 +1,2 @@ pass in on lo1000000 all flags S/SA keep state +match out on lo0 inet6 all nat-to { ::1, fe80::1 } round-robin diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 index 6ff3d50e6dc3..b5e3e1126978 100644 --- a/share/man/man5/pf.conf.5 +++ b/share/man/man5/pf.conf.5 @@ -27,7 +27,7 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd April 22, 2025 +.Dd April 27, 2025 .Dt PF.CONF 5 .Os .Sh NAME @@ -1333,29 +1333,18 @@ If the .Xr dummynet 4 module is not loaded any traffic sent into a queue or pipe will be dropped. .Sh TRANSLATION -Translation rules modify either the source or destination address of the -packets associated with a stateful connection. -A stateful connection is automatically created to track packets matching -such a rule as long as they are not blocked by the filtering section of -.Nm pf.conf . -The translation engine modifies the specified address and/or port in the -packet, recalculates IP, TCP and UDP checksums as necessary, and passes -it to the packet filter for evaluation. -.Pp -Since translation occurs before filtering the filter -engine will see packets as they look after any -addresses and ports have been translated. -Filter rules will therefore have to filter based on the translated +Translation options modify either the source or destination address and +port of the packets associated with a stateful connection. +.Xr pf 4 +modifies the specified address and/or port in the packet and recalculates +IP, TCP, and UDP checksums as necessary. +.Pp +If specified on a +.Ic match +rule, subsequent rules will see packets as they look +after any addresses and ports have been translated. +These rules will therefore have to filter based on the translated address and port number. -Packets that match a translation rule are only automatically passed if -the -.Ar pass -modifier is given, otherwise they are -still subject to -.Ar block -and -.Ar pass -rules. .Pp The state entry created permits .Xr pf 4 @@ -1418,13 +1407,18 @@ The current implementation will only extract IPv4 addresses from the IPv6 addresses with a prefix length of /96 and greater. .It Ar binat A -.Ar binat +.Ar binat-to rule specifies a bidirectional mapping between an external IP netblock and an internal IP netblock. -.It Ar nat +It expands to an outbound +.Ar nat-to +rule and an inbound +.Ar rdr-to +rule. +.It Ar nat-to A -.Ar nat -rule specifies that IP addresses are to be changed as the packet +.Ar nat-to +option specifies that IP addresses are to be changed as the packet traverses the given interface. This technique allows one or more IP addresses on the translating host to support network traffic for a larger range of @@ -1432,44 +1426,116 @@ machines on an "inside" network. Although in theory any IP address can be used on the inside, it is strongly recommended that one of the address ranges defined by RFC 1918 be used. These netblocks are: -.Bd -literal -10.0.0.0 - 10.255.255.255 (all of net 10, i.e., 10/8) -172.16.0.0 - 172.31.255.255 (i.e., 172.16/12) -192.168.0.0 - 192.168.255.255 (i.e., 192.168/16) +.Bd -literal -offset indent +10.0.0.0 - 10.255.255.255 (all of net 10.0.0.0, i.e., 10.0.0.0/8) +172.16.0.0 - 172.31.255.255 (i.e., 172.16.0.0/12) +192.168.0.0 - 192.168.255.255 (i.e., 192.168.0.0/16) .Ed *** 2130 LINES SKIPPED *** From nobody Mon Apr 28 20:28:47 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 4ZmZlz4FbPz5trTy; Mon, 28 Apr 2025 20: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 4ZmZlz1ySVz3lfV; Mon, 28 Apr 2025 20: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=1745872127; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QdFVZ1Ao2f0o7aYT0qING93Q4DJkvXsZMdqBGZFbGYA=; b=BhckKrRHAAK7NH4oq5XGADmMqoP+hKQuREFmIOHRsCeFGiCVBuGeYk9DxDnWOlCr75U7t0 dDBzXrf128Oc27wvbl3Z5SEVEbshGwu2ZtBHuzUsaE+SotExoC71A1XnWT0D6MagCo+QP5 8wxheD+vhOUXHOQFpnqYbJ7i4ue2aD6pR7CprqtpViiIUbePwlr9geYsaNIR8k3aNyqR6u vHr1xzleouhrj7UxGfNorH7ekpPWq5XMd4ScfLko/b6wyrfNpLYLXoKnGzgg+O3r06fB7B /XOr4bs4Bi4092qvluMqKR4aVJZrEp7NUT0gtfiaLUoH+yqVtmNZYkbGfk4OEQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745872127; a=rsa-sha256; cv=none; b=t3D7xVJ2PoAdmNxKUhkh9jsw+lAy6xAizXd13CmqBWikbWntkvFIxDYqM1Uygc7HJiloqq qz4dqsiQ1hUnzifUvtiKDqTjPHhsHRpVuMLGlXF1KIwhCHURZVIUiD4muyqp2EEKKrBfPY /3CnSvRSq2eqe8Mpvy12b54M9nOLRknfYeKKrkdSuuU0lHxgPjI7Kbw26g9VBJ/uFLs3wF P/HoW2k+9K9VZYUbLqqnKEcSkS1sk+n2UhVyLvf5skB+/4nEU//Te4Se2XLHqZ/07bzeJZ yXXEpeYk3O/TbsKIv0b727sG/To1QoOjPpPRTfOvpxWol9rEHB7GxSQt/1vUIw== 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=1745872127; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QdFVZ1Ao2f0o7aYT0qING93Q4DJkvXsZMdqBGZFbGYA=; b=rcygNMEaweAf3Db3y7+MkQ/8T9rdId8/ovimJ1ExLEfSTDyFhZJobTAHTJkoxWArLW3ZJa ugGbzbSLRdTE6M9DUwOlRHmd+5iB49M4aGUAD8SZG8MSay42pUM2R597yxT70mSJ7aTXsm 7wc3V8Ep+vpLQQ+WjmS42ZlRq37MWjtjiQl5swbO21+IfPuen52HsnkOl1MYD2cf1C+XKG 1B6MTy215EqR4MYIDvnAoIFqFYCXvs+6LOPDY1cdU5Vm9hr+MMjdAR+V7SjKD9syQDMv0/ qqD4dR1SGhf6qHyjYIbJT6L5zc81MPOQvpM2Iz62Gm4KK+hbYPKlNP/K395Psg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmZlz1JH5zqyt; Mon, 28 Apr 2025 20: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 53SKSlQX027779; Mon, 28 Apr 2025 20: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 53SKSluI027776; Mon, 28 Apr 2025 20:28:47 GMT (envelope-from git) Date: Mon, 28 Apr 2025 20:28:47 GMT Message-Id: <202504282028.53SKSluI027776@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: cbe50f7c20cf - main - flua.1: Add xref to style.lua(9) 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cbe50f7c20cf0ca484d29cf345864a18c29850e7 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=cbe50f7c20cf0ca484d29cf345864a18c29850e7 commit cbe50f7c20cf0ca484d29cf345864a18c29850e7 Author: Ed Maste AuthorDate: 2025-04-28 20:27:04 +0000 Commit: Ed Maste CommitDate: 2025-04-28 20:28:26 +0000 flua.1: Add xref to style.lua(9) Sponsored by: The FreeBSD Foundation --- libexec/flua/flua.1 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libexec/flua/flua.1 b/libexec/flua/flua.1 index 796ab813f89f..a315e4106065 100644 --- a/libexec/flua/flua.1 +++ b/libexec/flua/flua.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 21, 2025 +.Dd April 28, 2025 .Dt FLUA 1 .Os .Sh NAME @@ -91,7 +91,8 @@ retaining backwards compatibility. .Xr freebsd.kenv 3lua , .Xr freebsd.sys.linker 3lua , .Xr hash 3lua , -.Xr jail 3lua +.Xr jail 3lua , +.Xr style.lua 9 .Sh HISTORY .Nm first appeared in From nobody Mon Apr 28 21:22:21 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 4Zmbxp3b4Vz5tvg7; Mon, 28 Apr 2025 21:22: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 4Zmbxp0zvzz3Ptx; Mon, 28 Apr 2025 21:22:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745875342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XulO9A7Z2dviD+F2V09e7QxVGttUVOwZ/SGeDtT7s0s=; b=oBw/p0xqg6sWpZ6j4LgNshMr1n7LXVqYKr1Sj1hv4hj8Li5bHZ6gpV8n9b9FFW8KI/vqtl GirmnMxdr0DzXrUmTi9/kb2PTMS4U4QteZAAsoHN/rar0X9CbVLtzf5UYBIJzBAkMCU9xQ d2SPUmt8etIfZVLvlymWCmLAptlnq29VNa2r9uwA43QTysh1Va9ZJBbc7i6ObJRf3rLaCY K9ARQNuECTmj4ePungik8mhT2NluLfMdLZChjTe8WPquW6UPE5wfIxG6Li/1TR/8+K+dBE 4KF7j6IN5OTZS8ytDoAQ6L3egJPLkbckbPt68ZDU++sfuNUwu0VjTbYBSd7meA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745875342; a=rsa-sha256; cv=none; b=IbMHYU2f6mWg68ySu6aJSz3lNAm9yOChaiRbt4C5Ic6+CIHuI+BzvaPLg4F9xmezRuYCFQ eri85F8kLiCftpICm6ET3IgdP7KI2sCT+l/ctFcEKCbBW16gGjwsuSDlz3ZZb+/6Ec4VkP 8bmmAQL4dV4fajolAt2kvc4xr0TpDSq0yA+nbpQiXexLwenBe0cA5qmVJTOZfu3HlTN5dg sVXtE3bjIffWJ+ibFavOWu3uajQFRiqaN7CS+rRxIjAQjsc3NK38hbQ4HNIMXnh4eO4IFO dgxzCTPvrU4/Ddu+DXV3YsFj6oZCc6EZeva7FQ9dITPaSYyVj449GS7L8J2tZg== 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=1745875342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XulO9A7Z2dviD+F2V09e7QxVGttUVOwZ/SGeDtT7s0s=; b=On8kEv1rD0DX7/tnNz4jRAHQRPR6DtCChkw2cb3whMsenQYdBOhtZWb/V0ZcyQhDaIRxrw 6G+w75F7tru6tg2MNuSCRb85XGzLFd+Qm1VWW8g9xueMIC9sHvpkp/D9gBYnv2lLZe1LgH wCo612JmhCZkqY193AN5U5C0fUD1F4dmjTmaSDPx6RuV41gbVQ+Wh6Bqr4a2tECo4/qd2M Og3xhLEt9roOuiAGUuxmoNN+9lPHZIWhywUJ56LQe2vGCBGKdT3e7w9Wjb5X/JrvR+nrci YpGE7DQ/H1i3loGFQIe/N2n5LQBNmsBf7SV6zIsp+Y5Nw77MJzCHsGGrg2zW5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zmbxp0Th5zsK2; Mon, 28 Apr 2025 21:22: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 53SLMLuh037389; Mon, 28 Apr 2025 21:22:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SLMLes037386; Mon, 28 Apr 2025 21:22:21 GMT (envelope-from git) Date: Mon, 28 Apr 2025 21:22:21 GMT Message-Id: <202504282122.53SLMLes037386@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 12968503b873 - main - ig4(4): Add Raptor Lake PCI IDs 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 12968503b87343ef730100877f5dfc0e7712206b Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=12968503b87343ef730100877f5dfc0e7712206b commit 12968503b87343ef730100877f5dfc0e7712206b Author: Ben Wilber AuthorDate: 2025-04-26 05:12:54 +0000 Commit: Warner Losh CommitDate: 2025-04-28 21:16:09 +0000 ig4(4): Add Raptor Lake PCI IDs Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1678 --- sys/dev/ichiic/ig4_pci.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sys/dev/ichiic/ig4_pci.c b/sys/dev/ichiic/ig4_pci.c index 874d6a9abc55..4674f2615648 100644 --- a/sys/dev/ichiic/ig4_pci.c +++ b/sys/dev/ichiic/ig4_pci.c @@ -168,6 +168,12 @@ static int ig4iic_pci_detach(device_t dev); #define PCI_CHIP_ALDERLAKE_M_I2C_3 0x54eb8086 #define PCI_CHIP_ALDERLAKE_M_I2C_4 0x54c58086 #define PCI_CHIP_ALDERLAKE_M_I2C_5 0x54c68086 +#define PCI_CHIP_RAPTORLAKE_S_I2C_0 0x7a4c8086 +#define PCI_CHIP_RAPTORLAKE_S_I2C_1 0x7a4d8086 +#define PCI_CHIP_RAPTORLAKE_S_I2C_2 0x7a4e8086 +#define PCI_CHIP_RAPTORLAKE_S_I2C_3 0x7a4f8086 +#define PCI_CHIP_RAPTORLAKE_S_I2C_4 0x7a7c8086 +#define PCI_CHIP_RAPTORLAKE_S_I2C_5 0x7a7d8086 #define PCI_CHIP_METEORLAKE_M_I2C_0 0x7e788086 #define PCI_CHIP_METEORLAKE_M_I2C_1 0x7e798086 #define PCI_CHIP_METEORLAKE_M_I2C_2 0x7e508086 @@ -286,6 +292,12 @@ static struct ig4iic_pci_device ig4iic_pci_devices[] = { { PCI_CHIP_ALDERLAKE_M_I2C_3, "Intel Alder Lake-M I2C Controller-3", IG4_TIGERLAKE}, { PCI_CHIP_ALDERLAKE_M_I2C_4, "Intel Alder Lake-M I2C Controller-4", IG4_TIGERLAKE}, { PCI_CHIP_ALDERLAKE_M_I2C_5, "Intel Alder Lake-M I2C Controller-5", IG4_TIGERLAKE}, + { PCI_CHIP_RAPTORLAKE_S_I2C_0, "Intel Raptor Lake-S I2C Controller-0", IG4_TIGERLAKE}, + { PCI_CHIP_RAPTORLAKE_S_I2C_1, "Intel Raptor Lake-S I2C Controller-1", IG4_TIGERLAKE}, + { PCI_CHIP_RAPTORLAKE_S_I2C_2, "Intel Raptor Lake-S I2C Controller-2", IG4_TIGERLAKE}, + { PCI_CHIP_RAPTORLAKE_S_I2C_3, "Intel Raptor Lake-S I2C Controller-3", IG4_TIGERLAKE}, + { PCI_CHIP_RAPTORLAKE_S_I2C_4, "Intel Raptor Lake-S I2C Controller-4", IG4_TIGERLAKE}, + { PCI_CHIP_RAPTORLAKE_S_I2C_5, "Intel Raptor Lake-S I2C Controller-5", IG4_TIGERLAKE}, { PCI_CHIP_METEORLAKE_M_I2C_0, "Intel Meteor Lake-M I2C Controller-0", IG4_TIGERLAKE}, { PCI_CHIP_METEORLAKE_M_I2C_1, "Intel Meteor Lake-M I2C Controller-1", IG4_TIGERLAKE}, { PCI_CHIP_METEORLAKE_M_I2C_2, "Intel Meteor Lake-M I2C Controller-2", IG4_TIGERLAKE}, From nobody Mon Apr 28 21:36:37 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 4ZmcGG5s4Fz5tw0n; Mon, 28 Apr 2025 21:36: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 4ZmcGF2w9Mz3bkh; Mon, 28 Apr 2025 21:36:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745876197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tTLbx9yXg+ix4dV+tci0ZTjkhw6oLcY8T0T6p97Py7k=; b=JnBRXcFGkEAIPv1ExGizZA1jMeH//x/UtDvomQD9BD0xN7TksIgtcWuucRC5PPnwB9er3b OXlIXD6SfVfA6pUv4YaI6BtThgAvQVKX0AZEX/rbskxo8jFCCpVVEJVsw5m9FJplQXvfNU uvkT+OyiFV/L6mHomRTQ2s1n1FdosIymRPe4Ah49MGrl4PXzmgjwE61hBoTTeosr1ZcjI/ sEipCU0T0mjLW8mTR/q8o910212Gvx3vNTiYfFhCCFj6SNrh4OATE14up1fDt7b0pB+tAh eeV3TKq8VCsgiSv3dAtML7GX/U1c7WUC4zbgHnfUQeV2ZpGkiW7XMdYl5bvX2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745876197; a=rsa-sha256; cv=none; b=A7jfGk9J1M0SuFjjWHDlZ392BPEvwqkLNfj9BnZGG1yreLWVG8Tj0CgKVkwivgbEpYH+Mc YBZR9E+7rR5obvZKfsI+aJuAOa4ZSiArfm4MYFr7+01pn88bryB1f9OUddQ5g+c3VsrTzh ZmaOPm+tuSBLy/rGN6qw13+yIkuGlX0d8zM2ptan+s9MUFT0EVChdoDyjllddA+Zt3oOU7 WABrpvJL43agE7w7deO+0FIScHMOakZBGZDc5eyDOYFbGZPk6oNumYJLH4IFS2tsJhgR7i Mac5zXnLPurO60nN3kYdHApv3XY9cRulPuNl4mXrdhsDssUKFWRQPkWwfAqCHg== 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=1745876197; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tTLbx9yXg+ix4dV+tci0ZTjkhw6oLcY8T0T6p97Py7k=; b=YZ1y7sn9UzK7ckbVLEn/wJyMA4LU+e32mc0s8KgwTbxKwDg57A25xod6fbBKNl1n+AmUXA bTzgBYNB6wqm8VTUWTs7u2DvshBCN3OiCs4Js6HqnGwgMqhG/tLsvmZHmZ6AUpJ+qD1ksA jtkkTOqvnok8TGjnq2TViR/OWRLOE2pDRO6JaNgNdVk47TA7x/48pcqZDR2F6ewnvok3Qp 5Q27les7M0kVO+c6y6TbjUhYEArpyc1Z8M3Lnx1JXnwGe7cePceDeJJ+7BHTMBFq7BLljM cxIW+tI9W/ZWYQu2J450Gcbzf9wSL8O9hnxVxFwNBPahGCbdFJ94OGPW8xS/+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 4ZmcGF2D2tzsBK; Mon, 28 Apr 2025 21:36: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 53SLabeA057670; Mon, 28 Apr 2025 21:36:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SLabID057667; Mon, 28 Apr 2025 21:36:37 GMT (envelope-from git) Date: Mon, 28 Apr 2025 21:36:37 GMT Message-Id: <202504282136.53SLabID057667@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 8528d7e4f642 - main - github: Fix checklist action 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8528d7e4f64206ab6288182aa65c0c159a746828 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=8528d7e4f64206ab6288182aa65c0c159a746828 commit 8528d7e4f64206ab6288182aa65c0c159a746828 Author: Ahmad Khalifa AuthorDate: 2025-01-25 16:59:19 +0000 Commit: Warner Losh CommitDate: 2025-04-28 21:27:29 +0000 github: Fix checklist action Workflows triggered by the 'pull_request' event can't have write permissions. With write permissions a malicious pull request can alter or create a workflow that either leaks the GITHUB_TOKEN with the write permissions or do malicious things in the workflow itself. The 'pull_request_target' event on the other hand allows workflows to run with write permissions but runs on the merge base of the PR, this way a pull request that alters such a workflow will not have it's code run until it's merged. Signed-off-by: Ahmad Khalifa Reviewed by: imp, emaste Pull Request: https://github.com/freebsd/freebsd-src/pull/1581 --- .github/workflows/checklist.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/checklist.yml b/.github/workflows/checklist.yml index 9734af4a1a1d..f5c3ea599abf 100644 --- a/.github/workflows/checklist.yml +++ b/.github/workflows/checklist.yml @@ -4,7 +4,7 @@ name: Checklist # for the submission to align with CONTRIBUTING.md on: - pull_request: + pull_request_target: types: [ opened, reopened, edited, synchronize ] permissions: From nobody Mon Apr 28 21:40:05 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 4ZmcLG4Zmlz5twBw; Mon, 28 Apr 2025 21:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmcLG3X1tz3fKf; Mon, 28 Apr 2025 21:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745876406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qfZn7tFThLtL2CyM8zSXNI5+3buks8zjqwnyDBumNgY=; b=pdMYekveR9Zg9mix+PbMiR8tFXYQ5Ef+68x5PozdxzoSI4Yhb2ap9xSojWjIoJhKmPthnU 2Yo7SbMghvUOb4TJsvZ7rstKDnXoZSI+5YrFF+uUoYu3ybSpSVOuBomHWwAFON4hdq+KyH GQ6k1uAbE+TW/LhopYhO78YsL8yAxpfWsPVv2t/WB8dlPINXYdPW4dDC6cnba8+l5xub44 7ikLTGAzNV1PM+5kT8NdPkdf20oDrLxiEDHVm2IqNlY0s6bSPnhVW0cEm5kS1kA09yoKRv YytRo2SnSiV0B5WgE6uxgaHeedbyA/T4A5ArUEy26dxWaqUh5q62faW+bnIOgw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745876406; a=rsa-sha256; cv=none; b=Wt6KQDjHLuPd/IQ8rvH051Zjzjoy60cXAJoNTogmTGTOsJSwzoU/t6S29Iva3xarRFqRPI KTHpWSHNSzbBpdK021G384Hba0oZfazUjRd0x+lBfW6EroEJY4ESS7nn3C1xiIGRCLQZfc Ha6qA4GMwAFGaco2tz1laoDdhJg0bQaJNrWBrOwxEo9h8xFX+r9zlAmWRjmGmHrWLbWPNZ 1MmnlLfVTgG2m9UfAu21J5yPGnm3SmND9Asn9+khAa92bj2qdeOVgIyAe1AqE7QtLZsSL+ rPM1XT344s3q0+9071nlYdPtj73isM+DJi6VUgUaVNGNmvkfBko6S2KB+zheww== 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=1745876406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qfZn7tFThLtL2CyM8zSXNI5+3buks8zjqwnyDBumNgY=; b=jpDT7Qb9yhu7ddKTf6qP+/Z0CfDAQQ/1MFriU28Uocbg0Gg59ylIKuQhZLnRqVryYRvyYV LIYaxYGKtYWF7kKF5oJFANNKEcSg0RMsgzmHb/ZIG0dVDwhU+9JfevuI9uHJyjX3WTE9dS Jyk5110HGqKi+xFzxPb52+bTlsQjll5QyR+u5zhOj1mstpbLxqIxlM6fNSrBPE/2xBACUU rQoITuda1wUzpIQTfmCjPf4cQzbUVo+0lXj2sZuCDWlvegOovdNBKeXVhFlgRqdZZhGMV9 1yj7ChKYVSfeoiXf6mI+RaXAIqZ+UIYyiwEnF2Cgz1H7K+OvQ9fVAASp2DrElw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmcLG1J9fzrxp; Mon, 28 Apr 2025 21:40: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 53SLe58u061713; Mon, 28 Apr 2025 21:40:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SLe5Vp061708; Mon, 28 Apr 2025 21:40:05 GMT (envelope-from git) Date: Mon, 28 Apr 2025 21:40:05 GMT Message-Id: <202504282140.53SLe5Vp061708@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: 2580205db0e3 - main - ng_ubt: add UPDATING note about firmware downloading on Realtek adaptors 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: 2580205db0e3f8dafa7485264579b54c5cacc938 Auto-Submitted: auto-generated The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=2580205db0e3f8dafa7485264579b54c5cacc938 commit 2580205db0e3f8dafa7485264579b54c5cacc938 Author: Vladimir Kondratyev AuthorDate: 2025-04-28 21:39:28 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-28 21:39:28 +0000 ng_ubt: add UPDATING note about firmware downloading on Realtek adaptors Requested by: avg MFC after: 2 days --- UPDATING | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/UPDATING b/UPDATING index 15db36e0b44f..a05ebb418ca8 100644 --- a/UPDATING +++ b/UPDATING @@ -96,6 +96,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: option that allowed building them instead of the advanced version imported more than 4 years ago have been removed. +20241107: + The ng_ubt(4) driver now requires firmwares to be loaded on Realtek + adaptors with rtlbtfw(8) utility. It no longer attaches to devices + standing in bootloader mode. Firmware files are available in the + comms/rtlbt-firmware port. + 20241025: The support for the rc_fast_and_loose variable has been removed from rc.subr(8). Users setting rc_fast_and_loose on their systems are From nobody Mon Apr 28 21:40:07 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 4ZmcLH52g0z5twMF; Mon, 28 Apr 2025 21:40: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 4ZmcLH1cwWz3fMy; Mon, 28 Apr 2025 21:40:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745876407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f/E18QRLQpSasUc3USZo3psDfo2O3o/b7fr5AWzZ4IM=; b=UZUIVWOH+kJk8xBsgE/f9i5h9dPfMpfDk3uh0EtP5UK4qsvxh+VWMXp5/Jkk/EGPgHCfiu 1f20EgXuawtpF7GCP2k/BpDYemLT2pdcBQPNBluzjloV4QoXWRQxJopQV7LHYwFk13iTm+ hrSVqXzs6gvFZWXTEzq1gnvdq+cgcUqMuNOlHnIIukYbXmyp7sH/Rc9A61hY7BOvR5r4jS 2tmxRUiSPgNmfhiXUBKqsZ9gNidHQR3PfjaKi8SovX5pvCS5ehFmQ8o/G05awPRwTmjHz4 V9mdfHqiYCOmdDV8bHqx7i1se1ULJjyw/7xFAECwoClNz3fdeTLCX2gs4z8P3A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745876407; a=rsa-sha256; cv=none; b=yvPbdGiMZVQKTPCnhn7freFgxkyVIfyDrBKHz8Q3hT6kTr9s2SafTUb5OaT+JjOhXI576R gyBwqBz+sYa/pTNXlpDp1KfQX2CvSNzWS1rnwU7bK0S0ZWrx6Sel2v3E6gaQdPe8UcZ6CZ HOnevRpH2mzI/2B0uf6j3v/RuvLZhNmZTsaF6gI/4I7/VqSwwEWbgP5GxgxGI/DRtUCrxg yyTkNKV0/tHBrHtigUfOzK2y9n6tCQWBLzh7frreTvp+6V+SsHYm2klUlrNj4GzSOCjQxj jIMejCR7Ur9GmooIusPw6qt8rForu95ZIl4dY+YMYQUwH2edpx2qqA5wa1IP9g== 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=1745876407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f/E18QRLQpSasUc3USZo3psDfo2O3o/b7fr5AWzZ4IM=; b=DpGOJ7bLlfhqBmJgi5XkeiBMcHYkdLYg/l0VWBmV9VZB988d9F9TqMt8w+V+jq8a3VvuNo np7w09A9GxMLqxEUvMjy4rObMFwkSuE2i3FzTRES7TVyebfIuH0/lRvK9Y7yN5hF2/ex3F YZ3cWRR+sY1tYnoqEzK0RD9wngHrPEMg0pwAX/Gianfulte/x2SZXgkVAVHIE7+iZ4GGVZ iv7p2gBq3J6Wd6jjOfNFrEv2+ltc4o7haQV76U6Dz4v7KB+EY9SWboClILX8Cm2ixPe8VL 9kfAFz2xK0NJ8PUYr3WNanj4CPsRHh7gpHaD9rIhvRx88+JYZbRuigq9k664Sw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmcLH1BH6zsbR; Mon, 28 Apr 2025 21:40: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 53SLe7mM061977; Mon, 28 Apr 2025 21:40:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SLe7c4061973; Mon, 28 Apr 2025 21:40:07 GMT (envelope-from git) Date: Mon, 28 Apr 2025 21:40:07 GMT Message-Id: <202504282140.53SLe7c4061973@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: 2abdb305bd0c - main - iichid(4): Do not send packets read in interrupt handler to hidbus 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: 2abdb305bd0c105226f6a71a8d3dc89698c9ef6b Auto-Submitted: auto-generated The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=2abdb305bd0c105226f6a71a8d3dc89698c9ef6b commit 2abdb305bd0c105226f6a71a8d3dc89698c9ef6b Author: Vladimir Kondratyev AuthorDate: 2025-04-28 21:39:28 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-28 21:39:28 +0000 iichid(4): Do not send packets read in interrupt handler to hidbus if no hidbus and hidbus clients were attached and opened by users. iichid(4) enables interrupts before hidbus is attached and sending packets to it at this time leads to panic at boot time. Fixes: daa098cc37b9 ("Wait for RESET command response while attaching") Tested by: dch PR: 286045 MFC with: daa098cc37b9 --- sys/dev/iicbus/iichid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/iicbus/iichid.c b/sys/dev/iicbus/iichid.c index b86858791a4d..9c0324a24685 100644 --- a/sys/dev/iicbus/iichid.c +++ b/sys/dev/iicbus/iichid.c @@ -630,7 +630,7 @@ iichid_intr(void *context) error = iichid_cmd_read(sc, sc->intr_buf, sc->intr_bufsize, &actual); THREAD_NO_SLEEPING(); if (error == 0) { - if (sc->power_on) { + if (sc->power_on && sc->open) { if (actual != 0) sc->intr_handler(sc->intr_ctx, sc->intr_buf, actual); From nobody Mon Apr 28 21:49:20 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 4ZmcXw5pfNz5twq9; Mon, 28 Apr 2025 21:49:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmcXw4m3Cz3nrl; Mon, 28 Apr 2025 21:49:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745876960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kVWPMs/hQ/1l8IOZ7zjLXLcTa/WjQ/kIGao2iMcLWic=; b=XRsOOmgPuGGeCg0Wt226LTSl4yPVnw+HCJ7HuVSq8xj7UIuOgPoKpoiJ3XxCKYoNQH4xJ6 yuX7dvniJqzkj87tISNhxD2hfacT9q7GM9kM6a1DIr9wBlnxd8c8qJkNR1jsZPGut31PKW Cke3jQ06IFiC8UrpX0i/RrWJNUhDM8BTQrB+aum4VLjeLOfQf/DfCSwgjOpqad1VHrEOVQ ff7vn5qqIqFL0LcbuIfGGxdtSYv81z1nWdnpm+KNAsvdw18HKsw0YNlpekRWLuWBQiiUNp rrS0zn52W2ExSBDgE9LTfbPXVNlT2tXgiUDsTRsiFUXNMbefgXwgLUCzcDPWIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745876960; a=rsa-sha256; cv=none; b=GOGWQp3cBArZsj0H5aHKq+9jtAfYCHYlFEyMSXREq+MxgDxp9MCHcA3nYhqkcO0JKgjOTt ArJx3FShuzS34Wh2vs5bJz9Km/elC8SVtgjYc4JAEDFTbOC6CJJ8q8GZYD1UwK86iai48x k1VBebs9R3lHkwUJIquTmwWAsWR29IH1dw4duAUpKU2bjCb4pX6pyvWPMFVbDwW2vJZZGu 27EP5uWlgr9uGKQWjwICXkother3GhVrPTiA3SJ/tiho993fYnjw/3b615WrOt9ubKJFee 9HX7eeQo/8sYh/+ZBRq0wZeTX376gcNjCh9kE4IE7RN3qx0hG0KtoorKHnHPiA== 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=1745876960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kVWPMs/hQ/1l8IOZ7zjLXLcTa/WjQ/kIGao2iMcLWic=; b=UfVtZSmVOVEbsuHDXO2DVIvXow6IlyZp1VBWlF8HpjCci0OftEIqPpOxHjEFpqEL46qu1D ZPl5ad4TagjJ6BAUDbQ0Dee04YNs1rMZPnlC0967MxmnRbJi4mZpnTjD+fKaPsw8wziAEw lwDIp8uB30DXsP1t/kh9qSJkwBgLDOCl54/VrQrdZPlYAyfxFjll7DF9g/9QvYkwVGKk7s XMwHp8rd0346MRC8zRd/ZaTqwjceBbZgoODBr/3A+307pXwlS9YwPYcj78J/QcGghF6mHK Q9VogVt5yd7AHsofZnKxSk/qNvFc8jftd5nZQrgYPY/aVLHkGWv5Bd21oycZFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmcXw4KJ4zsjB; Mon, 28 Apr 2025 21:49:20 +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 53SLnK25077753; Mon, 28 Apr 2025 21:49:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SLnKNj077750; Mon, 28 Apr 2025 21:49:20 GMT (envelope-from git) Date: Mon, 28 Apr 2025 21:49:20 GMT Message-Id: <202504282149.53SLnKNj077750@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 44231935d90c - main - dot.shrc: words to words, should be singular 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 44231935d90c60aa814a1f47a0a8d8fd1c8bb216 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=44231935d90c60aa814a1f47a0a8d8fd1c8bb216 commit 44231935d90c60aa814a1f47a0a8d8fd1c8bb216 Author: Graham Perrin AuthorDate: 2025-01-03 21:03:40 +0000 Commit: Warner Losh CommitDate: 2025-04-28 21:48:12 +0000 dot.shrc: words to words, should be singular Jump from one word to another. Not words to words. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1565 --- bin/sh/dot.shrc | 4 +++- share/skel/dot.shrc | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bin/sh/dot.shrc b/bin/sh/dot.shrc index 2bcedf44a40e..a3317108944c 100644 --- a/bin/sh/dot.shrc +++ b/bin/sh/dot.shrc @@ -34,9 +34,11 @@ bind ^[[A ed-search-prev-history bind ^[[B ed-search-next-history -# # ctrl+arrow allow to jump from words to words +# # Ctrl+right arrow: go to the next word +# # Ctrl+left arrow: go to the previous word bind "\\e[1;5C" em-next-word bind "\\e[1;5D" ed-prev-word + alias history='fc -l' # Fix home/del for mobaxterm diff --git a/share/skel/dot.shrc b/share/skel/dot.shrc index 1fbda154c020..aa1a22eb0b02 100644 --- a/share/skel/dot.shrc +++ b/share/skel/dot.shrc @@ -34,9 +34,11 @@ alias g='egrep -i' bind ^[[A ed-search-prev-history bind ^[[B ed-search-next-history -# # ctrl+arrow allow to jump from words to words +# # Ctrl+right arrow: go to the next word +# # Ctrl+left arrow: go to the previous word bind "\\e[1;5C" em-next-word bind "\\e[1;5D" ed-prev-word + alias history='fc -l' # Fix home/del for mobaxterm From nobody Tue Apr 29 00:35:12 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 4ZmhDK1h8Rz5v7BY; Tue, 29 Apr 2025 00:35:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmhDK1183z3dKr; Tue, 29 Apr 2025 00:35:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745886913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ccFQ2nREGCZGTgJA3QCCZK2LAFKJGkJM3maB0jeEno0=; b=D1wRkKe0cXq5n4zFt3I4Pd0Gtu9YvWccjnubbtsQMouV4Ut5uwEEzOkgE3DXutslarqaMn YgxKDCcUHr0K7opwoFJf/xz8sLtDOsh3dngVAIkC4esApFnsnTcMML06Ibd3AxgL8zQoCN 1uATOpXbIt8tWZqHqMJlC7ajb5MX50jg2n6mmBtefq6qiQUIxxD3ei2+SCWho6m2qcqaZR Vr52ueZ4j0gg0qEU4hVPtoJUohXMlaQbGEUCBELARB0y2BS8pnrQKpSiUR95BAmeV65t/G ctkCUP6/bpJud5+1M0xjsUF6/dps90K070N+gE+93U+nRKDxoNcBKNkxnYv2bQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745886913; a=rsa-sha256; cv=none; b=WxQZISIBErehUzihEQ1e1Scaysn71GlEJlHIKo1MDeALja8P0HlHG4RmGP1FE2vpJkSgm3 KBnuLJyzcJr+rplgmfTccnDIht4otdgt9VnbTOqLb58gSmqNFX5zm+f4cnDVfieSxnpAj+ EQ0cmvZNXAsEMkuhjtmwSAXWfc00y1uoqcNp3TmBVtNrsUsKMCtbIWlbzlQ7LJUwq0M3ql EBAyPFWaB1rL20NTMGC/+bi1YpvNYM1UPKar4L+GsrCbRsQSPToeG6qo+IcGkt+EMPAob/ q7MXJbigTaWcstIzFg+GBw0GGtA1iz42tahN9QAv2YegGIYBlZVsnS4EKKVPMw== 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=1745886913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ccFQ2nREGCZGTgJA3QCCZK2LAFKJGkJM3maB0jeEno0=; b=EKw0cC8zz7JXiqrQIeLC3ivqD/G0Ls0llU6Bo+9/q+gpeoI9UofyMB4unGVQk1bJLL1QF+ LXGPhii6T+gvonK9lkGihJ0hNT2fGPsOllvMOcnVD/Hyfo7D7zbIiwgaiHsVj1dDwmhw7d BZ0syT648ltuPr/srWe0wFu/av61mIdQMm6VKkF2dDwbnbObhiG+5a4DvQONHgyM4z07tx owtmZC5Otp1ZDMLJOdj+bvgRo9ooIIdJ4QusKDWf3gS7ukR0HB6wZ7MgDrzNQyA8yTlH76 bgaM6eIk8SCkC5xKlDQk+O4nqUzpqEoj8WR90biR4sANkBq/zZp18BtPk973oA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmhDK080jzxWs; Tue, 29 Apr 2025 00:35:13 +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 53T0ZCTu094336; Tue, 29 Apr 2025 00:35:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T0ZCHe094333; Tue, 29 Apr 2025 00:35:12 GMT (envelope-from git) Date: Tue, 29 Apr 2025 00:35:12 GMT Message-Id: <202504290035.53T0ZCHe094333@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 4daf244aedfc - main - bsdinstall: add pkgbase prompt to jail script 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4daf244aedfccbae54bd0a1949940ef974605ade Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4daf244aedfccbae54bd0a1949940ef974605ade commit 4daf244aedfccbae54bd0a1949940ef974605ade Author: Isaac Freund AuthorDate: 2025-04-14 10:03:14 +0000 Commit: Ed Maste CommitDate: 2025-04-29 00:34:18 +0000 bsdinstall: add pkgbase prompt to jail script Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49823 --- usr.sbin/bsdinstall/scripts/jail | 118 ++++++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 50 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/jail b/usr.sbin/bsdinstall/scripts/jail index 9acea20a34d8..641c9f8a22bc 100755 --- a/usr.sbin/bsdinstall/scripts/jail +++ b/usr.sbin/bsdinstall/scripts/jail @@ -53,6 +53,64 @@ error() { fi } +distbase() { + test ! -d $BSDINSTALL_DISTDIR && mkdir -p $BSDINSTALL_DISTDIR + + if [ ! -f $BSDINSTALL_DISTDIR/MANIFEST -a -z "$BSDINSTALL_DISTSITE" ]; then + exec 5>&1 + BSDINSTALL_DISTSITE=$(`dirname $0`/mirrorselect 2>&1 1>&5) + MIRROR_BUTTON=$? + exec 5>&- + test $MIRROR_BUTTON -eq 0 || error "No mirror selected" + export BSDINSTALL_DISTSITE + fetch -o $BSDINSTALL_DISTDIR/MANIFEST $BSDINSTALL_DISTSITE/MANIFEST || error "Could not download $BSDINSTALL_DISTSITE/MANIFEST" + fi + + : ${DISTRIBUTIONS="base.txz"}; export DISTRIBUTIONS + if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then + DISTMENU=`cut -f 4,5,6 $BSDINSTALL_DISTDIR/MANIFEST | grep -v -e ^kernel -e ^base` + + if [ ! "$nonInteractive" == "YES" ] + then + exec 5>&1 + EXTRA_DISTS=$(echo $DISTMENU | xargs -o bsddialog \ + --backtitle "$OSNAME Installer" \ + --title "Distribution Select" --no-cancel \ + --separate-output \ + --checklist "Choose optional system components to install:" \ + 0 0 0 \ + 2>&1 1>&5) + for dist in $EXTRA_DISTS; do + export DISTRIBUTIONS="$DISTRIBUTIONS $dist.txz" + done + fi + fi + + FETCH_DISTRIBUTIONS="" + for dist in $DISTRIBUTIONS; do + if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then + FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist" + fi + done + FETCH_DISTRIBUTIONS=`echo $FETCH_DISTRIBUTIONS` # Trim white space + + if [ -n "$FETCH_DISTRIBUTIONS" -a -z "$BSDINSTALL_DISTSITE" ]; then + exec 5>&1 + BSDINSTALL_DISTSITE=$(`dirname $0`/mirrorselect 2>&1 1>&5) + MIRROR_BUTTON=$? + exec 5>&- + test $MIRROR_BUTTON -eq 0 || error "No mirror selected" + export BSDINSTALL_DISTSITE + fi + + if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then + bsdinstall distfetch || error "Failed to fetch distribution" + fi + + bsdinstall checksum || error "Distribution checksum failed" + bsdinstall distextract || error "Distribution extract failed" +} + if [ -z "$1" ]; then error "Directory can not be empty\n\nUsage:\nbsdinstall jail directory" fi @@ -73,61 +131,21 @@ if [ -n "$SCRIPT" ]; then . $TMPDIR/bsdinstall-installscript-preamble fi -test ! -d $BSDINSTALL_DISTDIR && mkdir -p $BSDINSTALL_DISTDIR - -if [ ! -f $BSDINSTALL_DISTDIR/MANIFEST -a -z "$BSDINSTALL_DISTSITE" ]; then - exec 5>&1 - BSDINSTALL_DISTSITE=$(`dirname $0`/mirrorselect 2>&1 1>&5) - MIRROR_BUTTON=$? - exec 5>&- - test $MIRROR_BUTTON -eq 0 || error "No mirror selected" - export BSDINSTALL_DISTSITE - fetch -o $BSDINSTALL_DISTDIR/MANIFEST $BSDINSTALL_DISTSITE/MANIFEST || error "Could not download $BSDINSTALL_DISTSITE/MANIFEST" -fi - -: ${DISTRIBUTIONS="base.txz"}; export DISTRIBUTIONS -if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then - DISTMENU=`cut -f 4,5,6 $BSDINSTALL_DISTDIR/MANIFEST | grep -v -e ^kernel -e ^base` - - if [ ! "$nonInteractive" == "YES" ] - then - exec 5>&1 - EXTRA_DISTS=$(echo $DISTMENU | xargs -o bsddialog \ - --backtitle "$OSNAME Installer" \ - --title "Distribution Select" --no-cancel --separate-output \ - --checklist "Choose optional system components to install:" \ - 0 0 0 \ - 2>&1 1>&5) - for dist in $EXTRA_DISTS; do - export DISTRIBUTIONS="$DISTRIBUTIONS $dist.txz" - done - fi -fi - -FETCH_DISTRIBUTIONS="" -for dist in $DISTRIBUTIONS; do - if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then - FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist" +if [ ! "$nonInteractive" == "YES" ]; then + bsddialog --backtitle "$OSNAME Installer" --title "Select Installation Type" \ + --yes-label "Traditional" --no-label "Packages (Experimental)" --yesno \ + "Would you like to install the base system using traditional distribution sets or packages (experimental)?" 0 0 + if [ $? -eq 1 ]; then + PKGBASE=yes fi -done -FETCH_DISTRIBUTIONS=`echo $FETCH_DISTRIBUTIONS` # Trim white space - -if [ -n "$FETCH_DISTRIBUTIONS" -a -z "$BSDINSTALL_DISTSITE" ]; then - exec 5>&1 - BSDINSTALL_DISTSITE=$(`dirname $0`/mirrorselect 2>&1 1>&5) - MIRROR_BUTTON=$? - exec 5>&- - test $MIRROR_BUTTON -eq 0 || error "No mirror selected" - export BSDINSTALL_DISTSITE fi -if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then - bsdinstall distfetch || error "Failed to fetch distribution" +if [ "$PKGBASE" == yes ]; then + bsdinstall pkgbase --no-kernel || error "Installation of base system packages failed" +else + distbase fi -bsdinstall checksum || error "Distribution checksum failed" -bsdinstall distextract || error "Distribution extract failed" - if [ ! "$nonInteractive" == "YES" ] then bsdinstall rootpass || error "Could not set root password" From nobody Tue Apr 29 00:35:14 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 4ZmhDM152wz5v7HR; Tue, 29 Apr 2025 00:35: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 4ZmhDL1b67z3dF9; Tue, 29 Apr 2025 00:35:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745886914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8f6DgHnOq7kvxDk0t4tgjhTLemramJNiJrdOG/iDDTQ=; b=KKcEpLdoFoirIR9/fhRlJ4Ng67Ng5Fs4zUkJQ34sEZTKnikHDRhEUpgmYMTF2rsa8lQYnU O8PRd28vW7e2sFq7ghAFECHBwtYvOAxycerVbk5EJueD95e/CFGSnwkHpasojrFeB3bENn OMo4jSr59CSqKKdfQhRwHwwPHdS5qIuABf4NBtxI3iOS8EkePr7fTUXpVLc48Sq3x/yT4s ccaTAaaw7BRllzH8FqWHMU8tRHS70Imkzu04bN2Oz7/hhwpQ2VKO8HStW8GcAqa4qBqXzC pZcFg4fV78b3EJ3WeBI2LbVx6GBJFvMCfIBm+3GLA2YoamljpCf1xwaBFjILuA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745886914; a=rsa-sha256; cv=none; b=bVW5LGVJIKW+ORvt9WkiW8qQyIqmcb1toeVAM9x+Y7Ip1BhhYQK5Tl8PakdAeSibgDjCK6 m19SvM0k4FAhD3QO5P/yjdbThp2tNhkWjFBEx/k8RqsXhL/zbr/vijbMFF3j/d45EQpYPS 1lfcN86MFGV5+ceNtbLVyGc5DzjQXF07K6HNmMIQNv+VopVF4oFcclJv23tCdVhSlHwr5x GXFT2hJThIcignY2emlrjuUaOwZM2tnsgyKs2EIicw3uNt38Xb1EOuJNvCJHeD0MY9Dsaw hbVyJMAFtX8qdbUEcTAnWEc6WkFsm8N1JBF8T4gY8EF09vaGKqmvdUwhKTDVrQ== 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=1745886914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8f6DgHnOq7kvxDk0t4tgjhTLemramJNiJrdOG/iDDTQ=; b=QnfPoj9/QM/2feKIN5vH7wSeL/g0z2BzNY4gVyZDypDTcBFazhctmEWRi98lbDCWK8ewWR aQKumYPbZLEzciPp1tYv4MA4xExp/ztSpnEVjOlGWGQSy2xNNu6IqMib3VCYySShqcfwEF Ko8pt/6f+6ZE3ZGLZH7uUXQmefOoRchSIw2e82ekG5aORxwsADwMnRhhaV96vXHcStWAiT 3RGudJueEXRNoWEFoCz5hffV/HEYarFT0yqJXf9B8uYDoTaO7gE8vWRf/IZL9DSvfzC/b2 veQjBU24i5RlkQNlHDLV4jA0mZ1d4TqiMRPaqKi4vtzjFvRWhEfwAeAsrrCI/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 4ZmhDL14zFzxg2; Tue, 29 Apr 2025 00:35: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 53T0ZE2a094368; Tue, 29 Apr 2025 00:35:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T0ZE4M094365; Tue, 29 Apr 2025 00:35:14 GMT (envelope-from git) Date: Tue, 29 Apr 2025 00:35:14 GMT Message-Id: <202504290035.53T0ZE4M094365@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 34b43f4b26e4 - main - bsdinstall: add pkgbase prompt to auto script 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 34b43f4b26e41a70fcb67ec5d8cf394f23b3fbf9 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=34b43f4b26e41a70fcb67ec5d8cf394f23b3fbf9 commit 34b43f4b26e41a70fcb67ec5d8cf394f23b3fbf9 Author: Isaac Freund AuthorDate: 2025-04-14 10:33:43 +0000 Commit: Ed Maste CommitDate: 2025-04-29 00:34:18 +0000 bsdinstall: add pkgbase prompt to auto script Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49824 --- usr.sbin/bsdinstall/scripts/auto | 86 ++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 34 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/auto b/usr.sbin/bsdinstall/scripts/auto index 7d041be015e7..339c9da433b2 100755 --- a/usr.sbin/bsdinstall/scripts/auto +++ b/usr.sbin/bsdinstall/scripts/auto @@ -153,36 +153,50 @@ trap true SIGINT # This section is optional trap error SIGINT # Catch cntrl-C here if [ -z "$BSDINSTALL_SKIP_HOSTNAME" ]; then bsdinstall hostname || error "Set hostname failed"; fi -export DISTRIBUTIONS="${DISTRIBUTIONS:-base.txz kernel.txz}" -if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then - DISTMENU=`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST` - DISTMENU="$(echo ${DISTMENU} | sed -E 's/\.txz//g')" - - if [ -n "$DISTMENU" ]; then - exec 5>&1 - EXTRA_DISTS=$( eval bsddialog \ - --backtitle \"$OSNAME Installer\" \ - --title \"Distribution Select\" --nocancel --separate-output \ - --checklist \"Choose optional system components to install:\" \ - 0 0 0 $DISTMENU \ - 2>&1 1>&5 ) - for dist in $EXTRA_DISTS; do - export DISTRIBUTIONS="$DISTRIBUTIONS $dist.txz" - done - fi +bsddialog --backtitle "$OSNAME Installer" --title "Select Installation Type" \ + --yes-label "Traditional" --no-label "Packages (Experimental)" --yesno \ + "Would you like to install the base system using traditional distribution sets or packages (experimental)?" 0 0 +if [ $? -eq 1 ]; then + PKGBASE=yes fi -FETCH_DISTRIBUTIONS="" -for dist in $DISTRIBUTIONS; do - if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then - FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist" - fi -done - -if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; then - bsddialog --backtitle "$OSNAME Installer" --title "Network Installation" --msgbox "Some installation files were not found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0 +if [ "$PKGBASE" == yes ]; then + bsddialog --backtitle "$OSNAME Installer" --title "Network Installation" \ + --msgbox "Installation of base system packages currently requires internet access. The next few screens will allow you to configure networking." 0 0 bsdinstall netconfig || error NETCONFIG_DONE=yes +else + export DISTRIBUTIONS="${DISTRIBUTIONS:-base.txz kernel.txz}" + if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then + DISTMENU=`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST` + DISTMENU="$(echo ${DISTMENU} | sed -E 's/\.txz//g')" + + if [ -n "$DISTMENU" ]; then + exec 5>&1 + EXTRA_DISTS=$( eval bsddialog \ + --backtitle \"$OSNAME Installer\" \ + --title \"Distribution Select\" --nocancel --separate-output \ + --checklist \"Choose optional system components to install:\" \ + 0 0 0 $DISTMENU \ + 2>&1 1>&5 ) + for dist in $EXTRA_DISTS; do + export DISTRIBUTIONS="$DISTRIBUTIONS $dist.txz" + done + fi + fi + + FETCH_DISTRIBUTIONS="" + for dist in $DISTRIBUTIONS; do + if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then + FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist" + fi + done + + if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; then + bsddialog --backtitle "$OSNAME Installer" --title "Network Installation" --msgbox "Some installation files were not found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0 + bsdinstall netconfig || error + NETCONFIG_DONE=yes + fi fi rm -f $PATH_FSTAB @@ -339,16 +353,20 @@ esac [ -f /usr/libexec/bsdinstall/local.pre-fetch ] && f_dprintf "Running local.pre-fetch" && sh /usr/libexec/bsdinstall/local.pre-fetch "$BSDINSTALL_CHROOT" -if [ -n "$FETCH_DISTRIBUTIONS" ]; then - exec 5>&1 - export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&5) - FETCH_RESULT=$? - exec 5>&- +if [ "$PKGBASE" == yes ]; then + bsdinstall pkgbase || error "Installation of base system packages failed" +else + if [ -n "$FETCH_DISTRIBUTIONS" ]; then + exec 5>&1 + export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&5) + FETCH_RESULT=$? + exec 5>&- - [ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote distributions" + [ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote distributions" + fi + bsdinstall checksum || error "Distribution checksum failed" + bsdinstall distextract || error "Distribution extract failed" fi -bsdinstall checksum || error "Distribution checksum failed" -bsdinstall distextract || error "Distribution extract failed" # Set up boot loader bsdinstall bootconfig || error "Failed to configure bootloader" From nobody Tue Apr 29 03:32:35 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 4Zmm901Vkbz5vL3P; Tue, 29 Apr 2025 03:32: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 4Zmm8z6MgJz3Zr8; Tue, 29 Apr 2025 03:32:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745897555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vVKsQTSQnlxyZJ3LT4gbe9D88wTglrHlmSn/JvWz/Is=; b=CSxPMEFnrL+0gPY12DmBkC9Mtid+e9HvhPjQFVrHGW1EiVOfE6f2TfldDvLnVdgpkymGkL 5CUbhQzGe1Ij6GINzEEKGe9Zuy2NndkHj0v9gO1Oj2Mpw1KaCKRZGJxjaL8dHuXsRlxG52 EC76yqJTPhMnF/g+lCa/7IloupmM0alQ5wDowL1XHII2aO1QS8lfFYLcvvZQ3lG/Nxa6ri 0aGW8CkWue150Nrn9IZGbxNkuy9I452X/KWCT8o1HdqFc8uIo+fcvAGhoFP2VGCJ3A5QHF n0eCPA4nFkIjluwhUjDSQsx7t0UJEdoo15ZDl1t01RkAhr/lrkHuDqJF1vDWWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745897555; a=rsa-sha256; cv=none; b=uBI1D6+rv/lFYQ58t2rpVijO0BTlY4LXUpC9Tmz6yb8XLUETpUrWbjaQZIWPK90w9W/Prw cNVWJUqsNY/6WJ+EfmWshZJr68Q5ngVXSQIseAle7Smv+YqHkfbvhnJUIZsRCBwrUcUMaA RErt/jvoFZOWP44PoygRKyJJk68XGtRoEyquKyE9699Nf1Cfr3lN7wOrizMDBhZS5V1TBY VRW6vEWK6PYRBlIVhMCCOn0PgC1o1gJN3I8UOQ2k8tKGd6hFl31MFNJBeTBKiQioII2hdn NakBFgsrfExkB3B+ezNftQNthatQ3l3DfgFkbP1nnox8AGv3Wnsy+Ep2amk0ag== 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=1745897555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vVKsQTSQnlxyZJ3LT4gbe9D88wTglrHlmSn/JvWz/Is=; b=URsftrz5vL+ejsCzptXAlbaoCZOja0iEnj+WtVpW13KXJrzm2NItVMFHzXr0hQj+0k6x9Y QUaWcSgo3WqISZC1sxYPniOKEiZN1/H0zsd1SrQ51xTxnn5xF97ULq9xRIcQsek7NWIilJ gRKDdcOcq2yIBETX7TNxfLhq80vUnlNN5jH7Ep1B+7VzgqV6/fVv5VWz8G1sJqp96Q/3N0 FDMU/32y5uRgCbKF7rhRiQS48HL0wpediDLNKAlDaCYC8T/40CEdglR6ZQ3c9nz9Jgr1Qy o3nTztz/cBPtxrs6w1/s1C5XAMgXxOiivgGZ+4CEhsnI7OAF4SL7D9nI7nO9Eg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zmm8z5rjYz12pD; Tue, 29 Apr 2025 03:32: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 53T3WZVX030758; Tue, 29 Apr 2025 03:32:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T3WZdv030755; Tue, 29 Apr 2025 03:32:35 GMT (envelope-from git) Date: Tue, 29 Apr 2025 03:32:35 GMT Message-Id: <202504290332.53T3WZdv030755@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: 6cb5f1629e6f - main - net/sff8472.h: add double-include protection 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: 6cb5f1629e6f89a468e34625fd4a35ce4585500f Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6cb5f1629e6f89a468e34625fd4a35ce4585500f commit 6cb5f1629e6f89a468e34625fd4a35ce4585500f Author: Konstantin Belousov AuthorDate: 2025-04-28 01:43:18 +0000 Commit: Konstantin Belousov CommitDate: 2025-04-29 03:20:10 +0000 net/sff8472.h: add double-include protection Reviewed by: emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D50051 --- sys/net/sff8472.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/net/sff8472.h b/sys/net/sff8472.h index 33b6dddb5b9f..1c8e8c1af2fb 100644 --- a/sys/net/sff8472.h +++ b/sys/net/sff8472.h @@ -26,6 +26,9 @@ * SUCH DAMAGE. */ +#ifndef _NET_SFF8472_H_ +#define _NET_SFF8472_H_ + /* * The following set of constants are from Document SFF-8472 * "Diagnostic Monitoring Interface for Optical Transceivers" revision @@ -526,3 +529,5 @@ static const char *sff_8024_id[SFF_8024_ID_LAST + 1] = { */ #define SFF_8472_POWER_FACTOR 10000.0 + +#endif From nobody Tue Apr 29 05:54:20 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 4ZmqJX5Lgxz5vV82; Tue, 29 Apr 2025 05:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmqJX4SRHz3vWv; Tue, 29 Apr 2025 05:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745906060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=etSIGlW+q7k57P3lHQuVol85wNXPv6B+rvUMILHxFAI=; b=Vei/T0cNmQ02WgF3ou3LpxHbU1DB5IZMuuOfUlNiXuINRcROS9XuQWcg//z9ZpIUVo7gHa S4pKEiAqKviwFMeqMqmS2KW8/iL6WFcL6qtTTKMNvj+8pjrFv4/6nOGhx462xH9PVSOy+P hH0AN2H9+lh+zZoctj23ri9eUYfW7OGBD6+hk9gBt5kUQhziEzx+8seh7zAHB/x/+rFIla LND6RHAcQOZ4nPDfdGm38Ymegk+x/iLR4Ho7MoipO0lDI4hJzJckHQRoSkc38YAtw/5ec7 WEU5B5rJnStviQ0WIllsUMZZOxRn9vGDKppxCJj7vQSRlTdEQihAelkJXPS5HQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745906060; a=rsa-sha256; cv=none; b=TCWNbbcRs2D8OB22kU3cENhPCGL72TAsnkgcFNbNOt++aH/fHad/YhwhdcRQL023uARUJX Yo0ILgupx7/qngZL9Mzlm4RIeufBnAmVnkxOVEl4GAaf3ePb2CnsByfRRou0jiVzE3odZA XgsczuymlG3ZWFyDFX1aoE8AKHvUQBpWalLCXDDK4qzwmEhWsLSeIZnzeLF1oagWhSkEHK Qk5YRXo/g4tJcAhJLVyE6jOubh633dFpldQe9SjK9kg37tAtKQqoBm+0a8TThqjOXjTBeQ znvKtrKxjtH7teIECDMBDQ6Al5q7UthSnuDEEfBGh9NU8LfjLeJHZVMLmM/YDg== 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=1745906060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=etSIGlW+q7k57P3lHQuVol85wNXPv6B+rvUMILHxFAI=; b=HR800Pxai1z0wH+7ouKVxQtzaXAn9sVpBRvjAXqnL/tEN9HnRY4n/bNtN6I3ADm9s0GWqr 4/fdAlKj6WlGeATp+52vU8J598gSkfUpHFFwJ+Owgio6GJFN+WoF5YTK0CpzhX5KDEq4SP X7YgNFe9M3sX0TUmg8drXwEomoAsV+VMVZkMmhKjzr+MnnYDCoCF9WhEDZ/eialsSJxwtY xVVde2f3debz8HUDiMnGKgUn2MfwqCZ2Kv4aXfEdybkEIvhh399YDS+CTImHNGn6SIlfuc mUIh+15pw38dryLL/O6VCXdDkSuDGWyWUzOsZJ8z2s5v+9363Li7vrX3BpYgLA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmqJX42BMz16wd; Tue, 29 Apr 2025 05:54:20 +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 53T5sK60092545; Tue, 29 Apr 2025 05:54:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T5sK1A092542; Tue, 29 Apr 2025 05:54:20 GMT (envelope-from git) Date: Tue, 29 Apr 2025 05:54:20 GMT Message-Id: <202504290554.53T5sK1A092542@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 7554a5b611fd - main - arm: Hack to make kernel.bin into a zImage 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7554a5b611fd8e9a97cb6937a1110079568d4fd3 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=7554a5b611fd8e9a97cb6937a1110079568d4fd3 commit 7554a5b611fd8e9a97cb6937a1110079568d4fd3 Author: Warner Losh AuthorDate: 2024-01-09 04:17:50 +0000 Commit: Warner Losh CommitDate: 2025-04-29 05:53:48 +0000 arm: Hack to make kernel.bin into a zImage Add a the zImage header before start. This allows some boot loaders (including xen) to load kernel.bin as a zImage. I did this for someone who was doing some work on getting FreeBSD/armv7 working on Xen. That never went anywhere, but this seems useful in its own right. Sponsored by: Netflix --- sys/arm/arm/locore.S | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/arm/arm/locore.S b/sys/arm/arm/locore.S index 6acaaa8a7eb4..2947032531b1 100644 --- a/sys/arm/arm/locore.S +++ b/sys/arm/arm/locore.S @@ -98,6 +98,16 @@ .globl btext btext: ASENTRY_NP(_start) + .rept 8 /* zImage header */ + mov r0, r0 + .endr + + b start + + .word 0x016f2818 + .word 0 /* absolute load/run zImage address or 0 or PIC */ + .word (_edata - btext) +start: STOP_UNWINDING /* Can't unwind into the bootloader! */ /* Make sure interrupts are disabled. */ From nobody Tue Apr 29 06:33:46 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 4ZmrB35y3nz5vXXR; Tue, 29 Apr 2025 06:33: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 4ZmrB30lzwz3CQ1; Tue, 29 Apr 2025 06:33:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745908427; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JRQ08YAudr9b3iCuNg8b9fohOZK68O09udfvfMDvh60=; b=Oz5fFGe9L1+qFivw8TIL9Yf2FNecI6BrBkyDXilBd4i7YOHootAJ/bW+PLnzWRvH3aSdd7 OKBjaksYQGyEH16Wt8UZ/8N4QUEAPvQW5pf6HBWjcy0ye3fI0BT/58rIeg35OAPx3Qt3zC de4+aZdHEyAk+Vt8wNwc5x36c1gMdGXE4u4DYeEJioYSROaTpWjCcfUIWprtqgdoDT4k/7 6Nzr8iNcRKmv8iMM5yqg8RNMJP65agEbJ7309S2/da0n7Yloa8LTHt4yfw2z8yHQi79VLk gG3mXmrfWRNl/NZryJvweBveOXAYXN4tmeR1gSq0ex4voCsN9QoU8Bw1VaGicA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745908427; a=rsa-sha256; cv=none; b=FYm+2Vw5nS+DarDYASaFcXxsoEwI1XKZsOEltKZd9pXn6S7XyNX+74GzMmtCLsKSSd78sF PHzLWM5d4VIW1wueeDNOZiH5fSWXXXkThrM9ibFCBBQP2BE7eA3y+doK79TikS+qEOrfDf KogjaU55+VUraMUige9C2N123QdqpQN/FEQ+/TKdi0QuyuUVqPpVl8MhO2ivhkhd0b5MxT Ci3N4CqIxJu1JfDopBvmp175cVtaKU62pyyoOd6eo68lyldMVYh6lmQoh6qtdpEa6C7p5l 3l/f+k4bICdXMOu7vpnq3JU7keSAIx52Db0Tm8pXSlT6c7iVI0PW92xpFjHqsA== 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=1745908427; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JRQ08YAudr9b3iCuNg8b9fohOZK68O09udfvfMDvh60=; b=wtQjRabruoDVj+AvZaSslxpvnQ8kPiGMlwJl+MoOlZQCcRhe+4Gr6FuUPu7L2ruYX757DC 85puM/3wK9xmNZeIdEuSz6+vZsTx1wGbN3AwDwpbUP5FBYM5ogVuyB2z0voLkm2AtY1RjI aFaSUCgzqf5Wv4w1MULKliTTaSFiYWEjVJ/4NQ8ZRs4p0wOfXetQpaKqa8HCCF5u7unJUn heRNPZHNBi2klSS7Wf2O0bqpfhc+aoZ0Sr3k3AjyHf+csX+6O7saHipyuqnuSct/WWaJpa DHflHYigfSZdvg/MbKV6atVkU+ARZXJZLfj6hyIjr4UK+a+3SIW18bnDXM8uBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmrB30D0Sz17X4; Tue, 29 Apr 2025 06:33: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 53T6Xk5v067362; Tue, 29 Apr 2025 06:33:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T6XkXO067359; Tue, 29 Apr 2025 06:33:46 GMT (envelope-from git) Date: Tue, 29 Apr 2025 06:33:46 GMT Message-Id: <202504290633.53T6XkXO067359@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: 8f58b693814e - main - vm_grab_pages_unlocked: read all the pages at 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: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8f58b693814e06afc51eade99a8c38e4abe9a804 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=8f58b693814e06afc51eade99a8c38e4abe9a804 commit 8f58b693814e06afc51eade99a8c38e4abe9a804 Author: Doug Moore AuthorDate: 2025-04-29 06:28:32 +0000 Commit: Doug Moore CommitDate: 2025-04-29 06:28:32 +0000 vm_grab_pages_unlocked: read all the pages at once Define a function pctrie_lookup_range_unlocked, which looks up consecutive elements in the pctrie, until a count limit is reached or an item is discovered missing, and writes them into the first elements of an array, returning the count of items found. It does not require a lock. It uses an iterator, strictly between smr_enter and smr_exit, when some of the nodes in the pctrie on entry may come to have only one child, but none of them can be freed before exit. Define a vm_radix interface to it for reading page ranges. Change vm_page_grab_pages_unlocked to read all requested pages at once, without relying on the existence of a linked list of pages. Drop smr arguments from pctrie_iter_stride, since there's no smr version in use. Drop _pctrie_iter_lookup, since it isn't needed. Reviewed by: alc, kib, markj Differential Revision: https://reviews.freebsd.org/D47114 --- sys/kern/subr_pctrie.c | 83 +++++++++++++++++++++++++++++++------------------- sys/sys/pctrie.h | 26 ++++++++++++++-- sys/vm/vm_page.c | 24 ++++----------- sys/vm/vm_radix.h | 12 ++++++++ 4 files changed, 93 insertions(+), 52 deletions(-) diff --git a/sys/kern/subr_pctrie.c b/sys/kern/subr_pctrie.c index 03cf3e1e5990..feb29cf82330 100644 --- a/sys/kern/subr_pctrie.c +++ b/sys/kern/subr_pctrie.c @@ -494,7 +494,7 @@ _pctrie_lookup_node(struct pctrie *ptree, struct pctrie_node *node, * search for a value matching 'index'. */ while (node != NULL) { - KASSERT(!powerof2(node->pn_popmap), + KASSERT(access == PCTRIE_SMR || !powerof2(node->pn_popmap), ("%s: freed node in iter path", __func__)); if (!pctrie_keybarr(node, index, &slot)) break; @@ -520,29 +520,20 @@ _pctrie_lookup_node(struct pctrie *ptree, struct pctrie_node *node, } /* - * Returns the value stored at a given index value, possibly NULL. + * Returns the value stored at a given index value, possibly NULL, assuming + * access is externally synchronized by a lock. */ -static __always_inline uint64_t * -_pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index, smr_t smr, - enum pctrie_access access) +uint64_t * +pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index) { struct pctrie_node *node; it->index = index; node = _pctrie_lookup_node(it->ptree, it->node, index, &it->node, - smr, access); + NULL, PCTRIE_LOCKED); 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)); -} - /* * Insert the val in the trie, starting search with iterator. Return a pointer * to indicate where a new node must be allocated to complete insertion. @@ -581,9 +572,8 @@ pctrie_iter_insert_lookup(struct pctrie_iter *it, uint64_t *val) * 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 * +pctrie_iter_stride(struct pctrie_iter *it, int stride) { uint64_t index = it->index + stride; @@ -594,17 +584,7 @@ _pctrie_iter_stride(struct pctrie_iter *it, int stride, smr_t smr, 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)); + return (pctrie_iter_lookup(it, index)); } /* @@ -614,7 +594,7 @@ pctrie_iter_stride(struct pctrie_iter *it, int stride) uint64_t * pctrie_iter_next(struct pctrie_iter *it) { - return (_pctrie_iter_stride(it, 1, NULL, PCTRIE_LOCKED)); + return (pctrie_iter_stride(it, 1)); } /* @@ -624,7 +604,48 @@ pctrie_iter_next(struct pctrie_iter *it) uint64_t * pctrie_iter_prev(struct pctrie_iter *it) { - return (_pctrie_iter_stride(it, -1, NULL, PCTRIE_LOCKED)); + return (pctrie_iter_stride(it, -1)); +} + +/* + * Returns the number of contiguous, non-NULL entries read into the value[] + * array, without requiring an external lock. These entries *may* never have + * been in the pctrie all at one time, but for a series of times t0, t1, t2, + * ..., with ti <= t(i+1), value[i] was in the trie at time ti. + */ +int +pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, + uint64_t *value[], int count, smr_t smr) +{ + struct pctrie_node *parent, *node; + int base, end, i; + + parent = NULL; + smr_enter(smr); + for (i = 0; i < count;) { + node = _pctrie_lookup_node(ptree, parent, index + i, &parent, + smr, PCTRIE_SMR); + value[i] = pctrie_match_value(node, index + i); + if (value[i] == NULL) + break; + ++i; + base = (index + i) % PCTRIE_COUNT; + if (base == 0 || parent == NULL || parent->pn_clev != 0) + continue; + end = MIN(count, i + PCTRIE_COUNT - base); + while (i < end) { + node = pctrie_node_load(&parent->pn_child[base++], + smr, PCTRIE_SMR); + value[i] = pctrie_toval(node); + if (value[i] == NULL) + break; + ++i; + } + if (i < end) + break; + } + smr_exit(smr); + return (i); } /* diff --git a/sys/sys/pctrie.h b/sys/sys/pctrie.h index dac18b58498b..01d9f34f11b9 100644 --- a/sys/sys/pctrie.h +++ b/sys/sys/pctrie.h @@ -83,6 +83,19 @@ name##_PCTRIE_LOOKUP_UNLOCKED(struct pctrie *ptree, uint64_t key) \ return name##_PCTRIE_VAL2PTR(pctrie_lookup_unlocked(ptree, \ key, (smr))); \ } \ + \ +static __inline __unused int \ +name##_PCTRIE_LOOKUP_RANGE_UNLOCKED(struct pctrie *ptree, uint64_t key, \ + struct type *value[], int count) \ +{ \ + uint64_t **data = (uint64_t **)value; \ + \ + count = pctrie_lookup_range_unlocked(ptree, key, data, count, \ + (smr)); \ + for (int i = 0; i < count; i++) \ + value[i] = name##_PCTRIE_NZVAL2PTR(data[i]); \ + return (count); \ +} \ #define PCTRIE_DEFINE(name, type, field, allocfn, freefn) \ \ @@ -94,13 +107,18 @@ CTASSERT(sizeof(((struct type *)0)->field) == sizeof(uint64_t)); \ CTASSERT((__offsetof(struct type, field) & (sizeof(uint32_t) - 1)) == 0); \ \ static __inline struct type * \ -name##_PCTRIE_VAL2PTR(uint64_t *val) \ +name##_PCTRIE_NZVAL2PTR(uint64_t *val) \ { \ + return (struct type *) \ + ((uintptr_t)val - __offsetof(struct type, field)); \ +} \ \ +static __inline struct type * \ +name##_PCTRIE_VAL2PTR(uint64_t *val) \ +{ \ if (val == NULL) \ return (NULL); \ - return (struct type *) \ - ((uintptr_t)val - __offsetof(struct type, field)); \ + return (name##_PCTRIE_NZVAL2PTR(val)); \ } \ \ static __inline uint64_t * \ @@ -365,6 +383,8 @@ void pctrie_insert_node(uint64_t *val, struct pctrie_node *parent, uint64_t *pctrie_lookup(struct pctrie *ptree, uint64_t key); uint64_t *pctrie_lookup_unlocked(struct pctrie *ptree, uint64_t key, smr_t smr); +int pctrie_lookup_range_unlocked(struct pctrie *ptree, + uint64_t index, uint64_t *value[], int count, 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); diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index e2f11eb57100..8dce6feaca09 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -5269,7 +5269,7 @@ vm_page_grab_pages_unlocked(vm_object_t object, vm_pindex_t pindex, { vm_page_t m; int flags; - int i; + int i, num_fetched; KASSERT(count > 0, ("vm_page_grab_pages_unlocked: invalid page count %d", count)); @@ -5281,22 +5281,10 @@ vm_page_grab_pages_unlocked(vm_object_t object, vm_pindex_t pindex, */ flags = allocflags & ~VM_ALLOC_NOBUSY; vm_page_grab_check(flags); - m = NULL; - for (i = 0; i < count; i++, pindex++) { - /* - * We may see a false NULL here because the previous page has - * been removed or just inserted and the list is loaded without - * barriers. Switch to radix to verify. - */ - if (m == NULL || QMD_IS_TRASHED(m) || m->pindex != pindex || - atomic_load_ptr(&m->object) != object) { - /* - * This guarantees the result is instantaneously - * correct. - */ - m = NULL; - } - m = vm_page_acquire_unlocked(object, pindex, m, flags); + num_fetched = vm_radix_lookup_range_unlocked(&object->rtree, pindex, + ma, count); + for (i = 0; i < num_fetched; i++, pindex++) { + m = vm_page_acquire_unlocked(object, pindex, ma[i], flags); if (m == PAGE_NOT_ACQUIRED) return (i); if (m == NULL) @@ -5308,8 +5296,8 @@ vm_page_grab_pages_unlocked(vm_object_t object, vm_pindex_t pindex, } /* m will still be wired or busy according to flags. */ vm_page_grab_release(m, allocflags); + /* vm_page_acquire_unlocked() may not return ma[i]. */ ma[i] = m; - m = TAILQ_NEXT(m, listq); } if (i == count || (allocflags & VM_ALLOC_NOCREAT) != 0) return (i); diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h index df3639091d58..231075d32754 100644 --- a/sys/vm/vm_radix.h +++ b/sys/vm/vm_radix.h @@ -121,6 +121,18 @@ vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index) return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index)); } +/* + * Returns the number of contiguous, non-NULL pages read into the ma[] + * array, without requiring an external lock. + */ +static __inline int +vm_radix_lookup_range_unlocked(struct vm_radix *rtree, vm_pindex_t index, + vm_page_t ma[], int count) +{ + return (VM_RADIX_PCTRIE_LOOKUP_RANGE_UNLOCKED(&rtree->rt_trie, index, + ma, count)); +} + /* * Initialize an iterator for vm_radix. */ From nobody Tue Apr 29 07:47:24 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 4Zmsq10DyLz5td3D; Tue, 29 Apr 2025 07:47: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 4Zmsq06XYjz3hh3; Tue, 29 Apr 2025 07:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745912845; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UKMDbRmTlFZhKNujdIVqZoOwd1M/8ZLYf799mJaRLCs=; b=sb5C+Dz4I8+38FbHLbMGiIT/jBqkcY5i/WQJEQULYXQTAeIlXANrnp0AtZJx6C1vvmQpbd vLB5hMTDaeMwpDZXSP6b5eVWo+D1HIx7PytNySJKY8X0PalisEiy7fZwbsvyD3IpgRUS9S Gp7RURiJ7J0TQV32iE3oOYaZoHjCEg5SGZWVI2CUwlY0YAgndJE8q1K0Ttnv64sXZBXXn0 9kBVVtetQdSSp3yZByuxVSMwYyTTfKSt3nR/2zb8NDo7Q9vSF06oD1kckWFYbIxjZ20ayj UrfsMEJLSSXe4v/azUoIOEZtxxN545PuI4jvaQTC1ZkFGLu76vGPU2UOJaUC9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745912845; a=rsa-sha256; cv=none; b=w73MCHJ5aAvXTqppr4XERZxcjhO+BghTi9RG9xIDR1QRZJdil5Z0Nzm3rWzrCjXGcZzAFW Z0lng7tEvW8/MO1MVppMJX8TNljLPCwg/j9+Zpzwaiuuv3YqyFGYTnvEDPN72NS2QlDRNK i5wV0Flytp13XsvODCd05YLCXUmPcklNkfyIXrTWBlT9diGsdscZHThmlzo9KCsUkjR7Tt EyXZ/KQaX0XeflUUChvVArYfTSX0c1wQjcBQr1GyqsgI3nXu1Xs5K6DsqImb4FBw9FjxYx w6hMUqsrfOywp9txSEVCHwq5W32Xk9LPDVkp/lpEObmhIliuYlwXr62/5BnMbA== 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=1745912844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UKMDbRmTlFZhKNujdIVqZoOwd1M/8ZLYf799mJaRLCs=; b=HCH3+h3rlL40chDZ4sqC8WV3/aKCqiMKYsyWYwsHcxqmnNb8RODnheMbaJsdKw0WfK2vec mIzKumhwZH8s73jz+pIxHyB9wkHdGYqprE5vPpB1FymFWRJPSK/YvVYig1ewIa7O4V/9ln j9cs+OBqyo7fiVkdYYdF4TaJw7JeyQgCQH2gxvQMj8aBfuRzkfX6fZu295Bfo5ItlWhWN/ WXQrt+eg1EeJM5TfG4eovAzfXM5viqMr4b3QavO0WTLqWgFh3/ZgXuQWBalmDuVTXvCU5K fVdHL2NUZNDcSMmtHr3T6wV5gQbv/lixj0cxGVVl7vbGjQT76rh09R31ZtPe4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zmsq05cQ6z19h6; Tue, 29 Apr 2025 07:47: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 53T7lOWM099962; Tue, 29 Apr 2025 07:47:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T7lOhu099959; Tue, 29 Apr 2025 07:47:24 GMT (envelope-from git) Date: Tue, 29 Apr 2025 07:47:24 GMT Message-Id: <202504290747.53T7lOhu099959@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 4fa275a5f357 - main - queue(3): Add simple tests for some macros for all list/tailq types 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4fa275a5f35742a5d662db7106d20819329dc8f2 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=4fa275a5f35742a5d662db7106d20819329dc8f2 commit 4fa275a5f35742a5d662db7106d20819329dc8f2 Author: Olivier Certner AuthorDate: 2025-04-08 11:42:27 +0000 Commit: Olivier Certner CommitDate: 2025-04-29 07:47:02 +0000 queue(3): Add simple tests for some macros for all list/tailq types These essentially test building a list/tailq of 100 elements with _INSERT_HEAD(), iterating over them with _FOREACH(), splitting it with _SPLIT_AFTER() and concatenating back the results with _CONCAT(), checking that the lists/tailqs at each step have the right number of elements and at the expected positions. Reviewed by: markj MFC after: 2 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49975 --- tests/sys/sys/Makefile | 1 + tests/sys/sys/queue_test.c | 235 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 236 insertions(+) diff --git a/tests/sys/sys/Makefile b/tests/sys/sys/Makefile index 40060911856f..a1b4e3234e1c 100644 --- a/tests/sys/sys/Makefile +++ b/tests/sys/sys/Makefile @@ -7,6 +7,7 @@ ATF_TESTS_C= arb_test \ bitstring_test \ buf_ring_test \ qmath_test \ + queue_test \ rb_test \ splay_test \ time_test diff --git a/tests/sys/sys/queue_test.c b/tests/sys/sys/queue_test.c new file mode 100644 index 000000000000..75974ad8d792 --- /dev/null +++ b/tests/sys/sys/queue_test.c @@ -0,0 +1,235 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025 The FreeBSD Foundation + * + * This software was developed by Olivier Certner at + * Kumacom SARL under sponsorship from the FreeBSD Foundation. + */ + +#include +#define QUEUE_MACRO_DEBUG_ASSERTIONS +#include + +#include +#include + +#include + +/* + * General utilities. + */ +#define DIAG(fmt, ...) do { \ + fprintf(stderr, "%s(): " fmt "\n", __func__, ##__VA_ARGS__); \ +} while (0) + +/* + * Common definitions and utilities. + * + * 'type' should be tailq, stailq, list or slist. 'TYPE' is 'type' in + * uppercase. + */ + +#define QUEUE_TESTS_COMMON(type, TYPE) \ +/* \ + * Definitions and utilities. \ + */ \ + \ +struct type ## _id_elem { \ + TYPE ## _ENTRY(type ## _id_elem) ie_entry; \ + u_int ie_id; \ +}; \ + \ +TYPE ## _HEAD(type ## _ids, type ## _id_elem); \ + \ +static void \ +type ## _check(const struct type ## _ids *const type, \ + const u_int nb, const u_int id_shift); \ + \ +/* \ + * Creates a tailq/list with 'nb' elements with contiguous IDs \ + * in ascending order starting at 'id_shift'. \ + */ \ +static struct type ## _ids * \ +type ## _create(const u_int nb, const u_int id_shift) \ +{ \ + struct type ## _ids *const type = \ + malloc(sizeof(*type)); \ + \ + ATF_REQUIRE_MSG(type != NULL, \ + "Cannot malloc " #type " head"); \ + \ + TYPE ## _INIT(type); \ + for (u_int i = 0; i < nb; ++i) { \ + struct type ## _id_elem *const e = \ + malloc(sizeof(*e)); \ + \ + ATF_REQUIRE_MSG(e != NULL, \ + "Cannot malloc " #type " element %u", i); \ + e->ie_id = nb - 1 - i + id_shift; \ + TYPE ## _INSERT_HEAD(type, e, ie_entry); \ + } \ + \ + DIAG("Created " #type " %p with %u elements", \ + type, nb); \ + type ## _check(type, nb, id_shift); \ + return (type); \ +} \ + \ +/* Performs no check. */ \ +static void \ +type ## _destroy(struct type ## _ids *const type) \ +{ \ + struct type ## _id_elem *e, *tmp_e; \ + \ + DIAG("Destroying " #type" %p", type); \ + TYPE ## _FOREACH_SAFE(e, type, ie_entry, \ + tmp_e) { \ + free(e); \ + } \ + free(type); \ +} \ + \ + \ +/* Checks that some tailq/list is as produced by *_create(). */ \ +static void \ +type ## _check(const struct type ## _ids *const type, \ + const u_int nb, const u_int id_shift) \ +{ \ + struct type ## _id_elem *e; \ + u_int i = 0; \ + \ + TYPE ## _FOREACH(e, type, ie_entry) { \ + ATF_REQUIRE_MSG(i + 1 <= nb, \ + #type " %p has more than %u elements", \ + type, nb); \ + ATF_REQUIRE_MSG(e->ie_id == i + id_shift, \ + #type " %p element %p: Found ID %u, " \ + "expected %u", \ + type, e, e->ie_id, i + id_shift); \ + ++i; \ + } \ + ATF_REQUIRE_MSG(i == nb, \ + #type " %p has only %u elements, expected %u", \ + type, i, nb); \ +} \ + \ +/* Returns NULL if not enough elements. */ \ +static struct type ## _id_elem * \ +type ## _nth(const struct type ## _ids *const type, \ + const u_int idx) \ +{ \ + struct type ## _id_elem *e; \ + u_int i = 0; \ + \ + TYPE ## _FOREACH(e, type, ie_entry) { \ + if (i == idx) { \ + DIAG(#type " %p has element %p " \ + "(ID %u) at index %u", \ + type, e, e->ie_id, idx); \ + return (e); \ + } \ + ++i; \ + } \ + DIAG(#type " %p: Only %u elements, no index %u", \ + type, i, idx); \ + return (NULL); \ +} \ + \ +/* \ + * Tests. \ + */ \ + \ +ATF_TC(type ## _split_after_and_concat); \ +ATF_TC_HEAD(type ## _split_after_and_concat, tc) \ +{ \ + atf_tc_set_md_var(tc, "descr", \ + "Test " #TYPE "_SPLIT_AFTER() followed by " \ + #TYPE "_CONCAT()"); \ +} \ +ATF_TC_BODY(type ## _split_after_and_concat, tc) \ +{ \ + struct type ## _ids *const type = \ + type ## _create(100, 0); \ + struct type ## _ids rest; \ + struct type ## _id_elem *e; \ + \ + e = type ## _nth(type, 49); \ + TYPE ## _SPLIT_AFTER(type, e, &rest, ie_entry); \ + type ## _check(type, 50, 0); \ + type ## _check(&rest, 50, 50); \ + QUEUE_TESTS_ ## TYPE ## _CONCAT(type, &rest); \ + ATF_REQUIRE_MSG(TYPE ## _EMPTY(&rest), \ + "'rest' not empty after concat"); \ + type ## _check(type, 100, 0); \ + type ## _destroy(type); \ +} + +/* + * Paper over the *_CONCAT() signature differences. + */ + +#define QUEUE_TESTS_TAILQ_CONCAT(first, second) \ + TAILQ_CONCAT(first, second, ie_entry) + +#define QUEUE_TESTS_LIST_CONCAT(first, second) \ + LIST_CONCAT(first, second, list_id_elem, ie_entry) + +#define QUEUE_TESTS_STAILQ_CONCAT(first, second) \ + STAILQ_CONCAT(first, second) + +#define QUEUE_TESTS_SLIST_CONCAT(first, second) \ + SLIST_CONCAT(first, second, slist_id_elem, ie_entry) + +/* + * ATF test registration. + */ + +#define QUEUE_TESTS_REGISTRATION(tp, type) \ + ATF_TP_ADD_TC(tp, type ## _split_after_and_concat) + +/* + * Macros defining print functions. + * + * They are currently not used in the tests above, but are useful for debugging. + */ + +#define QUEUE_TESTS_TQ_PRINT(type, hfp) \ + static void \ + type ## _print(const struct type ## _ids *const type) \ + { \ + printf(#type " %p: " __STRING(hfp ## _first) \ + " = %p, " __STRING(hfp ## _last) " = %p\n", \ + type, type->hfp ## _first, type->hfp ## _last); \ + } + +#define QUEUE_TESTS_L_PRINT(type, hfp) \ + static void \ + type ## _print(const struct type ## _ids *const type) \ + { \ + printf(#type " %p: " __STRING(hfp ## _first) " = %p\n", \ + type, type->hfp ## _first); \ + } + + +/* + * Meat. + */ + +QUEUE_TESTS_COMMON(tailq, TAILQ); +QUEUE_TESTS_COMMON(list, LIST); +QUEUE_TESTS_COMMON(stailq, STAILQ); +QUEUE_TESTS_COMMON(slist, SLIST); + +/* + * Main. + */ +ATF_TP_ADD_TCS(tp) +{ + QUEUE_TESTS_REGISTRATION(tp, tailq); + QUEUE_TESTS_REGISTRATION(tp, list); + QUEUE_TESTS_REGISTRATION(tp, stailq); + QUEUE_TESTS_REGISTRATION(tp, slist); + + return (atf_no_error()); +} From nobody Tue Apr 29 13:56:05 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 4Zn20P5rqvz5v4HN; Tue, 29 Apr 2025 13:56: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 4Zn20P45j5z45N3; Tue, 29 Apr 2025 13:56:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745934965; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tnkKYboDn3BY/hILOg+whOTqo7dgd+HjqZ5XPVsa1dU=; b=rilGoP0MnPUtZA5MxcqvL5aylVnAY2uWbKqswiOePoyvJ+vFNuOHHyP/fw0hcNFHAjJwUr NYi6+edz02jDCF0CMbRJM1w44KEYrOh4WzdzJysNZbbyWENlrbePaWjibA+Q/ynQWFAqTJ jVjIlkcG3mbJTZCnVHI5oAnqQs7MYgayD/USJBvXZk32hJekSj8dER3MyHKgtABSnUxw+c yC/Y8mYNjFBGWg+RsYEh7qik89JfpxsFOYNtuIboWmCEJyJYpJkn7Z3kydUzhw/6m89lxE UUaCQVT3FIb1t+ZheBrnfilmDBlKC1TM3QX+GFNtce9qoWbMzAlUHI8pRMxAhA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745934965; a=rsa-sha256; cv=none; b=jxbr1WsbwQt7/0QuspmixpO2/lqLW1BHrmkhFmfct7gcKWNu6kXh2ds00nf/MxKfQsfjgh pe4ch258SWS/twQ9Qlgtajo+y/yjtDqDi1iX+Tk/paWsoaC7dcQa09uCI5q/87vr2b4cB2 X3Po/Tan3m2R10a4KQh0T2e7e11dejo3L2/MzI1G4FliOfcxAXmfp6zAfkMXYpw73BH7xo zA8JzNWhVJDernhMffsQt5NrSMYW98B9CjLXWUgiPAU0LVJsVEBRVwTj/UWEhVm+rVt1MI xObfNqpLyuEajNfHq3UTV/I1LrNAEBvCYYjgyO0wMXKQAILxg5j+dmkvN1OEOw== 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=1745934965; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tnkKYboDn3BY/hILOg+whOTqo7dgd+HjqZ5XPVsa1dU=; b=uPcdAVzjAcMKWbxviLWt1H8ifwDlVWxJQ857yhQZSdUIMCrqCQVhky84/AEMYlKIfW8XfG SHYMFxiJtVESUpMRVrXWhoHGqujCuGOTIWBglUefm9jDgccj1XbLVG7Z8PMoPQsD0qUh31 WFnt3cgtEkMHr+lcPRDSfmYkq+o/CGeDNjMUDK7k4t4P8nlsBsAFJ1qDz2ceC0auSbo+IV gvJIyYj8GI5/7X6C1acxJttwpZJBrx+QqOviH5pBD9hZLZM8xyfV1eaduevKfmvcT6sfF5 4FFTftRC6iR/wkfFdYsCubqJOY0ZMXOjQ2YLe1rJmoGGJeUMXyJC9TQ001jgYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn20P3Qfqz7Z9; Tue, 29 Apr 2025 13:56: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 53TDu5ZL003704; Tue, 29 Apr 2025 13:56:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TDu54D003701; Tue, 29 Apr 2025 13:56:05 GMT (envelope-from git) Date: Tue, 29 Apr 2025 13:56:05 GMT Message-Id: <202504291356.53TDu54D003701@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: 325aa4dbd10d - main - linuxkpi: Introduce a properly typed jiffies 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: 325aa4dbd10d04a61a9529e1d76212b5649b3c73 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=325aa4dbd10d04a61a9529e1d76212b5649b3c73 commit 325aa4dbd10d04a61a9529e1d76212b5649b3c73 Author: Mark Johnston AuthorDate: 2025-01-11 23:06:06 +0000 Commit: Mark Johnston CommitDate: 2025-04-29 13:53:40 +0000 linuxkpi: Introduce a properly typed jiffies Now that we have a long-sized tick counter, we can migrate to using properly typed timeout parameters in various bits of the LinuxKPI. This fixes a subtle incompatibility that is otherwise difficult to paper over and leads to bugs when ticks values are sign-extended. - Introduce a "jiffies" symbol in subr_ticks.S, declared only in the LinuxKPI as an unsigned long. - Remove all references to "ticks" from the LinuxKPI. - Convert interfaces to match Linux's type signatures where it makes sense. Reviewed by: manu Tested by: bz Differential Revision: https://reviews.freebsd.org/D48523 --- .../linuxkpi/common/include/linux/completion.h | 3 +- sys/compat/linuxkpi/common/include/linux/jiffies.h | 39 +++++++++++----------- sys/compat/linuxkpi/common/include/linux/sched.h | 4 +-- sys/compat/linuxkpi/common/include/linux/timer.h | 6 ++-- sys/compat/linuxkpi/common/include/linux/wait.h | 12 +++---- .../linuxkpi/common/include/linux/workqueue.h | 4 +-- sys/compat/linuxkpi/common/src/linux_80211.c | 4 +-- .../linuxkpi/common/src/linux_80211_macops.c | 4 +-- sys/compat/linuxkpi/common/src/linux_compat.c | 10 +++--- sys/compat/linuxkpi/common/src/linux_netdev.c | 16 ++++----- sys/compat/linuxkpi/common/src/linux_schedule.c | 16 ++++----- sys/compat/linuxkpi/common/src/linux_work.c | 2 +- sys/kern/subr_ticks.S | 8 ++++- 13 files changed, 68 insertions(+), 60 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/completion.h b/sys/compat/linuxkpi/common/include/linux/completion.h index 26e41a51c10b..9f8bebb4cf82 100644 --- a/sys/compat/linuxkpi/common/include/linux/completion.h +++ b/sys/compat/linuxkpi/common/include/linux/completion.h @@ -60,7 +60,8 @@ struct completion { extern void linux_complete_common(struct completion *, int); extern int linux_wait_for_common(struct completion *, int); -extern int linux_wait_for_timeout_common(struct completion *, int, int); +extern unsigned long linux_wait_for_timeout_common(struct completion *, + unsigned long, int); extern int linux_try_wait_for_completion(struct completion *); extern int linux_completion_done(struct completion *); diff --git a/sys/compat/linuxkpi/common/include/linux/jiffies.h b/sys/compat/linuxkpi/common/include/linux/jiffies.h index f099caa1ce18..df6ca129b37c 100644 --- a/sys/compat/linuxkpi/common/include/linux/jiffies.h +++ b/sys/compat/linuxkpi/common/include/linux/jiffies.h @@ -32,21 +32,21 @@ #include #include -#include #include #include +#include -#define jiffies ticks -#define jiffies_64 ticks +extern unsigned long jiffies; /* defined in sys/kern/subr_ticks.S */ +#define jiffies_64 jiffies /* XXX-MJ wrong on 32-bit platforms */ #define jiffies_to_msecs(x) ((unsigned int)(((int64_t)(int)(x)) * 1000 / hz)) -#define MAX_JIFFY_OFFSET ((INT_MAX >> 1) - 1) +#define MAX_JIFFY_OFFSET ((LONG_MAX >> 1) - 1) -#define time_after(a, b) ((int)((b) - (a)) < 0) +#define time_after(a, b) ((long)((b) - (a)) < 0) #define time_after32(a, b) ((int32_t)((uint32_t)(b) - (uint32_t)(a)) < 0) #define time_before(a, b) time_after(b,a) #define time_before32(a, b) time_after32(b, a) -#define time_after_eq(a, b) ((int)((a) - (b)) >= 0) +#define time_after_eq(a, b) ((long)((a) - (b)) >= 0) #define time_before_eq(a, b) time_after_eq(b, a) #define time_in_range(a,b,c) \ (time_after_eq(a,b) && time_before_eq(a,c)) @@ -68,7 +68,7 @@ extern uint64_t lkpi_msec2hz_rem; extern uint64_t lkpi_msec2hz_div; extern uint64_t lkpi_msec2hz_max; -static inline int +static inline unsigned long msecs_to_jiffies(uint64_t msec) { uint64_t result; @@ -79,10 +79,10 @@ msecs_to_jiffies(uint64_t msec) if (result > MAX_JIFFY_OFFSET) result = MAX_JIFFY_OFFSET; - return ((int)result); + return ((unsigned long)result); } -static inline int +static inline unsigned long usecs_to_jiffies(uint64_t usec) { uint64_t result; @@ -93,7 +93,7 @@ usecs_to_jiffies(uint64_t usec) if (result > MAX_JIFFY_OFFSET) result = MAX_JIFFY_OFFSET; - return ((int)result); + return ((unsigned long)result); } static inline uint64_t @@ -120,32 +120,33 @@ nsecs_to_jiffies(uint64_t nsec) } static inline uint64_t -jiffies_to_nsecs(int j) +jiffies_to_nsecs(unsigned long j) { - return ((1000000000ULL / hz) * (uint64_t)(unsigned int)j); + return ((1000000000ULL / hz) * (uint64_t)j); } static inline uint64_t -jiffies_to_usecs(int j) +jiffies_to_usecs(unsigned long j) { - return ((1000000ULL / hz) * (uint64_t)(unsigned int)j); + return ((1000000ULL / hz) * (uint64_t)j); } static inline uint64_t get_jiffies_64(void) { - return ((uint64_t)(unsigned int)ticks); + return ((uint64_t)jiffies); } -static inline int -linux_timer_jiffies_until(int expires) +static inline unsigned long +linux_timer_jiffies_until(unsigned long expires) { - int delta = expires - jiffies; + unsigned long delta = expires - jiffies; + /* guard against already expired values */ - if (delta < 1) + if ((long)delta < 1) delta = 1; return (delta); } diff --git a/sys/compat/linuxkpi/common/include/linux/sched.h b/sys/compat/linuxkpi/common/include/linux/sched.h index 80354493f955..3ad2f8e4ce8b 100644 --- a/sys/compat/linuxkpi/common/include/linux/sched.h +++ b/sys/compat/linuxkpi/common/include/linux/sched.h @@ -53,7 +53,7 @@ #include -#define MAX_SCHEDULE_TIMEOUT INT_MAX +#define MAX_SCHEDULE_TIMEOUT LONG_MAX #define TASK_RUNNING 0x0000 #define TASK_INTERRUPTIBLE 0x0001 @@ -160,7 +160,7 @@ void linux_send_sig(int signo, struct task_struct *task); linux_send_sig(signo, task); \ } while (0) -int linux_schedule_timeout(int timeout); +long linux_schedule_timeout(long timeout); static inline void linux_schedule_save_interrupt_value(struct task_struct *task, int value) diff --git a/sys/compat/linuxkpi/common/include/linux/timer.h b/sys/compat/linuxkpi/common/include/linux/timer.h index 8bea082c3e6c..a635f0faea59 100644 --- a/sys/compat/linuxkpi/common/include/linux/timer.h +++ b/sys/compat/linuxkpi/common/include/linux/timer.h @@ -42,7 +42,7 @@ struct timer_list { void (*function_415) (struct timer_list *); }; unsigned long data; - int expires; + unsigned long expires; }; extern unsigned long linux_timer_hz_mask; @@ -76,7 +76,7 @@ extern unsigned long linux_timer_hz_mask; callout_init(&(timer)->callout, 1); \ } while (0) -extern int mod_timer(struct timer_list *, int); +extern int mod_timer(struct timer_list *, unsigned long); extern void add_timer(struct timer_list *); extern void add_timer_on(struct timer_list *, int cpu); extern int del_timer(struct timer_list *); @@ -86,7 +86,7 @@ extern int timer_shutdown_sync(struct timer_list *); #define timer_pending(timer) callout_pending(&(timer)->callout) #define round_jiffies(j) \ - ((int)(((j) + linux_timer_hz_mask) & ~linux_timer_hz_mask)) + ((unsigned long)(((j) + linux_timer_hz_mask) & ~linux_timer_hz_mask)) #define round_jiffies_relative(j) round_jiffies(j) #define round_jiffies_up(j) round_jiffies(j) #define round_jiffies_up_relative(j) round_jiffies_up(j) diff --git a/sys/compat/linuxkpi/common/include/linux/wait.h b/sys/compat/linuxkpi/common/include/linux/wait.h index 309c7816aa7b..bd496793e27e 100644 --- a/sys/compat/linuxkpi/common/include/linux/wait.h +++ b/sys/compat/linuxkpi/common/include/linux/wait.h @@ -138,7 +138,7 @@ void linux_wake_up(wait_queue_head_t *, unsigned int, int, bool); #define wake_up_interruptible_all(wqh) \ linux_wake_up(wqh, TASK_INTERRUPTIBLE, 0, false) -int linux_wait_event_common(wait_queue_head_t *, wait_queue_t *, int, +int linux_wait_event_common(wait_queue_head_t *, wait_queue_t *, long, unsigned int, spinlock_t *); /* @@ -148,9 +148,9 @@ int linux_wait_event_common(wait_queue_head_t *, wait_queue_t *, int, */ #define __wait_event_common(wqh, cond, timeout, state, lock) ({ \ DEFINE_WAIT(__wq); \ - const int __timeout = ((int)(timeout)) < 1 ? 1 : (timeout); \ - int __start = ticks; \ - int __ret = 0; \ + const long __timeout = ((long)(timeout)) < 1 ? 1 : (timeout); \ + long __start = jiffies; \ + long __ret = 0; \ \ for (;;) { \ linux_prepare_to_wait(&(wqh), &__wq, state); \ @@ -166,7 +166,7 @@ int linux_wait_event_common(wait_queue_head_t *, wait_queue_t *, int, if (__ret == -EWOULDBLOCK) \ __ret = !!(cond); \ else if (__ret != -ERESTARTSYS) { \ - __ret = __timeout + __start - ticks; \ + __ret = __timeout + __start - jiffies; \ /* range check return value */ \ if (__ret < 1) \ __ret = 1; \ @@ -284,7 +284,7 @@ void linux_finish_wait(wait_queue_head_t *, wait_queue_t *); #define finish_wait(wqh, wq) linux_finish_wait(wqh, wq) void linux_wake_up_bit(void *, int); -int linux_wait_on_bit_timeout(unsigned long *, int, unsigned int, int); +int linux_wait_on_bit_timeout(unsigned long *, int, unsigned int, long); void linux_wake_up_atomic_t(atomic_t *); int linux_wait_on_atomic_t(atomic_t *, unsigned int); diff --git a/sys/compat/linuxkpi/common/include/linux/workqueue.h b/sys/compat/linuxkpi/common/include/linux/workqueue.h index 7e740f0f1dfc..25ee861d3015 100644 --- a/sys/compat/linuxkpi/common/include/linux/workqueue.h +++ b/sys/compat/linuxkpi/common/include/linux/workqueue.h @@ -90,7 +90,7 @@ struct delayed_work { struct { struct callout callout; struct mtx mtx; - int expires; + long expires; } timer; }; @@ -245,7 +245,7 @@ extern struct workqueue_struct *linux_create_workqueue_common(const char *, int) extern void linux_destroy_workqueue(struct workqueue_struct *); extern bool linux_queue_work_on(int cpu, struct workqueue_struct *, struct work_struct *); extern bool linux_queue_delayed_work_on(int cpu, struct workqueue_struct *, - struct delayed_work *, unsigned delay); + struct delayed_work *, unsigned long delay); extern bool linux_cancel_work(struct work_struct *); extern bool linux_cancel_delayed_work(struct delayed_work *); extern bool linux_cancel_work_sync(struct work_struct *); diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 1a8b32bb16f7..357f451a3f1a 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -5091,11 +5091,11 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) skb_queue_tail(<xq->skbq, skb); #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_TX) - printf("%s:%d mo_wake_tx_queue :: %d %u lsta %p sta %p " + printf("%s:%d mo_wake_tx_queue :: %d %lu lsta %p sta %p " "ni %p %6D skb %p lxtq %p { qlen %u, ac %d tid %u } " "WAKE_TX_Q ac %d prio %u qmap %u\n", __func__, __LINE__, - curthread->td_tid, (unsigned int)ticks, + curthread->td_tid, jiffies, lsta, sta, ni, ni->ni_macaddr, ":", skb, ltxq, skb_queue_len(<xq->skbq), ltxq->txq.ac, ltxq->txq.tid, ac, skb->priority, skb->qmap); diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c index d7bd26a3d0e3..b7e232da48b0 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c +++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c @@ -40,9 +40,9 @@ #ifdef LINUXKPI_DEBUG_80211 #define LKPI_80211_TRACE_MO(fmt, ...) \ if (linuxkpi_debug_80211 & D80211_TRACE_MO) \ - printf("LKPI_80211_TRACE_MO %s:%d: %d %d %u_" fmt "\n", \ + printf("LKPI_80211_TRACE_MO %s:%d: %d %d %lu_" fmt "\n", \ __func__, __LINE__, curcpu, curthread->td_tid, \ - (unsigned int)ticks, __VA_ARGS__) + jiffies, __VA_ARGS__) #else #define LKPI_80211_TRACE_MO(...) do { } while(0) #endif diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c index e061504868fd..019e08f59d44 100644 --- a/sys/compat/linuxkpi/common/src/linux_compat.c +++ b/sys/compat/linuxkpi/common/src/linux_compat.c @@ -2072,7 +2072,7 @@ linux_timer_callback_wrapper(void *context) } int -mod_timer(struct timer_list *timer, int expires) +mod_timer(struct timer_list *timer, unsigned long expires) { int ret; @@ -2268,12 +2268,12 @@ intr: /* * Time limited wait for done != 0 with or without signals. */ -int -linux_wait_for_timeout_common(struct completion *c, int timeout, int flags) +unsigned long +linux_wait_for_timeout_common(struct completion *c, unsigned long timeout, + int flags) { struct task_struct *task; - int end = jiffies + timeout; - int error; + unsigned long end = jiffies + timeout, error; if (SCHEDULER_STOPPED()) return (0); diff --git a/sys/compat/linuxkpi/common/src/linux_netdev.c b/sys/compat/linuxkpi/common/src/linux_netdev.c index c36684f9fd97..ce9153614104 100644 --- a/sys/compat/linuxkpi/common/src/linux_netdev.c +++ b/sys/compat/linuxkpi/common/src/linux_netdev.c @@ -63,22 +63,22 @@ SYSCTL_INT(_compat_linuxkpi, OID_AUTO, debug_napi, CTLFLAG_RWTUN, #define DNAPI_DIRECT_DISPATCH 0x1000 #define NAPI_TRACE(_n) if (debug_napi & DNAPI_TRACE) \ - printf("NAPI_TRACE %s:%d %u %p (%#jx %b)\n", __func__, __LINE__, \ - (unsigned int)ticks, _n, (uintmax_t)(_n)->state, \ + printf("NAPI_TRACE %s:%d %lu %p (%#jx %b)\n", __func__, __LINE__, \ + jiffies, _n, (uintmax_t)(_n)->state, \ (int)(_n)->state, LKPI_NAPI_FLAGS) #define NAPI_TRACE2D(_n, _d) if (debug_napi & DNAPI_TRACE) \ - printf("NAPI_TRACE %s:%d %u %p (%#jx %b) %d\n", __func__, __LINE__, \ - (unsigned int)ticks, _n, (uintmax_t)(_n)->state, \ + printf("NAPI_TRACE %s:%d %lu %p (%#jx %b) %d\n", __func__, __LINE__, \ + jiffies, _n, (uintmax_t)(_n)->state, \ (int)(_n)->state, LKPI_NAPI_FLAGS, _d) #define NAPI_TRACE_TASK(_n, _p, _c) if (debug_napi & DNAPI_TRACE_TASK) \ - printf("NAPI_TRACE %s:%d %u %p (%#jx %b) pending %d count %d " \ + printf("NAPI_TRACE %s:%d %lu %p (%#jx %b) pending %d count %d " \ "rx_count %d\n", __func__, __LINE__, \ - (unsigned int)ticks, _n, (uintmax_t)(_n)->state, \ + jiffies, _n, (uintmax_t)(_n)->state, \ (int)(_n)->state, LKPI_NAPI_FLAGS, _p, _c, (_n)->rx_count) #define NAPI_TODO() if (debug_napi & DNAPI_TODO) \ - printf("NAPI_TODO %s:%d %d\n", __func__, __LINE__, ticks) + printf("NAPI_TODO %s:%d %lu\n", __func__, __LINE__, jiffies) #define NAPI_IMPROVE() if (debug_napi & DNAPI_IMPROVE) \ - printf("NAPI_IMPROVE %s:%d %d\n", __func__, __LINE__, ticks) + printf("NAPI_IMPROVE %s:%d %lu\n", __func__, __LINE__, jiffies) #define NAPI_DIRECT_DISPATCH() ((debug_napi & DNAPI_DIRECT_DISPATCH) != 0) #else diff --git a/sys/compat/linuxkpi/common/src/linux_schedule.c b/sys/compat/linuxkpi/common/src/linux_schedule.c index fa20a11f5ec7..507d6fc417d0 100644 --- a/sys/compat/linuxkpi/common/src/linux_schedule.c +++ b/sys/compat/linuxkpi/common/src/linux_schedule.c @@ -40,7 +40,7 @@ static int linux_add_to_sleepqueue(void *wchan, struct task_struct *task, - const char *wmesg, int timeout, int state) + const char *wmesg, long timeout, int state) { int flags, ret; @@ -249,7 +249,7 @@ linux_waitqueue_active(wait_queue_head_t *wqh) } int -linux_wait_event_common(wait_queue_head_t *wqh, wait_queue_t *wq, int timeout, +linux_wait_event_common(wait_queue_head_t *wqh, wait_queue_t *wq, long timeout, unsigned int state, spinlock_t *lock) { struct task_struct *task; @@ -280,13 +280,13 @@ linux_wait_event_common(wait_queue_head_t *wqh, wait_queue_t *wq, int timeout, return (ret); } -int -linux_schedule_timeout(int timeout) +long +linux_schedule_timeout(long timeout) { struct task_struct *task; + long remainder; int ret; int state; - int remainder; task = current; @@ -296,7 +296,7 @@ linux_schedule_timeout(int timeout) else if (timeout == MAX_SCHEDULE_TIMEOUT) timeout = 0; - remainder = ticks + timeout; + remainder = jiffies + timeout; sleepq_lock(task); state = atomic_read(&task->state); @@ -313,7 +313,7 @@ linux_schedule_timeout(int timeout) return (MAX_SCHEDULE_TIMEOUT); /* range check return value */ - remainder -= ticks; + remainder -= jiffies; /* range check return value */ if (ret == -ERESTARTSYS && remainder < 1) @@ -344,7 +344,7 @@ linux_wake_up_bit(void *word, int bit) int linux_wait_on_bit_timeout(unsigned long *word, int bit, unsigned int state, - int timeout) + long timeout) { struct task_struct *task; void *wchan; diff --git a/sys/compat/linuxkpi/common/src/linux_work.c b/sys/compat/linuxkpi/common/src/linux_work.c index 939bdbbc1434..cf15d1a9c41b 100644 --- a/sys/compat/linuxkpi/common/src/linux_work.c +++ b/sys/compat/linuxkpi/common/src/linux_work.c @@ -212,7 +212,7 @@ linux_flush_rcu_work(struct rcu_work *rwork) */ bool linux_queue_delayed_work_on(int cpu, struct workqueue_struct *wq, - struct delayed_work *dwork, unsigned delay) + struct delayed_work *dwork, unsigned long delay) { static const uint8_t states[WORK_ST_MAX] __aligned(8) = { [WORK_ST_IDLE] = WORK_ST_TIMER, /* start timeout */ diff --git a/sys/kern/subr_ticks.S b/sys/kern/subr_ticks.S index ad01d5d67165..5cb994293d91 100644 --- a/sys/kern/subr_ticks.S +++ b/sys/kern/subr_ticks.S @@ -6,7 +6,8 @@ /* * Define the "ticks" and "ticksl" variables. The former is overlaid onto the - * low bits of the latter. + * low bits of the latter. Also define an alias "jiffies" of "ticksl", + * used by the LinuxKPI. */ #if defined(__aarch64__) @@ -34,3 +35,8 @@ ticksl: .zero __SIZEOF_LONG__ .type ticks, %object ticks =ticksl + TICKS_OFFSET .size ticks, __SIZEOF_INT__ + + .global jiffies + .type jiffies, %object +jiffies = ticksl + .size jiffies, __SIZEOF_LONG__ From nobody Tue Apr 29 13:56:06 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 4Zn20Q6wyYz5v4bX; Tue, 29 Apr 2025 13:56: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 4Zn20Q4Yknz45N4; Tue, 29 Apr 2025 13:56:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745934966; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SU2FY8quyToYd49uikuu4METIgIE5qk4PrvSAEce6xo=; b=Ze+tG5nFHWbEjD2JHjKPpTthgjGSmxCH+WT6d7V8BdK98gZx1QpFN1dJ2koZrPjxr44tAg LRUJ8/L/rFB0sKIMtHRB/YuSA5AA/UK6+6toz3cFZnw5n/8FSENrwe6utPMBcKiuzk8tb2 Lx7piC1HvO5DFQPtz4ub58/pRTPy2g73Cs2h4aw1ZhF1VjGAAe0sZ/m29DaDLAoeMNrG0p JSsAbbLuTGLfnaCrCUAW6JBF3vSNjAfv0D5smmZarMEd0UKCepEZQvNnZ9erBd8K+b/5la BxgfjR6wztGAJMJ/SWYbbgL4YnURL/gAzL4hVKrk5xIu0HWRAJoWspcYziyvRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745934966; a=rsa-sha256; cv=none; b=tHnH4wpj2Z0kyx+UbRMc6ULz+rLWXbA5yNEGdrkc6hv/H4TUs4/xuzHONbDJ/7+NyoJpBS RivPUxyiq36Zb2J1uWm1MybG1Bk6o+7aF6TDqmgZPHiu6pMKc13CDp/4kVvooI7eF6+Fne xOazbeaXElVUTXT+3wbTl/3/bIHDOH+sknI4KaU8SLu5iGQkWAe+7OG9p+wZyC/ogKFUzF xwDtV+FlyWVNlkIWZd8s6TCcbUkS+QWNZVbDr0+SBDAD+eP4iIL/9NPEzMCH9YQSm+k+kF VLfIH/D1BJMC7rL6Ps7xzOhZEBPWOgbk1xr+Mwj+kkA/xSf+z3DPUrRSMLyC1A== 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=1745934966; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SU2FY8quyToYd49uikuu4METIgIE5qk4PrvSAEce6xo=; b=CBlNXu89MPDMneoM0jx+5EFpDQUCRIcJ35MV8GUhQH3fRrlSnrrv1XPlN7KgwexwVlxhdV 2KuLwWmguUNErKRlQFOQq6bC5+rWHjL1aXt0q9e8XAMD0RLZayDRMckG4DJ7SCKeg6RDVz RiS1sQbUTT6/faFY0iDOhBZcGKXdtqTjDqFTZZbAjNJzSRG0B4XAnCTPMYxdrZR0Un8Vk3 nybIxFyJzsXb7tuaDUhT7omXHjk8l55qV/5PSswCHTkRqOTrXptJIXsBLthZAlabsti6dW UNpM9wdBj23tDCq755hA76lnU+VScGW3wcQCsI0mtrbsd9LSMIbt+xusmWE4qA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn20Q44Ndz7Ff; Tue, 29 Apr 2025 13:56: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 53TDu6mo003737; Tue, 29 Apr 2025 13:56:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TDu6N2003734; Tue, 29 Apr 2025 13:56:06 GMT (envelope-from git) Date: Tue, 29 Apr 2025 13:56:06 GMT Message-Id: <202504291356.53TDu6N2003734@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: 901256f6ea3c - main - mlx5: jiffies is unsigned long 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: 901256f6ea3cda2e0951b80b9be466e1b596f7fa Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=901256f6ea3cda2e0951b80b9be466e1b596f7fa commit 901256f6ea3cda2e0951b80b9be466e1b596f7fa Author: Konstantin Belousov AuthorDate: 2025-01-27 12:12:05 +0000 Commit: Mark Johnston CommitDate: 2025-04-29 13:53:40 +0000 mlx5: jiffies is unsigned long Sponsored by: NVidia networking Differential revision: https://reviews.freebsd.org/D48878 --- sys/dev/mlx5/mlx5_core/mlx5_cmd.c | 4 ++-- sys/dev/mlx5/mlx5_core/mlx5_fw.c | 4 ++-- sys/dev/mlx5/mlx5_core/mlx5_health.c | 5 +++-- sys/dev/mlx5/mlx5_core/mlx5_main.c | 8 ++++---- sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c | 4 ++-- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/sys/dev/mlx5/mlx5_core/mlx5_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_cmd.c index a961c9d7c3dd..86c721a83cb7 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_cmd.c @@ -247,7 +247,7 @@ static void poll_timeout(struct mlx5_cmd_work_ent *ent) { struct mlx5_core_dev *dev = container_of(ent->cmd, struct mlx5_core_dev, cmd); - int poll_end = jiffies + + long poll_end = jiffies + msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC + 1000); u8 own; @@ -951,7 +951,7 @@ static const char *deliv_status_to_str(u8 status) static int wait_func(struct mlx5_core_dev *dev, struct mlx5_cmd_work_ent *ent) { - int timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC); + unsigned long timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC); int err; if (ent->polling) { diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fw.c b/sys/dev/mlx5/mlx5_core/mlx5_fw.c index b3a7ffb732f9..233bd4a38c91 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fw.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fw.c @@ -306,7 +306,7 @@ int mlx5_cmd_force_teardown_hca(struct mlx5_core_dev *dev) #define MLX5_FAST_TEARDOWN_WAIT_MS 3000 int mlx5_cmd_fast_teardown_hca(struct mlx5_core_dev *dev) { - int end, delay_ms = MLX5_FAST_TEARDOWN_WAIT_MS; + unsigned long end, delay_ms = MLX5_FAST_TEARDOWN_WAIT_MS; u32 out[MLX5_ST_SZ_DW(teardown_hca_out)] = {}; u32 in[MLX5_ST_SZ_DW(teardown_hca_in)] = {}; int state; @@ -343,7 +343,7 @@ int mlx5_cmd_fast_teardown_hca(struct mlx5_core_dev *dev) } while (!time_after(jiffies, end)); if (mlx5_get_nic_state(dev) != MLX5_NIC_IFC_DISABLED) { - mlx5_core_err(dev, "NIC IFC still %d after %ums.\n", + mlx5_core_err(dev, "NIC IFC still %d after %lums.\n", mlx5_get_nic_state(dev), delay_ms); return -EIO; } diff --git a/sys/dev/mlx5/mlx5_core/mlx5_health.c b/sys/dev/mlx5/mlx5_core/mlx5_health.c index f4049d23d75d..bedd51eb02e4 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_health.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_health.c @@ -265,7 +265,8 @@ mlx5_health_allow_reset(struct mlx5_core_dev *dev) #define MLX5_NIC_STATE_POLL_MS 5 void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force) { - int end, delay_ms = MLX5_CRDUMP_WAIT_MS; + unsigned long end; + int delay_ms = MLX5_CRDUMP_WAIT_MS; u32 fatal_error; int lock = -EBUSY; @@ -445,7 +446,7 @@ static void health_care(struct work_struct *work) spin_unlock_irqrestore(&health->wq_lock, flags); } -static int get_next_poll_jiffies(void) +static unsigned long get_next_poll_jiffies(void) { unsigned long next; diff --git a/sys/dev/mlx5/mlx5_core/mlx5_main.c b/sys/dev/mlx5/mlx5_core/mlx5_main.c index 2b0c9f584088..221781327b51 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_main.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_main.c @@ -761,8 +761,8 @@ static inline int fw_initializing(struct mlx5_core_dev *dev) static int wait_fw_init(struct mlx5_core_dev *dev, u32 max_wait_mili, u32 warn_time_mili) { - int warn = jiffies + msecs_to_jiffies(warn_time_mili); - int end = jiffies + msecs_to_jiffies(max_wait_mili); + unsigned long warn = jiffies + msecs_to_jiffies(warn_time_mili); + unsigned long end = jiffies + msecs_to_jiffies(max_wait_mili); int err = 0; MPASS(max_wait_mili > warn_time_mili); @@ -774,8 +774,8 @@ static int wait_fw_init(struct mlx5_core_dev *dev, u32 max_wait_mili, } if (warn_time_mili && time_after(jiffies, warn)) { mlx5_core_warn(dev, - "Waiting for FW initialization, timeout abort in %u s\n", - (unsigned)(jiffies_to_msecs(end - warn) / 1000)); + "Waiting for FW initialization, timeout abort in %lu s\n", + (unsigned long)(jiffies_to_msecs(end - warn) / 1000)); warn = jiffies + msecs_to_jiffies(warn_time_mili); } msleep(FW_INIT_WAIT_MS); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c b/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c index 6207442e756f..b1798f909ee5 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c @@ -519,7 +519,7 @@ enum { s64 mlx5_wait_for_reclaim_vfs_pages(struct mlx5_core_dev *dev) { - int end = jiffies + msecs_to_jiffies(MAX_RECLAIM_TIME_MSECS); + unsigned long end = jiffies + msecs_to_jiffies(MAX_RECLAIM_TIME_MSECS); s64 prevpages = 0; s64 npages = 0; @@ -557,7 +557,7 @@ static int optimal_reclaimed_pages(void) int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev) { - int end = jiffies + msecs_to_jiffies(MAX_RECLAIM_TIME_MSECS); + unsigned long end = jiffies + msecs_to_jiffies(MAX_RECLAIM_TIME_MSECS); struct mlx5_fw_page *fwp; struct rb_node *p; int nclaimed = 0; From nobody Tue Apr 29 13:56:07 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 4Zn20S03k2z5v3rx; Tue, 29 Apr 2025 13:56: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 4Zn20R5n4Cz45gS; Tue, 29 Apr 2025 13:56:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745934967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CPaYeMS7KWwfbzxfHEWNqRiVPg2spmXyG8NIcpvI4Ng=; b=t5nhAiNiCGBhEbfYDvKZ/Tyvkdfr3+R2rOwvV8Fr5bteebFcepSmU8rdxbS5+4bxCsl+sh q/lC2suUeCkp7X/hncWr7/Gqcz/A1D1fqvY4S9F3zPe6YxjxJYLbrjARetk12TlAzmJW0U tVcK2zy1q0hgkDiD0+LhK7aODl65AeL/DSFw29q9QMONrmg4unIwUti0OQPigg1DsuJNsF ilfCoa1BnO1IX0EGH3OcBDCw8Ytpn+w6ELwehHm80FClSJWfOkaktAGfALJpyBXnt76eit /9n7Gfu1tc5xuk0LbKgxvie8SiIkl4Xb1Ebrx/p9Q2lYYc/q7XifWNWr9UBjAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745934967; a=rsa-sha256; cv=none; b=m2vLO7HBtKuwuKngB+ErloBVmH//ail/3ZP+d++pI/bl9nKEd++w0FQJnfcIEHnyR4v6JY KXw6EV7T11PIuuGXXze+5kMGTDfWEs24JV7V2IE1I9/M7hPAaEdfuysDQWMDN0T8pA+J3S 7AlpCXv481nmMDilaUaAj1XhKDqPAkWydljN9eeBnuCBzCyRsxBEREqjD/2j6uRS2nOimQ ifYIWNG/SSd3gk/qcUUzxMh7ZWm26PK+SSEGX2orQfE7X9sS5BJQpMzrx+kvytpIKWrv3M DfBtS1UgE5Rfez+bf3dEfC9uxGUDNmWIPe8Z0NeWZaRNoKw7kXZeI1rMxGalyw== 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=1745934967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CPaYeMS7KWwfbzxfHEWNqRiVPg2spmXyG8NIcpvI4Ng=; b=Dcm48uYHtmD6Egx8mw7cr9unfVmXH8Qyt+rWI6AyXbsG/sq4DxTiZ4NazLQO8wzG9ifcuQ m5jKz3eBQf1VvPhafY4lAo0D30GaX5mct8wCXeTJeuAt4G2aGtPR9dPN0Ehx8cZrWE+4tE zQKemXbjnCiarNw/EvHAU+uefyY5sMc0RZT9knYYH0jxFaoL7KTrdz1UGWBnTUyjgE/CGZ y4LG1mixrzGCAZsTZwHhbQBI71MC4vnqLq+UzaGKsL1DUmvWWAy9k/zUfye0XG07xwgBi/ PFBg70WrD3wJ7vWbIAjS084drT+5F3y4ckyOknUPZk5CG7qarY72X8DFI0+L3Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn20R5D8zz7rk; Tue, 29 Apr 2025 13:56: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 53TDu7P7003770; Tue, 29 Apr 2025 13:56:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TDu7uY003767; Tue, 29 Apr 2025 13:56:07 GMT (envelope-from git) Date: Tue, 29 Apr 2025 13:56:07 GMT Message-Id: <202504291356.53TDu7uY003767@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: 87e57632bf88 - main - ofed: jiffies is unsigned long 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: 87e57632bf88b270f3f9a09f579372d3437aeb17 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=87e57632bf88b270f3f9a09f579372d3437aeb17 commit 87e57632bf88b270f3f9a09f579372d3437aeb17 Author: Konstantin Belousov AuthorDate: 2025-01-31 19:20:01 +0000 Commit: Mark Johnston CommitDate: 2025-04-29 13:53:40 +0000 ofed: jiffies is unsigned long Sponsored by: NVidia networking Differential revision: https://reviews.freebsd.org/D48878 --- sys/ofed/drivers/infiniband/core/ib_addr.c | 6 +++--- sys/ofed/drivers/infiniband/core/ib_sysfs.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/ofed/drivers/infiniband/core/ib_addr.c b/sys/ofed/drivers/infiniband/core/ib_addr.c index 093aab236b39..d033c4801a98 100644 --- a/sys/ofed/drivers/infiniband/core/ib_addr.c +++ b/sys/ofed/drivers/infiniband/core/ib_addr.c @@ -65,7 +65,7 @@ struct addr_req { void *context; void (*callback)(int status, struct sockaddr *src_addr, struct rdma_dev_addr *addr, void *context); - int timeout; + unsigned long timeout; int status; }; @@ -210,9 +210,9 @@ int rdma_translate_ip(const struct sockaddr *addr, } EXPORT_SYMBOL(rdma_translate_ip); -static void set_timeout(int time) +static void set_timeout(unsigned long time) { - int delay; /* under FreeBSD ticks are 32-bit */ + unsigned long delay; delay = time - jiffies; if (delay <= 0) diff --git a/sys/ofed/drivers/infiniband/core/ib_sysfs.c b/sys/ofed/drivers/infiniband/core/ib_sysfs.c index 6c0a8643951d..35451857d16d 100644 --- a/sys/ofed/drivers/infiniband/core/ib_sysfs.c +++ b/sys/ofed/drivers/infiniband/core/ib_sysfs.c @@ -874,7 +874,7 @@ static ssize_t set_stats_lifespan(struct kobject *kobj, struct hw_stats_attribute *hsa; struct rdma_hw_stats *stats; int msecs; - int jiffies; + unsigned long jiffies; int ret; ret = kstrtoint(buf, 10, &msecs); From nobody Tue Apr 29 14:00:35 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 4Zn25b3yhzz5v4fK; Tue, 29 Apr 2025 14:00: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 4Zn25b2kKhz49KW; Tue, 29 Apr 2025 14: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=1745935235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HQwK84GcU4kmYHOJ+SAVeLX9jbvrEKncmIW/kLZ8IFE=; b=iXjGGwcmiJTrCuvWj8w2Do/2vK3lEgZUxjiWa5/KcAGW5zxuNg52dZUQk226xPkol8jEUE gENnQjFKPuynfOD7qIPNemP2J+jKhcdx3O4c8a5SxhMvIMVM4FmwT9aSU6j2QbyVuPML0Q Svf7OAWlXdzygeSwO2SsD9enhSTWrdERfTD8uZjOfZby02L4J42/cGRK3FXAz5uI3zk1iY +CoUmxJ7TmWi9dQWBIaUh4TME/g3EA17vnIFPMGyQAz7kxUM+tbILcsWTWSIzZ3o2cKBTp 3clHIVsQJ5xNKy8MnHvo/W1kTxvudDbiDDg7wiKjW8u6cflXsxIJlkLk9KzV6w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745935235; a=rsa-sha256; cv=none; b=Z4QSx50mOIkaqs4UWQrN0xV7Wqf02n/BPUywex771LT7E1ekHTGAFFRicYiwWIkZ6+2rMH lDu4Jr8FJc6ECAF5QlDv/njOMm4cQSGIoYYjDMY1ou/b5onl2weGUOxMPggEnagtAI+ShC 4vtBl9rSpVFmSH9gAz5HlLMCwr18jDmJT3Swh6BdAk8cTQF6vorsDoD2Fe3pBDHeibUx+y Y8NWwxRYPZ4QmwypBsj31Y4XVTR1f6ChWE78nKnuVZPaPxmw61MhBazb2dsZ34rkdB3P2B bJCnnnQRA+kdI2To7nvdyieO9xG/CU75oFLhAafPfv2d2vqrXV2OGPRLkdFO0w== 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=1745935235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HQwK84GcU4kmYHOJ+SAVeLX9jbvrEKncmIW/kLZ8IFE=; b=bFthHYQ0t3Usjxiv+kMRfTmgK79soVCTHkwNJaFUpY4BOr9Jm+Atbtev2nI1HJP6mhLktB kEdNNqKxnydzswHyuwKzBb//S2PVqpsuSLICI1qbHSGR8BucaBRxG8BEPX27e7RCbkz3IH KQprzU/1GsTAZ+FxSMTeYRrHeDR4Mttk3jKsMbVOIdb4UpfZ7doKl3WVAmOzIQox/QkmeZ TzV4CSarRR327/FB+UnTKgObQql+luIywfPTvPEQ1lwRLqCcbu1tWhKi/CrySanOfF6gEN eaqbHcYJxXyGuwFPBGwy5Tp+xxSAy0K05sNtysH7Nqc4WCvoNBsduK2s8HCuvQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn25b270Qz7mZ; Tue, 29 Apr 2025 14: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 53TE0ZNo014928; Tue, 29 Apr 2025 14: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 53TE0Z7U014925; Tue, 29 Apr 2025 14:00:35 GMT (envelope-from git) Date: Tue, 29 Apr 2025 14:00:35 GMT Message-Id: <202504291400.53TE0Z7U014925@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: 578cbd03f7a5 - main - sound: Retire volch 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: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 578cbd03f7a53eb23b71b560f8816f84f5a1461b Auto-Submitted: auto-generated The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=578cbd03f7a53eb23b71b560f8816f84f5a1461b commit 578cbd03f7a53eb23b71b560f8816f84f5a1461b Author: Christos Margiolis AuthorDate: 2025-04-29 14:00:22 +0000 Commit: Christos Margiolis CommitDate: 2025-04-29 14:00:22 +0000 sound: Retire volch volch is a variable used internally in dsp_ioctl_channel() which corresponds to either priv->rdch or priv->wrch. As a result, priv->volch is also a pointer to one of those two channels, but is also not used anywhere outside dsp_ioctl_channel(). Since the operation of figuring out which channel we want to operate on inside dsp_ioctl_channel() is cheap enough, retire volch to avoid unnecessary complexity and confusion. While here, rename "volch" to just "ch". Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50022 --- sys/dev/sound/pcm/dsp.c | 61 ++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 9b174f4592f3..f1adcdbc5d70 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -52,7 +52,6 @@ struct dsp_cdevpriv { struct snddev_info *sc; struct pcm_channel *rdch; struct pcm_channel *wrch; - struct pcm_channel *volch; }; static int dsp_mmap_allow_prot_exec = 0; @@ -551,7 +550,7 @@ dsp_write(struct cdev *i_dev, struct uio *buf, int flag) } static int -dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, +dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *ch, u_long cmd, caddr_t arg) { struct snddev_info *d; @@ -569,25 +568,19 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, rdch = priv->rdch; wrch = priv->wrch; - /* No specific channel, look into cache */ - if (volch == NULL) - volch = priv->volch; - - /* Look harder */ - if (volch == NULL) { + if (ch == NULL) { if (j == SOUND_MIXER_RECLEV && rdch != NULL) - volch = rdch; + ch = rdch; else if (j == SOUND_MIXER_PCM && wrch != NULL) - volch = wrch; + ch = wrch; } - /* Final validation */ - if (volch == NULL) + if (ch == NULL) return (EINVAL); - CHN_LOCK(volch); - if (!(volch->feederflags & (1 << FEEDER_VOLUME))) { - CHN_UNLOCK(volch); + CHN_LOCK(ch); + if (!(ch->feederflags & (1 << FEEDER_VOLUME))) { + CHN_UNLOCK(ch); return (EINVAL); } @@ -595,28 +588,28 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, case MIXER_WRITE(0): switch (j) { case SOUND_MIXER_MUTE: - if (volch->direction == PCMDIR_REC) { - chn_setmute_multi(volch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_RECLEV) != 0); + if (ch->direction == PCMDIR_REC) { + chn_setmute_multi(ch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_RECLEV) != 0); } else { - chn_setmute_multi(volch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_PCM) != 0); + chn_setmute_multi(ch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_PCM) != 0); } break; case SOUND_MIXER_PCM: - if (volch->direction != PCMDIR_PLAY) + if (ch->direction != PCMDIR_PLAY) break; left = *(int *)arg & 0x7f; right = ((*(int *)arg) >> 8) & 0x7f; center = (left + right) >> 1; - chn_setvolume_multi(volch, SND_VOL_C_PCM, + chn_setvolume_multi(ch, SND_VOL_C_PCM, left, right, center); break; case SOUND_MIXER_RECLEV: - if (volch->direction != PCMDIR_REC) + if (ch->direction != PCMDIR_REC) break; left = *(int *)arg & 0x7f; right = ((*(int *)arg) >> 8) & 0x7f; center = (left + right) >> 1; - chn_setvolume_multi(volch, SND_VOL_C_PCM, + chn_setvolume_multi(ch, SND_VOL_C_PCM, left, right, center); break; default: @@ -628,34 +621,34 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, case MIXER_READ(0): switch (j) { case SOUND_MIXER_MUTE: - mute = CHN_GETMUTE(volch, SND_VOL_C_PCM, SND_CHN_T_FL) || - CHN_GETMUTE(volch, SND_VOL_C_PCM, SND_CHN_T_FR); - if (volch->direction == PCMDIR_REC) { + mute = CHN_GETMUTE(ch, SND_VOL_C_PCM, SND_CHN_T_FL) || + CHN_GETMUTE(ch, SND_VOL_C_PCM, SND_CHN_T_FR); + if (ch->direction == PCMDIR_REC) { *(int *)arg = mute << SOUND_MIXER_RECLEV; } else { *(int *)arg = mute << SOUND_MIXER_PCM; } break; case SOUND_MIXER_PCM: - if (volch->direction != PCMDIR_PLAY) + if (ch->direction != PCMDIR_PLAY) break; - *(int *)arg = CHN_GETVOLUME(volch, + *(int *)arg = CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FL); - *(int *)arg |= CHN_GETVOLUME(volch, + *(int *)arg |= CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FR) << 8; break; case SOUND_MIXER_RECLEV: - if (volch->direction != PCMDIR_REC) + if (ch->direction != PCMDIR_REC) break; - *(int *)arg = CHN_GETVOLUME(volch, + *(int *)arg = CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FL); - *(int *)arg |= CHN_GETVOLUME(volch, + *(int *)arg |= CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FR) << 8; break; case SOUND_MIXER_DEVMASK: case SOUND_MIXER_CAPS: case SOUND_MIXER_STEREODEVS: - if (volch->direction == PCMDIR_REC) + if (ch->direction == PCMDIR_REC) *(int *)arg = SOUND_MASK_RECLEV; else *(int *)arg = SOUND_MASK_PCM; @@ -669,7 +662,7 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, default: break; } - CHN_UNLOCK(volch); + CHN_UNLOCK(ch); return (0); } @@ -703,7 +696,7 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, PCM_GIANT_EXIT(d); return (0); } - ret = dsp_ioctl_channel(priv, priv->volch, cmd, arg); + ret = dsp_ioctl_channel(priv, NULL, cmd, arg); if (ret != -1) { PCM_GIANT_EXIT(d); return (ret); From nobody Tue Apr 29 15:12:40 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 4Zn3hn5Yldz5v99C; Tue, 29 Apr 2025 15:12:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn3hn0pjFz3hZs; Tue, 29 Apr 2025 15:12:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745939561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9H50mz2J9jvWy26Hr92LN87RRs9fQ3ec/omyaaiHgCo=; b=pehAQ7O+eoKARXMGdZWPuxAUccPlnE/5kXNmsKVcZ2bfG30ZPxw+aqyij4h0uwW7JIW1Ux lcan0/NjKkjsZdeWaW52SzE2lXrLhx57ryoj6GglwEhbJkvggbG4ReBrpuRzLnQl0GUh/g KDUYjQk+FjC87EwsOLYzQ+PIAedTxQj1MmOCovclPVoJzRip4o75tCVippm++IBy61Yiyr W0CVUE7gTRBRCulX0D0DUv8nUaD5Hulv++x34X8wrrd0L3JS0H+VmhrIz3gujJcoiDNoIs dhUI6xlzJiwfKw9MScMBNPJeuwbEpnrVnLabDRmTqmT2uB008cnOfEYzfTamOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745939561; a=rsa-sha256; cv=none; b=wHwoyeVtzVULPvEPCz7HQsolfolpE/s+jfXt2g4MBclyE6wyojMSFU+I3gg2RyUKLXcGY5 Oll6hoVkb8VFYAG4Q6qDMzhodAzkFtEhkaWSifb+i08pN4hThCAZJeK3aD68Xh8m2hQ9zy Ao2DMQQg83S6MT3niR7R/rbFH54PoMP2XrSesoxDH2uZRWpw8JZgifD+EErQUQ0k1IHPW7 MH/vbTUc1wG9uzU78vziqnOIryGaOktBmrW+6KYGml1ud2n/Z0pHCayMbM5JAobww91euX c/2mhfFlOkJQVk7Jf9snw9AwwTmobXzKbZsXgaksEqcmzxQCZKcvRc5FJeDx8A== 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=1745939561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9H50mz2J9jvWy26Hr92LN87RRs9fQ3ec/omyaaiHgCo=; b=dksaI+2/MIoXoy2E3Tk1Lrp9Fp/43mo/KVidI/pIELgUoEl44X84Y2CN3RUGzya6SmE9Cr zYfFUoXMrR2mOO2J5F4Dye+HXJ5Z1siEorTv6DegK+tNixJ9bAtK2EcyX0a0tfQO/uWzUh GgPbUN1J7tYyMiQT+zM3cvZL6CSXaqOSBALQJArPM3zbZQAJGe/YjOSjGCVOXcuJxdc+ol 9azbkpNbLCOGD9myjc/ojyJYr5kfXcanTwHotjkcSunXZzND+y5QnNrhFK/aifZ3xISUYA WFDT9TjITfLgqEgdcUA5060vQm9ThkIdb8xrDAAufapRqZSveSIkFJIvX604AA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn3hn0NlBz9Dc; Tue, 29 Apr 2025 15:12: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 53TFCeax053243; Tue, 29 Apr 2025 15:12:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TFCeYq053240; Tue, 29 Apr 2025 15:12:40 GMT (envelope-from git) Date: Tue, 29 Apr 2025 15:12:40 GMT Message-Id: <202504291512.53TFCeYq053240@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: 09bc6a5d5b33 - main - mail: Exit non-zero on failure to collect mail. 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: 09bc6a5d5b3333bc91e5f9fdf1e7bb282c4aea5a Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=09bc6a5d5b3333bc91e5f9fdf1e7bb282c4aea5a commit 09bc6a5d5b3333bc91e5f9fdf1e7bb282c4aea5a Author: Dag-Erling Smørgrav AuthorDate: 2025-04-29 15:12:17 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-04-29 15:12:30 +0000 mail: Exit non-zero on failure to collect mail. While here, avoid non-portable `pipe2()` in the regression test. Fixes: 59597032c948 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D50069 --- usr.bin/mail/send.c | 4 +++- usr.bin/mail/tests/mail_sigint_test.c | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/usr.bin/mail/send.c b/usr.bin/mail/send.c index b4fbd4cbfd8a..fe1086264a9c 100644 --- a/usr.bin/mail/send.c +++ b/usr.bin/mail/send.c @@ -293,8 +293,10 @@ mail1(struct header *hp, int printheaders) * Collect user's mail from standard input. * Get the result as mtf. */ - if ((mtf = collect(hp, printheaders)) == NULL) + if ((mtf = collect(hp, printheaders)) == NULL) { + senderr++; return; + } if (value("interactive") != NULL) { if (value("askcc") != NULL || value("askbcc") != NULL) { if (value("askcc") != NULL) diff --git a/usr.bin/mail/tests/mail_sigint_test.c b/usr.bin/mail/tests/mail_sigint_test.c index 76bf9b19b7f1..e2889493f3cd 100644 --- a/usr.bin/mail/tests/mail_sigint_test.c +++ b/usr.bin/mail/tests/mail_sigint_test.c @@ -39,7 +39,7 @@ mailx_sigint(bool interactive) /* input, output, error, sync pipes */ if (pipe(ipd) != 0 || pipe(opd) != 0 || pipe(epd) != 0 || - pipe2(spd, O_CLOEXEC) != 0) + pipe(spd) != 0 || fcntl(spd[1], F_SETFD, FD_CLOEXEC) != 0) atf_tc_fail("failed to pipe"); /* fork child */ if ((pid = fork()) < 0) @@ -55,6 +55,7 @@ mailx_sigint(bool interactive) dup2(epd[1], STDERR_FILENO); close(epd[0]); close(epd[1]); + close(spd[0]); /* force dead.letter to go to cwd */ setenv("HOME", ".", 1); /* exec mailx */ @@ -113,7 +114,7 @@ mailx_sigint(bool interactive) close(spd[0]); if (interactive) { ATF_CHECK(WIFEXITED(status)); - ATF_CHECK_INTEQ(0, WEXITSTATUS(status)); + ATF_CHECK_INTEQ(1, WEXITSTATUS(status)); ATF_CHECK_INTEQ(2, kc); ATF_CHECK_STREQ("", obuf); ATF_CHECK_MATCH("Interrupt -- one more to kill letter", ebuf); From nobody Tue Apr 29 15:33:16 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 4Zn48X24bJz5vBRc; Tue, 29 Apr 2025 15:33: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 4Zn48X1bDnz3r62; Tue, 29 Apr 2025 15:33:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745940796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h3cWCWYMChmseTveYIr8P1lKR9Jb4wSiHdTKZt9YzcM=; b=JKYAOW0ygq4S57rtM//kwhyTeeOVwD/dTXMD/6aabYJDjZ19bpbY8hh08SiEmA8+6NA1Bz 3vKMKYl3ajS8Imftxxvm+O8il6m0aSizNRCyioE2wLDy4VOEuJbTBk2X1QDGrTFZPSe02f U86vKNzCxllIJoPp5bU6WpHCf+yjIIycTs8amYLN3hOdK8nXZRmL2Hfha3LaJibOV9nEz6 cM77IVcY2uInqG/naSBQS2cihd0GnJvZmaipcoQAR79O9tOh7ppKzTw/dIKeQfl1BNcEUT lTdnaPFhs2i1ZevM4ma6tkFgTGoanOEfFLQI5OcoBHVGv4zgQFvJxpbY8wK2JQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745940796; a=rsa-sha256; cv=none; b=OgnwO8A2WrtOtW5PRC59zyJZF6sBNE/k80dV1enHFLDX/Dt6XQi/PTEfer8Ewrt/p2Kwh0 BmANx0w+OxDkd/Yo9ZNVCwRyPaXC9KeoCkSyGRX3eEt3HAelBWo63rTAD8o02P3uGNc9aO PAHYzOhaGGG4fXqqVCvAq2bTP4wtbz/6C5nMBxVsqX0Sr32tdUmnE/TajUj3bhY1uA/ipQ DPJAXNztAr8O7pOuBbgdW7IZjXTfLWHSWSuhny6foBROWjvNxBzAWbPk1mhwTGA1m3NGAn LBLOw62VKfFyU/ucZh4skOZLaErVBKYZiF+qK+XGJ9Z8CZ/jcZs2ZaCcPmO+hA== 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=1745940796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h3cWCWYMChmseTveYIr8P1lKR9Jb4wSiHdTKZt9YzcM=; b=LQwehxnKkfw8iECHA3NHbUWOlEyJtB6/njrKqucys8rNhMJnyva3Vj/yP372+D7Rzcrl4Y ahR6oHBwiFnbKHHtHphinNYO2mVbHKmRbi8o4XhS0Q3IP/ZwHEonCKxZuV8EqatuJgRB3F lNbTZYW1uRZzw4YKY5ZRVOSDh2AHgOVRyT4ZZriFUFosc9enoKCakABlQvloVCLH24tgc2 fbfFQo13bX5sdgLiRPlupoud8AnBk7tJRqneydLGwrxuUFcTgkg2+zBu7oRTJS8oovW8ha T81toz6/BDTRy0rOZd65FTn90ILLiH3rSCrb+z6yIVg7FaxiJzOOnNemB3YZpg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn48X0xY4zB54; Tue, 29 Apr 2025 15:33: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 53TFXGhI091486; Tue, 29 Apr 2025 15:33:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TFXGu6091482; Tue, 29 Apr 2025 15:33:16 GMT (envelope-from git) Date: Tue, 29 Apr 2025 15:33:16 GMT Message-Id: <202504291533.53TFXGu6091482@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 54a2c5978f51 - main - fts: Fix GCC compile error 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 54a2c5978f512654df6954ce571ce06e445c7aec Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=54a2c5978f512654df6954ce571ce06e445c7aec commit 54a2c5978f512654df6954ce571ce06e445c7aec Author: Olivier Certner AuthorDate: 2025-04-29 11:19:58 +0000 Commit: Olivier Certner CommitDate: 2025-04-29 15:32:00 +0000 fts: Fix GCC compile error GCC does not support the blocks extension, contrary to clang with which it is automatically enabled by our infrastructure (see 'lib/libc/gen/Makefile.inc') when compiling 'fts.c'. The alternate code (blocks extension not supported/enabled) tried to dereference a 'void *' pointer (field 'fts_compar_b' of 'FTS') to access field 'isa' of the block mocked by 'block_abi.h'. Fix this by casting the pointer to the block type. Reviewed by: jhb, des Fixes: f0ac5e919f3f ("fts: Add blocks support.") Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50068 --- lib/libc/gen/fts.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index 1b5c38ed58bb..d440bc24eeca 100644 --- a/lib/libc/gen/fts.c +++ b/lib/libc/gen/fts.c @@ -352,7 +352,8 @@ fts_close(FTS *sp) #ifdef __BLOCKS__ Block_release(sp->fts_compar_b); #else - if (sp->fts_compar_b->isa != &_NSConcreteGlobalBlock) + if (((fts_block)(sp->fts_compar_b))->isa != + &_NSConcreteGlobalBlock) _Block_release(sp->fts_compar_b); #endif /* __BLOCKS__ */ } From nobody Tue Apr 29 17:15:13 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 4Zn6QB24DLz5vHm9; Tue, 29 Apr 2025 17:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn6QB18Kwz3Zcc; Tue, 29 Apr 2025 17:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745946914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0r8b2+hgC5YVoSfCSiGp6j6vPmdOETG7x7Uw4FImKH0=; b=Ba6/UXNAE6XsIQEGoxSomDVxH//iAdu14bjb+Imlizrd7cJT7qAHc4ScbNmXJX8Jjk8jqR +6/St9dhFhoOkt7Vb2IR36Y4XJfMXqjjjW02+FKC/HIEMlS5Si/a6ocfHFWfWxt16DcCI+ Up7NwwehThUGckkvYn0Gtg8JBU627d4r0ObwtTf01VwUnpA3blOuzGhUGWaG5aT7de9kj/ oEFoV9SBc+ppPa4e5KJaEdpZPY8zC8GjuqR8+lRPXzWAHDhOwFVbUFtdGIYRUJaCVrh2IC fnJjCuXE6x5pgfpmmV0yustK9wpLvDQvmS5Gcu05e7DO/wmRu53qpZBIFpcfBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745946914; a=rsa-sha256; cv=none; b=NPyW4qAxnXBfigh2HKo11+zy0CmYiPoi019Nq4VjsopTA6z2MSq5/NGUVNL0FdB0Y4b+dp yflRZWevWLtyp/7ff2moRaKdRxLg0f08aZzBcec1uej5MPwABQ0YHR2UbKJYMUhSTnRCi6 aMI2fRQu1oym1HRIjm19eVZVHPKIO4jRMhgDhC43oh/ErM5LAq7FK3YNBx2By7+axm3i7z mJch6KzGWxSL5RL1/zs9MzbxUGxjivFOjFI2Q+2kiuQFo3t39rqXg/n9l3gPWVSmvDFTvV jj/tMyIb9/yeOTlXRbyqRSy6ZGPcWq6mXHaaNIeSXykzzzpSXf25Pa/7SlqL5g== 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=1745946914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0r8b2+hgC5YVoSfCSiGp6j6vPmdOETG7x7Uw4FImKH0=; b=wWtAGpYkpoO0lBhgvtmYWFAewVJuTtPW+VZDRVlw8qYni1rEf8FcXHT6W1AYJyd77zXRsj 3sBBvysTek8f1JCVCWp2XXFJ1K21xDIzaHbBaysBzW2DSbdKSR6bfaGFAHeLvO0DifmB3Q 6xqclc85tPRfD1VL22sXhnoLsvLHWfZ7grhqpWCJS9QgtTis9dblYXgCOTOr3Afd8L9Xva Isg3lTHsyqzc8lB3kr3cy4Iq0sYM2v6BCvHL8gaubz38Ageg4RJV4dKVrtXdWgGikXm++A w6jVINBl8KrdC+7mXbwBdvFI3Jooo2R4heGOGAxfwmcqkRHtNyQA76q5TyXxJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn6QB0WQ7zTg9; Tue, 29 Apr 2025 17:15: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 53THFDR0079813; Tue, 29 Apr 2025 17:15:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53THFDlb079810; Tue, 29 Apr 2025 17:15:13 GMT (envelope-from git) Date: Tue, 29 Apr 2025 17:15:13 GMT Message-Id: <202504291715.53THFDlb079810@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Arthur Kiyanovski Subject: git: 56c45700f2ae - main - ena: Fix misconfiguration when requesting regular LLQ 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: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 56c45700f2ae15755358f2da8266247613c564df Auto-Submitted: auto-generated The branch main has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=56c45700f2ae15755358f2da8266247613c564df commit 56c45700f2ae15755358f2da8266247613c564df Author: David Arinzon AuthorDate: 2025-04-22 10:54:18 +0000 Commit: Arthur Kiyanovski CommitDate: 2025-04-29 17:00:06 +0000 ena: Fix misconfiguration when requesting regular LLQ Patch 0a33c047a443 introduced new values to hw.ena.force_large_llq_header. The default value of 2 means no preference, while 0 and 1 act as the previous false and true respectively, which allowed forcefully setting regular or large LLQ. There are 2 ways to force the driver to select regular LLQ: 1. Setting hw.ena.force_large_llq_header = 0 via sysctl. 2. Turning on ena express, which makes the recommendation by the FW to be regular LLQ. When the device supports large LLQ but the driver is forced to regular LLQ, llq_config->llq_ring_entry_size_value is never initialized and since it is a variable allocated on the stack, it stays garbage. Since this variable is involved in calculating max_entries_in_tx_burst, it could cause the maximum burst size to be zero. This causes the driver to ignore the real maximum burst size of the device, leading to driver resets in devices that have a maximum burst size (Nitro v4 and on. see [1] for more information). In case the garbage value is 0, the calculation of max_entries_in_tx_burst divides by 0 and causes kernel panic. The patch modifies the logic to take into account all use-cases and ensure that the relevant fields are properly initialized. [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html Fixes: 0a33c047a443 ("ena: Support LLQ entry size recommendation from device") Approved by: cperciva (mentor) MFC after: 3 days Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D50040 --- sys/dev/ena/ena.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c index f0b6cec1bb61..af158b5aea1d 100644 --- a/sys/dev/ena/ena.c +++ b/sys/dev/ena/ena.c @@ -2759,22 +2759,41 @@ static inline void ena_set_llq_configurations(struct ena_llq_configurations *llq_config, struct ena_admin_feature_llq_desc *llq, struct ena_adapter *adapter) { + bool use_large_llq; + llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER; llq_config->llq_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY; llq_config->llq_num_decs_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2; - if ((llq->entry_size_ctrl_supported & ENA_ADMIN_LIST_ENTRY_SIZE_256B) != 0) { - if ((ena_force_large_llq_header == ENA_LLQ_HEADER_SIZE_POLICY_LARGE) || - (ena_force_large_llq_header == ENA_LLQ_HEADER_SIZE_POLICY_DEFAULT && - llq->entry_size_recommended == ENA_ADMIN_LIST_ENTRY_SIZE_256B)) { - llq_config->llq_ring_entry_size = - ENA_ADMIN_LIST_ENTRY_SIZE_256B; - llq_config->llq_ring_entry_size_value = 256; - adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_256B; - } + + switch (ena_force_large_llq_header) + { + case ENA_LLQ_HEADER_SIZE_POLICY_REGULAR: + use_large_llq = false; + break; + case ENA_LLQ_HEADER_SIZE_POLICY_LARGE: + use_large_llq = true; + break; + case ENA_LLQ_HEADER_SIZE_POLICY_DEFAULT: + use_large_llq = + (llq->entry_size_recommended == ENA_ADMIN_LIST_ENTRY_SIZE_256B); + break; + default: + use_large_llq = false; + ena_log(adapter->pdev, WARN, + "force_large_llq_header should have values [0-2]\n"); + break; + } + + if (!(llq->entry_size_ctrl_supported & ENA_ADMIN_LIST_ENTRY_SIZE_256B)) + use_large_llq = false; + + if (use_large_llq) { + llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_256B; + llq_config->llq_ring_entry_size_value = 256; + adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_256B; } else { - llq_config->llq_ring_entry_size = - ENA_ADMIN_LIST_ENTRY_SIZE_128B; + llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B; llq_config->llq_ring_entry_size_value = 128; adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_128B; } From nobody Tue Apr 29 17:15:15 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 4Zn6QC46s0z5vHPH; Tue, 29 Apr 2025 17:15: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 4Zn6QC1z6Gz3ZYl; Tue, 29 Apr 2025 17:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745946915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=luu8tKClx5bB145MGr2U/wO2XurXdYBkdGi+jAFn4q0=; b=qqIyBR/7D6zsJKxUy1UXO6slAgG35Yv9mAw3Qbi4Zh1Z7/WYOg9cdP/SoaSFtOfsQ200bC F2iv5VPI7Bna4rT4vzhSpvwxmO5fFKsw9IlySBfY+ciG4h8kS2B3LeSO3UzMml7jYiq5cs jBf1Wzklzpamcw6zv9Oab03yEXq6qfq0p+tMkD/kTULulWclwUbXfg/sNll+rt6KIKlsAT zKZ7/v0229FxZEmuZLlPjVTRcDr+8IDuSGXiU5kVwB8YNJeA683rJUkLae0DMZN+5hk/ab Vykk8+IeffEo/VRc5oj0CKzpZS5uMOX4Izd4ZWA1qHmbbr3joADa8cSfO1ic8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745946915; a=rsa-sha256; cv=none; b=bs4iZqcYiLrVYqeLeF7M75hEoz+LDtCOdP72mkmCobjHpZH1sz3bRSHfItEd8DzABlcl+D 1AegtrQhMSdf4jjeDZUqsxcRUaeb3zYHA3I7A9mIuTPWph3eicRDxfNSZHKwEJkRzYnlOM XBo8VGrCWeHV/uRN/1nGHe5tpTQDtSOPTilc1RWvEBPgxCD9gQiuVnawm/SvMlp+Mutqjw vkWFu7cONcODvs6pdr2w/fPBhrQgKvOY2eopd5QkuD3+hPcu58gUd63NnhdwOm71e/2KON J/4JdL/mgLl1rdCIuCN7iJM7FWJZ1auhDKGCnHpYZqzXTk7TPZpmz03+sJQ/rg== 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=1745946915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=luu8tKClx5bB145MGr2U/wO2XurXdYBkdGi+jAFn4q0=; b=ijQAWW8l96lC0yPOYAP3Urn+PzdhXDhAab+EFSvFCmtRnHSbQtrUYYbzSLGseqS5St3YiX Q0c4uWbeYmT9fdG6qFLjK/G5XLeLtHXoi3o7ZKPbIjNSuAH7i4NGHr4+1Gsl+0KpOJY7SU mTq9czb8WsrYfFCIAxmF1AYDUW7cdsYdF6GZ4KzhXNiG0Sc94UbR9tkVn7zZIrqHMX/eV+ MxrMMzAKLx/IVQuYt7QcDZy9dH/2lVYEMbRYq2AChdeIgL/JJpU+iNJ58XOv92ORApXuAN hBmF5ca6knesbA2AjVhg9R73E6NqKkIBatn5ktRL+wOZv0Qm3EWXe25vacbBWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn6QC1TNrzTVT; Tue, 29 Apr 2025 17:15: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 53THFFYc079845; Tue, 29 Apr 2025 17:15:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53THFFwp079842; Tue, 29 Apr 2025 17:15:15 GMT (envelope-from git) Date: Tue, 29 Apr 2025 17:15:15 GMT Message-Id: <202504291715.53THFFwp079842@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Arthur Kiyanovski Subject: git: 59b30c1a864e - main - ena: Bump driver version to v2.8.1 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: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 59b30c1a864ee8a22c2e9912301cb88674f714c9 Auto-Submitted: auto-generated The branch main has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=59b30c1a864ee8a22c2e9912301cb88674f714c9 commit 59b30c1a864ee8a22c2e9912301cb88674f714c9 Author: Arthur Kiyanovski AuthorDate: 2025-04-25 17:19:32 +0000 Commit: Arthur Kiyanovski CommitDate: 2025-04-29 17:00:17 +0000 ena: Bump driver version to v2.8.1 Changes since 2.8.0: Bug Fixes: * Fix LLQ normal width misconfiguration * Check for errors when detaching children first, not last Minor Changes: * Remove \n from sysctl description Approved by: cperciva (mentor) MFC after: 3 days Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D50041 --- sys/dev/ena/ena.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ena/ena.h b/sys/dev/ena/ena.h index 06bdfad97ed4..3b01605b4ba7 100644 --- a/sys/dev/ena/ena.h +++ b/sys/dev/ena/ena.h @@ -39,7 +39,7 @@ #define ENA_DRV_MODULE_VER_MAJOR 2 #define ENA_DRV_MODULE_VER_MINOR 8 -#define ENA_DRV_MODULE_VER_SUBMINOR 0 +#define ENA_DRV_MODULE_VER_SUBMINOR 1 #define ENA_DRV_MODULE_NAME "ena" From nobody Tue Apr 29 17:18:50 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 4Zn6VL3ZQzz5vHs6; Tue, 29 Apr 2025 17:18: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 4Zn6VL2t4jz3cfT; Tue, 29 Apr 2025 17:18:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745947130; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OnFXfm/s7GHWFoqCqW1ZXLRXxuvzySMur4/sxXXJdrU=; b=AkYG20cfQ9YDLTLHX5pFseHicTAU/TwXYsr+Y1w1dewWBQrp62iZMi7PabjvR6U4VSmzwW B9iPRBOXo7w9cjXZioGUxk8N63JyLEKomcnVSAzStYT8GhTQF6URGHJTVYu6jYawTVwKH8 Vx3c7R4zrVZWfZMUWuwNrWGvnxCQBhXu01r+i8N+PGR0k68zpQRf0hmMExOpmhIM06n6Jo T40+TSK43M2V3QPj6jlVAwAU/KPG+I9lrp17Uc7RzI0zH57EE662E5+NktewnMUARTmwAT 8pEZ1W5RBdZXHQYsX0UkmTsBoz4bz2RfiLyU9woo4wcqi08M2g9iPX6BurMAyw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745947130; a=rsa-sha256; cv=none; b=SHq5vg0kaw8Y511ldIv5UCz34bx0uSuVxGsHydko/P9qQF0zcHhQ79bpe2TZNL7brXibXm owEdHfFFhwFrEXF2QeKEqSEX3j+LsgRecSEyKA4hhC4T8bbYFQg0LNhxcmEoj1+o5j1GV4 3oQQ7ft8fm1x3JNXwVT+CBVDZVdcLeJyWLMa/AhNVUHBGSKameMquYArY1WDMuKYOe7Kzr Dtsezwi+RIftdFRpFcE6T8+yohkuZJJXGzAJv1d4r4/kaVLlWW99YLRa5ARFycafkMIg9M ydzd9YxYXMW+BPDSEhRdvedefu34rt24g9ofLfxRrQvVXv1CwbMLryTdUXe+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=1745947130; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OnFXfm/s7GHWFoqCqW1ZXLRXxuvzySMur4/sxXXJdrU=; b=m3dQ4ZbMnMISTkythZlEXlQPpn01YisNl249Or9Ao8enQlILghPV+7NDi6mfnM2h4wS6jq 66I4y+cQrkoczUfzuoJyX8T3erRFoMMVRM2XOzig6aKGwjLf+hA5C+sL8e6FgzRcS/QQF7 R9YNqpMAlA5/PkX0uqlL0O4Q38a+YFGPNR4fyvjJPYDpyfgjRW6UhHsFST2Io2S2t6jws5 PrC0rgweINiMQ+MSxdJesAPOb+0rOO5whwotdN45NzBOawGOlMbFhbGMBXFFR3abB8MtPf CzVXdX9t12lS1b8JF6zMydyTXyiwbzev26UeVb/lzBe7LqYEeR6b5nUgnQH45A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn6VL271xzTWy; Tue, 29 Apr 2025 17:18: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 53THIoaj081007; Tue, 29 Apr 2025 17:18:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53THIors081004; Tue, 29 Apr 2025 17:18:50 GMT (envelope-from git) Date: Tue, 29 Apr 2025 17:18:50 GMT Message-Id: <202504291718.53THIors081004@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: 64b9e40dc5ba - main - release: style: prefer `-n` over `! -z` 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: 64b9e40dc5ba51fd91d098c48f7e57476c324169 Auto-Submitted: auto-generated The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=64b9e40dc5ba51fd91d098c48f7e57476c324169 commit 64b9e40dc5ba51fd91d098c48f7e57476c324169 Author: Brooks Davis AuthorDate: 2025-04-29 17:15:22 +0000 Commit: Brooks Davis CommitDate: 2025-04-29 17:18:33 +0000 release: style: prefer `-n` over `! -z` This is (nearly) universally the style of other shell scripts. Reviewed by: cperciva, imp, emaste Differential Revision: https://reviews.freebsd.org/D50056 --- release/packages/generate-ucl.sh | 6 +++--- release/release.sh | 16 ++++++++-------- release/scripts/atlas-upload.sh | 2 +- release/scripts/mk-vmimage.sh | 2 +- release/scripts/pkg-stage.sh | 2 +- release/tools/arm.subr | 2 +- release/tools/gce.conf | 2 +- release/tools/vmimage.subr | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh index 72db4a3180b8..b7d6875b3eb1 100755 --- a/release/packages/generate-ucl.sh +++ b/release/packages/generate-ucl.sh @@ -108,7 +108,7 @@ main() { uclsource="${srctree}/release/packages/template.ucl" - if [ ! -z "${debug}" ]; then + if [ -n "${debug}" ]; then echo "" echo "===============================================================" echo "DEBUG:" @@ -128,11 +128,11 @@ main() { fi [ -z "${comment}" ] && comment="${outname} package" - [ ! -z "${_descr}" ] && comment="${comment} (${_descr})" + [ -n "${_descr}" ] && comment="${comment} (${_descr})" [ -z "${desc}" ] && desc="${outname} package" cp "${uclsource}" "${uclfile}" - if [ ! -z "${pkgdeps}" ]; then + if [ -n "${pkgdeps}" ]; then echo 'deps: {' >> ${uclfile} for dep in ${pkgdeps}; do cat <> ${uclfile} diff --git a/release/release.sh b/release/release.sh index 5a6de297f7a1..8f0624e57344 100755 --- a/release/release.sh +++ b/release/release.sh @@ -62,7 +62,7 @@ env_setup() { # The default version control system command to obtain the sources. for _dir in /usr/bin /usr/local/bin; do [ -x "${_dir}/git" ] && VCSCMD="/${_dir}/git" - [ ! -z "${VCSCMD}" ] && break 2 + [ -n "${VCSCMD}" ] && break 2 done if [ -z "${VCSCMD}" -a -z "${NOGIT}" ]; then @@ -182,7 +182,7 @@ env_check() { fi # Unset CHROOTBUILD_SKIP if the chroot(8) does not appear to exist. - if [ ! -z "${CHROOTBUILD_SKIP}" -a ! -e ${CHROOTDIR}/bin/sh ]; then + if [ -n "${CHROOTBUILD_SKIP}" -a ! -e ${CHROOTDIR}/bin/sh ]; then CHROOTBUILD_SKIP= fi @@ -292,7 +292,7 @@ extra_chroot_setup() { fi fi - if [ ! -z "${EMBEDDEDPORTS}" ]; then + if [ -n "${EMBEDDEDPORTS}" ]; then _OSVERSION=$(chroot ${CHROOTDIR} /usr/bin/uname -U) REVISION=$(chroot ${CHROOTDIR} make -C /usr/src/release -V REVISION) BRANCH=$(chroot ${CHROOTDIR} make -C /usr/src/release -V BRANCH) @@ -317,7 +317,7 @@ extra_chroot_setup() { # chroot_build_target(): Build the userland and kernel for the build target. chroot_build_target() { load_target_env - if [ ! -z "${EMBEDDEDBUILD}" ]; then + if [ -n "${EMBEDDEDBUILD}" ]; then RELEASE_WMAKEFLAGS="${RELEASE_WMAKEFLAGS} \ TARGET=${EMBEDDED_TARGET} \ TARGET_ARCH=${EMBEDDED_TARGET_ARCH}" @@ -327,7 +327,7 @@ chroot_build_target() { fi eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_WMAKEFLAGS} buildworld eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel - if [ ! -z "${WITH_OCIIMAGES}" ]; then + if [ -n "${WITH_OCIIMAGES}" ]; then eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_WMAKEFLAGS} packages fi @@ -337,7 +337,7 @@ chroot_build_target() { # chroot_build_release(): Invoke the 'make release' target. chroot_build_release() { load_target_env - if [ ! -z "${WITH_VMIMAGES}" ]; then + if [ -n "${WITH_VMIMAGES}" ]; then if [ -z "${VMFORMATS}" ]; then VMFORMATS="$(eval chroot ${CHROOTDIR} \ make -C /usr/src/release -V VMFORMATS)" @@ -389,7 +389,7 @@ chroot_arm_build_release() { *) ;; esac - [ ! -z "${RELEASECONF}" ] && . "${RELEASECONF}" + [ -n "${RELEASECONF}" ] && . "${RELEASECONF}" export MAKE_FLAGS="${MAKE_FLAGS} TARGET=${EMBEDDED_TARGET}" export MAKE_FLAGS="${MAKE_FLAGS} TARGET_ARCH=${EMBEDDED_TARGET_ARCH}" export MAKE_FLAGS="${MAKE_FLAGS} ${CONF_FILES}" @@ -439,7 +439,7 @@ main() { esac done shift $(($OPTIND - 1)) - if [ ! -z "${RELEASECONF}" ]; then + if [ -n "${RELEASECONF}" ]; then if [ -e "${RELEASECONF}" ]; then . ${RELEASECONF} else diff --git a/release/scripts/atlas-upload.sh b/release/scripts/atlas-upload.sh index 6fa1a6a2e9d4..b10588501886 100755 --- a/release/scripts/atlas-upload.sh +++ b/release/scripts/atlas-upload.sh @@ -144,7 +144,7 @@ main () { echo "Validating" VALIDRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}") HOSTED_TOKEN=$(echo $VALIDRESULT | sed -e 's/.*"hosted"://' -e 's/,.*$//') - if [ ! -z ${TOKEN} -a "${HOSTED_TOKEN}" != "true" ]; then + if [ -n ${TOKEN} -a "${HOSTED_TOKEN}" != "true" ]; then echo "Upload failed, try again." exit 2 fi diff --git a/release/scripts/mk-vmimage.sh b/release/scripts/mk-vmimage.sh index dfd91f43140d..3ca369b04d8e 100755 --- a/release/scripts/mk-vmimage.sh +++ b/release/scripts/mk-vmimage.sh @@ -91,7 +91,7 @@ main() { . "${VMBUILDCONF}" - if [ ! -z "${VMCONFIG}" ] && [ ! -c "${VMCONFIG}" ]; then + if [ -n "${VMCONFIG}" ] && [ ! -c "${VMCONFIG}" ]; then . "${VMCONFIG}" fi diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh index 58b6d25fcccf..9f121e5ab011 100755 --- a/release/scripts/pkg-stage.sh +++ b/release/scripts/pkg-stage.sh @@ -53,7 +53,7 @@ export PKG_ALTABI=$(pkg --rootdir ${ROOTDIR} config ALTABI 2>/dev/null) export PKG_REPODIR="packages/${PKG_ABI}" /bin/mkdir -p ${ROOTDIR}/${PKG_REPODIR} -if [ ! -z "${PKG_ALTABI}" ]; then +if [ -n "${PKG_ALTABI}" ]; then ln -s ${PKG_ABI} ${ROOTDIR}/packages/${PKG_ALTABI} fi diff --git a/release/tools/arm.subr b/release/tools/arm.subr index 983c3ea75dc7..5c5ebd29681d 100644 --- a/release/tools/arm.subr +++ b/release/tools/arm.subr @@ -35,7 +35,7 @@ cleanup() { umount_loop ${DESTDIR}/dev 2>/dev/null fi umount_loop ${DESTDIR} - if [ ! -z "${mddev}" ]; then + if [ -n "${mddev}" ]; then mdconfig -d -u ${mddev} fi diff --git a/release/tools/gce.conf b/release/tools/gce.conf index 5ad83bcded53..fc72b381a02d 100644 --- a/release/tools/gce.conf +++ b/release/tools/gce.conf @@ -124,7 +124,7 @@ EOF # Do everything except deleting resolv.conf since we construct our own # Googlized resolv.conf file in vm_extra_install_base. vm_emulation_cleanup() { - if ! [ -z "${QEMUSTATIC}" ]; then + if [ -n "${QEMUSTATIC}" ]; then rm -f ${DESTDIR}/${EMULATOR} fi umount_loop ${DESTDIR}/dev diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr index 9b8813e6dc4a..ce0ea03c096c 100644 --- a/release/tools/vmimage.subr +++ b/release/tools/vmimage.subr @@ -110,7 +110,7 @@ vm_emulation_setup() { if [ -n "${WITHOUT_QEMU}" ]; then return 0 fi - if ! [ -z "${QEMUSTATIC}" ]; then + if [ -n "${QEMUSTATIC}" ]; then export EMULATOR=/qemu cp ${QEMUSTATIC} ${DESTDIR}/${EMULATOR} fi @@ -133,7 +133,7 @@ vm_extra_install_base() { } vm_extra_enable_services() { - if [ ! -z "${VM_RC_LIST}" ]; then + if [ -n "${VM_RC_LIST}" ]; then for _rcvar in ${VM_RC_LIST}; do echo ${_rcvar}_enable="YES" >> ${DESTDIR}/etc/rc.conf done From nobody Tue Apr 29 17:18:51 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 4Zn6VM4w3tz5vHms; Tue, 29 Apr 2025 17:18:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-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 4Zn6VM2bJKz3cWX; Tue, 29 Apr 2025 17:18:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745947131; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3sPjORgzZsx5pv0b6poEdq1Nt1OY7Sf/5XOX6NqqPTc=; b=AUhABwVTnbXlzjQVPtyKDOhStlBbAHdHv8GHq7PgJoCg9iTsumPfPFl2z8uaRkQUIxQA+b BnR+2jFcWk88IoiAiaef6EIRDkgK3mif3ysP6tYN86N3Tc7kU8TFSNGt4miPtEYc9hA59P DWMzbx/nsP2X8ozSpN8jQIr5kzPJkN+mVxqVWJxW7ctbsKfJaASdmK3QY6XJghv+rG10jH lC0PqgjeNc64+Agd8bjdWJKqsbMDnJNdg+xGyjIgXCEL3sB8hbBHJFqHosF0sF6yDTRwmm cbpOwyQ7yHDcC0o6AT6+ctfN17acu0amUviHxISsuGhKzlncNzhWfBKv3p9N9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745947131; a=rsa-sha256; cv=none; b=Lv9LuBwT+TBI6vNDskp1AJsBcqkt4K6kLOyOw3JFbcYccEh1mg7mf3IYpKBXheslb8jeST SyxAWMe5mJ/SQ8NuFg2ZnuiAwqXmc3W4qQqcKUr/cdZMfeUgPxbkZsMbw/1egXyDRImAvh 9/nXBS+Jpr2Q+LEUsW83TxCMOsLmqge1dA8xzSqU8mzIFIguyQgqhfAtZky63Xmvu+eUiQ IxaTPvumgC53Yyhho5c8AZpi3sOSxDdf+rwv7refsuqs31tpHuqiKtsKgQAGkbWUo1GtKl yD4dchGs9RYAyzywIBN1hVZOZfDJ+B5mPvalcIR2rMm+58tpviHwtUeC8zcMxg== 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=1745947131; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3sPjORgzZsx5pv0b6poEdq1Nt1OY7Sf/5XOX6NqqPTc=; b=WVG1O2Pj0Onte29wXD9e5WSh68xLRiZdRqtxxPsZ9Qi8/CxafQOJ1lxqe69tKVc6cvioje HN7VcejwCe52Dc/FeShx1mJXvA7l0RXugbbMjUviO+o5oaoVLEh5vHEE+P/8Slb+VbaXsm HV5GA995TJIjk/EzaZLEmT7TI6e1FdC4LzVPx9ufEnFER7xZ4eXwase8Wjbytixf7jDdpt swXlOHoYa/OQQkPQHtnTIJqoEabssEeQbopzSMWkXqdBx9mkZw8hNms0WTuDCIk343z5yc qyV83350hYkMjnu8eAnE7v5JZVhdjgjp3cPcloYyxpi/xjY67XsLycgqQrxAhw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn6VM2BfNzDYc; Tue, 29 Apr 2025 17:18: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 53THIpmL081043; Tue, 29 Apr 2025 17:18:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53THIpJe081040; Tue, 29 Apr 2025 17:18:51 GMT (envelope-from git) Date: Tue, 29 Apr 2025 17:18:51 GMT Message-Id: <202504291718.53THIpJe081040@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: 6c3a4b5f9b7b - main - alloca.3: move to share/man/man3 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: 6c3a4b5f9b7bd4d4e6dc1fc2d366af99aa8fca1d Auto-Submitted: auto-generated The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=6c3a4b5f9b7bd4d4e6dc1fc2d366af99aa8fca1d commit 6c3a4b5f9b7bd4d4e6dc1fc2d366af99aa8fca1d Author: Brooks Davis AuthorDate: 2025-04-29 17:17:02 +0000 Commit: Brooks Davis CommitDate: 2025-04-29 17:18:33 +0000 alloca.3: move to share/man/man3 The alloca() API is a compiler builtin and not generally part of libc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D50055 --- lib/libc/stdlib/Makefile.inc | 2 +- share/man/man3/Makefile | 3 ++- {lib/libc/stdlib => share/man/man3}/alloca.3 | 4 +--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/libc/stdlib/Makefile.inc b/lib/libc/stdlib/Makefile.inc index bea82445304d..ca199a669be1 100644 --- a/lib/libc/stdlib/Makefile.inc +++ b/lib/libc/stdlib/Makefile.inc @@ -31,7 +31,7 @@ SYM_MAPS+= ${LIBC_SRCTOP}/stdlib/Symbol.map # machine-dependent stdlib sources .sinclude "${LIBC_SRCTOP}/${LIBC_ARCH}/stdlib/Makefile.inc" -MAN+= a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 \ +MAN+= a64l.3 abort.3 abs.3 atexit.3 atof.3 \ atoi.3 atol.3 at_quick_exit.3 bsearch.3 \ div.3 exit.3 getenv.3 getopt.3 getopt_long.3 getsubopt.3 \ hcreate.3 imaxabs.3 imaxdiv.3 insque.3 labs.3 ldiv.3 llabs.3 lldiv.3 \ diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile index 1d8586e48f9f..c610283173a2 100644 --- a/share/man/man3/Makefile +++ b/share/man/man3/Makefile @@ -1,6 +1,7 @@ .include -MAN= arb.3 \ +MAN= alloca.3 \ + arb.3 \ assert.3 \ ATOMIC_VAR_INIT.3 \ bitstring.3 \ diff --git a/lib/libc/stdlib/alloca.3 b/share/man/man3/alloca.3 similarity index 98% rename from lib/libc/stdlib/alloca.3 rename to share/man/man3/alloca.3 index d2111872ae0b..fd88014dbb33 100644 --- a/lib/libc/stdlib/alloca.3 +++ b/share/man/man3/alloca.3 @@ -25,14 +25,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 5, 2006 +.Dd April 29, 2025 .Dt ALLOCA 3 .Os .Sh NAME .Nm alloca .Nd memory allocator -.Sh LIBRARY -.Lb libc .Sh SYNOPSIS .In stdlib.h .Ft void * From nobody Tue Apr 29 18:44:46 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 4Zn8Pm0PkHz5vP8v; Tue, 29 Apr 2025 18:45:00 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 4Zn8Pl1vstz3GT6; Tue, 29 Apr 2025 18:44:59 +0000 (UTC) (envelope-from carpeddiem@gmail.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 carpeddiem@gmail.com designates 209.85.166.41 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-8613f456960so179871639f.1; Tue, 29 Apr 2025 11:44:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745952297; x=1746557097; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VkQykCbfxsQLIz0M4lHHWO61N9K0S3N6lZ+5Km5gWPk=; b=OYjI5Byz8dS+l0oIE8yDZWqEfX+phlr9KNUQ8eYtmx0AHbvDmrb1FV+WBTRW6SXkRR hyP/R0lqIXKxYefV7yU/aHAghfWYroBQ8NDg5iEA70RxtN6jqKSQs7u4GvY3tHSWQO/n F00Y7vZ8XFsHT2ZQ/64DhpWbG4xchSpWOyqNitvOx1KYrc6bkQxZaB1jXr56yHnCwqUw a9cTtOnDLCsZpVBizxOrI5Hrw75eDr5lQd2si4pZwWsfXsxWInS4ZDCYZ0+siKhX21zk ArKuaHRWC0pTDGUZBrN1pMyLmrfQMSMCekd3iwMv3qeCuxDZG6GZuAa1e+8Pqz44j0pk VllQ== X-Forwarded-Encrypted: i=1; AJvYcCWWD1ydv0XANKoUcmEd0fD9UIqeUEa0W6JGsAJXRVymz1Cd7VpUtjKREg3mMssjbjffotp67FMffZ1jB6gz3wp4FHmL@freebsd.org, AJvYcCWxr9QkmCGsujwVSoeJpH5t9No3ADa2/v3tgUpmlJ83tJoVfwrqY9ToO985tW657mhEq8ugMOYuIzBwTrXdEU+t++XBPpE=@freebsd.org X-Gm-Message-State: AOJu0Yw7SyCDfc428YPvAJI4mnlIZ0cnQBCT28RizgpD8J/q/Epnl320 x0EBpD3K9TWcOLnz5669OFb0Ysxt3TjINp5Sgn+wiNJvnxu38ZcrMk4KMyd0rr8cp53NV+3s9Ui ZArY+21LuZGY8p/jhhtq/FBWOFDAE0w== X-Gm-Gg: ASbGncvu/7stjOjh0/Qlau/tobMR6Fri5nfcaFqCjXindYRhLYp2yZGzUpeXUS8BMHG Y72k62Myh5yfEarF9OtjENcMHNjPXl5eXOqQ7XOr+rXW5NriVjF1W70YxzqfbLI2d3KBLF4j5tX cc61WikfDGkOg+o6vSAg6V3jcXJBuhgZiRzup9l4S8/FkvaPyQluorT5GWQoZGomk6ji8= X-Google-Smtp-Source: AGHT+IHbkt4VUCoR3dEp76Wgc3EUA4uYGH5Mo6hLm8E2RSFTcHAoRgVu+Qah0UzhtTwETm3I57ZNEPuycomprI1av8E= X-Received: by 2002:a05:6e02:148f:b0:3d3:f64a:38b9 with SMTP id e9e14a558f8ab-3d967718aa4mr2562625ab.15.1745952297631; Tue, 29 Apr 2025 11:44:57 -0700 (PDT) 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 References: <202504010810.5318A96d073963@gitrepo.freebsd.org> In-Reply-To: <202504010810.5318A96d073963@gitrepo.freebsd.org> From: Ed Maste Date: Tue, 29 Apr 2025 14:44:46 -0400 X-Gm-Features: ATxdqUF_Yt6a3L8aZe3fipCcBDM1EEcKddYqakhJxSjm-LLi617d6HpUP7YcQw8 Message-ID: Subject: Re: git: 91506dba7f2e - main - zoneinfo: also install tzdata.zi and version To: Philip Paeps Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Spamd-Result: default: False [3.10 / 15.00]; NEURAL_SPAM_LONG(1.00)[1.000]; NEURAL_SPAM_MEDIUM(1.00)[1.000]; NEURAL_SPAM_SHORT(1.00)[0.996]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; FREEFALL_USER(0.00)[carpeddiem]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; ARC_NA(0.00)[]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.166.41:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[209.85.166.41:from]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org,dev-commits-src-main@freebsd.org]; R_DKIM_NA(0.00)[] X-Rspamd-Queue-Id: 4Zn8Pl1vstz3GT6 X-Spamd-Bar: +++ On Tue, 1 Apr 2025 at 04:10, Philip Paeps wrote: > > The branch main has been updated by philip: > > URL: https://cgit.FreeBSD.org/src/commit/?id=91506dba7f2eb147eeb55ec30640bc11755a1e8e > > commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e > Author: Philip Paeps > AuthorDate: 2025-04-01 08:09:37 +0000 > Commit: Philip Paeps > CommitDate: 2025-04-01 08:09:37 +0000 > > zoneinfo: also install tzdata.zi and version > > Build and install the shrunk version of the time zone database required > by libc++ 19 std::chrono::current_zone (etc). While here, also install > the tzdata 'version' file to align more closely with other vendors. > > PR: 282377 > Reviewed by: dim, emaste, imp > Differential Revision: https://reviews.freebsd.org/D49577 Do you plan to MFC this to stable/14 for 14.3 as well? From nobody Tue Apr 29 19:01:40 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 4Zn8n03t4hz5vQMH; Tue, 29 Apr 2025 19:01:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn8n03LPrz3MkN; Tue, 29 Apr 2025 19:01:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745953300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ytH3vP9f7SRLGr4D7NqMg/iurJ9squjhA6KXkV+xMAU=; b=cgRuPH0PCzhWJSwOXhl58AkjjsTs+9SYNBpC+f0jqCprvWxkDxE6fmVAY6P+gbjnxXkBk+ w24Ydm/6RIGzC9YeCPM8MFdbXS/wtGvAu65YSUGrQe6II05CbymRYjpLbXyWhb3POBxx/h 6Q2K68a9nX62bCOyfVkm0h36dJYYS/lWg7WTLGIj58t6uiJrrQDPe2GrlV5hiLUgjEUGnK ln/ukYBg4gm4UaeDzYsCjZu3Uzf2Y2gVPvJRrbcQsu3cdvonMgwJq3yz36K25LQmhpvHIa hkYIhVrIcmnkci1XcHaFsdPyYbepvEYK+QAWR18KDac6lF0tMSwTD+fnyBbJfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745953300; a=rsa-sha256; cv=none; b=Uo7jLl3xH0V4IfVM2BxYfMQdcEbQHNtvEESlS5MFFRtUm/Rbwkg4aSy+PmUjC6CyvZqkZl +TmeJsK6zNbJ7eS+5zW4Awu6QFYZEKHEffmXi6kgHV0qLr1OKgdYAszrZirHpbV0tRRFsC wt7pmxUzH5zPgRLDk/czSMwlg1tqi3bBdQd1ECxT0Ny8cjzEZ9AMEWfZ1UbMJbEQvhVbMn 6KZ2vJPiEIH7HGkuy0e9OG0Px6z5alqwNTP3hmAcNDpyQ4N0nEzWBJf4hqTUzyaVvLDkg0 xDEqvPK0jI4Cm+mYrJCC2DbOg5avcRbZf6n5fd4VrNIvlsR8DVNQspm1bC+ukw== 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=1745953300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ytH3vP9f7SRLGr4D7NqMg/iurJ9squjhA6KXkV+xMAU=; b=Q/invxX7vmbqhdBac2Vhx2ik2eQTxjc0ykUr7xIlhWplRW7KOauEMJ9XxfTIe7gUIbpygM rKjCEHroblioPwLQM0kmz1SANVburBfpc/w0AA7peV6DVHi0R/vt+PZ7nwvHG7vddcIjXP nBZvZfZSO3cKfc72i/XSGkoMvp6L6EMPFIDBCPPVPgL40s4eVAaxLDCFJ6Hu+432v313Mw JAeNb1t74PG5BSjRuLecCmjMpumEzWXuT1ky0gNvwRCI4USichMAhKo9eDYQce+OBassaK FOQ+qjEBhKGseRCRBMBg8tXnWjSAyxgeDpI+VeV+7+Nb99e/JG0lU/aR1hWhEw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn8n02vBJzZ6D; Tue, 29 Apr 2025 19:01:40 +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 53TJ1ea0081271; Tue, 29 Apr 2025 19:01:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TJ1etW081268; Tue, 29 Apr 2025 19:01:40 GMT (envelope-from git) Date: Tue, 29 Apr 2025 19:01:40 GMT Message-Id: <202504291901.53TJ1etW081268@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 4a12e28f330c - main - pciio.h: Delete trailing whitespace 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4a12e28f330c2fd002f31c6a70f88994fe902f8f Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=4a12e28f330c2fd002f31c6a70f88994fe902f8f commit 4a12e28f330c2fd002f31c6a70f88994fe902f8f Author: Warner Losh AuthorDate: 2025-04-29 18:59:24 +0000 Commit: Warner Losh CommitDate: 2025-04-29 19:01:01 +0000 pciio.h: Delete trailing whitespace Noticed when I was looking at some binary compatibility changes that might be needed. Sponsored by: Netflix --- sys/sys/pciio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/sys/pciio.h b/sys/sys/pciio.h index eead6989b5fa..6467e82b1b3d 100644 --- a/sys/sys/pciio.h +++ b/sys/sys/pciio.h @@ -66,10 +66,10 @@ struct pci_conf { struct pcisel pc_sel; /* domain+bus+slot+function */ u_int8_t pc_hdr; /* PCI header type */ u_int16_t pc_subvendor; /* card vendor ID */ - u_int16_t pc_subdevice; /* card device ID, assigned by + u_int16_t pc_subdevice; /* card device ID, assigned by card vendor */ u_int16_t pc_vendor; /* chip vendor ID */ - u_int16_t pc_device; /* chip device ID, assigned by + u_int16_t pc_device; /* chip device ID, assigned by chip vendor */ u_int8_t pc_class; /* chip PCI class */ u_int8_t pc_subclass; /* chip PCI subclass */ From nobody Tue Apr 29 19:12:57 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 4Zn9213csHz5vQjQ; Tue, 29 Apr 2025 19:12: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 4Zn9212NLlz3S3n; Tue, 29 Apr 2025 19:12:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745953977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dZlFhdqNTyGFeSCItMijsWM5hyQ5yRKQr+Q5skN1Wsk=; b=MuRjVn+xJt7c7slvRwtkJdr9QpVK39tMTEwKunSdl62glHVEFyE+qodx3M0Uv4VFdQAu96 DVyKHcM5sHhMdUEJKA87wdMGwrCbUwZZMCOr84fByd85ODBYDC/AwXjyEFRoy05Hz/XztK Vt8jdPOrhE2syywTMzVVy5ChPkSBtYc1hTB8Ly0Fe1zhZB3OuoIOMXTX3/BN/U5MQF6f0d Hs5MqkEdss3KT0K237tZUxgAOzzMLAWGt8vQEedv0ntmhP9U+98RUJdh8PyP3dtP2H1xVm L6pzxOztVXIzu5HXAZMDnCxoQburrTLVnKOFzCu/vVf6GG9y33j4yIKZqCVQKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745953977; a=rsa-sha256; cv=none; b=bIyuaVx/2tOB7eLYxqSIloZ6f05RU6eJ6koKkBmch6nRTtMuu7lSLX/OyWAY2hF1adLjli 5Le7xGXcSbjScSO0QNhr3wNz/nvtZunlORedK3/NZmTEQpeNTsoYSW8QQWip95uU6PR7Y6 2oJ4KHISgMSjyDGdFwy9QrE9eV4P/8l2ys6nSGbwJUQU0e/XluzM0BCe7TyiRFyDQ1G3Er FXnHI+UrphZ68R8U2Y+KHMRB11wgJ6+rEdSBX239vgpar2C23Gr8Coqyst9OXlik0m5NfN A5UVYTQPM4V4VOKZH2axTTSNDTIVYXJfdNg3wLfziOjQ5+gAjCTAPugzN9gmbw== 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=1745953977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dZlFhdqNTyGFeSCItMijsWM5hyQ5yRKQr+Q5skN1Wsk=; b=WRe84ZId6FhgkmAF8YtNGmsHX4tMbOccn2ik/DkiEM4Y2LYtQOi/vpbjlPNq8avD4CBj5Q 5kfqMy4hpF+8l6q9rXp5ZB4H7rgZvZrUGLMYbqjLtZ6zlDNE/3MORnhrWdazpzR3qBmqZ1 Bw7dRE8aJVzOl2tiRgF1ADngYLLuWw/QDYbaAsDDNUdazFN6AxDLWrB3dpVtlXA2cVGETH AufjU7tGTvyV+DE1K1Mj3ITGkje9RSFui7BwTQsRX250NzbWbFVhsDAzgTtBjY1XjK3fg6 RSVHhO51vovS0FSh0mxir1+aiWED4SrYKFfMeAUt9DDMrZ5qxXj9/i8UC7XDHQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zn9211qgnzYnS; Tue, 29 Apr 2025 19:12: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 53TJCvDj006643; Tue, 29 Apr 2025 19:12:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TJCvSQ006640; Tue, 29 Apr 2025 19:12:57 GMT (envelope-from git) Date: Tue, 29 Apr 2025 19:12:57 GMT Message-Id: <202504291912.53TJCvSQ006640@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: ad2a46d0ce30 - main - getopt_long.3: Use "optstring" consistently 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ad2a46d0ce305dbcbcedc213865cdec6ee13792b Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ad2a46d0ce305dbcbcedc213865cdec6ee13792b commit ad2a46d0ce305dbcbcedc213865cdec6ee13792b Author: Ed Maste AuthorDate: 2025-04-29 17:00:20 +0000 Commit: Ed Maste CommitDate: 2025-04-29 19:12:37 +0000 getopt_long.3: Use "optstring" consistently The SYNOPSIS uses "optstring" as the argument name but the body text used a mixture of "optstr" and "optstring." Sponsored by: The FreeBSD Foundation --- lib/libc/stdlib/getopt_long.3 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/stdlib/getopt_long.3 b/lib/libc/stdlib/getopt_long.3 index f8bb1f1b6b11..d6998d13822a 100644 --- a/lib/libc/stdlib/getopt_long.3 +++ b/lib/libc/stdlib/getopt_long.3 @@ -217,7 +217,7 @@ an error and return Specifying .Ql \&: in -.Fa optstr +.Fa optstring will cause the error message to be suppressed and .Ql \&: to be returned instead. @@ -229,7 +229,7 @@ a leading or .Ql \&- in -.Fa optstr +.Fa optstring also has special meaning. If either of these are specified, they must appear before .Ql \&: . From nobody Tue Apr 29 20:12:37 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 4ZnBLs5B1Sz5vV65; Tue, 29 Apr 2025 20:12: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 4ZnBLs4FLBz3vYV; Tue, 29 Apr 2025 20:12:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745957557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7CbGkcw/2BL/UCaySJpuOh0ioDIwEBStERjaQHkd9+0=; b=qL1RqGulHDxj9K63540wAOp70NstG8ZeFWlb1oNss95gE/9sTGsK5Rf5V28DV6YLAB4f3Y +1hhT2Pa2MI1sGJ1AVaz6sZiLm+KdGhNuQPsJ12G8qNWZbTCvEOnk6W/ZWiI8hVQonxTSL Fwr2FBcmj90mrtFJUlssWNhEd7TMf26LMBxRcpZKvRixAputhGb0QlhP5Nw8EFAiTYQtPU +ReG1+I9chonwWAWpSlssYLqxwWvdGK2F2HlKxzesfeg+Bx5nE7hJoB+J04NsET6OmrJsX mdfArq+Wm3nJfM4RyjYBqD+aAHiKnFlVnq1Kk39rPfYMlBN8iazxzlBF1QxQ2A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745957557; a=rsa-sha256; cv=none; b=t2HaQNowMSB5Qh3uRLliU7vaHmj9n6T11wnERJ77aY+J6cO63rL4r7gxf31Zh7PSti6Hr1 z+dNlEEJEGOhZd5vuRx6lNJz4BvoneocLG0QvwxpRmrPCpwvloXF3ofEw+zYZDyfTzVWsO yH3m7mLWUHDh+AeS9uQN1uiPRpAuiTfvNFpFkgURdYmJiKP8eJOAR+iUhCPmW/evwEQLi0 hR38gCPP6sMch5t0cDgdS3Qwx3C+SGwd2g/1GbOSGXBJaJ/di3GcWgq3WCbbtoOduZn7L+ 6DoBygpdXBKPrUvO+3SJBPwRlE+VUL3h4zG6Wbo4zii8QUl5eUYKW2D6kULGSA== 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=1745957557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7CbGkcw/2BL/UCaySJpuOh0ioDIwEBStERjaQHkd9+0=; b=kB0tq3B32TxqOJcUYiW0ho0CxvvODWBIN8gPKyvOYwFGNvH2XQ9k3ZVE3MEPWtu0iMZG47 Is1qjzaqxOze8chmzXtEOjPZYo14EBiDBsRXpLiF3z8WqInB1MvArj74Mqa8UyEzY8gxp/ oINz/KrIigZDE7ME1hxd/nOd0zC/hrBT9fETUBltjUDqwiOEhAJlPHYGNqXE8Cl88QXGPw Ro38M/VBV7GjSgrGpCPeb3We6DiMUKiZgaZAFTr1qdKkLJ1BYlXQe6fJ9XplvGT2otiLTH gMAKXdvELwExvwRXHQiIHUdUJ+tADDTFFoQq2LDsYzv8iQJM3Cc07pAzDRAzPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnBLs3lvBzbq6; Tue, 29 Apr 2025 20:12: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 53TKCbtq018350; Tue, 29 Apr 2025 20:12:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKCbJT018347; Tue, 29 Apr 2025 20:12:37 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:12:37 GMT Message-Id: <202504292012.53TKCbJT018347@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: b4cc8079a759 - main - devd.conf.5: memrory -> memory 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b4cc8079a759670b3bc19c27314560308516ad83 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b4cc8079a759670b3bc19c27314560308516ad83 commit b4cc8079a759670b3bc19c27314560308516ad83 Author: John Baldwin AuthorDate: 2025-04-29 20:12:03 +0000 Commit: John Baldwin CommitDate: 2025-04-29 20:12:03 +0000 devd.conf.5: memrory -> memory Sponsored by: Chelsio Communications --- sbin/devd/devd.conf.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/devd/devd.conf.5 b/sbin/devd/devd.conf.5 index 5027ce78eae0..adeeec7fd611 100644 --- a/sbin/devd/devd.conf.5 +++ b/sbin/devd/devd.conf.5 @@ -38,7 +38,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd December 20, 2024 +.Dd April 29, 2025 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -493,7 +493,7 @@ in the NVMe Standard for Critical Warning field of log page 2 .It 0x4 Ta Reliability of media degraded .It 0x8 Ta Media placed into read-only mode .It 0x10 Ta Volatime memory backup failure -.It 0x20 Ta Persistent memrory read-only or degraded +.It 0x20 Ta Persistent memory read-only or degraded .El .It Li nvme Ta Li controller Ta Li RESET Ta A controller reset event has happened. From nobody Tue Apr 29 20:12:38 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 4ZnBLv01bcz5vVK2; Tue, 29 Apr 2025 20:12:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnBLt591gz3vQK; Tue, 29 Apr 2025 20:12:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745957558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u1u4NfS5+GWhYK1GDz367pHp/yTwd4C3QR8Ju3hPC18=; b=WaVQzV9b9DfM8sCbyTvSsu3nUQ6n3e2q/xdqLAOI4jTVCwIlYWIXqSMxQ2GaNiwwcUJAmV bdzjQoQsHtvkFUBHV0tzm7HbTWAdYWWNwlJhGRRF0rnjrAhohqqruPiedxiPSxSL682xJX 7AStvXBPa8VCdjQZvez7zBnKHd4ik4HEzJuEVwCsBVcboULGdPi7oPOJlvgUNXjeve7EsS +FS+N6gaXDi+78cToMNprqtX8IoKajZV3ySZXALW6A4vjAWbcz2OO3UfbElJOUjGxKE1W4 0C3Ljl2qeFND5wsusXwH2wsDiPGMk5iIluwXdRcOS0b19KHZ4jNQCYeu4WYoqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745957558; a=rsa-sha256; cv=none; b=qXWJiFEhEPpTtBRbaXHj1fyJUAJDx2a2+sF6jlIKTuB20+T1tmEdWmi5gMVUnH7YwksnfR 2BYiC8P6lC2uOvbcBuGJA1ZFA5fR5++uk5c5I1a3QKXindVfT1Cn+wsSNapmsJgIPlmXyd OSz15zCJ4NFzUegDAJetR/dzlBCMZNDdVWUWjn/wj5LkW4L81voynchQblpE+cvJ/Z08eo qkJH8KLX5XMW7S5Y7+u0WpjNcqYJDpX8rF+gWwT4XPaw/YwXEOUojyQSLU/XrnG7JpdOOR vIxRPvcLqSp0Em6xEm/GzSGCcDvu0VCtiZbOHm3pXK74yGSngxdD5c2DJWugug== 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=1745957558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u1u4NfS5+GWhYK1GDz367pHp/yTwd4C3QR8Ju3hPC18=; b=renuvEc1fvfv4fKO5mU4MvxXh56YMkuShOpJBOwflUKfoUp5lTYvr+wTYhkXrIbdlQ0uUv JtqlbZKch5n4F3zIG2SBAp31agK7/0BusQYvCjHhW1CFmwc8WJhS9BSc3V/EkcYvkbuGT5 H2x1SMRyw/Mc20nL3Aq0IQKeZA5dH45FydCHZUHoe3/TqFrIMWT8U+l2rOsa2mqNTDvH14 NnqgLfJKB4CmMGjex5vdu+dYXk1UnaLWZ4nkbUo8iZUDJCXXde/7SzVYxMEAC93fgxa4HK S2DqxHUuBVpnH1eShSBedBitnD+b/smtB8q0jJODsSeXWmlGA6c97A3/iLKC9g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnBLt4hn4zbSJ; Tue, 29 Apr 2025 20:12: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 53TKCc0d018384; Tue, 29 Apr 2025 20:12:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKCccI018381; Tue, 29 Apr 2025 20:12:38 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:12:38 GMT Message-Id: <202504292012.53TKCccI018381@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 3357c016c79c - main - nvmecontrol.8: Fix markup of default transport for the discover command 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3357c016c79c6ff328da3aaeb7c46f9269df6fc0 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=3357c016c79c6ff328da3aaeb7c46f9269df6fc0 commit 3357c016c79c6ff328da3aaeb7c46f9269df6fc0 Author: John Baldwin AuthorDate: 2025-04-29 20:12:28 +0000 Commit: John Baldwin CommitDate: 2025-04-29 20:12:28 +0000 nvmecontrol.8: Fix markup of default transport for the discover command Apparently I swapped a few lines around while revising this section of the manpage at some point. Fixes: 1058c12197ab ("nvmecontrol: New commands to support Fabrics hosts") Sponsored by: Chelsio Communications --- sbin/nvmecontrol/nvmecontrol.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/nvmecontrol/nvmecontrol.8 b/sbin/nvmecontrol/nvmecontrol.8 index a9f4552fbdc6..d886b60a2545 100644 --- a/sbin/nvmecontrol/nvmecontrol.8 +++ b/sbin/nvmecontrol/nvmecontrol.8 @@ -33,7 +33,7 @@ .\" .\" Author: Jim Harris .\" -.Dd May 10, 2024 +.Dd April 29, 2025 .Dt NVMECONTROL 8 .Os .Sh NAME @@ -739,10 +739,10 @@ List the remote controllers advertised by a remote Discovery Controller: .It Fl t Ar transport Transport to use. The default is +.Ar tcp . .It Fl q Ar HostNQN NVMe Qualified Name to use for this host. By default an NQN is auto-generated from the current host's UUID. -.Ar tcp . .It Fl v Display the .Dv IDENTIFY_CONTROLLER From nobody Tue Apr 29 20:29:36 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 4ZnBkS4trLz5vVyb; Tue, 29 Apr 2025 20:29: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 4ZnBkS2cfFz4464; Tue, 29 Apr 2025 20:29:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958576; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JATG5V/zKZ4BiHNh5PZ91pwUunuXiRkS0j3fUoXnr3w=; b=DqbMf3QYxNc1lGyoa6iJZSx9F4GTrb/mvqGkHvT02FNIQA3nc1FM+Ic4iGefyFfKeoBvcg hi6aK/02OgSfZ7fwV8ys6JPmmIkQcGJEf+C4In0pqbhLUeIyRZ94JqFi/iUjZivcssYpq7 MPFqkAJRpvySAjAVoDfFJtNsXovB9UqEXjVCjtOByeF74Cg5HW1hq4CtjHRmDTA0eqBW3O gJcuDQtTmfjLGjM35aDV02JNBI4XpNk863M65iVjtTh6AJjsuuccOG0UIMgFrSjYOpot0s o4IZtrzZ0ZN90WJWH0RrRDqn//Lj+zXljegYw+nPwTW97i5XqMNbSWFjlC1uBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745958576; a=rsa-sha256; cv=none; b=bRAJ7uOsNqHYAczbwOSaxsca7EnemGw3T7XUEbbA0lEVr6E1z9DLet30RcfuHnTlS158vu rCLzUt24igBTWdx76Lw+QwiwIjgCtWabHHrK9ogI3/haKZjteUQQZwmMJou6dKLLVZ/4iD vTEtaVpNluu/YxoMCwfRWbl2i+HHN5skF4RnYaCJB9ZoK5KV1ELDP3tTyUUNAwkACUEktj r4+jJXqlBv8qeY8dzBRKZpS2wna7ADdM5Ks8qRko+YCuZuHtBXYI+hqfFPwJfutemIVM0T pvQLiuWgh/LCeDzh9Sox8/RZBWsSNz6/ocpRswmNzaCfMluK0SXCL4Hk005KfQ== 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=1745958576; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JATG5V/zKZ4BiHNh5PZ91pwUunuXiRkS0j3fUoXnr3w=; b=XtJwYE/jwWg+MEgZG0jC++/7biJhhOrAJcmUvIQ/p8IQZagSzAwlGPWidbIzIwNDN5IXDb UCMsJiyE/fBhIMabgLioTJFLhbvMAZ+eotEYQyb5zD2U1UF5Qc09y9SsRaq7+iwAPWjiey 9FiM+OYin8y9xFWAgMiKTrdhVdVAKXWBa3hARtO6knau+A50nFcfrpjD0O0Fn+AIIqlIr7 CF2hRnnANVwxgI81BTmTL0gqXMBEaKu4hy8GYMjuYP5Ndt5GJQZEpOgXV7UgjH5Jn8/d6r KH7h1hDnW7veRv0vo5otR4U+ZiZfZnUaVvzAcdpKZDbVLzQdSE90yEgjmujFVw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnBkS1z49zbSq; Tue, 29 Apr 2025 20:29: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 53TKTal6039879; Tue, 29 Apr 2025 20:29:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKTaU2039876; Tue, 29 Apr 2025 20:29:36 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:29:36 GMT Message-Id: <202504292029.53TKTaU2039876@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: 7a7ab347fc65 - main - rtlbtfw(8): Add Mercusys MA530 VID/PID for Realtek 8761BUV 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: 7a7ab347fc6535a8c91d458dda76a61019163869 Auto-Submitted: auto-generated The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=7a7ab347fc6535a8c91d458dda76a61019163869 commit 7a7ab347fc6535a8c91d458dda76a61019163869 Author: Vladimir Kondratyev AuthorDate: 2025-04-29 20:28:53 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-29 20:28:53 +0000 rtlbtfw(8): Add Mercusys MA530 VID/PID for Realtek 8761BUV Tested by: Yusuf Yaman PR: 286369 MFC after: 1 week --- sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c | 1 + usr.sbin/bluetooth/rtlbtfw/main.c | 1 + usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c index b9fbc1c12a29..c3fb98b46e6a 100644 --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c @@ -127,6 +127,7 @@ const STRUCT_USB_HOST_ID ubt_rtl_devs[] = { USB_VPI(0x2ff8, 0xb011, 0) }, /* Realtek 8761BUV Bluetooth devices */ + { USB_VPI(0x2c4e, 0x0115, 0) }, { USB_VPI(0x2357, 0x0604, 0) }, { USB_VPI(0x0b05, 0x190e, 0) }, { USB_VPI(0x2550, 0x8761, 0) }, diff --git a/usr.sbin/bluetooth/rtlbtfw/main.c b/usr.sbin/bluetooth/rtlbtfw/main.c index 029c04f98b26..e0445726c3a2 100644 --- a/usr.sbin/bluetooth/rtlbtfw/main.c +++ b/usr.sbin/bluetooth/rtlbtfw/main.c @@ -112,6 +112,7 @@ static struct rtlbt_devid rtlbt_list[] = { { .vendor_id = 0x2ff8, .product_id = 0xb011 }, /* Realtek 8761BUV Bluetooth devices */ + { .vendor_id = 0x2c4e, .product_id = 0x0115 }, { .vendor_id = 0x2357, .product_id = 0x0604 }, { .vendor_id = 0x0b05, .product_id = 0x190e }, { .vendor_id = 0x2550, .product_id = 0x8761 }, diff --git a/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf b/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf index d544913aaa12..d45ba0bd92c4 100644 --- a/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf +++ b/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf @@ -213,6 +213,14 @@ notify 100 { }; # Realtek 8761BUV Bluetooth devices +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x2c4e"; + match "product" "0x0115"; + action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware"; +}; notify 100 { match "system" "USB"; match "subsystem" "DEVICE"; From nobody Tue Apr 29 20:29:37 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 4ZnBkT4yD3z5vVgb; Tue, 29 Apr 2025 20:29: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 4ZnBkT3H90z443b; Tue, 29 Apr 2025 20:29:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wKhJ7/snp/YazPv6nKpyfei5daBUnG6Et0dvvlmab9Y=; b=xj7AHCqJ7Ek5Qg9hPKmF2U5ha0VPke8162PS9g4vZyqhw7GNbUdJJL6zQBvR9FFKfg9oW+ xszdQKcRsvAex0EGY651/Q6AR9km6zml+bqYWIVXkqGG/YHdKfa4y3ODmOeO1Jmofl3hvU wcxOPJTiFgsRQtO1V12TegVbloZbeAIEBCHLMx2OlJ4bFkDyp2FcvDcrl66xlBDPgTOEDc e4rub39kVfq9bBomZ5gfqAWYnYHv5mhFzqX3w28axIp6wtG9D+BJo2azCAbOLC8iuko7Re E9RF+J1wXS89PU6dZGst+Z6zoSWpjxfW+04Npepi2OuPxknkRujv4wOrVyKSng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745958577; a=rsa-sha256; cv=none; b=rfDk8r2qGtTm2CZvdnk4KZ7AlrCkPbMJblxQsCqqXG4C4MtAELDJ9hvtTriiw0JvIGSuZB U5Du0+jPM4wf9L6greC17PH2Wj8f9l7u1GFKlC72FiHjcaD1pChGcGcpyg+QPbpkDf+wEv nbf30e2lZZUR0lqbPgRlo4mDaMcRxr6ymHxsinId/A6uxTcb3yaetU6uPbL9uydcmUksDN YDm3p51KaayaSzXcq4cw1vhoGSpPxIEKm7ZC4pUpLdVZKYseJyMNEODVL4ofLj9lQjWAFL 0sXrxyQ9r9r2nCP2jAwSXVFsj9b2gdu+0kbaerbffFeenPqhIAQALDNctlP3Xw== 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=1745958577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wKhJ7/snp/YazPv6nKpyfei5daBUnG6Et0dvvlmab9Y=; b=vKrMwIHv2qQ8JPGZRfTq5jvUspbKsMPmULYE1Tq/szX5QIBI3eUM5jvCOCudXWG804auCN ZKHr37bpGSSWpCPPDYUJpqC9sJpt+zXQDmfMZKszAkOH3SRwcvu8tWeIrWG9mYH4UUSRqL 5REc5GQgOPank5NV4gKC+ObJ0JJrYn298GJfvD4Tr+DcBikZgnIiammv9SyKEuqUSm9Rro O1RetEMzClOhYEOMoVV8AdEA53fAzCGK0tzn563UKZO7F4NtCUF/NSxAStnAWahrGEvx+W FNrA7e3wDGTuHrXiiNcb0Hv1dHrvpQN0TPm31ySnTKJUAFF1LwBzj16mCIzWMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnBkT2pW6zbqV; Tue, 29 Apr 2025 20:29: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 53TKTbEJ039920; Tue, 29 Apr 2025 20:29:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKTbbj039917; Tue, 29 Apr 2025 20:29:37 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:29:37 GMT Message-Id: <202504292029.53TKTbbj039917@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: a4fcbac5d891 - main - rtlbtfw(8): Fix incorrect chunk index overwrap in rtlbt_load_fwfile() 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: a4fcbac5d891e3909474ffe7ed7064972a1a7577 Auto-Submitted: auto-generated The branch main has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=a4fcbac5d891e3909474ffe7ed7064972a1a7577 commit a4fcbac5d891e3909474ffe7ed7064972a1a7577 Author: Vladimir Kondratyev AuthorDate: 2025-04-29 20:28:53 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-29 20:28:53 +0000 rtlbtfw(8): Fix incorrect chunk index overwrap in rtlbt_load_fwfile() It prevented large (>256 chunks) firmwares from loading. Fixes: 5036d9652a57 ("rtlbtfw: Firmware loader for Realtek 87XX/88XX") Sponsored by: Future Crew, LLC MFC after: 1 week --- usr.sbin/bluetooth/rtlbtfw/rtlbt_hw.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/usr.sbin/bluetooth/rtlbtfw/rtlbt_hw.c b/usr.sbin/bluetooth/rtlbtfw/rtlbt_hw.c index 493358294c07..21f2c3e2804f 100644 --- a/usr.sbin/bluetooth/rtlbtfw/rtlbt_hw.c +++ b/usr.sbin/bluetooth/rtlbtfw/rtlbt_hw.c @@ -189,19 +189,18 @@ rtlbt_load_fwfile(struct libusb_device_handle *hdl, uint8_t *data = fw->buf; int frag_num = fw->len / RTLBT_MAX_CMD_DATA_LEN + 1; int frag_len = RTLBT_MAX_CMD_DATA_LEN; - int i; + int i, j; int ret, transferred; - for (i = 0; i < frag_num; i++) { + for (i = 0, j = 0; i < frag_num; i++, j++) { rtlbt_debug("download fw (%d/%d)", i + 1, frag_num); memset(cmd_buf, 0, sizeof(cmd_buf)); cmd->opcode = htole16(0xfc20); - if (i > 0x7f) - dl_cmd->index = (i & 0x7f) + 1; - else - dl_cmd->index = i; + if (j > 0x7f) + j = 1; + dl_cmd->index = j; if (i == (frag_num - 1)) { dl_cmd->index |= 0x80; /* data end */ From nobody Tue Apr 29 23:26:33 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 4ZnGff0lRFz5vhbn; Tue, 29 Apr 2025 23:26: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 4ZnGfd5WSyz3rlT; Tue, 29 Apr 2025 23:26:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745969193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ny4bolHRcbAbblUX/PLKzpqjjjTIrLAmq/j7Zu9krno=; b=jfxYeHuu0MgpLDjtFzeTXu30AsY80mH9hlrap2piQvtVujrPzvu7xnB1IBMcHaIK5sFMQB Jd5QAihKcZuzsk9N3uOKXleDCvtvlU6fMKvQRKrwx1AOd94uyj3rVK7u3SZa5pwtKdZLvz 2VQUfJx/KA/h+AXfktZzsxbVCqWJohCkigsH1pydlfR3KTUYH5y4cyelnwSYp7q1070c// 88kXrzIPOlVq0RnPvsNQCyo9ZEfr38nUK8Ix37/g2td+o0kogx/JtgfT2rhwYnmsWSzbTG M640yQOdhL8u8EDaBD3pNDMa03Q/2nZXYfKSiAzISo5ygZkw27ooB+UCMC+ENg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745969193; a=rsa-sha256; cv=none; b=re1SgGE3RNm+a5w7ZuJze4tHTqq0v7g3AzctsTxaOe/VaX4zDthXmJlW8kRuGLAtzEY2YI Dm7UYgA+vojX0QerUbDY+cd7lnxUM5FnvQhLPdtNKgWQWp61qo0R8J50wn1So3YGjfzfY4 BoFyDRK7QMull+FyKSHxi1J6HXWu/nRZ5bx/dz4v0UDbSG2+7mKJApy1bd1BmtHk1RbpAS Vw3FctxhxceiGewAPTtUGO+U9/mTPUjJYThxOV7RrVvZiAbPhFEx4UseU7WQGRgmrpIBHg P0KwwqDAc2TuH8vwgYCWmYcc4fprpbwd93XcLdh/BalP7i1Kmd4eB+d4jzZucQ== 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=1745969193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ny4bolHRcbAbblUX/PLKzpqjjjTIrLAmq/j7Zu9krno=; b=wWy4i2XXr/RITk3R+1CnDPZQ+zetNHVzS6TYX92xM7KoYF+tC5ShxesG+0Kk/eUmae2bIu ZjYKGf4LxkPPt+ZEh4gcjh4diLW85xdJPWB/comN5mwcZuAFi6mzHwTemiKtE4GcWtlxkF CSVCGev/J4SPjG2XNTmLWkDuqih3P8fwtIxYOuQOqp9Ualf59+trIpHz1J2jowcdSY4s11 bJP00Ul9fyXFDqK/OoEGMP4xFa1jOLqnkdpP8z2yr3Cl1glFeaokd0WrMePl7AGbmqr5Qy nbWh7r5PClgLQwD1uWZ685f2wFQh05wppkFeYD8dhu4ylEXo+DdVo63cy8XWvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnGfd4fFSzhp2; Tue, 29 Apr 2025 23:26: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 53TNQXws075608; Tue, 29 Apr 2025 23:26:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TNQXqW075605; Tue, 29 Apr 2025 23:26:33 GMT (envelope-from git) Date: Tue, 29 Apr 2025 23:26:33 GMT Message-Id: <202504292326.53TNQXqW075605@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alan Somers Subject: git: d5e3cf41e894 - main - fusefs: Upgrade FUSE protocol to version 7.33. 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: asomers X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d5e3cf41e89400e75da87aad0cc9bde108e2573b Auto-Submitted: auto-generated The branch main has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=d5e3cf41e89400e75da87aad0cc9bde108e2573b commit d5e3cf41e89400e75da87aad0cc9bde108e2573b Author: Claudiu I. Palincas AuthorDate: 2025-02-03 15:50:09 +0000 Commit: Alan Somers CommitDate: 2025-04-29 22:03:32 +0000 fusefs: Upgrade FUSE protocol to version 7.33. This commit upgrades the FUSE API to protocol 7.33, it doesn't implement any of protocol 7.33's new features, setxattr is tested for binary compatibility with protocol version 7.32. Update sys/fs/fuse/fuse_vnops.c Reviewed by: Alan Somers Pull Request: https://github.com/freebsd/freebsd-src/pull/1681 --- sys/fs/fuse/fuse_kernel.h | 47 ++++++++++++++++++++++++++++++++++++------- sys/fs/fuse/fuse_vnops.c | 16 ++++++++++++--- tests/sys/fs/fusefs/xattr.cc | 48 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+), 10 deletions(-) diff --git a/sys/fs/fuse/fuse_kernel.h b/sys/fs/fuse/fuse_kernel.h index 14d5508ba3fa..c95caf898ad8 100644 --- a/sys/fs/fuse/fuse_kernel.h +++ b/sys/fs/fuse/fuse_kernel.h @@ -176,6 +176,12 @@ * * 7.32 * - add flags to fuse_attr, add FUSE_ATTR_SUBMOUNT, add FUSE_SUBMOUNTS + * + * 7.33 + * - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID + * - add FUSE_OPEN_KILL_SUIDGID + * - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT + * - add FUSE_SETXATTR_ACL_KILL_SGID */ #ifndef _FUSE_FUSE_KERNEL_H @@ -211,7 +217,7 @@ #define FUSE_KERNEL_VERSION 7 /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 32 +#define FUSE_KERNEL_MINOR_VERSION 33 /** The node ID of the root inode */ #define FUSE_ROOT_ID 1 @@ -272,6 +278,7 @@ struct fuse_file_lock { #define FATTR_MTIME_NOW (1 << 8) #define FATTR_LOCKOWNER (1 << 9) #define FATTR_CTIME (1 << 10) +#define FATTR_KILL_SUIDGID (1 << 11) /** * Flags returned by the OPEN request @@ -321,6 +328,12 @@ struct fuse_file_lock { * foffset and moffset fields in struct * fuse_setupmapping_out and fuse_removemapping_one. * FUSE_SUBMOUNTS: kernel supports auto-mounting directory submounts + * FUSE_HANDLE_KILLPRIV_V2: fs kills suid/sgid/cap on write/chown/trunc. + * Upon write/truncate suid/sgid is only killed if caller + * does not have CAP_FSETID. Additionally upon + * write/truncate sgid is killed only if file has group + * execute permission. (Same as Linux VFS behavior). + * FUSE_SETXATTR_EXT: Server supports extended struct fuse_setxattr_in */ #define FUSE_ASYNC_READ (1 << 0) #define FUSE_POSIX_LOCKS (1 << 1) @@ -350,6 +363,8 @@ struct fuse_file_lock { #define FUSE_EXPLICIT_INVAL_DATA (1 << 25) #define FUSE_MAP_ALIGNMENT (1 << 26) #define FUSE_SUBMOUNTS (1 << 27) +#define FUSE_HANDLE_KILLPRIV_V2 (1 << 28) +#define FUSE_SETXATTR_EXT (1 << 29) #ifdef linux /** @@ -381,11 +396,14 @@ struct fuse_file_lock { * * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed * FUSE_WRITE_LOCKOWNER: lock_owner field is valid - * FUSE_WRITE_KILL_PRIV: kill suid and sgid bits + * FUSE_WRITE_KILL_SUIDGID: kill suid and sgid bits */ #define FUSE_WRITE_CACHE (1 << 0) #define FUSE_WRITE_LOCKOWNER (1 << 1) -#define FUSE_WRITE_KILL_PRIV (1 << 2) +#define FUSE_WRITE_KILL_SUIDGID (1 << 2) + +/* Obsolete alias; this flag implies killing suid/sgid only. */ +#define FUSE_WRITE_KILL_PRIV FUSE_WRITE_KILL_SUIDGID /** * Read flags @@ -440,6 +458,18 @@ struct fuse_file_lock { */ #define FUSE_ATTR_SUBMOUNT (1 << 0) +/** + * Open flags + * FUSE_OPEN_KILL_SUIDGID: Kill suid and sgid if executable + */ +#define FUSE_OPEN_KILL_SUIDGID (1 << 0) + +/** + * setxattr flags + * FUSE_SETXATTR_ACL_KILL_SGID: Clear SGID when system.posix_acl_access is set + */ +#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0) + enum fuse_opcode { FUSE_LOOKUP = 1, FUSE_FORGET = 2, /* no reply */ @@ -602,14 +632,14 @@ struct fuse_setattr_in { struct fuse_open_in { uint32_t flags; - uint32_t unused; + uint32_t open_flags; /* FUSE_OPEN_... */ }; struct fuse_create_in { uint32_t flags; uint32_t mode; uint32_t umask; - uint32_t padding; + uint32_t open_flags; /* FUSE_OPEN_... */ }; struct fuse_open_out { @@ -671,9 +701,13 @@ struct fuse_fsync_in { uint32_t padding; }; +#define FUSE_COMPAT_SETXATTR_IN_SIZE 8 + struct fuse_setxattr_in { uint32_t size; uint32_t flags; + uint32_t setxattr_flags; + uint32_t padding; }; struct fuse_listxattr_in { @@ -928,7 +962,6 @@ struct fuse_copy_file_range_in { uint64_t flags; }; - #define FUSE_SETUPMAPPING_FLAG_WRITE (1ull << 0) #define FUSE_SETUPMAPPING_FLAG_READ (1ull << 1) struct fuse_setupmapping_in { @@ -957,6 +990,6 @@ struct fuse_removemapping_one { }; #define FUSE_REMOVEMAPPING_MAX_ENTRY \ - (PAGE_SIZE / sizeof(struct fuse_removemapping_one)) + (PAGE_SIZE / sizeof(struct fuse_removemapping_one)) #endif /* _FUSE_FUSE_KERNEL_H */ diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 9c858d6c467d..016b634c4fa0 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2704,6 +2704,7 @@ fuse_vnop_setextattr(struct vop_setextattr_args *ap) struct mount *mp = vnode_mount(vp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; + size_t struct_size = FUSE_COMPAT_SETXATTR_IN_SIZE; char *prefix; size_t len; char *attr_str; @@ -2744,17 +2745,26 @@ fuse_vnop_setextattr(struct vop_setextattr_args *ap) len = strlen(prefix) + sizeof(extattr_namespace_separator) + strlen(ap->a_name) + 1; - fdisp_init(&fdi, len + sizeof(*set_xattr_in) + uio->uio_resid); + /* older FUSE servers use a smaller fuse_setxattr_in struct*/ + if (fuse_libabi_geq(fuse_get_mpdata(mp), 7, 33)) + struct_size = sizeof(*set_xattr_in); + + fdisp_init(&fdi, len + struct_size + uio->uio_resid); fdisp_make_vp(&fdi, FUSE_SETXATTR, vp, td, cred); set_xattr_in = fdi.indata; set_xattr_in->size = uio->uio_resid; - attr_str = (char *)fdi.indata + sizeof(*set_xattr_in); + if (fuse_libabi_geq(fuse_get_mpdata(mp), 7, 33)) { + set_xattr_in->setxattr_flags = 0; + set_xattr_in->padding = 0; + } + + attr_str = (char *)fdi.indata + struct_size; snprintf(attr_str, len, "%s%c%s", prefix, extattr_namespace_separator, ap->a_name); - err = uiomove((char *)fdi.indata + sizeof(*set_xattr_in) + len, + err = uiomove((char *)fdi.indata + struct_size + len, uio->uio_resid, uio); if (err != 0) { goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index 0cd2783551b4..0ab203c96254 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -110,6 +110,8 @@ void expect_setxattr(uint64_t ino, const char *attr, const char *value, const char *v = a + strlen(a) + 1; return (in.header.opcode == FUSE_SETXATTR && in.header.nodeid == ino && + in.body.setxattr.size == (strlen(value) + 1) && + in.body.setxattr.setxattr_flags == 0 && 0 == strcmp(attr, a) && 0 == strcmp(value, v)); }, Eq(true)), @@ -119,6 +121,33 @@ void expect_setxattr(uint64_t ino, const char *attr, const char *value, }; +class Xattr_7_32:public FuseTest { +public: +virtual void SetUp() +{ + m_kernel_minor_version = 32; + FuseTest::SetUp(); +} + +void expect_setxattr_7_32(uint64_t ino, const char *attr, const char *value, + ProcessMockerT r) +{ + EXPECT_CALL(*m_mock, process( + ResultOf([=](auto in) { + const char *a = (const char *)in.body.bytes + + FUSE_COMPAT_SETXATTR_IN_SIZE; + const char *v = a + strlen(a) + 1; + return (in.header.opcode == FUSE_SETXATTR && + in.header.nodeid == ino && + in.body.setxattr.size == (strlen(value) + 1) && + 0 == strcmp(attr, a) && + 0 == strcmp(value, v)); + }, Eq(true)), + _) + ).WillOnce(Invoke(r)); +} +}; + class Getxattr: public Xattr {}; class Listxattr: public Xattr {}; @@ -153,6 +182,7 @@ void TearDown() { class Removexattr: public Xattr {}; class Setxattr: public Xattr {}; +class Setxattr_7_32:public Xattr_7_32 {}; class RofsXattr: public Xattr { public: virtual void SetUp() { @@ -728,6 +758,7 @@ TEST_F(Removexattr, system) << strerror(errno); } + /* * If the filesystem returns ENOSYS, then it will be treated as a permanent * failure and all future VOP_SETEXTATTR calls will fail with EOPNOTSUPP @@ -815,6 +846,23 @@ TEST_F(Setxattr, system) ASSERT_EQ(value_len, r) << strerror(errno); } + +TEST_F(Setxattr_7_32, ok) +{ + uint64_t ino = 42; + const char value[] = "whatever"; + ssize_t value_len = strlen(value) + 1; + int ns = EXTATTR_NAMESPACE_USER; + ssize_t r; + + expect_lookup(RELPATH, ino, S_IFREG | 0644, 0, 1); + expect_setxattr_7_32(ino, "user.foo", value, ReturnErrno(0)); + + r = extattr_set_file(FULLPATH, ns, "foo", (const void *)value, + value_len); + ASSERT_EQ(value_len, r) << strerror(errno); +} + TEST_F(RofsXattr, deleteextattr_erofs) { uint64_t ino = 42; From nobody Wed Apr 30 01:01:02 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 4ZnJlf3fjrz5vpDm; Wed, 30 Apr 2025 01:01: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 4ZnJlf1T31z3t4D; Wed, 30 Apr 2025 01:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745974862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GQ8EH3cNtppOMvLmj03D/MjzVnv+h97U02GYJyfq+cw=; b=kBhwAIaX05+CKk3q+XPKeX1tSzd4gXxc1Ljbfn8KSyubmqq7PzDWHI/+0g6YaCOP13dw+I s84nsvJu1JZVJXmy1+AZZZjcMoKu/C0IKI7vwrVwZc+QBGQSUFOE7OTwf6kyy61nvrj9bm 7lRpCyMKTHc0msjHUSI9eJJ7SD+vmJBE2eSJQ20vAWKf4B/vANWH/v8krN4XEJr+DIVRca f2bV+rWj+mleLV3FTz2370EFxSxGnWXczLPgpWkr3JXu/d9BnrHa3TgJ8G2j9QV/5bQ31R bmdW5ZqL4WV17stMtFhME+qi5nE2xg+kuV5JbfOiaUeUjE3nWed5hvxnU3Y1pw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745974862; a=rsa-sha256; cv=none; b=Xv8feb8iqdkl+0adSwLyxNuSBfUMXT72YZGefYszovNDv8zghRglyt6inTRAgTs1e928sh 11u+GCm4Qwe63vw1d4wf4OBmoM0cmEQZYK88y3H6uyz8f3C5qKsge2ljloqLrWsPfVnDm/ fapm4LD6EISdJiQSkPsV/nhz9u6Nz2dblLi/P2iFtCbmxnHXoKnL0zEwduTwGvLiEy8q28 jq0g6Y8CZRoaqcc14c8Wy7gVxZkOACW956u1idESZa8s/nIABVNN71GlPgkWEPwwifuBS0 GIJCSP9a77VflA+77VGxnSh+tvPYjItNdnfJ3VsIFkhN7Aw1GU/+ANNRlXpZ/A== 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=1745974862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GQ8EH3cNtppOMvLmj03D/MjzVnv+h97U02GYJyfq+cw=; b=ZovPlfHPWpFsFzvyslp4F5a/uqjh2Tz2ERmgPQzMd12CUnuk6lXp7kpRYfUMJ2Sd9il7K6 Rqu66B1rOLcPi+ITw3EpFuYEv9WKKq4mkEQDLMhgwOxeJpDY7QhiUCy/xK7lOGvfgSQUiC /vXCiAKNddtZWLqAU2DTo3yYHHiIgHtxHtgD2mluOoIbitcxEfkjdEpTLrrtpTetchr+Oj 0mp96l/MTiiXEhyAC7cCydL4ZIXaax14RAB70q4DQoGJN08/+sKhQsRF5kZ1fFOkZwFPHx NnuaUImybGNQX/K4IpqBxaATHDNa18UnaY9khnZccdQxDC7KBE4JSFm3+5wmcQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnJlf13lHzl9S; Wed, 30 Apr 2025 01:01: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 53U112KX053509; Wed, 30 Apr 2025 01:01:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U112aW053506; Wed, 30 Apr 2025 01:01:02 GMT (envelope-from git) Date: Wed, 30 Apr 2025 01:01:02 GMT Message-Id: <202504300101.53U112aW053506@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: be61deae0aa2 - main - pkg: clarify argument parsing 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: be61deae0aa2923bb9908fc5b37b35712603e622 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=be61deae0aa2923bb9908fc5b37b35712603e622 commit be61deae0aa2923bb9908fc5b37b35712603e622 Author: Isaac Freund AuthorDate: 2025-04-23 10:27:35 +0000 Commit: Ed Maste CommitDate: 2025-04-30 01:00:17 +0000 pkg: clarify argument parsing Currently pkg parses all arguments and subcommands in a single getopt_long() loop. This results in quite a bit of accidental complexity, especially around the -r option for the bootstrap and add subcommands. This also results in the undocumented behavior of all options understood by pkg(7) being accepted anywhere in the argument list regardless of their position. This contradicts the behavior of pkg(8) and I find it quite unexpected. This patch splits the argument parsing done by pkg(7) into two phases for global options and subcommand options. This gives behavior that matches pkg(8), accepting the subset of pkg(8) options supported by pkg(7) in the exact same positions that pkg(8) accepts them. This is however a somewhat breaking change, as options are no longer accepted by pkg(7) in places they are rejected by pkg(8). For example, `pkg -f bootstrap` no longer works, only `pkg bootstrap -f`. The original motivation for writing this patch was investigating support for --rootdir in pkg(7). Since pkg(8) uses -r as the short form for both --rootdir and --repository depending on the position, I decided that pkg(7) needed to be brought inline with pkg(8)'s argument parsing behavior to avoid confusion. This patch also gets rid of args_add_message (unused since 40b9f924b1) Relnotes: yes Reviewed by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49977 --- usr.sbin/pkg/pkg.7 | 5 +- usr.sbin/pkg/pkg.c | 174 ++++++++++++++++++++++++++--------------------------- 2 files changed, 87 insertions(+), 92 deletions(-) diff --git a/usr.sbin/pkg/pkg.7 b/usr.sbin/pkg/pkg.7 index 467f62d5747b..d2246f74a3fc 100644 --- a/usr.sbin/pkg/pkg.7 +++ b/usr.sbin/pkg/pkg.7 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 30, 2025 +.Dd April 29, 2025 .Dt PKG 7 .Os .Sh NAME @@ -33,8 +33,9 @@ .Op Fl d .Ar command ... .Nm +.Op Fl d .Cm add -.Op Fl dfy +.Op Fl fy .Op Fl r Ar reponame .Ar pkg.pkg .Nm diff --git a/usr.sbin/pkg/pkg.c b/usr.sbin/pkg/pkg.c index 92fdbf0ebff8..b62eecfc6dce 100644 --- a/usr.sbin/pkg/pkg.c +++ b/usr.sbin/pkg/pkg.c @@ -942,10 +942,6 @@ static const char args_bootstrap_message[] = "Too many arguments\n" "Usage: pkg [-4|-6] bootstrap [-f] [-y]\n"; -static const char args_add_message[] = -"Too many arguments\n" -"Usage: pkg add [-f] [-y] {pkg.pkg}\n"; - static int pkg_query_yes_no(void) { @@ -1072,137 +1068,138 @@ int main(int argc, char *argv[]) { char pkgpath[MAXPATHLEN]; + char **original_argv; const char *pkgarg, *repo_name; bool activation_test, add_pkg, bootstrap_only, force, yes; signed char ch; const char *fetchOpts; - char *command; struct repositories *repositories; activation_test = false; add_pkg = false; bootstrap_only = false; - command = NULL; fetchOpts = ""; force = false; + original_argv = argv; pkgarg = NULL; repo_name = NULL; yes = false; struct option longopts[] = { { "debug", no_argument, NULL, 'd' }, - { "force", no_argument, NULL, 'f' }, { "only-ipv4", no_argument, NULL, '4' }, { "only-ipv6", no_argument, NULL, '6' }, - { "yes", no_argument, NULL, 'y' }, { NULL, 0, NULL, 0 }, }; snprintf(pkgpath, MAXPATHLEN, "%s/sbin/pkg", getlocalbase()); - while ((ch = getopt_long(argc, argv, "-:dfr::yN46", longopts, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "+:dN46", longopts, NULL)) != -1) { switch (ch) { case 'd': debug++; break; - case 'f': - force = true; - break; case 'N': activation_test = true; break; - case 'y': - yes = true; - break; case '4': fetchOpts = "4"; break; case '6': fetchOpts = "6"; break; - case 'r': - /* - * The repository can only be specified for an explicit - * bootstrap request at this time, so that we don't - * confuse the user if they're trying to use a verb that - * has some other conflicting meaning but we need to - * bootstrap. - * - * For that reason, we specify that -r has an optional - * argument above and process the next index ourselves. - * This is mostly significant because getopt(3) will - * otherwise eat the next argument, which could be - * something we need to try and make sense of. - * - * At worst this gets us false positives that we ignore - * in other contexts, and we have to do a little fudging - * in order to support separating -r from the reponame - * with a space since it's not actually optional in - * the bootstrap/add sense. - */ - if (add_pkg || bootstrap_only) { - if (optarg != NULL) { - repo_name = optarg; - } else if (optind < argc) { - repo_name = argv[optind]; - } + default: + break; + } + } + if (debug > 1) + fetchDebug = 1; - if (repo_name == NULL || *repo_name == '\0') { - fprintf(stderr, - "Must specify a repository with -r!\n"); - exit(EXIT_FAILURE); - } + argc -= optind; + argv += optind; + + if (argc >= 1) { + if (strcmp(argv[0], "bootstrap") == 0) { + bootstrap_only = true; + } else if (strcmp(argv[0], "add") == 0) { + add_pkg = true; + } - if (optarg == NULL) { - /* Advance past repo name. */ - optreset = 1; - optind++; + optreset = 1; + optind = 1; + if (bootstrap_only || add_pkg) { + struct option sub_longopts[] = { + { "force", no_argument, NULL, 'f' }, + { "yes", no_argument, NULL, 'y' }, + { NULL, 0, NULL, 0 }, + }; + while ((ch = getopt_long(argc, argv, "+:fr:y", + sub_longopts, NULL)) != -1) { + switch (ch) { + case 'f': + force = true; + break; + case 'r': + repo_name = optarg; + break; + case 'y': + yes = true; + break; + case ':': + fprintf(stderr, "Option -%c requires an argument\n", optopt); + exit(EXIT_FAILURE); + break; + default: + break; } } - break; - case 1: - // Non-option arguments, first one is the command - if (command == NULL) { - command = argv[optind-1]; - if (strcmp(command, "add") == 0) { - add_pkg = true; - } - else if (strcmp(command, "bootstrap") == 0) { - bootstrap_only = true; + } else { + /* + * Parse -y and --yes regardless of the pkg subcommand + * specified. This is necessary to make, for example, + * `pkg install -y foobar` work as expected when pkg is + * not yet bootstrapped. + */ + struct option sub_longopts[] = { + { "yes", no_argument, NULL, 'y' }, + { NULL, 0, NULL, 0 }, + }; + while ((ch = getopt_long(argc, argv, "+y", + sub_longopts, NULL)) != -1) { + switch (ch) { + case 'y': + yes = true; + break; + default: + break; } } - // bootstrap doesn't accept other arguments - else if (bootstrap_only) { - fprintf(stderr, args_bootstrap_message); + + } + argc -= optind; + argv += optind; + + if (bootstrap_only && argc > 0) { + fprintf(stderr, args_bootstrap_message); + exit(EXIT_FAILURE); + } + + if (add_pkg) { + if (argc < 1) { + fprintf(stderr, "Path to pkg.pkg required\n"); exit(EXIT_FAILURE); - } - else if (add_pkg && pkgarg != NULL) { + } else if (argc == 1 && pkg_is_pkg_pkg(argv[0])) { + pkgarg = argv[0]; + } else { /* - * Additional arguments also means it's not a - * local bootstrap request. + * If the target package is not pkg.pkg + * or there is more than one target package, + * this is not a local bootstrap request. */ add_pkg = false; } - else if (add_pkg) { - /* - * If it's not a request for pkg or pkg-devel, - * then we must assume they were trying to - * install some other local package and we - * should try to bootstrap from the repo. - */ - if (!pkg_is_pkg_pkg(argv[optind-1])) { - add_pkg = false; - } else { - pkgarg = argv[optind-1]; - } - } - break; - default: - break; } } - if (debug > 1) - fetchDebug = 1; if ((bootstrap_only && force) || access(pkgpath, X_OK) == -1) { struct repository *repo; @@ -1218,10 +1215,7 @@ main(int argc, char *argv[]) config_init(repo_name); if (add_pkg) { - if (pkgarg == NULL) { - fprintf(stderr, "Path to pkg.pkg required\n"); - exit(EXIT_FAILURE); - } + assert(pkgarg != NULL); if (access(pkgarg, R_OK) == -1) { fprintf(stderr, "No such file: %s\n", pkgarg); exit(EXIT_FAILURE); @@ -1263,7 +1257,7 @@ main(int argc, char *argv[]) exit(EXIT_SUCCESS); } - execv(pkgpath, argv); + execv(pkgpath, original_argv); /* NOT REACHED */ return (EXIT_FAILURE); From nobody Wed Apr 30 04:58:33 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 4ZnQ1p1pbzz5tqx4; Wed, 30 Apr 2025 04:58:38 +0000 (UTC) (envelope-from philip@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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnQ1p0GHMz3GTV; Wed, 30 Apr 2025 04:58:38 +0000 (UTC) (envelope-from philip@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745989118; 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=I42qQ7xidk17zfKTPkEJW/Gru1rLKLn85hcaYwYXAXM=; b=FTbCaM2zryAkMsrxjbSVan2bcJ9poqBKLmVz13vNqo9E7xk0INlUsMd+STyAzO1mTWrhGC +8ne/XqvZQcEgRTLvfYEQmUBuGYpM5gt+5KqE7koRp/RlarRdDe4r7gavOHptXH64XU8MO DaRwlut5cxhGfU5bF/Tqgqx0wEckrKLN9F0UAdkPhZ4ZWbsDVjH55XuN8HAQdmt1liFv6U 1UpaJMvKVe3fyCYx4yn+U8tx8DqfOWVhzOdMMpd0vyh5xEfNX1scRXsR2yvCvaRWkeHi78 m/8wYUa2v4rklRrWgkD8pmNggRYEwmKfqni6qGXeLtOPSVNXYRBTJmDjQ1zdkA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745989118; a=rsa-sha256; cv=none; b=du2YJdgvSNIrfdSIYQmhg02PRWUjAPDPYT/ZO7EGPK3tKb4HCpR5IjiZmm5Tb7IBW9JvaK wNCB6IGh54+zOpzpEi37NEltJRUO2v1Bjg9HJtdKk6pIIGgbsc1hjNZlj9fsxEKrYoxpJT BW9MdJaTb2JHRPuHCuXLpHupxlWGceBL4RUWFtzNwvtocNzx2EwS9MWgqVzfxXt0hrMazR 8+rcu///7WO9yEYkT5hRhMlE+SEMGGmA7h/CwRzh9vSnUAdzdDbefK/+CTT/K5dE+XCi/X pWFPul8Wj3epR+rYj7NbMsbSsENPnRMn+jMpQz/xWYD1Sr6xA+NcFbT9n/VUtw== 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=1745989118; 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=I42qQ7xidk17zfKTPkEJW/Gru1rLKLn85hcaYwYXAXM=; b=brus/47N52lARyO68lwy7er1zk4MGcbyJQ691ybOcp2Si8mJ2z4u4AJtxT0RlQZTr5E8NK JzX3wYV/jPm4Ob3133Sc+50rkyqHUcMkkMuLIY3dIwpyjHdhlm+mhAi5zfXNNb/W7Rkfvk kkaPQNaDppjRHRS11zjgbLXqHgXxVRDh8tjwJsbbeRHfnxTfjAJLVObmHssq5P1Zfa5czz qPsb7SaEJoImRJPiJnE25yXbnuOEFdnsrMB7bx72IsNG26wUqGB8B9bvfOQLHJalvh6oqT GMhYOhry92JjaDomXi8+C9c/Hj4O1wAxUZzBG/tyLA8Yvekd0LTwcNumPFVoXg== Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com [103.168.172.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: philip/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4ZnQ1n6NN6zx01; Wed, 30 Apr 2025 04:58:37 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id 29BB01200043; Wed, 30 Apr 2025 00:58:37 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Wed, 30 Apr 2025 00:58:37 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvieehkedtucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffokfgjfhggtgfgsehtqhhmtder tddtnecuhfhrohhmpefrhhhilhhiphcurfgrvghpshcuoehphhhilhhiphesfhhrvggvsg hsugdrohhrgheqnecuggftrfgrthhtvghrnhepjedukeffgfffkeejfffgfefgledthefh ffeggeevgeevhedvheegtdduvdetkeeinecuffhomhgrihhnpehfrhgvvggsshgurdhorh hgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhh ihhlihhpodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdduudeiiedviedvge ekqddvfeehudektddtkedqphhhihhlihhppeepfhhrvggvsghsugdrohhrghesthhrohhu sghlvgdrihhspdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtph htthhopegvmhgrshhtvgesfhhrvggvsghsugdrohhrghdprhgtphhtthhopehsrhgtqdgt ohhmmhhithhtvghrshesfhhrvggvsghsugdrohhrghdprhgtphhtthhopeguvghvqdgtoh hmmhhithhsqdhsrhgtqdgrlhhlsehfrhgvvggsshgurdhorhhgpdhrtghpthhtohepuggv vhdqtghomhhmihhtshdqshhrtgdqmhgrihhnsehfrhgvvggsshgurdhorhhg X-ME-Proxy: Feedback-ID: ia691475d:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 30 Apr 2025 00:58:35 -0400 (EDT) From: Philip Paeps To: Ed Maste Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 91506dba7f2e - main - zoneinfo: also install tzdata.zi and version Date: Wed, 30 Apr 2025 12:58:33 +0800 X-Mailer: MailMate (2.0r6245) Message-ID: In-Reply-To: References: <202504010810.5318A96d073963@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; format=flowed Content-Transfer-Encoding: quoted-printable On 2025-04-30 02:44:46 (+0800), Ed Maste wrote: > On Tue, 1 Apr 2025 at 04:10, Philip Paeps wrote: >> The branch main has been updated by philip: >> >> URL: = >> https://cgit.FreeBSD.org/src/commit/?id=3D91506dba7f2eb147eeb55ec30640= bc11755a1e8e >> >> commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e >> Author: Philip Paeps >> AuthorDate: 2025-04-01 08:09:37 +0000 >> Commit: Philip Paeps >> CommitDate: 2025-04-01 08:09:37 +0000 >> >> zoneinfo: also install tzdata.zi and version >> >> Build and install the shrunk version of the time zone database = >> required >> by libc++ 19 std::chrono::current_zone (etc). While here, also = >> install >> the tzdata 'version' file to align more closely with other = >> vendors. >> >> PR: 282377 >> Reviewed by: dim, emaste, imp >> Differential Revision: https://reviews.freebsd.org/D49577 > > Do you plan to MFC this to stable/14 for 14.3 as well? I was not planning to MFC this change. Does libc++ in stable/14 need this support? Philip From nobody Wed Apr 30 06:01:12 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 4ZnRQ04X37z5tvLp; Wed, 30 Apr 2025 06:01: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 4ZnRQ01z0gz3lSD; Wed, 30 Apr 2025 06:01:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745992872; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mcnVavJHLuGVBYo6Ycy1unEybr0NDHxpIdFMQCAdwE8=; b=o4L9+G43tDZkK4M0MUqpvnwIzmbCuoAq1HCl9zgxhHeoIWPzRmdfjjiB5ge1UKpAJV4x53 U3P43EVre90DNudbBTRHNqQLyoht7i5ImaQf/Gps5CuO2XefDAi8AbltVVSi66o0T7Hea3 K657+EqJC7jxOvjJplzkL/uzxtTSLhwhtkFSvkbTFDaDibbDzycLrpWiyaA63pb5BMiGAU OLjO5kmW5rF0O64Iy4QPkRxlTGzQRtcEyBV68V0D5/sk7b3hV3wQSzrxR899/AJeLrnBBW 4KWfo3terM1rBPQzbG2aC36g3O42ujjxb6N5pGpk49hqOgCdMzDBNZB4+onfRg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745992872; a=rsa-sha256; cv=none; b=CU6mZ9Sn7oFuD2twaMDOTQULymHyHQRIJnVvKTtJ+ORNUZrex7VTbQg4G9yc9hVNyZ+aEX Tvw4Gc7qrIKQv/i57MSOdmmjEHum6xEvZmuxSeb/kilOxiwibWWDxWBqNah0BRkEW26S/n /6k2tTu+rPV+jy6eDNjIzHAH2LjjvlINq2JKDldoBUOewK5aKHMT6uuVcdZ8jJQNs3dBFr /VnuzGPEehh3427uiFYGX77qTgxqUhxQaQH32XFvZCd88wG3v7oaTi9UisHrM6DRcVCid0 /H4batPn5WtfX1Wp/Qh2cZCfxfwZSH8fxeWN4yw9u+/TqNBZHYfg49sl+pHOEQ== 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=1745992872; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mcnVavJHLuGVBYo6Ycy1unEybr0NDHxpIdFMQCAdwE8=; b=JbgCgPodH1h+kF7Q0Dwcy8NvtDRkFUCIFWIBkkIrkikSnaiC49vOZz9Q9EqDCwaL3vjrSJ cs14n9jQb2MQJNHTHP0/yiVyiQUZoASMAHBJ2ce0DINMv6LtRxn4MmkUyiOY/AW+Qd58tp fAh9003APPPYbEJwF2b2maTZXTcYCyzJ0HG9VSVpF1pjX3xKZRtY1U2QAA1/R2zi3ooA95 VtQmo1yFjDrGFRyCjEBI9prX/RgL3ctE7rM0HR+8/ME2PpjcKakuejF38XNpJemBaqbrKX jADsRtFjtLvUyamWIW4xsQiHr7x/qTb80emOilMMz1T6npXXp0700L9IeXNMIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnRQ01KnSztfM; Wed, 30 Apr 2025 06:01:12 +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 53U61C79017696; Wed, 30 Apr 2025 06:01:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U61Cap017679; Wed, 30 Apr 2025 06:01:12 GMT (envelope-from git) Date: Wed, 30 Apr 2025 06:01:12 GMT Message-Id: <202504300601.53U61Cap017679@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 2e891fce9de5 - main - mbufs: let mc_get() and mc_uiotomc() return a consistent mc when failed 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2e891fce9de5f7b1521060916082e1a38ba8920d Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=2e891fce9de5f7b1521060916082e1a38ba8920d commit 2e891fce9de5f7b1521060916082e1a38ba8920d Author: Gleb Smirnoff AuthorDate: 2025-04-30 05:31:41 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 05:31:41 +0000 mbufs: let mc_get() and mc_uiotomc() return a consistent mc when failed This was a documented behavior when functions were introduced, but on second thought it seems easier to do extra work in the leaf functions, instead of putting the burden on KPI users, even if some of the KPI users may not care about consistency. --- sys/kern/kern_mbuf.c | 6 +++--- sys/kern/uipc_mbuf.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/kern_mbuf.c b/sys/kern/kern_mbuf.c index 2b2b032e644c..48886c1e5b0c 100644 --- a/sys/kern/kern_mbuf.c +++ b/sys/kern/kern_mbuf.c @@ -1462,8 +1462,7 @@ m_getjcl(int how, short type, int flags, int size) /* * Allocate mchain of a given length of mbufs and/or clusters (whatever fits - * best). May fail due to ENOMEM. In case of failure state of mchain is - * inconsistent. + * best). May fail due to ENOMEM. */ int mc_get(struct mchain *mc, u_int length, int how, short type, int flags) @@ -1501,8 +1500,9 @@ mc_get(struct mchain *mc, u_int length, int how, short type, int flags) * Fail the whole operation if one mbuf can't be * allocated. */ - if (mb == NULL) { + if (__predict_false(mb == NULL)) { m_freem(mc_first(mc)); + *mc = MCHAIN_INITIALIZER(mc); return (ENOMEM); } } diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index f3e2f13e89ec..377a36287e3e 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -1986,7 +1986,6 @@ m_uiotombuf(struct uio *uio, int how, int len, int lspace, int flags) /* * Copy the contents of uio into a properly sized mbuf chain. - * In case of failure state of mchain is inconsistent. * @param length Limit copyout length. If 0 entire uio_resid is copied. * @param lspace Provide leading space in the first mbuf in the chain. */ @@ -2032,6 +2031,7 @@ mc_uiotomc(struct mchain *mc, struct uio *uio, u_int length, u_int lspace, error = uiomove(mtod(mb, void *), mlen, uio); if (__predict_false(error)) { mc_freem(mc); + *mc = MCHAIN_INITIALIZER(mc); return (error); } mb->m_len = mlen; From nobody Wed Apr 30 06:01:13 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 4ZnRQ151Z1z5tvJN; Wed, 30 Apr 2025 06:01:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnRQ12fBMz3lQ1; Wed, 30 Apr 2025 06:01:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745992873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lEMMr7Kq8OWlY00VOsKd7yfPYFwgD/XT7BVxFKYoY84=; b=RSHNskfhaiiYqPH2hIZyr0SKBmWTJGYYFCNmvFYNUQruw5BXoA53yQSfeM8BXTJ3CmnTHM QOJpWhEb7IPyPSlGv2Hwi21LZFnRA0XHbgJ2vh0PzeV7xnMH1HoU46KYjp3hVdAd3FXp9D kR1TTseG6JPn2XmYrbvl64xh5pNUUi1o7pG+5drVBmWki8oySW6d9YCFsYNisQeoYU4poA ZlUePLiNoFvCobYw4PQnE3O51segMtF/0UtrCpxxyk1yz34z7pg3FKOCmq2y9XYxu/CfdM a+MRCAkxuNpqgcp/JH9wUUCL/BCVAVMocD35+bAvkqqEe58yYmZZX2iSSbl5Jw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745992873; a=rsa-sha256; cv=none; b=uYZndAqopI3IS6E3HwNVV7jZ/fKr86+1QST3Q7vJ1RSANPLbrpfcd7AiIMxW4GwOKO7iUm 9SL/yr6jyfMNEuejHz4bh2sw3MgESDaRuQj873SJpDFldicaXoLxbSptExf3DwZTutVY27 bJ2YkKE4gmIdmM5LEhnU7IuohA4ArHeFz6STfMhBV6xfOYVxAdgnDdC13u2pyAzcM/9qrl 0tw05An3wYZSaoJ1vDcj81cASfG/sNHEBldP45Ncna4bUlCes+P8rfsUP7OdSMuANDCGsD jEHL4Ip+qJDsx79pehDnbYk0nSGlUXJZRbKc1dsc0mDOVCrPCJMPtgWSSmVSlA== 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=1745992873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lEMMr7Kq8OWlY00VOsKd7yfPYFwgD/XT7BVxFKYoY84=; b=sgiUKeF6f8s1Df0/d6qoyeUDOeQUG4Tc5/LT0e7fVVx0MNw7LFnfx1i9BC2Tf2Bgii0eln UEn4Vcp+Lu8EOB+BitrXh/n87Wq4cjMDTSa3ls0ecfA0Hb3eDzUd1AvX2OR0CLXmZcHeH/ ejV+CXlnJyxyGRBwxuhxxV7IHUkw11Yr7Md1Yxs23B8vJ7bb40hLuGBXOyDQmSz6g7PFVt ommLhVZV4DeAj84LCY0fVyebXL0YN9wKE0KpDuYnoZPzQfmM0a/7pjgCy+jbQoHJ2XRMSf B2/Cietj0cw0CR5PEB7BRqikxoe9cRSXPRa8+L50fXDUQzpz8FxeQ0SRhTC6kQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnRQ129LsztD6; Wed, 30 Apr 2025 06:01:13 +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 53U61DX9017952; Wed, 30 Apr 2025 06:01:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U61DCS017949; Wed, 30 Apr 2025 06:01:13 GMT (envelope-from git) Date: Wed, 30 Apr 2025 06:01:13 GMT Message-Id: <202504300601.53U61DCS017949@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: fe9bf4b9f580 - main - tests/unix_stream: improve writable 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fe9bf4b9f580d718c5fc936ccb2c9feb225b3f22 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=fe9bf4b9f580d718c5fc936ccb2c9feb225b3f22 commit fe9bf4b9f580d718c5fc936ccb2c9feb225b3f22 Author: Gleb Smirnoff AuthorDate: 2025-04-30 05:31:41 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 05:31:41 +0000 tests/unix_stream: improve writable test In addition with non-blocking checks on writability, add blocking once with help of pthread(3). --- tests/sys/kern/Makefile | 1 + tests/sys/kern/unix_stream.c | 165 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 144 insertions(+), 22 deletions(-) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 900c9a5b3bbe..0dc7fcbdd8d7 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -92,6 +92,7 @@ LIBADD.sendfile_helper+= pthread LIBADD.fdgrowtable_test+= util pthread kvm procstat LIBADD.sigwait+= rt LIBADD.ktrace_test+= sysdecode +LIBADD.unix_stream+= pthread NETBSD_ATF_TESTS_C+= lockf_test NETBSD_ATF_TESTS_C+= mqueue_test diff --git a/tests/sys/kern/unix_stream.c b/tests/sys/kern/unix_stream.c index d93bbeff4e41..7aedf462dcce 100644 --- a/tests/sys/kern/unix_stream.c +++ b/tests/sys/kern/unix_stream.c @@ -35,6 +35,8 @@ #include #include #include +#include +#include #include @@ -100,47 +102,73 @@ ATF_TC_BODY(send_0, tc) } static void -check_writable(int fd, int expect) +check_writable_select(int fd, int expect, bool timeout) { fd_set wrfds; - struct pollfd pfd[1]; - struct kevent kev; - int nfds, kq; + int nfds; FD_ZERO(&wrfds); FD_SET(fd, &wrfds); - nfds = select(fd + 1, NULL, &wrfds, NULL, - &(struct timeval){.tv_usec = 1000}); + nfds = select(fd + 1, NULL, &wrfds, NULL, timeout ? + &(struct timeval){.tv_usec = 1000} : NULL); ATF_REQUIRE_MSG(nfds == expect, "select() returns %d errno %d", nfds, errno); +} + +static void +check_writable_poll(int fd, int expect, bool timeout) +{ + struct pollfd pfd[1]; + int nfds; pfd[0] = (struct pollfd){ .fd = fd, .events = POLLOUT | POLLWRNORM, }; - nfds = poll(pfd, 1, 1); + nfds = poll(pfd, 1, timeout ? 1 : INFTIM); ATF_REQUIRE_MSG(nfds == expect, "poll() returns %d errno %d", nfds, errno); +} + +static void +check_writable_kevent(int fd, int expect, bool timeout) +{ + struct kevent kev; + int nfds, kq; ATF_REQUIRE(kq = kqueue()); EV_SET(&kev, fd, EVFILT_WRITE, EV_ADD, 0, 0, NULL); - ATF_REQUIRE(kevent(kq, &kev, 1, NULL, 0, NULL) == 0); - nfds = kevent(kq, NULL, 0, &kev, 1, - &(struct timespec){.tv_nsec = 1000000}); + nfds = kevent(kq, &kev, 1, NULL, 0, NULL); + ATF_REQUIRE_MSG(nfds == 0, + "kevent() returns %d errno %d", nfds, errno); + nfds = kevent(kq, NULL, 0, &kev, 1, timeout ? + &(struct timespec){.tv_nsec = 1000000} : NULL); ATF_REQUIRE_MSG(nfds == expect, - "kevent() returns %d errno %d", nfds, errno); + "kevent() returns %d errno %d", nfds, errno); close(kq); } -/* - * Make sure that a full socket is not reported as writable by event APIs. - */ -ATF_TC_WITHOUT_HEAD(full_not_writable); -ATF_TC_BODY(full_not_writable, tc) +typedef void check_writable_func_t(int, int, bool); +struct check_writable_ctx { + check_writable_func_t *method; + int fd; +}; + +static void * +check_writable_blocking_thread(void *arg) +{ + struct check_writable_ctx *ctx = arg; + + ctx->method(ctx->fd, 1, false); + + return (NULL); +} + +static void +full_socketpair(int *sv) { void *buf; u_long sendspace; - int sv[2]; sendspace = getsendspace(); ATF_REQUIRE((buf = malloc(sendspace)) != NULL); @@ -149,24 +177,117 @@ ATF_TC_BODY(full_not_writable, tc) do {} while (send(sv[0], buf, sendspace, 0) == (ssize_t)sendspace); ATF_REQUIRE(errno == EAGAIN); ATF_REQUIRE(fcntl(sv[0], F_SETFL, 0) != -1); + free(buf); +} + +static void +full_writability_check(int *sv, check_writable_func_t method) +{ + struct check_writable_ctx ctx = { + .method = method, + .fd = sv[0], + }; + pthread_t thr; + void *buf; + u_long space; + + space = getsendspace() / 2; + ATF_REQUIRE((buf = malloc(space)) != NULL); - check_writable(sv[0], 0); + /* First check with timeout, expecting 0 fds returned. */ + method(sv[0], 0, true); - /* Read some data and re-check. */ - ATF_REQUIRE(read(sv[1], buf, sendspace / 2) == (ssize_t)sendspace / 2); + /* Launch blocking thread. */ + ATF_REQUIRE(pthread_create(&thr, NULL, check_writable_blocking_thread, + &ctx) == 0); - check_writable(sv[0], 1); + /* Sleep a bit to make sure that thread is put to sleep. */ + usleep(10000); + ATF_REQUIRE(pthread_peekjoin_np(thr, NULL) == EBUSY); + /* Read some data and re-check, the fd is expected to be returned. */ + ATF_REQUIRE(read(sv[1], buf, space) == (ssize_t)space); + + method(sv[0], 1, true); + + /* Now check that thread was successfully woken up and exited. */ + ATF_REQUIRE(pthread_join(thr, NULL) == 0); + + close(sv[0]); + close(sv[1]); free(buf); +} + +/* + * Make sure that a full socket is not reported as writable by event APIs. + */ +ATF_TC_WITHOUT_HEAD(full_writability_select); +ATF_TC_BODY(full_writability_select, tc) +{ + int sv[2]; + + full_socketpair(sv); + full_writability_check(sv, check_writable_select); + close(sv[0]); + close(sv[1]); +} + +ATF_TC_WITHOUT_HEAD(full_writability_poll); +ATF_TC_BODY(full_writability_poll, tc) +{ + int sv[2]; + + full_socketpair(sv); + full_writability_check(sv, check_writable_poll); + close(sv[0]); + close(sv[1]); +} + +ATF_TC_WITHOUT_HEAD(full_writability_kevent); +ATF_TC_BODY(full_writability_kevent, tc) +{ + int sv[2]; + + full_socketpair(sv); + full_writability_check(sv, check_writable_kevent); + close(sv[0]); + close(sv[1]); +} + +ATF_TC_WITHOUT_HEAD(connected_writability); +ATF_TC_BODY(connected_writability, tc) +{ + int sv[2]; + + do_socketpair(sv); + check_writable_select(sv[0], 1, true); + check_writable_poll(sv[0], 1, true); + check_writable_kevent(sv[0], 1, true); close(sv[0]); close(sv[1]); } +ATF_TC_WITHOUT_HEAD(unconnected_writability); +ATF_TC_BODY(unconnected_writability, tc) +{ + int s; + + ATF_REQUIRE((s = socket(PF_LOCAL, SOCK_STREAM, 0)) > 0); + check_writable_select(s, 0, true); + check_writable_poll(s, 0, true); + check_writable_kevent(s, 0, true); + close(s); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, getpeereid); ATF_TP_ADD_TC(tp, send_0); - ATF_TP_ADD_TC(tp, full_not_writable); + ATF_TP_ADD_TC(tp, connected_writability); + ATF_TP_ADD_TC(tp, unconnected_writability); + ATF_TP_ADD_TC(tp, full_writability_select); + ATF_TP_ADD_TC(tp, full_writability_poll); + ATF_TP_ADD_TC(tp, full_writability_kevent); return atf_no_error(); } From nobody Wed Apr 30 06:42:32 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 4ZnSKh2s4Gz5ty0d; Wed, 30 Apr 2025 06:42: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 4ZnSKh1r7dz42hT; Wed, 30 Apr 2025 06:42:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745995352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=diVIc/dglaqGZi0xFJG/aKkjVMdCFFIRGbV9VPu85ao=; b=PhJvlwStZs8lbmOb3Cqokl/M0GW0cEHF9iVOgG2wtC3yiustsoMj0V2IkfCq0dFcXLMIMv 0hX3nt2dvvTbaa8WRP//JAuKWAJQ9fKtLUK6afUqXNNTkT444N2kwZQL5tcektREUDBsQZ r+JLmisdtltvyJtRm6q0U/O8YCok99LgjlFTzgDtW70yLoX3d/UMa082Auc0UlXoEufsO8 gTRDXnkuBTYcyziJry5bAdRxffr5Sh3MaFwxh6vq71AMVaZQmi9Ed03BttVoZjfVxKNHR1 hLbxurhAM63aDfnOYuvS3dtGQf1Yu0IT+pEMlAVvvBxzAPzNSu91WvI60/0SAw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745995352; a=rsa-sha256; cv=none; b=hxpClgAJuleA9+CRutYN7PfBsBNeDL7sXqJZ0C0jOK0W8EEkAPL8oMqt69LlFFDdIpEgCW UtABR7sKXnEZO0wjR2TAlOD1N7emHXvB7qRCEDBqVWyLpsIfovuMu96/a75MwJ/FluSEEE SZDVEdeVJz4hJr946h3rq69HUgX74JYCBAav3IDMGfdWRa5o+/izEumJH4ozL+LsG5OTQw NnnXEwSBRgfI/op8UGNQTyXBtPY/1KVwyTjw7hHzKkCYmHfakL1j/O23Npaz2YUmLQNamF S/1XC/LuN4ynBRAxU8neZyTENRsVAy9OHuP3hMlJ/p9RRd3dM7QAATGJJL/fHQ== 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=1745995352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=diVIc/dglaqGZi0xFJG/aKkjVMdCFFIRGbV9VPu85ao=; b=wkn13kU3GTIV/I97FwdZvT4AzTVtNqLNMQUVqG91m8qpiG/vE/S1jy6CyG1K6Xk9jW/QGW Ja7goUonXrKTC0WQRr+K/IysOC8x3SWfPSDUrvkXtyiw0Tv7x78taj/tkEBTSqEgyxI1xF upyBvBFSeAuowsN+0WabAChLEjWOKoim2t1FdIBMek09RD3sIvMIjIAivKFyIvxU6/of/e W4DduqjAWiU4I7/W+stqgQmD/el27J0MyrDh4RQzGWFO9AXOwiORaOmu9B0hpxPs3zSgC0 O/GWc4LRiu757zc7Nf6ssbAko/qnT3uI6/yogb1t/m0CazuwfRgxTF9kGNAbTA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnSKh18qBzvgf; Wed, 30 Apr 2025 06:42: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 53U6gWKh096834; Wed, 30 Apr 2025 06:42:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U6gWgf096830; Wed, 30 Apr 2025 06:42:32 GMT (envelope-from git) Date: Wed, 30 Apr 2025 06:42:32 GMT Message-Id: <202504300642.53U6gWgf096830@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Lexi Winter Subject: git: afa30c5dec5a - main - netstat(1): add description for option -o and -O. 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: ivy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: afa30c5dec5afc8496172a062c93e96d78f5b9b9 Auto-Submitted: auto-generated The branch main has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=afa30c5dec5afc8496172a062c93e96d78f5b9b9 commit afa30c5dec5afc8496172a062c93e96d78f5b9b9 Author: K Rin AuthorDate: 2025-04-06 18:15:07 +0000 Commit: Lexi Winter CommitDate: 2025-04-30 06:41:24 +0000 netstat(1): add description for option -o and -O. Reviewed by: kevans, ziaee, ivy Approved by: kevans (mentor) Fixes: fedeb08b6a58 ("Introduce scalable route multipath.") Fixes: a666325282ea ("Introduce nexthop objects and new routing KPI.") Pull Request: https://github.com/freebsd/freebsd-src/pull/1643 --- usr.bin/netstat/netstat.1 | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/usr.bin/netstat/netstat.1 b/usr.bin/netstat/netstat.1 index 559cb1932080..1a2c786e90aa 100644 --- a/usr.bin/netstat/netstat.1 +++ b/usr.bin/netstat/netstat.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 29, 2025 +.Dd April 30, 2025 .Dt NETSTAT 1 .Os .Sh NAME @@ -105,6 +105,10 @@ .It Nm Fl Q .Op Fl j Ar jail .Op Fl -libxo +.It Nm Fl o +.Fl 4 | Fl 6 +.It Nm Fl O +.Fl 4 | Fl 6 .El .Ek .Sh DESCRIPTION @@ -401,6 +405,34 @@ See .El .It Xo .Bk -words +.Nm netstat +.Fl o +.Fl 4 | Fl 6 +.Ek +.Xc +Print nexthop (nhops) information associated with routing entries. +When used with +.Fl 4 +or +.Fl 6 , +limit the output to IPv4 or IPv6 routes respectively. +This option provides details about individual nexthop addresses used in routing decisions. +.It Xo +.Bk -words +.Nm netstat +.Fl O +.Fl 4 | Fl 6 +.Ek +.Xc +Print nexthop groups (nhgrp) information associated with routing entries. +When used with +.Fl 4 +or +.Fl 6 , +restrict the output to IPv4 or IPv6 nexthop groups respectively. +This option shows grouped nexthop entries for multipath or load-balanced routing setups. +.It Xo +.Bk -words .Nm .Fl s .Op Fl 46sz From nobody Wed Apr 30 07:32:25 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 4ZnTRF6tGWz5v2Cy; Wed, 30 Apr 2025 07:32: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 4ZnTRF2VJFz4NPt; Wed, 30 Apr 2025 07:32:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745998345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p00CnU7oFeYx9sWAx1qh3c0iJsmiSNjUOre6JQ7Jz44=; b=Obcx6ZWZFIN5L6YdffoBACq1k4o7EsDWNCtbk7TuZpIYMWL7tDwLCkyJmSNKQeTHHwVShW +sHVOJ7wFq8vATSwWAh2QDGh8C+aYR2I4H9FewkGTKX2nRvr7B9jujjLLRshy30nWW+WGK 17ZEmLpVhUSnOo6emc1zvCiYJ6YWeJwPaKkTm1bv8YI2joYqxayDIfgkwBHM4vTeUc1TmO xS8sn5apj8qKwYeMyh0hGwKcKiJLeT/LFz5hQ1AvCnOcop9lsUILIQzXfyq2pBYp3vMGxh rUzVaDiiMpgoLLUvgqhi8GqTv6GncRdBd1+8LzZKGtbb0P69Y4xYJ1K7XZC5YA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745998345; a=rsa-sha256; cv=none; b=wUSgyMl+64Zz/bKpwzYawDRuh+qGBK/E3g036edWBE+at5rGO2oQIoUsyf4Txwm3S4Jkiq 2NTlyoRpR5z4/h0OkaqJLysa1j52lPx+1p4HYzk8qQaHhj+1xHCxkkXogHSn67csyxAYuw IkPUs5pOxrlTO304zdXFR9I3GFy8W8/yBDO+LeiAhxFxDIVjm37mHxRd9vKz0dY09UvryZ M0TkN3ffqlJOq7w5FYNtcLt3xzwJUcsk+x3/TZOW0PlZAr/nygf/IEh37FbTwg9NFU23O+ 9+cEIJu6Tan3H/ws/eBZ93aa1JEsIRHO4kQPa0sS6U0O9ZvuGYQt+QfgKFw5aA== 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=1745998345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p00CnU7oFeYx9sWAx1qh3c0iJsmiSNjUOre6JQ7Jz44=; b=sU3T9vlAHUqNUVXPFLp/ggxKyV9KZIDNtB7qPnNja2l4ImquYf3Vimj/Nw+rbTaWkS+zde P9zZzRj266CWHmqMf7pk+pCfvb3TI1jMzFdpKovh+cbY9LwnLxce5RCsP6FNPbmagNuWFW 6GTTB/Tma8v6z1826Xbk2QBOmC0zrkeNa6M8Yhd5wOJwqaDw/vYPwwJG0/OwEmsHXAizbT NQqne1vsO8aI+OVr5y8xDb3YzyRyKpiEk5adYQS1aRGV8zQapjv/dtwMj5/uYfUE1nKGsi qtVgxA8Lv9zgGhoJ21pPuaL6o+QsY76DJSLE1PZBBmEygMEu89CVrXHF5IiELA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnTRF21Tzzwwg; Wed, 30 Apr 2025 07:32: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 53U7WPW5087841; Wed, 30 Apr 2025 07:32:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7WPP9087838; Wed, 30 Apr 2025 07:32:25 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:32:25 GMT Message-Id: <202504300732.53U7WPP9087838@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: c201a1198ad7 - main - nuageinit: implement chpasswd 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: c201a1198ad70e7d096ee32c364d539eed2dfec4 Auto-Submitted: auto-generated The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=c201a1198ad70e7d096ee32c364d539eed2dfec4 commit c201a1198ad70e7d096ee32c364d539eed2dfec4 Author: Baptiste Daroussin AuthorDate: 2025-04-25 15:16:22 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 07:32:06 +0000 nuageinit: implement chpasswd Add support for chpasswd, with all possible syntaxes, including deprecated one: chpasswd.list as a list or as a multiline string as some providers are still only providing this deprecated form Sponsored by: OVHCloud MFC After: 1 week Reviewed by: kevans, jlduran Differential Revision: https://reviews.freebsd.org/D50021 --- libexec/nuageinit/nuage.lua | 105 ++++++++++++++++++++- libexec/nuageinit/nuageinit | 6 +- libexec/nuageinit/tests/nuageinit.sh | 175 +++++++++++++++++++++++++++++++++++ 3 files changed, 283 insertions(+), 3 deletions(-) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index e58069164130..15af5afbd9f0 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -1,7 +1,7 @@ --- -- SPDX-License-Identifier: BSD-2-Clause -- --- Copyright(c) 2022 Baptiste Daroussin +-- Copyright(c) 2022-2025 Baptiste Daroussin local unistd = require("posix.unistd") local sys_stat = require("posix.sys.stat") @@ -261,6 +261,106 @@ local function update_sshd_config(key, value) os.rename(sshd_config .. ".nuageinit", sshd_config) end +local function exec_change_password(user, password, type, expire) + local root = os.getenv("NUAGE_FAKE_ROOTDIR") + local cmd = "pw " + if root then + cmd = cmd .. "-R " .. root .. " " + end + local postcmd = " -H 0" + local input = password + if type ~= nil and type == "text" then + postcmd = " -h 0" + else + if password == "RANDOM" then + input = nil + postcmd = " -w random" + end + end + cmd = cmd .. "usermod " .. user .. postcmd + if expire then + cmd = cmd .. " -p 1" + else + cmd = cmd .. " -p 0" + end + local f = io.popen(cmd .. " >/dev/null", "w") + if input then + f:write(input) + end + -- ignore stdout to avoid printing the password in case of random password + local r = f:close(cmd) + if not r then + warnmsg("fail to change user password ".. user) + warnmsg(cmd) + end +end + +local function change_password_from_line(line, expire) + local user, password = line:match("%s*(%w+):(%S+)%s*") + local type = nil + if user and password then + if password == "R" then + password = "RANDOM" + end + if not password:match("^%$%d+%$%w+%$") then + if password ~= "RANDOM" then + type = "text" + end + end + exec_change_password(user, password, type, expire) + end +end + +local function chpasswd(obj) + if type(obj) ~= "table" then + warnmsg("Invalid chpasswd entry, expecting an object") + return + end + local expire = false + if obj.expire ~= nil then + if type(obj.expire) == "boolean" then + expire = obj.expire + else + warnmsg("Invalid type for chpasswd.expire, expecting a boolean, got a ".. type(obj.expire)) + end + end + if obj.users ~= nil then + if type(obj.users) ~= "table" then + warnmsg("Invalid type for chpasswd.users, expecting a list, got a ".. type(obj.users)) + goto list + end + for _, u in ipairs(obj.users) do + if type(u) ~= "table" then + warnmsg("Invalid chpasswd.users entry, expecting an object, got a " .. type(u)) + goto next + end + if not u.name then + warnmsg("Invalid entry for chpasswd.users: missing 'name'") + goto next + end + if not u.password then + warnmsg("Invalid entry for chpasswd.users: missing 'password'") + goto next + end + exec_change_password(u.name, u.password, u.type, expire) + ::next:: + end + end + ::list:: + if obj.list ~= nil then + warnmsg("chpasswd.list is deprecated consider using chpasswd.users") + if type(obj.list) == "string" then + for line in obj.list:gmatch("[^\n]+") do + change_password_from_line(line, expire) + end + elseif type(obj.list) == "table" then + for _, u in ipairs(obj.list) do + change_password_from_line(u, expire) + end + end + end +end + local n = { warn = warnmsg, err = errmsg, @@ -270,7 +370,8 @@ local n = { adduser = adduser, addgroup = addgroup, addsshkey = addsshkey, - update_sshd_config = update_sshd_config + update_sshd_config = update_sshd_config, + chpasswd = chpasswd } return n diff --git a/libexec/nuageinit/nuageinit b/libexec/nuageinit/nuageinit index 341330e68128..74a75c88098a 100755 --- a/libexec/nuageinit/nuageinit +++ b/libexec/nuageinit/nuageinit @@ -2,7 +2,7 @@ --- -- SPDX-License-Identifier: BSD-2-Clause-FreeBSD -- --- Copyright(c) 2022 Baptiste Daroussin +-- Copyright(c) 2022-2025 Baptiste Daroussin local nuage = require("nuage") local ucl = require("ucl") @@ -359,6 +359,10 @@ if line == "#cloud-config" then end nuage.update_sshd_config("PasswordAuthentication", value) end + if obj.chpasswd ~= nil then + nuage.chpasswd(obj.chpasswd) + end + else local res, err = os.execute(path .. "/" .. ud) if not res then diff --git a/libexec/nuageinit/tests/nuageinit.sh b/libexec/nuageinit/tests/nuageinit.sh index d3b1d5e6df2e..1b67468971a6 100644 --- a/libexec/nuageinit/tests/nuageinit.sh +++ b/libexec/nuageinit/tests/nuageinit.sh @@ -20,6 +20,9 @@ atf_test_case config2_network atf_test_case config2_network_static_v4 atf_test_case config2_ssh_keys atf_test_case nocloud_userdata_cloudconfig_ssh_pwauth +atf_test_case nocloud_userdata_cloudconfig_chpasswd +atf_test_case nocloud_userdata_cloudconfig_chpasswd_list_string +atf_test_case nocloud_userdata_cloudconfig_chpasswd_list_list args_body() { @@ -512,6 +515,175 @@ EOF atf_check -o inline:"PasswordAuthentication no\n" cat etc/ssh/sshd_config } +nocloud_userdata_cloudconfig_chpasswd_head() +{ + atf_set "require.user" root +} +nocloud_userdata_cloudconfig_chpasswd_body() +{ + mkdir -p etc + cat > etc/master.passwd << EOF +root:*:0:0::0:0:Charlie &:/root:/bin/sh +sys:*:1:0::0:0:Sys:/home/sys:/bin/sh +user:*:1:0::0:0:Sys:/home/sys:/bin/sh +EOF + pwd_mkdb -d etc "${PWD}"/etc/master.passwd + cat > etc/group << EOF +wheel:*:0:root +users:*:1: +EOF + mkdir -p media/nuageinit + printf "instance-id: iid-local01\n" > "${PWD}"/media/nuageinit/meta-data + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: true + users: + - { user: "sys", password: RANDOM } +EOF + + atf_check -o empty -e inline:"nuageinit: Invalid entry for chpasswd.users: missing 'name'\n" /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + # nothing modified + atf_check -o inline:"sys:*:1:0::0:0:Sys:/home/sys:/bin/sh\n" pw -R $(pwd) usershow sys + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: true + users: + - { name: "sys", pwd: RANDOM } +EOF + atf_check -o empty -e inline:"nuageinit: Invalid entry for chpasswd.users: missing 'password'\n" /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + # nothing modified + atf_check -o inline:"sys:*:1:0::0:0:Sys:/home/sys:/bin/sh\n" pw -R $(pwd) usershow sys + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: false + users: + - { name: "sys", password: RANDOM } +EOF + # not empty because the password is printed to stdout + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o match:'sys:\$.*:1:0::0:0:Sys:/home/sys:/bin/sh$' pw -R $(pwd) usershow sys + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: true + users: + - { name: "sys", password: RANDOM } +EOF + # not empty because the password is printed to stdout + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o match:'sys:\$.*:1:0::1:0:Sys:/home/sys:/bin/sh$' pw -R $(pwd) usershow sys + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: true + users: + - { name: "user", password: "$6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/" } +EOF + # not empty because the password is printed to stdout + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o inline:'user:$6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/:1:0::1:0:Sys:/home/sys:/bin/sh\n' pw -R $(pwd) usershow user +} + + +nocloud_userdata_cloudconfig_chpasswd_list_string_head() +{ + atf_set "require.user" root +} +nocloud_userdata_cloudconfig_chpasswd_list_string_body() +{ + mkdir -p etc + cat > etc/master.passwd << EOF +root:*:0:0::0:0:Charlie &:/root:/bin/sh +sys:*:1:0::0:0:Sys:/home/sys:/bin/sh +user:*:1:0::0:0:Sys:/home/sys:/bin/sh +EOF + pwd_mkdb -d etc "${PWD}"/etc/master.passwd + cat > etc/group << EOF +wheel:*:0:root +users:*:1: +EOF + mkdir -p media/nuageinit + printf "instance-id: iid-local01\n" > "${PWD}"/media/nuageinit/meta-data + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: true + list: | + sys:RANDOM +EOF + + atf_check -o empty -e inline:"nuageinit: chpasswd.list is deprecated consider using chpasswd.users\n" /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o match:'sys:\$.*:1:0::1:0:Sys:/home/sys:/bin/sh$' pw -R $(pwd) usershow sys + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: false + list: | + sys:plop + user:$6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/ + root:R +EOF + + atf_check -o empty -e ignore /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o match:'sys:\$.*:1:0::0:0:Sys:/home/sys:/bin/sh$' pw -R $(pwd) usershow sys + atf_check -o inline:'user:$6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/:1:0::0:0:Sys:/home/sys:/bin/sh\n' pw -R $(pwd) usershow user + atf_check -o match:'root:\$.*:0:0::0:0:Charlie &:/root:/bin/sh$' pw -R $(pwd) usershow root +} + +nocloud_userdata_cloudconfig_chpasswd_list_list_head() +{ + atf_set "require.user" root +} +nocloud_userdata_cloudconfig_chpasswd_list_list_body() +{ + mkdir -p etc + cat > etc/master.passwd << EOF +root:*:0:0::0:0:Charlie &:/root:/bin/sh +sys:*:1:0::0:0:Sys:/home/sys:/bin/sh +user:*:1:0::0:0:Sys:/home/sys:/bin/sh +EOF + pwd_mkdb -d etc "${PWD}"/etc/master.passwd + cat > etc/group << EOF +wheel:*:0:root +users:*:1: +EOF + mkdir -p media/nuageinit + printf "instance-id: iid-local01\n" > "${PWD}"/media/nuageinit/meta-data + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: true + list: + - sys:RANDOM +EOF + + atf_check -o empty -e inline:"nuageinit: chpasswd.list is deprecated consider using chpasswd.users\n" /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o match:'sys:\$.*:1:0::1:0:Sys:/home/sys:/bin/sh$' pw -R $(pwd) usershow sys + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +chpasswd: + expire: false + list: + - sys:plop + - user:$6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/ + - root:R +EOF + + atf_check -o empty -e ignore /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o match:'sys:\$.*:1:0::0:0:Sys:/home/sys:/bin/sh$' pw -R $(pwd) usershow sys + atf_check -o inline:'user:$6$j212wezy$7H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/:1:0::0:0:Sys:/home/sys:/bin/sh\n' pw -R $(pwd) usershow user + atf_check -o match:'root:\$.*:0:0::0:0:Charlie &:/root:/bin/sh$' pw -R $(pwd) usershow root +} + atf_init_test_cases() { atf_add_test_case args @@ -528,4 +700,7 @@ atf_init_test_cases() atf_add_test_case config2_network_static_v4 atf_add_test_case config2_ssh_keys atf_add_test_case nocloud_userdata_cloudconfig_ssh_pwauth + atf_add_test_case nocloud_userdata_cloudconfig_chpasswd + atf_add_test_case nocloud_userdata_cloudconfig_chpasswd_list_string + atf_add_test_case nocloud_userdata_cloudconfig_chpasswd_list_list } From nobody Wed Apr 30 08:18:17 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 4ZnVSB2sfxz5v4g3; Wed, 30 Apr 2025 08:18: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 4ZnVS96ny3z3SRL; Wed, 30 Apr 2025 08:18:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746001098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HrRx1W/qsSq3roegMXyL7H+bunK5l8Zq8CGfnFsINsY=; b=b1XEfT/s2mDI74ItNqZP1+ku9wRlQzXAP7qf71JXf9O6GRS6w14W0k/hGH+LshAQcccA0A V1EW837SVk2UlGLFi5kVUfk7GcAiya42c853JPOBUr4rUIBlgCCGKI4nwIYqXUzfweC4cG J3T6T3jb8Qo64EWvym/t62PTRLM0Hr+YjYwgsMFCbzx1KlBJG3J8++Rmn6ABxH1IL/9358 1/Lcu6MFxkyWMLPlfwl3H88X13V5R0oTw4kknBsIWjT038A+/Es4GECoO6FakulQO27yrC QPySnh9RJMaVl+PVWISKi6RvbfMHJ7f6FDqmX9RvpvDqHXjiumvdxvRn8L6YfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746001098; a=rsa-sha256; cv=none; b=N3crRexopCK3O8l9TTZpcmqN5H62ee7Q2xQvKl1M4GIdEl/5pdhB549djP2GFlBMSR1s+d qxsXldeVHAK7A6B+G354sF34/W9HEKVBmiFJ0sm45dSHqsSxtUumNIFhs2NgZChof7rZET 77jQ3VXvePcJ0oyYvwQpGM+kx8WrTc9ibVkWk6wxzAV8UUNMm6qlPcuqoNqVekxoqVkYmV h2AIZGL/rf33+3PWs3jUmQGT0KVmT2tYPWoCvgcO5+nobrJTefFxFFSaKf22K0tx/Lla+X LXIXzDQswt0AxNC24ek538qWkwU2TuWlq0BbqMNcshW0rY+2X4r+g2lK68iQTg== 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=1746001098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HrRx1W/qsSq3roegMXyL7H+bunK5l8Zq8CGfnFsINsY=; b=csFqIg5p51B7BM8PznHYgzxZ0azgvqzdAZwsCf1aJr1fOtq3xnEPeUOfU0Drv9DpG7qx6g 4bGRfzvm7ty/SN2RsaVtY+UapWXfBwGGMNFXGKVOmRxkUDwOQPbYL02knONlFzYJWjj+Pj KyBStGpEWPvi76/LfZ/KiMFRVsEmQkxGNDneUIzq2EW+3c7aZQ3MU4Vw/PQ1ps0sKLxW3j Zz47VGubD+kBn45HE2RvoNCrxSiu3U/q6zXyRVZ44vxqVaXAfvl9c78bHkrMQmHg8oX6i+ VdbsyOrT823Gy92ETmfevjWUGcifyAKhQnc5M2OmDtoHnzv+1ZwiNG6h3UMNwg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnVS965WdzxX3; Wed, 30 Apr 2025 08:18: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 53U8IHFU068351; Wed, 30 Apr 2025 08:18:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U8IHRG068348; Wed, 30 Apr 2025 08:18:17 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:18:17 GMT Message-Id: <202504300818.53U8IHRG068348@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: c08f5ad160bf - main - CI: Add full test 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: bofh X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c08f5ad160bf7c844677e1960b1a882d492006f8 Auto-Submitted: auto-generated The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/src/commit/?id=c08f5ad160bf7c844677e1960b1a882d492006f8 commit c08f5ad160bf7c844677e1960b1a882d492006f8 Author: Muhammad Moinur Rahman AuthorDate: 2025-04-30 08:14:31 +0000 Commit: Muhammad Moinur Rahman CommitDate: 2025-04-30 08:18:08 +0000 CI: Add full test support The patch adds support for running full tests in the local CI Environment. New features added: - New target `ci-full` which runs the full test. This is also the default now - Renamed the previous target `ci-smokeit` to `ci-smoke` - Unlike previous if the available memory is more than 16G a default of 8G will be used - Removed some unnecessary debug messages - Added `dummybuf` kernel module to the list of modules to be loaded on the VM The features that can be tested: `make TARGET= TARGET_ARCH= CITYPE=full ci` `make TARGET= TARGET_ARCH= ci` is also the same as above as CITYPE full is the default now Approved by: lwhsu Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48015 --- tests/ci/Makefile | 61 +++++++++++++++++++++++++++++++++++++----------- tests/ci/tools/ci.conf | 8 +++++-- tests/ci/tools/freebsdci | 34 ++++++++++++++++++++------- 3 files changed, 79 insertions(+), 24 deletions(-) diff --git a/tests/ci/Makefile b/tests/ci/Makefile index fed66e5cc317..e452d74679af 100644 --- a/tests/ci/Makefile +++ b/tests/ci/Makefile @@ -8,8 +8,9 @@ # Makefile for CI testing. # # User-driven targets: -# ci: Run CI tests. Currently only smoke tests are supported. -# ci-smokeit: Currently same as ci. +# ci: Run CI tests +# ci-smoke: Run smoke tests which is simply booting the image +# ci-full: Run full tests # # Variables affecting the build process: # TARGET/TARGET_ARCH: architecture of built release (default: same as build host) @@ -68,11 +69,25 @@ SWAPSIZE?= 1g VMFS?= ufs FORMAT= raw CIIMAGE= ci-${OSRELEASE}-${GITREV}-${KERNCONF}.${FORMAT} +CIDISK?= ${.OBJDIR}/${CIIMAGE} VMSIZE?= 6g -CITYPE?= +CITYPE?= full +META_TAR!=mktemp /tmp/meta.XXXXXX +META_DIR!=mktemp -d /tmp/meta.XXXXXX +META_DIROUT!=mktemp -d /tmp/meta.XXXXXX +DISC_CAM!=truncate -s 128m /tmp/disk-cam +EXTRA_DISK_NUM?=5 +DISK_NUMBERS!=jot - 1 ${EXTRA_DISK_NUM} +BHYVE_EXTRA_DISK_PARAM?= +BHYVE_EXTRA_DISK_PARAM+=-s 4:0,ahci-hd,/tmp/disk-cam +.for i in ${DISK_NUMBERS} +NEW_DISK!=truncate -s 128m /tmp/disk${i} +BHYVE_EXTRA_DISK_PARAM+=-s $$((${i} + 4)):0,virtio-blk,/tmp/disk${i} +CLEANFILES+=/tmp/disk${i} +.endfor TEST_VM_NAME= ci-${OSRELEASE}-${GITREV}-${KERNCONF} .if ${TOTAL_MEMORY} >= 16 -VM_MEM!=expr ${TOTAL_MEMORY} / 2 +VM_MEM=8 .elif ${TOTAL_MEMORY} >=4 VM_MEM=${TOTAL_MEMORY} .else @@ -117,8 +132,8 @@ KLDFILEMONISLOADED!=kldload -q -n filemon 2>/dev/null && echo "1" || echo "0" METAMODE?=-DWITH_META_MODE .endif -CLEANFILES= ${CIIMAGE} ci.img -CLEANDIRS= ci-buildimage +CLEANFILES+= ${.OBJDIR}/${CIIMAGE} ${.OBJDIR}/ci.img ${META_TAR} +CLEANDIRS+= ${.OBJDIR}/ci-buildimage portinstall: portinstall-pkg portinstall-qemu portinstall-expect portinstall-${TARGET_ARCH:tl} .PHONY @@ -141,11 +156,13 @@ portinstall-expect: portinstall-pkg .PHONY .endif beforeclean: .PHONY - chflags -R noschg . + chflags -R noschg ${.OBJDIR}/${.TARGET} .include clean: beforeclean .PHONY +cleandir: beforeclean .PHONY + ci-buildworld: .PHONY @echo "Building world for ${TARGET_ARCH}" ${IMAKE} -j${PARALLEL_JOBS} -C ${WORLDDIR} ${METAMODE} \ @@ -155,7 +172,7 @@ ci-buildworld: .PHONY ci-buildkernel: ci-buildworld-${TARGET_ARCH:tl} .PHONY - @echo "Building kenrel for ${TARGET_ARCH"}" + @echo "Building kernel for ${TARGET_ARCH"}" ${IMAKE} -j${PARALLEL_JOBS} -C ${WORLDDIR} ${METAMODE} \ ${CROSS_TOOLCHAIN_PARAM} __MAKE_CONF=${MAKECONF} \ SRCCONF=${SRCCONF} buildkernel > ${.CURDIR}/_.${TARGET_ARCH}.${.TARGET} 2>&1 || \ @@ -174,19 +191,32 @@ ci-buildimage: ${QEMUTGT} ci-buildkernel-${TARGET_ARCH:tl} .PHONY (echo "${.TARGET} failed, check _.${TARGET_ARCH}.${.TARGET} for details" ; false) touch ${.TARGET} -ci-setsmokevar: .PHONY +ci-set-smoke-var: .PHONY CITYPE=smoke +ci-set-full-var: .PHONY +CITYPE=full + +ci-create-meta: .PHONY + truncate -s 512M ${META_TAR} + tar rvf ${META_TAR} -C ${META_DIR} . + +ci-extract-meta: .PHONY + tar xfv ${META_TAR} -C ${META_DIROUT} + @echo "Extracted kyua reports to ${META_DIROUT}" + ci-runtest: ci-buildimage-${TARGET_ARCH:tl} portinstall .PHONY .if ${MACHINE} == "amd64" && ( ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" ) && ( !defined(USE_QEMU) || empty(USE_QEMU) ) /usr/sbin/bhyvectl --vm=${TEST_VM_NAME} --destroy || true - /usr/sbin/bhyveload -c stdio -m ${VM_MEM_SIZE} -d ${CIIMAGE} ${TEST_VM_NAME} + /usr/sbin/bhyveload -c stdio -m ${VM_MEM_SIZE} -d ${CIDISK} ${TEST_VM_NAME} expect -c "set timeout ${TIMEOUT_EXPECT}; \ spawn /usr/bin/timeout -k 60 ${TIMEOUT_VM} /usr/sbin/bhyve \ -c ${PARALLEL_JOBS} -m ${VM_MEM_SIZE} -A -H -P \ -s 0:0,hostbridge \ -s 1:0,lpc \ - -s 2:0,virtio-blk,${CIIMAGE} \ + -s 2:0,virtio-blk,${CIDISK} \ + -s 3:0,virtio-blk,${META_TAR} \ + ${BHYVE_EXTRA_DISK_PARAM} \ -l com1,stdio \ ${TEST_VM_NAME}; \ expect { eof }" @@ -199,7 +229,8 @@ ci-runtest: ci-buildimage-${TARGET_ARCH:tl} portinstall .PHONY -nographic \ -no-reboot \ ${QEMU_EXTRA_PARAM} \ - -drive if=none,file=${CIIMAGE},format=raw,id=hd0 \ + -drive if=none,file=${CIDISK},format=raw,id=hd0 \ + -drive if=none,file=${META_TAR},format=raw,id=hd1 \ ${QEMU_DEVICES} .endif @@ -215,8 +246,10 @@ ci-checktarget: .PHONY @echo "Error: ${TARGET_ARCH} is not supported on ${TYPE} ${REVISION} ${BRANCH}" .endif -ci-smokeit: ci-setsmokevar ci-checktarget .WAIT ci-runtest-${TARGET_ARCH:tl} .PHONY +ci-smoke: ci-set-smoke-var ci-create-meta ci-checktarget .WAIT ci-runtest-${TARGET_ARCH:tl} .PHONY + +ci-full: ci-set-full-var ci-create-meta ci-checktarget .WAIT ci-runtest-${TARGET_ARCH:tl} ci-extract-meta .PHONY -ci: ci-smokeit .PHONY +ci: ci-${CITYPE:tl} .PHONY .include "${RELEASEDIR}/Makefile.inc1" diff --git a/tests/ci/tools/ci.conf b/tests/ci/tools/ci.conf index 47001d6248c6..a9998a3e5373 100644 --- a/tests/ci/tools/ci.conf +++ b/tests/ci/tools/ci.conf @@ -11,7 +11,7 @@ export VM_RC_LIST="auditd freebsdci" if [ "${CITYPE}" != "smoke" ]; then -export VM_EXTRA_PACKAGES="coreutils devel/py-pytest gdb jq ksh93 net/py-dpkt net/scapy nist-kat nmap perl5 python python3 sudo tcptestsuite" +export VM_EXTRA_PACKAGES="coreutils devel/py-pytest gdb jq ksh93 net/py-dpkt net/scapy nist-kat nmap perl5 python python3 sudo sysutils/porch tcptestsuite" if [ "${TARGET}" = "amd64" ]; then export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} linux-c7-ltp" @@ -41,6 +41,7 @@ cat << EOF >> ${DESTDIR}/etc/rc.conf kld_list="" # Load modules needed by tests kld_list="${kld_list} blake2" # sys/opencrypto kld_list="${kld_list} cryptodev" # sys/opencrypto +kld_list="${kld_list} dummymbuf" # sys/netpfil kld_list="${kld_list} fusefs" # sys/fs/fusefs kld_list="${kld_list} ipsec" # sys/netipsec kld_list="${kld_list} mac_portacl" # sys/mac/portacl @@ -64,6 +65,10 @@ if [ "${CITYPE}" = "smoke" ]; then cat << EOF >> ${DESTDIR}/etc/rc.conf freebsdci_type="smoke" EOF +elif [ "${CITYPE}" = "full" ]; then +cat << EOF >> ${DESTDIR}/etc/rc.conf +freebsdci_type="full" +EOF fi cat << EOF >> ${DESTDIR}/etc/sysctl.conf kern.cryptodevallowsoft=1 @@ -77,7 +82,6 @@ cat << EOF >> ${DESTDIR}/etc/fstab fdesc /dev/fd fdescfs rw 0 0 EOF mkdir -p ${DESTDIR}/usr/local/etc/rc.d - echo $scriptdir cp -p ${scriptdir}/../../tests/ci/tools/freebsdci ${DESTDIR}/usr/local/etc/rc.d/ touch ${DESTDIR}/firstboot diff --git a/tests/ci/tools/freebsdci b/tests/ci/tools/freebsdci index c77216c9fd4d..f0030fe00aba 100755 --- a/tests/ci/tools/freebsdci +++ b/tests/ci/tools/freebsdci @@ -26,6 +26,7 @@ . /etc/rc.subr : ${freebsdci_enable:="NO"} +: ${freebsdci_type:="full"} name="freebsdci" desc="Run FreeBSD CI" @@ -33,10 +34,13 @@ rcvar=freebsdci_enable start_cmd="firstboot_ci_run" stop_cmd=":" os_arch=$(uname -p) +tardev=/dev/vtbd1 +metadir=/meta +istar=$(file -s ${tardev} | grep "POSIX tar archive" | wc -l) auto_shutdown() { - # XXX: Currently RISC-V kernels lack the ability to + # NOTE: Currently RISC-V kernels lack the ability to # make qemu exit on shutdown. Reboot instead; # it makes qemu exit too. case "$os_arch" in @@ -53,8 +57,6 @@ smoke_tests() { echo echo "--------------------------------------------------------------" - echo "BUILD sequence COMPLETED" - echo "IMAGE sequence COMPLETED" echo "BOOT sequence COMPLETED" echo "INITIATING system SHUTDOWN" echo "--------------------------------------------------------------" @@ -62,15 +64,31 @@ smoke_tests() full_tests() { - # Currently this is a placeholder. - # This will be used to add the full tests scenario those are run in - # the CI system echo echo "--------------------------------------------------------------" - echo "BUILD sequence COMPLETED" - echo "IMAGE sequence COMPLETED" echo "BOOT sequence COMPLETED" echo "TEST sequence STARTED" + if [ "${istar}" -eq 1 ]; then + rm -fr ${metadir} + mkdir -p ${metadir} + tar xvf ${tardev} -C ${metadir} + cd /usr/tests + set +e + kyua test + rc=$? + set -e + if [ ${rc} -ne 0 ] && [ ${rc} -ne 1 ]; then + exit ${rc} + fi + kyua report --verbose --results-filter passed,skipped,xfail,broken,failed --output test-report.txt + kyua report-junit --output=test-report.xml + mv test-report.* /${metadir} + tar cvf ${tardev} -C ${metadir} . + else + echo "ERROR: no device with POSIX tar archive format found." + # Don't shutdown because this is not run in unattended mode + exit 1 + fi echo "TEST sequence COMPLETED" echo "INITIATING system SHUTDOWN" echo "--------------------------------------------------------------" From nobody Wed Apr 30 13:05:59 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 4Zncr81mVkz5vPTR; Wed, 30 Apr 2025 13:06: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 4Zncr80NKqz3S1C; Wed, 30 Apr 2025 13:06:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746018360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v5FuVRrGPIQR/rDGwzoOHnH7SrmyvnvOptZrxyMm9uw=; b=nwziUMs/E8aqBjMjo7UO2R4QH3x8IJpQJFV9u+nFCJzS+ClRXgB+rvnwi5fhC5NOUfzqH3 MaWjJWpjDp6WPyhIpO3DG3IdJ2Zy/BD9FR26L2kzRbAFUOwhwLHLhgpBQcgq5Pi488DVal 1bh4b6x2Am9CcBKBpIugwC/vKLGge0KmyLKIs9j7DxXZp7ZdcOZ+6PeXqpMLCznPbc3P7B Pb0gZ5DCf2cOdKoOZQzKr4LCwnu7bCCRs2hZQZuCg0Ild8XP/4Dbybl/ICjp6p4POolicY fclj1EI7QrzECNdtb2By7Lsc7SiMVNk92cCAy6lrcc+G4azz2DsFjSHt+XBxAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746018360; a=rsa-sha256; cv=none; b=QfExadp6R9EEenfzFdWJvucTUObhrLfmk6vU/8BkB/8KexMz3Aeyg3KmcWeTQEhqg1ONFL tXuEMsJvroFbf7fJVjpifutpEhmGpBeiMlCybdQNmdQb2bC/Rfaqc6gOjz0sL3Pqemj6ac n/meLbffbL32Ooms16KMHy+9WQtrxcJACpiCg64v/m3aNdQ5nk6GAYwawI9aVH65k/kcwx 8Z0SAIxmLodBPcPZMx1DctVzbODKpy4yNS5eMrYUNp8jLnqvBLJVBJOLm3oe1qadsd3I5J HMwAv+j7vvpc0htxCjK2Ae7laxNSZyFeNS/skyTPM+Lo8DuR7/immuCVz5u6gQ== 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=1746018360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v5FuVRrGPIQR/rDGwzoOHnH7SrmyvnvOptZrxyMm9uw=; b=DRPEvLm7nkb4RSBw8FlDPXHn5quq7DGY0uH4n7xtx+NVwDifOsYeobyyi5+8Ylq8IN0/mq /uVUtpe4SW5yDhgH7NAtIn2j97sIEQaIJpV/my6RhQgRphy9nszUQO0w6czEHvibgoSSeB k/Lzu+nxOYLfceXSaPllwlE0flreSF4y38doUHHYZmkZafxYIaWsf+XGFJGbeLyOFKyvgh dQnsdAJ65nGCn+NHb2O8+yhtKmlvhOdrn7/aN6W/QBFwwI8JaDpI1jkm6D21clWBjHFJpF WHQF8gw/dbQo6UAmOEaXaAQ2l0XveCadx7Lfc3f/OkEucO+Ejk+WUpy6tjiBeA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zncr76myZz169s; Wed, 30 Apr 2025 13:05: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 53UD5xq3009727; Wed, 30 Apr 2025 13:05:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UD5xlU009724; Wed, 30 Apr 2025 13:05:59 GMT (envelope-from git) Date: Wed, 30 Apr 2025 13:05:59 GMT Message-Id: <202504301305.53UD5xlU009724@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak Subject: git: ebda367c4d47 - main - libedit: Reset WARNS 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: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ebda367c4d477ddb486f4f33b9ee1de1e3a001f1 Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=ebda367c4d477ddb486f4f33b9ee1de1e3a001f1 commit ebda367c4d477ddb486f4f33b9ee1de1e3a001f1 Author: Piotr Paweł Stefaniak AuthorDate: 2023-06-21 11:17:32 +0000 Commit: Piotr Paweł Stefaniak CommitDate: 2025-04-30 13:05:00 +0000 libedit: Reset WARNS After the recent import, explicit set of WARNS=3 is not needed. --- lib/libedit/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/libedit/Makefile b/lib/libedit/Makefile index c307cd3e7880..f0254c1f42bc 100644 --- a/lib/libedit/Makefile +++ b/lib/libedit/Makefile @@ -8,7 +8,6 @@ EDITDIR= ${SRCTOP}/contrib/libedit SHLIB_MAJOR= 8 SHLIBDIR?= /lib -WARNS?= 3 LIB= edit LIBADD= tinfow From nobody Wed Apr 30 13:45:09 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 4ZndjK3vf6z5vRqK; Wed, 30 Apr 2025 13:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZndjK32s8z3lM7; Wed, 30 Apr 2025 13:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746020709; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rJUqYZIAPx/cpzKQTK2f7B2k6VKVDOBwpFRwoMk5Y1I=; b=c7NCK4ef7BH8Ls3kutCCJ9krS1DqHphlAlgSz4nG4PahLDfSuE4eKJL5XI+AzMd14DdwSh egpvfbQrKRU7g4mbN53CBxjXSYUlU8RXrX1b6sqV92+pjNK5xsG28Faih60LPdrfL2Mhrf EVlFes7U3ce4YBYeYComsacghZNFMAI9lBoE3aemZXGok50TfLg4BmCLUSfSQlpe0u/qJy XsmpqBGfbv1nqoIwzNHiFX1Ug1Ut0eqBt8OoxyX3zL4+iBxGDXddLYGAto7StNOQRjvznJ UsbScDou39KbS3Lfkp0EAKGUUfcxKYJbrGc8y8S14in1fQFxXA5+GIs9Nuy2Mw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746020709; a=rsa-sha256; cv=none; b=lm0iCMG0KvSv3V6nAs0wnLISaD8yamyGg58gVW54FD+DstXhU1qdO8iNv51saVBJBK0KrF avLzfhACW2LGsq40qeioBOgwimXOc24uhLU4YkMTbX5qgemJrKVSqy0EhjrmzQ6BJjMg2A B6eHoIbw2mzd1JIZgz3GyfzGeF7hFQyzL4YECURuBscuO/4dNEb77U2WNXEjhuSEFwo4wR fCje8TDuE39QCBXNno7o3skvqzplFV8uF1OlOTAOD5kKK/QIbyWZqW55BHF+S61DcqIT6K xkMTi2zUYWica6AXwTTP7i7pDM+fmBW815aUaE0Yuekuncm5en7HC60A/zGCLw== 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=1746020709; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rJUqYZIAPx/cpzKQTK2f7B2k6VKVDOBwpFRwoMk5Y1I=; b=g2eVNOQnBAgDQcGkrGeTNMu8uzye4oBJTVAm/3852ueU81PA+LExSLkE6voQLYUSOhA2q4 ewoHz0VTAf6t59iw9oqwdvuzdJuNeLUpdkL9Mj7aTCAIYW4/LxJ3eFXDOaLTadSsBL866f qTNFKGAeYFr3iDYajx/kXOoqqWThDMksP4FFcHtccc0O3sJGUbtlN3fRPRVi/Eys8hhD0C YEq27/+v5Uc15ZvClDai6Ypj8R51qmO6K53RplaOAxy7czcnPw/xY/o27aARYOCtLN4Sk8 x6mRgBF6D2mqqnA0QiS7lJn2g3AcRiM8NoOrIP4u66ExT7mvMYX4o5jdngejlw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZndjK2X3tz16xP; Wed, 30 Apr 2025 13:45: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 53UDj9rX083788; Wed, 30 Apr 2025 13:45:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UDj9SW083785; Wed, 30 Apr 2025 13:45:09 GMT (envelope-from git) Date: Wed, 30 Apr 2025 13:45:09 GMT Message-Id: <202504301345.53UDj9SW083785@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 7ca3db1999cd - main - src.conf.5: Correct LLVM_BINUTILS comment about strings(1) 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7ca3db1999cd967f9d6d7b259aa7af54aae14a5f Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=7ca3db1999cd967f9d6d7b259aa7af54aae14a5f commit 7ca3db1999cd967f9d6d7b259aa7af54aae14a5f Author: Ed Maste AuthorDate: 2025-04-30 13:38:29 +0000 Commit: Ed Maste CommitDate: 2025-04-30 13:44:48 +0000 src.conf.5: Correct LLVM_BINUTILS comment about strings(1) Reported by: olivier Fixes: 81fa5c4a828b ("llvm-strings: Install as strings when WITH_LLVM_BINUTILS=YES") Sponsored by: The FreeBSD Foundation --- share/man/man5/src.conf.5 | 4 +--- tools/build/options/WITHOUT_LLVM_BINUTILS | 2 -- tools/build/options/WITH_LLVM_BINUTILS | 2 -- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index ac938b47a9e1..2a052ad41d26 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,5 +1,5 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. -.Dd March 30, 2025 +.Dd April 30, 2025 .Dt SRC.CONF 5 .Os .Sh NAME @@ -949,8 +949,6 @@ Regardless of this setting, LLVM tools are used for .Xr c++filt 1 and .Xr objdump 1 . -.Xr strings 1 -is always provided by ELF Tool Chain. .It Va WITHOUT_LLVM_COV Do not build the .Xr llvm-cov 1 diff --git a/tools/build/options/WITHOUT_LLVM_BINUTILS b/tools/build/options/WITHOUT_LLVM_BINUTILS index 35cc0c0e034f..244bec49e695 100644 --- a/tools/build/options/WITHOUT_LLVM_BINUTILS +++ b/tools/build/options/WITHOUT_LLVM_BINUTILS @@ -13,5 +13,3 @@ Regardless of this setting, LLVM tools are used for .Xr c++filt 1 and .Xr objdump 1 . -.Xr strings 1 -is always provided by ELF Tool Chain. diff --git a/tools/build/options/WITH_LLVM_BINUTILS b/tools/build/options/WITH_LLVM_BINUTILS index 164e6e8ffabd..130997b7e9bf 100644 --- a/tools/build/options/WITH_LLVM_BINUTILS +++ b/tools/build/options/WITH_LLVM_BINUTILS @@ -14,5 +14,3 @@ Regardless of this setting, LLVM tools are used for .Xr c++filt 1 and .Xr objdump 1 . -.Xr strings 1 -is always provided by ELF Tool Chain. From nobody Wed Apr 30 14:54:40 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 4ZngFY0V6xz5vWt0; Wed, 30 Apr 2025 14:54:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZngFX6Xqqz3QrL; Wed, 30 Apr 2025 14:54:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746024880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VRlSLzhrFKNfrJ6neYRhVDiS5eHVCjkLoAFU0rUOeiI=; b=oPUUT665FxSKsATnnLCyhJhF21MlUOoWWxMWkVqtss/5XI71QhynhWHZLyNcWtjktAjaSG biB0yhyZIb1OP1re3mnPwObb6A7QVWHdB/B/Y2SNM9trnmrv8+HUkGz/zMlGMO3L7Atq1T GPCvDEkzUZFIW9MNo+idjLkzyGErpShuItlQaH/8YxJAiCswwIKnxFVfXqOU9IPJ/al8Qw ol+L9Rh5aSalH/o2+oPMHoJ8LKMIpMbswNC378v1vYUC/+6bN/m6d1Q5sU3cP7tEUVuX1K iPiZYbyXDbdINAcvd5VJ0ZUj38xb/vikn89Ua6IdysoV0rh7mSfrVsTiC3Ql8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746024880; a=rsa-sha256; cv=none; b=wsksxcsAt/r07JpaIt1euTmFvFUlR0x/QP0C+xqgkKlaM6DG/FWqrsZ1tUiSzSy1iwhHsB k7LUqi8xfpq4AAO8UWRbLBJ0vCsbOo0gctx0a4OTo9zz/HRXZzCNebFtvr9wfVMvULBzZE PjSXCKv8NTalCEUVE2cNSLIaLAhjNPOGO1gsqS8wkB67UpSdvVlXZeGkSJECwXfGKHrG2L w7NFC/IkerzbmeXIwMv+4FeIQ3WLSSXmXTAkbJ0LhJwYnPR9XLNcYwwz2BziTJ9xcVaKAA IGXi+f7mlOxJavv7epljBc2FThu2/9RsuTA3Oy8Nk1O9ywTFdSEcr5TapYAakQ== 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=1746024880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VRlSLzhrFKNfrJ6neYRhVDiS5eHVCjkLoAFU0rUOeiI=; b=cPAp/pXmKnkLKCgSye9SU/vvcQ2ebP+D4wqBAdyKtJOXXK7Cy6Mmp/Szj2iCGqpssuPbG6 zQFwgDR2oenlMV3G9N+9VVp2m1GNlLG5KVZ+6ZBMQXfRv1RxsRzHrUZ8dwA5l5oyEzUjcB a43MOUmB1TOBurrw/0dCXbp4zJRMugzbRa9oizd9Fl+d3JbkN+Ptdq+tKHpZ2L0PICyxsg 0g1t4VruZwORJ+MjYwFRIM3b4q67Va7REvg1dzs3+u8BwSvmS3DfE6neFE0zx+5SOxnskM vayz49wEWZn7IJa1WLuzQOQrofHBDnHicxVmRBS1nDoCtQZowxp9sg5nXmgKyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZngFX63y1z18QK; Wed, 30 Apr 2025 14:54:40 +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 53UEseDQ014508; Wed, 30 Apr 2025 14:54:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UEseiO014505; Wed, 30 Apr 2025 14:54:40 GMT (envelope-from git) Date: Wed, 30 Apr 2025 14:54:40 GMT Message-Id: <202504301454.53UEseiO014505@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 6f0aa2343b1d - main - ObsoleteFiles.inc: Fix the path to libdevinfo.so.6 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6f0aa2343b1d05291f41b1b40c7f400c015912ce Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=6f0aa2343b1d05291f41b1b40c7f400c015912ce commit 6f0aa2343b1d05291f41b1b40c7f400c015912ce Author: John Baldwin AuthorDate: 2025-04-30 14:53:34 +0000 Commit: John Baldwin CommitDate: 2025-04-30 14:53:34 +0000 ObsoleteFiles.inc: Fix the path to libdevinfo.so.6 The library is in /usr/lib, not /lib. Fixes: 7554746c43c5 ("libdevinfo: Avoid false positives for the root0 sentinel value") Sponsored by: Chelsio Communications --- ObsoleteFiles.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 58e0ba8f7963..b5432dae3824 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -85,7 +85,7 @@ OLD_FILES+=usr/tests/sys/vm/stack/.debug/libsoxstack.so.debug OLD_DIRS+=usr/tests/sys/vm/stack/.debug # 20250129: libdevinfo bumped to version 7 -OLD_LIBS+=lib/libdevinfo.so.6 +OLD_LIBS+=usr/lib/libdevinfo.so.6 # 20250123: Remove gvinum(8) OLD_FILES+=sbin/gvinum From nobody Wed Apr 30 16:24:03 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 4ZnjDg5jF0z5tdQV; Wed, 30 Apr 2025 16:24: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 4ZnjDg56Fmz411Q; Wed, 30 Apr 2025 16:24:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746030243; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mf2GYVhqD+Tv+b8M3R2jeSsWnXiFbgD8qVioX20sbxA=; b=wfxCWQ+mL5v0525Mdk/K6cKqS5+j8UYExFSEVe6mdaqLihdNg5pPkWUeHzj+T6GLlcoGWC K41eXsiJYMK50GOEqjnX0yN2qRmnZdfbgLGM27bIb/5fkpH1Junm/TLYA/v8zYmWtt9FWw eD4DKHAKjKwMYVXR1jXpAuiPnSclapyh3M836/IJNf54G9gQfWKZ7lXIIxVlxwUMJVh6r9 SWPIvMlJy+Y6goj0RnZRUxENrjMO7C/+APSQBWHKi1Hr+BlX4kd0LG6SUvLfHO/wIJm2Ob 8rbroljT4WOQqwb5Z/6Y3prlKn5BMlFjB4rcxTDRcNvFeSc6T3TH8NyC4aFiTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746030243; a=rsa-sha256; cv=none; b=gRzmobVFkChf75TVM2brGqgDCWsH8WUcURVil5gzTKToSQKsvS2dczwVQ+xF3K/9kfOSH0 ZUGtfItHdB8wDbgQ30itHCQQzQFThKyC1KwXxnGN6NdCRSr19TWtoKzIqyJvxdQyAgv6Bj m88/Dy9+AwBk9KCKdQ20jWQB3cJCuzoEBbBosbTPyg9t+IpuSbj1N4zFENUE0G/8XaKYI2 rjWxW083eJuKTpll0XDZBc3BMEbyDpK+5Yc068Q5/DNfzv0MOfLhYtDiDyuaMGCUpOehJG WAedzL0dYdQsInKubLbsSd0y4usAxLhRFMV5LzooLVWU72QNTvYmyw3OF6Du7w== 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=1746030243; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mf2GYVhqD+Tv+b8M3R2jeSsWnXiFbgD8qVioX20sbxA=; b=MzdfdNvK+RxrRWFdhGpFsCVAzEm5QkckRFs0ThNNGbQIWjSYqG2GYSo5qL6/eGOiAy3TpH QmqGIi2LdSptiykYE+hZhco1kzZ3/jIYqOtG+D3C8y8/HBM3og3DjvFyogRhE31B3//rGq mLwYNCw2Nx/xQXKunj1StpJMLjVb8BjTJXZGuLf5lA5eZB8GnMiWSovObx/AalWbFErN4h V294Sd0Tw078lCiLx58HUCJT53WzKHoJjy1k+SmVNDbvVb5+AmGqszmKP1mup+ejrkTjB1 27CGeNaHJ3uF3r3PmwtjVPMXoNiwdCqk7SfxfuNFbuzQ9yvFcJN0fqAR6Hlb9Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnjDg4SCrz1CNd; Wed, 30 Apr 2025 16:24: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 53UGO3Ni083643; Wed, 30 Apr 2025 16:24:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UGO3Dx083640; Wed, 30 Apr 2025 16:24:03 GMT (envelope-from git) Date: Wed, 30 Apr 2025 16:24:03 GMT Message-Id: <202504301624.53UGO3Dx083640@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: b8b94f5ab1bf - main - vm_object: drop unnecessary vm_object.h header 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: b8b94f5ab1bffdb23ae8146ba2bf1f1f2952fae5 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=b8b94f5ab1bffdb23ae8146ba2bf1f1f2952fae5 commit b8b94f5ab1bffdb23ae8146ba2bf1f1f2952fae5 Author: Doug Moore AuthorDate: 2025-04-30 16:22:49 +0000 Commit: Doug Moore CommitDate: 2025-04-30 16:22:49 +0000 vm_object: drop unnecessary vm_object.h header The header vm_object.h is included in vm_phys.h and uma_core.h, where it is not necessary. Remove it. Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D50081 --- sys/vm/uma_core.c | 1 - sys/vm/vm_phys.c | 1 - 2 files changed, 2 deletions(-) diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 35eede04171f..61b03ef24925 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -84,7 +84,6 @@ #include #include #include -#include #include #include #include diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c index ca6bec8b8b9f..95bf6b61fe19 100644 --- a/sys/vm/vm_phys.c +++ b/sys/vm/vm_phys.c @@ -67,7 +67,6 @@ #include #include #include -#include #include #include #include From nobody Wed Apr 30 16:49:20 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 4Znjns0PRZz5tfs3; Wed, 30 Apr 2025 16:49:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Znjnr5FJZz4J6T; Wed, 30 Apr 2025 16:49:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746031760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KAm1GipsZpNhownAutGfMBb3caLyBiN7nDy1nwp81rw=; b=DvMyi5fWg6dkBj2Su3HaR9rZLLJ01I5viZGMBVXfHiNRKdltQqoTJH/3KY+HR4amV2Noow Q03or18YWnxfvSfZqoL/5qLZ0kWsK3uyjlR7mVSZMRH6h0IwEp872pP5Mae98+Cc2dcBdv JCq9fOGYa+vObixEpxH1B1QPee6NiUm4UrcsiBG4+Hd/owe98981Bu/LNXJ3GuH89ivHzE zWUejOlUNF2dGBJFf3oxP8DXaOMo7a10yyNniNzEDGmZJ8plXZXxdIY/LZA0PO4rMrPgkT oclDczRB49qhFBND1BSsu5bqIbNKt97nYXWGGTIEjADoNGAPVYFu6G43dyjb4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746031760; a=rsa-sha256; cv=none; b=BQQT/zodwjEiOae/xVWo+YSk+c4NbjZlseUVa8TtMIgmQx/IyfzlkM/UDnDXohgKOcrU+M GE1aLwO7Y1abxeL+glzKnfnRULUGcC1Z3ac6MGcgwYLiUU78uLI1w/e2KsJbPlV3dpX6Ez KLBrAVfevFmkXywSqfZojaT4youzLVXvuWXmx7DxQXRy5tMWF1H04cBCbLmhI/xA2g1MW9 BIJ0WNNbSejjAM/ti1+y1J1V5ppAp6ctK4+gJL1vfxMlSnIfWCTlZBtKo6tsKbwm886Trt uJBYlbNBqKTRE33yJgg73rbZ241CPFNZkHAqYy6Q7fUTp1iV4iXXY2J6D97gsA== 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=1746031760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KAm1GipsZpNhownAutGfMBb3caLyBiN7nDy1nwp81rw=; b=Ww0MEc6JCF26Du2s58EFPfK3SJ6zNa8wIBmDbNoSHZd3Rk0B42gGNY6K9EgjV8qi5pwZGq lQkXzlLKV01WSYpAV5hP9Eswh1VumLATPm3E6XZWyDyW335XUtBqRxgROTApYDlGMdgFs0 GsjXiOR08WS+kzyCBJtqkrCqM6GIB3AFmulOzZS1HS1b3EjbbLj7rLe8uYBZVyF8zrYXgq j7J+x3pkloPilvaVr15S+GzgTM0vTqg6+xgA3ymVHogisYi6yanju/bkAjk+f8GNfrB1XE n5HRPEwFWj1GUa8zQAviNIsOGvybRb5ENQ7TGVi3qdRO/CdrO2+ezojhXNsYZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Znjnr4cVdz1CMB; Wed, 30 Apr 2025 16:49:20 +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 53UGnKEY022364; Wed, 30 Apr 2025 16:49:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UGnKKT022361; Wed, 30 Apr 2025 16:49:20 GMT (envelope-from git) Date: Wed, 30 Apr 2025 16:49:20 GMT Message-Id: <202504301649.53UGnKKT022361@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 626ea75ed2e9 - main - time: use precise callout for clock_nanosleep(2) and nanosleep(2) 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 626ea75ed2e9e9365ef8d7a4fa8ef219020c98c6 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=626ea75ed2e9e9365ef8d7a4fa8ef219020c98c6 commit 626ea75ed2e9e9365ef8d7a4fa8ef219020c98c6 Author: Gleb Smirnoff AuthorDate: 2025-04-30 16:47:57 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 16:47:57 +0000 time: use precise callout for clock_nanosleep(2) and nanosleep(2) Don't apply tc_precexp and TIMESEL() that uses sbt_timethreshold (both derivatives of kern.timecounter.alloweddeviation) to sleep callout when processing the default and precise clocks. The default timer deviation of 5% is our internal optimization in the kernel, and we shouldn't leak that into the POSIX APIs. Note that application doesn't have any control to cancel the deviation, only a superuser can change the global tunable [with side effects]. Leave the deviation for CLOCK_*_FAST and CLOCK_SECOND that are documented as imprecise. Provide a sysctl kern.timecounter.nanosleep_precise that allows to restore the previous behavior. Improve documentation. Reviewed by: ziaee, vangyzen, imp, kib Differential Revision: https://reviews.freebsd.org/D50075 --- lib/libsys/nanosleep.2 | 52 +++++++++++++++++++++++++++++++++++++++++--------- sys/kern/kern_time.c | 36 +++++++++++++++++++++++++++------- 2 files changed, 72 insertions(+), 16 deletions(-) diff --git a/lib/libsys/nanosleep.2 b/lib/libsys/nanosleep.2 index 8a4931e51413..ba9aae1edf57 100644 --- a/lib/libsys/nanosleep.2 +++ b/lib/libsys/nanosleep.2 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 3, 2022 +.Dd April 29, 2025 .Dt NANOSLEEP 2 .Os .Sh NAME @@ -87,14 +87,6 @@ If, at the time of the call, the time value specified by is less than or equal to the time value of the specified clock, then .Fn clock_nanosleep returns immediately and the calling thread is not suspended. -.Pp -The suspension time may be longer than requested due to the -scheduling of other activity by the system. -It is also subject to the allowed time interval deviation -specified by the -.Va kern.timecounter.alloweddeviation -.Xr sysctl 8 -variable. An unmasked signal will terminate the sleep early, regardless of the .Dv SA_RESTART value on the interrupting signal. @@ -131,6 +123,32 @@ CLOCK_UPTIME_FAST CLOCK_UPTIME_PRECISE .El .Pp +The suspension time may be longer than requested due to the +scheduling of other activity by the system. +The clocks with the +.Dv _FAST +suffix and the +.Dv CLOCK_SECOND +are subject to the allowed time interval deviation specified by the +.Va kern.timecounter.alloweddeviation +.Xr sysctl 8 +variable. +The clocks with the +.Dv _PRECISE +suffix are always as precise as possible. +The +.Dv CLOCK_MONOTONIC , +.Dv CLOCK_REALTIME +and +.Dv CLOCK_UPTIME +are precise by default. +Setting the +.Va kern.timecounter.nanosleep_precise +.Xr sysctl 8 +to a false value would make those clocks to behave like the +.Dv _FAST +clocks. +.Pp The .Fn nanosleep function behaves like @@ -217,3 +235,19 @@ and was ported to .Ox 2.1 and .Fx 3.0 . +The +.Fn clock_nanosleep +system call has been available since +.Fx 11.1 . +.Pp +In +.Fx 15.0 +the default behavior of +.Fn clock_nanosleep +with +.Dv CLOCK_MONOTONIC , +.Dv CLOCK_REALTIME , +.Dv CLOCK_UPTIME +clocks and +.Fn nanosleep +has been switched to use precise clock. diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c index d7dc78366292..0c31c1563d99 100644 --- a/sys/kern/kern_time.c +++ b/sys/kern/kern_time.c @@ -494,6 +494,10 @@ kern_nanosleep(struct thread *td, struct timespec *rqt, struct timespec *rmt) rmt)); } +static __read_mostly bool nanosleep_precise = true; +SYSCTL_BOOL(_kern_timecounter, OID_AUTO, nanosleep_precise, CTLFLAG_RW, + &nanosleep_precise, 0, "clock_nanosleep() with CLOCK_REALTIME, " + "CLOCK_MONOTONIC, CLOCK_UPTIME and nanosleep(2) use precise clock"); static uint8_t nanowait[MAXCPU]; int @@ -504,7 +508,7 @@ kern_clock_nanosleep(struct thread *td, clockid_t clock_id, int flags, sbintime_t sbt, sbtt, prec, tmp; time_t over; int error; - bool is_abs_real; + bool is_abs_real, precise; if (rqt->tv_nsec < 0 || rqt->tv_nsec >= NS_PER_SEC) return (EINVAL); @@ -512,17 +516,31 @@ kern_clock_nanosleep(struct thread *td, clockid_t clock_id, int flags, return (EINVAL); switch (clock_id) { case CLOCK_REALTIME: + precise = nanosleep_precise; + is_abs_real = (flags & TIMER_ABSTIME) != 0; + break; case CLOCK_REALTIME_PRECISE: + precise = true; + is_abs_real = (flags & TIMER_ABSTIME) != 0; + break; case CLOCK_REALTIME_FAST: case CLOCK_SECOND: + precise = false; is_abs_real = (flags & TIMER_ABSTIME) != 0; break; case CLOCK_MONOTONIC: - case CLOCK_MONOTONIC_PRECISE: - case CLOCK_MONOTONIC_FAST: case CLOCK_UPTIME: + precise = nanosleep_precise; + is_abs_real = false; + break; + case CLOCK_MONOTONIC_PRECISE: case CLOCK_UPTIME_PRECISE: + precise = true; + is_abs_real = false; + break; + case CLOCK_MONOTONIC_FAST: case CLOCK_UPTIME_FAST: + precise = false; is_abs_real = false; break; case CLOCK_VIRTUAL: @@ -553,10 +571,14 @@ kern_clock_nanosleep(struct thread *td, clockid_t clock_id, int flags, } else over = 0; tmp = tstosbt(ts); - prec = tmp; - prec >>= tc_precexp; - if (TIMESEL(&sbt, tmp)) - sbt += tc_tick_sbt; + if (precise) { + prec = 0; + sbt = sbinuptime(); + } else { + prec = tmp >> tc_precexp; + if (TIMESEL(&sbt, tmp)) + sbt += tc_tick_sbt; + } sbt += tmp; error = tsleep_sbt(&nanowait[curcpu], PWAIT | PCATCH, "nanslp", sbt, prec, C_ABSOLUTE); From nobody Wed Apr 30 16:58:04 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 4Znk0B0Hm8z5tgM7; Wed, 30 Apr 2025 16:58:18 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 4Znk095K0jz4Pst; Wed, 30 Apr 2025 16:58:17 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-3d81ca1d436so324515ab.2; Wed, 30 Apr 2025 09:58:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746032296; x=1746637096; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Go4xwLdUTu0QsqMSZ9/mXTN6GFBQSycgwf/P+hdkCfs=; b=Rj56RwTdbc3eYXpCaRRIN6Hsdw2lr1dfGSECoHlGLPkqWsa5PPGZMgmK8hscfi18dy WVKR/PMMSDSl5XycxWRQfediZhjt/8rV21nrSPHp5kwG8Ja9JKLa4gortwHmmhRPxCTo TtIWJ4vJiL5CYnI9G0fqcbwzUBP9SzC86a/Fu+pNJ2mpzPbBsfN7BcALf5td/YCvp587 vEgoslKBsUjEQBTih9PDeQFYfSKd4I+KQB0YMSo6ZXkl833uf7AcuY/4Fwvjpbljl5B8 3vM4vsWLAzICoMDxlgR7lrMGkrhkezUP08MzKVN8kxvNE8+ZvIBdwoNHc9GUmhfMuR3D LSgg== X-Forwarded-Encrypted: i=1; AJvYcCU/cv9tYRtdM8j29kGudypEQldm3hsO5g9uZgCO3DSLqxGwUXe+wMI32uQGLPaDlkg2gSjNpZx67ye2NdmW8Wl2DWEybJQ=@freebsd.org, AJvYcCUKiOw2PyEoLg6kSkx3VXnIBkl69ngUXmpu1l88lSrY4PyI4ga0+sgG4mzyI/lUVagL30nh86UUEsaLc/JdKoO4VecW@freebsd.org, AJvYcCWZUDVaAocOTijpuePtZaKVWfBp5DzSVobU5gA1lKILFrUYX82b7n1hSHvBy88jv+cWeXHe@freebsd.org X-Gm-Message-State: AOJu0YxRM4eQuvs/G0bUOyvFqXc6ejatnKpwH8vNG3AVE3qAmhfOrfQ9 EcR/TOGf5Q7mNNQV4U2fONon6vuOVr9WCM8zTeXB8TWYCP/3p7WNTGPfhLP6x5OcyIhvaHGdKmP OX1JvfG6ZMmk/7HglTOohrPX3i73MMQ== X-Gm-Gg: ASbGncvi0OATtkcBcqyk4qtFCczIBAmdzNOX3Pakt+vQTp89Glk1IulIZEOU0P9ZGRm xJnWDEwDJBGXxOkiSFmg3GgXTtif/O+x1gyoVPUdEZ8ZKVZlrEN1n4kjERoBu1oPt7fgcL8O8MB IdloW/RcWkYtaD0yNcmW4kdAtvJT3S8vt9Xm43wTwc3SISO4nDKm0caOLk X-Google-Smtp-Source: AGHT+IGj3w5pg+aa4G69+i3gdOijogU+/cXf17xBoKg+JhtSD4V3+HxZAPQjGSgqy8IhZZXr0phM/cgnT7W/QUR1WVk= X-Received: by 2002:a05:6e02:1a41:b0:3d9:6485:3a03 with SMTP id e9e14a558f8ab-3d9676b4555mr45449705ab.4.1746032295747; Wed, 30 Apr 2025 09:58:15 -0700 (PDT) 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 References: <202504010810.5318A96d073963@gitrepo.freebsd.org> In-Reply-To: From: Ed Maste Date: Wed, 30 Apr 2025 12:58:04 -0400 X-Gm-Features: ATxdqUGu0ePoWgsc1Tsa4bUz60Ldp2VnrU07sVmlz0aImc0sK33AbP6r-mEk97Q Message-ID: Subject: Re: git: 91506dba7f2e - main - zoneinfo: also install tzdata.zi and version To: Philip Paeps , Dimitry Andric Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" 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: 4Znk095K0jz4Pst X-Spamd-Bar: ---- On Wed, 30 Apr 2025 at 00:58, Philip Paeps wrote: > > On 2025-04-30 02:44:46 (+0800), Ed Maste wrote: > > On Tue, 1 Apr 2025 at 04:10, Philip Paeps wrote: > >> The branch main has been updated by philip: > >> > >> URL: > >> https://cgit.FreeBSD.org/src/commit/?id=91506dba7f2eb147eeb55ec30640bc11755a1e8e > >> > >> commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e > >> Author: Philip Paeps > >> AuthorDate: 2025-04-01 08:09:37 +0000 > >> Commit: Philip Paeps > >> CommitDate: 2025-04-01 08:09:37 +0000 > >> > >> zoneinfo: also install tzdata.zi and version > >> > >> Build and install the shrunk version of the time zone database > >> required > >> by libc++ 19 std::chrono::current_zone (etc). While here, also > >> install > >> the tzdata 'version' file to align more closely with other > >> vendors. > >> > >> PR: 282377 > >> Reviewed by: dim, emaste, imp > >> Differential Revision: https://reviews.freebsd.org/D49577 > > > > Do you plan to MFC this to stable/14 for 14.3 as well? > > I was not planning to MFC this change. > > Does libc++ in stable/14 need this support? I suspect so - std::chrono::tzdb is C++20 and we presumably want it to exist/work in stable/14. Dimitry? From nobody Wed Apr 30 17:06:04 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 4Znk985550z5tggx; Wed, 30 Apr 2025 17:06: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 4Znk983j7Hz3DjV; Wed, 30 Apr 2025 17:06:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746032764; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u9LQK2B2jZYuVNISpgsUOcBksW+rOsD1Lr0RdSgWhdQ=; b=ZJpJIvBW0X3FT59WHQBLPLlbCAyA+jkm1gCot2PLRJncqVvbyGkrhai/BmsYXdGW5bG0/X g9a5KIJnw1S2IIq5orm4wmLd+hAVIeWGQQ14ihp/9VpgKLPkS9vPAyPWUi+t6JmFyfYY8V tsDgGbQiZoYQbFQ5ECHCf4V6g3JvuDlb8JkQKtsDKSSdJoKPUvJO/FCGq9HHOOM7HiK4sF BqvZ9BFAljKSOYeobPqR4B8htZY+OMkXo4GgeiD+Z7qA4eBPVT/G6Q+L8jY5MU+5KYkdKf 76k/e2Jiqq0/8DWIzhxtJWwhMJTt88hzwHpMdCFw5kHYl4nAxnRJkFAXIiPPMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746032764; a=rsa-sha256; cv=none; b=hobV9wQHnPWhuDAoLQHXLGXk5aNsY1sIFPe2dYRWhnmQhc6q3wLXbGPyJm6YaLmmPdC1QN b/fQQG9DrPZIobvV7AvKacrOzkqG/vTUjFTB8v5LVYBN1EJKgCQXZs28ONPgD+xhvtHQnO nnmrfkt3rJEXy7yKlGxIUJ4sQHAmxLyRphKK4OBE+KRtP7Ju+EYOqOMUDg3BQl3mZTDfpc QTjxC9fMqGUc9gQTNKWwaPgvYDGz3dowuj8TfShMH2MM6cytGinK6XYjpAse1u5UU+/xyG 5QXuxuJxwiRQQgy0iLsZs0WTz2vCW5et1RuAhfjRcYK9b9SRLnFGNOW1A8JhCw== 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=1746032764; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u9LQK2B2jZYuVNISpgsUOcBksW+rOsD1Lr0RdSgWhdQ=; b=Uu88zEAdRh9Tnq3iywobYT8ot8QLn+d7GBogV3h6/xpDQWC0IFkxrNctIgPVvdoyShzeIz uw1LPR1QqFepOGZmuey2q9FIbDBkv/5cUhB47yl9J/8HIWN+ixnaG7eadZCMWSOXJ5WUwQ dsnPxCnvzHxFoYB04Q8KjVMTGWibBzYTVr8xT0EGjcNimaLXpACGAj2t2FE1hT5NmZAGzQ Nvb6KXcQgIorL1dwwUHY/u7L1j41eaxpgwfbZlCLqScADJ5IDpif0KAJFp2MZaZDpSNIyg 4ZHsOPQd4Y4ukIOfEiuGRLjk6zOlTWA2+JLhwnbf4zBL5eU+2wTzgSqinmC+yA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Znk98332gz1Cld; Wed, 30 Apr 2025 17:06: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 53UH64jk060321; Wed, 30 Apr 2025 17:06:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UH6469060318; Wed, 30 Apr 2025 17:06:04 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:06:04 GMT Message-Id: <202504301706.53UH6469060318@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: b21104487324 - main - sendfile: ensure that the low water mark is at least a page 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b2110448732434841fc30bb0af0d28902a6621b3 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=b2110448732434841fc30bb0af0d28902a6621b3 commit b2110448732434841fc30bb0af0d28902a6621b3 Author: Jonathan T. Looney AuthorDate: 2025-04-30 17:03:04 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 17:05:47 +0000 sendfile: ensure that the low water mark is at least a page size , when possible, to cut down on the possibility of short I/Os. This change has been at Netflix for several years already. --- sys/kern/kern_sendfile.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/kern/kern_sendfile.c b/sys/kern/kern_sendfile.c index 05a820fe5ac1..d409f41824ad 100644 --- a/sys/kern/kern_sendfile.c +++ b/sys/kern/kern_sendfile.c @@ -779,6 +779,9 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, SOCKBUF_LOCK(&so->so_snd); if (so->so_snd.sb_lowat < so->so_snd.sb_hiwat / 2) so->so_snd.sb_lowat = so->so_snd.sb_hiwat / 2; + if (so->so_snd.sb_lowat < PAGE_SIZE && + so->so_snd.sb_hiwat >= PAGE_SIZE) + so->so_snd.sb_lowat = PAGE_SIZE; retry_space: if (so->so_snd.sb_state & SBS_CANTSENDMORE) { error = EPIPE; From nobody Wed Apr 30 17:12:35 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 4ZnkJg5HdNz5thKS; Wed, 30 Apr 2025 17:12: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 4ZnkJg2xg7z3HwJ; Wed, 30 Apr 2025 17:12:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kxzSKz98iYKXEzERuiRG7Zlf5pu52BxizRC9KgjT4wk=; b=mZQYJKc1f3VZX/ad548JX/i51y5zxa0DqN6emvJvXZKXEUD/QTq6G0ziIT5PMScOoq28Il zA41P7qSHcw8AtZPtonSzBNm4av+tr1MkV+JijBnxEbL83BlWHsgDff/I4VlMYBFuj2tLv lMB7mSIsVdcvrRpJhDEKrE8gA03r7ZcnACv98vYZkaqcCAXnB7VTINfO3HBTs0XC1gFMjg UlNWhsOsZsnOepm2F2eLZhdk7QpaE1YAOnMpXRAIFMk6O1KilLjQnvasPqnkwcsFvNQzeh qLp0/O2VJ+CCfjvyRv4AUYkJfc5oMn1dh1uuYse335g7UqktKDJDaieMti6gYw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033155; a=rsa-sha256; cv=none; b=QBVB5qmuyDEDYKdust7b0rBDmI0bKn5p6jiN5KOG1IpQy7FoMP9ru6I830onNo8/QrNp3b VE5wxwbD00tge5xtVutbWonhIOWUiEmL+WoRs6mxcwfrype6KpFuB0uJTOKo2Rdfa8weyH dNXfKotlj4sfQifxqTm+9gGD6h3VUMn83OEpLeZhwPF0FOZJEPyUU61VhE4Zn+BSkrsafV SmMaCV9/obrj8oXvjo5sECGC7gFWN1SdfJlhi86wd7Eoo5vF3cIof47G8VCxqCM+HAzI7m 4IsERTJrH3TC10BuRQ32oV8FWPg6bP/+5SdTI8El8KKvnVuEc8sy7SXyATsZFA== 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=1746033155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kxzSKz98iYKXEzERuiRG7Zlf5pu52BxizRC9KgjT4wk=; b=jFFBncRL45uxyv4JdOpFV2qIJcHykW+heth7SYiMJSZ+VYPnlOL5KfOrKBYurM2U1LRYNu XRd17pshzNhNn00VG6WJoOHHJ3wtytGS3juix6ibcStGYljFi5x9zwNrYvUiCOoGz9T7U1 2Of75vQoYBhp4RsHaGgp19FsR2hthA+lC4wRVADNpuO4InGeulZEyTOdPCcu2oRgZR9bwj 0rStKJRFcLsiRMofAoV7ar0Y/60uRJ/EF76I6TLpzADrsAHRqFx/NdgUDujejFLCpF+v6p 2OPchCAVh5UoQ+UeJw+sfwH8uVsC8x6sV5na+evgO0g4xViCv8x6Wws7WjFGJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnkJg2W3szR4; Wed, 30 Apr 2025 17:12: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 53UHCZNU077391; Wed, 30 Apr 2025 17:12:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHCZZK077388; Wed, 30 Apr 2025 17:12:35 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:12:35 GMT Message-Id: <202504301712.53UHCZZK077388@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: 014a45493865 - main - pctrie: add a locked pctrie_lookup_range 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: 014a45493865f217c3c0ddd240c2260913ba7f76 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=014a45493865f217c3c0ddd240c2260913ba7f76 commit 014a45493865f217c3c0ddd240c2260913ba7f76 Author: Doug Moore AuthorDate: 2025-04-30 17:11:34 +0000 Commit: Doug Moore CommitDate: 2025-04-30 17:11:34 +0000 pctrie: add a locked pctrie_lookup_range Add a locked version of pctrie_lookup_range_unlocked. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50088 --- sys/kern/subr_pctrie.c | 48 ++++++++++++++++++++++++++++++++++++++---------- sys/sys/pctrie.h | 14 ++++++++++++++ 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/sys/kern/subr_pctrie.c b/sys/kern/subr_pctrie.c index feb29cf82330..be1d57b4931f 100644 --- a/sys/kern/subr_pctrie.c +++ b/sys/kern/subr_pctrie.c @@ -609,22 +609,19 @@ pctrie_iter_prev(struct pctrie_iter *it) /* * Returns the number of contiguous, non-NULL entries read into the value[] - * array, without requiring an external lock. These entries *may* never have - * been in the pctrie all at one time, but for a series of times t0, t1, t2, - * ..., with ti <= t(i+1), value[i] was in the trie at time ti. + * array, starting at index. */ -int -pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, - uint64_t *value[], int count, smr_t smr) +static __always_inline int +_pctrie_lookup_range(struct pctrie *ptree, uint64_t index, uint64_t *value[], + int count, smr_t smr, enum pctrie_access access) { struct pctrie_node *parent, *node; int base, end, i; parent = NULL; - smr_enter(smr); for (i = 0; i < count;) { node = _pctrie_lookup_node(ptree, parent, index + i, &parent, - smr, PCTRIE_SMR); + smr, access); value[i] = pctrie_match_value(node, index + i); if (value[i] == NULL) break; @@ -635,7 +632,7 @@ pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, end = MIN(count, i + PCTRIE_COUNT - base); while (i < end) { node = pctrie_node_load(&parent->pn_child[base++], - smr, PCTRIE_SMR); + smr, access); value[i] = pctrie_toval(node); if (value[i] == NULL) break; @@ -644,10 +641,41 @@ pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, if (i < end) break; } - smr_exit(smr); return (i); } +/* + * Returns the number of contiguous, non-NULL entries read into the value[] + * array, starting at index, assuming access is externally synchronized by a + * lock. + */ +int +pctrie_lookup_range(struct pctrie *ptree, uint64_t index, + uint64_t *value[], int count) +{ + return (_pctrie_lookup_range(ptree, index, value, count, NULL, + PCTRIE_LOCKED)); +} + +/* + * Returns the number of contiguous, non-NULL entries read into the value[] + * array, starting at index, without requiring an external lock. These entries + * *may* never have been in the pctrie all at one time, but for a series of + * times t0, t1, t2, ..., with ti <= t(i+1), value[i] was in the trie at time + * ti. + */ +int +pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, + uint64_t *value[], int count, smr_t smr) +{ + int res; + + smr_enter(smr); + res = _pctrie_lookup_range(ptree, index, value, count, smr, PCTRIE_SMR); + smr_exit(smr); + return (res); +} + /* * 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. diff --git a/sys/sys/pctrie.h b/sys/sys/pctrie.h index 01d9f34f11b9..0ccd4ec1e42e 100644 --- a/sys/sys/pctrie.h +++ b/sys/sys/pctrie.h @@ -215,6 +215,18 @@ name##_PCTRIE_LOOKUP(struct pctrie *ptree, uint64_t key) \ return name##_PCTRIE_VAL2PTR(pctrie_lookup(ptree, key)); \ } \ \ +static __inline __unused int \ +name##_PCTRIE_LOOKUP_RANGE(struct pctrie *ptree, uint64_t key, \ + struct type *value[], int count) \ +{ \ + uint64_t **data = (uint64_t **)value; \ + \ + count = pctrie_lookup_range(ptree, key, data, count); \ + for (int i = 0; i < count; i++) \ + value[i] = name##_PCTRIE_NZVAL2PTR(data[i]); \ + return (count); \ +} \ + \ static __inline __unused struct type * \ name##_PCTRIE_LOOKUP_LE(struct pctrie *ptree, uint64_t key) \ { \ @@ -383,6 +395,8 @@ void pctrie_insert_node(uint64_t *val, struct pctrie_node *parent, uint64_t *pctrie_lookup(struct pctrie *ptree, uint64_t key); uint64_t *pctrie_lookup_unlocked(struct pctrie *ptree, uint64_t key, smr_t smr); +int pctrie_lookup_range(struct pctrie *ptree, + uint64_t index, uint64_t *value[], int count); int pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, uint64_t *value[], int count, smr_t smr); uint64_t *pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index); From nobody Wed Apr 30 18:07:54 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 4ZnlXX2Xhkz5tm5N; Wed, 30 Apr 2025 18:07:56 +0000 (UTC) (envelope-from dim@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 4ZnlXX1C6Cz3wLy; Wed, 30 Apr 2025 18:07:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746036476; 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=pZc+8vJFMunndNWcqwle89hSQEzyDfjYk4C7Xcxxqv4=; b=bIGk6Ka7/1IrN8sOGnNtWoAFSbi62dsDKwuEJ874Dgb9ano0toQrDlqlS7bkc7rzNMMJFN 4m9Yv3YfAOVvlZOpLhOmwx/BnGGHKE57iRuBX+6OGv7GIhwNZwLrHZkL7o8q6712T0xhOF 7LVsY9U6u1z3QjCfwXej5NBo7gnSYEsqytK9wYWeOHaciq0EQVhgt1hYjBn/vHdPydkAE0 yIpFXk665Z4XYmtN2fYMRWIPmx7m8fe76yWHu4pnocYGMhNwxEeAOCQmRM90Q0Xaqgfewa 3Fm4B+QxwwQxiHIIdkzVIALEFq7JBlum/WSqqRzwKnfc9sNJfK8cIXH659Id7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746036476; a=rsa-sha256; cv=none; b=vW3T3rTQm1WF86D4ZOQJa4Azo4Mf4uFg1pzgLM9cOzlLzcSKJedJkKywi0fJODgnczX5gi wx/Rspt/y/OKLO4Xdr7p5XDDJncnqIhN5EtN8N3mCEAteO+RY98PHSMdsEMr03L9+4QdzV BQOxZZeRdf/cyVmCCAMWi2/cL/aUjhShrHx7nn8HENsKgl1P8nVT/ySEWm5YcWhlccvYiM +w9UPkD56sYk3kOxOcqNXsg/H57NntnHDbR8FcQcPZj3S0PU8ykLtIzPr0YSE+g7AuGg48 HGn9fyDb7DpW0a+i+Q/c6WX+SuKiAqjI2tMi7SsqwspV/XnywBbTX+lrUOFArQ== 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=1746036476; 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=pZc+8vJFMunndNWcqwle89hSQEzyDfjYk4C7Xcxxqv4=; b=hzvRX8ImFwnoN63FgjID9gUKxH/DHOetDcOy4be9blroXr3tGMW7C39M8VXh75QMy9sGG5 GEpCERMhWrIqUZ3lyyzBmSMa5iMk0d0gCZ+NKmZqWvowN4ZCzWyLdbuJcIr+X+tzpAmW7w mj+qU/l2akWwKoYgc6FOpMTCc4r7PsSJbHjElhdG8T9b6Ys8FqpSGnD+CxppRyUI8pKE/h HCViTJSrsH6ZRJXzVkCyOcfCW+aHDnZN1k53jAHKhxhWkBqRbV843Hq7WZ07TZMH9zdT8k hh4bt/Rlwx6R0qBIM6QqTyw1sjrtAZ6sUfm8vmAexVdeM2B/IzfXPB253aVEPQ== Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.3 with cipher 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 "tensor.andric.com", Issuer "R11" (verified OK)) (Authenticated sender: dim) by smtp.freebsd.org (Postfix) with ESMTPSA id 4ZnlXW6zNxzcP; Wed, 30 Apr 2025 18:07:55 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtpclient.apple (longrow-wifi.home.andric.com [192.168.0.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id BEF404E254; Wed, 30 Apr 2025 20:07:54 +0200 (CEST) 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 \(3731.700.6.1.10\)) Subject: Re: git: 91506dba7f2e - main - zoneinfo: also install tzdata.zi and version From: Dimitry Andric In-Reply-To: Date: Wed, 30 Apr 2025 20:07:54 +0200 Cc: Philip Paeps , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <202504010810.5318A96d073963@gitrepo.freebsd.org> To: Ed Maste X-Mailer: Apple Mail (2.3731.700.6.1.10) On 30 Apr 2025, at 18:58, Ed Maste wrote: >=20 > On Wed, 30 Apr 2025 at 00:58, Philip Paeps wrote: >>=20 >> On 2025-04-30 02:44:46 (+0800), Ed Maste wrote: >>> On Tue, 1 Apr 2025 at 04:10, Philip Paeps = wrote: >>>> The branch main has been updated by philip: >>>>=20 >>>> URL: >>>> = https://cgit.FreeBSD.org/src/commit/?id=3D91506dba7f2eb147eeb55ec30640bc11= 755a1e8e >>>>=20 >>>> commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e >>>> Author: Philip Paeps >>>> AuthorDate: 2025-04-01 08:09:37 +0000 >>>> Commit: Philip Paeps >>>> CommitDate: 2025-04-01 08:09:37 +0000 >>>>=20 >>>> zoneinfo: also install tzdata.zi and version >>>>=20 >>>> Build and install the shrunk version of the time zone database >>>> required >>>> by libc++ 19 std::chrono::current_zone (etc). While here, also >>>> install >>>> the tzdata 'version' file to align more closely with other >>>> vendors. >>>>=20 >>>> PR: 282377 >>>> Reviewed by: dim, emaste, imp >>>> Differential Revision: https://reviews.freebsd.org/D49577 >>>=20 >>> Do you plan to MFC this to stable/14 for 14.3 as well? >>=20 >> I was not planning to MFC this change. >>=20 >> Does libc++ in stable/14 need this support? >=20 > I suspect so - std::chrono::tzdb is C++20 and we presumably want it to > exist/work in stable/14. Dimitry? The tzdata.zi file is a prerequisite, but I never got to completely verifying that it actually works. At some point I had a hand-concocted file, but libc++ fell over on it. I'm unsure what the status is now. -Dimitry From nobody Wed Apr 30 20:14:47 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 4ZnpLw1gJCz5tw4y; Wed, 30 Apr 2025 20:14: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 4ZnpLv4mXDz3GWH; Wed, 30 Apr 2025 20:14:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746044087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GBuvs0FODSBen9LqTQPqodKbfPIR+ZmegWPZsu+JE8I=; b=C3lgZue3Ze7UN2Td/6ad2v8sip49PUlKkbiCGt6dsMcGmYBhs9sDd3+M+Nxp1Oa7jv+Ce6 7evYl81TSMfUzVXumgRDk9qbXn7efUwQ2qXC1OVvXSCfA+Hfh2z3nOQYSecGO3rVMkEiYz QIRfW8xrElmNWKaSOfTbiKSk2XSijVzGNSgrK2I9L7dztd1VBAbS0FcUbo8Oft2R2esMcB ZFVvJ+DdTpGgc+SaUSMlaagLMyT8cuVOvHO5BbNus9H0mL9tnI2ggL0LMkdQIr5hUabvSL QWziSST0qu3hN3JBSvooHdY1JVyloltRgMLxS6TrbMthJdf++rCeEaqpnlLFsw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746044087; a=rsa-sha256; cv=none; b=sO40wB6pyaPcdEERxH3TlRATIkfKZIEHH0W/nSK3n6WYhix5B4x6H8kdujMtS4NKJCiVAL nVx0O8DaZXeodQsrtUIMcAwg+pKrWt0mepoVZkuM+uVwDAqxXRH9W+vgJsD1Ze2S/hA1Ps +VMlOnRKTZdETTlvmm2tK4FhFObtDE/MuWrEAOtcRKnvLReXErJHJHXypLeRhUfNinwNiG 1JjGTtmUsXMMa2F9klDAdYVeJyXctuQC3TA178rh537hktdz85g/ay3XMfKiZbAXyv0KOl otvI4SDhcD7u6t9EconB4zN4OVcoKo4cdtl+07JhRiSV6/eP9pvRZj7uLBYM1g== 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=1746044087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GBuvs0FODSBen9LqTQPqodKbfPIR+ZmegWPZsu+JE8I=; b=kApYb2FEKZWo50leQHUlti0qb/nGGeiV8lc3S291FYw1MM6mZdXF5AKkRFdGBzKZaXblWy upoKhx//OpvUnJQIh13pQ91t4JAdiTwovXOD4r+9Jz2Nq56r1prfk1DXxeXM3YW7cGv3gY EqmNtfnzPGWWuFimAPAmsC1GY2+MGQ+2yWvlQOwyE7ZrTPZe5OFMldQFUjG95N2xOgE2iy 1vjIyl7v+WTsseleXhfnMiI1RUM1/D/VhLZZIwVwrWxJwJEfqPCWx4wxoa9QDQx+SqQd0Y F0CZG2v9DOnZ7Emlx1XDA0PaJhSA3V+vBNA8tRZip7tT0QI2nlrgi+5tlGEdzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnpLv4FXGz4tT; Wed, 30 Apr 2025 20:14: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 53UKElkE016043; Wed, 30 Apr 2025 20:14:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UKElhs016040; Wed, 30 Apr 2025 20:14:47 GMT (envelope-from git) Date: Wed, 30 Apr 2025 20:14:47 GMT Message-Id: <202504302014.53UKElhs016040@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Ziaee Subject: git: f6b44ffd54be - main - mount: Improve usage message and polish man page descriptions 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f6b44ffd54be4ed701b53069ed8c6c2b60e3e01c Auto-Submitted: auto-generated The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=f6b44ffd54be4ed701b53069ed8c6c2b60e3e01c commit f6b44ffd54be4ed701b53069ed8c6c2b60e3e01c Author: Alexander Ziaee AuthorDate: 2025-04-30 19:52:59 +0000 Commit: Alexander Ziaee CommitDate: 2025-04-30 19:52:59 +0000 mount: Improve usage message and polish man page descriptions + license: tag spdx, remove dead hyphen + -t: fix linter errors, sync to program usage + -o ro: explain itself before explaining it's equivalence + -o rw: mention MFC after: 1 week Fixes: 70866c8dbdb6c (Fix synopsis of the -t option) Reviewed by: imp, mhorne, Pat Maddox Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49671 --- sbin/mount/mount.8 | 19 ++++++++++++------- sbin/mount/mount.c | 6 +++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/sbin/mount/mount.8 b/sbin/mount/mount.8 index feed64bc5c1c..b584d71ea567 100644 --- a/sbin/mount/mount.8 +++ b/sbin/mount/mount.8 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-3-Clause +.\" .\" Copyright (c) 1980, 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" @@ -25,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 19, 2024 +.Dd April 30, 2025 .Dt MOUNT 8 .Os .Sh NAME @@ -37,7 +40,7 @@ .Op Fl adflpruvw .Op Fl F Ar fstab .Op Fl o Ar options -.Op Fl t Oo Cm no Oc Ns Cm Ar type Ns Op Cm , Ns Ar type ... +.Op Fl t Oo Cm no Oc Ns Ar type Ns Op , Ns Ar type ... .Nm .Op Fl -libxo .Op Fl dfpruvw @@ -46,7 +49,7 @@ .Op Fl -libxo .Op Fl dfpruvw .Op Fl o Ar options -.Op Fl t Oo Cm no Oc Ns Cm Ar type Ns Op Cm , Ns Ar type ... +.Op Fl t Oo Cm no Oc Ns Ar type Ns Op , Ns Ar type ... .Ar special node .Sh DESCRIPTION The @@ -270,9 +273,11 @@ It is set automatically when the user does not have super-user privileges. Do not follow symlinks on the mounted file system. .It Cm ro -The same as -.Fl r ; -mount the file system read-only (even the super-user may not write it). +Mount the filesystem read-only, even the super-user may not write it. +Equivalent to +.Fl r . +.It Cm rw +Mount the filesystem read-write. .It Cm snapshot Take a snapshot of the specified filesystem. When this option is used, all other options are ignored. @@ -432,7 +437,7 @@ The same as the argument to the .Fl o option. -.It Fl t Oo Cm no Oc Ns Cm Ar type Ns Op Cm , Ns Ar type ... +.It Fl t Oo Cm no Oc Ns Ar type Ns Op , Ns Ar type ... The argument following the .Fl t is used to indicate the file system type. diff --git a/sbin/mount/mount.c b/sbin/mount/mount.c index 03ae69272e1a..496d71b57e4c 100644 --- a/sbin/mount/mount.c +++ b/sbin/mount/mount.c @@ -1,4 +1,4 @@ -/*- +/* * SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 1980, 1989, 1993, 1994 @@ -882,9 +882,9 @@ usage(void) { xo_error("%s\n%s\n%s\n", -"usage: mount [-adflpruvw] [-F fstab] [-o options] [-t ufs | external_type]", +"usage: mount [-adflpruvw] [-F fstab] [-o options] [-t [no]type[,type ...]]", " mount [-dfpruvw] special | node", -" mount [-dfpruvw] [-o options] [-t ufs | external_type] special node"); +" mount [-dfpruvw] [-o options] [-t [no]type[,type ...]] special node"); EXIT(EXIT_FAILURE); } From nobody Wed Apr 30 21:14:42 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 4Znqh30m7kz5v1XJ; Wed, 30 Apr 2025 21:14: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 4Znqh26wDjz40wS; Wed, 30 Apr 2025 21:14:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746047683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCcavTguDcKUwrDondfjP8dlY5ecP/7QbBowY944F1w=; b=EE66BiIZgCbuliQHsvkOwqo2BKlRmbC8UDPv0qIbxz5rCEblrMQnah/s5SiKYIx2K650wj 1WpOCAERURqKxTK7g4nsjAppJCxsvosOqaIVBSPd+RPLgPmrK8xvKPn+pNE1nAQxXTWr81 ZIlzO62tgEIYMwEQcoCSJ86ydPPTT9hwsdaDIb005rF0v3Kizuh4iNG8fTHirYKJeYx9Jc NsaSxMF6PWozDqQ7sb4apgmI17rCh02lHSsDNhr4z081jL8t6KxC75H41hvx6QbS5jBKqv O6ux7Xmh+TZl3IJXDqOqtqMEL+QZCTdSrUkXmzz2tXndPi7VygaiBm6J+4NEmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746047683; a=rsa-sha256; cv=none; b=RkF8sO34FmnYZVVlJUfg9g+6Y0ZynUtNgONRoO33SDx7SuRdA2bM/uXo5sLEIPDjBoqnT6 qnJnMC4g7kE1irbh8gcDSD99ZU2udTzjMLJFk0+uPg70AeCc+c9TtLd1/9trpCvBTUQKAE hXJYMQgS5V12/1Py6syXc2ZHDxT5zE7rZEl8OVqHMkGmW6kxgu3w1gmGphAqcrLS50pv5h 16fuwp4h4pgu5j4dN65+M6uU9A82MbR4XByOUDRhRtIZlQKacGHS7ZWH33Ax3RP4+t4EeU 73UU76nqPiKGnC+nNvLtWD0JZnmoem8K+YYGQUD4f8fpqufSqpGPcW6Ewn4lNA== 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=1746047683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCcavTguDcKUwrDondfjP8dlY5ecP/7QbBowY944F1w=; b=OvmLhv3PqIw5XFFIrhBDCFPUr0Au3xrec73EY/aK8AyDkUr4h4DAnvLNF/kQ/nNDmkWMNV gX+uLLo9MoTsHgetkBA1OcqrMvkKdfXJgZiwVLrPLV7Tpm3ZCU4Oojwip2IrpbH0oobBov aeh5EeLIpeQ5KbIDDxa6TICMiAYrn1dNn4GSi3WhW5c+WzlhGSqeZz5lVJ2qZDHGGbUgT3 4ZQnht1DgiiYw9upsllmFBYEjOVsbPhpnzLRCGkJbLH/EV0K0rWo1/oxkyaMjDUv5dUUHW WiEX27NHNaMYEDTb6DEUsf1PYsMWdGbZw4f4I6EoUyzPMSL6XvduoFPJ/8f6wA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Znqh26NZbz6nV; Wed, 30 Apr 2025 21:14: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 53ULEgiu027866; Wed, 30 Apr 2025 21:14:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53ULEgU1027863; Wed, 30 Apr 2025 21:14:42 GMT (envelope-from git) Date: Wed, 30 Apr 2025 21:14:42 GMT Message-Id: <202504302114.53ULEgU1027863@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: aba6f33275e7 - main - sockets: provide protocol method pr_kqfilter 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aba6f33275e72b9de8b4936cd8c00dd671e5d6e8 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=aba6f33275e72b9de8b4936cd8c00dd671e5d6e8 commit aba6f33275e72b9de8b4936cd8c00dd671e5d6e8 Author: Gleb Smirnoff AuthorDate: 2025-04-30 21:13:58 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 21:13:58 +0000 sockets: provide protocol method pr_kqfilter Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D48919 --- sys/kern/sys_socket.c | 10 +++++++++- sys/kern/uipc_domain.c | 1 + sys/kern/uipc_socket.c | 4 +--- sys/sys/protosw.h | 3 +++ sys/sys/socketvar.h | 1 + 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c index 456d93ff0d68..c221106ae067 100644 --- a/sys/kern/sys_socket.c +++ b/sys/kern/sys_socket.c @@ -87,7 +87,7 @@ static fo_rdwr_t soo_read; static fo_rdwr_t soo_write; static fo_ioctl_t soo_ioctl; static fo_poll_t soo_poll; -extern fo_kqfilter_t soo_kqfilter; +static fo_kqfilter_t soo_kqfilter; static fo_stat_t soo_stat; static fo_close_t soo_close; static fo_chmod_t soo_chmod; @@ -291,6 +291,14 @@ soo_poll(struct file *fp, int events, struct ucred *active_cred, return (so->so_proto->pr_sopoll(so, events, td)); } +static int +soo_kqfilter(struct file *fp, struct knote *kn) +{ + struct socket *so = fp->f_data; + + return (so->so_proto->pr_kqfilter(so, kn)); +} + static int soo_stat(struct file *fp, struct stat *ub, struct ucred *active_cred) { diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c index 2d68e11b9f0a..3f31f8ba421c 100644 --- a/sys/kern/uipc_domain.c +++ b/sys/kern/uipc_domain.c @@ -191,6 +191,7 @@ pr_init(struct domain *dom, struct protosw *pr) DEFAULT(pr_sopoll, sopoll_generic); DEFAULT(pr_setsbopt, sbsetopt); DEFAULT(pr_aio_queue, soaio_queue_generic); + DEFAULT(pr_kqfilter, sokqfilter_generic); #define NOTSUPP(foo) if (pr->foo == NULL) pr->foo = foo ## _notsupp NOTSUPP(pr_accept); diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 10f81a959147..03a2c532f053 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -186,7 +186,6 @@ static int filt_soread(struct knote *kn, long hint); static void filt_sowdetach(struct knote *kn); static int filt_sowrite(struct knote *kn, long hint); static int filt_soempty(struct knote *kn, long hint); -fo_kqfilter_t soo_kqfilter; static const struct filterops soread_filtops = { .f_isfd = 1, @@ -4488,9 +4487,8 @@ sopoll_generic(struct socket *so, int events, struct thread *td) } int -soo_kqfilter(struct file *fp, struct knote *kn) +sokqfilter_generic(struct socket *so, struct knote *kn) { - struct socket *so = kn->kn_fp->f_data; struct sockbuf *sb; sb_which which; struct knlist *knl; diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h index 2f74148efa1d..4808f136cabf 100644 --- a/sys/sys/protosw.h +++ b/sys/sys/protosw.h @@ -51,6 +51,7 @@ struct stat; struct ucred; struct uio; struct kaiocb; +struct knote; enum shutdown_how; /* USE THESE FOR YOUR PROTOTYPES ! */ @@ -89,6 +90,7 @@ typedef int pr_sosend_t(struct socket *, struct sockaddr *, struct uio *, typedef int pr_soreceive_t(struct socket *, struct sockaddr **, struct uio *, struct mbuf **, struct mbuf **, int *); typedef int pr_sopoll_t(struct socket *, int, struct thread *); +typedef int pr_kqfilter_t(struct socket *, struct knote *); typedef void pr_sosetlabel_t(struct socket *); typedef void pr_close_t(struct socket *); typedef int pr_bindat_t(int, struct socket *, struct sockaddr *, @@ -138,6 +140,7 @@ struct protosw { pr_sosetlabel_t *pr_sosetlabel; /* MAC, XXXGL: remove */ pr_setsbopt_t *pr_setsbopt; /* Socket buffer ioctls */ pr_chmod_t *pr_chmod; /* fchmod(2) */ + pr_kqfilter_t *pr_kqfilter; /* kevent(2) */ }; #endif /* defined(_KERNEL) || defined(_WANT_PROTOSW) */ #ifdef _KERNEL diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index 02d0ca139fa4..8e70ada24259 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -527,6 +527,7 @@ struct socket * struct socket * sopeeloff(struct socket *); int sopoll_generic(struct socket *so, int events, struct thread *td); +int sokqfilter_generic(struct socket *so, struct knote *kn); int soaio_queue_generic(struct socket *so, struct kaiocb *job); int soreceive(struct socket *so, struct sockaddr **paddr, struct uio *uio, struct mbuf **mp0, struct mbuf **controlp, int *flagsp); From nobody Wed Apr 30 21:18:12 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 4Znqm46CN7z5v1dK; Wed, 30 Apr 2025 21:18: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 4Znqm45YKvz439Q; Wed, 30 Apr 2025 21:18:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746047892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HJ8K8VTT6bYz3WaoSUd96Ba8HAUNRBl/VbP4N9oVdZs=; b=L+VyMp7W0arsLKPj2IiiAEAyGWI6CkupgvTnimx8pawHxS1TDOFWL3ZzQxSDsYEfKN5nwE f7yFRdQtZIgm3ewEZhzKxRJDuAyuxSma0Yonn+QRIh6zIjDy6+Qu6xiizA+7ste6ZMi2eS NVgX9PD27RFkjEHqgO1MUIaspNCrihntijGzBVaQ0ifLXS+xQ7XINci/tORGiQVxozJwiI 7WmZEjQzufVL0UA2Oyc/WeTzFFbXfet5m3MoXfkTb+mj8G0Odno2PjBYM4hW8XXJKbJh0I TII8Ar7QPdHeNY7j3B0iYC3WCLFuuPQYgjqcTYMf3rxe3iH95/ryHWmw/B5m0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746047892; a=rsa-sha256; cv=none; b=eMzjLFmZTe1KC6f0OtlkoDNTitXlvGOXKcS+H+5DgdylrMamfz9p36CzWuxwsCvdF6Vc3b aaoHzqc3T++Vp+/j8BCJPO7Lf1AS2/MIrhyvud2rErO9mfKR/6EBDvWqZE0nHSLtOYjCTU LhQ8d8seSUXP9EKkmRvXUfhiBJ5eZ5iQkii5OeTC3zgor09gIl/z+/0XmepAO+Y1bJrjgA 7vPvkp6klA+h/jvy9I5T0/0tS0Eyzgnai5T7Kghl8deHjEMXmHSKX0gLRqqEdjG0jk5rs9 5y3zbH+YJpgi+Dlhvcjk5trV0dXHU9NnGqq/fPGLvDKXYRhYH2D86Qd4Zz7Q8g== 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=1746047892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HJ8K8VTT6bYz3WaoSUd96Ba8HAUNRBl/VbP4N9oVdZs=; b=uP4lhHsjPCbjfGzKBK0MTjpIjlmLyhH4OT47HW1lQZlj3DoAE2tjMT0sOYYiciypEhfV+R aKrKvJcEm5VVuQI6Uhdykx0UtOzokPzyriPYbJXCaai8QgZad/v4sToA84uySM9w4Id3w5 fXA24LzYIcHe+nQE5EFWXhdlGizdcFNUk3wT1iSV+eChojGzX/9YxDYJ0T1fFdmBFmYBMU 3jvuKLfw2lZL+ikGb0/nOn9c7nUVe0M6nZEeK2AfPZG1IDKEchw5QPMn51DkRLlm709SbR 4vaxkoU57wVz1GvAEuNonF0FfqrSfmv+VAmmBJAdfC7mDDLFM1J8umFWYycp7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Znqm44q5Yz6sm; Wed, 30 Apr 2025 21:18:12 +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 53ULICZh029006; Wed, 30 Apr 2025 21:18:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53ULICoj029003; Wed, 30 Apr 2025 21:18:12 GMT (envelope-from git) Date: Wed, 30 Apr 2025 21:18:12 GMT Message-Id: <202504302118.53ULICoj029003@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: a35f24c9055d - main - sendfile: factor out socket send buffer space sensing into a method 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a35f24c9055d90b409eede861b7dc6defa01a118 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=a35f24c9055d90b409eede861b7dc6defa01a118 commit a35f24c9055d90b409eede861b7dc6defa01a118 Author: Gleb Smirnoff AuthorDate: 2025-04-30 21:17:35 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 21:17:35 +0000 sendfile: factor out socket send buffer space sensing into a method Move a block of code that works with the socket send buffer from the main sendfile loop into a separate function. Make it a protocol method, so that protocols may provide a different one. While here, provide a long comment explaining why we modify sb_lowat and why we can't just remove that hack. No functional change intended. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D48918 --- sys/kern/kern_sendfile.c | 155 ++++++++++++++++++++++++----------------------- sys/kern/uipc_domain.c | 7 +++ sys/kern/uipc_usrreq.c | 1 + sys/netinet/tcp_usrreq.c | 2 + sys/sys/protosw.h | 6 +- sys/sys/socketvar.h | 1 + 6 files changed, 95 insertions(+), 77 deletions(-) diff --git a/sys/kern/kern_sendfile.c b/sys/kern/kern_sendfile.c index d409f41824ad..1fd1828c37c7 100644 --- a/sys/kern/kern_sendfile.c +++ b/sys/kern/kern_sendfile.c @@ -667,6 +667,77 @@ sendfile_getsock(struct thread *td, int s, struct file **sock_fp, return (0); } +/* + * Check socket state and wait (or EAGAIN) for needed amount of space. + */ +int +sendfile_wait_generic(struct socket *so, off_t need, int *space) +{ + int error; + + MPASS(need > 0); + MPASS(space != NULL); + + /* + * XXXGL: the hack with sb_lowat originates from d99b0dd2c5297. To + * achieve high performance sending with sendfile(2) a non-blocking + * socket needs a fairly high low watermark. Otherwise, the socket + * will be reported as writable too early, and sendfile(2) will send + * just a few bytes each time. It is important to understand that + * we are changing sb_lowat not for the current invocation of the + * syscall, but for the *next* syscall. So there is no way to + * workaround the problem, e.g. provide a special version of sbspace(). + * Since this hack has been in the kernel for a long time, we + * anticipate that there is a lot of software that will suffer if we + * remove it. See also b21104487324. + */ + error = 0; + SOCK_SENDBUF_LOCK(so); + if (so->so_snd.sb_lowat < so->so_snd.sb_hiwat / 2) + so->so_snd.sb_lowat = so->so_snd.sb_hiwat / 2; + if (so->so_snd.sb_lowat < PAGE_SIZE && so->so_snd.sb_hiwat >= PAGE_SIZE) + so->so_snd.sb_lowat = PAGE_SIZE; +retry_space: + if (so->so_snd.sb_state & SBS_CANTSENDMORE) { + error = EPIPE; + goto done; + } else if (so->so_error) { + error = so->so_error; + so->so_error = 0; + goto done; + } + if ((so->so_state & SS_ISCONNECTED) == 0) { + error = ENOTCONN; + goto done; + } + + *space = sbspace(&so->so_snd); + if (*space < need && (*space <= 0 || *space < so->so_snd.sb_lowat)) { + if (so->so_state & SS_NBIO) { + error = EAGAIN; + goto done; + } + /* + * sbwait() drops the lock while sleeping. When we loop back + * to retry_space the state may have changed and we retest + * for it. + */ + error = sbwait(so, SO_SND); + /* + * An error from sbwait() usually indicates that we've been + * interrupted by a signal. If we've sent anything then return + * bytes sent, otherwise return the error. + */ + if (error != 0) + goto done; + goto retry_space; + } +done: + SOCK_SENDBUF_UNLOCK(so); + + return (error); +} + int vn_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, struct uio *trl_uio, off_t offset, size_t nbytes, off_t *sent, int flags, @@ -677,6 +748,7 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, struct vm_object *obj; vm_page_t pga; struct socket *so; + const struct protosw *pr; #ifdef KERN_TLS struct ktls_session *tls; #endif @@ -710,6 +782,7 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, error = sendfile_getsock(td, sockfd, &sock_fp, &so); if (error != 0) goto out; + pr = so->so_proto; #ifdef MAC error = mac_socket_check_send(td->td_ucred, so); @@ -760,74 +833,8 @@ vn_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, int nios, space, npages, rhpages; mtail = NULL; - /* - * Check the socket state for ongoing connection, - * no errors and space in socket buffer. - * If space is low allow for the remainder of the - * file to be processed if it fits the socket buffer. - * Otherwise block in waiting for sufficient space - * to proceed, or if the socket is nonblocking, return - * to userland with EAGAIN while reporting how far - * we've come. - * We wait until the socket buffer has significant free - * space to do bulk sends. This makes good use of file - * system read ahead and allows packet segmentation - * offloading hardware to take over lots of work. If - * we were not careful here we would send off only one - * sfbuf at a time. - */ - SOCKBUF_LOCK(&so->so_snd); - if (so->so_snd.sb_lowat < so->so_snd.sb_hiwat / 2) - so->so_snd.sb_lowat = so->so_snd.sb_hiwat / 2; - if (so->so_snd.sb_lowat < PAGE_SIZE && - so->so_snd.sb_hiwat >= PAGE_SIZE) - so->so_snd.sb_lowat = PAGE_SIZE; -retry_space: - if (so->so_snd.sb_state & SBS_CANTSENDMORE) { - error = EPIPE; - SOCKBUF_UNLOCK(&so->so_snd); - goto done; - } else if (so->so_error) { - error = so->so_error; - so->so_error = 0; - SOCKBUF_UNLOCK(&so->so_snd); - goto done; - } - if ((so->so_state & SS_ISCONNECTED) == 0) { - SOCKBUF_UNLOCK(&so->so_snd); - error = ENOTCONN; + if ((error = pr->pr_sendfile_wait(so, rem, &space)) != 0) goto done; - } - - space = sbspace(&so->so_snd); - if (space < rem && - (space <= 0 || - space < so->so_snd.sb_lowat)) { - if (so->so_state & SS_NBIO) { - SOCKBUF_UNLOCK(&so->so_snd); - error = EAGAIN; - goto done; - } - /* - * sbwait drops the lock while sleeping. - * When we loop back to retry_space the - * state may have changed and we retest - * for it. - */ - error = sbwait(so, SO_SND); - /* - * An error from sbwait usually indicates that we've - * been interrupted by a signal. If we've sent anything - * then return bytes sent, otherwise return the error. - */ - if (error != 0) { - SOCKBUF_UNLOCK(&so->so_snd); - goto done; - } - goto retry_space; - } - SOCKBUF_UNLOCK(&so->so_snd); - /* * At the beginning of the first loop check if any headers * are specified and copy them into mbufs. Reduce space in @@ -966,8 +973,7 @@ retry_space: * * TLS frames always require unmapped mbufs. */ - if ((mb_use_ext_pgs && - so->so_proto->pr_protocol == IPPROTO_TCP) + if ((mb_use_ext_pgs && pr->pr_protocol == IPPROTO_TCP) #ifdef KERN_TLS || tls != NULL #endif @@ -1172,8 +1178,8 @@ prepend_header: sendfile_iodone(sfio, NULL, 0, 0); #ifdef KERN_TLS if (tls != NULL && tls->mode == TCP_TLS_MODE_SW) { - error = so->so_proto->pr_send(so, - PRUS_NOTREADY, m, NULL, NULL, td); + error = pr->pr_send(so, PRUS_NOTREADY, m, NULL, + NULL, td); if (error != 0) { m_freem(m); } else { @@ -1182,14 +1188,13 @@ prepend_header: } } else #endif - error = so->so_proto->pr_send(so, 0, m, NULL, - NULL, td); + error = pr->pr_send(so, 0, m, NULL, NULL, td); } else { sfio->so = so; sfio->m = m0; soref(so); - error = so->so_proto->pr_send(so, PRUS_NOTREADY, m, - NULL, NULL, td); + error = pr->pr_send(so, PRUS_NOTREADY, m, NULL, NULL, + td); sendfile_iodone(sfio, NULL, 0, error); } #ifdef TCP_REQUEST_TRK diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c index 3f31f8ba421c..ebcf041790b2 100644 --- a/sys/kern/uipc_domain.c +++ b/sys/kern/uipc_domain.c @@ -144,6 +144,12 @@ pr_send_notsupp(struct socket *so, int flags, struct mbuf *m, return (EOPNOTSUPP); } +static int +pr_sendfile_wait_notsupp(struct socket *so, off_t need, int *space) +{ + return (EOPNOTSUPP); +} + static int pr_ready_notsupp(struct socket *so, struct mbuf *m, int count) { @@ -208,6 +214,7 @@ pr_init(struct domain *dom, struct protosw *pr) NOTSUPP(pr_rcvd); NOTSUPP(pr_rcvoob); NOTSUPP(pr_send); + NOTSUPP(pr_sendfile_wait); NOTSUPP(pr_shutdown); NOTSUPP(pr_sockaddr); NOTSUPP(pr_sosend); diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index a67e105a1447..79e4da5c8698 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -3373,6 +3373,7 @@ static struct protosw streamproto = { .pr_peeraddr = uipc_peeraddr, .pr_rcvd = uipc_rcvd, .pr_send = uipc_send, + .pr_sendfile_wait = sendfile_wait_generic, .pr_ready = uipc_ready, .pr_sense = uipc_sense, .pr_shutdown = uipc_shutdown, diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index fbc204097b25..c64d25f0fa87 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -1419,6 +1419,7 @@ struct protosw tcp_protosw = { .pr_rcvd = tcp_usr_rcvd, .pr_rcvoob = tcp_usr_rcvoob, .pr_send = tcp_usr_send, + .pr_sendfile_wait = sendfile_wait_generic, .pr_ready = tcp_usr_ready, .pr_shutdown = tcp_usr_shutdown, .pr_sockaddr = in_getsockaddr, @@ -1447,6 +1448,7 @@ struct protosw tcp6_protosw = { .pr_rcvd = tcp_usr_rcvd, .pr_rcvoob = tcp_usr_rcvoob, .pr_send = tcp_usr_send, + .pr_sendfile_wait = sendfile_wait_generic, .pr_ready = tcp_usr_ready, .pr_shutdown = tcp_usr_shutdown, .pr_sockaddr = in6_mapped_sockaddr, diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h index 4808f136cabf..7fb8dfdc7208 100644 --- a/sys/sys/protosw.h +++ b/sys/sys/protosw.h @@ -81,6 +81,7 @@ typedef enum { } pr_send_flags_t; typedef int pr_send_t(struct socket *, int, struct mbuf *, struct sockaddr *, struct mbuf *, struct thread *); +typedef int pr_sendfile_wait_t(struct socket *, off_t, int *); typedef int pr_ready_t(struct socket *, struct mbuf *, int); typedef int pr_sense_t(struct socket *, struct stat *); typedef int pr_shutdown_t(struct socket *, enum shutdown_how); @@ -109,9 +110,9 @@ struct protosw { struct domain *pr_domain; /* domain protocol a member of */ pr_soreceive_t *pr_soreceive; /* recv(2) */ - pr_rcvd_t *pr_rcvd; /* soreceive_generic() if PR_WANTRCVD */ pr_sosend_t *pr_sosend; /* send(2) */ pr_send_t *pr_send; /* send(2) via sosend_generic() */ + pr_sendfile_wait_t *pr_sendfile_wait; /* sendfile helper */ pr_ready_t *pr_ready; /* sendfile/ktls readyness */ pr_sopoll_t *pr_sopoll; /* poll(2) */ /* Cache line #2 */ @@ -121,7 +122,7 @@ struct protosw { pr_disconnect_t *pr_disconnect; /* sodisconnect() */ pr_close_t *pr_close; /* close(2) */ pr_shutdown_t *pr_shutdown; /* shutdown(2) */ - pr_abort_t *pr_abort; /* abrupt tear down: soabort() */ + pr_rcvd_t *pr_rcvd; /* soreceive_generic() if PR_WANTRCVD */ pr_aio_queue_t *pr_aio_queue; /* aio(9) */ /* Cache line #3 */ pr_bind_t *pr_bind; /* bind(2) */ @@ -133,6 +134,7 @@ struct protosw { pr_control_t *pr_control; /* ioctl(2) */ pr_rcvoob_t *pr_rcvoob; /* soreceive_rcvoob() */ /* Cache line #4 */ + pr_abort_t *pr_abort; /* abrupt tear down: soabort() */ pr_ctloutput_t *pr_ctloutput; /* control output (from above) */ pr_peeraddr_t *pr_peeraddr; /* getpeername(2) */ pr_sockaddr_t *pr_sockaddr; /* getsockname(2) */ diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index 8e70ada24259..9e3a59433f2b 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -555,6 +555,7 @@ int sosend_dgram(struct socket *so, struct sockaddr *addr, int sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, struct mbuf *top, struct mbuf *control, int flags, struct thread *td); +int sendfile_wait_generic(struct socket *so, off_t need, int *space); int sosetfib(struct socket *so, int fibnum); int soshutdown(struct socket *so, enum shutdown_how); void soupcall_clear(struct socket *, sb_which); From nobody Wed Apr 30 21:23:55 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 4Znqth0yl0z5v1v4; Wed, 30 Apr 2025 21:23:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Znqtg6RT5z46bQ; Wed, 30 Apr 2025 21:23:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746048235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rzG96pg4t1R/nJYciWeiHlINhnBviN1xgv4sCcuZjxA=; b=CwmvsYF+3tsnBwAbMKLohUarckjq8gRtTF7awjJ1j6lu3QXWlob4Kj6/78iwF1kjIW1NnD 12nm8Dew6iiPUfq7BgQbwVsNRkTsYC0BQUKpH5UtahXbvWyE7GOUqBWYjXHx1E7Il2LbCq 7mGCbwr2SmvQnizIgiqcHzUSV3GMiBn3JXmsj2PUv22dU3KeJi+4Paj6/I+Nxy2R4baBdN b2r7ZHfFAfydu6nfH3a1GMUQuPJQ4UcvtmpQFYViV0mCIjnquW/HTjDJq3sLFT5My8ZJ7Y DKJmYNfEdd1wXvGmcsLzILDfL9cTtGRofyKezo9sWly1+lMd4LJ886Q5IvnolQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746048235; a=rsa-sha256; cv=none; b=p8sFPNP8DxhhUDijbW2m13TydOGjz8phZhpcl2vjMp2GJm+ws/3kKJ45q/2gOY75vR0duH 9AnNQ6Ba1mNFgHpIz/v1X5vWNgsH6JFPG7eAmKZW6L4f/B8iz/mxRApADaCcaSXUC3QiDf DZIYA9SW4U3pauS7Bq7ubSLK41DdpvpBPVWd0+ZyM4W7vsB7qd8wGYfuQg4VOMhUOtVLOS wkAzv9Zf62FuLNHzhj0UcIe/GVlupdv6q/GkZjpBAUH/p+OFqL5HbsK9JXHb6Z6VmW5Qxm KLLG4AuAGT1byDfVdAdQMxopiEXbTRmzMoh4V/ly35qgnz8D1CO3YZOUsbUn3g== 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=1746048235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rzG96pg4t1R/nJYciWeiHlINhnBviN1xgv4sCcuZjxA=; b=ZDKhdUgHs7VbUzyHKZK8UC4rIkl+BZUQ1KNyzmt/uyGzEuL5lCJ1lUw/eIbi2PEj8pIi7n o8IIj4noH63cIo3pttWCTgiOZsWy5JuCkXJFQ8TgXml96UTJKuxYVaotA7D80+n74V9Av6 gLapYYq7PadJefayl4jGrQerGJ8AL1MGUZYycu69ho0KvupTFzBzCcLx3ROZn/7D90SLrB vemZtokIuqDnxz9PC9VDicrnKO4DXSQoSA/aq3kqMCi4pt30Bj3lwCChL2iHYY0OHAEVc/ xhB9TWISUSGHUxSdm11HbBWYobodI5xQ5zUKlL5lLDEz8gM69tXGOoVhOBEDoA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Znqtg5y0bz78t; Wed, 30 Apr 2025 21:23: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 53ULNtBJ045768; Wed, 30 Apr 2025 21:23:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53ULNtT1045765; Wed, 30 Apr 2025 21:23:55 GMT (envelope-from git) Date: Wed, 30 Apr 2025 21:23:55 GMT Message-Id: <202504302123.53ULNtT1045765@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: a1424b75453f - main - uio: provide uioadvance() 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a1424b75453fe0bcf24a9794378287b675ee4517 Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=a1424b75453fe0bcf24a9794378287b675ee4517 commit a1424b75453fe0bcf24a9794378287b675ee4517 Author: Gleb Smirnoff AuthorDate: 2025-04-30 21:23:25 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-30 21:23:25 +0000 uio: provide uioadvance() The function advances data pointers forward in given uio by offset. It is planned to be used for interaction between aio(4) and unix(4). Differential Revision: https://reviews.freebsd.org/D48920 --- sys/kern/subr_uio.c | 31 +++++++++++++++++++++++++++++++ sys/sys/uio.h | 1 + 2 files changed, 32 insertions(+) diff --git a/sys/kern/subr_uio.c b/sys/kern/subr_uio.c index ff63ac3e2dc0..6ac932fb6690 100644 --- a/sys/kern/subr_uio.c +++ b/sys/kern/subr_uio.c @@ -287,6 +287,37 @@ out: return (error); } +/* + * Advance the pointer in the uio by offset. + */ +void +uioadvance(struct uio *uio, size_t offset) +{ + + while (offset > 0) { + struct iovec *iov; + size_t cnt; + + MPASS(uio->uio_resid >= 0); + MPASS((size_t)uio->uio_resid >= offset); + MPASS(uio->uio_iovcnt > 0); + + iov = uio->uio_iov; + if ((cnt = iov->iov_len) == 0) { + uio->uio_iov++; + uio->uio_iovcnt--; + continue; + } + if (cnt > offset) + cnt = offset; + iov->iov_base = (char *)iov->iov_base + cnt; + iov->iov_len -= cnt; + uio->uio_resid -= cnt; + uio->uio_offset += cnt; + offset -= cnt; + } +} + /* * Wrapper for uiomove() that validates the arguments against a known-good * kernel buffer. Currently, uiomove accepts a signed (n) argument, which diff --git a/sys/sys/uio.h b/sys/sys/uio.h index 1c9d2d39cf57..ec4e92d852a6 100644 --- a/sys/sys/uio.h +++ b/sys/sys/uio.h @@ -90,6 +90,7 @@ int physcopyin_vlist(struct bus_dma_segment *src, off_t offset, vm_paddr_t dst, size_t len); int physcopyout_vlist(vm_paddr_t src, struct bus_dma_segment *dst, off_t offset, size_t len); +void uioadvance(struct uio *, size_t); int uiomove(void *cp, int n, struct uio *uio); int uiomove_frombuf(void *buf, int buflen, struct uio *uio); int uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset, int n, From nobody Wed Apr 30 23:06:19 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 4Znt8r26sgz5v8Jb; Wed, 30 Apr 2025 23:06:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Znt8r0J4Sz42QR; Wed, 30 Apr 2025 23:06:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746054380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0qJXyzPCvSPAS+1wQPl3QD4g5qkZtneQs8HVfMvdShE=; b=s6Tz1WMdyaOx6o+aeOJZZc28aAYy1sS7b4/Biu/VY2lo+Pt4gyDuvhky1vEYbofu7nFwKh 3kQLHeLfnFqNPBMM1TcdHw1xuzVUqRNDibsfrwoA05Gezn+UmJi1znwhmGIIYg7Yh7wMTJ TpLLcMJIOJqInmkNw87ufjZA+HCgj6dGLknNnLRc+NZiZMungYXvm/NLVwL7cOgFn5FTiq N+q61li5xfYvE5ChwWp4v9oZSARTnHzbq3QbkIF/0HdZdjGKCl4pBsUhWVk6m7XOujF7GG 4DlKSex7VlO4b0p7yrZhe6Cfrvu7uKjtiRbP5IAohWFPFzcaG5JsM99dM+IeeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746054380; a=rsa-sha256; cv=none; b=UyFZ1S7qpVnxofh8wuxL/E2wnNzslsfHr8dWt6CHSaBQZB11OUQ6b2mVWtjeHL+61isAyA c5wzpi49Kl7iOzVjYhN/BcQFXMqMvfIJ0bveOU5945Q/z25IPEMLwx80D/i7o2ivL/cko5 +eBlXdgP94QAJLPYSAOz3GLXyYqTSs72fUG1pCQewTXQOA8T/C6pwZwzCinwVnnV7XsY7m F81ym+yrhiR6Q294pA/jHjvDcGood3M6secdbC15RACVcvJalELd7tzkCIkzCWtjJHmXc9 vNLkFYNcRij7kcGvguuwfzCcaI3Rx9EvHfK+AmeL2uE+UG6nK1h70z4Io/ylkQ== 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=1746054380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0qJXyzPCvSPAS+1wQPl3QD4g5qkZtneQs8HVfMvdShE=; b=q6mNglBJx9rK8fp56qUPBdtMwVckcxTIuHxifNP7ByfhwPv0ku2RmBQT0RVyn/sjHPp2EL veP1RQy3DYCTxJsvh2Y7lmRkF5KWM/zsPtY7clx5fJVStCDc++HRW2RU8wwoY8HqQm0fD7 B28d/DYIimDr4nuDNvJO1MGyXhEkPkYQkovjaW24021bwT4IJPyhpMxWJGPBYM0fOBcAum Y+M28vhgXM4hnlWjRrG+seHQGEYsDm8BVmmRqo1vQru/MFH5g0OACLY98M3Wog+IEnaYwT mRfbDVjTFu//oKazqML8nu7cbDPBA2sc5jomotpi4bwD0F/+qvHkymvBERXGFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Znt8q6kbNz9fM; Wed, 30 Apr 2025 23:06: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 53UN6JSW034061; Wed, 30 Apr 2025 23:06:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UN6J5l034058; Wed, 30 Apr 2025 23:06:19 GMT (envelope-from git) Date: Wed, 30 Apr 2025 23:06:19 GMT Message-Id: <202504302306.53UN6J5l034058@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: f676c13d4226 - main - nvme: Allow command opcodes with lower bit clear as reads 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f676c13d422661088f4e9449a7383e589ca54f54 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f676c13d422661088f4e9449a7383e589ca54f54 commit f676c13d422661088f4e9449a7383e589ca54f54 Author: Warner Losh AuthorDate: 2025-04-30 23:05:07 +0000 Commit: Warner Losh CommitDate: 2025-04-30 23:05:44 +0000 nvme: Allow command opcodes with lower bit clear as reads Linux does this, and nvme-cli has some vendor specific opcodes that need this. Sponsored by: Netflix Reviewed by: chuck Differential Revision: https://reviews.freebsd.org/D50064 --- sys/dev/nvme/nvme_ctrlr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c index c47e7ece5a04..e82e468775dc 100644 --- a/sys/dev/nvme/nvme_ctrlr.c +++ b/sys/dev/nvme/nvme_ctrlr.c @@ -1358,8 +1358,13 @@ nvme_ctrlr_linux_passthru_cmd(struct nvme_controller *ctrlr, npc->data_len, ctrlr->max_xfer_size); return (EIO); } - /* We only support data out or data in commands, but not both at once. */ - if ((npc->opcode & 0x3) == 0 || (npc->opcode & 0x3) == 3) + /* + * We only support data out or data in commands, but not both at + * once. However, there's some comands with lower bit cleared + * that are really read commands, so we should filter & 3 == 0, + * but don't. + */ + if ((npc->opcode & 0x3) == 3) return (EINVAL); if (is_user) { buf = uma_zalloc(pbuf_zone, M_WAITOK); From nobody Thu May 1 00:48: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 4ZnwQv2Hgxz5vG67; Thu, 01 May 2025 00:48:39 +0000 (UTC) (envelope-from philip@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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnwQt6VCvz3JdD; Thu, 01 May 2025 00:48:38 +0000 (UTC) (envelope-from philip@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746060518; 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=8bHxRdrejwF6+lr2KrvI5fa9WixukSQwzbp/TzwDem0=; b=h5rKe8Glh3Q6PijZ3/CfouoaioXJwKOE7M6OdAVdr98J1Uv9yQazOEjt0YeNve+xGYKQ9X G+qVG9WRRwRgzoxag1h2Xt3V+qIkc0k5xARuBOtbdpbTMR7v4iid9D6d6lJ8g7bgRqENuY Dqradyw7RV6SsMAmcMZgvhIkIAshdzaJ4OmSyfK7nSmgE4v4T/IrfnWGwHpetrpUa2Hyby ALmHRTXI6hGL3LXNIsBmZlUWEVRmswF7X3CB68T+KnORMUy8LACmCZrRtu878tpY6E7kDA 1pJp2JPnR11Fl1njH6oS0KwdDi7bQbdMl3Z8X61kVUE4MansO7eDBxY1R8rbSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746060518; a=rsa-sha256; cv=none; b=HNkyooyNzTyKikwef0SJWj+0DfWoS/pLRdYOsTEsTHsiYHIhjr6vki1ftI04k6yUHjSGdm Yjxz//RDaxGbLTVY8dEvgqSlJ+xQms1WDb4oiW/8UneE8j7r5BQKI/mKmgTSRtbtLZYfuA yqcJFwG00EHDsKCGgpD7Tk2CLtxIfmNsf0qJNBQ8aGhxIwqzQmWkP3Jl606dIZCx0mu2iS Zh59xF2VBo8bOjyxRiN94eNb7bobDai1SCXnmn2IlIvFxlt/WEaAZT39tpRmx8SqgVEitt msGid5HdmQpA+ovv4MdKhi5s3hzYJEggbEKZpFZLLfQjQmhlUe7G0GfMf878Ag== 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=1746060518; 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=8bHxRdrejwF6+lr2KrvI5fa9WixukSQwzbp/TzwDem0=; b=ZmKyIfXSToMQHfDDYZR8XDmca5JFk+ZUTigWmODUVgv2f0sWFemAJ1LxvPH3LZbohShs4h X4/3Wsrh15LpUu2dKBdKPjm5/398kJarCd1ISnlfEWuPQMqgvCDR4kga/NE2xBopE9PyCj rUksX4JYh5O9q4rxszI03NNjnUdkq48+b6ilmBxhJ7lUok20uQp2OETVaMmu5cW+qistuc H4GevsEv6Js0prDUKsI+0urYwQP+mKw0IkGAL28b0YGkDz1hSkMMeFaBOSh6i5/MHw0NAh 322CElsGI2Mlx+MmxkxnieZshzd4KfAJekzUPyt1LEAbQryKn5BRaqcjFpLyRg== Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com [103.168.172.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: philip/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4ZnwQt5XfJz8mJ; Thu, 01 May 2025 00:48:38 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfauth.phl.internal (Postfix) with ESMTP id 8E2F51200043; Wed, 30 Apr 2025 20:48:38 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Wed, 30 Apr 2025 20:48:38 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvieekudekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffokfgjfhggtgfgsehtqhhmtder tddtnecuhfhrohhmpefrhhhilhhiphcurfgrvghpshcuoehphhhilhhiphesfhhrvggvsg hsugdrohhrgheqnecuggftrfgrthhtvghrnhepjedukeffgfffkeejfffgfefgledthefh ffeggeevgeevhedvheegtdduvdetkeeinecuffhomhgrihhnpehfrhgvvggsshgurdhorh hgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhh ihhlihhpodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdduudeiiedviedvge ekqddvfeehudektddtkedqphhhihhlihhppeepfhhrvggvsghsugdrohhrghesthhrohhu sghlvgdrihhspdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtph htthhopegvmhgrshhtvgesfhhrvggvsghsugdrohhrghdprhgtphhtthhopeguihhmsehf rhgvvggsshgurdhorhhgpdhrtghpthhtohepshhrtgdqtghomhhmihhtthgvrhhssehfrh gvvggsshgurdhorhhgpdhrtghpthhtohepuggvvhdqtghomhhmihhtshdqshhrtgdqrghl lhesfhhrvggvsghsugdrohhrghdprhgtphhtthhopeguvghvqdgtohhmmhhithhsqdhsrh gtqdhmrghinhesfhhrvggvsghsugdrohhrgh X-ME-Proxy: Feedback-ID: ia691475d:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 30 Apr 2025 20:48:36 -0400 (EDT) From: Philip Paeps To: Ed Maste Cc: Dimitry Andric , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 91506dba7f2e - main - zoneinfo: also install tzdata.zi and version Date: Thu, 01 May 2025 08:48:34 +0800 X-Mailer: MailMate (2.0r6249) Message-ID: <0720709B-2068-46D3-88EA-398D7C1E8FC9@freebsd.org> In-Reply-To: References: <202504010810.5318A96d073963@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; format=flowed Content-Transfer-Encoding: quoted-printable On 2025-05-01 00:58:04 (+0800), Ed Maste wrote: > On Wed, 30 Apr 2025 at 00:58, Philip Paeps wrote: >> On 2025-04-30 02:44:46 (+0800), Ed Maste wrote: >>> On Tue, 1 Apr 2025 at 04:10, Philip Paeps = >>> wrote: >>>> The branch main has been updated by philip: >>>> >>>> URL: >>>> https://cgit.FreeBSD.org/src/commit/?id=3D91506dba7f2eb147eeb55ec306= 40bc11755a1e8e >>>> >>>> commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e >>>> Author: Philip Paeps >>>> AuthorDate: 2025-04-01 08:09:37 +0000 >>>> Commit: Philip Paeps >>>> CommitDate: 2025-04-01 08:09:37 +0000 >>>> >>>> zoneinfo: also install tzdata.zi and version >>>> >>>> Build and install the shrunk version of the time zone database >>>> required >>>> by libc++ 19 std::chrono::current_zone (etc). While here, also >>>> install >>>> the tzdata 'version' file to align more closely with other >>>> vendors. >>>> >>>> PR: 282377 >>>> Reviewed by: dim, emaste, imp >>>> Differential Revision: https://reviews.freebsd.org/D49577 >>> >>> Do you plan to MFC this to stable/14 for 14.3 as well? >> >> I was not planning to MFC this change. >> >> Does libc++ in stable/14 need this support? > > I suspect so - std::chrono::tzdb is C++20 and we presumably want it to > exist/work in stable/14. Dimitry? Thanks. I thought that was a 15+ thing. If it's expected by the toolchain in stable/14, I'll merge it there too. Philip From nobody Thu May 1 03:01:17 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 4ZnzMz2Qq5z5vQFc; Thu, 01 May 2025 03:01: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 4ZnzMy0QYmz3nkw; Thu, 01 May 2025 03:01:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746068478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rTi568aLC4hUsCvxreih1wb+DVdrrhHEifIakpkceME=; b=HNfCeGPgo/AMilchJeu8N0V6fL5wUT4F48NeYfHdO1Q9V3mOLyQh5Ic9j4Hs5y07t2nGqE W2FlV8e3SQk3zszI/x74NwWDFznPm04UXAuU4HJXuza9qgVXuHt9KBA2HKgfIhazzCCXKH Du/q9hf6/txNpf660MXjzQErz25OVQd6mQlsY4okc/V+hRMqD5Uyp9+kQWbLsigsjnwcXz DqOaYpX3YsgPMUWv1s2kcdt36zN/qwFDnfgo5wi1TroodWa9GGDe2u4GsFJrrklPTV7IQZ hxnAziR2DcNRByrY25x3sbrUM5zFoS7x9N1PHvOR/hkyRZC22SEODL4B5D1Igw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746068478; a=rsa-sha256; cv=none; b=ZxaSz3oA2bAKDde9q68KL6hWDBuT9IR0PKpsxbr9eD624eSC7Tb2taX1WogSL5ExJlj84r /ltedAQ5zcQvGl9QwtoFpU4R5xaAyl1mYCUc9jphMba9gIRfjIqn0H7xCshAbS9907xXAe je4/9x9PEXsl8QGjMuUzbdhWVAf3BtdoU/pwUlPkrONsKu7Y05/8XXKxI9ycCyeDLVvkv0 V16Vcj7ZGF6AdNCG4AnHLNdDzC/R4eDZeMz1fVdZ9wy4fKTDDo7dYE6sFV+5Fx62t7SOgG RetbBS24mZ/W6Xo9gvXZ4mQwjsW/4HyNseedp4YOw7P46P+Y5toJCiQZPepCFw== 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=1746068478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rTi568aLC4hUsCvxreih1wb+DVdrrhHEifIakpkceME=; b=TvQoq4EB4OyOIkYXm9XiJXVYBF7aCcA4mDCsAJ1yL9oWAlwfNZv/edMHik7JblP0JMIWZC JR2LHygMCsEJQeUOg9zfG5zuPKJjQ26BccD44s3iwe5Kq0w+1oTxPh+9Yor90EWOLdcDj4 QSn9o1ri6YIfHW7PGBLTG8pvCfjxGx7jVELQDHBRpAc+RfSzct0+Dh7wZ1sMrTQBKzpbGR Us4hKu9wyv1p2/CSue0RUVpHqBcOEHDFBI9BMN7SOXWWARUAforUlQQxdQALJJv06L1uGn JorMwLGfTl0CMxQOQ7RdbKjvRN21NuMOWLTkSXBlbU0y8llUsfS+U/b3dsEv0g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnzMy02MVzYrP; Thu, 01 May 2025 03:01: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 54131HXq078857; Thu, 1 May 2025 03:01:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54131HQR078854; Thu, 1 May 2025 03:01:17 GMT (envelope-from git) Date: Thu, 1 May 2025 03:01:17 GMT Message-Id: <202505010301.54131HQR078854@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: 67fb9dc457ee - main - mii: Change e1000phy (Marvell 88E1000) PHYs to disable power down / isolate 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: 67fb9dc457eee048768fe467228c394154cc28f9 Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=67fb9dc457eee048768fe467228c394154cc28f9 commit 67fb9dc457eee048768fe467228c394154cc28f9 Author: Adrian Chadd AuthorDate: 2025-04-25 03:21:50 +0000 Commit: Adrian Chadd CommitDate: 2025-05-01 03:00:56 +0000 mii: Change e1000phy (Marvell 88E1000) PHYs to disable power down / isolate The reset sequence doesn't clear the power down / isolate bits during power up and configuration. Change that to make sure things are consistent. If the PHY is initialised by something external (eg a bootloader, config EEPROM driving a switch chip, etc) which sets the power down and/or isolate bits in E1000_CR, then the reset path wouldn't undo it and the PHY will look permanently down. Even when we configure autonegotiate or statically nail the port up, it's still not coming out of the power mode. Differential Revision: https://reviews.freebsd.org/D50045 --- sys/dev/mii/e1000phy.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/dev/mii/e1000phy.c b/sys/dev/mii/e1000phy.c index e978c043d72a..050e9db71577 100644 --- a/sys/dev/mii/e1000phy.c +++ b/sys/dev/mii/e1000phy.c @@ -185,6 +185,11 @@ e1000phy_reset(struct mii_softc *sc) { uint16_t reg, page; + /* Undo power-down / isolate */ + reg = PHY_READ(sc, E1000_CR); + reg &= ~(E1000_CR_ISOLATE | E1000_CR_POWER_DOWN); + PHY_WRITE(sc, E1000_CR, reg); + reg = PHY_READ(sc, E1000_SCR); if ((sc->mii_flags & MIIF_HAVEFIBER) != 0) { reg &= ~E1000_SCR_AUTO_X_MODE; @@ -353,6 +358,8 @@ e1000phy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) reg = PHY_READ(sc, E1000_CR); reg &= ~E1000_CR_AUTO_NEG_ENABLE; + /* Undo power-down / isolate */ + reg &= ~(E1000_CR_ISOLATE | E1000_CR_POWER_DOWN); PHY_WRITE(sc, E1000_CR, reg | E1000_CR_RESET); if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) { From nobody Thu May 1 03:01:18 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 4ZnzN01Rsnz5vQJ5; Thu, 01 May 2025 03:01:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnzMz4CTPz3nnR; Thu, 01 May 2025 03:01:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746068479; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EWt1RcW6obEKspQdoJPtWv/t+Kf/nUaD7A+Zalt5YLk=; b=gaXroTdRdZakcyyjs6KOv78vxrENv1JXOebZ/eLd5T5bM1b7CGsGALkEWDCh9dsM7kKS0F 3foR4UIA/opio6ujpOLvOaViUZArKjCDofpfjOG4wns6FEOJPoZ+E4tWGj5DgoZPI9THzl qMdWBgK4NCn1uDwYtBLxxOhGueTtkJsPb4XUNV10xzjEqGvjUYr6uN0fFcbQN1dWPx3uJ1 0FTjFnYqNNN0Iv5mcG5EHvjaaNDc4RDUtkWc0RWN5gaIXjX5zyegEuwF3LGyKRWGv8Vgga qI6rLksT+aVwobhoHs1DtU8x7xw8+L1ljqPz+MjeRb0Vaos3IhKYQ+SD4lvvCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746068480; a=rsa-sha256; cv=none; b=t3CTZ0qqUC6zxe/+Vo0ilSdtXrAax+bRXxYKnQFR4T1+UFbAK/Aj5x7hSHe8WgR6W3M9o4 irq9iaNWTnS3gejLKOXhvK50CURs5TSn3W3qhZI2G4g5jccmgAmAuhiBE+ACR09C6TUkqN Wmvzym4r+FBC/sd+61P2n9Q6N/P7z2U/IB8F72wuvZKnzNXJYBI1DEFfhLd1cGmPnwmqrv lrDXc1u/8yGYVWes//SQNb7/rLuPkjSXXokqchFxRxzl0jm/BKDQx5hGe2+v6xGOy8Kigy Sd0T+RcbBqi2xEWpQ+FA2YUK4mYBQTdSanrxQJuYIygXdugXiVUTlTAliW343w== 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=1746068480; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EWt1RcW6obEKspQdoJPtWv/t+Kf/nUaD7A+Zalt5YLk=; b=ver64QS19H0xtmPjCDLIzL0hZUskbzLfwQDAfyYTBxixRC47Sht0UpqJiG9lDxvyDN6mn0 PL2wJ5GafaEmYNUeEC012itfCFj1vEeEYe34D3U6tzV/LmILq2zzXQPJ+1iLFuXI5+h9wh Py2J4zjhYX3FMTLPSmm6cbmz5z6TND3Ipv9ovYJ/UZRpQQ+mmIQJgd5mSKYNIfMhWRXOnC nTnGTzbh3AdxvDK6WeBOoRr2h9NwFJhbE9o4UBaO6nQxcl0J4Wc0Nq4LkkeGSwvna62J+9 7Q8pVsmDK1sosXgE0/oFP5QFaQSV+fP+CSlBkz4ixw15+s8xxyNWUk3SDPzx/g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnzMz0flCzZJr; Thu, 01 May 2025 03:01: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 54131IG5078889; Thu, 1 May 2025 03:01:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54131Ilo078886; Thu, 1 May 2025 03:01:18 GMT (envelope-from git) Date: Thu, 1 May 2025 03:01:18 GMT Message-Id: <202505010301.54131Ilo078886@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: 28e89934a9be - main - rtwn: fix mbuf allocation errors in USB RX path for > 4 KiB 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: 28e89934a9bec3eca08f4d291a5699485c29d203 Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=28e89934a9bec3eca08f4d291a5699485c29d203 commit 28e89934a9bec3eca08f4d291a5699485c29d203 Author: Adrian Chadd AuthorDate: 2025-04-27 23:50:51 +0000 Commit: Adrian Chadd CommitDate: 2025-05-01 03:01:05 +0000 rtwn: fix mbuf allocation errors in USB RX path for > 4 KiB frames We can and do receive > 4 KiB frames in the RX path (A-MSDU frames can be up to 11KiB.) At least one user has reported seeing this and having it break their traffic flows. Use m_get3() to try and grab an mbuf jumbo cluster. This may not be the best permanent solution, but it at least will fail for frame sizes we expect to see up and including the largest A-MPDU frame (11Kib) and keep a counter if it can't allocate, versus just returning NULL because it's too large (and not keeping counters.) Differential Revision: https://reviews.freebsd.org/D50049 PR: kern/286366 Reviewed by: bz --- sys/dev/rtwn/usb/rtwn_usb_rx.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sys/dev/rtwn/usb/rtwn_usb_rx.c b/sys/dev/rtwn/usb/rtwn_usb_rx.c index 657d6bdeb9e4..4a4294c0d890 100644 --- a/sys/dev/rtwn/usb/rtwn_usb_rx.c +++ b/sys/dev/rtwn/usb/rtwn_usb_rx.c @@ -124,10 +124,15 @@ rtwn_rx_copy_to_mbuf(struct rtwn_softc *sc, struct rtwn_rx_stat_common *stat, if (rtwn_rx_check_pre_alloc(sc, stat) != 0) goto fail; - m = m_get2(totlen, M_NOWAIT, MT_DATA, M_PKTHDR); + /* + * Note: this can require >4 KiB (eg de-aggregating an A-MSDU + * from an USB frame. See kern/286366 for more information. + */ + m = m_get3(totlen, M_NOWAIT, MT_DATA, M_PKTHDR); if (__predict_false(m == NULL)) { - device_printf(sc->sc_dev, "%s: could not allocate RX mbuf\n", - __func__); + device_printf(sc->sc_dev, + "%s: could not allocate RX mbuf (%d bytes)\n", + __func__, totlen); goto fail; } From nobody Thu May 1 06:46:22 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 4Zp4Mg5c7kz5thfm; Thu, 01 May 2025 06:46: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 4Zp4Mf705wz3xtp; Thu, 01 May 2025 06:46:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746081983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LBw7E0nYZKGL4NOxLA3LAFSGRMZYe1H3Lc1PFVxIeKk=; b=A4kn3yeoPRgW3RX4QH5zuTpc+97Z1J3rSwLCVsSMBmo60oytM7YNmGc8plQM5KdADSL1bw Y5Ihtx0+d6nT7JBHZAh+2Q4pj08ne7RrouFRmfdWIZcIzdpC6tc+MUz64QxmKmAAZu+DXK 5acGsyQhWUSO9gJBJzoqjOAtc7rwDX427F3FjpGsLPB4sMj5Gvnk+mzHP3xJtrcMtkCjLw 7/PN0DiK3PJrUjeOvOWROfugzGk6tsgigi69PcE8nXRrjzw8nE0wvsZktfrcEYxzqGBLAr iVZlE3gmFhEdSqvXMPqOQJDQpkGvGoH3rRcA9LxCjD/Izg0VFHZMBAXCxr2M8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746081983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LBw7E0nYZKGL4NOxLA3LAFSGRMZYe1H3Lc1PFVxIeKk=; b=kmRz+gWx+J9ZRQhRqkeQomyBARsAWr46DAfB6wniVDjTP55+1YJYX5ryoqsUjziejQ6o7I CWFVqvijdymVKjXYM6glE2ZPBBYxyuIIQCc9cHhoPb2y73onyNR4E1+LtWyecBS177JNoE ZY34wRf+K6xPOHdT8Qjqch4N096FJHKAvnuFh90CJdupY00kuqfKoVpt6lUY+p/uD9ZDab /MuaDE40bFfuz4/JGY3QqfjouzXbaQslXvrT/lt533jFafQoYZcKBOC5Gt8Vcygu26rXDf lMc9+0E4uZXym4gXtdcp1hnXzVD7uO/sGxsCuTU/q5ctkPxUyY9o5QEumB4Gog== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746081983; a=rsa-sha256; cv=none; b=nihKOXy7pQQjMlWxeJy2cZR5tO818ANuXIwMLah5eG7Ockv9woAAe24wWqo3DyA/8phX6T Gh/VvV2PAjnMHOSajdmHsPVW44z55Pp/uqPyavrVwlmu0EyUv+oNNkM2b5QgHxHi7PDXXc qUI6vnBi+Lz4u4/EQTBkf+WugsU8cbxo6Zh+7DiPQXaQbbqi2ReRNc1sKGIe6GeSkgka4f st4l61XelTHbpBKYJzss847GkSELDzcVP55jUNUbJPRgJCsKMk6Uz2CIMdeJvGNcpH0mGh 1n7vEL0lZMLAYh1zYwy14TiyzYRkB5OCRQhNW/1YsTdI0ZjhEwV4cY3VR+SvbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zp4Mf5mp7z2KT; Thu, 01 May 2025 06:46: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 5416kMT8093837; Thu, 1 May 2025 06:46:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5416kM9N093834; Thu, 1 May 2025 06:46:22 GMT (envelope-from git) Date: Thu, 1 May 2025 06:46:22 GMT Message-Id: <202505010646.5416kM9N093834@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: 130374a97b24 - main - uma_core: change listq to plinks.q in temp lists 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: 130374a97b247cf62f64c69d8a570092c42be246 Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=130374a97b247cf62f64c69d8a570092c42be246 commit 130374a97b247cf62f64c69d8a570092c42be246 Author: Doug Moore AuthorDate: 2025-05-01 06:43:49 +0000 Commit: Doug Moore CommitDate: 2025-05-01 06:43:49 +0000 uma_core: change listq to plinks.q in temp lists Change the two functions that use local tailq variables to use the plinks.q field, instead of the listq field, for the pointers. This will resolve one source of conflict when the tailq field and the object field come to share the same space in a future change to the vm_page definition. Reviewed by: alc, kib Differential Revision: https://reviews.freebsd.org/D50094 --- sys/vm/uma_core.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c index 61b03ef24925..5189f7405400 100644 --- a/sys/vm/uma_core.c +++ b/sys/vm/uma_core.c @@ -1986,18 +1986,18 @@ pcpu_page_alloc(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t *pflag, } if (__predict_false(p == NULL)) goto fail; - TAILQ_INSERT_TAIL(&alloctail, p, listq); + TAILQ_INSERT_TAIL(&alloctail, p, plinks.q); } if ((addr = kva_alloc(bytes)) == 0) goto fail; zkva = addr; - TAILQ_FOREACH(p, &alloctail, listq) { + TAILQ_FOREACH(p, &alloctail, plinks.q) { pmap_qenter(zkva, &p, 1); zkva += PAGE_SIZE; } return ((void*)addr); fail: - TAILQ_FOREACH_SAFE(p, &alloctail, listq, p_next) { + TAILQ_FOREACH_SAFE(p, &alloctail, plinks.q, p_next) { vm_page_unwire_noq(p); vm_page_free(p); } @@ -2036,11 +2036,7 @@ noobj_alloc(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t *flags, while (npages > 0) { p = vm_page_alloc_noobj_domain(domain, req); if (p != NULL) { - /* - * Since the page does not belong to an object, its - * listq is unused. - */ - TAILQ_INSERT_TAIL(&alloctail, p, listq); + TAILQ_INSERT_TAIL(&alloctail, p, plinks.q); npages--; continue; } @@ -2048,7 +2044,7 @@ noobj_alloc(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t *flags, * Page allocation failed, free intermediate pages and * exit. */ - TAILQ_FOREACH_SAFE(p, &alloctail, listq, p_next) { + TAILQ_FOREACH_SAFE(p, &alloctail, plinks.q, p_next) { vm_page_unwire_noq(p); vm_page_free(p); } @@ -2058,7 +2054,7 @@ noobj_alloc(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t *flags, zkva = keg->uk_kva + atomic_fetchadd_long(&keg->uk_offset, round_page(bytes)); retkva = zkva; - TAILQ_FOREACH(p, &alloctail, listq) { + TAILQ_FOREACH(p, &alloctail, plinks.q) { pmap_qenter(zkva, &p, 1); zkva += PAGE_SIZE; } From nobody Thu May 1 08:24:08 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 4Zp6XS5SqVz5tpvF; Thu, 01 May 2025 08:24: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 4Zp6XS3RcGz3bKY; Thu, 01 May 2025 08:24:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746087848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PtTgq1hZE06MVJnsIa55gmFuddfynBRhv1a4TlbIYPA=; b=txq4io67bqD5kzkn1hWg7wN3CnnbEMrCDhaRtHHUR6mqBLbxVcGaRzYshYBTJzhSIW5rq6 +nQMyibQhoSfyDwcB8PG0ntrM9s7A5QW7HEeWasx2KLtm1YJYEO62Cgs7cEWxPG9AKYGj4 7BjzHggXQ3uxI6k8HImzt3AcC82YVfm4+Greuzj1bX2wdN8DSXtZqDrkaUk0fx9ik+bnjp 8lsrnrsH3bDfNDlYr5kCGzyy9aQ3mSR9lrlRgcMsSopNr98NxXRNfkJ7a5V0MK1jaukK3X LPHQcNVmKcqXqE0yK8BcSnC7S8xHWCctsQD2CuahsW12rvU922Es9bReU4lMbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746087848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PtTgq1hZE06MVJnsIa55gmFuddfynBRhv1a4TlbIYPA=; b=dG3Ek0NlNHhFWzCBKAqoq05PIEGrNGTpg7lZ8/hTAqD16rpjDvZKm0JB7O9WXUOUt5oWX+ hO4CWEypUkjRI3FNuo3iqTaK2+kNWnIQPgDXnIMNiKgEvx3otc73P9hY+VfNsECubDujLo kBlqY6nfsdJiLGSbkpyVN0Ld1u4hX2u827vMsC/dnfhwnwC32+VhDczXR0ajcEWK6A9WP2 CsGi72QoruAR4st2E02KqZXhn5REl7cDbwmI/l3HCZtWVpzNwWn8oSS1t0AoGaZOmGgxwM O7jeJ15V6TGjptpyKrc3ZN7vsY6pchq45/EDFIBjgP+9Gbd45Skt9POtgkblJg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746087848; a=rsa-sha256; cv=none; b=wbIXobbol8wJ5X1Ap4Pr59lV1N5cfhfBWkqwgrY11PMphUndNl5Ie8Q9rT/rnZNVxiJEFf tXImde4+jlanTw9eKoz+zJGVKirqtHWCvjqlEdIUteL9rSWj6Gm4h6KrG2/3xFadiI21Wq 0PmmdIZZ5O5zl44T6gpdgBFiIZQzPCYPi5bGuMettjbJZwxPL9jgCSzJ1WtWPmrPTsXgL1 IYdxVolODzTeHXyEPXMqimKUwidQVVNSi+TQVhjdjZWo6BOgFbwgz6k9ufRGK4BvZ3GJAx iGKy7OARHgN5PaV1SSP1cTA2DOmFA3N9RKce1us8JyXjJXs9fbapVq5kn6j3nA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zp6XS2ZWMz4pM; Thu, 01 May 2025 08:24: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 5418O8O5079836; Thu, 1 May 2025 08:24:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5418O81E079833; Thu, 1 May 2025 08:24:08 GMT (envelope-from git) Date: Thu, 1 May 2025 08:24:08 GMT Message-Id: <202505010824.5418O81E079833@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: 4e3a6fe0134e - main - Make sure the memory region definitions are zeroed before use. 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: 4e3a6fe0134e67fdcd1279b06427e5f26dd08f78 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4e3a6fe0134e67fdcd1279b06427e5f26dd08f78 commit 4e3a6fe0134e67fdcd1279b06427e5f26dd08f78 Author: Luiz Otavio O Souza AuthorDate: 2025-04-26 15:23:27 +0000 Commit: Kristof Provost CommitDate: 2025-05-01 08:23:38 +0000 Make sure the memory region definitions are zeroed before use. Since only 32bits of the values are read from the fdt, the existing values can compromise the results. Fixes the boot on the Netgate 3100. Reviewed by: andrew, mmel Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D50083 --- sys/dev/fdt/fdt_common.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/fdt/fdt_common.c b/sys/dev/fdt/fdt_common.c index 53d47c26b53d..1fea4c6f1392 100644 --- a/sys/dev/fdt/fdt_common.c +++ b/sys/dev/fdt/fdt_common.c @@ -441,6 +441,7 @@ fdt_foreach_reserved_region(fdt_mem_region_cb cb, void *arg) reservep = (pcell_t *)&reserve; for (i = 0; i < tuples; i++) { + memset(&mr, 0, sizeof(mr)); rv = fdt_data_to_res(reservep, addr_cells, size_cells, (u_long *)&mr.mr_start, (u_long *)&mr.mr_size); @@ -484,6 +485,7 @@ fdt_foreach_reserved_mem(fdt_mem_region_cb cb, void *arg) /* XXX: Does a no-map of a dynamic range make sense? */ continue; + memset(&mr, 0, sizeof(mr)); fdt_data_to_res(reg, addr_cells, size_cells, (u_long *)&mr.mr_start, (u_long *)&mr.mr_size); @@ -526,6 +528,7 @@ fdt_foreach_mem_region(fdt_mem_region_cb cb, void *arg) regp = (pcell_t *)® for (i = 0; i < tuples; i++) { + memset(&mr, 0, sizeof(mr)); rv = fdt_data_to_res(regp, addr_cells, size_cells, (u_long *)&mr.mr_start, (u_long *)&mr.mr_size); From nobody Thu May 1 08:24:05 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 4Zp6XQ54Rhz5tpxf; Thu, 01 May 2025 08:24: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 4Zp6XQ1gYVz3bSx; Thu, 01 May 2025 08:24:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746087846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UYcpJoigazAuYe6i8Nn966XlnYyWZDJMJYw6iMOiqms=; b=p5xuBra7fIYmt/Q7rUFmMn2hzkgU27Sj0LbiZfh2nAM64mzCafBPBDBKVE4NDvY4R6J911 BzuW9bI3y+kDVIwZvsNxGNaWcohUg6C5pXH2IyyVt+/jgaLAAuUAs6KHzdB2hZps6FAcir nwntF89im2Hp+Mc+bjDRh2eu4F6smf30I4jad2a5PKoX66szdpGeLojL6k7En0ydS/GFHM V7fcaA/3a5VQO2nYGvpNGltkdBZWNe1qvmky9CFKTKWbVW6EtCRq7nxLPFyjEn56PkgZxK vu82TN3LEgvDHsYecLHB3TZQ2zA84SBpKlwekUt5MctU8IwrD8EhIAfUEYHy3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746087846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UYcpJoigazAuYe6i8Nn966XlnYyWZDJMJYw6iMOiqms=; b=a3XZgTMSuLynKaOD3QWw0i27u2DjpJY/J2lRKdwrehPc+mtt38Ih2B9dkRR2vOS71hSkT0 6hkzFzHeaO89CkfkjkWfWaTuvG8K7oc5DJhdUQDAtlgfeUVqaev7krQIhTwUNq/QnCrHGY HQeGbI7LHdpguNwPZhGF0lAIMgVvzuBmAIXBP4kNHxOdcXQFApIzx61+pRM3YCM5jfixs7 70MPDrp7XrT4Rr2oSPoEOnuZPSxhxPs3I5ELOee9wSkeHSaKVWLwGfUxH9OWQVUsd48sBp ep/Or7vuc7YHoEiS3+AeeyPSamCcN8IWu/BcgbeUPBUAXzvpOZUa5kwt0JN1xw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746087846; a=rsa-sha256; cv=none; b=VKct3Ou4Q1qhqjYCguIGB/ew8ZW/DBrWf9D6JWmfYxIU9EyhD1nrZ8mOF17SISW+NFE4Kq Mlqs7WURS6PNy6kjpPfXG30XUCGoNrB6zZFbYvjoUb1qRDEAqEggHVA8eRmYeJOc0c9IXY 7XutlY+EEbBx80XW32Rg4dniBzNBnGaqFhid8uQgX9LvH4MQ0HWS3aduBg65vt2TTW7W81 DnJywxFPNAVBqfJbBlqcBM1MHLmi2sHKR0wuc5FFnJ1a0Mv89ecymTeqv/f0xMrRICiCQr C56TSPdVlJ6w+tmVaEISDbjSo9+o4urqDEzegs4wyl9RywXpcGwPGRz6u8y23A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zp6XQ0fy9z4pL; Thu, 01 May 2025 08:24: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 5418O5PE079766; Thu, 1 May 2025 08:24:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5418O5dV079763; Thu, 1 May 2025 08:24:05 GMT (envelope-from git) Date: Thu, 1 May 2025 08:24:05 GMT Message-Id: <202505010824.5418O5dV079763@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: d2c2d6d6b09e - main - igmp: apply net.inet.igmp.default_version to existing interfaces 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: d2c2d6d6b09e8a059dffd6b6c7513d0925a8753d Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=d2c2d6d6b09e8a059dffd6b6c7513d0925a8753d commit d2c2d6d6b09e8a059dffd6b6c7513d0925a8753d Author: Olivier BLANC AuthorDate: 2025-03-14 18:55:55 +0000 Commit: Kristof Provost CommitDate: 2025-05-01 07:31:21 +0000 igmp: apply net.inet.igmp.default_version to existing interfaces IGMP requires hosts to use the lowest version they have seen on the network. When net.inet.igmp.default_version is changed, we do not change IGMP version used by interface even if the interface use an higher version than V_igmp_default_version. So we could send IGMPv3 even if the user has requested IGMPv2 or IGMPv1 via the sysctl. Change IGMP version for each interface when V_igmp_default_version is smaller than the version used by the interface. Pull Request: https://github.com/freebsd/freebsd-src/pull/1615 Differential Revision: https://reviews.freebsd.org/D50071 --- sys/netinet/igmp.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index 5082b6294ebb..299f3c2e02bb 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -402,32 +402,43 @@ out: static int sysctl_igmp_default_version(SYSCTL_HANDLER_ARGS) { + struct epoch_tracker et; int error; int new; + struct igmp_ifsoftc *igi; error = sysctl_wire_old_buffer(req, sizeof(int)); if (error) return (error); - IGMP_LOCK(); - new = V_igmp_default_version; error = sysctl_handle_int(oidp, &new, 0, req); if (error || !req->newptr) - goto out_locked; + return (error); - if (new < IGMP_VERSION_1 || new > IGMP_VERSION_3) { - error = EINVAL; - goto out_locked; - } + if (new < IGMP_VERSION_1 || new > IGMP_VERSION_3) + return (EINVAL); + + IN_MULTI_LIST_LOCK(); + IGMP_LOCK(); + NET_EPOCH_ENTER(et); - CTR2(KTR_IGMPV3, "change igmp_default_version from %d to %d", - V_igmp_default_version, new); + if (V_igmp_default_version != new) { + CTR2(KTR_IGMPV3, "change igmp_default_version from %d to %d", + V_igmp_default_version, new); - V_igmp_default_version = new; + V_igmp_default_version = new; -out_locked: + LIST_FOREACH(igi, &V_igi_head, igi_link) { + if (igi->igi_version > V_igmp_default_version){ + igmp_set_version(igi, V_igmp_default_version); + } + } + } + + NET_EPOCH_EXIT(et); + IN_MULTI_LIST_UNLOCK(); IGMP_UNLOCK(); return (error); } From nobody Thu May 1 08:24:07 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 4Zp6XR5S2dz5tq5V; Thu, 01 May 2025 08:24: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 4Zp6XR28clz3bH6; Thu, 01 May 2025 08:24:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746087847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5P4VJT9e1l513a7oG2hmQh+eiBFhtVYOcY06T4ZM3Zc=; b=UTMyWlmbMQ3Pyx7OBsjlcTfyj0atk3Zcbn7fqIB+FOvSvPukZ3W1pnNbDTogohXis878H6 cqVLBdM2CGwOn/8EqtMuMqtJ++qamrbtW9xDsnVBdIp1W4nGKivESy4P9x+SPkQmZm1DVg EUYIBFg10Y1HIEajBvOoLYC1v5uYBe8xLyX+R+6q6NFkZ0LhOqTP+mN2ex1gFUnHzzu3Sg xHTFw02JJtZXKrhrrqk9SD7b5bp8aObCTWabZUHssq2TXSA4AS2LhT8Ta7Mq7xVxyrH4U1 LG47noRfwTGnBSPgsH2QvRoXtyACTPMOlSAptZ4dYDLJF9xWcFuhdiv9v0SFSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746087847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5P4VJT9e1l513a7oG2hmQh+eiBFhtVYOcY06T4ZM3Zc=; b=lUcxTm1x/uOeevZPKQFrAZCMQ9wKl2PqqFA7OvVJvLOfcLMQpg4f6DWltvzwprHxIlGQG6 0cBUbFXbN21pLu1k1gXeNYpnrpf7inrQABpeBbFSfzKJ503ZTtnbF4DVmXCKz5+q+9f47l nWfmqA+Aw4DJK+UXY94DcDKnvhoEtYtCDPzV8yU8/8JzAQU13sWyb8IDphka/WSoR8E/ar X0NeIFsxvGdaMw9Usx+GSxsWqZiMLV4ZXcf13rvHZJWM7Cg3KhplnG4poJWNmhIJfubFaz G0EsQ94rkX2AKmFwVgFXjG8XrqSxnZDksQUmrY+7/pNNfx1iYSFK5bmvYmIZFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746087847; a=rsa-sha256; cv=none; b=JQPEN6ubblsBLkg30dCQmYoy98pPvUTumRNyTPCLm4CGWuQB/G1b30GF/cKpk9tv9nm0Ab m5kdUMatXPsIdGSF5uETPpWDIfvjoLNQyIcTC2fzX5LEZy30UUi/OE6tttyn6zWIgHSP0K Y8p1wKYsApILQQ/ioTn4oSCK2Kbf3Dr9Np/qnsgHE7GNacakGzpDEvw2tqVvnUunLxICzu g+1r0CO9T3aL1+ANeozFCf53qWjC4+5ILkzU75ykd2h354M9j2DVpf/hBCZemPJ1CVGvae +sCu8F8EZ0mPMohkh6W84wIoglzCX/vg3GykQ7w8w8OX39wuZ1Q6XPlVYl0eqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zp6XR1K3Wz50J; Thu, 01 May 2025 08:24: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 5418O7k5079799; Thu, 1 May 2025 08:24:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5418O7vM079796; Thu, 1 May 2025 08:24:07 GMT (envelope-from git) Date: Thu, 1 May 2025 08:24:07 GMT Message-Id: <202505010824.5418O7vM079796@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: 720fabb36f15 - main - netinet tests: ensure we send IGMPv2 messages if net.inet.igmp.default_version=2 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: 720fabb36f159d1b916aa40ff92359445e429261 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=720fabb36f159d1b916aa40ff92359445e429261 commit 720fabb36f159d1b916aa40ff92359445e429261 Author: Kristof Provost AuthorDate: 2025-04-29 13:56:14 +0000 Commit: Kristof Provost CommitDate: 2025-05-01 07:31:21 +0000 netinet tests: ensure we send IGMPv2 messages if net.inet.igmp.default_version=2 Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D50072 --- tests/sys/netinet/igmp.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/tests/sys/netinet/igmp.py b/tests/sys/netinet/igmp.py index 5d3b38cac38f..feb9b8b571d5 100644 --- a/tests/sys/netinet/igmp.py +++ b/tests/sys/netinet/igmp.py @@ -62,6 +62,25 @@ def check_igmpv3(args, pkt): return True +def check_igmpv2(args, pkt): + pkt.show() + + igmp = pkt.getlayer(sc.igmp.IGMP) + if igmp is None: + return False + + if igmp.gaddr != args["group"]: + return False + + if args["type"] == "join": + if igmp.type != 0x16: + return False + if args["type"] == "leave": + if igmp.type != 0x17: + return False + + return True + class TestIGMP(VnetTestTemplate): REQUIRED_MODULES = [] TOPOLOGY = { @@ -82,7 +101,7 @@ class TestIGMP(VnetTestTemplate): @pytest.mark.require_progs(["scapy"]) def test_igmp3_join_leave(self): - "Test that we send the expected join/leave IGMPv2 messages" + "Test that we send the expected join/leave IGMPv3 messages" if1 = self.vnet.iface_alias_map["if1"] @@ -107,3 +126,32 @@ class TestIGMP(VnetTestTemplate): s.close() sniffer.join() assert(sniffer.correctPackets > 0) + + @pytest.mark.require_progs(["scapy"]) + def test_igmp2_join_leave(self): + "Test that we send the expected join/leave IGMPv2 messages" + ToolsHelper.print_output("/sbin/sysctl net.inet.igmp.default_version=2") + + if1 = self.vnet.iface_alias_map["if1"] + + # Start a background sniff + from sniffer import Sniffer + expected_pkt = { "type": "join", "group": "230.0.0.1" } + sniffer = Sniffer(expected_pkt, check_igmpv2, if1.name, timeout=10) + + # Now join a multicast group, and see if we're getting the igmp packet we expect + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) + mreq = struct.pack("4sl", socket.inet_aton('230.0.0.1'), socket.INADDR_ANY) + s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) + + # Wait for the sniffer to see the join packet + sniffer.join() + assert(sniffer.correctPackets > 0) + + # Now leave, check for the packet + expected_pkt = { "type": "leave", "group": "230.0.0.1" } + sniffer = Sniffer(expected_pkt, check_igmpv2, if1.name) + + s.close() + sniffer.join() + assert(sniffer.correctPackets > 0) From nobody Thu May 1 13:16:43 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 4ZpF233B99z5v9Sw; Thu, 01 May 2025 13:16: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 4ZpF2322rtz3Dny; Thu, 01 May 2025 13:16:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746105403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TSpC68s+3fMzIpaIeE8TV1NhP8V4HCNRPG2gBDWXWOw=; b=OfMiL5J9VISucE/HQzuTfYweWW7lh9NlZ8RIsd+rAAkoD4xNXobvgYbMFPYHbc0/UNmx6g CRTgo1PKNrGrjvYZPexiAs4C3GK+PnqAHYnTUTb1LSYd4WBU8LFMnSv8KAJsPOL5MR2PCV yO1ehw0HgjSd5nL1C17Nr83l7LgUp3Osksv4upcPnZ3PBYxElnhcRy8xS5AcHydDnRtuEa EAVSoKhVd6vvZ/3k+r4Nixfccap799veoXx1pEla8l06cBHgmNzR6qK3g+HZzsuZvizTL6 X6ryuuJJwYb1wnIet9kxL6Gv+G9hm3RETpKiTPAv6sFLhr/wolJDTItOBH11dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746105403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TSpC68s+3fMzIpaIeE8TV1NhP8V4HCNRPG2gBDWXWOw=; b=nN6IdsJVVsUfSTlCtcsquA7B0woMNkhCgft4rZRAYY7+v/APe4XjNZhlcHD8MwLtGfugqc aVAJz6cAIHSGd9k5xz9l/ciceq8IIojfGsGFhlhZCbU1ljL1DtU4iAlUBvQktcKhEmJ/zm G1cw5G1168vA9a0ML2sOAZ4r8VSJy7sZg/h+lkvC/m3ol3JtEEqg5PvGdOyR1EnYtdXijz JiV8bnC/MoDd+JeLyGk5fmvo7fPtdTddDzuEfB9A00/16CYMGUgRvEFm2FYbWbqDU5CCB9 B4Uoktt1yQrESqLze2FgqODtngUwUZJOil5zw/YLF9DlPdtrPGHFj2J1afr8AA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746105403; a=rsa-sha256; cv=none; b=fWogH7HlJ3sHZ5whxvJ+3WFZOZq723nUeQrgLTtnChqurwqYbpm9o0c01f3Ot/LNJOW3aT ZhyoESXoY8bclhRMmoKTs8Qp6MeenVAvJcB60HfAp9nH8Ixf8hRucrAt2U0InkiDThJN2z 1p+uo7Rj+0QtlUW0O+FrvwuuuTyf5nUwjpozOAKhTQnA/NYpY/AsMSZ5jmdTu17s39ltrA C6JZz6vIUQ/WysZeVQQBXgkjn53nnEWKYwn0vDVhyocvIJbV3ukd0GiTnq0hCTu67I+Ls5 ZSsIT1mydrv2EQ89PiDor328SmERG8tqgAOmeznP8CQU6j6vIETF1IrUUAMeqg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpF231f9fzDRy; Thu, 01 May 2025 13:16:43 +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 541DGheA021945; Thu, 1 May 2025 13:16:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541DGhHI021942; Thu, 1 May 2025 13:16:43 GMT (envelope-from git) Date: Thu, 1 May 2025 13:16:43 GMT Message-Id: <202505011316.541DGhHI021942@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: d609c5733b00 - main - Bump __FreeBSD_version for commit 325aa4dbd10d 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: d609c5733b00151c1236618d8be472790f765947 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d609c5733b00151c1236618d8be472790f765947 commit d609c5733b00151c1236618d8be472790f765947 Author: Mark Johnston AuthorDate: 2025-05-01 13:16:02 +0000 Commit: Mark Johnston CommitDate: 2025-05-01 13:16:02 +0000 Bump __FreeBSD_version for commit 325aa4dbd10d PR: 286495 --- sys/sys/param.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/param.h b/sys/sys/param.h index 8dfd5a243165..9fccde2dcc6b 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -73,7 +73,7 @@ * cannot include sys/param.h and should only be updated here. */ #undef __FreeBSD_version -#define __FreeBSD_version 1500038 +#define __FreeBSD_version 1500039 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Thu May 1 14:13:15 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 4ZpGHH75Myz5vFCD; Thu, 01 May 2025 14:13: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 4ZpGHH6bd9z3pCP; Thu, 01 May 2025 14:13:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746108795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hp+YXcNvCHfcGPy2ad06qf5rKT/45oo2OGbU5ibTgvQ=; b=vhMr2ZL8Ys38SYW2txNC6LUFblTgxpJEEquGwXLk2FyKOMd9iHPqWzB9eY1t9R//+/dcDP SjrSuZJo0IvfuOIB4PrMTj8vo8InPcS6Z5TiGsUOlunasbytTozR7NKeiLoMbW9Y7sD+qB 1mORNlMPwqUQn0339WkwNZxXkUpImEwB4r9Cush9zKR+G7RN5KDzjB2Hh/+ggb4qtUybCs JGFiwm12e48/3MSCoCMGAESz1AyU+gYOIPvzIm54vyvBF/IJNpJpIevAxbI00uiXSTlR/C s7Vc9VLiMbeKYwxwqV5fpthG2j80+RykbhDxgOi+m2FJu9kzY9oj+Dt/Tw7Bkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746108795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hp+YXcNvCHfcGPy2ad06qf5rKT/45oo2OGbU5ibTgvQ=; b=PzOvaLI3jwCKIvHyeDu7q8QcuXyuf6VekLxiz0ihHN9yrKznmORk/SXv1WatCRyGSocwLd 7dwiO+3pKCwgbprqOIUa+Tuome1m/zgz+PDSRSRrr5n7gnizdD5I7Xr6cZIp0ePNjk6tt1 cx7OI0sSab+5qbvRDuausoihoyEasuSJVEYYwyWGawLtZ614giYHmDy2/pa8vFxOcRrsI5 3nlMSGKviTllvlqW34F8FTVigdwep6bRAwG0LseyLleo1ldnX2K7taWXr0UP2KcTN177cN iT17yxyNc5eo7SrnuX735ZalB0QKS9Mcrg0Adlp9UZLUec6oWtDD/rckyX23VA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746108795; a=rsa-sha256; cv=none; b=cN5q2GlMe/4x4A/qqw9ARxFZIxCMm4LGOT/M0BM1HiqtUp5kRkKEoMV6g1jWGoPtZDHuKF YrLMayUegpti1nZINzByPPGxGisAOEtw7sFC0wbIw4QLrleXvd+5HN1SZhvuJWWH4i0IqY oGFOF/esIkx6ASwj2VaAEnNwRW+8e6IFTEYbrW3n59yr4VaBH5vyTSnofmzUPgh9aiJ87P WSiY+7fkLJTZqsTD8lqofy0A0ZMvksiuxYZZwOU41b8YxjPKu2Ql93Q7tL9D48FVuKZFpa fJCJSJzMdLjAEFBjIAhBgUDPDkHYhJhQJ5kSq8ZtjBx8bZZOW+opQF56MVZOVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpGHH6000zWp5; Thu, 01 May 2025 14:13: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 541EDFWS033309; Thu, 1 May 2025 14:13:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541EDFuc033306; Thu, 1 May 2025 14:13:15 GMT (envelope-from git) Date: Thu, 1 May 2025 14:13:15 GMT Message-Id: <202505011413.541EDFuc033306@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gordon Bergling Subject: git: 868a119cf4d2 - main - sh.1: Remove a double word 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: gbe X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 868a119cf4d2a0ebf566cf39961fef0051e56c90 Auto-Submitted: auto-generated The branch main has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=868a119cf4d2a0ebf566cf39961fef0051e56c90 commit 868a119cf4d2a0ebf566cf39961fef0051e56c90 Author: Gordon Bergling AuthorDate: 2025-05-01 14:07:42 +0000 Commit: Gordon Bergling CommitDate: 2025-05-01 14:11:52 +0000 sh.1: Remove a double word Remove the double word "the the" from the sh(1) manual page. MFC after: 3 days --- bin/sh/sh.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/sh/sh.1 b/bin/sh/sh.1 index 5458f5f6f37c..7ef22fa352bb 100644 --- a/bin/sh/sh.1 +++ b/bin/sh/sh.1 @@ -31,7 +31,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 8, 2025 +.Dd May 1, 2025 .Dt SH 1 .Os .Sh NAME @@ -2389,7 +2389,7 @@ If the first character of .Va optstring is a colon then .Va OPTARG -is set to the the option character found, +is set to the option character found, .Ar var is set to .Ql \&: From nobody Thu May 1 14:22:38 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 4ZpGV65N1vz5vFg2; Thu, 01 May 2025 14:22: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 4ZpGV644pgz3sk1; Thu, 01 May 2025 14:22:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746109358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qTRwsfxKVwYvtMIzwePhJ5DuSNkELwOzmdyj5OQHgJs=; b=ibS4UOCV6lTsMxpOW2UrUkedu2TbT7r9+83iOEFlC5fKamFScSPVk9QMxugT6LmaQoGbLW XPnToAwzSSPg2G7i/uKFwM1BCWsdR0OWicuYEriBL3omTO49ACUAYAiunsR6HRCZ2jGulV yzeXMW3fije092Tr7yy18U8Ij9Uj1XaybjFqRAkNuiJCOC3tSdKHGR4ZIDS0OqYrXcVXXQ BqYr24WAVQ2rv5jf3nDPfUOUO1UikRV6OmZdPJle9ND4b3SSm0iYtsf+c7OlhaPmEdtcEi sMLho9VuK72YwHFPjOoRO9NaaUK6rjjhPVRnLaVnW1tVleoycoTXJfNTLTxAAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746109358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qTRwsfxKVwYvtMIzwePhJ5DuSNkELwOzmdyj5OQHgJs=; b=b64rz7H7EHncYKNQyVLF4KBLGvUpSkHeu1HWXaK9HOKr1ZJBVQo84DDgpqq2KlBH/frBi2 u0EQ3//z3Nkma0aUlOpI31VsSsspcV+FpWsHCWw/K5qTKLn0K1bioR7ymqXyw8HxwTaMuu 07R1tXBuHXVbhEAQmnR+/nlxXACdSQox3akx1n/F1KQ/Eqx2dWLdRnZmRe6gSs/no/dU4t kd5tMSIED4q1hqQH7z/hnhHNePcKM8LBFYwP5NvIuFPwCG+9fMiFpCtIZlhhLAg11CP79t YjjXFLSRRhtbCcmUHVte6V6zYsnoly6MF2yIi8WHJp1Rs0nEx+NW45uthf4LBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746109358; a=rsa-sha256; cv=none; b=lxl2BX2Qs+vFE9OxQUvBRsVwfvp8KnQHN0lzi8wxW93mPjPUbhgVof2tJzHstJim9OjYFD eHqN2qjeun0BA5ply87zuPWEclGOiFul+VsC9CbhWrZSJdzwieev41qdPfkMTJuVoRimcR 2a9mrBXYkqwL3RU7oRIJ2dqWkRu5Oac9c73z1b6qKduZ9khqggS/T8HHLIqexWS5gmX1g1 XafvCURTGu9fK6k275RkqjxK2feE3xHf2M+ovpeLUx5aLeJmg5x01MtuV28xMCWOFk07xL xoT2gQTabTKUWy+gnjpiRoQKh7i3sKJ/QGVTnXwHwSnDVX4dqzVK9s64oW2Mgw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpGV63hBXzXT0; Thu, 01 May 2025 14:22: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 541EMcIc051515; Thu, 1 May 2025 14:22:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541EMcMu051512; Thu, 1 May 2025 14:22:38 GMT (envelope-from git) Date: Thu, 1 May 2025 14:22:38 GMT Message-Id: <202505011422.541EMcMu051512@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: 58dd3aa31d17 - main - arch.7: Add a section describing the user address space 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: 58dd3aa31d174666346dfb78205aae4bb5786d05 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=58dd3aa31d174666346dfb78205aae4bb5786d05 commit 58dd3aa31d174666346dfb78205aae4bb5786d05 Author: Mark Johnston AuthorDate: 2025-05-01 13:59:11 +0000 Commit: Mark Johnston CommitDate: 2025-05-01 14:22:25 +0000 arch.7: Add a section describing the user address space Provide some details about the user address space on each platform. Document platforms which support multiple address spaces. I didn't exhaustively document each platform's ABIs (e.g., the 32-bit compat ABI on amd64), but maybe that's worthwhile. Reviewed by: ziaee, kib, emaste Differential Revision: https://reviews.freebsd.org/D49931 --- share/man/man7/arch.7 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/share/man/man7/arch.7 b/share/man/man7/arch.7 index 273c504ebaff..91f6953370d9 100644 --- a/share/man/man7/arch.7 +++ b/share/man/man7/arch.7 @@ -227,6 +227,60 @@ is 8 bytes on all supported architectures except i386. .It powerpc64le Ta 4K .It riscv64 Ta 4K, 2M, 1G .El +.Ss User Address Space Layout +.Bl -column -offset indent "riscv64 (Sv48)" "0x0001000000000000" "NNNU" +.It Sy Architecture Ta Sy Maximum Address Ta Sy Address Space Size +.It aarch64 Ta 0x0001000000000000 Ta 256TiB +.It amd64 (LA48) Ta 0x0000800000000000 Ta 128TiB +.It amd64 (LA57) Ta 0x0100000000000000 Ta 64PiB +.It armv7 Ta 0xbfc00000 Ta 3GiB +.It i386 Ta 0xffc00000 Ta 4GiB +.It powerpc Ta 0xfffff000 Ta 4GiB +.It powerpcspe Ta 0x7ffff000 Ta 2GiB +.It powerpc64 Ta 0x000fffffc0000000 Ta 4PiB +.It powerpc64le Ta 0x000fffffc0000000 Ta 4PiB +.It riscv64 (Sv39) Ta 0x0000004000000000 Ta 256GiB +.It riscv64 (Sv48) Ta 0x0000800000000000 Ta 128TiB +.El +.Pp +The layout of a process' address space can be queried via the +.Dv KERN_PROC_VM_LAYOUT +.Xr sysctl 3 +MIB. +.Pp +Historically, amd64 CPUs were limited to a 48-bit virtual address space. +Newer CPUs support 5-level page tables, which extend the significant bits of +addresses to 57 bits (LA57 mode). +The address space layout is determined by the CPU's support for LA57. +Setting the +.Sy vm.pmap.la57 +tunable to 0 forces the system into 4-level paging mode, even on hardware that +supports 5-level paging. +In this mode, all processes get a 48-bit address space. +The +.Sy vm.pmap.prefer_la48_uva +tunable determines whether processes running on a LA57 system are limited to +a 48-bit address space by default. +Some applications make use of unused upper bits in pointer values to store +information, and thus implicitly assume they are running in LA48 mode. +To avoid breaking compatibility, all processes run in LA48 mode by default. +The +.Xr elfctl 1 +utility can be used to request LA48 or LA57 mode for specific executables. +Similarly, +.Xr proccontrol 1 +can be used to configure the address space layout when executing a process. +.Pp +The RISC-V specification permits 3-level (Sv39), 4-level (Sv48), and +5-level (Sv57) page tables. +Hardware is only required to implement Sv39; implementations which support +Sv48 must also support Sv39, and implementations which support Sv57 must also +support Sv48. +The +.Sy vm.pmap.mode +tunable can be used to select the layout. +.Fx +currently supports Sv39 and Sv48 and defaults to using Sv39. .Ss Floating Point .Bl -column -offset indent "Architecture" "float, double" "long double" .It Sy Architecture Ta Sy float, double Ta Sy long double @@ -424,6 +478,9 @@ Like it is unused outside of that scope. .El .Sh SEE ALSO +.Xr elfctl 1 , +.Xr proccontrol 1 , +.Xr sysctl 3 , .Xr src.conf 5 , .Xr build 7 , .Xr simd 7 From nobody Thu May 1 14:22:39 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 4ZpGV76FKYz5vDrB; Thu, 01 May 2025 14:22:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpGV74kdZz3scv; Thu, 01 May 2025 14:22:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746109359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ND5phxxQd8MofJ/LFPX6zKxTXrAR/oyQJYI6u2HhOwA=; b=tNogap325zAthu/3FhL47OMEYXidw28FnWFSmE9cEukH/IqtTLZTe5DFgePZkyU0kBLT7k vgm49YNV/8egEhJCqsnOWXmXhbephE9GRDBLrjY8aArcu6xrLKkTXZLlJgaAw2tt0Dj5RN P5ObdRewK2Bv9cQyDwomkecf6nI5/dALQH6vYyUsB7kPKRHsIRW1kP1XA1oZw16BzJxPoS rFIcjK9/PaEzGqT/d1EDwjvTunf/VX9mC/1pdoT/rdlACrJkUkxcnnacPwTPqxPgOiYna9 gSmDBrbprQ8SPPcnh9nUiUVixoNOvqDqn40Lox1h6w4akROfcU8BI6fHLMNy/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746109359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ND5phxxQd8MofJ/LFPX6zKxTXrAR/oyQJYI6u2HhOwA=; b=ebimbB9h7r2xgGiiLUzHk9z8pODz+ykmL4KhR9P2D1cvUC/MaUUCAeBxjpl0qCbbdbpw53 EiMOLcBMlDmphPyxVcteHqiOsCXuYCxKpAaX6r6yaeS71fH2B2UjaQITJMUY+KRwtgYbZZ 7uxiqlmWzIWc/w8h5PhyIX00iH2NawEmchve9B+z9EIope5tSLvWAZZ2PYB44I7L5JQTze sEnORUJbkzbP/ujUhJYbPmUzcvQQCa7wbmPhTT0BvDcdBCQJuzXwIMIrUeZBhWoZ34EgNM oDm7aWOQgR4EW4bss2nMYz0XO00GBfXFKHlOEEvC/Zs7Inlg3wg+8Y+V+xZoyg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746109359; a=rsa-sha256; cv=none; b=YjseCH0eScSk7z0pgoV0PY1Wmc05Tts8O+D+jvzEPZVWlLrumid2JDHoW8d2j+YZlDUH99 PC5z9lIgFuHV6v1E8BLHArb0I9YIQL9COhpb9l70wC0fpEBrsc52wRbx7kRtVzJur/9O3T VbzT8JEm07qTrGUy3FOQnxiaJmD/iTvpMDoTpW9MnEkkIko4BlDgCYR8PJk2PY0OlemiJu 8NZSOWVVWLuE2Cc82N3TXCc7KOKblVqF3e1m5OB9Qzdq+mElhCXDFLH5kwnnFcTKkOxeps l4If09oWoeB3KB2U4SdyCQ9D/0gsBktghi+yuw4wTEfB3eo40cbhqfbuxCgdtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpGV74JzQzWsR; Thu, 01 May 2025 14:22:39 +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 541EMdDA051549; Thu, 1 May 2025 14:22:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541EMdLs051546; Thu, 1 May 2025 14:22:39 GMT (envelope-from git) Date: Thu, 1 May 2025 14:22:39 GMT Message-Id: <202505011422.541EMdLs051546@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: 33be1632047c - main - racct: Fix accounting of CPU time for the system idle process 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: 33be1632047c05dbfcc139476e05f49c3a86d560 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=33be1632047c05dbfcc139476e05f49c3a86d560 commit 33be1632047c05dbfcc139476e05f49c3a86d560 Author: Mark Johnston AuthorDate: 2025-05-01 13:59:55 +0000 Commit: Mark Johnston CommitDate: 2025-05-01 14:22:25 +0000 racct: Fix accounting of CPU time for the system idle process - Add a flag which cleanly indicates that a given process is the system idle process. - Modify racctd() to skip over the idle proc when aggregating CPU time and other metrics which don't apply to the idle thread. - Remove handling for idle threads from racct_getpcpu(). PR: 269097 Reviewed by: olce, kib Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50073 --- sys/kern/kern_idle.c | 3 +++ sys/kern/kern_racct.c | 22 ++++------------------ sys/sys/proc.h | 2 +- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/sys/kern/kern_idle.c b/sys/kern/kern_idle.c index a8126de265b2..6be2a96958ed 100644 --- a/sys/kern/kern_idle.c +++ b/sys/kern/kern_idle.c @@ -82,4 +82,7 @@ idle_setup(void *dummy) #ifdef SMP } #endif + PROC_LOCK(p); + p->p_flag |= P_IDLEPROC; + PROC_UNLOCK(p); } diff --git a/sys/kern/kern_racct.c b/sys/kern/kern_racct.c index d900078fe5e2..cc84356cfc4e 100644 --- a/sys/kern/kern_racct.c +++ b/sys/kern/kern_racct.c @@ -322,15 +322,13 @@ racct_getpcpu(struct proc *p, u_int pcpu) u_int swtime; #ifdef SCHED_4BSD fixpt_t pctcpu, pctcpu_next; -#endif -#ifdef SMP - struct pcpu *pc; - int found; #endif fixpt_t p_pctcpu; struct thread *td; ASSERT_RACCT_ENABLED(); + KASSERT((p->p_flag & P_IDLEPROC) == 0, + ("racct_getpcpu: idle process %p", p)); swtime = (ticks - p->p_swtick) / hz; @@ -344,19 +342,6 @@ racct_getpcpu(struct proc *p, u_int pcpu) p_pctcpu = 0; FOREACH_THREAD_IN_PROC(p, td) { - if (td == PCPU_GET(idlethread)) - continue; -#ifdef SMP - found = 0; - STAILQ_FOREACH(pc, &cpuhead, pc_allcpu) { - if (td == pc->pc_idlethread) { - found = 1; - break; - } - } - if (found) - continue; -#endif thread_lock(td); #ifdef SCHED_4BSD pctcpu = sched_pctcpu(td); @@ -1252,7 +1237,8 @@ racctd(void) FOREACH_PROC_IN_SYSTEM(p) { PROC_LOCK(p); - if (p->p_state != PRS_NORMAL) { + if (p->p_state != PRS_NORMAL || + (p->p_flag & P_IDLEPROC) != 0) { if (p->p_state == PRS_ZOMBIE) racct_set(p, RACCT_PCTCPU, 0); PROC_UNLOCK(p); diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 46482f26e0ef..eb0b66618a9d 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -803,7 +803,7 @@ struct proc { lock. */ #define P_CONTROLT 0x00000002 /* Has a controlling terminal. */ #define P_KPROC 0x00000004 /* Kernel process. */ -#define P_UNUSED3 0x00000008 /* --available-- */ +#define P_IDLEPROC 0x00000008 /* Container for system idle threads. */ #define P_PPWAIT 0x00000010 /* Parent is waiting for child to exec/exit. */ #define P_PROFIL 0x00000020 /* Has started profiling. */ From nobody Thu May 1 14:22:40 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 4ZpGV90mGCz5vFg3; Thu, 01 May 2025 14:22:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpGV85hS7z3sXX; Thu, 01 May 2025 14:22:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746109360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TMh0RXLB/LabA//Qpjnw4DUHSukkMklqQL8m10LILVQ=; b=qxzRkLfeW12JKa6mEfDdSg9RbRYH8jKAeaM73X2xJKkvpwvEHhVpQ2P8DnSJZ3mig0xIEG RjrzH1yCQ2ynz+8D3OFrYs8iVaHSJcPp/iU+6EJcbseIoX9AS7RMdbHHEXQX9/uyLcNrAX VFua4+cj0uqb8l5IHtrPlSvYgfI7QW6K+7aMnTgASvrvG3aZSeH0d9CtwuEX5dCW9YJeLA tR0DDo17WHm4GN0/HVcrburXY7vQBGNKbfaiNK+r+vLbkXPGZaNvzNHv7juX3daVSAnqqW XJ7YaKfh13q8DNvUYjJsKGrufcH+RoQ1AZIOSottEaBWJ9PRPAtbVB37hEPghw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746109360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TMh0RXLB/LabA//Qpjnw4DUHSukkMklqQL8m10LILVQ=; b=Fs1bUfkZritGoqUueUwAuZCIKtiTnHs6+/DN/TfpFrcoKYHoIdd/0m5x8A14MiKEp9+KPg F5TfgmRlEHkCTau5s0PaJIlKjrijNbETJqs3X4S5YRnRd6JbNNFyrnS+PWMzaaEZevKNmB WRHpvpgjnXfr0Vs5IQHQdW1OTRUDFb6uWYjLm1aAuI5zJCU9FIZurN0ILBWBKTA/MiCy5K jb1JRoKEmaJIKaI601G21Rjmn9EhY55ZD8fllCAQTDhAyYTtjJ3E2blccNbIGDQIlAH1vG nRNr5mFKnC8hIg/dmvvS2c2QywW8jk3Yy/5cJ3C3wFfbWNn0zyNHd9R4cp5KBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746109360; a=rsa-sha256; cv=none; b=yk1+HLdVF7VE3c+zokbK+wEm5h99WWFFDRMHoDM/XshUgGTg/YAnOAa4vqRjjgycRuhgZz mCN2cTQNRS1yA9dll32Oo+MLL9y7X2hkSz/XDlxrG1mZJ7DirFvLW2RzY8z3xD7H+KPPn5 xl2v1ehyDyzes/crxsPG7h89DlWxMvJWrOj8NF8Ih4viTEYpxHJC1JoBl/6jNFSxBJjo2H OSk9D6TRUWAZESbhK+OnlFn68vv2IeEaGwlMQNsHQaWUl2Pf1y0pG4+hQE0wcng1EKps5/ bmxl6dOuOtfvvQF0r/cY+kZbus01kMCCkhccPWs8jO11kUpxljdUuoU80TQuwg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpGV85HRBzWsS; Thu, 01 May 2025 14:22:40 +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 541EMeQI051583; Thu, 1 May 2025 14:22:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541EMeuP051580; Thu, 1 May 2025 14:22:40 GMT (envelope-from git) Date: Thu, 1 May 2025 14:22:40 GMT Message-Id: <202505011422.541EMeuP051580@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: 5d1fba01ca07 - main - racct: Fix a typo in 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5d1fba01ca07030a013815746c2c056b5c4a8a49 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5d1fba01ca07030a013815746c2c056b5c4a8a49 commit 5d1fba01ca07030a013815746c2c056b5c4a8a49 Author: Mark Johnston AuthorDate: 2025-05-01 14:00:05 +0000 Commit: Mark Johnston CommitDate: 2025-05-01 14:22:25 +0000 racct: Fix a typo in a comment Reported by: kib MFC after: 1 week --- sys/kern/kern_racct.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_racct.c b/sys/kern/kern_racct.c index cc84356cfc4e..7ee3b9e2048a 100644 --- a/sys/kern/kern_racct.c +++ b/sys/kern/kern_racct.c @@ -311,7 +311,7 @@ fixpt_t ccpu_exp[] = { /* * This function is analogical to the getpcpu() function in the ps(1) command. * They should both calculate in the same way so that the racct %cpu - * calculations are consistent with the values showed by the ps(1) tool. + * calculations are consistent with the values shown by the ps(1) tool. * The calculations are more complex in the 4BSD scheduler because of the value * of the ccpu variable. In ULE it is defined to be zero which saves us some * work. From nobody Thu May 1 15:02:03 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 4ZpHMb63SQz5vHdt; Thu, 01 May 2025 15:02: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 4ZpHMb5VHlz3JdB; Thu, 01 May 2025 15:02:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746111723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lJQf/55wjSNzqoAwN5O9VsiiGs7Zd56ATXC06Ezm/bU=; b=lk57DxFunPWk3k5KmyrbCGlO80DDMQo5/hbiruoHI4+6zORFdKptM5+/udwrRAco6D1A7V BjP5yO+OEHfGQ3f6D7I7Y6KMNyOUuBh8POAj4cwDK2Y3Pa/n5rFuNFQ7KKyj61sMx03gH0 oUysqf4efB9igDuwDqLcPqoyO6O2j7TAQbmZv8r5SMSSxvm+k02FyYB8tWQlJwasmpKCsM 56DW8pYsEery/yTF5ppL8XfupjxGuUcC1QsZJnGP8ksFXIEkCisA74zqaKfG+/6XgAL7L0 EkXObaRcAGM+2AoyBs9NVceSp+y9msla31LvygRR/Zu1r5/MIIAMWAtceCckgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746111723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lJQf/55wjSNzqoAwN5O9VsiiGs7Zd56ATXC06Ezm/bU=; b=TILeBqepv5P0f1gt+LdBj7aXZYh+MW77oA63FBFqzJVw1k8PkKvh7Kl2z+TSgT0rmnI8qP iiEXCdh1sBHwzaNK6KCycTYbb58agoCxzVER1PochI6J7519PYf5e6fucjO0AzGX4vBmGM NvL40cw3Yx5CDD9EnwvkGpLQ0OQU199VRH/S71EMR5RX5fQDSsnNzPZz28fAB3vwXfV449 RVcPL+nm1Ion/eti0lTRotDfkaEXv+STyrrHuxYDjjrzVwrfd645Qiy4/H+P9RRmrU8g3j hUhOId21+UfLAL9hiWYqUS36WPrvePlcXtaIaxs9UIPmtvsLzanTAdK/B+9jvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746111723; a=rsa-sha256; cv=none; b=tissTdfBTgnESU+byWgsDVBGafZ8vxTL6ScNOo6JaHXaPB+FrIYnnn4o/gC54hvSL5YsNI NDcXwqyMyEbEgD7b+RXK/oCSlxt8lDSnkC7xUWpA0SC7o5He7P9cWHFcjWMOnPrp7ovEcM TUcIgVEa+en85c5Uf+R5/1hUNR1idzASgp2qxZpXOBjXZGzy3yn6/x3Q7oB3BIoIG+R1Io dUuGdI2knGGobyyLuTk0kb46mGiA27QDgfJ3WwSLfNP5+JcuqLRDcS9R/lA+DX7D3e06Rh YQzn7G3IGGxspb44UP7pHJlAarTV7Agqo5gg9XUCqctKNNKkklwQ6TU7NdXcnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpHMb4tgLzYw1; Thu, 01 May 2025 15:02: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 541F23eJ027133; Thu, 1 May 2025 15:02:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541F23He027130; Thu, 1 May 2025 15:02:03 GMT (envelope-from git) Date: Thu, 1 May 2025 15:02:03 GMT Message-Id: <202505011502.541F23He027130@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: a592b5fd9d9c - main - mccomphy: add support for YT8531 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: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a592b5fd9d9cca89b9d9b9bae01fb33f339d9339 Auto-Submitted: auto-generated The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=a592b5fd9d9cca89b9d9b9bae01fb33f339d9339 commit a592b5fd9d9cca89b9d9b9bae01fb33f339d9339 Author: Jari Sihvola AuthorDate: 2025-03-29 20:55:13 +0000 Commit: Mitchell Horne CommitDate: 2025-05-01 15:01:30 +0000 mccomphy: add support for YT8531 Reapply e69623451ea6, this time with proper conditions for code requiring FDT. Co-authored-by: mhorne MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D50074 --- sys/dev/mii/mcommphy.c | 274 ++++++++++++++++++++++++++++++++++++++++++++----- sys/dev/mii/miidevs | 2 + 2 files changed, 251 insertions(+), 25 deletions(-) diff --git a/sys/dev/mii/mcommphy.c b/sys/dev/mii/mcommphy.c index a8a16c00bade..c03e891d3173 100644 --- a/sys/dev/mii/mcommphy.c +++ b/sys/dev/mii/mcommphy.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2022 Jared McNeill * Copyright (c) 2022 Soren Schmidt + * Copyright (c) 2024 Jari Sihvola * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,9 +27,12 @@ */ /* - * Motorcomm YT8511C / YT8511H Integrated 10/100/1000 Gigabit Ethernet phy + * Motorcomm YT8511C/YT8511H/YT8531 + * Integrated 10/100/1000 Gigabit Ethernet phy */ +#include "opt_platform.h" + #include #include #include @@ -42,12 +46,18 @@ #include #include +#ifdef FDT +#include +#endif +#include "miidevs.h" #include "miibus_if.h" -#define MCOMMPHY_OUI 0x000000 -#define MCOMMPHY_MODEL 0x10 -#define MCOMMPHY_REV 0x0a +#define MCOMMPHY_YT8511_OUI 0x000000 +#define MCOMMPHY_YT8511_MODEL 0x10 +#define MCOMMPHY_YT8511_REV 0x0a + +#define MCOMMPHY_YT8531_MODEL 0x11 #define EXT_REG_ADDR 0x1e #define EXT_REG_DATA 0x1f @@ -61,9 +71,51 @@ #define PHY_SLEEP_CONTROL1_REG 0x27 #define PLLON_IN_SLP 0x4000 +/* Registers and values for YT8531 */ +#define YT8531_CHIP_CONFIG 0xa001 +#define RXC_DLY_EN (1 << 8) + +#define YT8531_PAD_DRSTR_CFG 0xa010 +#define PAD_RXC_MASK 0x7 +#define PAD_RXC_SHIFT 13 +#define JH7110_RGMII_RXC_STRENGTH 6 + +#define YT8531_RGMII_CONFIG1 0xa003 +#define RX_DELAY_SEL_SHIFT 10 +#define RX_DELAY_SEL_MASK 0xf +#define RXC_DLY_THRESH 2250 +#define RXC_DLY_ADDON 1900 +#define TX_DELAY_SEL_FE_MASK 0xf +#define TX_DELAY_SEL_FE_SHIFT 4 +#define TX_DELAY_SEL_MASK 0xf +#define TX_DELAY_SEL_SHIFT 0 +#define TX_CLK_SEL (1 << 14) +#define INTERNAL_DLY_DIV 150 + +#define YT8531_SYNCE_CFG 0xa012 +#define EN_SYNC_E (1 << 6) + #define LOWEST_SET_BIT(mask) ((((mask) - 1) & (mask)) ^ (mask)) #define SHIFTIN(x, mask) ((x) * LOWEST_SET_BIT(mask)) +static const struct mii_phydesc mcommphys[] = { + MII_PHY_DESC(MOTORCOMM, YT8511), + MII_PHY_DESC(MOTORCOMM2, YT8531), + MII_PHY_END +}; + +struct mcommphy_softc { + mii_softc_t mii_sc; + device_t dev; + u_int rx_delay_ps; + u_int tx_delay_ps; + bool tx_10_inv; + bool tx_100_inv; + bool tx_1000_inv; +}; + +static void mcommphy_yt8531_speed_adjustment(struct mii_softc *sc); + static int mcommphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) { @@ -84,6 +136,16 @@ mcommphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) /* Update the media status. */ PHY_STATUS(sc); + /* + * For the needs of JH7110 which has two Ethernet devices with + * different TX inverted configuration depending on speed used + */ + if (sc->mii_mpd_model == MCOMMPHY_YT8531_MODEL && + (sc->mii_media_active != mii->mii_media_active || + sc->mii_media_status != mii->mii_media_status)) { + mcommphy_yt8531_speed_adjustment(sc); + } + /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -105,26 +167,22 @@ mcommphy_probe(device_t dev) * The YT8511C reports an OUI of 0. Best we can do here is to match * exactly the contents of the PHY identification registers. */ - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MCOMMPHY_OUI && - MII_MODEL(ma->mii_id2) == MCOMMPHY_MODEL && - MII_REV(ma->mii_id2) == MCOMMPHY_REV) { + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MCOMMPHY_YT8511_OUI && + MII_MODEL(ma->mii_id2) == MCOMMPHY_YT8511_MODEL && + MII_REV(ma->mii_id2) == MCOMMPHY_YT8511_REV) { device_set_desc(dev, "Motorcomm YT8511 media interface"); - return BUS_PROBE_DEFAULT; + return (BUS_PROBE_DEFAULT); } - return (ENXIO); + + /* YT8531 follows a conventional procedure */ + return (mii_phy_dev_probe(dev, mcommphys, BUS_PROBE_DEFAULT)); } -static int -mcommphy_attach(device_t dev) +static void +mcommphy_yt8511_setup(struct mii_softc *sc) { - struct mii_softc *sc = device_get_softc(dev); uint16_t oldaddr, data; - mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &mcommphy_funcs, 0); - - PHY_RESET(sc); - - /* begin chip stuff */ oldaddr = PHY_READ(sc, EXT_REG_ADDR); PHY_WRITE(sc, EXT_REG_ADDR, PHY_CLOCK_GATING_REG); @@ -150,21 +208,187 @@ mcommphy_attach(device_t dev) PHY_WRITE(sc, EXT_REG_DATA, data); PHY_WRITE(sc, EXT_REG_ADDR, oldaddr); - /* end chip stuff */ +} + +static void +mcommphy_yt8531_speed_adjustment(struct mii_softc *sc) +{ + struct mcommphy_softc *mcomm_sc = (struct mcommphy_softc *)sc; + struct mii_data *mii = sc->mii_pdata; + bool tx_clk_inv = false; + uint16_t reg, oldaddr; + + switch (IFM_SUBTYPE(mii->mii_media_active)) { + case IFM_1000_T: + tx_clk_inv = mcomm_sc->tx_1000_inv; + break; + case IFM_100_T: + tx_clk_inv = mcomm_sc->tx_100_inv; + break; + case IFM_10_T: + tx_clk_inv = mcomm_sc->tx_10_inv; + break; + } + + oldaddr = PHY_READ(sc, EXT_REG_ADDR); + + PHY_WRITE(sc, EXT_REG_ADDR, YT8531_RGMII_CONFIG1); + reg = PHY_READ(sc, EXT_REG_DATA); + if (tx_clk_inv) + reg |= TX_CLK_SEL; + else + reg &= ~TX_CLK_SEL; + PHY_WRITE(sc, EXT_REG_DATA, reg); + + PHY_WRITE(sc, EXT_REG_ADDR, oldaddr); +} + +static int +mcommphy_yt8531_setup_delay(struct mii_softc *sc) +{ + struct mcommphy_softc *mcomm_sc = (struct mcommphy_softc *)sc; + uint16_t reg, oldaddr; + int rx_delay = 0, tx_delay = 0; + bool rxc_dly_en_off = false; + + if (mcomm_sc->rx_delay_ps > RXC_DLY_THRESH) { + rx_delay = (mcomm_sc->rx_delay_ps - RXC_DLY_ADDON) / + INTERNAL_DLY_DIV; + } else if (mcomm_sc->rx_delay_ps > 0) { + rx_delay = mcomm_sc->rx_delay_ps / INTERNAL_DLY_DIV; + rxc_dly_en_off = true; + } + + if (mcomm_sc->tx_delay_ps > 0) { + tx_delay = mcomm_sc->tx_delay_ps / INTERNAL_DLY_DIV; + } + + oldaddr = PHY_READ(sc, EXT_REG_ADDR); - sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & sc->mii_capmask; - if (sc->mii_capabilities & BMSR_EXTSTAT) - sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR); + /* Modifying Chip Config register */ + PHY_WRITE(sc, EXT_REG_ADDR, YT8531_CHIP_CONFIG); + reg = PHY_READ(sc, EXT_REG_DATA); + if (rxc_dly_en_off) + reg &= ~(RXC_DLY_EN); + PHY_WRITE(sc, EXT_REG_DATA, reg); + + /* Modifying RGMII Config1 register */ + PHY_WRITE(sc, EXT_REG_ADDR, YT8531_RGMII_CONFIG1); + reg = PHY_READ(sc, EXT_REG_DATA); + reg &= ~(RX_DELAY_SEL_MASK << RX_DELAY_SEL_SHIFT); + reg |= rx_delay << RX_DELAY_SEL_SHIFT; + reg &= ~(TX_DELAY_SEL_MASK << TX_DELAY_SEL_SHIFT); + reg |= tx_delay << TX_DELAY_SEL_SHIFT; + PHY_WRITE(sc, EXT_REG_DATA, reg); + + PHY_WRITE(sc, EXT_REG_ADDR, oldaddr); + + return (0); +} + +static int +mcommphy_yt8531_setup(struct mii_softc *sc) +{ + uint16_t reg, oldaddr; + + oldaddr = PHY_READ(sc, EXT_REG_ADDR); + + /* Modifying Pad Drive Strength register */ + PHY_WRITE(sc, EXT_REG_ADDR, YT8531_PAD_DRSTR_CFG); + reg = PHY_READ(sc, EXT_REG_DATA); + reg &= ~(PAD_RXC_MASK << PAD_RXC_SHIFT); + reg |= (JH7110_RGMII_RXC_STRENGTH << PAD_RXC_SHIFT); + PHY_WRITE(sc, EXT_REG_DATA, reg); + + /* Modifying SyncE Config register */ + PHY_WRITE(sc, EXT_REG_ADDR, YT8531_SYNCE_CFG); + reg = PHY_READ(sc, EXT_REG_DATA); + reg &= ~(EN_SYNC_E); + PHY_WRITE(sc, EXT_REG_DATA, reg); + + PHY_WRITE(sc, EXT_REG_ADDR, oldaddr); + +#ifdef FDT + if (mcommphy_yt8531_setup_delay(sc) != 0) + return (ENXIO); +#endif + + return (0); +} + +#ifdef FDT +static void +mcommphy_fdt_get_config(struct mcommphy_softc *sc) +{ + mii_fdt_phy_config_t *cfg; + pcell_t val; + + cfg = mii_fdt_get_config(sc->dev); + + if (OF_hasprop(cfg->phynode, "motorcomm,tx-clk-10-inverted")) + sc->tx_10_inv = true; + if (OF_hasprop(cfg->phynode, "motorcomm,tx-clk-100-inverted")) + sc->tx_100_inv = true; + if (OF_hasprop(cfg->phynode, "motorcomm,tx-clk-1000-inverted")) + sc->tx_1000_inv = true; + + /* Grab raw delay values (picoseconds); adjusted later. */ + if (OF_getencprop(cfg->phynode, "rx-internal-delay-ps", &val, + sizeof(val)) > 0) { + sc->rx_delay_ps = val; + } + if (OF_getencprop(cfg->phynode, "tx-internal-delay-ps", &val, + sizeof(val)) > 0) { + sc->tx_delay_ps = val; + } + + mii_fdt_free_config(cfg); +} +#endif + +static int +mcommphy_attach(device_t dev) +{ + struct mcommphy_softc *mcomm_sc = device_get_softc(dev); + mii_softc_t *mii_sc = &mcomm_sc->mii_sc; + int ret = 0; + + mcomm_sc->dev = dev; + +#ifdef FDT + mcommphy_fdt_get_config(mcomm_sc); +#endif + + mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &mcommphy_funcs, 0); + + PHY_RESET(mii_sc); + + if (mii_sc->mii_mpd_model == MCOMMPHY_YT8511_MODEL) + mcommphy_yt8511_setup(mii_sc); + else if (mii_sc->mii_mpd_model == MCOMMPHY_YT8531_MODEL) + ret = mcommphy_yt8531_setup(mii_sc); + else { + device_printf(dev, "no PHY model detected\n"); + return (ENXIO); + } + if (ret) { + device_printf(dev, "PHY setup failed, error: %d\n", ret); + return (ret); + } + + mii_sc->mii_capabilities = PHY_READ(mii_sc, MII_BMSR) & + mii_sc->mii_capmask; + if (mii_sc->mii_capabilities & BMSR_EXTSTAT) + mii_sc->mii_extcapabilities = PHY_READ(mii_sc, MII_EXTSR); device_printf(dev, " "); - mii_phy_add_media(sc); + mii_phy_add_media(mii_sc); printf("\n"); - MIIBUS_MEDIAINIT(sc->mii_dev); + MIIBUS_MEDIAINIT(mii_sc->mii_dev); return (0); } - static device_method_t mcommphy_methods[] = { /* device interface */ DEVMETHOD(device_probe, mcommphy_probe), @@ -177,7 +401,7 @@ static device_method_t mcommphy_methods[] = { static driver_t mcommphy_driver = { "mcommphy", mcommphy_methods, - sizeof(struct mii_softc) + sizeof(struct mcommphy_softc) }; DRIVER_MODULE(mcommphy, miibus, mcommphy_driver, 0, 0); diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs index c8eba403c22d..5c10fd0f0224 100644 --- a/sys/dev/mii/miidevs +++ b/sys/dev/mii/miidevs @@ -63,6 +63,7 @@ oui LEVEL1 0x00207b Level 1 oui MARVELL 0x005043 Marvell Semiconductor oui MICREL 0x0010a1 Micrel oui MOTORCOMM 0x000000 Motorcomm +oui MOTORCOMM2 0xc82b5e Motorcomm oui MYSON 0x00c0b4 Myson Technology oui NATSEMI 0x080017 National Semiconductor oui PMCSIERRA 0x00e004 PMC-Sierra @@ -295,6 +296,7 @@ model MICREL KSZ9031 0x0022 Micrel KSZ9031 10/100/1000 PHY /* Motorcomm PHYs */ model MOTORCOMM YT8511 0x010a Motorcomm YT8511 10/100/1000 PHY +model MOTORCOMM2 YT8531 0x0011 Motorcomm YT8531 10/100/1000 PHY /* Myson Technology PHYs */ model xxMYSON MTD972 0x0000 MTD972 10/100 media interface From nobody Thu May 1 16:14:53 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 4ZpJzf0RzGz5vNKS; Thu, 01 May 2025 16:14: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 4ZpJzd75hsz3w97; Thu, 01 May 2025 16:14:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746116094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZbHrTKYLmska0QIYetQKnjIoNmTNajLt/RDXIxOQ+Ns=; b=ptdAgonf8oOU3EtA2FFNfjI8DCDWglFZvJye1t/XZCGh5VooZFrxt85+THMBEnXyZuvFx+ P/hNnUjGk76jhVVdo7tNVO9jNVzzQFpCcN0+bg2D4JdZ105Kms7lOs1EQZsXycIIBRYDft VzSdUSb7QN4TflB0JI0C4bEzm5xtt8aEIVl+8BqjziDA5eHUUD+anyo83y5uaCbT0m04K6 gvjk2tHsKqDtUQG1SOqtF3mfC3sqzJPxOC756NuL+WVXMiWL7VBXw/JbAKP3/sQ+aKRLwM KMN1o/EdpoV2kMOzIJtYzASH/Cx2kKgPJzroUCPAnZJp4ETx4t8wxaGuEcytbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746116094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZbHrTKYLmska0QIYetQKnjIoNmTNajLt/RDXIxOQ+Ns=; b=hWrrF0JHLWf3s/azu9ziJKbA9fKLGUqUnkfzi2VsPRrKpmpbrq5zml2aBNtObA/LS7Kn7b +9q1NeBBG2pSGZsaOTg4blqK4q9YGzFs/iTOViKdqRrXDJHCO78D7SecrBmv5Zu3lL46Vr NZPFHClQBO4tc1JRpRgvX0/SxFpbw/snv/qI+xNGErtho2bX1ADc/lquzpBUg2F8NW2ZwW xmgmsRF329buZAZLZOQCr8Wfqp2frsRuC3Dq5yvgf31cFtZyTiPeqsItvxg+wvPnF16Czi qZWC3Jfm+vs63i6nj9rtLh2q69z0U6P77pcFANE1a8VK0J7J5A5cVW8w71TgVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746116094; a=rsa-sha256; cv=none; b=kvnBLdkVEueuXvKAj5VblLBimyiDXMB2Uz2dJE1h0sfEoBmeo3PH1b1yWGJJggK1ZnuQZZ 9qCTjYYx5o1p1BSTkq3xoUsNRs67pWdkfpPVxdfAAckCAXke5m6pKJX2q6SOlZyHjJyHlq lzwffYFazYeffcIGK+AYrOLjrepLUjhTXX2X6Gbj/Ej536RxTHtzUMlZrSYm+PQnsFfGfP dwk8Se2322xO1x5LYFnJ5/Cc4rwLMN6tcvTTLO7BAugWCVkHbTIdBFEHRn8DNZz3nS/nuN lgET/15YdwuuSi3IUEqh5ucHGpHfy1BmO7Extf2uAXzdTAGDV/aGHqSNWRs+eA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpJzd6QpSzbkH; Thu, 01 May 2025 16:14: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 541GErVm058578; Thu, 1 May 2025 16:14:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541GErsu058575; Thu, 1 May 2025 16:14:53 GMT (envelope-from git) Date: Thu, 1 May 2025 16:14:53 GMT Message-Id: <202505011614.541GErsu058575@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: 934caaec3afc - main - tcp: improve KASSERT in limited retransmit 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: 934caaec3afc43638c2a1da8fbe3b672566db4fe Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=934caaec3afc43638c2a1da8fbe3b672566db4fe commit 934caaec3afc43638c2a1da8fbe3b672566db4fe Author: Michael Tuexen AuthorDate: 2025-05-01 16:11:03 +0000 Commit: Michael Tuexen CommitDate: 2025-05-01 16:11:03 +0000 tcp: improve KASSERT in limited retransmit When doing a limited retransmit, allow up to 2 * MSS - 1 if the Nagle algorithm has been disabled. PR: 282605 Reviewed by: cc, Peter Lei MFC after: 3 days Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D49922 --- sys/netinet/tcp_input.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index a9b5f5374503..817079dfe6c8 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2815,9 +2815,11 @@ enter_recovery: KASSERT((tp->t_dupacks == 2 && tp->snd_limited == 0) || (sent == maxseg + 1 && - tp->t_flags & TF_SENTFIN), - ("%s: sent too much", - __func__)); + tp->t_flags & TF_SENTFIN) || + (sent < 2 * maxseg && + tp->t_flags & TF_NODELAY), + ("%s: sent too much: %u>%u", + __func__, sent, maxseg)); tp->snd_limited = 2; } else if (sent > 0) { ++tp->snd_limited; From nobody Thu May 1 16:40:43 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 4ZpKYR6Hs5z5vQ3Y; Thu, 01 May 2025 16:40: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 4ZpKYR5nFHz3BnC; Thu, 01 May 2025 16:40:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746117643; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dBJCfdB+lkJkExS3Vl8mTjCI4LkA7oJttN04B1WAesM=; b=czHs8oJ9LzNa6hJJz3NbNaikpgs+4jHU4bpfqkayr8jIyNZ97LVcjOEF+O/LAuQLVv66hn uSSPe4hJQpaQL8wUp8cVBt9SrfVQnG56cMHlHJq+F89oz6hso9r7iPfIe6sxKNWEg+wjV9 UtjagCt9XtXQWucINpgCM6SR6gpXYC3/vUnqwtm0uu29NINmfg1JynrBY/AokCslHXhSI6 r8ZkmcPCnLb4lhPNI89isK01KhWtcqSVmh0fDA8xGWH3q8hKNjZ5+Smt5eI/ScNZ6PtXXo ue98lVHxE+x1AvyggGZsa6lGnjsXzLYId/qco4bEj2YRgUlsc0Omq1CQNpvniQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746117643; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dBJCfdB+lkJkExS3Vl8mTjCI4LkA7oJttN04B1WAesM=; b=XafGA2Qqzl62Jr+qdIvOLHs6aNoBU1wfRT/b8WzvyVwKSuDIrAXw70HzGIqbnPXe4snLXa 4107ADU34u+677Su3wVIaslPsbHMc+qEmYlMfRPN58Ah1iNt7FVpZJS4rDlM6x2y/NuF5t vy4yziCAYB+T80YJr7nqQRXKgzK27ga9iseZI22/+eoihMRr12YXnpv6KKOz9LrIOx7mmI H0Etrx3c5hm3ww4ddxNaZHgX3Q4iNM9+QEyuJSnTaHrhefCThG5N0sh3pJAZUqMJSUjku4 jpSiz2bduMyx2ec+LpmgTyvRRX06EpXz/J0nHERfqQvCsy5lGXfSrgpFEKF6mw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746117643; a=rsa-sha256; cv=none; b=Ah5RHTo4e2mM2y23VtUvbFf1kb/yUPFALJ5qSm9PLsgVwP/J504rFUUnWRDtiOgSn9Bt6h TaSxK0ubZ4DJh0e6ldRzQpEwMTV7q0ObBfrDxDWSQHuCbSh5EqXVYcC5Li3KOWAIVtpCVm WLLYqCapAP7Z2tQgIuEjf8v4TEgKzLRrUJy/l61FjY8Qe7lp0iJPsPDTmoMz0W7+Fa78TY lR+d9VqyvhXBzk5TgnZqyB4tZvdmwr6UvHLgJqGXW74P1TUPlWHh8U8FiDvI0EICha4Rlq 1SgTniX1PrfJOfJrtwWU6LiWE4ZLmROgRhZkY4Oc/FzC3gVuCw43XKzXE5iO2g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpKYR5F9RzcHx; Thu, 01 May 2025 16:40:43 +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 541Geh4C006642; Thu, 1 May 2025 16:40:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Gehdq006639; Thu, 1 May 2025 16:40:43 GMT (envelope-from git) Date: Thu, 1 May 2025 16:40:43 GMT Message-Id: <202505011640.541Gehdq006639@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Sergey A. Osokin" Subject: git: 675b2eccb04b - main - bsd-family-tree: add DragonFly 6.4.1 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: osa X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 675b2eccb04bc02f026d5d4ab2f119d340ff3764 Auto-Submitted: auto-generated The branch main has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=675b2eccb04bc02f026d5d4ab2f119d340ff3764 commit 675b2eccb04bc02f026d5d4ab2f119d340ff3764 Author: Sergey A. Osokin AuthorDate: 2025-05-01 16:39:51 +0000 Commit: Sergey A. Osokin CommitDate: 2025-05-01 16:39:51 +0000 bsd-family-tree: add DragonFly 6.4.1 --- share/misc/bsd-family-tree | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 785dcf24b4eb..2c55e542f5e8 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -476,6 +476,7 @@ FreeBSD 5.2 | | | | | FreeBSD | | | | | 13.5 | | | | | | | OpenBSD 7.7 | + | | | | DragonFly 6.4.1 | | | | | FreeBSD 15 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -918,6 +919,7 @@ FreeBSD 14.2 2024-12-03 [FBD] NetBSD 10.1 2024-12-16 [NBD] FreeBSD 13.5 2025-03-11 [FBD] OpenBSD 7.7 2025-04-28 [OBD] +DragonFly 6.4.1 2025-04-30 [DFB] Bibliography ------------------------ From nobody Thu May 1 16:48:56 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 4ZpKkw3xHFz5vQWS; Thu, 01 May 2025 16:48:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpKkw3X0Hz3G94; Thu, 01 May 2025 16:48:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746118136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6HQPc7nJpV/lzNnS3GT/MUu4Na486CnB9hHiWDsciwA=; b=v5ietGG0zUI3aglSfaUXpvGVXxBCvpPtZva45BNeJKm8CYiESpWRV8/exJczhkXUcZywcC lo6KteftiWIrw5PXAvv1x/6un4tHGhTwBINT5ncFWw1mgb8zuR+H3WEdUPLpXLAa5WjMAz Y6s7aJFx864W8QQnCqirEl7B2yi3tcgwLgovPkB2jd1kLVmIvq/aVm4+Zrz9PxNzuoNsIi AkOShSqyHagaOelFtUOsUPS0SsGnUoJIeDlqXEpGMV9r6x4ts4AtoXFW8aHaga73dKGc0e xBOBunHbXANFqJJHbJScn3adYE84fDbTg5LxHT6njM9zsv6Xvy+EC4hjs7smEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746118136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6HQPc7nJpV/lzNnS3GT/MUu4Na486CnB9hHiWDsciwA=; b=MbCOrj6Exjj2eZfKqxtfkx5d1PrlhxSS1/AdLns9055Ol0vchjy93nATdITSbCz5QCA05J 8pprfX11VY4EaNuEgkV+6BQlrgCTzAGtanFmxnkDafmwhRDyK6qIWwQf07EmH8jNaFPtLS y+N/RYYRi555flNub9KykJAqGsOCb/cESQlQat3bsiP8v4eEN4nnXGwIKdqh1yE2zcaLdM vyZ8kZkYfOx7dnoT+rDu6I+J/YeYE4+hWnl5q6nwj+Wxa83LPqm7/633pw1q6V0OuHbq1R 3AEm8+emclkwL+jgx5KNA9OETpun5ekG6aVMQKxp8SNPFzUK0I5Se2n6+ZRC5w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746118136; a=rsa-sha256; cv=none; b=ogcdni2XJE8iHmqrumb3UKF/9XQi7KCYzn716zjiYxbilBlTORJd/e40ZGCF8XQChpwCjf xsFPrTiJI61eDoXGFOWkPQT/x11V6mpxRk6WRHRZdqPMjasWvhWGgwI0zVXHkWcirbq5j/ LMniXcfvI7x0baazzP1pqgylKwn1/KFHgy56hEK0jal5SBfgDktM3+qPwU4CIJkxbwfqab fKL9mwqQJd/ERxnBy4UMB7dM7Jp3kHdle8Q8B0Ejt3jWUCBT4E14CQkMCTQLuZwfMMZCij PkpPGNEda6E6EnXqT12j4ux7US3QTjkl5+Zy2Z11TGjrv0p027fCb9L/tsWebg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpKkw2dlMzc7w; Thu, 01 May 2025 16:48: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 541GmuMo015878; Thu, 1 May 2025 16:48:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541GmuQp015875; Thu, 1 May 2025 16:48:56 GMT (envelope-from git) Date: Thu, 1 May 2025 16:48:56 GMT Message-Id: <202505011648.541GmuQp015875@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dmitry Morozovsky Subject: git: 89a66a1cb3ce - main - inetd: Add -S to tftpd usage example in inetd.conf 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: marck X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 89a66a1cb3ce159b830d3b5391d85bbabd46a56d Auto-Submitted: auto-generated The branch main has been updated by marck: URL: https://cgit.FreeBSD.org/src/commit/?id=89a66a1cb3ce159b830d3b5391d85bbabd46a56d commit 89a66a1cb3ce159b830d3b5391d85bbabd46a56d Author: Dmitry Morozovsky AuthorDate: 2025-05-01 16:46:00 +0000 Commit: Dmitry Morozovsky CommitDate: 2025-05-01 16:46:00 +0000 inetd: Add -S to tftpd usage example in inetd.conf Since 273a307d0b80743fb08e23237b3f74dc94a8fa2a there is '-S' option which uses generic file permissions when tftpd is chrooted ('-s /chroot/dir') instead of special requirements "be publicly writable" The '-s /tftproot' is always used in the usage example, so add '-S' here too Reviewed by: eugen Differential Revision: https://reviews.freebsd.org/D49807 --- usr.sbin/inetd/inetd.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/inetd/inetd.conf b/usr.sbin/inetd/inetd.conf index 14e5fec5d1bf..40f1e1285af6 100644 --- a/usr.sbin/inetd/inetd.conf +++ b/usr.sbin/inetd/inetd.conf @@ -24,8 +24,8 @@ # # ntalk is required for the 'talk' utility to work correctly #ntalk dgram udp wait tty:tty /usr/libexec/ntalkd ntalkd -#tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot -#tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -l -s /tftpboot +#tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -S -s /tftpboot +#tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -l -S -s /tftpboot #bootps dgram udp wait root /usr/libexec/bootpd bootpd # # "Small servers" -- used to be standard on, but we're more conservative From nobody Thu May 1 18:06: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 4ZpMSV4J1Kz5vWYQ; Thu, 01 May 2025 18:06: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 4ZpMSV3bwNz49wm; Thu, 01 May 2025 18:06:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122794; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gPT/tfij7ZL5ieuWCdnqIa3liIvtBgjnGTMzWSvD8Io=; b=MhldbRwjgORfucl/Jrd8CXXcFY3zux3d/ay5rfeW7tqMykfjbGDpikBX1mYmMtqzmPszc6 cegIZTqZw5X18Q4NK2IwsPOWjepb14A/vzlnXrScc00wi5zyO8a4hOe6gX96QIH0oWE0JG pXor5bNH09BKbObzi7ZHiJ8y6boWqpNq4u/Z6dY6aW0KRAXQG/7qexzPLiP9DZG+6w1uxf z7x2vtxJeZ1bkwehw6cwBl2TCID42XvP60PRPKMXJXSDbuEaTiObeAW6q2ply7z4awhUUl US5WxP3b0Qb99zb8o6e+TIhwJzk9ARP2cVfm8g6vWnid9OtDQnbDAngKrBbd2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122794; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gPT/tfij7ZL5ieuWCdnqIa3liIvtBgjnGTMzWSvD8Io=; b=qKcoqvwSwIrXb0D/tU9n9ldrXMyJSG19cByzlpSZMTn5x9z6xFX7z27QKlRbX6Gw/h69qV fjIkF6Kq8DWbsCE90Tfejcy19ObNKf0u+ayi+i/VEw2TOOcBf9DuBZ6T66eDWh8XkcbvCa u4Jlq8K2seBPA0mizb/7uRp56phfS0IuSWouzUJ86Mbplmp0Vxmj8lOXFQh+uU/ijf9Voa YjmvSA9jbPd1OF2Py424Fatdtrvhdp7j7hrQQdIebbkT3q0rVCDBmJdgxeIDAsky1wrRxh jfMXhQrFEx7D53G+F5mrl+YY890SnXDPT0r5ZeeqFXWvwXWJ1zL4BMg8lw+T+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122794; a=rsa-sha256; cv=none; b=wYeIE+jRb8HZdejQ9Q77/5rteU/OYjEc96uC+lnnuoCqIYmLcxPzXiADnqcK+bDhyvm8Bz nC2YooaFzTYHc2qJxg73HChXjKEeDnRoMJYjxX7u/bWXGZSAyCf8cgz0o7i1DbvuTqyMwj HOuybtZ+gP/S6fXJ3RqMiSL9RV0tL3FYaEveXXVInwI8yAwFNdndEf0EqtyxMJI8mJA6Vl Pjyp3XzAIKTsiMgfjgkadsB4fFp9u4E5SQT2gCwPuHhY4wo6gN2uXNEqlrrCkxhhA9uu4k q7tq5CQJRa3VSnlFDdm8hoZ6qwmg0HpdeA3iCWUIzy7sNc+LLEv9MBPlcziGxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSV2mJVzfk7; Thu, 01 May 2025 18:06: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 541I6Y4j066422; Thu, 1 May 2025 18:06:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6YO6066419; Thu, 1 May 2025 18:06:34 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:34 GMT Message-Id: <202505011806.541I6YO6066419@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: cdfaf4e984a4 - main - efivar: Add some explicit casts to uuid_t 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cdfaf4e984a40326a2559d3348f187a350aac0f8 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=cdfaf4e984a40326a2559d3348f187a350aac0f8 commit cdfaf4e984a40326a2559d3348f187a350aac0f8 Author: Warner Losh AuthorDate: 2025-05-01 17:52:54 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:52:54 +0000 efivar: Add some explicit casts to uuid_t Since we know we're type-punning the EFI_GUID to a uuid_t, add some explicit casts even though, at the moment, we typedef one to the other. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D50032 --- lib/libefivar/efivar.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index 468e1d31f903..bb838e8a1399 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -89,7 +89,7 @@ efi_guid_tbl_compile(void) if (done) return; for (i = 0; i < nitems(guid_tbl); i++) { - uuid_from_string(guid_tbl[i].uuid_str, &guid_tbl[i].guid, + uuid_from_string(guid_tbl[i].uuid_str, (uuid_t *)&guid_tbl[i].guid, &status); /* all f's is a bad version, so ignore that error */ if (status != uuid_s_ok && status != uuid_s_bad_version) @@ -289,7 +289,7 @@ efi_guid_cmp(const efi_guid_t *guid1, const efi_guid_t *guid2) { uint32_t status; - return uuid_compare(guid1, guid2, &status); + return uuid_compare((const uuid_t *)guid1, (const uuid_t *)guid2, &status); } int @@ -297,7 +297,7 @@ efi_guid_is_zero(const efi_guid_t *guid) { uint32_t status; - return uuid_is_nil(guid, &status); + return uuid_is_nil((const uuid_t *)guid, &status); } int @@ -308,7 +308,7 @@ efi_guid_to_name(efi_guid_t *guid, char **name) efi_guid_tbl_compile(); for (i = 0; i < nitems(guid_tbl); i++) { - if (uuid_equal(guid, &guid_tbl[i].guid, &status)) { + if (uuid_equal((const uuid_t *)guid, (const uuid_t *)&guid_tbl[i].guid, &status)) { *name = strdup(guid_tbl[i].name); return (0); } @@ -333,7 +333,7 @@ efi_guid_to_str(const efi_guid_t *guid, char **sp) uint32_t status; /* knows efi_guid_t is a typedef of uuid_t */ - uuid_to_string(guid, sp, &status); + uuid_to_string((const uuid_t *)guid, sp, &status); return (status == uuid_s_ok ? 0 : -1); } @@ -384,7 +384,7 @@ efi_str_to_guid(const char *s, efi_guid_t *guid) uint32_t status; /* knows efi_guid_t is a typedef of uuid_t */ - uuid_from_string(s, guid, &status); + uuid_from_string(s, (uuid_t *)guid, &status); return (status == uuid_s_ok ? 0 : -1); } From nobody Thu May 1 18:06:35 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 4ZpMSW6pMrz5vWcs; Thu, 01 May 2025 18:06: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 4ZpMSW4fPzz4B7T; Thu, 01 May 2025 18:06:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3bGCwspHBTPhRks9gnHweN1fREj6TqZm2jCa0L02ilM=; b=ZHaTXWWW6hfvHcbmcaoG0YSPppWW9BaI4TIaA2jHHhqbIG6dOB4PCxg7l4K8yz5VXIdeLe CKtKDNZMdPqfJVR5fQouGPOo0fRZSAQLGhVcTT5Kt0oFfRIYpevApjLoy5SBuOR5Jet3oR TqrfTQVRh6bjnWYWFy/VNBu7/fzvURwpUEiYMYNZZoVb3eWKv9U95KqXQS48Qee6qABmQ0 BKfcZ9dXm9/ybc3OcCo18IMf/JEVopimSkTYGeKCtTJaUZDpz1QNl/y0ySRiPtzP+PYNTk Dlsae5fRVWBnFNdWU0lapI1WZZWRlZ0bEv92NfFLILUK2RaSIylTat367HYYtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122795; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3bGCwspHBTPhRks9gnHweN1fREj6TqZm2jCa0L02ilM=; b=wOBcthJGsVNZejfSMyWumHlL+G9hrpDAcibzuvqzXI5cxI1/w8LBFM7+ytxf4dIGxb92gs HPnkLiH6+SLXmPO3UZm+d/CYPnWxpxu5JkUVhbzFPU3uLUY3E8M4WZPqp8NpQDaO6k4DVk S3EFJEVe8f3vK140a3O59XHgO4VHDetMMFNsu3kZUuFsj2hsKxlY0TbCZ66J6I70jy62S2 LiTBaZZH+tT3/ymWlVdidlaQ1KtBJZc9l/GiKgQQvZH/ImM1wAcf9WSUT6kEAT7sq2LYia jeqACRRAIyUlDfYVb//BVfqbzdp9rvPv7uD5faAwO9bpZ2H7IGoc/SQ/z76J6Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122795; a=rsa-sha256; cv=none; b=i0xji686nhONhKsweT18roUhXgFmaxSVExWRsroy2LmmmG9ZRBVbY298sgLHAssH+MBAZi tHeD/N9kH+lKN1NhUplAB/ymwcuHB2cDBS6GAsgcCJak/S7JpOZqg6V/jCoYsQ6nHtJ4cw u2aKnDwJ0F6tJd2C8+Nv48TMa60fs3kbwWmMopNTGNROhQCY62ZQEiqU9o3W2PN2JpOGg/ /D2d9PYzDpDbaH7LIQaFk2s/NLA3Kj0ydYI9c+CMWPq5QkkD7COdlZYcyrzTGB89ihWHq6 /rXP/gj36nNhCzvhYdzVAIvR5Q4ENHXbRTtM+AtKHV0l3Jn3j4uJ5Paqe/ObeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSW34CFzfhl; Thu, 01 May 2025 18:06: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 541I6Zqx066460; Thu, 1 May 2025 18:06:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6ZgG066457; Thu, 1 May 2025 18:06:35 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:35 GMT Message-Id: <202505011806.541I6ZgG066457@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 3eb80ef831e1 - main - efivar: Use memcmp instead of uuid_ functions to compare 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3eb80ef831e1b82b38fc23bfe0114fc5f90e5c5f Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3eb80ef831e1b82b38fc23bfe0114fc5f90e5c5f commit 3eb80ef831e1b82b38fc23bfe0114fc5f90e5c5f Author: Warner Losh AuthorDate: 2025-05-01 17:52:59 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:52:59 +0000 efivar: Use memcmp instead of uuid_ functions to compare In these cases, memcmp is a perfectly fine substitute for the uuid functions. We don't need checking to make sure the uuids are good, we know the pointers are non-ULL, etc. memcmp will reduce the number of places we need to know these are actually UUIDs, or similar. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D50033 --- lib/libefivar/efivar.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index bb838e8a1399..a74deeae1e03 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -287,9 +287,7 @@ done: int efi_guid_cmp(const efi_guid_t *guid1, const efi_guid_t *guid2) { - uint32_t status; - - return uuid_compare((const uuid_t *)guid1, (const uuid_t *)guid2, &status); + return (memcmp(guid1, guid2, sizeof(*guid1))); } int @@ -304,11 +302,10 @@ int efi_guid_to_name(efi_guid_t *guid, char **name) { size_t i; - uint32_t status; efi_guid_tbl_compile(); for (i = 0; i < nitems(guid_tbl); i++) { - if (uuid_equal((const uuid_t *)guid, (const uuid_t *)&guid_tbl[i].guid, &status)) { + if (memcmp(guid, &guid_tbl[i].guid, sizeof(*guid)) == 0) { *name = strdup(guid_tbl[i].name); return (0); } From nobody Thu May 1 18:06:36 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 4ZpMSY02Fwz5vVgb; Thu, 01 May 2025 18:06: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 4ZpMSX4HXHz4BGD; Thu, 01 May 2025 18:06:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RskDuyZBAsITmbhi8BawDvtZGIXsgdPTgocUKG40WS8=; b=RtqBUFBQEk02x2pOJlWLSNp0ivL+cPgiGNrrDrbkXe2yTl43ENWQpIpAQHbuwqKZ7t9aXf 6EE9S5g4mV42dvcgTTM0MvhlBIAq4iEM2y/gDpEFqTxdYZq2xT+pcbs9YyfIpvTM+BvhbQ vF37JsBStMRi9oPTXxc15wg8r49XZDy/JaAQKPk/+a07JcNiRNZLJZ2r9e5pFiKVegPCkk G6DdUeyNNuI54Nk/yFhWjmsjfWOqeQs9HOEm4xI2mIZxQgwj7pppQtx4/XbJW89ojleOnz DnOjV/D6H7m+/0rpOe9oWgyBb+TKDwu3H2AP7BkfL+wJeK6a/YeQQfRLVfjRYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122796; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RskDuyZBAsITmbhi8BawDvtZGIXsgdPTgocUKG40WS8=; b=ksWLJrKAccxefWZF75+JS55QqsJ7RUA2ED1eDR/G0Gy7Ffkd6fRP/YhuEpXzXwHqgcFTbF QtgiWlSurJSJRhmZzCnscv8AA5LcFT+Pex4lVRCBc99KRMB7O7cQemKVpbkckoQO6urNiK Z3OyorhMvjYZJweleBInAoBJI0wEd48hr5t2Q6NXoghq6tV6o7VbxqqB/O6kmA+Z4xvIFr 9Iq9hoVmheQbJ9o8MR7l9z40lJKYudhz1gUfGF+V4yx9e/1dY1LiDZI6paqP75s8hMi26m ndb0NgfANQvKgG59fhhQ1F3KFnSzh816heQYDa9ScsGViiAK+HpDT47BN5WrcA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122796; a=rsa-sha256; cv=none; b=O0uRz/lF3aURJ/VPkjhoCab4bgLnxFuYY+F+9dmJGFhF0zKYHNQg2tHbSuZAMlXNqMW1+1 kpAamdr8g8Dtjfw6lChb2EGMUnzcPUjPWdlWLXjSPnwh/b51lcAC1199QvC4IVpfah9XoM stCIeS2n0sVB3Dft+vm4Vw/BrTOLYXJV59e/8zxKjyQW6C3FGyPGIN2PHk6ZFSF3Y0BNv/ 40/AJ14XW9q/H8GN/WMKJqiYTwzGXqdjec+bjOyWCc5jfgGNmGYyfV6k9+pwnjZQk7quTf 7IxZBOkVN6xwoYH7BAIOTHsPEcIu65TPPxvUZ7YFZxOXKeNaBseOEjzR8IXhhA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSX3jmkzfRS; Thu, 01 May 2025 18:06: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 541I6asf066497; Thu, 1 May 2025 18:06:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6avV066494; Thu, 1 May 2025 18:06:36 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:36 GMT Message-Id: <202505011806.541I6avV066494@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 5f2dd25a9e71 - main - efivar: Test uuid against zero 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5f2dd25a9e718f8d317c249e813818edbee08b22 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=5f2dd25a9e718f8d317c249e813818edbee08b22 commit 5f2dd25a9e718f8d317c249e813818edbee08b22 Author: Warner Losh AuthorDate: 2025-05-01 17:53:05 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:53:05 +0000 efivar: Test uuid against zero Test the passed in GuID against a guid of all 0's. This removes another place that has to worry about the difference between uuit_t and EFI_GUID. Sponsored by: Netflix Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D50034 --- lib/libefivar/efivar.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index a74deeae1e03..0089ed608a6f 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -77,7 +77,6 @@ static struct uuid_table guid_tbl [] = { "f46ee6f4-4785-43a3-923d-7f786c3c8479", "lenovo_startup_interrupt", Z }, { "ffffffff-ffff-ffff-ffff-ffffffffffff", "zzignore-this-guid", Z }, }; -#undef Z static void efi_guid_tbl_compile(void) @@ -293,9 +292,7 @@ efi_guid_cmp(const efi_guid_t *guid1, const efi_guid_t *guid2) int efi_guid_is_zero(const efi_guid_t *guid) { - uint32_t status; - - return uuid_is_nil((const uuid_t *)guid, &status); + return (memcmp(guid, &efi_guid_empty, sizeof(*guid)) == 0); } int From nobody Thu May 1 18:06:38 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 4ZpMSb3bSRz5vW6S; Thu, 01 May 2025 18:06:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMSZ6b0kz4BGR; Thu, 01 May 2025 18:06:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122798; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RvkFchIhziPQKTzbLlZF7ZrRvJxMaiql9pav34AtXLs=; b=W/aenCr2ibBpWMJnflAJiBGKTJ2Oj6oJ4UYZ7SSf1kXFjaVGBzR1mmwgLuf4Fmcyn9WfdM wi3YG96EtFZO2jRMq4CJTNXwBYY0btdD7u4fi7UZ8EVcvE9UdEoUJBwFbm5EIbXbwYn3+J hszK2RB+NANSi4ry9tQMsPiCYwEKi2k4cu3rzWpCqmzNBIguptrwPTtrESAiLsmpuubONP FmMdzqh3Q10ZSlWhrx6C8/aOArTqDeSAHJKHjrlWOAM9aQwJMKPoQyQQGdpsaUuCzK0Wd9 7ilpJX3YIIg9hSZT1ihImN2cP6dhMrP2ovXb2j7WiokwzI+0zBScKmE7aai1KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122798; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RvkFchIhziPQKTzbLlZF7ZrRvJxMaiql9pav34AtXLs=; b=ymLy36ZuXJVZt6ENWeYoQuOO4+ggGBF0ZQ7Llb6L9Xfc//K4XNpiIgJ9IsDNZ+dGuCxrZX 7D2pztngxSEk5bVPlLYG2jqfCxRG6KekYryqidnz9LNOGDVEmMq1tte8MCIr4lcbUrejs6 Bs/HKK7QW0sDUJl/W4hxcq+T1dAWKkaKKjxJUxaSYXLb8X1B3kaU16YUVdjqglsAoDD6w6 zS5Gk77jI1OcB7QrVsKrQLYXQNetwyTOCIMB67rbK+jAhzRESkNhusYTKyHqRK7VUXscSp 6aCCXq3Xu6mRAhVToHEcpaEI2kOrL8IJmTilEj+96YKFZ46UsBVU6w5tH3FfmQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122798; a=rsa-sha256; cv=none; b=r8SXJgXYySBSsLJ+LBpDdFQuIiIaZaROMofThRPmRDFeMJBEkewnEzfDKcNB8L3Pl8x9+a JJvk0iYtNSlH/LAubyaxSiEUeqwqs8L07meYpmlr46UN6KqEcD+V7UO0DPA+1iBmLlqtsw OewKlxH5mh96DL/DqbYpooZQaMrabefIyYYxTtAUChqH/F9rrh40iGr7Ru54uKNYO4dgYW 9P4z8HoJfLH29Bed23A7oVhsVGv/abv+vG5Z1k/NyCMjRfEQSWVfqIvg5dEJpXmp7rUKCo 6I+CVd251ljeogmxNvDI83SzgHzbu/MPweEOZlxaxxnjC+1Bg+DgOj3FmrqWSQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSZ5Yhczfk8; Thu, 01 May 2025 18:06: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 541I6cwb066569; Thu, 1 May 2025 18:06:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6crp066566; Thu, 1 May 2025 18:06:38 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:38 GMT Message-Id: <202505011806.541I6crp066566@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 9d218a7be088 - main - efitable: Don't assume EFI GUID are uuid_t 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9d218a7be088c6b5ef250a945d532f3ae59c6a1a Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=9d218a7be088c6b5ef250a945d532f3ae59c6a1a commit 9d218a7be088c6b5ef250a945d532f3ae59c6a1a Author: Warner Losh AuthorDate: 2025-05-01 17:53:19 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:53:19 +0000 efitable: Don't assume EFI GUID are uuid_t To share code better with EDK2, we need to align our interfaces with its definition of EFI_GUID. This structure is the same size as our uuid_t, but has different elements. The EFI standard uses a string notaiton that are compatible with the uuid_* routines, however. So we use those routies to parse, but need to b careful to cast as appropriate. Becuas the ABI is the same, this is safe, though perhaps suboptimal. These changes make efitable API neutral. Sponsored by: Netflix Reviewed by: tsoome Differential Revision: https://reviews.freebsd.org/D50036 --- usr.sbin/efitable/efitable.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/usr.sbin/efitable/efitable.c b/usr.sbin/efitable/efitable.c index 81d8bb999c58..f283d467b01d 100644 --- a/usr.sbin/efitable/efitable.c +++ b/usr.sbin/efitable/efitable.c @@ -46,17 +46,19 @@ static void efi_table_print_esrt(const void *data); static void efi_table_print_prop(const void *data); static void usage(void) __dead2; +typedef uuid_t efi_guid_t; /* Typedef for future efi_guid_t */ + struct efi_table_op { char name[TABLE_MAX_LEN]; void (*parse) (const void *); - struct uuid uuid; + efi_guid_t guid; }; static const struct efi_table_op efi_table_ops[] = { { .name = "esrt", .parse = efi_table_print_esrt, - .uuid = EFI_TABLE_ESRT }, + .guid = EFI_TABLE_ESRT }, { .name = "prop", .parse = efi_table_print_prop, - .uuid = EFI_PROPERTIES_TABLE } + .guid = EFI_PROPERTIES_TABLE } }; int @@ -81,14 +83,23 @@ main(int argc, char **argv) if (argc < 0) exit(EXIT_FAILURE); - while ((ch = getopt_long(argc, argv, "u:t:", longopts, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "g:t:u:", longopts, NULL)) != -1) { switch (ch) { + case 'g': case 'u': { char *uuid_str = optarg; struct uuid uuid; uint32_t status; + /* + * Note: we use the uuid parsing routine to parse the + * guid strings. However, EFI defines a slightly + * different structure to access them. We unify on + * using a structure that's compatible with EDK2 + * EFI_GUID structure. + */ + uuid_set = 1; uuid_from_string(uuid_str, &uuid, &status); @@ -96,7 +107,7 @@ main(int argc, char **argv) xo_errx(EX_DATAERR, "invalid UUID"); for (size_t n = 0; n < nitems(efi_table_ops); n++) { - if (!memcmp(&uuid, &efi_table_ops[n].uuid, + if (!memcmp(&uuid, &efi_table_ops[n].guid, sizeof(uuid))) { efi_idx = n; got_table = true; @@ -140,7 +151,7 @@ main(int argc, char **argv) if (efi_fd < 0) xo_err(EX_OSFILE, "/dev/efi"); - table.uuid = efi_table_ops[efi_idx].uuid; + memcpy(&table.uuid, &efi_table_ops[efi_idx].guid, sizeof(struct uuid)); if (ioctl(efi_fd, EFIIOC_GET_TABLE, &table) == -1) xo_err(EX_OSERR, "EFIIOC_GET_TABLE (len == 0)"); @@ -181,7 +192,7 @@ efi_table_print_esrt(const void *data) uint32_t status; char *uuid; - uuid_to_string(&e->fw_class, &uuid, &status); + uuid_to_string((const uuid_t *)&e->fw_class, &uuid, &status); if (status != uuid_s_ok) { xo_errx(EX_DATAERR, "uuid_to_string error"); } @@ -232,6 +243,6 @@ efi_table_print_prop(const void *data) static void usage(void) { - xo_error("usage: efitable [-d uuid | -t name] [--libxo]\n"); + xo_error("usage: efitable [-g guid | -t name] [--libxo]\n"); exit(EX_USAGE); } From nobody Thu May 1 18:06:37 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 4ZpMSZ6pQ3z5vWgQ; Thu, 01 May 2025 18:06: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 4ZpMSY57zBz4BK1; Thu, 01 May 2025 18:06:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122797; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KCC9YroUsoTcmVBnsnfp4gbPlfsctGaZ10PvQcvbC/4=; b=tvX0TRse4vp+OYHzig2zkXKydym5BDHwmTFE0qzayhi9Cmuz2y8zxiDOyYq26nSOlSTFf2 ySoldp+05p9eEe6aTfVddNwxCJKHT2ep6n9TOvyaRfJM2TOFiRW7RMhTV2xgq3PnUoE8AQ Wc8qGVNYj0P/3kTvIVOnEYaNfQA+JRHpuqC9xpGiTrV9vtEQfJd/tMPTBgjQr9nfcz4GM9 cr1L3KVI2YOH3hwIrcrwyoL9njITOEpVRlhpZZo2pnNSF3i6oDV5gwC/BfjB36C9ez3R7f D7uTV527aGd2s5TZ+/a8GdvKKX3ZX1kiCwioD9jLOiE7l9QRgdPqyTjUpjvn6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122797; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KCC9YroUsoTcmVBnsnfp4gbPlfsctGaZ10PvQcvbC/4=; b=DiCV+ZDk+4DHydDubEu1nh6G2bHnhwLVooDVnyBPntvaBqTkjIg8MJPoNIWUswjS6GrIqK vGU5jGKNC9svT1aeAdTJnODPIQAfXkTh0aobY5H3BksGyP7poD1tfi0TIjwno1VYkwipa6 i08oJD3olHpOImr1AbzjC4JhWagSg/JOPC2XwL0k0Ci2Vs7FQRbzE3gkTR90wJBnj+m/Wf bMcjYT8x1lDEc4q9E94s0jIb4873NzI5f2yrBQMnKzcnnnErbZuOfCChxDAJHRT8VT96k/ oXPDWofpEMndhXKnt4AcKI1BKmXrRa9gByFwJkYRHZfTa24mwTeQwPFPwTO24g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122797; a=rsa-sha256; cv=none; b=sidL7qbKUkYfCKGLKARrcXlJzkyf4jzO+/f6+BiA8sUdrfTjaNX839m3Dk9fOj8juC7R5n s9kVnx/FbUq7VsF5srM+aRcVWJO6eWwyostyohgwPZRz6F/CRzbhTuvI4yNOfRHwWs4+uc nw4EbOw6qc/3jnCWpVHLamBeX2t3X7aymm161tT4mIKhY3uR5ZRaQ/ZsJob1aBSvnuLDNb I3Igfw+6iNv9oiGCuUb0v092FWk9RiuXIwnIRXqfLw806w9QU4zc7YhrIXuVhj09NDdWA8 4tcni/rK0uiZrNE5+FNjxfaDBcJzfY+lm+Y31cVluc7qu53fRAddjc0m+GbApw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSY4cWVzfPZ; Thu, 01 May 2025 18:06: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 541I6bii066535; Thu, 1 May 2025 18:06:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6bXG066532; Thu, 1 May 2025 18:06:37 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:37 GMT Message-Id: <202505011806.541I6bXG066532@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 20c5e4b39368 - main - efivar: Allow uuid_t and efi_guid_t to be different types. 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 20c5e4b393682b00694a1ef184ec4bd460b49ab1 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=20c5e4b393682b00694a1ef184ec4bd460b49ab1 commit 20c5e4b393682b00694a1ef184ec4bd460b49ab1 Author: Warner Losh AuthorDate: 2025-05-01 17:53:12 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:53:12 +0000 efivar: Allow uuid_t and efi_guid_t to be different types. While they are binarily the same, the API are different. To use EDK2 more effectively, we need to transition to using EDK@'s API rather than the uuid_t API. This change makes the code neutral on the subject. Sponsored by: Netflix Reviewed by: tsoome Differential Revision: https://reviews.freebsd.org/D50035 --- lib/libefivar/efivar.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index 0089ed608a6f..e28987ff001d 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -172,7 +172,7 @@ efi_get_variable(efi_guid_t guid, const char *name, rv = utf8_to_ucs2(name, &var.name, &var.namesize); if (rv != 0) goto errout; - var.vendor = guid; + memcpy(&var.vendor, &guid, sizeof(guid)); var.data = buf; var.datasize = sizeof(buf); rv = ioctl(efi_fd, EFIIOC_VAR_GET, &var); @@ -240,7 +240,7 @@ again: rv = utf8_to_ucs2(*name, &var.name, &size); if (rv != 0) goto errout; - var.vendor = **guid; + memcpy(&var.vendor, *guid, sizeof(**guid)); } rv = ioctl(efi_fd, EFIIOC_VAR_NEXT, &var); if (rv == 0 && var.name == NULL) { @@ -266,7 +266,7 @@ again: rv = ucs2_to_utf8(var.name, name); if (rv != 0) goto errout; - retguid = var.vendor; + memcpy(&retguid, &var.vendor, sizeof(retguid)); *guid = &retguid; } errout: @@ -361,7 +361,7 @@ efi_set_variable(efi_guid_t guid, const char *name, rv = utf8_to_ucs2(name, &var.name, &var.namesize); if (rv != 0) goto errout; - var.vendor = guid; + memcpy(&var.vendor, &guid, sizeof(guid)); var.data = data; var.datasize = data_size; var.attrib = attributes; From nobody Thu May 1 18:06:40 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 4ZpMSd5MbSz5vW6T; Thu, 01 May 2025 18:06:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMSd1KXqz4Bnw; Thu, 01 May 2025 18:06:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sxA8otl7V1RSV4S2zD4XZlDa5E2v9LqRh5mq2FEcEjE=; b=NNNfugqa/kqoXcz0bc/uQ7vfiSC8LG1elQDLB5PNf7JtZIhD8Mg9LfhjdPHJP+b/o88TGH j6CHdRCD6jlcIQx+XAaqmovxY5Kusc0hgY8os+EUFQd4FZHD92KPKT9429x67r1LqYnafn pxAMQJFFqCNMaM5LCZ3r5jDpu9RIU5qS56Cvyd6LUb1UsLKIM9/4sVb1GS955k4gqNxx7G UY1DPVRUQxEBIlP2bGtwZvom6mpHLO1g2fmuhiYSxnotQc+7QN5J7Q16EWjFaA/Qn6D0m5 LoaS/tjRvY3ZM1UUnnhN6VsD79plWao79+qIdJsUmWQFWWsW/d9UWLPbOybFhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sxA8otl7V1RSV4S2zD4XZlDa5E2v9LqRh5mq2FEcEjE=; b=Irruc3fhvzeyk2aLeMg4Qm1aoKUEzJJYICqzLhS68rfoIkzniRouTR9vCt8RmZeSbzVKix Qbyaz5o62NgLVrpMjfoyQiuOhggs2HPWSk59rVNo+X+AcJsiDyvx3Qr5XeoejVEOxsorOg P1xcaJjNdeJmlPw8AjnXMeGambtQWTXOCF11PQc6CZwtnykoHDhmI31VmtgLuTtsLbpwl5 zGAWxkGZqMx8WRnBWpzROMAKClymi4KllfaO/XPhkr0P+g+/QMFsJEEsLlhLSpEWnjWCpq sy0IVtLGVJ4uVfyWTyiTDZxA36eNSHro36em2YDi/W7VpgTMo/BfDUVLZ1CNcQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122801; a=rsa-sha256; cv=none; b=LVCImTW+CpaAUg/BVqzFQMUzTiGWPKulmMZ0aLcNlrTfSY19TD1Da35WS4837tKWNGSh/r AucZ6AFMg5I4JbzzNwSjxIkkwZmYYrHrxBu2v4tdDhxE5mxgXFBZ+DRxN9ohycpoGOpvM5 57WWmLGnY65yBwiSGdsVtpQPkMziC7lnaptPR1viILhaRTe9rZYqH1zL0MH595KJNg22pp JDENrRm9EWIBiNdnJs/HT4z7FmsfCxOVYoQQCR9k3T1EHGg0SW5571DHqaLS65M2pVjzbs 3sOGayunhT5CMgrXxqAqTa6Wna89xiciAw2+psBaMUTx8OUx2s96Sab1Oq/e7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSd0N0Xzdqc; Thu, 01 May 2025 18:06: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 541I6emu066641; Thu, 1 May 2025 18:06:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6eRG066638; Thu, 1 May 2025 18:06:40 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:40 GMT Message-Id: <202505011806.541I6eRG066638@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 915b2336b1c4 - main - libefi: Update to use the efi_guid_t from sys/efi.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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 915b2336b1c428537a6ccaed1b7e60a39adf7b66 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=915b2336b1c428537a6ccaed1b7e60a39adf7b66 commit 915b2336b1c428537a6ccaed1b7e60a39adf7b66 Author: Warner Losh AuthorDate: 2025-05-01 17:53:36 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:53:36 +0000 libefi: Update to use the efi_guid_t from sys/efi.h Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D50038 --- lib/libefivar/efivar.h | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/libefivar/efivar.h b/lib/libefivar/efivar.h index 7551205fda38..980f261e9edc 100644 --- a/lib/libefivar/efivar.h +++ b/lib/libefivar/efivar.h @@ -46,19 +46,14 @@ #endif -#ifndef _EFIVAR_EFI_GUID_T_DEF -#define _EFIVAR_EFI_GUID_T_DEF -typedef uuid_t efi_guid_t; -#endif - #if BYTE_ORDER == LITTLE_ENDIAN #define EFI_GUID(a, b, c, d, e0, e1, e2, e3, e4, e5) \ - ((efi_guid_t) {(a), (b), (c), (d) >> 8, (d) & 0xff, \ - { (e0), (e1), (e2), (e3), (e4), (e5) }}) + ((efi_guid_t) {(a), (b), (c), { (d) >> 8, (d) & 0xff, \ + (e0), (e1), (e2), (e3), (e4), (e5) }}) #else #define EFI_GUID(a, b, c, d, e0, e1, e2, e3, e4, e5) \ - ((efi_guid_t) {(a), (b), (c), (d) & 0xff, (d) >> 8, \ - { (e0), (e1), (e2), (e3), (e4), (e5) }}) + ((efi_guid_t) {(a), (b), (c), { (d) & 0xff, (d) >> 8, \ + (e0), (e1), (e2), (e3), (e4), (e5) }}) #endif #define EFI_GLOBAL_GUID EFI_GUID(0x8be4df61, 0x93ca, 0x11d2, 0xaa0d, \ From nobody Thu May 1 18:06:39 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 4ZpMSc3rX3z5vWYX; Thu, 01 May 2025 18:06:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMSc0GQrz4BnC; Thu, 01 May 2025 18:06:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iCa8yi0t4yEsasnJ919kJwqGZmSGfJtDz/0ESxJnHkA=; b=sQ7bRfRPot8ump4H5ZwNCQuY7ByBNC2Slfon0v2g4PVZuUOVC7xx+gmgzoSkaoPWgVzhXJ 6DhUZDqWlzZmvxHF3K0VJGmyEycOZO85TcHdRwMkZhAdRjWDTuaGDQ5Jvu98eLyrz67GFb 3iajaE3+frEI+a2fskHy6YMwT1f3Fx+h7lrqR8LyRSlLxvUARx1Gxu6IFvsxvihsvxs4aj 1hULlkMznQEmSkT0lu+le9x2Mqlcz2VrKMXe9mP3uRf+34Ia0VoQPI+ze/9BqdJV8FQbmz OHj+v006FPI7j12Ji49o3qrY01gC4FJGVFdETRIE3g+ZC+vSGRtivB8KJ2msjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iCa8yi0t4yEsasnJ919kJwqGZmSGfJtDz/0ESxJnHkA=; b=ozdzjbhhrrcmJzr9H+z+n9DYr/5VTfwbADEpeIiDuq6jMnRRm0LGS8EwAIoVHvgU8Kg69x xf9sKjE0iu8UFq10Ss70mXiDcBqFZ4/XXouXOXsfbFi6skJViuear1JG5YSTBDI6EsiR21 2CYjjOAfn4anF9J5RQc7KjGlMiQs//efZ5c+25p3sN/fWd79CLti/v4A4Q1OvgHmsismN8 v90ZwNvsptZsTYOSciM22lRUDE/FwVIJSGwYB253fiE+kQFDW7Ll4fpKn+Bvmtp4Mf+TeB 2DvxBUkwXisUs7AU1DcvzJTzcYuuZi4EeD7Vh5yl/H+yl0ds/3+1Cf/KhjFttA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122800; a=rsa-sha256; cv=none; b=YJnqrmZnk6QIm1URuj6wL6tRJvWWl+YBxabWdMmSmx9vtHdjzQSxOYUjjjRpKTuco4lzfJ vwjtKtO0hrZFO/WcRvZ4M7tJdjP1mTU3X5zK0KGvxjFYmpLaLt5yh7MoqaWBS8aR1wVQpl ReDAcfbs6p6Vf50JyR0W051rY79qIPnjPytjScFQTPxj+Fzkwx/+frFYwAJjViB6XjjVzB spCi8zkWVFZ1aK04umOYjRRL1BHP37eIaA6EepNDSS+z8ZqQrtZ/xQyoocRXamY1R6ET8y 47ky/Vb4dKkHKfMNlD2kkIWwwWf0PeNhsQLjeBjb0AVF6mL2eSLy3paQezCNsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSb6Tp7zfPb; Thu, 01 May 2025 18:06:39 +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 541I6dN5066604; Thu, 1 May 2025 18:06:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6diq066601; Thu, 1 May 2025 18:06:39 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:39 GMT Message-Id: <202505011806.541I6diq066601@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 6366114c716f - main - efi: Use EDK2 EFI_GUID instead of sturct uuid 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6366114c716f9dca099a4090269a700b94a6173f Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=6366114c716f9dca099a4090269a700b94a6173f commit 6366114c716f9dca099a4090269a700b94a6173f Author: Warner Losh AuthorDate: 2025-05-01 17:53:28 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:53:28 +0000 efi: Use EDK2 EFI_GUID instead of sturct uuid So, while struct uuid and EFI_GUID are quite similar (they are the same size, they have the same binary representation, etc), they aren not identical. Speciifcally, the UUID and GUID defines are slightly different and can't be swapped one for the other. Start to use EFI_GUID for all EFI tables. This will allow increased sharing with the boot laoder that already uses EDK2 variants as well as using the possibility to use the EDK2 headers we've already imported more easily. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D50037 --- sys/dev/efidev/efidev.c | 2 +- sys/dev/efidev/efirt.c | 18 +++++++++--------- sys/dev/ipmi/ipmi_smbios.c | 3 +-- sys/dev/smbios/smbios.c | 4 ++-- sys/sys/efi.h | 36 ++++++++++++++++++++++++------------ usr.sbin/efitable/efitable.c | 2 -- 6 files changed, 37 insertions(+), 28 deletions(-) diff --git a/sys/dev/efidev/efidev.c b/sys/dev/efidev/efidev.c index 14712cf3c7bf..4c3570969e23 100644 --- a/sys/dev/efidev/efidev.c +++ b/sys/dev/efidev/efidev.c @@ -56,7 +56,7 @@ efidev_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr, (struct efi_get_table_ioc *)addr; void *buf = NULL; - error = efi_copy_table(&egtioc->uuid, egtioc->buf ? &buf : NULL, + error = efi_copy_table((efi_guid_t *)&egtioc->uuid, egtioc->buf ? &buf : NULL, egtioc->buf_len, &egtioc->table_len); if (error != 0 || egtioc->buf == NULL) diff --git a/sys/dev/efidev/efirt.c b/sys/dev/efidev/efirt.c index 9523ffc7f386..c5deb273c076 100644 --- a/sys/dev/efidev/efirt.c +++ b/sys/dev/efidev/efirt.c @@ -340,7 +340,7 @@ efi_leave(void) } static int -get_table(struct uuid *uuid, void **ptr) +get_table(efi_guid_t *guid, void **ptr) { struct efi_cfgtbl *ct; u_long count; @@ -354,7 +354,7 @@ get_table(struct uuid *uuid, void **ptr) count = efi_systbl->st_entries; ct = efi_cfgtbl; while (count--) { - if (!bcmp(&ct->ct_uuid, uuid, sizeof(*uuid))) { + if (!bcmp(&ct->ct_guid, guid, sizeof(*guid))) { *ptr = ct->ct_data; efi_leave(); return (0); @@ -373,13 +373,13 @@ get_table_length(enum efi_table_type type, size_t *table_len, void **taddr) case TYPE_ESRT: { struct efi_esrt_table *esrt = NULL; - struct uuid uuid = EFI_TABLE_ESRT; + efi_guid_t guid = EFI_TABLE_ESRT; uint32_t fw_resource_count = 0; size_t len = sizeof(*esrt); int error; void *buf; - error = efi_get_table(&uuid, (void **)&esrt); + error = efi_get_table(&guid, (void **)&esrt); if (error != 0) return (error); @@ -415,14 +415,14 @@ get_table_length(enum efi_table_type type, size_t *table_len, void **taddr) } case TYPE_PROP: { - struct uuid uuid = EFI_PROPERTIES_TABLE; + efi_guid_t guid = EFI_PROPERTIES_TABLE; struct efi_prop_table *prop; size_t len = sizeof(*prop); uint32_t prop_len; int error; void *buf; - error = efi_get_table(&uuid, (void **)&prop); + error = efi_get_table(&guid, (void **)&prop); if (error != 0) return (error); @@ -450,10 +450,10 @@ get_table_length(enum efi_table_type type, size_t *table_len, void **taddr) } static int -copy_table(struct uuid *uuid, void **buf, size_t buf_len, size_t *table_len) +copy_table(efi_guid_t *guid, void **buf, size_t buf_len, size_t *table_len) { static const struct known_table { - struct uuid uuid; + efi_guid_t guid; enum efi_table_type type; } tables[] = { { EFI_TABLE_ESRT, TYPE_ESRT }, @@ -464,7 +464,7 @@ copy_table(struct uuid *uuid, void **buf, size_t buf_len, size_t *table_len) int rc; for (table_idx = 0; table_idx < nitems(tables); table_idx++) { - if (!bcmp(&tables[table_idx].uuid, uuid, sizeof(*uuid))) + if (!bcmp(&tables[table_idx].guid, guid, sizeof(*guid))) break; } diff --git a/sys/dev/ipmi/ipmi_smbios.c b/sys/dev/ipmi/ipmi_smbios.c index f9fc958d9739..29aa74127041 100644 --- a/sys/dev/ipmi/ipmi_smbios.c +++ b/sys/dev/ipmi/ipmi_smbios.c @@ -150,7 +150,7 @@ static void ipmi_smbios_probe(struct ipmi_get_info *info) { #ifdef ARCH_MAY_USE_EFI - struct uuid efi_smbios; + efi_guid_t efi_smbios = EFI_TABLE_SMBIOS; void *addr_efi; #endif struct smbios_eps *header; @@ -161,7 +161,6 @@ ipmi_smbios_probe(struct ipmi_get_info *info) bzero(info, sizeof(struct ipmi_get_info)); #ifdef ARCH_MAY_USE_EFI - efi_smbios = (struct uuid)EFI_TABLE_SMBIOS; if (!efi_get_table(&efi_smbios, &addr_efi)) addr = (vm_paddr_t)addr_efi; #endif diff --git a/sys/dev/smbios/smbios.c b/sys/dev/smbios/smbios.c index 469e5ab649b6..8f2b4a56b37b 100644 --- a/sys/dev/smbios/smbios.c +++ b/sys/dev/smbios/smbios.c @@ -76,8 +76,8 @@ static void smbios_identify (driver_t *driver, device_t parent) { #ifdef ARCH_MAY_USE_EFI - struct uuid efi_smbios = EFI_TABLE_SMBIOS; - struct uuid efi_smbios3 = EFI_TABLE_SMBIOS3; + efi_guid_t efi_smbios = EFI_TABLE_SMBIOS; + efi_guid_t efi_smbios3 = EFI_TABLE_SMBIOS3; void *addr_efi; #endif struct smbios_eps *eps; diff --git a/sys/sys/efi.h b/sys/sys/efi.h index 4345b1636c2b..58e2c3b4df34 100644 --- a/sys/sys/efi.h +++ b/sys/sys/efi.h @@ -35,15 +35,15 @@ #define EFI_PAGE_MASK (EFI_PAGE_SIZE - 1) #define EFI_TABLE_SMBIOS \ - {0xeb9d2d31,0x2d88,0x11d3,0x9a,0x16,{0x00,0x90,0x27,0x3f,0xc1,0x4d}} + {0xeb9d2d31,0x2d88,0x11d3,{0x9a,0x16,0x00,0x90,0x27,0x3f,0xc1,0x4d}} #define EFI_TABLE_SMBIOS3 \ - {0xf2fd1544,0x9794,0x4a2c,0x99,0x2e,{0xe5,0xbb,0xcf,0x20,0xe3,0x94}} + {0xf2fd1544,0x9794,0x4a2c,{0x99,0x2e,0xe5,0xbb,0xcf,0x20,0xe3,0x94}} #define EFI_TABLE_ESRT \ - {0xb122a263,0x3661,0x4f68,0x99,0x29,{0x78,0xf8,0xb0,0xd6,0x21,0x80}} + {0xb122a263,0x3661,0x4f68,{0x99,0x29,0x78,0xf8,0xb0,0xd6,0x21,0x80}} #define EFI_PROPERTIES_TABLE \ - {0x880aaca3,0x4adc,0x4a04,0x90,0x79,{0xb7,0x47,0x34,0x08,0x25,0xe5}} + {0x880aaca3,0x4adc,0x4a04,{0x90,0x79,0xb7,0x47,0x34,0x08,0x25,0xe5}} #define LINUX_EFI_MEMRESERVE_TABLE \ - {0x888eb0c6,0x8ede,0x4ff5,0xa8,0xf0,{0x9a,0xee,0x5c,0xb9,0x77,0xc2}} + {0x888eb0c6,0x8ede,0x4ff5,{0xa8,0xf0,0x9a,0xee,0x5c,0xb9,0x77,0xc2}} enum efi_reset { EFI_RESET_COLD = 0, @@ -54,8 +54,20 @@ enum efi_reset { typedef uint16_t efi_char; typedef unsigned long efi_status; +/* + * This type-puns to a struct uuid, but all the EDK2 headers use this variation, + * and we use it in the loader to specify GUIDs. We define it here so that we + * can use EDK2 definitions both places. + */ +typedef struct efi_guid { + uint32_t Data1; + uint16_t Data2; + uint16_t Data3; + uint8_t Data4[8]; +} efi_guid_t; /* Type puns with GUID and EFI_GUID */ + struct efi_cfgtbl { - struct uuid ct_uuid; + efi_guid_t ct_guid; void *ct_data; }; @@ -246,8 +258,8 @@ struct efi_ops { * access them. */ int (*rt_ok)(void); - int (*get_table)(struct uuid *, void **); - int (*copy_table)(struct uuid *, void **, size_t, size_t *); + int (*get_table)(efi_guid_t *, void **); + int (*copy_table)(efi_guid_t *, void **, size_t, size_t *); int (*get_time)(struct efi_tm *); int (*get_time_capabilities)(struct efi_tmcap *); int (*reset_system)(enum efi_reset); @@ -271,21 +283,21 @@ static inline int efi_rt_ok(void) return (active_efi_ops->rt_ok()); } -static inline int efi_get_table(struct uuid *uuid, void **ptr) +static inline int efi_get_table(efi_guid_t *guid, void **ptr) { if (active_efi_ops->get_table == NULL) return (ENXIO); - return (active_efi_ops->get_table(uuid, ptr)); + return (active_efi_ops->get_table(guid, ptr)); } -static inline int efi_copy_table(struct uuid *uuid, void **buf, +static inline int efi_copy_table(efi_guid_t *guid, void **buf, size_t buf_len, size_t *table_len) { if (active_efi_ops->copy_table == NULL) return (ENXIO); - return (active_efi_ops->copy_table(uuid, buf, buf_len, table_len)); + return (active_efi_ops->copy_table(guid, buf, buf_len, table_len)); } static inline int efi_get_time(struct efi_tm *tm) diff --git a/usr.sbin/efitable/efitable.c b/usr.sbin/efitable/efitable.c index f283d467b01d..0eee72801592 100644 --- a/usr.sbin/efitable/efitable.c +++ b/usr.sbin/efitable/efitable.c @@ -46,8 +46,6 @@ static void efi_table_print_esrt(const void *data); static void efi_table_print_prop(const void *data); static void usage(void) __dead2; -typedef uuid_t efi_guid_t; /* Typedef for future efi_guid_t */ - struct efi_table_op { char name[TABLE_MAX_LEN]; void (*parse) (const void *); From nobody Thu May 1 18:06:42 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 4ZpMSg2g0Cz5vW6g; Thu, 01 May 2025 18:06: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 4ZpMSf2qWpz4BpS; Thu, 01 May 2025 18:06:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122802; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jxKhXsd++h/9z64pBFPdWXS2OIFtfoE2Yg7Ch6Iz9Wk=; b=rru0pn6Sth0XK4xwz/jW7Qs3M4I4mB0Hso6AXmYmy+ct6SxiTZLV79Rz3i9KkLCVwooeHZ 8gd/h3srTYg0JGH2N4uDe9NNzQ7GPzl/zvQGjqfqIzjOhYHjdQZ2EmrTA6b95SUGLzH+VL uxtE1G8VPEbRBzOL7P39hC1Drtfw5/6kzQ4jJuqLusY9dq2gsq2SaSH+Z7CeFKdMs7bvyP 5OakVV2uUSqUg0y6jagCwob3IP8GqzgZbUqFPcgMj718EIp/klpiFtCYwzMBxLA8EPVVbR tSDq1DQDfvNi2nmXTeBNPG0DitVPUxi16TJ8qtGP4TUCPbi9yDMegQYO3Gq0EQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122802; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jxKhXsd++h/9z64pBFPdWXS2OIFtfoE2Yg7Ch6Iz9Wk=; b=dOsCXRHCwmk2TCFniHHhuqtCeBGKfsOzqLNlINfsFeh+TH9drR2cpXufDoA7CkINh9IHM0 B7rBhUPqIFrucf7H9yNVM1fxrT32GNs9CC8NUC2m53K0IEXrKKf++RNfTjab6jMaaVPebU bsDwOM7jFjqDrR3h8J/KK01LfxuXfivF2Le95V4hSO+tJ01d7ptCRZ0W5JdcEmJbweErFy pk3GofIZEBIy9a5xQR7FqXMahcppsWSTbHanM+ROSku+fRuQlxy2H/ynSw5sA2hk2Bea4S 1Cf5rNnyz8orMMwXLtk5bzZGr9a7trrR8uocqpWhTBoBmEAFmuASzxd2s5hFeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122802; a=rsa-sha256; cv=none; b=SGOFZVY9PYAADTcA2XGyKXgeGUoa8iwQetdaSm7OcR0rs+n9otz3R+Jl7d04q8bMD7kIym K8SJLR5eUJH2oVg7I5hzCN0xE8XfzuZv8I00l4F/S+ExPqt06y+owbp1aYdMBUpDxSDZZm GbAgFNMvDGMSKHChBEOeZdVA/Zd4HkYSvswXp6FNoNqjDyTE7c4zS51t4qkPU34A5bsc+u bi9VyF4e21jD8paF6Mtim14jYLW/FA1r7bx82yOzcwRHq8r31A/P99DF1948Yqw8LFiJ+k pst+Nwgu2R9Bv/KnoN1SHwDbdigvhfb4yVmugAGYgmIqfSeikSyhZJOg+P6+9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSf1KYszfD5; Thu, 01 May 2025 18:06: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 541I6gTr066676; Thu, 1 May 2025 18:06:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6gwh066673; Thu, 1 May 2025 18:06:42 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:42 GMT Message-Id: <202505011806.541I6gwh066673@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 20a860ae3a65 - main - efi: Move to using efi_guid_t in ioctl definitions 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 20a860ae3a6541491e16858c1e21ee8187833339 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=20a860ae3a6541491e16858c1e21ee8187833339 commit 20a860ae3a6541491e16858c1e21ee8187833339 Author: Warner Losh AuthorDate: 2025-05-01 17:53:40 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:53:40 +0000 efi: Move to using efi_guid_t in ioctl definitions Start using efi_guid_t instead of struct uuid in the ioctl definitions. These are binarily the same, but have different structure definitions. EFI prefers this form, and to allow more sharing with EDK2, make this slight addition. I've not really defined new IOCTLs for this. They are the same size, but I have defined new function. Also fix in-kernel uses of uuid to efi_guid_t for anything related to ioctl. Sponsored by: Netflix Reviewed by: tsoome, kib Differential Revision: https://reviews.freebsd.org/D50057 --- sys/dev/efidev/efidev.c | 19 ++++++++------- sys/dev/efidev/efirt.c | 6 ++--- sys/dev/xen/efi/pvefi.c | 6 ++--- sys/sys/efi.h | 20 ++++++++-------- sys/sys/efiio.h | 63 ++++++++++++++++++++++++++++++++++++++++--------- 5 files changed, 78 insertions(+), 36 deletions(-) diff --git a/sys/dev/efidev/efidev.c b/sys/dev/efidev/efidev.c index 4c3570969e23..18bdaaa234f4 100644 --- a/sys/dev/efidev/efidev.c +++ b/sys/dev/efidev/efidev.c @@ -52,12 +52,13 @@ efidev_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr, switch (cmd) { case EFIIOC_GET_TABLE: { - struct efi_get_table_ioc *egtioc = - (struct efi_get_table_ioc *)addr; + struct efi_get_table_ioctl *egtioc = + (struct efi_get_table_ioctl *)addr; void *buf = NULL; - error = efi_copy_table((efi_guid_t *)&egtioc->uuid, egtioc->buf ? &buf : NULL, - egtioc->buf_len, &egtioc->table_len); + error = efi_copy_table(&egtioc->guid, + egtioc->buf != NULL ? &buf : NULL, egtioc->buf_len, + &egtioc->table_len); if (error != 0 || egtioc->buf == NULL) break; @@ -89,7 +90,7 @@ efidev_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr, } case EFIIOC_GET_WAKETIME: { - struct efi_waketime_ioc *wt = (struct efi_waketime_ioc *)addr; + struct efi_waketime_ioctl *wt = (struct efi_waketime_ioctl *)addr; error = efi_get_waketime(&wt->enabled, &wt->pending, &wt->waketime); @@ -97,14 +98,14 @@ efidev_ioctl(struct cdev *dev __unused, u_long cmd, caddr_t addr, } case EFIIOC_SET_WAKETIME: { - struct efi_waketime_ioc *wt = (struct efi_waketime_ioc *)addr; + struct efi_waketime_ioctl *wt = (struct efi_waketime_ioctl *)addr; error = efi_set_waketime(wt->enabled, &wt->waketime); break; } case EFIIOC_VAR_GET: { - struct efi_var_ioc *ev = (struct efi_var_ioc *)addr; + struct efi_var_ioctl *ev = (struct efi_var_ioctl *)addr; void *data; efi_char *name; @@ -140,7 +141,7 @@ vg_out: } case EFIIOC_VAR_NEXT: { - struct efi_var_ioc *ev = (struct efi_var_ioc *)addr; + struct efi_var_ioctl *ev = (struct efi_var_ioctl *)addr; efi_char *name; name = malloc(ev->namesize, M_TEMP, M_WAITOK); @@ -162,7 +163,7 @@ vg_out: } case EFIIOC_VAR_SET: { - struct efi_var_ioc *ev = (struct efi_var_ioc *)addr; + struct efi_var_ioctl *ev = (struct efi_var_ioctl *)addr; void *data = NULL; efi_char *name; diff --git a/sys/dev/efidev/efirt.c b/sys/dev/efidev/efirt.c index c5deb273c076..b0fa33daeca7 100644 --- a/sys/dev/efidev/efirt.c +++ b/sys/dev/efidev/efirt.c @@ -730,7 +730,7 @@ set_time(struct efi_tm *tm) } static int -var_get(efi_char *name, struct uuid *vendor, uint32_t *attrib, +var_get(efi_char *name, efi_guid_t *vendor, uint32_t *attrib, size_t *datasize, void *data) { struct efirt_callinfo ec; @@ -754,7 +754,7 @@ var_get(efi_char *name, struct uuid *vendor, uint32_t *attrib, } static int -var_nextname(size_t *namesize, efi_char *name, struct uuid *vendor) +var_nextname(size_t *namesize, efi_char *name, efi_guid_t *vendor) { struct efirt_callinfo ec; int error; @@ -775,7 +775,7 @@ var_nextname(size_t *namesize, efi_char *name, struct uuid *vendor) } static int -var_set(efi_char *name, struct uuid *vendor, uint32_t attrib, +var_set(efi_char *name, efi_guid_t *vendor, uint32_t attrib, size_t datasize, void *data) { struct efirt_callinfo ec; diff --git a/sys/dev/xen/efi/pvefi.c b/sys/dev/xen/efi/pvefi.c index f400060c1aac..b69fcd5b80ac 100644 --- a/sys/dev/xen/efi/pvefi.c +++ b/sys/dev/xen/efi/pvefi.c @@ -122,7 +122,7 @@ set_time(struct efi_tm *tm) } static int -var_get(efi_char *name, struct uuid *vendor, uint32_t *attrib, +var_get(efi_char *name, efi_guid_t *vendor, uint32_t *attrib, size_t *datasize, void *data) { struct xen_platform_op op = { @@ -151,7 +151,7 @@ var_get(efi_char *name, struct uuid *vendor, uint32_t *attrib, } static int -var_nextname(size_t *namesize, efi_char *name, struct uuid *vendor) +var_nextname(size_t *namesize, efi_char *name, efi_guid_t *vendor) { struct xen_platform_op op = { .cmd = XENPF_efi_runtime_call, @@ -177,7 +177,7 @@ var_nextname(size_t *namesize, efi_char *name, struct uuid *vendor) } static int -var_set(efi_char *name, struct uuid *vendor, uint32_t attrib, +var_set(efi_char *name, efi_guid_t *vendor, uint32_t attrib, size_t datasize, void *data) { struct xen_platform_op op = { diff --git a/sys/sys/efi.h b/sys/sys/efi.h index 58e2c3b4df34..95a433a950db 100644 --- a/sys/sys/efi.h +++ b/sys/sys/efi.h @@ -151,7 +151,7 @@ struct efi_esrt_table { }; struct efi_esrt_entry_v1 { - struct uuid fw_class; + efi_guid_t fw_class; uint32_t fw_type; uint32_t fw_version; uint32_t lowest_supported_fw_version; @@ -181,11 +181,11 @@ struct efi_rt { efi_status (*rt_setvirtual)(u_long, u_long, uint32_t, struct efi_md *) EFIABI_ATTR; efi_status (*rt_cvtptr)(u_long, void **) EFIABI_ATTR; - efi_status (*rt_getvar)(efi_char *, struct uuid *, uint32_t *, + efi_status (*rt_getvar)(efi_char *, efi_guid_t *, uint32_t *, u_long *, void *) EFIABI_ATTR; - efi_status (*rt_scanvar)(u_long *, efi_char *, struct uuid *) + efi_status (*rt_scanvar)(u_long *, efi_char *, efi_guid_t *) EFIABI_ATTR; - efi_status (*rt_setvar)(efi_char *, struct uuid *, uint32_t, + efi_status (*rt_setvar)(efi_char *, efi_guid_t *, uint32_t, u_long, void *) EFIABI_ATTR; efi_status (*rt_gethicnt)(uint32_t *) EFIABI_ATTR; efi_status (*rt_reset)(enum efi_reset, efi_status, u_long, @@ -267,10 +267,10 @@ struct efi_ops { int (*get_waketime)(uint8_t *enabled, uint8_t *pending, struct efi_tm *tm); int (*set_waketime)(uint8_t enable, struct efi_tm *tm); - int (*var_get)(uint16_t *, struct uuid *, uint32_t *, size_t *, + int (*var_get)(uint16_t *, efi_guid_t *, uint32_t *, size_t *, void *); - int (*var_nextname)(size_t *, uint16_t *, struct uuid *); - int (*var_set)(uint16_t *, struct uuid *, uint32_t, size_t, void *); + int (*var_nextname)(size_t *, uint16_t *, efi_guid_t *); + int (*var_set)(uint16_t *, efi_guid_t *, uint32_t, size_t, void *); }; extern const struct efi_ops *active_efi_ops; @@ -347,7 +347,7 @@ static inline int efi_set_waketime(uint8_t enable, struct efi_tm *tm) return (active_efi_ops->set_waketime(enable, tm)); } -static inline int efi_var_get(uint16_t *name, struct uuid *vendor, +static inline int efi_var_get(uint16_t *name, efi_guid_t *vendor, uint32_t *attrib, size_t *datasize, void *data) { @@ -357,7 +357,7 @@ static inline int efi_var_get(uint16_t *name, struct uuid *vendor, } static inline int efi_var_nextname(size_t *namesize, uint16_t *name, - struct uuid *vendor) + efi_guid_t *vendor) { if (active_efi_ops->var_nextname == NULL) @@ -365,7 +365,7 @@ static inline int efi_var_nextname(size_t *namesize, uint16_t *name, return (active_efi_ops->var_nextname(namesize, name, vendor)); } -static inline int efi_var_set(uint16_t *name, struct uuid *vendor, +static inline int efi_var_set(uint16_t *name, efi_guid_t *vendor, uint32_t attrib, size_t datasize, void *data) { diff --git a/sys/sys/efiio.h b/sys/sys/efiio.h index 3faec236f0ed..e45b966b7a9b 100644 --- a/sys/sys/efiio.h +++ b/sys/sys/efiio.h @@ -30,38 +30,79 @@ #include #include -struct efi_get_table_ioc +/* + * The EFI world chose not to use the typical uuid_t defines for its global + * universal identifiers. But the textual representation is the same, and we can + * use the uuid_* routines to parse and print them. However, all EFI interfaces + * for this need to be efi_guid_t so we can share code with EDK2, so the *_ioc + * structures in this file are converted to _ioctl structure to transition to + * this new requirement. This library is little used outside of FreeBSD and they + * will be dropped in 16. + */ +_Static_assert(sizeof(struct uuid) == sizeof(efi_guid_t), + "uuid_t and efi_guid_t are same bytes, but different elements"); +#if __FreeBSD_version < 1600000 && !defined(_KERNEL) +#define _WANT_EFI_IOC +#endif + +struct efi_get_table_ioctl { void *buf; /* Pointer to userspace buffer */ - struct uuid uuid; /* UUID to look up */ + efi_guid_t guid; /* GUID to look up */ size_t table_len; /* Table size */ size_t buf_len; /* Size of the buffer */ }; -struct efi_var_ioc +struct efi_var_ioctl { efi_char *name; /* User pointer to name, in wide chars */ size_t namesize; /* Number of wide characters in name */ - struct uuid vendor; /* Vendor's UUID for variable */ + efi_guid_t vendor; /* Vendor's GUID for variable */ uint32_t attrib; /* Attributes */ void *data; /* User pointer to the data */ size_t datasize; /* Number of *bytes* in the data */ }; -struct efi_waketime_ioc +struct efi_waketime_ioctl { struct efi_tm waketime; uint8_t enabled; uint8_t pending; }; -#define EFIIOC_GET_TABLE _IOWR('E', 1, struct efi_get_table_ioc) +#define EFIIOC_GET_TABLE _IOWR('E', 1, struct efi_get_table_ioctl) #define EFIIOC_GET_TIME _IOR('E', 2, struct efi_tm) #define EFIIOC_SET_TIME _IOW('E', 3, struct efi_tm) -#define EFIIOC_VAR_GET _IOWR('E', 4, struct efi_var_ioc) -#define EFIIOC_VAR_NEXT _IOWR('E', 5, struct efi_var_ioc) -#define EFIIOC_VAR_SET _IOWR('E', 6, struct efi_var_ioc) -#define EFIIOC_GET_WAKETIME _IOR('E', 7, struct efi_waketime_ioc) -#define EFIIOC_SET_WAKETIME _IOW('E', 8, struct efi_waketime_ioc) +#define EFIIOC_VAR_GET _IOWR('E', 4, struct efi_var_ioctl) +#define EFIIOC_VAR_NEXT _IOWR('E', 5, struct efi_var_ioctl) +#define EFIIOC_VAR_SET _IOWR('E', 6, struct efi_var_ioctl) +#define EFIIOC_GET_WAKETIME _IOR('E', 7, struct efi_waketime_ioctl) +#define EFIIOC_SET_WAKETIME _IOW('E', 8, struct efi_waketime_ioctl) + +#ifdef _WANT_EFI_IOC +struct efi_get_table_ioc +{ + void *buf; /* Pointer to userspace buffer */ + struct uuid uuid; /* GUID to look up */ + size_t table_len; /* Table size */ + size_t buf_len; /* Size of the buffer */ +}; + +struct efi_var_ioc +{ + efi_char *name; /* User pointer to name, in wide chars */ + size_t namesize; /* Number of wide characters in name */ + struct uuid vendor; /* Vendor's GUID for variable */ + uint32_t attrib; /* Attributes */ + void *data; /* User pointer to the data */ + size_t datasize; /* Number of *bytes* in the data */ +}; + +_Static_assert(sizeof(struct efi_get_table_ioc) == sizeof(struct efi_get_table_ioctl), + "Old and new struct table defines must be the same size"); +_Static_assert(sizeof(struct efi_var_ioc) == sizeof(struct efi_var_ioctl), + "Old and new struct var defines must be the same size"); +#define efi_waketime_ioc efi_waketime_ioctl +#endif #endif /* _SYS_EFIIO_H_ */ From nobody Thu May 1 18:06:43 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 4ZpMSh3kKCz5vWGb; Thu, 01 May 2025 18:06: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 4ZpMSg5C9Yz4BHC; Thu, 01 May 2025 18:06:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122803; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rdk7wVSTapQa8I2BxdHoXKe3hWTSabOuo8zTZ+dfSic=; b=O/9KhtMw4tvLa8cxwH7rwQK6y3mWkM82A8uFOa9xLYvj79EOKz27kKkSV+wH5NscB+netm Yr16DyOVLPCPvzxuOXSn8NGgWRAz6yano3sA5PlOw6wuqVFk6YDdet4gcrvZWxfAIyF+ij rdMhP1A2kOWSfpNhm++4shsDb7Bi64jlg3FiL6Zi2zOKFBrRpF8Tfd4/aUMojilFwUMwTe TcFCtGJSh5qzwPbMwRX7svdJ0YzSvq48gneiqD9X/0NM5xB0+tRm5DIyzRiggFyt1lLtfT tySTJ6tXTP8nQ7nLRyCChRvDTMfuD61I/KJibyz3/61ypiMLUWeO+BGq5Ccygw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122803; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rdk7wVSTapQa8I2BxdHoXKe3hWTSabOuo8zTZ+dfSic=; b=R44Ac4HCtyYCYUnbKbsLK9D7Sg79sZlIYMV/2u319uPZ12s4S+7/mewanR0rm6jwQXO0sz r7/h43qsq/7JivMuFgdnx2B9zT9aOA/Nhu7VF8VIFpITNWCS1YvFlZBbQjcASlPdCZHvcT l8dOPqabc0bU/DY2LwyXeUtZHNDbLO3VrhhzANCIg1Kfq7bXv4fHA3iQRyT+DwXbxh6dkA tkzdRWf7PVGtf/EkKWKZVf4UONRIuLvYjAbphFkEpeHKLSSlLAjf22n+aiCnLW9z4R+PCB pV9p00y39CI1T7iBW2GRL538wAOTCZFApqu+3ZKtTqu+/cVMu1PZJ4hO/dAPuw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122803; a=rsa-sha256; cv=none; b=b4CMMaSHSzIbZwLZku8uukRWIcbBHZeCpI976G6Q7sSrBJJkxNGeu1ZTxF6bTBBi3UnRrN pY7zupYhULNtSDP4T7XnI0OXFzHATHQi6e7+o/TbT6Gdi3XIpK9BE1RShLedyDiCgA1HrI ZeF1hoaNZ03xPA5lbmizNEekdf3/qeULsFMa+Fb0mn5IRlgna0xcSoIqZiPbA1at1dnDIf zoNXx1YfzJY8aVwpOxfON3OuvfD3REeAM3Q32XyxszfTT0NV7cMH14N7SVJYsx93lVB/u4 7V7zeVvUQCMT9cmtwJEulj6fiOmUvZMAYYM+ZsTf0QQ1NgyUr7KWQ6xJo3zUZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSg22wlzfPc; Thu, 01 May 2025 18:06:43 +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 541I6hVl066715; Thu, 1 May 2025 18:06:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6hgV066712; Thu, 1 May 2025 18:06:43 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:43 GMT Message-Id: <202505011806.541I6hgV066712@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 4c317815f1c2 - main - efivar: Move to new ioctl struct 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4c317815f1c220033ab9e1da8b3e22c0e2180fcb Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=4c317815f1c220033ab9e1da8b3e22c0e2180fcb commit 4c317815f1c220033ab9e1da8b3e22c0e2180fcb Author: Warner Losh AuthorDate: 2025-05-01 17:53:47 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:55:05 +0000 efivar: Move to new ioctl struct Move to the newer ioctl 'struct efi_var_ioctl' which uses efi_guid_t instead of struct uuid. This allows for direct assignment agaain. Sponsored by: Netflix Reviewed by: tsoome, kib Differential Revision: https://reviews.freebsd.org/D50058 --- lib/libefivar/efivar.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index e28987ff001d..b380ae285831 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -120,7 +120,7 @@ efi_open_dev(void) } static void -efi_var_reset(struct efi_var_ioc *var) +efi_var_reset(struct efi_var_ioctl *var) { var->name = NULL; var->namesize = 0; @@ -161,7 +161,7 @@ int efi_get_variable(efi_guid_t guid, const char *name, uint8_t **data, size_t *data_size, uint32_t *attributes) { - struct efi_var_ioc var; + struct efi_var_ioctl var; int rv; static uint8_t buf[1024*32]; @@ -172,7 +172,7 @@ efi_get_variable(efi_guid_t guid, const char *name, rv = utf8_to_ucs2(name, &var.name, &var.namesize); if (rv != 0) goto errout; - memcpy(&var.vendor, &guid, sizeof(guid)); + var.vendor = guid; var.data = buf; var.datasize = sizeof(buf); rv = ioctl(efi_fd, EFIIOC_VAR_GET, &var); @@ -211,7 +211,7 @@ efi_get_variable_size(efi_guid_t guid, const char *name, int efi_get_next_variable_name(efi_guid_t **guid, char **name) { - struct efi_var_ioc var; + struct efi_var_ioctl var; int rv; static efi_char *buf; static size_t buflen = 256 * sizeof(efi_char); @@ -240,7 +240,7 @@ again: rv = utf8_to_ucs2(*name, &var.name, &size); if (rv != 0) goto errout; - memcpy(&var.vendor, *guid, sizeof(**guid)); + var.vendor = **guid; } rv = ioctl(efi_fd, EFIIOC_VAR_NEXT, &var); if (rv == 0 && var.name == NULL) { @@ -266,7 +266,7 @@ again: rv = ucs2_to_utf8(var.name, name); if (rv != 0) goto errout; - memcpy(&retguid, &var.vendor, sizeof(retguid)); + retguid = var.vendor; *guid = &retguid; } errout: @@ -351,7 +351,7 @@ int efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data, size_t data_size, uint32_t attributes) { - struct efi_var_ioc var; + struct efi_var_ioctl var; int rv; if (efi_open_dev() == -1) @@ -361,7 +361,7 @@ efi_set_variable(efi_guid_t guid, const char *name, rv = utf8_to_ucs2(name, &var.name, &var.namesize); if (rv != 0) goto errout; - memcpy(&var.vendor, &guid, sizeof(guid)); + var.vendor = guid; var.data = data; var.datasize = data_size; var.attrib = attributes; From nobody Thu May 1 18:06:45 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 4ZpMSk3K6Lz5vW6x; Thu, 01 May 2025 18:06: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 4ZpMSj4KT8z4C9s; Thu, 01 May 2025 18:06:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=13UUDb/acrYJKK6SQiO2f9yl7qWUsUxA7vlnmmfQrhs=; b=iiYPmJVWecoiVrs5g85ploUiDXpP9aG4tSJPfxAqVn8kWwc087bxjhcdGhCRTBgQobdbd8 rJfJ9+ClGtJOiKkGQs7eW0TgU95YFAN69PKnSnbZf76yeTUgdTmgRp65atS+C4XAa2DIzH 5q9N2ITIa23d1/FSlFT/14Ar/Z6pMJ3FBvEJLXFP4s8t0XM3leTIgJ7WC3pnjH5+r8Bdrm jsnDwVZz1y7a4j8p1Q8xPudW0JnQFQwD3Q9WUOKzz6hKOd3cZlVPwBehfudzgAL0mx8zfn YMV5FTH1ozedq1aL0pg+i21xpLGRfkvvybHYYzUJ2KXaKMyR0wyJTs3A5M4lfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=13UUDb/acrYJKK6SQiO2f9yl7qWUsUxA7vlnmmfQrhs=; b=Aua3voOm46yoFn5jOVW5dEDlNewlHAWEgw3LOiV7ffzevWnSoNNhw3oRr9Ty/k9P5SFBwq GCE4A1D/CfDzTXaRR8QcDn6r0/ItqpPomkfYQ+USbqt7fLqq3Dt0Axetir3ir0Op+SpR1I 3IwpubaTCZ+C5fW0ipKlAAeIFuHgDXgqVTEjB/TBp/8e3kYgQh5djyRVWmVqlamwB8y1y3 t3X7ldnvxGfRGp2cxiuVOoB4pSLA975Fh6e7Z0JNd2z0n+zNeVhl7XUKY9DOGivGR5gBJQ LgISB0Df91cpTtfk/sv4J1XcNcwwV0DzKxlERFTPSP2Mm/IBAHrMnfilckdqOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122805; a=rsa-sha256; cv=none; b=yHZHuTAgJVeSX0SC+YfIwpRrYPp+kmIWI8/TqhpeJNhIBIVzkTyfTfxG49bBDlmqqaypVA eNLEQxYHwU+mGAxsVvXGcZ7XpxTelZmpUHIhl8oxhfNrEh7Kb6T2VLb/bo3IAaMu43tR0w cQjZIUV1b2FlYaVUL+E0vBlqWCjtQvvtb82I01bEmJvP+CA71brb8DoEM06yC4JuzDsiyi CB+gcGwn4CnAbectJkE8XOnG9SnfmYJVm6rjfLDzXb5b0hw6cC3fJohcDbB8+0vWYcWdIS Ypwx14UM5EA12t2P6CSTL3RUtmkOafF/fRkWzG+ipVfWb6CQwMevwztjPzUsww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSj3tMXzfTn; Thu, 01 May 2025 18:06: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 541I6j4R066793; Thu, 1 May 2025 18:06:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6jm0066790; Thu, 1 May 2025 18:06:45 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:45 GMT Message-Id: <202505011806.541I6jm0066790@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 8d136fb027ba - main - efivar: Use struct guid_table instead of uuid_table 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8d136fb027ba2b12794d0501422def5d4e375643 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=8d136fb027ba2b12794d0501422def5d4e375643 commit 8d136fb027ba2b12794d0501422def5d4e375643 Author: Warner Losh AuthorDate: 2025-05-01 17:54:02 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:55:14 +0000 efivar: Use struct guid_table instead of uuid_table uuid_table was the linux name. When libefivar was started, I tried to make it compatible with Linux. However, that's no longer relevant: (a) little to no Linux code was subsequently ported and (b) Linux compat has eroded. This erodes it a bit more to cope with the uuid_t -> efi_guid_t changes. This also moves a couple of functions around to reduce copying and updates consumers for the visible parts of this change. Sponsored by: Netflix Reviewed by: tsoome, kib Differential Revision: https://reviews.freebsd.org/D50060 --- lib/libefivar/efivar.c | 41 +++++++++++++++++++---------------------- lib/libefivar/efivar.h | 4 ++-- usr.sbin/efivar/efivar.c | 2 +- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index 03efb3c5226a..a7cf13055bfe 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -42,7 +42,7 @@ static int efi_fd = -2; const efi_guid_t efi_guid_empty = Z; -static struct uuid_table guid_tbl [] = +static struct guid_table guid_tbl [] = { { "00000000-0000-0000-0000-000000000000", "zero", Z }, { "093e0fae-a6c4-4f50-9f1b-d41e2b89c19a", "sha512", Z }, @@ -76,31 +76,39 @@ static struct uuid_table guid_tbl [] = { "e2b36190-879b-4a3d-ad8d-f2e7bba32784", "rsa2048_sha256", Z }, { "ff3e5307-9fd0-48c9-85f1-8ad56c701e01", "sha384", Z }, { "f46ee6f4-4785-43a3-923d-7f786c3c8479", "lenovo_startup_interrupt", Z }, - { "ffffffff-ffff-ffff-ffff-ffffffffffff", "zzignore-this-guid", Z }, }; +int +efi_str_to_guid(const char *s, efi_guid_t *guid) +{ + uint32_t status; + + /* knows efi_guid_t is binary compatible with uuid_t */ + uuid_from_string(s, (uuid_t *)guid, &status); + + return (status == uuid_s_ok ? 0 : -1); +} + static void efi_guid_tbl_compile(void) { size_t i; - uint32_t status; static bool done = false; + struct guid_table *ent; if (done) return; for (i = 0; i < nitems(guid_tbl); i++) { - uuid_from_string(guid_tbl[i].uuid_str, (uuid_t *)&guid_tbl[i].guid, - &status); - /* all f's is a bad version, so ignore that error */ - if (status != uuid_s_ok && status != uuid_s_bad_version) - fprintf(stderr, "Can't convert %s to a uuid for %s: %d\n", - guid_tbl[i].uuid_str, guid_tbl[i].name, (int)status); + ent = &guid_tbl[i]; + if (efi_str_to_guid(ent->uuid_str, &ent->guid) != 0) + fprintf(stderr, "Can't convert %s to a guid for %s\n", + ent->uuid_str, ent->name); } done = true; } int -efi_known_guid(struct uuid_table **tbl) +efi_known_guid(struct guid_table **tbl) { *tbl = guid_tbl; @@ -327,7 +335,7 @@ efi_guid_to_str(const efi_guid_t *guid, char **sp) { uint32_t status; - /* knows efi_guid_t is a typedef of uuid_t */ + /* knows efi_guid_t is binary compatible with uuid_t */ uuid_to_string((const uuid_t *)guid, sp, &status); return (status == uuid_s_ok ? 0 : -1); @@ -373,17 +381,6 @@ errout: return rv; } -int -efi_str_to_guid(const char *s, efi_guid_t *guid) -{ - uint32_t status; - - /* knows efi_guid_t is a typedef of uuid_t */ - uuid_from_string(s, (uuid_t *)guid, &status); - - return (status == uuid_s_ok ? 0 : -1); -} - int efi_variables_supported(void) { diff --git a/lib/libefivar/efivar.h b/lib/libefivar/efivar.h index 980f261e9edc..e159f4cccd3d 100644 --- a/lib/libefivar/efivar.h +++ b/lib/libefivar/efivar.h @@ -80,14 +80,14 @@ int efi_str_to_guid(const char *s, efi_guid_t *guid); int efi_variables_supported(void); /* FreeBSD extensions */ -struct uuid_table +struct guid_table { const char *uuid_str; const char *name; efi_guid_t guid; }; -int efi_known_guid(struct uuid_table **); +int efi_known_guid(struct guid_table **); extern const efi_guid_t efi_guid_empty; diff --git a/usr.sbin/efivar/efivar.c b/usr.sbin/efivar/efivar.c index a87c73abef36..c40ff1ea010f 100644 --- a/usr.sbin/efivar/efivar.c +++ b/usr.sbin/efivar/efivar.c @@ -298,7 +298,7 @@ print_variables(void) static void print_known_guid(void) { - struct uuid_table *tbl; + struct guid_table *tbl; int i, n; n = efi_known_guid(&tbl); From nobody Thu May 1 18:06:44 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 4ZpMSh6qbSz5vWGc; Thu, 01 May 2025 18:06: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 4ZpMSh3qNBz4BLK; Thu, 01 May 2025 18:06:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122804; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9dB71TwKejNBb7usZumMit+JVtvF3/sF8nzMRueAD2Y=; b=o9SWNhAoSQP8cFVeGju6xOI9fqK+yO05gPxGxFM+w/jXCIzyhDQUE4y0rY3YTSrD0qbT8K z0ddtR5ieS81Ov4VKmFpG8M3NBzZ1LH6/ZP4JzjUR47ddtjHIUgPlcHMXeJsomIHgSzRi7 8H1Zz/PxSO+CRkzfSgM6//HjHBiMlYM4H7H3zQSzvopEKNdcBih5S1jpvR/d3WsSmaFh8C 0UQzTArVMjMSEaJFF1wZ0b1nnksAhcSdGJz9Ao5+IOToZpwU6CxRb9Zo8Guy/X8JUhNe2b iCBOoZhGwSdsn3KWT5NKBElBf5JRtVZGvVTDZU5cfkpgWXJNVkJp2du/sbtpWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122804; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9dB71TwKejNBb7usZumMit+JVtvF3/sF8nzMRueAD2Y=; b=SPt44tM+tVlgGyKZqtEwd9Wxpm7TzRCzOLEu9lcj8dzdv2k0SzFxpxIRR0OsHwdmaXKn9u 0eR8K5dglnpjwf6OfyPqeTl+3E2EFJPtpjG4lV75AeFHBNn6ApdwmkqoYLZcp+abZ44Dvn /OjGX6OdRYSsnLXg7ycvO6KC2y9N4WdZZyaRqkZWZLEhbqVPE64FUM16F0r/c3AmyhUPJO Rk2h/iOLGZacS3a8no8X0qUEoBbcz6WI28RJg6uzmyj56DSV2IzlzLBNgqPa6gFfH3oBkn PMj8tSsZogntk+uAKs0KeB4yCnoNbLkJ0X+4FB8HIUHf31VhiBdYNHKcsCublA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122804; a=rsa-sha256; cv=none; b=jjAtmyYmRB/FZ1qGWQz6gGHYjVX2qKwav7mAgA0HkIiY4J4Gl9/5tDTcVlVkL4r0zU1kfL 7NCNdu+oYsTyj7UQlwNaxD/VH9mGM6QLspUJGuZfh0uX4lF5cwCMsihsptjDzJtgKcnKYO 1ummm0F+n0mnqcyzes815HJi6IXYbx5m5JByqN+PysN0WojPLB2RnKYmtWHGJ3wcpThlkK xRX1Le3S8eCQr6HM9E81u9hE+g1NPOOOExjhxt6TurkpG28zPhl0HmNO99zPJ2l8Sk9PZ3 GT2yvfUoFgZf9+peizWAd6HtqNOfJweBDdkmj5l4utMDWkCQ2LIDKLjTlRRwGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpMSh2yCHzfhm; Thu, 01 May 2025 18:06: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 541I6iZK066748; Thu, 1 May 2025 18:06:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541I6i55066745; Thu, 1 May 2025 18:06:44 GMT (envelope-from git) Date: Thu, 1 May 2025 18:06:44 GMT Message-Id: <202505011806.541I6i55066745@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: daeb975ff570 - main - efivar: Use bool instead of int 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: daeb975ff5704eabad4487b6afa94bd14043191b Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=daeb975ff5704eabad4487b6afa94bd14043191b commit daeb975ff5704eabad4487b6afa94bd14043191b Author: Warner Losh AuthorDate: 2025-05-01 17:53:53 +0000 Commit: Warner Losh CommitDate: 2025-05-01 17:55:14 +0000 efivar: Use bool instead of int Sponsored by: Netflix Reviewed by: tsoome, kib Differential Revision: https://reviews.freebsd.org/D50059 --- lib/libefivar/efivar.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/libefivar/efivar.c b/lib/libefivar/efivar.c index b380ae285831..03efb3c5226a 100644 --- a/lib/libefivar/efivar.c +++ b/lib/libefivar/efivar.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -83,7 +84,7 @@ efi_guid_tbl_compile(void) { size_t i; uint32_t status; - static int done = 0; + static bool done = false; if (done) return; @@ -95,7 +96,7 @@ efi_guid_tbl_compile(void) fprintf(stderr, "Can't convert %s to a uuid for %s: %d\n", guid_tbl[i].uuid_str, guid_tbl[i].name, (int)status); } - done = 1; + done = true; } int From nobody Thu May 1 22:02:00 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 4ZpSh84nL6z5vnTC; Thu, 01 May 2025 22:02: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 4ZpSh814Rrz40px; Thu, 01 May 2025 22:02:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746136920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lcprIR9mR+alQHWxjBLH2dqdzqvbCvIWxA23gIQE6Ag=; b=va5NWxYW6V/xWHgAznyeX1hFfAnpTX03btArpfLVz1BR9B8eIJdnTv838evy6+JGRMYSbC ON2E2WLQi10H/YD7Nd/Vg1MOJE8SY6pCHJ0mOW//hXitRTemf3MnmclE/dJrxa9BOukE6I hOiA1vMObz9YuV8fOWhS9mj5tbMd1TL1Z+CYlFMIlbVP0pP3kgsV8XylIsVrtDdiPsw3aR IbHcl7WgZHbaHUYMcw9+8/S7Gd6UU1pPhXu7p+DUO2KLfIl8aOCs1L3YIupta28X97efge aqvCr6D+iSvRMZVBEFixqkqcQFqY8SVMxr9uB6JdWEBV/ncOr2WNAwSGode0+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746136920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lcprIR9mR+alQHWxjBLH2dqdzqvbCvIWxA23gIQE6Ag=; b=YVQuErjbO64EcGQxPtb2bHNRGgnOwTpnTGHvC//G5pOOqXm4YVzkCNJ+oJK2zb2IPqkZaf i3+O9fHq5+qhsijQIqfUmCZgR/3MdmV301eBylJd5LyBspPD+j0KLOV5Em5VdJ6l7NNB3T lskuZtMbbMp5n9HV3Ne2bISh0wG0cOAiS6+wnN3IJDZ7TlnfH3DlCKhdOu024rjEBoh/zV pphYXUTdERJ5jBEAtqcOW69/ooIB1f1FJcyb+ifBh5wW1SO4yML/NPpma46AzNtBHFcJ8g /65JvrHnIv7iFk2fmbcugAb3BDC2NAv7ponS1h+EHO1GOLBeeaiN01FirU6gjg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746136920; a=rsa-sha256; cv=none; b=ie87bVyHbpM3SAKyxdPuQ+UHbHfGpAf/svTu96pjxvMZJQxkDUMTSsSV08m7rM2ngie75f sRIqsbUEIiiL2OZM70XYqrMA5YPaJs6/kE6xbXRAagi+kylSqyTYgWME/aYohaQCZI7wB1 7IWqjM2Ri9pQ5S6LRh8/bOApNwLDO2n6ETeKGkJx6LIRCg2F/twN1XVTuaPoUNCXAf4VQt H3EBA2ZnfyqEl7PT7a9wET/7yHVUIhgw94tItkpn+eyXNeLnO5hA/z4mkwHHR/jMCps/In p3nW6SzC5n7M+4HIItmCuXmuZgMfcSK5jYQPsCbI5SQW+ERkbHQCLG3+AQv8Nw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpSh80YhFzmGg; Thu, 01 May 2025 22:02:00 +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 541M20HZ015093; Thu, 1 May 2025 22:02:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541M20Zs015090; Thu, 1 May 2025 22:02:00 GMT (envelope-from git) Date: Thu, 1 May 2025 22:02:00 GMT Message-Id: <202505012202.541M20Zs015090@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 7bea3c7c1cb2 - main - efi: Fix overlooked uuid -> efi_guid_t change 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7bea3c7c1cb2c3aca92e90ac1bf5af2743ce5937 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=7bea3c7c1cb2c3aca92e90ac1bf5af2743ce5937 commit 7bea3c7c1cb2c3aca92e90ac1bf5af2743ce5937 Author: Warner Losh AuthorDate: 2025-05-01 21:59:43 +0000 Commit: Warner Losh CommitDate: 2025-05-01 21:59:43 +0000 efi: Fix overlooked uuid -> efi_guid_t change This was overlook we switched to using efi_guid_t. Fixes: 6366114c716f9 Sponsored by: Netflix --- sys/arm64/arm64/machdep.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index ca393e11cef9..9c7d7892aa10 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -513,7 +513,7 @@ static void exclude_efi_memreserve(vm_paddr_t efi_systbl_phys) { struct efi_systbl *systbl; - struct uuid efi_memreserve = LINUX_EFI_MEMRESERVE_TABLE; + efi_guid_t efi_memreserve = LINUX_EFI_MEMRESERVE_TABLE; systbl = (struct efi_systbl *)PHYS_TO_DMAP(efi_systbl_phys); if (systbl == NULL) { @@ -542,7 +542,7 @@ exclude_efi_memreserve(vm_paddr_t efi_systbl_phys) cfgtbl = efi_early_map(systbl->st_cfgtbl + i * sizeof(*cfgtbl)); if (cfgtbl == NULL) panic("Can't map the config table entry %d\n", i); - if (memcmp(&cfgtbl->ct_uuid, &efi_memreserve, sizeof(struct uuid)) != 0) + if (memcmp(&cfgtbl->ct_guid, &efi_memreserve, sizeof(efi_guid_t)) != 0) continue; /* From nobody Thu May 1 23:10:28 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 4ZpVC92JxHz5tdVd; Thu, 01 May 2025 23:10: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 4ZpVC863h6z3rgb; Thu, 01 May 2025 23:10:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746141028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DBNqZsS3LxGoVGckU7z8Vg6dSfRAAGS/2UeECgYPCrg=; b=PMJkmJbFeVJFq+em2+alJb9RBDs8nYYSIIJwoieTtmJxH3so//ISOpwlGiVOniyIYLCSUH cHba/B574VbrEYrFEMjRAhpL0cBlx3O/C23y3pBMZLkJzZT1KGbpk+eY1HUapUvs85Ifn3 CCVXXPj3sb0GH8DRvC6jUw+gqC5UP1tZ19oUOceOWqbl+yKv/0xco3g0u4izJ/4Kd+lTyX F7YYHSZob4LPF9an4mW9tfmtr4AbntSl1HS5UwJIMoTdtKgYckvlce5edQRuISaavWv/b/ 3FH/CsxEODepHSUeG3e2usbUOfDimRSTvRrl/CpYisR3QOTa4OAX5LLTSP/cEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746141028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DBNqZsS3LxGoVGckU7z8Vg6dSfRAAGS/2UeECgYPCrg=; b=CCIJHpCHDeUIgyyv5B+9qAb3aKSkBxd7wQuv9GLeu9OKJ/aDRawmbxz+s4ND3QyLnhV17L Hq/fLyxoCaPLSx9owdvOHhVO7GcsfbUzeQa13B25N4Z6WQxjpUR+Ey7RUBm/aJjFgANRmN G3n6LVSnfjxDfyzE9+m4eyKPh7gJr4YBkzawg11DrdJRmzseuhmnNg/gQgZAFIhqEz/E1K OZEBEdalvVUprk6vnvF1z9PYR7grytceVkR4JTyG1x77Fz/Wv6CRGpkeh42MXFwQ7Ei5op O/sMEP1vSzrFRR1svIXtTJ2YAl2NR6f9fMm0SikHz0YFgk1yDi7z2LZHFbctZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746141028; a=rsa-sha256; cv=none; b=ou8bYL/zi9CAz29LYfpiKJwYtNbBCAPXs8lT/zbiMyJ2gIzR0Kmqarc3EkCsNIVccvBDfE c2Ci2n0e8Qbe7wxb6CA1VqSpgIEEMt/ggTIjW7dnQy2FXsRtGpwq8qTTvmVjk0rxL6PhYt hVog4ga6EKAs3hvAsChrnayNqUKan6aNvnmQ1lSBpx1f4r/o2gxNH4UVl3q/tDDB/gTMRa mlE3cO+5/VXzrfifWitI2NNRssI+FXqXdqVcAWpJ8OCzE5Kf7pQ/uSh3hRRRJkJiSZfPMg 5FIZxWJmGaZRdXoNphDtbxCc66mZujbn5PUf6YrksB4gMa5aWJzgfXlaij90hQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpVC85TR7zpCS; Thu, 01 May 2025 23:10: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 541NAScO039592; Thu, 1 May 2025 23:10:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541NASUo039589; Thu, 1 May 2025 23:10:28 GMT (envelope-from git) Date: Thu, 1 May 2025 23:10:28 GMT Message-Id: <202505012310.541NASUo039589@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: 3740606f2641 - main - .cirrus.yml: Switch image to 14 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: bofh X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3740606f2641e2784eca9fe75428b7de46596d3e Auto-Submitted: auto-generated The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/src/commit/?id=3740606f2641e2784eca9fe75428b7de46596d3e commit 3740606f2641e2784eca9fe75428b7de46596d3e Author: Muhammad Moinur Rahman AuthorDate: 2025-05-01 22:56:46 +0000 Commit: Muhammad Moinur Rahman CommitDate: 2025-05-01 22:56:46 +0000 .cirrus.yml: Switch image to 14 The current default image is set to 13.4 which is going to reach EOL soon so switch the default CI image to 14. Will be merged into stable/14 only. This has no operational effect on the build itself. Approved by: emaste MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50110 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index bab6c600ba9b..472fab9423a8 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,7 +4,7 @@ compute_engine_instance: # gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images platform: freebsd image_project: freebsd-org-cloud-dev - image: freebsd-13-4-release-amd64 + image: freebsd-14-2-release-amd64-ufs cpu: 8 memory: 8G disk: 40 From nobody Thu May 1 23:10:27 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 4ZpVC80dKpz5tdVZ; Thu, 01 May 2025 23:10: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 4ZpVC76xhdz3rpk; Thu, 01 May 2025 23:10:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746141028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gZ+mXEwTQ7Wrv6xHUuYY+EmAtuicgp433R+SKh9HnF8=; b=P4oxU035RG5dChS2b9160WA5IK1GkU+llfEyWfd2kYiSJ6NiVqRfESs5Nru2aWY9I37Qh1 gAotPLZbmw1NFlM0K80Tk33l8GEwbDEe2ZjmxWfhjDQaXCxNdLJWbqjRMOXWHL0Xuf+COa yNsPmFkxFUtHj/lUfKYSl5pmzytUeLPvsxyS0QfcOqQxie22XlbG79sdTPKiF9BmDc5qV3 NVhSnfKj1DRDnQA0YWOiwKL1t0hZ10ptP15iPfUZnHREO7/4ARClwk1aOoqsjPVCVYJaGf 4K5CfdX6Pz9ItRPPXgThQQecp3bNV1lnIsHZm+kEv8roZpnEb9oFeD6/JghMYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746141028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gZ+mXEwTQ7Wrv6xHUuYY+EmAtuicgp433R+SKh9HnF8=; b=LGyEnl5LppPG8TGhxDWhgX9d2NTAi9lMdIITn6J9nExXyXIHo+lwhTg4Ke+NXQSWB8VTvg kodWUNvV3MIh+QE9LO+zkzOUOzYRlw7DXhMAV1xxQ5GQskkiN98JjnMlVQnMnVFgLmcLZk 4AxaMlL6JGbdz87zNLrODSjsZfFeQY+QmiMlNmdbx+j5XD3nG7KLsKnacJyViwIpoWaWHB iMae68tIG7wiqGNVYs/KD1KZsshbT23M9yiHwPLpj3Lus/KdsgbAJFn3YQwrHkTLTC3YRL DaGfEPiPDBIeK18xYXm5WhKTb4SjNgi8KavWGes8SbFYfaqfTsN25vKIjMNdFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746141028; a=rsa-sha256; cv=none; b=ljswdB2UNcCmmsLrcjRUb6GgnE+3oUfxPgciamr2ON0u30IWxGyODUUh7XZz9Td33KzLLi BhCuf+hdiUp/9vByGbn8BI/dWWJQT1n8QYiEcPyEr9br4OrfHrGdS54Ijg6XwBPJD2wIua 1hhaEECprTMPBs0LreUlnEHxhAynMYgxXg0k1NKAuRHL2roQ+1dBVA3evKo6UIA/aCWLjj d+fGjsJ7w3o/4Hk5bsfGj5Y+724t9O3ZwMwtg4ukJJwUcyJ57CrK8Pky1R7iAb/lwvQQM6 rwrWZqZEAMtKQY+hH1FzwxS8x9mxFaRmZ7xxKdImzB7B/JjOiEl9l6IalRi+bg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpVC75vKrznyL; Thu, 01 May 2025 23:10: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 541NARmB039553; Thu, 1 May 2025 23:10:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541NARUt039550; Thu, 1 May 2025 23:10:27 GMT (envelope-from git) Date: Thu, 1 May 2025 23:10:27 GMT Message-Id: <202505012310.541NARUt039550@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: 5c67180ffa93 - main - .cirrus.yml: Refactor 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: bofh X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5c67180ffa931242a98b1a747e811f2acbd351db Auto-Submitted: auto-generated The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/src/commit/?id=5c67180ffa931242a98b1a747e811f2acbd351db commit 5c67180ffa931242a98b1a747e811f2acbd351db Author: Muhammad Moinur Rahman AuthorDate: 2025-05-01 22:55:59 +0000 Commit: Muhammad Moinur Rahman CommitDate: 2025-05-01 22:56:02 +0000 .cirrus.yml: Refactor Most of the matrix options are manually triggered ones but some of those do not specifically mention them in the name. So add the string ' (manual)` in the name of the jobs for better clarity in the web interface of cirrus CI. These are mostly cosmetic changes and have no effects on the build itself. Will be merged in all stable versions. Approved by: emaste MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50110 --- .cirrus.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 2bcb1985e68e..bab6c600ba9b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -14,7 +14,7 @@ env: task: matrix: - - name: amd64-llvm16 World and kernel build and boot smoke test + - name: amd64-llvm16 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: @@ -22,7 +22,7 @@ task: TARGET_ARCH: amd64 TOOLCHAIN: llvm16 TOOLCHAIN_PKG: ${TOOLCHAIN}-lite - - name: amd64-llvm17 World and kernel build and boot smoke test + - name: amd64-llvm17 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: @@ -30,7 +30,7 @@ task: TARGET_ARCH: amd64 TOOLCHAIN: llvm17 TOOLCHAIN_PKG: ${TOOLCHAIN}-lite - - name: amd64-llvm18 World and kernel build and boot smoke test + - name: amd64-llvm18 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: @@ -45,7 +45,7 @@ task: TARGET_ARCH: amd64 TOOLCHAIN: llvm19 TOOLCHAIN_PKG: ${TOOLCHAIN}-lite - - name: arm64-llvm16 World and kernel build and boot smoke test + - name: arm64-llvm16 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: @@ -53,7 +53,7 @@ task: TARGET_ARCH: aarch64 TOOLCHAIN: llvm16 TOOLCHAIN_PKG: ${TOOLCHAIN} - - name: arm64-llvm17 World and kernel build and boot smoke test + - name: arm64-llvm17 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: @@ -61,7 +61,7 @@ task: TARGET_ARCH: aarch64 TOOLCHAIN: llvm17 TOOLCHAIN_PKG: ${TOOLCHAIN} - - name: arm64-llvm18 World and kernel build and boot smoke test + - name: arm64-llvm18 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: @@ -69,7 +69,7 @@ task: TARGET_ARCH: aarch64 TOOLCHAIN: llvm18 TOOLCHAIN_PKG: ${TOOLCHAIN} - - name: arm64-llvm19 World and kernel build and boot smoke test + - name: arm64-llvm19 World and kernel build and boot smoke test (manual) only_if: $CIRRUS_REPO_FULL_NAME != 'freebsd/freebsd-src' trigger_type: manual env: From nobody Thu May 1 23:21:12 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 4ZpVRY2Hkvz5tdyH; Thu, 01 May 2025 23:21:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpVRX6gCxz40q7; Thu, 01 May 2025 23:21:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746141672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nFywYJah0gyXAcV2ABl3CjtecIRLNqyYvTabHGfWUQA=; b=OReOhYvORFXxUAaHiYAMz/R/YdPss3GK7UrPKKoCLTuY1dxGnncN5D4rFr2gy9NZVC3G58 2Aco1ehd9GiH7CiFWAh85Wlci9Fu5s2vWw9Z82n6wjQ5slyCXygXqc15RehMGM3gXKNZDZ UmaVAh0pAuDrS12yfwyNxKld2wVvx+7mhG0Sy+ITrWrhVapkvupM+8+Sd6F8fpPsa1CjTz Jun+YREjT8yPmbWGKOtfGwklRr3Ii8nqb6ovtSST3bk87UHXuG9Yatc5/nUNANjYzbHkaS EEhzz3wMmDhykb4Kt+fL8POVBt1xg6R363yIqz1TuVe3AhYnd+PJRxuraK/tEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746141672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nFywYJah0gyXAcV2ABl3CjtecIRLNqyYvTabHGfWUQA=; b=adBA48U7LDL1UBI9TT2Req8dXH4BAVyCchmcrGbNilCE9ncpb9HGf2eZpM59mRExWK1FxS FTndeRK2/tEFQOm7TAqCE/ZmWRY+FXxzSzGpbaxZefaAe5MuJVM6mRlcYSeumPQNy6wzB1 /tCdqAarfiUN9Zj6gFmTzfCKaYML+nqEjfnaCt1l41TVwLZGcoya3qHOOry8tFXR+E+PVC ecjCDK/48AXpzifQimAhgPzD1SUdjT9Ijw1wZEkHyYGuRP+VhRrvhGuLxk5EYaesfAN7I1 qcGefiMQ4RjvKyN2bKkK+q67ws5MPHLpUtUM6O+E9mxRHKVy8iq7B/PrUVyYhw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746141672; a=rsa-sha256; cv=none; b=uKZuvbYjucA0PZbPZ1yKNIFV0srfDDT3pSMcKisSVb1f+xcEUzbhQG1tIDgBMaOTMye9IZ cgyd2EMClwscKLSc3dFalooxKWJbbudluguHThtxYijE48+g8TW6pFaApQJ7/Ps7dykZbI mQTX1QZsdy1bM7gviID10UyfmnBWqRmtv/LQY/1+Aectk3RWAD848KeAGy/QMN5Au2yjFe yo/0wFP16nnhLO9GQ7dojLVcmsDVhxalGhlV7xdtQmsiOSt8aIs272GVvexNJwmHQgAMf+ VaiJKNpbzYAg1WBX55NlMzujalOKIOOh7Oo6Kb4ZUTF22v8Y/9HDcqftLHcxrg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpVRX6GhyzpVt; Thu, 01 May 2025 23:21:12 +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 541NLCfF060136; Thu, 1 May 2025 23:21:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541NLCiP060133; Thu, 1 May 2025 23:21:12 GMT (envelope-from git) Date: Thu, 1 May 2025 23:21:12 GMT Message-Id: <202505012321.541NLCiP060133@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: 68daa781c1f1 - main - mountd: Fix updating the network/host(s) for an exports 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 68daa781c1f12e1cfef768030eaff970c3d35543 Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=68daa781c1f12e1cfef768030eaff970c3d35543 commit 68daa781c1f12e1cfef768030eaff970c3d35543 Author: Rick Macklem AuthorDate: 2025-05-01 23:17:20 +0000 Commit: Rick Macklem CommitDate: 2025-05-01 23:17:20 +0000 mountd: Fix updating the network/host(s) for an exports line Mountd reloads the exports(5) file(s) when it receives a SIGHUP and then compares the old and new exports, updating any ones that have changed in the kernel. Without this patch, mountd failed to recognize that a network/host(s) had changed, if there was no other change to the exports line. As such, the change of network/hosts(s) did not take effect until the mountd daemon was (re)started. This patch fixes the code so that it checks for changes in the network/host(s) list for an exports line. PR: 286260 MFC after: 3 days --- usr.sbin/mountd/mountd.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/usr.sbin/mountd/mountd.c b/usr.sbin/mountd/mountd.c index 2969edd8aed5..7e2f9b6e73bd 100644 --- a/usr.sbin/mountd/mountd.c +++ b/usr.sbin/mountd/mountd.c @@ -231,6 +231,7 @@ static void free_exports(struct exportlisthead *); static void read_exportfile(int); static int compare_nmount_exportlist(struct iovec *, int, char *); static int compare_export(struct exportlist *, struct exportlist *); +static int compare_addr(struct grouplist *, struct grouplist *); static int compare_cred(struct expcred *, struct expcred *); static int compare_secflavor(int *, int *, int); static void delete_export(struct iovec *, int, struct statfs *, char *); @@ -2336,7 +2337,8 @@ compare_export(struct exportlist *ep, struct exportlist *oep) grp->gr_exflags == ogrp->gr_exflags && compare_cred(&grp->gr_anon, &ogrp->gr_anon) == 0 && compare_secflavor(grp->gr_secflavors, - ogrp->gr_secflavors, grp->gr_numsecflavors) == 0) + ogrp->gr_secflavors, grp->gr_numsecflavors) == 0 && + compare_addr(grp, ogrp) == 0) break; if (ogrp != NULL) ogrp->gr_flag |= GR_FND; @@ -2349,6 +2351,46 @@ compare_export(struct exportlist *ep, struct exportlist *oep) return (0); } +/* + * Compare the addresses in the group. It is safe to return they are not + * the same when the are, so only return they are the same when they are + * exactly the same. + */ +static int +compare_addr(struct grouplist *grp, struct grouplist *ogrp) +{ + struct addrinfo *ai, *oai; + + if (grp->gr_type != ogrp->gr_type) + return (1); + switch (grp->gr_type) { + case GT_HOST: + ai = grp->gr_ptr.gt_addrinfo; + oai = ogrp->gr_ptr.gt_addrinfo; + for (; ai != NULL && oai != NULL; ai = ai->ai_next, + oai = oai->ai_next) { + if (sacmp(ai->ai_addr, oai->ai_addr, NULL) != 0) + return (1); + } + if (ai != NULL || oai != NULL) + return (1); + break; + case GT_NET: + /* First compare the masks and then the nets. */ + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_mask, NULL) != 0) + return (1); + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask) != 0) + return (1); + break; + default: + return (1); + } + return (0); +} + /* * This algorithm compares two arrays of "n" items. It returns 0 if they are * the "same" and 1 otherwise. Although suboptimal, it is always safe to From nobody Fri May 2 02:17:47 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 4ZpZMH56mPz5tsk0; Fri, 02 May 2025 02:17: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 4ZpZMH3LgDz3wP1; Fri, 02 May 2025 02:17:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746152267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vKTg5ZK6eolOEY81W/ctywj6gnCzpjobCLL8gET+UjI=; b=OyBFIxtSPyChcubfGAeOvjEe+2+9Rj/MJsOcgGqapd37ZK+JPiUY271e4SwcassPLWWCxn eRs86EMexC/NHnh9eFg0Uxeqe47bY3qBRP8nfECmyf1t/aW/7tcJR8eefBriH4z4tHvdj2 q8KGUqEBw2FyybBWwKP22nA5onp8xlqS+w4Vt4+J1mVLLd3JJgiu23DesEhQdPg/SWlZic OSjZ1yR1IBe3As1bjLwGM9+ww5+GUFWUpA4iC7Zuw5oi7/AdLNItUi68p2QiqmopQjme2I SQFG4DST7DmwAsddSDlyfsLO1+Upl8gojH7GE7geR6KJd5+yWlbiCzwHFJYKdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746152267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vKTg5ZK6eolOEY81W/ctywj6gnCzpjobCLL8gET+UjI=; b=sIbOTnNGBwb5+a/E4D2MFU3H0O9h0WVC0FRpQg4aI+2Lshiw6H/mmGdMAYKTvKsu0KcK4E Q5JU/vnYYeLYBHr0qpCUJRMypxYhgcE7qAe082zu02FEC0F4zk18/adzy4XdPy+zWlBABw xB3Sx6H38mXtgapPq60BmfI95I0Vv3MD6xPTDBDogimSkGk0cKOVNW9R6g9fAkIlzSceAC 705pMQ723JNA78vMe9dvm5NOt0D+yQCxJWzNyc7s53akVf/jaqZyPPNuHevKSWw+4Til7L E8paRETmoIEVJWD/aFK8YNJzSWAnNp0m2pPuzQS7FwLdGLo0hQPFTBhVEqeilA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746152267; a=rsa-sha256; cv=none; b=gm6RSpnJZ/XO8BDSWOpJZzuQSSuFec3sx85Tcw/0QFrPlshHAZep/UDzAYLdOoYN5u9gPe OY/PSWn9DvgmykmPab6HhhCkg+Lv7NrxInofF/veUX6XH2QIXy7k6ZFoxZfH1gUyhoKsGD pGoX1B7ylx3rGcqW7bSfzcgMhaXaCgDJrS8fJwaC5RgcRAe49DbGwYNLK9AyHz1rdb5vn2 4fFCV222EFr4Pht6mqRGeOK+S1wHdWzCf4pp+ISiIREQGdaT2tgBpYQMybeqrw20wp9dl7 OeWfJ0tJY9EXPNweb6OCFHDZz6B/zzConkJA8BvptDlttC3aBN63haSYXgFfFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpZMH2V6hztyr; Fri, 02 May 2025 02:17: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 5422Hlvf083917; Fri, 2 May 2025 02:17:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5422HlEM083914; Fri, 2 May 2025 02:17:47 GMT (envelope-from git) Date: Fri, 2 May 2025 02:17:47 GMT Message-Id: <202505020217.5422HlEM083914@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: 2735c20d114f - main - vm_page: use ref_count for NOFREE counter 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: 2735c20d114f2d53b8a44d4fb7b00ab49280062b Auto-Submitted: auto-generated The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=2735c20d114f2d53b8a44d4fb7b00ab49280062b commit 2735c20d114f2d53b8a44d4fb7b00ab49280062b Author: Doug Moore AuthorDate: 2025-05-02 02:16:27 +0000 Commit: Doug Moore CommitDate: 2025-05-02 02:16:27 +0000 vm_page: use ref_count for NOFREE counter In managing freed PG_NOFREE pages, use ref_count instead of pindex for counting pages in freed PG_NOFREE blocks. No change in behavior is expected. This restores the (useful) property that the pindex field is of interest only for pages that are mapped to objects. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50112 --- sys/vm/vm_page.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 8dce6feaca09..d254f08d4801 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -2593,18 +2593,19 @@ vm_page_alloc_nofree_domain(int domain, int req) vm_domain_free_unlock(vmd); return (NULL); } - m->pindex = count; + m->ref_count = count - 1; TAILQ_INSERT_HEAD(&vmd->vmd_nofreeq, m, listq); VM_CNT_ADD(v_nofree_count, count); } m = TAILQ_FIRST(&vmd->vmd_nofreeq); TAILQ_REMOVE(&vmd->vmd_nofreeq, m, listq); - if (m->pindex > 1) { + if (m->ref_count > 0) { vm_page_t m_next; m_next = &m[1]; - m_next->pindex = m->pindex - 1; + m_next->ref_count = m->ref_count - 1; TAILQ_INSERT_HEAD(&vmd->vmd_nofreeq, m_next, listq); + m->ref_count = 0; } vm_domain_free_unlock(vmd); VM_CNT_ADD(v_nofree_count, -1); @@ -2622,7 +2623,7 @@ static void __noinline vm_page_free_nofree(struct vm_domain *vmd, vm_page_t m) { vm_domain_free_lock(vmd); - m->pindex = 1; + MPASS(m->ref_count == 0); TAILQ_INSERT_HEAD(&vmd->vmd_nofreeq, m, listq); vm_domain_free_unlock(vmd); VM_CNT_ADD(v_nofree_count, 1); From nobody Fri May 2 07:34:17 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 4ZpjNT42jDz5vHH0; Fri, 02 May 2025 07:34: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 4ZpjNT2dz0z3rpv; Fri, 02 May 2025 07:34:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=syV1NVXuBDms6cPI2SVSeIXM9CEF3mr/aJ+vrz7QkH0=; b=DxJ5/wfL4dS4ERfJqwWYSC6qIY7riGzWa5RGURpTvhHJcsCVHPhSID+lbUCVYdK3+XAK9R Qc+28/eLvPf+ZdxOaek8by7QRmC5FpceeMQ6Hm2a3FxqxTxrMo6CBLZyy2IHYRks9f9HjW /RZPA+jR9rG0ALBvYK6kBlWrYbyOpoEUHmeLirmZYp8+Ef+q0yPGOUHYT9tZzhCj44koGW 2NcbFRoOgRqqKoYm+wlnDvIDfk0qhHN2hJxqyTHayYyhwl8+2uuQ4CBs6i8/Hc7sr50IaJ YNim3OeqcuXcumYQWbPyXt8PJxk2rAvwQQgRPWVjuuFtVmTHX8DqXkD4SZDEvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=syV1NVXuBDms6cPI2SVSeIXM9CEF3mr/aJ+vrz7QkH0=; b=cKvgq8bNViYIdhqDyVoWGeSPOdX/4BamKZySVEfd11goBei2LmsOUxJWahSYDbRypNFkzQ i1gTPtH05zf/5ILmSUNh1hwSFd8ihO3lMc8Lj/kxyEB3lVspPfUBPvl2DCOb8EY75/SEzc lLYwesqPTPwCA/Jr5s5FtwppSrwu0GqSZPAKekVEdTRpPmxdIrr3JgKa9t3YtY6EIoi8sE pZEu0yH5cweZNWnFm+aP21gprjynLLG4InW4cXp8zQPyMcReepXW1XAb0blDjcujsRi4qZ wlx9oyexdOsDiXEnoqHdXoNbBlBKBOwMTOk/Z/04/sSxtAa4WeQkdK6LMV7VMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746171257; a=rsa-sha256; cv=none; b=mh1MvCjmYflZicpEQ2DRrIwPKKNeFicYjNuBZkQGpetL5mIGGCIJhm79TMou3HvAO1Msjz 7lDR4WfZj+PYz4Db1usdkArVpoIHmc9X+Qj+l6kr/6atu4jL2VePxwKTpmqJjee8ok2Y0y 2ujC1lbY+ZK75mtrD6c6oPM4EMtnqF5FKI8xXICRT4xINuli+DjEPlDnBjZ4V81oL1HRUs YBnacA/h4qjget++tJyY9V7x3SJa6WZ1FYAOkPNkRaI9zZJyiQ3Yovl5ki++xRp12C0OHa vnpXlW13u0jc40JN9atwWW1iNvQP0zNbVAb9iZmRDv6JE6miqxv3WaNLQoGJDA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpjNT235tz13pK; Fri, 02 May 2025 07:34: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 5427YH6v081029; Fri, 2 May 2025 07:34:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5427YHhO081026; Fri, 2 May 2025 07:34:17 GMT (envelope-from git) Date: Fri, 2 May 2025 07:34:17 GMT Message-Id: <202505020734.5427YHhO081026@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: 30e5802aeffa - main - rtld: apply some style to dlopen_object() 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: 30e5802aeffa435b29604afac45ab8aecf6ca92e Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=30e5802aeffa435b29604afac45ab8aecf6ca92e commit 30e5802aeffa435b29604afac45ab8aecf6ca92e Author: Konstantin Belousov AuthorDate: 2025-05-01 17:19:32 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 07:32:56 +0000 rtld: apply some style to dlopen_object() Sponsored by: The FreeBSD Foundation --- libexec/rtld-elf/rtld.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index fa96a516687e..137d27528b46 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -3809,7 +3809,7 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags, obj = load_object(name, fd, refobj, lo_flags); } - if (obj) { + if (obj != NULL) { obj->dl_refcount++; if (mode & RTLD_GLOBAL && objlist_find(&list_global, obj) == NULL) @@ -3821,8 +3821,8 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags, if ((lo_flags & RTLD_LO_DEEPBIND) != 0) obj->deepbind = true; result = 0; - if ((lo_flags & (RTLD_LO_EARLY | RTLD_LO_IGNSTLS)) == - 0 && + if ((lo_flags & (RTLD_LO_EARLY | + RTLD_LO_IGNSTLS)) == 0 && obj->static_tls && !allocate_tls_offset(obj)) { _rtld_error( "%s: No space available for static Thread Local Storage", @@ -3845,7 +3845,7 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags, lockstate) == -1) { dlopen_cleanup(obj, lockstate); obj = NULL; - } else if (lo_flags & RTLD_LO_EARLY) { + } else if ((lo_flags & RTLD_LO_EARLY) != 0) { /* * Do not call the init functions for early * loaded filtees. The image is still not @@ -3900,10 +3900,9 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags, distribute_static_tls(&initlist, lockstate); } - if (initlist_objects_ifunc(&initlist, - (mode & RTLD_MODEMASK) == RTLD_NOW, - (lo_flags & RTLD_LO_EARLY) ? SYMLOOK_EARLY : 0, - lockstate) == -1) { + if (initlist_objects_ifunc(&initlist, (mode & RTLD_MODEMASK) == + RTLD_NOW, (lo_flags & RTLD_LO_EARLY) ? SYMLOOK_EARLY : 0, + lockstate) == -1) { objlist_clear(&initlist); dlopen_cleanup(obj, lockstate); if (lockstate == &mlockstate) @@ -3911,7 +3910,7 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags, return (NULL); } - if (!(lo_flags & RTLD_LO_EARLY)) { + if ((lo_flags & RTLD_LO_EARLY) == 0) { /* Call the init functions. */ objlist_call_init(&initlist, lockstate); } From nobody Fri May 2 07:34:18 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 4ZpjNV4LTnz5vH1Q; Fri, 02 May 2025 07:34: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 4ZpjNV3C4mz3rf5; Fri, 02 May 2025 07:34:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=04GS6smPhsr261dTc1tqadJvXdY0DVh9rKfcEjUuGG4=; b=S24YoNGrj44hsvNPHeKBwv+QhZMLUe6hxC1aXOo9DWsg4maH/tLHoe27eLN0Ew9L+o1Krp kOpfHP8wWWmi48FqXqSWK3fnzEOiGzSwtF7SZxyCVD5B96CG2lx4cFXqOP+iW8NTDpB1G6 SNKEtJk60IpZXiQfXkuzI31I/o/tEvG/3Ad6JmWlV/7Pzv5ym5slCEnEvTdENjgu9Hnb/P UYS5sWIGzvvWhLAna/8z3VZB7pqHn9nZS13r3+KSp4Fcr6mBbu9zo3fjhY+9zErhTjTd3u rf/nUoz3UK7ZriaWVTxax8cYAOcI3P2o8If6PnZ2HyDsyl5+QMVgHNTCJE6/Xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=04GS6smPhsr261dTc1tqadJvXdY0DVh9rKfcEjUuGG4=; b=S3ATgsbOI+W7E4JepNQS7eARu2RfhunrhIfbHgpQgTDEvtQc97KUG7WuPI8LuHHM46qm9V 5FcagM5PGNt6zyhDrOOpUZ/my+uG/j4E6irV0JF8y0J7FOWlx7WXriTHKZGwoCRG6YUEiL +D/g7sb4RiibwI1458GjDWToeK6cZdVhiQFy3t/uICP4Sob37U2Au+uF4rGPWdWwDWBb6/ I5uRWkPMKdp+8cQ6F3qMwEo3gePSB8yH7ReqqACBbyIsU56WR4ESLH4+wCYweZXx7hlToi HN12v7fxSeNoicRTWAD599Td1LBjY9MBtui1LV/5c2M7BppRX/JI2KZMwdYa0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746171258; a=rsa-sha256; cv=none; b=v5nEEfJZR7kdmlFZyrVRQVoFOK19sKZUFhorNTrqKiwBLG8b98FaZo8+ilreWxz7A4VZYd p96ZpyfH3uTs76R+LdTXC0SLVWduB0c3OFOchAL1AcAJYcSdifsmHMYEHI1h1dHWERnOf1 AF1MRA2x8BndzVATEPIqiHXtMP4JF2R41lr3rZmoKopnoNz5HOs/H/4sk1DDozUTDXamem EpDwvXSMBhaePNBRTPG/XnESjAnTUDNqgDNBSOcDMhCXs01+4pP4MDf08uBqn2whe3vA2V p1aHxVpIdXd8G4ap9c4x1pLFbJoNAwD3J1XRkVHYopMwQgGIcZ1BS8Y/I3+Sag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpjNV2lLlz13Ly; Fri, 02 May 2025 07:34: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 5427YIKx081063; Fri, 2 May 2025 07:34:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5427YIS4081060; Fri, 2 May 2025 07:34:18 GMT (envelope-from git) Date: Fri, 2 May 2025 07:34:18 GMT Message-Id: <202505020734.5427YIS4081060@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: 071b26a179bf - main - rtld: apply some style to resolve_object_ifunc() 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: 071b26a179bf8174804869139c1c1fe9d3286ea7 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=071b26a179bf8174804869139c1c1fe9d3286ea7 commit 071b26a179bf8174804869139c1c1fe9d3286ea7 Author: Konstantin Belousov AuthorDate: 2025-05-01 17:22:34 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 07:32:56 +0000 rtld: apply some style to resolve_object_ifunc() Sponsored by: The FreeBSD Foundation --- libexec/rtld-elf/rtld.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 137d27528b46..3a9a3e800831 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -3437,12 +3437,12 @@ resolve_object_ifunc(Obj_Entry *obj, bool bind_now, int flags, if (obj_disable_relro(obj) == -1 || (obj->irelative && reloc_iresolve(obj, lockstate) == -1) || (obj->irelative_nonplt && - reloc_iresolve_nonplt(obj, lockstate) == -1) || + reloc_iresolve_nonplt(obj, lockstate) == -1) || ((obj->bind_now || bind_now) && obj->gnu_ifunc && - reloc_gnu_ifunc(obj, flags, lockstate) == -1) || + reloc_gnu_ifunc(obj, flags, lockstate) == -1) || (obj->non_plt_gnu_ifunc && - reloc_non_plt(obj, &obj_rtld, flags | SYMLOOK_IFUNC, - lockstate) == -1) || + reloc_non_plt(obj, &obj_rtld, flags | SYMLOOK_IFUNC, + lockstate) == -1) || obj_enforce_relro(obj) == -1) return (-1); return (0); From nobody Fri May 2 07:34:19 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 4ZpjNW6XMxz5vGxY; Fri, 02 May 2025 07:34: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 4ZpjNW4PNWz3rsV; Fri, 02 May 2025 07:34:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bDR2Wrcgxl7SD22nZh4ZODWdeDIgQ4+df+7TbvkvDJg=; b=BV6vEG0Zj+cql4RtDJQ/PXvX+8j3rZaHDIH9dF45hM3PZXG1DzRnoT5t/RqUvwlvnT2zRy XXMD0d+vA67kbg9JDezwkOs5A1g0NJ2QxEqyGC06Sg8lpJsPyj68YU6MUo7sOq0x8zBc4n IIYKYKHMx7AwKkW0WAe9w8E8U6Hvs7TXm1krFy2ApdN8Xy1NqDDTQdZaKw3gLpKtpDrqss p/WL5o9zxicqOTJxDdyx7QJrB3pa3XJrd3PztZEWv4AwzmqrBx/35GRz1T92L/TMil41Ta 4yF/1WofDN0ajetKo/H/VdDwmYT09zNMfTCVhbV2TFlNJJcmgmqKioPo0lAfYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bDR2Wrcgxl7SD22nZh4ZODWdeDIgQ4+df+7TbvkvDJg=; b=jdSbdVqu6sFDMcJMdkkwUm1CY9WTeHPDcuUK0zPLrEYC/Z5GnCndo0UKBD8nurDkU+5wR/ ySCKQdwjlMGa8YsjwUOva7MjqWp94qAR2SIbPBuW3maSBnu2nfqmcukGYaFVkgiIKAxFI6 cTsKE8nnNFgactXvqtdZoNgErknAFbO/6gNPfiMfqlRjwiDi7ApNW6AAM/SzWfWXRB/Scw EDMbTb2JNQFaTxq0w5d0z8D9MlFrzrymxApAEdEHuUXXe9rLumTBjY2tTWacimnwC0ZiAE ZzFSg+H9UEMVExpXNsoxaocMnKb+3Gc2PKSLnxSmkAmrp/cnZRrtU9GPnTzNfg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746171259; a=rsa-sha256; cv=none; b=Q27U4aqm1bySzczkZ7DfMorXhLrwIKunIEPkoHXATCqje4cTr63sB7NotX0k6BnmUy6PC9 i83n2zKTfompbiemAHDQPzwu0t004ivsZREcvE+qwH7md40QeJigqodUN2/nWl+nsXMRW7 oGQTy60+snU+Z1Qmq0lMV5Kqwr84Z3fMIv1+fG7zEIk/NPD7bD59eWhHJcbGMBOd89xMn6 eQ+M1jIcOxy+Hjsuk2P3G1jUalIYjdX2GhRFd7/7PiYXPxC/sSY05XVz/sQBwQ3Not8H5j DCXcBMp2BYrs38gKNeVVc2SicGC6j9VzaX83pAuOpdlxJYymEmTdsQlKfjzBsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpjNW3qkwz13pL; Fri, 02 May 2025 07:34: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 5427YJBZ081103; Fri, 2 May 2025 07:34:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5427YJHL081100; Fri, 2 May 2025 07:34:19 GMT (envelope-from git) Date: Fri, 2 May 2025 07:34:19 GMT Message-Id: <202505020734.5427YJHL081100@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: 100dd7d5c7bc - main - rtld: some style in rtld_lock.c 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: 100dd7d5c7bc01a398982333cda4919cfa2bd24b Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=100dd7d5c7bc01a398982333cda4919cfa2bd24b commit 100dd7d5c7bc01a398982333cda4919cfa2bd24b Author: Konstantin Belousov AuthorDate: 2025-05-01 17:54:25 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 07:32:56 +0000 rtld: some style in rtld_lock.c --- libexec/rtld-elf/rtld_lock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/rtld-elf/rtld_lock.c b/libexec/rtld-elf/rtld_lock.c index 323bb7494c32..40fa724b6227 100644 --- a/libexec/rtld-elf/rtld_lock.c +++ b/libexec/rtld-elf/rtld_lock.c @@ -251,7 +251,7 @@ rlock_acquire(rtld_lock_t lock, RtldLockState *lockstate) if (lockstate == NULL) return; - if (thread_mask_set(lock->mask) & lock->mask) { + if ((thread_mask_set(lock->mask) & lock->mask) != 0) { dbg("rlock_acquire: recursed"); lockstate->lockstate = RTLD_LOCK_UNLOCKED; return; @@ -267,7 +267,7 @@ wlock_acquire(rtld_lock_t lock, RtldLockState *lockstate) if (lockstate == NULL) return; - if (thread_mask_set(lock->mask) & lock->mask) { + if ((thread_mask_set(lock->mask) & lock->mask) != 0) { dbg("wlock_acquire: recursed"); lockstate->lockstate = RTLD_LOCK_UNLOCKED; return; From nobody Fri May 2 10:38:53 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 4ZpnTT6gfYz5vW8P; Fri, 02 May 2025 10:38: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 4ZpnTT3SFSz4GxS; Fri, 02 May 2025 10:38:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o10e3p+ulDOWVP8ZgHeaYftqTKK/vpdtuCJlYr11p+w=; b=W3ZkGW+FbvwWP6F4zPc9jN+d75nav2DBaCVyawb4+H3u9/c7xk0Gbs3i1F/APsMUGZrUzZ Q9sm0O5RkRs7UbLLpPR8R1tYrQRfaN4aalK6Q4RoCry3om2I+7fO5Hw9bBkOnNKa5QcmZb VMwUbMqareuS6ZGxSVkcLh/yHH7TubxyFl2I7aTde6DPgUaKjw4wo1mMkoh5pJ4EsOWBBk vBjgEC0TnANY2Q3wPD+WfxO3o3OYJxym+XP/JQQVAvs6dbVEULChcfy0SBSy8qo9OcXT2J Fnagdrh8qLrrUWsgDlHWoQ1libVkKAOhT0ZJ3j6wOnjsZ6Dq8saBoJgGEBOyRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o10e3p+ulDOWVP8ZgHeaYftqTKK/vpdtuCJlYr11p+w=; b=i4+73Coxv+wCu2mbt8XllkYbtERWSbwlCuX+CJ/ZsrbjceuoGGxaCezydo6E2HTFcndSQV 1igNTNG7Luiu/Y4HQusNvryKp+MykUyGZNznNDCrE16R098b0rQSxhSLsrF3IFvjkIiTBB 15xHes+yCmjqetcRhIVTUwjhjvos6wmdgSOg8NtRNn0+4QIiRps+4Y8uJETkesZpIspKcM DRZzLD3p0sfFoZai/J3/EQPKdrDv1QJiUoJSqKtqAHofzi9gQnKapkul5EqquTxcgSJccJ plMRX31XrX7lFEH6zK0dqZFVfpjX1xSfZIgxeaqGQ1dCwRnIu3pK3jpdlS3YKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182333; a=rsa-sha256; cv=none; b=tYCYxERBFgrxMQdViVS5VCEW1WSAqqTE2jY0uG+fEWFXz072/BoIIO7UF8q8C6rQ9K7i39 /e2ViIeQtZ7IuP7rpGu3vf9xWTDzFALBQczziZ1VQB6X73HL22ZBCb6WfJO70oZzV7pKCu rBNUSo4VpgWYghZuMYqZ0pbkApZYM7AbLuce6iPs1yioJyf1wa/CWnlcYK1qicAYhlwoTF DT6aKXUXQ98tMDAcsOU+waoB8wJX2KHs+wFCDfr42CPlLxa/6HauTf+bodNHclPrU1l1YY PMudK62AgoM79YQylqmQHtkzmx8lB8jCtTuUKWjvzfj5+ypTzWG8iV0U4bs7EQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpnTT33cNz18ZR; Fri, 02 May 2025 10:38: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 542Acr6w018585; Fri, 2 May 2025 10:38:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AcrXs018582; Fri, 2 May 2025 10:38:53 GMT (envelope-from git) Date: Fri, 2 May 2025 10:38:53 GMT Message-Id: <202505021038.542AcrXs018582@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: c50c5a47a9d5 - main - snd_hda: Drain callout in hdac_detach() 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: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c50c5a47a9d515a7dbf584c10c7f66e56b29b305 Auto-Submitted: auto-generated The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=c50c5a47a9d515a7dbf584c10c7f66e56b29b305 commit c50c5a47a9d515a7dbf584c10c7f66e56b29b305 Author: Christos Margiolis AuthorDate: 2025-05-02 10:38:41 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:38:41 +0000 snd_hda: Drain callout in hdac_detach() Because we do not drain the hdac callout during detach, hot-unloading can result in a panic if the callback fires after we have freed the resources it uses. pcm0: detached pcm1: detached hdaa0: detached hdacc0: detached Kernel page fault with the following non-sleepable locks held: exclusive sleep mutex hdac0 (HDA driver mutex) r = 0 (0xfffffe000212c820) locked @ /mnt/src/sys/dev/sound/pci/hda/hdac.c:400 [...] db_trace_self_wrapper() at db_trace_self_wrapper+0xa5/frame 0xfffffe0046b04490 kdb_backtrace() at kdb_backtrace+0xc6/frame 0xfffffe0046b045f0 vpanic() at vpanic+0x226/frame 0xfffffe0046b04790 panic() at panic+0xb5/frame 0xfffffe0046b04850 trap_fatal() at trap_fatal+0x65b/frame 0xfffffe0046b04950 trap_pfault() at trap_pfault+0x12b/frame 0xfffffe0046b04a70 trap() at trap+0x54c/frame 0xfffffe0046b04c50 calltrap() at calltrap+0x8/frame 0xfffffe0046b04c50 --- trap 0xc, rip = 0xffffffff8412e7ec, rsp = 0xfffffe0046b04d20, rbp = 0xfffffe0046b04d40 --- hdacc_stream_intr() at hdacc_stream_intr+0x3c/frame 0xfffffe0046b04d40 hdac_intr_handler() at hdac_intr_handler+0x15c/frame 0xfffffe0046b04d90 ithread_loop() at ithread_loop+0x387/frame 0xfffffe0046b04ef0 fork_exit() at fork_exit+0xa3/frame 0xfffffe0046b04f30 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0046b04f30 --- trap 0xc, rip = 0x829cc531a, rsp = 0x82b8b7a88, rbp = 0x82b8b7aa0 --- KDB: enter: panic [ thread pid 12 tid 100211 ] Stopped at kdb_enter+0x34: movq $0,0x1f09af1(%rip) db> Sponsored by: The FreeBSD Foundation MFC after: 1 day Reviewed by: kib, adrian Differential Revision: https://reviews.freebsd.org/D50087 --- sys/dev/sound/pci/hda/hdac.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index a4242d2d1609..602f5df93648 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -1748,8 +1748,10 @@ hdac_detach(device_t dev) return (error); hdac_lock(sc); + callout_stop(&sc->poll_callout); hdac_reset(sc, false); hdac_unlock(sc); + callout_drain(&sc->poll_callout); taskqueue_drain(taskqueue_thread, &sc->unsolq_task); hdac_irq_free(sc); From nobody Fri May 2 13:52:04 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 4ZpsmQ1JK0z5vl1h; Fri, 02 May 2025 13:52:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpsmQ0mdbz3nv8; Fri, 02 May 2025 13:52:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746193926; 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=90CXaIni/vnB+k5zpLJcxgyxE7YssRv7qVrjq8vBeEA=; b=T1Sd6DLwmfTYZw0CrkodqKD7A/ZIzEiQAGGsVEo6QEgnejhd0dPifmdV8moFVJEEWxWMYk CkubDcabBOffyr0Y18Jr9/BP/LeJk0N8ofPGixIbpVxjtCQ4sX8xu2bU2xVib/tB6K3ldE hpp/Rm9W3j0lhpRxaqQPOIHZaSKkN2Uq9bC/XUmyT4SQ+nbFYgObKlrH5/1fjxl1WnE/wD h2HfvVcS3x1Tw/PHfO3JLJLuOP3Sw8pO0G3+mLwcrJPL6iz5w3kFWQHZlWlJPgW5Lrv78e cmVgvtVtCI5vQCw4tMcdp1jnIj+hKsp0kckyeUiwlLluogHajw0CghEI5LqpAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746193926; 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=90CXaIni/vnB+k5zpLJcxgyxE7YssRv7qVrjq8vBeEA=; b=aXSnALpekxsqkMshIS2/s6CPRT4sYplg9enfirUKywNK7QcoZUs/5UiQ4AmCpTD16uorYM 4VeUEobcDT6OMGRzs/3Rn3JL8volyR+dujayrPDNQqDUipV3EJ+3ZQEbaeme5CizPBc0Bq x5rxw0hAf3h5JVdQpfUmxYNHAdXfG11Xi220BBwZA839MTTnlZcTcDk16TsgA6mI9m4zSW RYP8y5BCMkxHDsZNs4kkAKFZ7xc5Bpt4JY8LJymPoIUQBLC/KxEXSV9bdaWEluogkcOrfq U5PE66TnCq4tUqaF60lAu+LAQ4AiWiQ0TpsVEmE8zHBNaI5H9o05I99FJiZbsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746193926; a=rsa-sha256; cv=none; b=h2Oar8bf2J2aKYiRYYp/nsr/eu6rQVu3EEed+vrc8VszMYF/KZ/1jJ2yR1+fHwsE7kZTmJ f2l5wvweZZWVg01u2IYJDULlLwqa+kSYW1QTbhs3NeRnS+e/FmuJW7d3ik29vgYwHdDpoQ Eym9ZbyfMpFDm4PhHDGHRhpKLpvBR0R0wqoLxng7jlST6kTQjQSPXg5CCLiqmNBUQI01Qb 922skKlFUClbA1eJ6EOgV5wUH68m6r4vpMJwUYRWefUIjPQTWcbbGnA/5K25xQkjRcBK6r QyhuYyoHjWRMgld9BA7ZXXChakFe53z1hp8BmG3FIpcrfxbBZYNKLw3KIA0nkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from [IPV6:2601:5c0:4200:b830:c803:9289:c4d8:f7ce] (unknown [IPv6:2601:5c0:4200:b830:c803:9289:c4d8:f7ce]) (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 4ZpsmP5W0fzxnY; Fri, 02 May 2025 13:52:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <9c7b78c8-f4f5-4965-a4ec-a28e7d400df6@FreeBSD.org> Date: Fri, 2 May 2025 09: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: 91506dba7f2e - main - zoneinfo: also install tzdata.zi and version Content-Language: en-US To: Philip Paeps , Ed Maste Cc: Dimitry Andric , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202504010810.5318A96d073963@gitrepo.freebsd.org> <0720709B-2068-46D3-88EA-398D7C1E8FC9@freebsd.org> From: John Baldwin In-Reply-To: <0720709B-2068-46D3-88EA-398D7C1E8FC9@freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/30/25 20:48, Philip Paeps wrote: > On 2025-05-01 00:58:04 (+0800), Ed Maste wrote: >> On Wed, 30 Apr 2025 at 00:58, Philip Paeps wrote: >>> On 2025-04-30 02:44:46 (+0800), Ed Maste wrote: >>>> On Tue, 1 Apr 2025 at 04:10, Philip Paeps >>>> wrote: >>>>> The branch main has been updated by philip: >>>>> >>>>> URL: >>>>> https://cgit.FreeBSD.org/src/commit/?id=91506dba7f2eb147eeb55ec30640bc11755a1e8e >>>>> >>>>> commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e >>>>> Author: Philip Paeps >>>>> AuthorDate: 2025-04-01 08:09:37 +0000 >>>>> Commit: Philip Paeps >>>>> CommitDate: 2025-04-01 08:09:37 +0000 >>>>> >>>>> zoneinfo: also install tzdata.zi and version >>>>> >>>>> Build and install the shrunk version of the time zone database >>>>> required >>>>> by libc++ 19 std::chrono::current_zone (etc). While here, also >>>>> install >>>>> the tzdata 'version' file to align more closely with other >>>>> vendors. >>>>> >>>>> PR: 282377 >>>>> Reviewed by: dim, emaste, imp >>>>> Differential Revision: https://reviews.freebsd.org/D49577 >>>> >>>> Do you plan to MFC this to stable/14 for 14.3 as well? >>> >>> I was not planning to MFC this change. >>> >>> Does libc++ in stable/14 need this support? >> >> I suspect so - std::chrono::tzdb is C++20 and we presumably want it to >> exist/work in stable/14. Dimitry? > > Thanks. I thought that was a 15+ thing. > > If it's expected by the toolchain in stable/14, I'll merge it there too. LLVM 19 is in stable/13 as well. -- John Baldwin From nobody Fri May 2 14:51:32 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 4Zpv512xZfz5vp8k; Fri, 02 May 2025 14:51: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 4Zpv501c5zz3Jgm; Fri, 02 May 2025 14:51:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746197492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TWisWYxJBw+E3SsfBDeATMjSXQfVcfmCms4Teav2hGQ=; b=ZlpasJEasQGGRPVETtgXrGoq1YuKzMmWmciaessqzHx10ZNjfUka1uaSlJnpmhfdBV5jwd 80ZzVMBm2VT13vnwbApItMcgHxEdLxtZHYedPjxOlbIBTmmfxIa0JdFBNafcqltuQgjwal z8ZyUvzO/MEpHKeariNxxkkJ/w5OQeOnSJW2+FME9MYBlg9z4XVdIqZ0BG4sI1h1DeGufz 1audTJb2Lo5eqflhrzNf3K754B3KwdHr+2HvuRfPpy03uN19YRLdVFe642I0krvvpCtb/Y bquux3u2pfevjLMNZz0WjlTGjOUa54ilKlFTvWnxi2oMY8f9TVEUeNrQJq0aHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746197492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TWisWYxJBw+E3SsfBDeATMjSXQfVcfmCms4Teav2hGQ=; b=qkgAQsh6Ex+r2fGBlguo4FtS03neFfYsXgpOQOWgu4f4K/SG7xA5m1sZMdLnfkpdUJhF45 zZRxAlgfERzjIF0Mi1eFE2xTarM4ZpFCB34+RFvn7BOhw5PlS3a2bqbJLdKyOzIIHnIfNZ G6dmE90JUacLapIo9OsO70pXAISqJ0g8Ci3WiQkVLLdG/LIwYwKyi8rbDBUemk98uwGyGn tIZB1OoQ3a4xPg6P1nIxdi/7jg0SxGnrAv41vx5gE6BgI9v7SDaViy2+wAx5yQRoDPq+m3 csNbgBU9oe2KGOvMwgiD3xT5Nx8K8XgkhvKyPzjlieB5766NDXxiFog7sPluBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746197492; a=rsa-sha256; cv=none; b=kR3RmS9biO2HFR69iujQ4Dh9SDkRFXBVA2im8X2EjA7YKoXET6d+kj/O+Bvbv+4US0mEva EizXuOg7vOt0m2mEITbQBwp3t0FGowYpiI/v6ehkZFJCxDGaMti4CFcv1GIuktp2c4ZOTE 5LFH/Qj/SF6ntFk2Y23fR0rfUarCMNCEG96QDUuHYcL73OrEpRQEDlpscLtBQI2xrvEeRI z4RocSoNQWaGmZ0FnKOsc1Mm0r85R0l66CtzwigMe/Iqig2CV5DBMyudXqqb1N7iL6TKTA rMAUdpP7AkZkdJGu48Knm0De/XYkB3cOBjCdlrTQW9QPGzYARaO+4ek6rD9McA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zpv5017HRz1GXh; Fri, 02 May 2025 14:51: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 542EpWVL001272; Fri, 2 May 2025 14:51:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542EpWr1001269; Fri, 2 May 2025 14:51:32 GMT (envelope-from git) Date: Fri, 2 May 2025 14:51:32 GMT Message-Id: <202505021451.542EpWr1001269@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alan Somers Subject: git: 01a1dd321807 - main - Fix the zfsd_fault_001_pos 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: asomers X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 01a1dd321807ba8a3ef3a4bfad52d8aa23130d10 Auto-Submitted: auto-generated The branch main has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=01a1dd321807ba8a3ef3a4bfad52d8aa23130d10 commit 01a1dd321807ba8a3ef3a4bfad52d8aa23130d10 Author: Alan Somers AuthorDate: 2025-05-02 14:48:58 +0000 Commit: Alan Somers CommitDate: 2025-05-02 14:48:58 +0000 Fix the zfsd_fault_001_pos test Due to a regression in ZFS, a pool's status may not change to DEGRADED promptly after a vdev becomes faulted. This test is primarily concerned with vdev status, not pool status, so work around the bug by doing a "zpool reopen". Otherwise the test would time out waiting for a status change that never came. MFC to stable/14 only. https://github.com/openzfs/zfs/issues/16245 MFC after: 2 weeks Sponsored by: ConnectWise --- tests/sys/cddl/zfs/tests/zfsd/zfsd_fault_001_pos.ksh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/sys/cddl/zfs/tests/zfsd/zfsd_fault_001_pos.ksh b/tests/sys/cddl/zfs/tests/zfsd/zfsd_fault_001_pos.ksh index 3456a328e7f9..df704e183fb0 100644 --- a/tests/sys/cddl/zfs/tests/zfsd/zfsd_fault_001_pos.ksh +++ b/tests/sys/cddl/zfs/tests/zfsd/zfsd_fault_001_pos.ksh @@ -78,6 +78,10 @@ for type in "raidz" "mirror"; do $DD if=/dev/zero bs=128k count=1 >> \ /$TESTPOOL/$TESTFS/$TESTFILE 2> /dev/null $FSYNC /$TESTPOOL/$TESTFS/$TESTFILE + # Due to a bug outside of zfsd, it may be necessary to reopen + # the pool before it will become DEGRADED. + # https://github.com/openzfs/zfs/issues/16245 + $ZPOOL reopen $TESTPOOL # Check to see if the pool is faulted yet $ZPOOL status $TESTPOOL | grep -q 'state: DEGRADED' if [ $? == 0 ] From nobody Fri May 2 15:45:01 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 4ZpwGk03P0z5td68; Fri, 02 May 2025 15:45: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 4ZpwGj6YcNz3lKs; Fri, 02 May 2025 15: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=1746200701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4GdYMwetp/AXffa6Rzg35XvMzFrCJexyqcImWYd3hSk=; b=le8KV7m92cvqjOWFOtKO1uEHM82dLWErfknaBZmD5byo5zLeCEb2nWOEXt/s94vlq/0lZU KCuDKxbEgyfa5Ri9Y6UdTVyuKc3yAVY86RF+uLhyFsbwfFufvwEDpdc86FI6ZSMPNSO7Hh BfXiKixmpg89aaDWqW+MoH1K/O0Al3StHTi+BOqB9gKAKsxni2kMcbPRaLq4/4xeBTBV0L rRL0itcSVpGDuz9NI00BpIqVJGAQ2GIXozti4ce4daA768cqS1/8X9Zb0i2TvMDNdSahbd N/M2L8iaZulTbysy+ZSZWp3NCCzBquIvUE2XOuVm1r4E15j3mH09xNXxqyU1YA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4GdYMwetp/AXffa6Rzg35XvMzFrCJexyqcImWYd3hSk=; b=VQBlLo0js/gJ5UIbUQwrzgov2pH+/jzMRoCopKLgFYPw/Gi66qY28vlpKLK7TmqpfFvjMI ib5IEKsX9EL1EF8K8M0KomhhVayUBctk7yHV1uEYcWmgclaQCkTiCLb9hG5BXWiMFxZTIw PFrXjzF6e6kjdOxFnsRC8jk2kDmxrUgfKBzBYTl9KkeQnR7nGmbwoTvk4pZubK8gok3Dax jCHWXmBrEeIukBH2e9s0ondBPFm8Mp30Oua+hUnsQmD+IY+iub5gb3dWsPZmIZYZZc+8qI L9X+EIIlGAr04TO7SI0hVrORfjhn2zUPNLoGV4sol8tYx68Wabd95t8G5qgUtw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746200701; a=rsa-sha256; cv=none; b=ecFWCZFxvny//4fKElhpQjNs60DfoG3fCQZ0PsH//6B90Ea7K8np9T8eCgjfcfMwTCtDFt wWJaW3A75PmSpGJ5HDRi9WHR0bPgLNfnoXDcYH3gKtDCvKDdFPg/NXmkNVXGmtHkqOaHa7 WCVf6ZZ2XhZnT1CkwgcmTzloBYEI1+IaczqLiIJOPce0X/8gAFwI0SPeqVg73gpT+PRPhu DEhzsH4nc6Ls/cX/bxfPOjuhg1npY92kVPmUrt8sqYIV+0UiN+fZ8KxDHgB3QJUn0dcpdl X4pSAngSKsRHzHC8ZhYusjPTaoBpYdgTFKgbdHOCoSqSn6ESmc5q7O3ttPzbxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpwGj5sxYz1JCX; Fri, 02 May 2025 15: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 542Fj1La097550; Fri, 2 May 2025 15: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 542Fj1Q4097547; Fri, 2 May 2025 15:45:01 GMT (envelope-from git) Date: Fri, 2 May 2025 15:45:01 GMT Message-Id: <202505021545.542Fj1Q4097547@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: d90e3482b638 - main - subr_devmap: Use the arm L1_S macro 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: d90e3482b63859673a29854ebddabcd8b627162b Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d90e3482b63859673a29854ebddabcd8b627162b commit d90e3482b63859673a29854ebddabcd8b627162b Author: Andrew Turner AuthorDate: 2025-05-02 15:33:13 +0000 Commit: Andrew Turner CommitDate: 2025-05-02 15:39:04 +0000 subr_devmap: Use the arm L1_S macro These check if we can should use a superpage to create the static map. As it is arm specific we can use an arm-specific macro here. Reviewed by: mhorne Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D50013 --- sys/kern/subr_devmap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_devmap.c b/sys/kern/subr_devmap.c index 3ab20a2a4d43..1592db1790d5 100644 --- a/sys/kern/subr_devmap.c +++ b/sys/kern/subr_devmap.c @@ -37,6 +37,10 @@ #include #include +#ifdef __arm__ +#include +#endif + static const struct devmap_entry *devmap_table; static boolean_t devmap_bootstrap_done = false; @@ -139,7 +143,7 @@ devmap_add_entry(vm_paddr_t pa, vm_size_t sz) * also align the virtual address to the next-lower 1MB boundary so that * we end with a nice efficient section mapping. */ - if ((pa & 0x000fffff) == 0 && (sz & 0x000fffff) == 0) { + if ((pa & L1_S_OFFSET) == 0 && (sz & L1_S_OFFSET) == 0) { akva_devmap_vaddr = trunc_1mpage(akva_devmap_vaddr - sz); } else #endif From nobody Fri May 2 15:45:02 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 4ZpwGl03pfz5tcsr; Fri, 02 May 2025 15:45: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 4ZpwGk6VSWz3lN8; Fri, 02 May 2025 15:45:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w7SnYcGcjrdb/VukbJsPE3RTUSo75ME4v8FoqSrMlSE=; b=iEoZa4QId1l9AcnUh2VT9qT+3djUA6Aqbs8OZqMkF6/m9GXymtThBcw6GHFwTxsCpe2dWs dqt/JI3gDrNcg4t+iRa8Ge+Y4UemxyKrIwNLMx/ljiWyDUUWuPK1pCTXJFJmB8S0SPfNvO HUSPWQmLcvaihWw6UrQl3kM2jqIQVpxWY7p06pU0eSqePNA9GUe/xTm3sRtFVyhXoNyFE9 63RvKy4jYgQ3weNz6FzeJvR2wp8z0LE584ZipBgP1rOZr08bxs1Kw/vpOzXNJ0u+09M9cx 5nNDpsQsYWpgUF40H11N2d+6Lo2sd3VQsPwEWnY97bKnMplXto9Lxg+DBsDRhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w7SnYcGcjrdb/VukbJsPE3RTUSo75ME4v8FoqSrMlSE=; b=K47bEWzPHCseilzDsm2Uifv36TPLD3LqMPYZKZn2UtkEn4PDnuuASGyRuxn9d/ZuIyAI9l 0dN5lYX6x3coznATSdqN7CA7C6i++Wxr6DCZfEOdLEJi/nn8JrHljNm+rUIgS8jT+D/XTb M1c8TYLFXmIEf+I4siiO+Q+2+Hm8XupkXJLjIV+dX0QdINOk7nBUiMeMykXe939gbsPoas TLYeDVr/XMqfhVgWGHytAp/yYISH4C7Yzf9csllz6/nSm3iEw6WQMC/EZqN77zfv9poah3 I4iFgrm5m+qwETjKppIQJ2TnK4pWEkD7AMXLsn+wy9nS4tYC9rsMFumkcP4VsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746200702; a=rsa-sha256; cv=none; b=a8gWZE4XNasP2uVxDEXRa87SHEn91zGMUnrwwCVZaHIX2Jr4hQmPRqTO6GlFM1KxXY8yqL VvBzfFM/tFRL8aulJOSW+EQsgGvaLpckqJVTHPLcoxbY2GYVjNDm2p+bB8i4ljmCAW0Ti+ UgOTxAnAYMqvHXFNEQ03A/5z1fjLS6+HNjchRLbwcC2DnwoEZ9FeRaOkkeKDdVImHh7JU9 ayKGx2AfmRWn2zs/0BWdwr94jkEJ/YTm1iuH4CLiI7zjlc18P61ffa9EFbAXKS+KG7ZrTE /hE/W2UvSmrDwJoP1kcCs3Mbvyd1jNrKFLv3Wc7O+FjUnXZtsf2BBaJ84sxhjw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpwGk60KMz1J27; Fri, 02 May 2025 15:45: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 542Fj2PV097588; Fri, 2 May 2025 15:45:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542Fj2Pc097585; Fri, 2 May 2025 15:45:02 GMT (envelope-from git) Date: Fri, 2 May 2025 15:45:02 GMT Message-Id: <202505021545.542Fj2Pc097585@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: 3dae01840d99 - main - arm/freescale: Stop using devmap_ptov 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: 3dae01840d99bab646d39b9487adca44ab96ba22 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=3dae01840d99bab646d39b9487adca44ab96ba22 commit 3dae01840d99bab646d39b9487adca44ab96ba22 Author: Andrew Turner AuthorDate: 2025-05-02 15:33:38 +0000 Commit: Andrew Turner CommitDate: 2025-05-02 15:39:04 +0000 arm/freescale: Stop using devmap_ptov Call pmap_mapdev directly. If it can allocate this memory using the static device map via devmap_ptov it will so there is no need to call it directly. Reviewed by: mhorne Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D50014 --- sys/arm/freescale/imx/imx6_machdep.c | 4 +++- sys/arm/freescale/imx/imx_machdep.c | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/arm/freescale/imx/imx6_machdep.c b/sys/arm/freescale/imx/imx6_machdep.c index 9cfae5b9c802..cc23b33f4f92 100644 --- a/sys/arm/freescale/imx/imx6_machdep.c +++ b/sys/arm/freescale/imx/imx6_machdep.c @@ -35,6 +35,7 @@ #include #include +#include #include #include @@ -310,12 +311,13 @@ imx_soc_type(void) IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT; /*printf("digprog = 0x%08x\n", digprog);*/ if (hwsoc == HWSOC_MX6DL) { - pcr = devmap_ptov(SCU_CONFIG_PHYSADDR, 4); + pcr = pmap_mapdev(SCU_CONFIG_PHYSADDR, 4); if (pcr != NULL) { /*printf("scu config = 0x%08x\n", *pcr);*/ if ((*pcr & 0x03) == 0) { hwsoc = HWSOC_MX6SOLO; } + pmap_unmapdev(pcr, 4); } } } diff --git a/sys/arm/freescale/imx/imx_machdep.c b/sys/arm/freescale/imx/imx_machdep.c index e5d3dc4811b9..b3f347cebc78 100644 --- a/sys/arm/freescale/imx/imx_machdep.c +++ b/sys/arm/freescale/imx/imx_machdep.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include @@ -66,7 +65,7 @@ imx_wdog_cpu_reset(vm_offset_t wdcr_physaddr) { volatile uint16_t cr, *pcr; - if ((pcr = devmap_ptov(wdcr_physaddr, sizeof(*pcr))) == NULL) { + if ((pcr = pmap_mapdev(wdcr_physaddr, sizeof(*pcr))) == NULL) { printf("imx_wdog_cpu_reset(): " "cannot find control register... locking up now."); for (;;) @@ -116,7 +115,7 @@ imx_wdog_init_last_reset(vm_offset_t wdsr_phys) { volatile uint16_t * psr; - if ((psr = devmap_ptov(wdsr_phys, sizeof(*psr))) == NULL) + if ((psr = pmap_mapdev(wdsr_phys, sizeof(*psr))) == NULL) return; last_reset_status = *psr; if (last_reset_status & WDOG_RSR_SFTW) { @@ -126,4 +125,5 @@ imx_wdog_init_last_reset(vm_offset_t wdsr_phys) } else if (last_reset_status & WDOG_RSR_POR) { sysctl___hw_imx_last_reset_reason.oid_arg1 = "PowerOnReset"; } + pmap_unmapdev((void *)(uintptr_t)psr, sizeof(*psr)); } From nobody Fri May 2 15:45:03 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 4ZpwGm49mtz5td00; Fri, 02 May 2025 15:45: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 4ZpwGm1KN0z3lQS; Fri, 02 May 2025 15:45:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200704; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k0eZ8WzNdUOqTM41qAhDbsMql8SPIX43Ta8Pfk0LPmk=; b=AcErVzVKbNCV9FRYPyWmIJuwzSUVgYPWkg/9GJuO4lfabrJkicb6PVlckVY/Lg7abRNRUy UxKC/Z1U9z/aPnoAPm8/ZiT3G6SBP8s0krMs2GkcoirVMAKmv6+ZqiRoKu1YT8y75zOyDt xplSCqLlsOr2KFnhdyt0E8658I/FMiaPZgzUIgzOakPaA9oFTyf5fCHhomr3PJZG9D1t7f wcYC1BzNS6bEYllzEwi6yMa2BjqvD+MLP8P1m+JvxzLgiEj7HE6QeHJCrVl50c2npYDAW/ GJ0Z21OgoX662IMV6kv+kM+gkGiPskstsu3LlR1l0Nc3gPFBmvAsWiDo6/jvXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200704; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k0eZ8WzNdUOqTM41qAhDbsMql8SPIX43Ta8Pfk0LPmk=; b=qGx2UPuphZhZo/9FQXodNhs2P25MNhyDx5bIMwILt1sIPIcnpXvk4/wbl39hzE8KJZADVW 7pSkozvo6w1Tts5XasBERCeysSlPHCOg28VbcFd3NXMH6MWtFF57Y6PL2qGV5r5VYI/wT1 W8ujqgIaRqcAxwlIUNSZSVavyXz2jn22/X2sEksU+HArTeTPSlaqyGKXSwZocbQJDNVaxl MIdFszfW+vYLIGh8v90dKljd6ZQr2KAUxj2pLUeVETZ5HAkOCbhQaz9sC53KzI80pfgxqa OkJTQlrdLid/8dgkY/nKDkW83OUexqJi0XuhKOW0OybNTTwSrrD2wY9q1bjoJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746200704; a=rsa-sha256; cv=none; b=vodnjUfefgcq2f6Blh7cWg3NCFM4TFy2umlG86XclzJZfM87YR3mNmcpHJu1wO8OpYoyAP NERYm9F//o8HQg1Y2EvNAWcx9CS6OzZBU7tEt+ojM1juS4t5kGkU94GbMurFimKDZFjHJ6 Ga6+CrLUvQPcF5i5HqqhLRb1FUcPQZFWGqLDOyjPRZCL7OF78Joyg+3pyVp+FuQ++ID2Fq x3olymEf+BrJXYRPLTL7gnMvrLO4WV32Bj8gCJVfjh/Sjj4yLmDkt/kwp1RAo5Y5TGzdEi j9eS8VMXbjrzC6ompt+oujB/Iwrp4oxXHbc4RMusZJH/s/s6Tgb3XdR21HFcvQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpwGl6zPjz1J28; Fri, 02 May 2025 15:45: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 542Fj39H097623; Fri, 2 May 2025 15:45:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542Fj34W097620; Fri, 2 May 2025 15:45:03 GMT (envelope-from git) Date: Fri, 2 May 2025 15:45:03 GMT Message-Id: <202505021545.542Fj34W097620@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: 789aed31dc84 - main - subr_devmap: Make devmap_ptov static 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: 789aed31dc840765416e88066c027e8f56c292a3 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=789aed31dc840765416e88066c027e8f56c292a3 commit 789aed31dc840765416e88066c027e8f56c292a3 Author: Andrew Turner AuthorDate: 2025-05-02 15:34:17 +0000 Commit: Andrew Turner CommitDate: 2025-05-02 15:39:04 +0000 subr_devmap: Make devmap_ptov static The devmap_ptov and devmap_vtop functions are only used in this file. Reviewed by: mhorne Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D50015 --- sys/kern/subr_devmap.c | 6 ++++-- sys/sys/devmap.h | 14 -------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/sys/kern/subr_devmap.c b/sys/kern/subr_devmap.c index 1592db1790d5..79f3c75269ca 100644 --- a/sys/kern/subr_devmap.c +++ b/sys/kern/subr_devmap.c @@ -41,6 +41,8 @@ #include #endif +#define DEVMAP_PADDR_NOTFOUND ((vm_paddr_t)(-1)) + static const struct devmap_entry *devmap_table; static boolean_t devmap_bootstrap_done = false; @@ -198,7 +200,7 @@ devmap_bootstrap(void) * Look up the given physical address in the static mapping data and return the * corresponding virtual address, or NULL if not found. */ -void * +static void * devmap_ptov(vm_paddr_t pa, vm_size_t size) { const struct devmap_entry *pd; @@ -218,7 +220,7 @@ devmap_ptov(vm_paddr_t pa, vm_size_t size) * Look up the given virtual address in the static mapping data and return the * corresponding physical address, or DEVMAP_PADDR_NOTFOUND if not found. */ -vm_paddr_t +static vm_paddr_t devmap_vtop(void * vpva, vm_size_t size) { const struct devmap_entry *pd; diff --git a/sys/sys/devmap.h b/sys/sys/devmap.h index 914bec31af4c..69e696a20fc9 100644 --- a/sys/sys/devmap.h +++ b/sys/sys/devmap.h @@ -76,20 +76,6 @@ void devmap_register_table(const struct devmap_entry * _table); */ void devmap_bootstrap(void); -/* - * Translate between virtual and physical addresses within a region that is - * static-mapped by the devmap code. If the given address range isn't - * static-mapped, then ptov returns NULL and vtop returns DEVMAP_PADDR_NOTFOUND. - * The latter implies that you can't vtop just the last byte of physical address - * space. This is not as limiting as it might sound, because even if a device - * occupies the end of the physical address space, you're only prevented from - * doing vtop for that single byte. If you vtop a size bigger than 1 it works. - */ -#define DEVMAP_PADDR_NOTFOUND ((vm_paddr_t)(-1)) - -void * devmap_ptov(vm_paddr_t _pa, vm_size_t _sz); -vm_paddr_t devmap_vtop(void * _va, vm_size_t _sz); - /* Print the static mapping table; used for bootverbose output. */ void devmap_print_table(void); From nobody Fri May 2 15:45:05 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 4ZpwGp1B5pz5td03; Fri, 02 May 2025 15:45:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpwGn2j0mz3lLC; Fri, 02 May 2025 15:45:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SeWQPjr3a7T0bQNI9ZnCCVXJwKG88FTWazlr9sqqXzI=; b=mVC/1Fvwl+jzU4p/4il3Fr4Oeuhw7rxHBoIU1cVvuEv0e0Xtc5RLXxmcOommZcL0RgugsL 4gK2bek3aEAjPh+Qsp/O7s3gcSgCXN05PWO26jpAYo1G/iJdngXcYOzG5+NsFGIR27Khfd N4o/dSu3xk3nxKyp5o8EO1e7F8urgf2oo/tZkiy841wPXPF+mc8kRC7Q4dKqp9weA8d3jR RZJx4MoUf2NBQRWPLH0QGddD5PaQdu3qnAPWkqebDGWNp4xW14xZlGui2D7Utl2mNkoWOx 4xDup22cf7VTOVyIlXjR6T9/7Ucqe70X/eefVhHRh7xUBi+IRdCNYGCE46f/PQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SeWQPjr3a7T0bQNI9ZnCCVXJwKG88FTWazlr9sqqXzI=; b=idDQhVjobzdKZesVyjkJopHwxckFuWU15ylinAeATKfxnJFuG//ELVoUYMMJ3I0xp+gWiI A6AtRlHn7li1NpYDeAoiqnCxVN3cWQsE7UPtynYKZZJmmI1nXFij8g6XtdLXn6yH7cc8Vl T0H4BasJdAMJWwuQnlyKqrP6R6tlBMOIXrAfF0G/T3c6kWxvrdNIimKwwc8E+r4TxCfZLM bVLzWbdT1UvcAcV6SR3Kxw+YzJKNokUzLED275ATtPlhOA7mfEWBeLsUFZVrlagXDbyQiE ZaWeb011ddxOYUmG5xU6rUAp1cDzHQ0W3EzAoegm2pAUFroNalZQkzHmgtWjPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746200705; a=rsa-sha256; cv=none; b=Bg7paDcqliSKNktO4AEUAnlbriv7rvUHxff08t7+d6AEZRr6zSVucGUALVbiQ6QCmUICfG Nh8TZEYRg/9WNGMJSi28UnRZNJk/LCnKQ4omU5Ly2fDO3tE25oitcAP6lxqB0ifK1jZr1c KtO1SOz1eFJK3WuIMGL4+NSqpoXojRruB1CP0sEmsEmlaV3gvrNzMEXnEg5Zk+00yxMHlW tOmKvb/+CcRofPzG20Ney4rOiYpVBzMANbEvNqdDarfKepFCZVmxnrmfncxzSQWeU4JcUF VwoJdsputIS2r8aHIZhZfglWCwwJcQkjC+AAMNfi875vTeBEhj5R/+Y1xYF2kg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpwGn0qbpz1J29; Fri, 02 May 2025 15:45: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 542Fj5Fc097656; Fri, 2 May 2025 15:45:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542Fj59a097653; Fri, 2 May 2025 15:45:05 GMT (envelope-from git) Date: Fri, 2 May 2025 15:45:05 GMT Message-Id: <202505021545.542Fj59a097653@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: a5d9ecfa8e99 - main - subr_devmap: Reduce the use of the static devmap 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: a5d9ecfa8e99961c4282fecc8315dbd12a8a11b3 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=a5d9ecfa8e99961c4282fecc8315dbd12a8a11b3 commit a5d9ecfa8e99961c4282fecc8315dbd12a8a11b3 Author: Andrew Turner AuthorDate: 2025-05-02 15:34:35 +0000 Commit: Andrew Turner CommitDate: 2025-05-02 15:39:04 +0000 subr_devmap: Reduce the use of the static devmap We only create the static devmap on arm. Stop building this code on other architectures. Reviewed by: mhorne, imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D50016 --- sys/arm/include/param.h | 2 ++ sys/arm64/arm64/machdep.c | 3 --- sys/kern/subr_devmap.c | 21 +++++++++++++-------- sys/riscv/riscv/machdep.c | 6 ------ sys/sys/devmap.h | 2 ++ 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/sys/arm/include/param.h b/sys/arm/include/param.h index 14cd32631a5f..67f49ec14a99 100644 --- a/sys/arm/include/param.h +++ b/sys/arm/include/param.h @@ -68,6 +68,8 @@ #define MAXMEMDOM 1 #endif +#define __HAVE_STATIC_DEVMAP + #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) /* diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 9c7d7892aa10..7cacc77173a4 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -38,7 +38,6 @@ #include #include #include -#include #include #include #include @@ -852,8 +851,6 @@ initarm(struct arm64_bootparams *abp) physmem_init_kernel_globals(); - devmap_bootstrap(); - valid = bus_probe(); cninit(); diff --git a/sys/kern/subr_devmap.c b/sys/kern/subr_devmap.c index 79f3c75269ca..609c9b142312 100644 --- a/sys/kern/subr_devmap.c +++ b/sys/kern/subr_devmap.c @@ -41,6 +41,7 @@ #include #endif +#ifdef __HAVE_STATIC_DEVMAP #define DEVMAP_PADDR_NOTFOUND ((vm_paddr_t)(-1)) static const struct devmap_entry *devmap_table; @@ -55,12 +56,14 @@ static boolean_t devmap_bootstrap_done = false; #define AKVA_DEVMAP_MAX_ENTRIES 32 static struct devmap_entry akva_devmap_entries[AKVA_DEVMAP_MAX_ENTRIES]; static u_int akva_devmap_idx; +#endif static vm_offset_t akva_devmap_vaddr = DEVMAP_MAX_VADDR; #if defined(__aarch64__) || defined(__riscv) extern int early_boot; #endif +#ifdef __HAVE_STATIC_DEVMAP /* * Print the contents of the static mapping table using the provided printf-like * output function (which will be either printf or db_printf). @@ -139,7 +142,6 @@ devmap_add_entry(vm_paddr_t pa, vm_size_t sz) devmap_register_table(akva_devmap_entries); /* Allocate virtual address space from the top of kva downwards. */ -#ifdef __arm__ /* * If the range being mapped is aligned and sized to 1MB boundaries then * also align the virtual address to the next-lower 1MB boundary so that @@ -147,9 +149,7 @@ devmap_add_entry(vm_paddr_t pa, vm_size_t sz) */ if ((pa & L1_S_OFFSET) == 0 && (sz & L1_S_OFFSET) == 0) { akva_devmap_vaddr = trunc_1mpage(akva_devmap_vaddr - sz); - } else -#endif - { + } else { akva_devmap_vaddr = trunc_page(akva_devmap_vaddr - sz); } m = &akva_devmap_entries[akva_devmap_idx++]; @@ -187,12 +187,8 @@ devmap_bootstrap(void) return; for (pd = devmap_table; pd->pd_size != 0; ++pd) { -#if defined(__arm__) pmap_preboot_map_attr(pd->pd_pa, pd->pd_va, pd->pd_size, VM_PROT_READ | VM_PROT_WRITE, VM_MEMATTR_DEVICE); -#elif defined(__aarch64__) || defined(__riscv) - pmap_kenter_device(pd->pd_va, pd->pd_size, pd->pd_pa); -#endif } } @@ -237,6 +233,7 @@ devmap_vtop(void * vpva, vm_size_t size) return (DEVMAP_PADDR_NOTFOUND); } +#endif /* * Map a set of physical memory pages into the kernel virtual address space. @@ -253,11 +250,13 @@ void * pmap_mapdev(vm_paddr_t pa, vm_size_t size) { vm_offset_t va, offset; +#ifdef __HAVE_STATIC_DEVMAP void * rva; /* First look in the static mapping table. */ if ((rva = devmap_ptov(pa, size)) != NULL) return (rva); +#endif offset = pa & PAGE_MASK; pa = trunc_page(pa); @@ -292,11 +291,13 @@ void * pmap_mapdev_attr(vm_paddr_t pa, vm_size_t size, vm_memattr_t ma) { vm_offset_t va, offset; +#ifdef __HAVE_STATIC_DEVMAP void * rva; /* First look in the static mapping table. */ if ((rva = devmap_ptov(pa, size)) != NULL) return (rva); +#endif offset = pa & PAGE_MASK; pa = trunc_page(pa); @@ -333,9 +334,11 @@ pmap_unmapdev(void *p, vm_size_t size) { vm_offset_t offset, va; +#ifdef __HAVE_STATIC_DEVMAP /* Nothing to do if we find the mapping in the static table. */ if (devmap_vtop(p, size) != DEVMAP_PADDR_NOTFOUND) return; +#endif va = (vm_offset_t)p; offset = va & PAGE_MASK; @@ -347,6 +350,7 @@ pmap_unmapdev(void *p, vm_size_t size) } #ifdef DDB +#ifdef __HAVE_STATIC_DEVMAP #include DB_SHOW_COMMAND_FLAGS(devmap, db_show_devmap, DB_CMD_MEMSAFE) @@ -354,4 +358,5 @@ DB_SHOW_COMMAND_FLAGS(devmap, db_show_devmap, DB_CMD_MEMSAFE) devmap_dump_table(db_printf); } +#endif #endif /* DDB */ diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index f253bc9a853b..235cc651b87e 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -44,7 +44,6 @@ #include #include #include -#include #include #include #include @@ -157,8 +156,6 @@ cpu_startup(void *dummy) printf("avail memory = %ju (%ju MB)\n", ptoa((uintmax_t)vm_free_count()), ptoa((uintmax_t)vm_free_count()) / (1024 * 1024)); - if (bootverbose) - devmap_print_table(); bufinit(); vm_pager_bufferinit(); @@ -636,9 +633,6 @@ initriscv(struct riscv_bootparams *rvbp) physmem_init_kernel_globals(); - /* Establish static device mappings */ - devmap_bootstrap(); - cninit(); /* diff --git a/sys/sys/devmap.h b/sys/sys/devmap.h index 69e696a20fc9..4e74c2212059 100644 --- a/sys/sys/devmap.h +++ b/sys/sys/devmap.h @@ -33,6 +33,7 @@ #error "no user-serviceable parts inside" #endif +#ifdef __HAVE_STATIC_DEVMAP /* * This structure is used by MD code to describe static mappings of devices * which are established as part of bringing up the MMU early in the boot. @@ -78,5 +79,6 @@ void devmap_bootstrap(void); /* Print the static mapping table; used for bootverbose output. */ void devmap_print_table(void); +#endif #endif /* !_SYS_DEVMAP_H_ */ From nobody Fri May 2 15:45:07 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 4ZpwGq5DCVz5tdJM; Fri, 02 May 2025 15:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpwGq3Jkxz3lWL; Fri, 02 May 2025 15:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ht2U5QFx0jcotrp4CYk1/b0Yjxzi//4v1hsrIs44c3c=; b=Ry6LzcZ5ptNTytmOrHIrKohjJ2nm0zIz3mMof8c5H8IuIbtCAxCjbK1Z7IR8a9pY6uNX8y pBjM3nB6w+riiHLe1pIPa6e/UvVHYhh1iNHGp12mtiumOdbB9QaVjfcBYE6X5NXflNCIgM GzEPmlyq5+AkpCUzMWOyCcCizKJCzrZapyQqq9ZHOjrGcrly4I0CRcfk3TlxbfXmxefbq4 Ubd8u2SuZdev7v/ErRqg6/lyhqtt4qwjfE6Q1aba+Wqs92vxuvH40llyIiOo0U475LAfNV hnenEO0/ZJdrqZalLNMydVbmiTdW7ivFwQPfwCeemZKv/MYz4RoWTTDisg6zxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ht2U5QFx0jcotrp4CYk1/b0Yjxzi//4v1hsrIs44c3c=; b=Kt0NPltw2jKJ9hCFtK3QKWw9X8cjP985SGTbZEEPMaeYNHxST+uhsBCwB5jAhw+7jKoUpy 5E6u1R3Wmqwq2bK9T3iAUl7gTtLo4GeRjoS0fUSJIrz4lEWpso4WpRRVyxsvP+oLs2oN8Q 8zRKb6xsvSghdG0f+ghQ0j0wl4p8pQU+uIXeFy8LTRrat6bJwCl6MdNjJhDP9EIRoZ2ofT eLKisjCndALynxgjIGT1nGrHvx0L3McRHx319ggU9yn63B0/h2dzrHYDt6o7hXg894Yosp hk9Ol9HE9BD7RSiJgeshIhQFO1UfPhUYvcaoGpWZqDgdXtfpE7SpjQpbHpI87A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746200707; a=rsa-sha256; cv=none; b=My5/bQRTDx8CG0BOVfv5ewbedyzPq2ADnFjv7/CUMOt+5Pum/GaW1hZ33NfLXp53viis4U vNn+MB9K8+2+sM98Oz+dtNkuLVZurI2l+Yok2zA/DSER9DO4/i0Uvm5QPxf+HXgMiwqkUq GN0X7V7fKzXiH6oT7mFnvfONg//hfGsYkMuo37g/Lbs3pziuDoeybQC3Wvkaxud1ttM3lX fTvc4M16J0tyc+ZNZR6uleasLdjl1AXOxtPYAqJ8yVzBg/+jx3F0hZ0gIRWJYToTUdvQWX HKlO3owOj3xDaxbXFPcNP4uyzt1yjEz/TBo/3Zxe2vTBbpPFc5Hojq9reD0NiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpwGq2tFGz1J2B; Fri, 02 May 2025 15:45: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 542Fj7Bh097728; Fri, 2 May 2025 15:45:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542Fj7FZ097725; Fri, 2 May 2025 15:45:07 GMT (envelope-from git) Date: Fri, 2 May 2025 15:45:07 GMT Message-Id: <202505021545.542Fj7FZ097725@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: 9ea78ef1d6f9 - main - arm64: Use the DMAP region in pmap_mapbios 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: 9ea78ef1d6f9785411963a897668cb2eeedd4107 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=9ea78ef1d6f9785411963a897668cb2eeedd4107 commit 9ea78ef1d6f9785411963a897668cb2eeedd4107 Author: Andrew Turner AuthorDate: 2025-05-02 15:36:35 +0000 Commit: Andrew Turner CommitDate: 2025-05-02 15:39:04 +0000 arm64: Use the DMAP region in pmap_mapbios As pmap_mapbios is used to map a physical address with a default memory attribute we can try to use the DMAP region. For now check if all pages are mapped, however it is expected this check can be removed later after testing on more hardware. Reviewed by: alc, markj, jhb (earlier version) Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42732 --- sys/arm64/arm64/pmap.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index f4d6b1cfcb56..625caf6ecd7e 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -2110,6 +2110,56 @@ pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) return (m); } +/* + * Returns true if the entire kernel virtual address range is mapped + */ +static bool +pmap_kmapped_range(vm_offset_t sva, vm_size_t size) +{ + pt_entry_t *pte, tpte; + vm_offset_t eva; + + KASSERT(sva >= VM_MIN_KERNEL_ADDRESS, + ("%s: Invalid virtual address: %lx", __func__, sva)); + MPASS(size != 0); + eva = sva + size - 1; + KASSERT(eva > sva, ("%s: Size too large: sva %lx, size %lx", __func__, + sva, size)); + + while (sva <= eva) { + pte = pmap_l1(kernel_pmap, sva); + if (pte == NULL) + return (false); + tpte = pmap_load(pte); + if (tpte == 0) + return (false); + if ((tpte & ATTR_DESCR_TYPE_MASK) == ATTR_DESCR_TYPE_BLOCK) { + sva = (sva & ~L1_OFFSET) + L1_SIZE; + continue; + } + + pte = pmap_l1_to_l2(&tpte, sva); + tpte = pmap_load(pte); + if (tpte == 0) + return (false); + if ((tpte & ATTR_DESCR_TYPE_MASK) == ATTR_DESCR_TYPE_BLOCK) { + sva = (sva & ~L2_OFFSET) + L2_SIZE; + continue; + } + pte = pmap_l2_to_l3(&tpte, sva); + tpte = pmap_load(pte); + if (tpte == 0) + return (false); + MPASS((tpte & ATTR_DESCR_TYPE_MASK) == ATTR_DESCR_TYPE_PAGE); + if ((tpte & ATTR_CONTIGUOUS) == ATTR_CONTIGUOUS) + sva = (sva & ~L3C_OFFSET) + L3C_SIZE; + else + sva = (sva & ~L3_OFFSET) + L3_SIZE; + } + + return (true); +} + /* * Walks the page tables to translate a kernel virtual address to a * physical address. Returns true if the kva is valid and stores the @@ -7786,6 +7836,11 @@ pmap_mapbios(vm_paddr_t pa, vm_size_t size) pt_entry_t *l2; int i, lvl, l2_blocks, free_l2_count, start_idx; + /* Use the DMAP region if we can */ + if (PHYS_IN_DMAP(pa) && PHYS_IN_DMAP(pa + size - 1) && + pmap_kmapped_range(PHYS_TO_DMAP(pa), size)) + return ((void *)PHYS_TO_DMAP(pa)); + if (!vm_initialized) { /* * No L3 ptables so map entire L2 blocks where start VA is: @@ -7901,10 +7956,25 @@ pmap_unmapbios(void *p, vm_size_t size) vm_offset_t offset, va, va_trunc; pd_entry_t *pde; pt_entry_t *l2; - int i, lvl, l2_blocks, block; + int error __diagused, i, lvl, l2_blocks, block; bool preinit_map; va = (vm_offset_t)p; + if (VIRT_IN_DMAP(va)) { + KASSERT(VIRT_IN_DMAP(va + size - 1), + ("%s: End address not in DMAP region: %lx", __func__, + va + size - 1)); + /* Ensure the attributes are as expected for the DMAP region */ + PMAP_LOCK(kernel_pmap); + error = pmap_change_props_locked(va, size, + PROT_READ | PROT_WRITE, VM_MEMATTR_DEFAULT, false); + PMAP_UNLOCK(kernel_pmap); + KASSERT(error == 0, ("%s: Failed to reset DMAP attributes: %d", + __func__, error)); + + return; + } + l2_blocks = (roundup2(va + size, L2_SIZE) - rounddown2(va, L2_SIZE)) >> L2_SHIFT; KASSERT(l2_blocks > 0, ("pmap_unmapbios: invalid size %lx", size)); From nobody Fri May 2 15:45:06 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 4ZpwGp6Hjpz5td6Q; Fri, 02 May 2025 15:45:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpwGp2Cgpz3ldw; Fri, 02 May 2025 15:45:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200706; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2kcQSDR/rkVEHzxTujhRU3lESSrPYnofOHe+XJqreuk=; b=EJmBx9Xsu/9XDS6K3iyN26ZmjnElgXRErYcnfrfb64yHnnoEPTEWyNzf20u176m+nTE6+/ a6HQm7euKM7a00onHFU55/Z5W+Z3RjuYqIh6J1gm8ZeQlm1yhF8znHK7f5S8eu9WLYds0z gEvYpTSv8AKEZEF1eX8bboPV+V+4ypWLI2N0WzqEKVfJ/Mc07B6SJkyXOCT8Vi35IKbxD6 rCj2wo0CTXKmaq5Z60a1c7xhGW4H9WlyBh16ESXBo5X1/EC4WAZDrJTpZkWYNles4rdA5V uqqnIAMa70K4mgQJdaQHKsxq5jIUYbHvQV28ZXbSEGqLjdB3v43sJCx5OrESKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746200706; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2kcQSDR/rkVEHzxTujhRU3lESSrPYnofOHe+XJqreuk=; b=uB/gYAb77HMyiRBfAFPMCJkNMs0o0Y60ey4BiSVrMZLB7v3Bm7jSqPvdBe9uEKOu2DITmy 3ayoTuu1nR9gjod3Z+ruu0SJtNKHlP4ycQYp2kY8RLhph8gmPD7qUfzbcDbjJkrqRwjMrV PZpYzNT1LDU3sl2H84Pz/DDcDx6/y0uEil4ax383ZdaEcgDgMj5/IhQHDPrW24PYAgUi1R FwMGd3G2Z0a5T81BRaa1K28GKK+0jl6lMLT8Y9m+sWA6ksGOtNCV5psCm34gbY7dP13Chh txe0AfH8kdNQOGPS2gRy6pHa3C+BfzV2RgHB8mlY1l3QofDSGLpaUHkEq+xK6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746200706; a=rsa-sha256; cv=none; b=twm1gxAkoZHEWDzQy6pAvQAW+5idPk5oEL3gbmIGMPrfclXXrGftGQccqYsQCfAt+YJNkU TZqNWRoLm7ZK7j3ZrE5WBgYcTtqxSKv+KcNlZ49e/F5g+XiDKM4cnGFdtKg4pQ5Mz4gqn9 JAvubPeudRC18RUkSIxwEC7PR7kfQrf9IAIdXvJX56f+23LUcZ6jQUIl/3oEfDwYY1FPZQ XL4sMklxHugj8BI3Q/sXKBuzvNIbsHrz59vmY1iSh1XWu5zhDYLDCDAG1VgLfqLTviCib5 5kfJ1dD/mkDYMsGgm1eJx2s26QGH39FuXhTGNciSBjGzIMkS0VVhseODH0LW1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpwGp1pyjz1HqY; Fri, 02 May 2025 15:45: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 542Fj6hO097693; Fri, 2 May 2025 15:45:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542Fj6rX097690; Fri, 2 May 2025 15:45:06 GMT (envelope-from git) Date: Fri, 2 May 2025 15:45:06 GMT Message-Id: <202505021545.542Fj6rX097690@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: 23b693c508d9 - main - sys: Reduce where we include sys/devmap.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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 23b693c508d92c310a6db829c429c92fceed0965 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=23b693c508d92c310a6db829c429c92fceed0965 commit 23b693c508d92c310a6db829c429c92fceed0965 Author: Andrew Turner AuthorDate: 2025-05-02 15:35:16 +0000 Commit: Andrew Turner CommitDate: 2025-05-02 15:39:04 +0000 sys: Reduce where we include sys/devmap.h These files don't use it, we can stop including sys/devmap.h. Reviewed by: mhorne Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D50017 --- sys/arm/annapurna/alpine/alpine_machdep.c | 1 - sys/arm/arm/bus_space_generic.c | 1 - sys/arm/freescale/fsl_ocotp.c | 1 - sys/arm/freescale/vybrid/vf_machdep.c | 1 - sys/arm/nvidia/tegra_pcie.c | 1 - sys/arm/qualcomm/ipq4018_machdep.c | 1 - sys/arm/qualcomm/ipq4018_mp.c | 1 - sys/arm/qualcomm/qcom_cpu_kpssv2.c | 1 - sys/arm/qualcomm/qcom_scm_legacy.c | 1 - sys/arm/ti/ti_machdep.c | 1 - sys/arm64/qoriq/qoriq_dw_pci.c | 1 - sys/dev/pci/pci_dw.c | 1 - sys/dev/pci/pci_dw_mv.c | 1 - 13 files changed, 13 deletions(-) diff --git a/sys/arm/annapurna/alpine/alpine_machdep.c b/sys/arm/annapurna/alpine/alpine_machdep.c index 89d21bf9fcae..a4e51d339354 100644 --- a/sys/arm/annapurna/alpine/alpine_machdep.c +++ b/sys/arm/annapurna/alpine/alpine_machdep.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm/arm/bus_space_generic.c b/sys/arm/arm/bus_space_generic.c index 7794147aa4b6..28708e3929e3 100644 --- a/sys/arm/arm/bus_space_generic.c +++ b/sys/arm/arm/bus_space_generic.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm/freescale/fsl_ocotp.c b/sys/arm/freescale/fsl_ocotp.c index cf275f9da41b..805bbd613d23 100644 --- a/sys/arm/freescale/fsl_ocotp.c +++ b/sys/arm/freescale/fsl_ocotp.c @@ -59,7 +59,6 @@ #include #include #include -#include static uint32_t *ocotp_regs; static vm_size_t ocotp_size; diff --git a/sys/arm/freescale/vybrid/vf_machdep.c b/sys/arm/freescale/vybrid/vf_machdep.c index 2ab14f5154eb..fe36558b7ece 100644 --- a/sys/arm/freescale/vybrid/vf_machdep.c +++ b/sys/arm/freescale/vybrid/vf_machdep.c @@ -30,7 +30,6 @@ #include #include -#include #include diff --git a/sys/arm/nvidia/tegra_pcie.c b/sys/arm/nvidia/tegra_pcie.c index b76e74da4f7d..ec272523df1b 100644 --- a/sys/arm/nvidia/tegra_pcie.c +++ b/sys/arm/nvidia/tegra_pcie.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include diff --git a/sys/arm/qualcomm/ipq4018_machdep.c b/sys/arm/qualcomm/ipq4018_machdep.c index 49dd2ff0193a..c0131d08dee6 100644 --- a/sys/arm/qualcomm/ipq4018_machdep.c +++ b/sys/arm/qualcomm/ipq4018_machdep.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm/qualcomm/ipq4018_mp.c b/sys/arm/qualcomm/ipq4018_mp.c index cdcc0dfb9550..ab7d297738c4 100644 --- a/sys/arm/qualcomm/ipq4018_mp.c +++ b/sys/arm/qualcomm/ipq4018_mp.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm/qualcomm/qcom_cpu_kpssv2.c b/sys/arm/qualcomm/qcom_cpu_kpssv2.c index c265f0f897e2..d4f2cff5ab7e 100644 --- a/sys/arm/qualcomm/qcom_cpu_kpssv2.c +++ b/sys/arm/qualcomm/qcom_cpu_kpssv2.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm/qualcomm/qcom_scm_legacy.c b/sys/arm/qualcomm/qcom_scm_legacy.c index b614843b1ce8..42d5685259ad 100644 --- a/sys/arm/qualcomm/qcom_scm_legacy.c +++ b/sys/arm/qualcomm/qcom_scm_legacy.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm/ti/ti_machdep.c b/sys/arm/ti/ti_machdep.c index 29afcb7d9b59..ee4f416eeded 100644 --- a/sys/arm/ti/ti_machdep.c +++ b/sys/arm/ti/ti_machdep.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include diff --git a/sys/arm64/qoriq/qoriq_dw_pci.c b/sys/arm64/qoriq/qoriq_dw_pci.c index 2492130e4b42..b6eecba48c39 100644 --- a/sys/arm64/qoriq/qoriq_dw_pci.c +++ b/sys/arm64/qoriq/qoriq_dw_pci.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include diff --git a/sys/dev/pci/pci_dw.c b/sys/dev/pci/pci_dw.c index cf67d1ab06cf..dcc9c0c5e369 100644 --- a/sys/dev/pci/pci_dw.c +++ b/sys/dev/pci/pci_dw.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include diff --git a/sys/dev/pci/pci_dw_mv.c b/sys/dev/pci/pci_dw_mv.c index d7eada39a6d6..b67356fc0e1d 100644 --- a/sys/dev/pci/pci_dw_mv.c +++ b/sys/dev/pci/pci_dw_mv.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include From nobody Fri May 2 17:31:05 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 4Zpyd56KWyz5tmSN; Fri, 02 May 2025 17:31: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 4Zpyd55lV1z3V12; Fri, 02 May 2025 17:31:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746207065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=avWFQltoYHQTGf/Sw0SZMNcLTPwPPtt5lMAxm0FOs6k=; b=twRBlT5E5tJhKhRkhh/oMJVWyQoJBtQPKpJuAQKhnya/fnwxJm5AiC2OJAnZ1+siT7TQNs aEGIc2bKKBXxFH9oPUc9tVubcUE23Tfq+sUsqYDmTrXrrHP8YpeKNd9fUJdOXMWx94qE0X AAXWCcR0irz9AVWCUfoODNNFyY08qPOQoEfpEyE3eHcDhgYCbOnSVmkCYAauaQw1DBzlYz wrbti1kvIyenyTFdNaDAd7jOshdhcJExTb71Tuc7lkODN/kirFUqf/ZdE61mFcglQNFXSZ RZaCP+gqcjfbd8h2yqKE+bNs/brfZgBllDnvS265JNrAp9eFcqqmG9Cfb694XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746207065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=avWFQltoYHQTGf/Sw0SZMNcLTPwPPtt5lMAxm0FOs6k=; b=SzOcrI4TExYAwvXlvXUFG3JUvNaevzGwOvNdei22JM2wPkN45dMzBU0NBHs5I8wLTQORqY 2GbUsrOmhOMwd4Fyw15pJ0bjmx4zp0+argtBD2v41dTPmOf8k/hnymqCx7m5dno727oL6F vVDnsW9684PeUM9pplFuw0Aa15y/WLkZGD3Tj/tpYEllCg11vxPChOYNLq3MuIrKoVwIqa KenjfuMneLSNDicw5sqhlzppCvQuTWd+g1mYTHvkyEpRGoI66KSoM2qiPpElx0ZLIfdr6q TD9jr1v5gsjyUz+rZRWnikvzleBvZxKYV6DmM0Xs0Sea5dP8sTWXfcDZgQyEsw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746207065; a=rsa-sha256; cv=none; b=l9yK84tRqzMHuH5NUvViX57uQ9AldjGKrsW5G+V08IbyB1sSAwrUzaCw+v3OUUDCa2dNZn JX57bVotyMVKQ2GDfW15CLO0x1ZScOwy03zbcgFmIaMwrilL5BQGDbbAqYR5V8CgLKdjqk Htw4seIq4Tzx4b2vnnmeGu5tK5khdnVWqaSrkt0JGOsHmcji3PAIqO9KsyLMAYuZ5NFlCs tiHvVAel/Od175Haej823KQLawXPuSOgroSaFe9JoZ/1lxMRwufmP2jbXQI5wRIQI3glbT EwiT+7YUh+KjB21I8iQLEJs+9e0IKajhCRS203icl82WynZNF2p5wn733+Jh/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zpyd55LRvz1Lb3; Fri, 02 May 2025 17:31: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 542HV5Ei098598; Fri, 2 May 2025 17:31:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542HV5nD098584; Fri, 2 May 2025 17:31:05 GMT (envelope-from git) Date: Fri, 2 May 2025 17:31:05 GMT Message-Id: <202505021731.542HV5nD098584@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: 5ea28c513979 - main - tests/ci: Switch vmm detection 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: bofh X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5ea28c51397906a7cabb06089974feb21e2a7979 Auto-Submitted: auto-generated The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/src/commit/?id=5ea28c51397906a7cabb06089974feb21e2a7979 commit 5ea28c51397906a7cabb06089974feb21e2a7979 Author: Muhammad Moinur Rahman AuthorDate: 2025-05-02 17:28:51 +0000 Commit: Muhammad Moinur Rahman CommitDate: 2025-05-02 17:28:51 +0000 tests/ci: Switch vmm detection Previously, the CI Makefile used `kldload -n vmm` to determine whether the host supported bhyve virtualization. However, due to changes in how QEMU/KVM exposes CPU features to guests, this check no longer reliably indicates the presence of usable VMX/SVM support. In particular, modern QEMU configurations expose the vmx CPUID bit by default, allowing the vmm module to load even when nested virtualization is disabled. This causes the old check to incorrectly succeed inside virtualized environments where bhyve cannot function. This patch replaces the check with a sysctl-based approach that inspects kern.vm_guest. If the system identifies itself as running inside a guest (!= "none"), we assume nested virtualization is unavailable and fallback to QEMU. This change ensures CI behaves correctly on platforms where the vmm module loads but is not usable. Approved by: emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50115 --- tests/ci/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ci/Makefile b/tests/ci/Makefile index e452d74679af..e51c97fa2b83 100644 --- a/tests/ci/Makefile +++ b/tests/ci/Makefile @@ -123,8 +123,8 @@ VM_MEM_SIZE=${QEMU_MAX_MEM_SIZE}g .else VM_MEM_SIZE=${VM_MEM}g .endif -KLDVMMISLOADED!=kldload -q -n vmm 2>/dev/null && echo "1" || echo "0" -.if ${KLDVMMISLOADED} == "0" +VMGUEST!=sysctl -n kern.vm_guest 2>/dev/null || true +.if ${VMGUEST} != "none" USE_QEMU?=1 .endif KLDFILEMONISLOADED!=kldload -q -n filemon 2>/dev/null && echo "1" || echo "0" From nobody Fri May 2 18:08:17 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 4ZpzS224C6z5tq2s; Fri, 02 May 2025 18:08: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 4ZpzS165z6z3qlJ; Fri, 02 May 2025 18:08:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746209297; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h2VkjPNFb/OfsoTh+ug9OGUscvd9/aBYw2YB1CNJRbM=; b=vJ4ut+sM55833bT9L1k7izDje9G8/L9BJUvx1a8Wgh0HkFiSkxVzhGGH643VTR0SwSRBop XhLT4ur0Qj4VUKEcC7Wd0AT/iBHyuFJYwIEPA2lhOIRQrXFdrnJf7o+Oiay4/X1XCrnvvH CvfotXD1HACNARpzb2307xRTkFhq63JujgaQStXPGNIQyltN5PRs13pyVbKdPQKmazM1u7 s/WOxaHWmXTncbZHo08wg0VCwIyBsI9u1icf7ZQiBIT7bf1w/SB7dXABPXPsHPa2xMGRC7 dpNcY30ZmysjyMT+Thtm+0VI6HwArB7hrRRE06YlGRxH3Ud8iYjT1j4qQBQTaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746209297; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h2VkjPNFb/OfsoTh+ug9OGUscvd9/aBYw2YB1CNJRbM=; b=CYn9yMc0zQlao1fENoplUz/gxDvg+2BacJiw2C/FmJuXg+00TDXFJeMpMhfMQ8vcFtku+M zzhxolzyjsQHlc6LyQPt3SWdZD+w3NMEtW47t/fYeNAvs2GkH0mY+FNehX1jrEe3OE5Nj1 ReMoBgyijpou5medRkZHG+4NNw9B83UwxqZZoldMc5ZlgXeq1+85RxejVkTvv9OR+Rrp4n sYDavTvAFrS+KIX0ANqckJdIjfgsD1shQYs92igvD0EeheqRMVZJZOjaFh0bWBbpIvBnZi UL24yWO6MKjOlLh0+M8xMusAr1Sx3HtaIz0KiCXslj9HUz/9tcZBF49aEOUq2A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746209297; a=rsa-sha256; cv=none; b=KAqhuzG8iNZkG+7RX3gLwTfcvezZ5/m/rWPQzC4WKVoDyVShBduO7bNzV3HCicjns0GTtK YmcTUCV/D1aqgPuv11BvIH/k2dGgpbzzT2c+mLUe6oCmuJQURcnSGu0grEtWVikIF64ELY DMolFnBFSu4Zc/YX6eMwlWMLAB1y3zyztm2Wxm5U0xYx2wSyausVf2ns8QJUY9Z5tEIdU0 ZMnMneNmBwYh6GFXAHrJvpctxZC2ZByZLlrQnNzGyWSMprTvxolC7rIuxASBFwYZWnQSXr yuZT0lwkU2nkov6sJRgxy8nfJHeYKja0D9Tq07Rd/YQaIxfJLS6Od/+0Y6rIDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpzS15f5fz1MJC; Fri, 02 May 2025 18:08: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 542I8Hh1061813; Fri, 2 May 2025 18:08:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542I8H51061810; Fri, 2 May 2025 18:08:17 GMT (envelope-from git) Date: Fri, 2 May 2025 18:08:17 GMT Message-Id: <202505021808.542I8H51061810@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: bcbc19335a70 - main - rtld: add lockstate_wlocked() 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: bcbc19335a702a05ed89369c1662a91b686324ce Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=bcbc19335a702a05ed89369c1662a91b686324ce commit bcbc19335a702a05ed89369c1662a91b686324ce Author: Konstantin Belousov AuthorDate: 2025-05-01 15:43:30 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 18:08:09 +0000 rtld: add lockstate_wlocked() querying the lockstate for write-locked state. Sponsored by: The FreeBSD Foundation MFC after: 1 week --- libexec/rtld-elf/rtld_lock.c | 6 ++++++ libexec/rtld-elf/rtld_lock.h | 1 + 2 files changed, 7 insertions(+) diff --git a/libexec/rtld-elf/rtld_lock.c b/libexec/rtld-elf/rtld_lock.c index 40fa724b6227..d99b64d8c66a 100644 --- a/libexec/rtld-elf/rtld_lock.c +++ b/libexec/rtld-elf/rtld_lock.c @@ -326,6 +326,12 @@ lock_restart_for_upgrade(RtldLockState *lockstate) } } +bool +lockstate_wlocked(const RtldLockState *lockstate) +{ + return (lockstate->lockstate == RTLD_LOCK_WLOCKED); +} + void dlerror_dflt_init(void) { diff --git a/libexec/rtld-elf/rtld_lock.h b/libexec/rtld-elf/rtld_lock.h index f41c23d7f69a..c9b11176b7de 100644 --- a/libexec/rtld-elf/rtld_lock.h +++ b/libexec/rtld-elf/rtld_lock.h @@ -93,6 +93,7 @@ void wlock_acquire(rtld_lock_t, RtldLockState *); void lock_release(rtld_lock_t, RtldLockState *); void lock_upgrade(rtld_lock_t, RtldLockState *); void lock_restart_for_upgrade(RtldLockState *); +bool lockstate_wlocked(const RtldLockState *); void dlerror_dflt_init(void); From nobody Fri May 2 18:08:18 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 4ZpzS32KQ1z5tq5L; Fri, 02 May 2025 18:08: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 4ZpzS26ndBz3qgG; Fri, 02 May 2025 18:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746209299; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZZKAIb+P+J5DcWamKYAj06hDoDaxx0lQpvrB+1hbpvY=; b=Ad2xTimgQfRImIp3HK2F4GMmF4My9PWx0bv/T0aODKeOs4OsIxzre280aPIjpK5oaUmY3L EHKmdyixPP0bD2tiDtirYkhSvORl4qkWAl8XQqg4+wuFA7YkvBSnj+UXYObZNnvRQGx8FK 3tTNaX5xMgCBnuRhKZzaDjBfyYsJT18/cobeMegIC/IqDOa0Ng/W0GtzqcLMLIwkA6i2B8 sY0bcF2MsdIN6GNnweEhqx8U03A36j6G8eviRZwObBiZ61VavGNBA9rRa44a8q2KmR1dQK +nInJHNSn03ibY9OrKHAa5XCDDsvs+BDLez/yWLHlbyJiEqr8yL8vS+onFt/KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746209299; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZZKAIb+P+J5DcWamKYAj06hDoDaxx0lQpvrB+1hbpvY=; b=piydKIcwV5S5Wfwhy+AL8mKCiHW0brhfy2vn/WFuC/JbfYH+685Rn1wQ0d3/5ZlS/MbDOD ThSbPG6/s809qOO6CADbGUehtaFnwUQe8EwSE98Kx+KU2qBGMOlXOk06Tq7Vf+/iZPMVyg Q7HN2P793OA+DQbgU/Y5JnrpXnqHljbyEdEPtNqd8qQQb36HZhVtvFknhkKkvi5e4OB3gr 7Fck59TD8eJRgWJKqCNI9Ag80YQQNq4TxVfSIvr9/b2WAmev/06Ew/OHZJurk4KPzJxuHM T5TQS3Z1mWaiQF3Lr95uGaRkKoU0rjtQDZe5jKoB2X80tlIpdZb4adIq380mNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746209299; a=rsa-sha256; cv=none; b=NCf1hWBhatoL9MZZVLqF2059mtoNSVCIx2QfThzPbayGK/O5h0la3CHe6fUZi7dZXtuzGz AQ7Ju+6UDcMmKAzpLqVUHsk+MhmLIqkaNsT5xp0FzWEv7FCg5Bl6TtuceLtWhwk77cMmZu ysG0l9RE0n+KVhAy1VFQYurM2di5UCRVlirLNaMAGAJ/9LEI30J8vFAQ8Rdz2qahVhIOul QhqdffWh57JoTFWsLyrdy8fcVAhq5omryMhYQ+rkhoFLYrlkrtYZj42cr9GmRclKyjbL30 GJn5jb7YpQVcBDktW6zTkXmGOiPxnK9HC6thIfLyifqdeos7yaureiGzIdZVdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpzS26HgKz1MKc; Fri, 02 May 2025 18:08: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 542I8I0m061847; Fri, 2 May 2025 18:08:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542I8I3s061845; Fri, 2 May 2025 18:08:18 GMT (envelope-from git) Date: Fri, 2 May 2025 18:08:18 GMT Message-Id: <202505021808.542I8I3s061845@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: c66c0a8479e6 - main - rtld: do not call into ifunc resolvers with the bind lock write-locked 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: c66c0a8479e62f3e3e085252839cddace4d4bbf5 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c66c0a8479e62f3e3e085252839cddace4d4bbf5 commit c66c0a8479e62f3e3e085252839cddace4d4bbf5 Author: Konstantin Belousov AuthorDate: 2025-05-01 15:44:12 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 18:08:09 +0000 rtld: do not call into ifunc resolvers with the bind lock write-locked If filter needs to be loader, we restart after the lock upgrade. But possible binds in the resolver itself would try to recurse on the lock, which can be only done for the read locks. PR: 286502 Sponsored by: The FreeBSD Foundation MFC after: 1 week --- libexec/rtld-elf/rtld.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 3a9a3e800831..59d29888d93d 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -1040,6 +1040,7 @@ _rtld_bind(Obj_Entry *obj, Elf_Size reloff) Elf_Addr target; RtldLockState lockstate; +relock: rlock_acquire(rtld_bind_lock, &lockstate); if (sigsetjmp(lockstate.env, 0) != 0) lock_upgrade(rtld_bind_lock, &lockstate); @@ -1053,10 +1054,15 @@ _rtld_bind(Obj_Entry *obj, Elf_Size reloff) NULL, &lockstate); if (def == NULL) rtld_die(); - if (ELF_ST_TYPE(def->st_info) == STT_GNU_IFUNC) + if (ELF_ST_TYPE(def->st_info) == STT_GNU_IFUNC) { + if (lockstate_wlocked(&lockstate)) { + lock_release(rtld_bind_lock, &lockstate); + goto relock; + } target = (Elf_Addr)rtld_resolve_ifunc(defobj, def); - else + } else { target = (Elf_Addr)(defobj->relocbase + def->st_value); + } dbg("\"%s\" in \"%s\" ==> %p in \"%s\"", defobj->strtab + def->st_name, obj->path == NULL ? NULL : basename(obj->path), (void *)target, From nobody Fri May 2 18:08:19 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 4ZpzS42PRZz5tq7p; Fri, 02 May 2025 18:08:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpzS40hC2z3qnW; Fri, 02 May 2025 18:08:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746209300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i4U0G43YyFwIyt09ySOJhYczcAMFPnvGEQToU3E23RU=; b=h+XJXxOZVpA91Rx3tD3AsvDstnw9F8pUiytDh6Oivxn7jM+VwR3qCPnqXE0XT+sI3EFSyc p1hqZWjjTeskOlduQ/Hvb7Lu78LRI/Ti3EitK0f7mECb2CMVv/E7wjkbXRhQ2+1WGrJmfS dd0gYYTKcR1zHRGXLmT2FQsXJ7MG1QfBbQqT/98hMKa9p/T2fJysvmv/xhwQY/zplmyh7M kxPmYqGpp8zC3rr1BmFZ6vhRG76TSb6GHMQEe2/bQXG77BHqoZIj5DCqKoVfT63gonCROr SNz9AlYYWnvRrj6Qo4qy5/MYPRIpu2pE7XGCuTXVleWsGpFsMUwFGdBvylkHCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746209300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i4U0G43YyFwIyt09ySOJhYczcAMFPnvGEQToU3E23RU=; b=yzOeZvhytLGLfFFmUW8NsCMvYb9gCXF6t/XGT0JwtVWxLX/0yqsLGtPwvcSkcu0hujQ56W k8FqMOHy/NkXgr9pnz/AkrqrPiIbPucUHkiniuCSkLKQg2MyUnSOqxiheKSw0Z3PJ0EnTM S1qIw1OKtyO3XTzFX9bYwARj9YqccleG0hrPJYEsbpHGXyPNagKtILVNUem2DVibxEMo8e xGxuJEjIE1dIqbJizbpW4zohXyAnaoC1S5gr2sbrjdkSCAo83rG3bwRFIqLGu8HXJSbUnl UByIYyXHpQaJWoYZz/Rmkiy+0rcJMnqcepITYGCDptVLnpqa0mJkEuh01A63OA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746209300; a=rsa-sha256; cv=none; b=IkVYS2jcU6Ldxn4A/yvQ4FGqF1KzgBYUOzZxsc8kLyVkT2huC7dmNaORmmu8D5uGtBo1Dx 14JtjCvginc80cv5HYC8XmF9iemxEbKzlscnDII/5Iq+T1Ygkmhu70T3lmRBUcZE3hEti7 B+NU8rWe6qOwt6m4rNsaKAgJYMrI5wOjxEb5KB9cXIKcjgDZjszEQnMMzCgytAXb6xT5ZC j+GOIRG0gTuIteYahdmCglR1QzT1MMlCpKL7rvrMB8enk31gOwRavONJLqWFhA/s+S7Pje vIW0kHDRaqvoJN3iVD+wisD/JZp+OpAxrLSLl4wFy/QLHHxDAI5p7qcA0b2OZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZpzS404MSz1MKd; Fri, 02 May 2025 18:08:20 +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 542I8JXD061880; Fri, 2 May 2025 18:08:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542I8J08061877; Fri, 2 May 2025 18:08:19 GMT (envelope-from git) Date: Fri, 2 May 2025 18:08:19 GMT Message-Id: <202505021808.542I8J08061877@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: 812c4bf3f170 - main - thr_rtld: accept read lock requests while owning the lock for write 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: 812c4bf3f17024f192980bbb8a781676cb9cf6b6 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=812c4bf3f17024f192980bbb8a781676cb9cf6b6 commit 812c4bf3f17024f192980bbb8a781676cb9cf6b6 Author: Konstantin Belousov AuthorDate: 2025-05-02 15:09:46 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 18:08:09 +0000 thr_rtld: accept read lock requests while owning the lock for write PR: 286505 Reviewed by: olce Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D50117 --- lib/libthr/thread/thr_rtld.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/lib/libthr/thread/thr_rtld.c b/lib/libthr/thread/thr_rtld.c index e5a7f86de288..3cfdfc548cf2 100644 --- a/lib/libthr/thread/thr_rtld.c +++ b/lib/libthr/thread/thr_rtld.c @@ -50,8 +50,11 @@ static int _thr_rtld_set_flag(int); static void _thr_rtld_wlock_acquire(void *); struct rtld_lock { - struct urwlock lock; - char _pad[CACHE_LINE_SIZE - sizeof(struct urwlock)]; + struct urwlock lock; + struct pthread *wowner; + u_int rlocks; + char _pad[CACHE_LINE_SIZE - sizeof(struct urwlock) - + sizeof(struct pthread *) - sizeof(u_int)]; }; static struct rtld_lock lock_place[MAX_RTLD_LOCKS] __aligned(CACHE_LINE_SIZE); @@ -116,9 +119,13 @@ _thr_rtld_rlock_acquire(void *lock) SAVE_ERRNO(); l = (struct rtld_lock *)lock; - THR_CRITICAL_ENTER(curthread); - while (_thr_rwlock_rdlock(&l->lock, 0, NULL) != 0) - ; + if (l->wowner == curthread) { + l->rlocks++; + } else { + THR_CRITICAL_ENTER(curthread); + while (_thr_rwlock_rdlock(&l->lock, 0, NULL) != 0) + ; + } curthread->rdlock_count++; RESTORE_ERRNO(); } @@ -137,6 +144,7 @@ _thr_rtld_wlock_acquire(void *lock) THR_CRITICAL_ENTER(curthread); while (_thr_rwlock_wrlock(&l->lock, NULL) != 0) ; + l->wowner = curthread; RESTORE_ERRNO(); } @@ -164,6 +172,14 @@ _thr_rtld_lock_release(void *lock) l->lock.rw_blocked_readers = 0; l->lock.rw_blocked_writers = 0; } + if ((state & URWLOCK_WRITE_OWNER) != 0) { + if (l->rlocks > 0) { + l->rlocks--; + return; + } else { + l->wowner = NULL; + } + } if (_thr_rwlock_unlock(&l->lock) == 0) { if ((state & URWLOCK_WRITE_OWNER) == 0) curthread->rdlock_count--; From nobody Fri May 2 19:09:38 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 4Zq0pq2RhMz5ttgT; Fri, 02 May 2025 19:09:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zq0pp6f19z3HZl; Fri, 02 May 2025 19:09:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746212978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/UQ3X1ArlUkUt6JBuQwqlsBzf/wNmAn2tGbM1qw8t60=; b=s5pN34x8fJ0MCFs/MTrsV9d6lhCyuczESwqyXNxiWtx4dNX1UuZE3XpvkTGs1NyEUMWhLT 296M9lLLoCqAlEuGIsEeDFW/58hgklbgDbcbp5NYSUv9u9wVvB5rC6xKc0bnprf/MERQJY 0fnJ6kEfTKrf68qDjOHZO7V2HCQSjQgavnV8Px9QNOIrjLa/4hhK2Ep5IDpJcWjdk7dlGr ySB0rvn54/OvlGVnu1IF0fhD/4ZSa/Lx9wSvoGIKDOW4OdpfwWyI1guRwmkQuObuXOz/OX WauwIGxFqC5ShGtsfP76CQEr+fb9BKCQciIQ7X7d+7JX1TxmyKTsZuXY4cPEmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746212978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/UQ3X1ArlUkUt6JBuQwqlsBzf/wNmAn2tGbM1qw8t60=; b=xSV/j4vslQWT8zMlFKFKItejO7JavTmlNvvFZPGc4NXlpT2S167NUkTmX/8IMBdn9fGxkF +66w+kUBG5Ov3lsffhafdDkwNXwqWN+0l7ZIHuO/qp6t/aPcSYiIGTB6CkjhYHtokF7mCJ dtFItnAPsnyEuIeMw96scWvJbVisyPza/Ptio2oyRW5lnnwgtu/n20AQulgX8uV91AAWym ptDyH/7N6C2pyxYQp1XY+7zo7EjjqSJaO7uWXGJlTuFzsQhcPj35sPUz7nssM/PKSr+ft9 TS0o1h7fTLW0tayLT6eYNWnzLnYDohafU8bOysfX26JbjNwUPK4qsj9NNIIJqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746212978; a=rsa-sha256; cv=none; b=pRfwylDXb58hF7UgPfZTaZ6o7gyKJJpMgRJSvFO/PrZ27MJmxGRS+GwtUPbRHEzT2bbfhh 66LLj6JLSSaYN57UGXNSe9IAffSc0r1yg+S5sXX1dG5DMcN0jY8psQNvzUv6OLJxuQDVa7 jTbwmacvM88P5MSVCrA9NK9PreY0r2NmaxKlFZbzxqUXQl00rLE9buE/yVRfJAtwd4xspV 07KWqiA2SvMMKJBR1S5myNrjUg2VIoUMnCMXdSPFbuda00PuPQfP+oNChQNk7uoh5VGI8Q vT1hF2nzTEfUNap5Wn7Z2DESMqKGfQVbZZGK6oFzLRSnhdGJyiJ8dJdUMtnXMw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zq0pp6Fc4z1Nrm; Fri, 02 May 2025 19:09: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 542J9cBO075029; Fri, 2 May 2025 19:09:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542J9c5j075026; Fri, 2 May 2025 19:09:38 GMT (envelope-from git) Date: Fri, 2 May 2025 19:09:38 GMT Message-Id: <202505021909.542J9c5j075026@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Ziaee Subject: git: 27c41b28b1d7 - main - iwx.4: Initial manual page 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 27c41b28b1d7749c4dde266a12cd9ff93f168767 Auto-Submitted: auto-generated The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=27c41b28b1d7749c4dde266a12cd9ff93f168767 commit 27c41b28b1d7749c4dde266a12cd9ff93f168767 Author: Alexander Ziaee AuthorDate: 2025-04-06 18:12:52 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-02 19:09:12 +0000 iwx.4: Initial manual page Import manual from OpenBSD, tweaked for our system. Obtained from: OpenBSD (initially) Fixes: 1ad0f7e91582dd (Import iwx) Reviewed by: adrian, bz, emaste, mhorne, thj, Pat Maddox Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49687 --- share/man/man4/Makefile | 3 + share/man/man4/iwx.4 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 5f950b7275da..71d32dd12f05 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -265,6 +265,7 @@ MAN= aac.4 \ iwnfw.4 \ iwlwifi.4 \ iwlwififw.4 \ + ${_iwx.4} \ ix.4 \ ixl.4 \ jedec_dimm.4 \ @@ -895,6 +896,7 @@ _xnb.4= xnb.4 .if ${MACHINE_CPUARCH} == "amd64" _ioat.4= ioat.4 +_iwx.4= iwx.4 _nvdimm.4= nvdimm.4 _qlxge.4= qlxge.4 _qlxgb.4= qlxgb.4 @@ -904,6 +906,7 @@ _sfxge.4= sfxge.4 _smartpqi.4= smartpqi.4 _sume.4= sume.4 +MLINKS+=iwx.4 if_iwx.4 MLINKS+=qlxge.4 if_qlxge.4 MLINKS+=qlxgb.4 if_qlxgb.4 MLINKS+=qlxgbe.4 if_qlxgbe.4 diff --git a/share/man/man4/iwx.4 b/share/man/man4/iwx.4 new file mode 100644 index 000000000000..7cd54d61b920 --- /dev/null +++ b/share/man/man4/iwx.4 @@ -0,0 +1,157 @@ +.\" +.\" SPDX-License-Identifier: ISC +.\" +.\" $OpenBSD: iwx.4,v 1.21 2025/03/27 15:12:14 jmc Exp $ +.\" +.\" Copyright (c) 2020 Stefan Sperling +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd May 2, 2025 +.Dt IWX 4 +.Os +.Sh NAME +.Nm iwx +.Nd Intel WiFi 6 IEEE 802.11ax wireless network driver +.Sh SYNOPSIS +.Cd device iwx +.Cd device wlan +.Pp +In +.Xr rc.conf 5 : +.Cd devmatch_blocklist="if_iwlwifi" +.Cd kld_list="if_iwx" +.Pp +In +.Xr sysctl.conf 5 : +.Cd dev.iwx.?.debug=0xffffffff +.Sh DESCRIPTION +The +.Nm +driver supports the Intel Wi-Fi 6 series of M.2 +wireless network adapters. +If the appropriate hardware is detected, and +.Xr iwlwifi 4 +is blacklisted in +.Xr rc.conf 5 , +the driver will be automatically loaded with +.Xr devmatch 8 . +The +.Nm +driver can be configured at runtime with +.Xr ifconfig 8 +or at boot with +.Xr rc.conf 5 . +.Pp +These are the modes the +.Nm +driver can operate in: +.Bl -tag -width "monitor mode" +.It station mode +This is used when associating with an access point, +through which all traffic passes. +Background scanning is supported in this mode, see +.Xr ifconfig 8 . +Station mode is the default. +.It monitor mode +In this mode the driver is able to receive packets without +associating with an access point. +This disables the internal receive filter and enables the card to +capture packets from networks which it wouldn't normally have access to, +or to scan for access points. +.El +.Sh HARDWARE +The +.Nm +driver supports the following M.2 wireless network adapters: +.Pp +.Bl -bullet -offset indent -compact +.It +Intel Wi-Fi 6 AX200 +.It +Intel Wi-Fi 6 AX201 CNVi +.It +Intel Wi-Fi 6 AX210 +.It +Intel Wi-Fi 6 AX211 CNVi +.El +.Sh SYSCTL VARIABLES +The +.Nm +driver supports the following +.Xr sysctl 8 +variables: +.Bl -tag -width "hw.usb.mtw.debug" +.It Va dev.iwx.?.debug +Specify debug level as a bitmask. +Default +.Ql 0 . +.El +.Sh FILES +The +.Nm +driver requires firmware from +.Pa ports/net/wifi-firmware-iwlwifi-kmod . +This firmware package will be installed automatically with +.Xr fwget 8 +if the appropriate hardware is detected at installation or runtime. +.Sh DIAGNOSTICS +.Bl -diag +.It "iwx0: device timeout" +A frame dispatched to the hardware for transmission did not complete +in time. +The driver will reset the hardware. +This should not happen. +.It "iwx0: fatal firmware error" +For some reason, the firmware crashed. +The driver will reset the hardware. +This should not happen. +.It "iwx0: radio is disabled by hardware switch" +The radio transmitter is off and thus no packet can go out. +The driver will reset the hardware. +Make sure the laptop radio switch is on. +.It "iwx0: could not read firmware ... (error N)" +For some reason, the driver was unable to read the firmware image from +the filesystem. +The file might be missing or corrupted. +.It "iwx0: firmware too short: N bytes" +The firmware image is corrupted and can't be loaded into the adapter. +.It "iwx0: could not load firmware" +An attempt to load the firmware into the adapter failed. +The driver will reset the hardware. +.El +.Sh SEE ALSO +.Xr intro 4 , +.Xr iwlwifi 4 , +.Xr iwlwififw 4 , +.Xr wlan 4 , +.Xr networking 7 , +.Xr fwget 8 , +.Xr ifconfig 8 , +.Xr wpa_supplicant 8 +.Sh HISTORY +The +.Nm +driver appeared in +.Fx 15.0 . +.Sh CAVEATS +The +.Nm +driver does not support hardware encryption offload. +.Pp +The +.Nm +driver does not support 802.11ax. +Additional work is required in +.Xr ieee80211 9 +before those features can be supported. From nobody Fri May 2 21:38:30 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 4Zq46b043kz5v5gr; Fri, 02 May 2025 21:38: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 4Zq46Z4YKkz3BqQ; Fri, 02 May 2025 21:38:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746221910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/88LUFkLKJxA0pw7W6LaCY54re5cObiMkDmrIRjoVvE=; b=dnduOwaoyXczCiWnMU6qSEYxecwWG3EOgrEa6w8dq2Q4CbGQT+ws4yATTyTE4b2NurGkjr OJb5yO/bK1E/XZaj3e5tD+r9dJxtPbuk/LCWxNBpnE5SuXqX3exbkWifpYfU2KLKFipxab Q1SI88m59OsQ3luJBc5/v+ayKAjxmXAk4DykDXBW0KSHzE06FHqtkCCRiPle8Vd64345rV y48cB9CXKcsPBd6g3RWeoUk7OeU1vBTAF/2I8yTg1jqhUsRBH426gMjdLCBvso+U35f+bW XZpb0XzLoHl20PwZjNumHbf1MLoRosRyMkHh5qwxtRE5sllCOTirnLUyLFGhjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746221910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/88LUFkLKJxA0pw7W6LaCY54re5cObiMkDmrIRjoVvE=; b=DXiLmihWqU98GZLisJfRxhcE7WUucpIaWpvbOtAx+RzDs9oni9dGc01D1jNRYidu5Kg9dk 9xevmmDRj4DexR8Xu9ajxTYN5cNCRdM2VVTk9QNSsUDdFYxih/Spm3CmhCtSm1XGHoXqrb PVgCuCFAQPYzx3i1/5nfRtChLNTH4jQoa8DzRnLGSMtEvt50PRtBrjTKzZXBB+LL6WUhoC 29OGas39vvuh/a7zJVkVTc8dy+p2WAne8xtZp1qobv56OuZyNaFGW+NSQ8KR1C8Ka+GsiN vQoe9iK+hs3ZyOV5v++sOkZtnUmlHtufcwdqapyMc6lnC1zwfv1n5k9FSGOtyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746221910; a=rsa-sha256; cv=none; b=MYlADw0HBrS7JuAi9NVqNGvH4/t9HjlsS8Q7ez7cqPx03dHxPDd7cpjuMimW/rlQpxnOOQ cgoLstZvWnK3a+dZ/QYcRpzjV+aiK+Uuxw86HrRHHc7ltM8NZGt23F5LJzWdT+d7/cThmf 0NxApII7IvwH/qrCRA1IWbFonafVeTd+mt/WVlqYXePrcElcUgJ7NTOxD7/W6ixfPpAezI 4jsns08HMM+f+eevhFmYC9HFp2PjNWQJxj6HZ3JG9GGnCiKHY/moKhzwK7oonwhkOyEXly thVdaK6jca8xoowTwQAs5xYnnnO91Eb0jyO/kw3YN+++lzSTyIatOlKdYKTMbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zq46Z3gkDz1SNt; Fri, 02 May 2025 21:38: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 542LcUxG054425; Fri, 2 May 2025 21:38:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542LcUd4054422; Fri, 2 May 2025 21:38:30 GMT (envelope-from git) Date: Fri, 2 May 2025 21:38:30 GMT Message-Id: <202505022138.542LcUd4054422@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: ab01a5f5628e - main - aio: Fix opcode handling in aio_process_rw() 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: ab01a5f5628eb0d334f491ff06462cff214d5f49 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ab01a5f5628eb0d334f491ff06462cff214d5f49 commit ab01a5f5628eb0d334f491ff06462cff214d5f49 Author: Mark Johnston AuthorDate: 2025-05-02 21:37:39 +0000 Commit: Mark Johnston CommitDate: 2025-05-02 21:37:39 +0000 aio: Fix opcode handling in aio_process_rw() LIO_FOFFSET needs to be masked off, as it is in aio_aqueue(). Reported by: syzbot+b6e15476c91852bb2264@syzkaller.appspotmail.com Reviewed by: kib, asomers MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D50118 --- sys/kern/vfs_aio.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c index 92c30b48e4f5..97dc854c9386 100644 --- a/sys/kern/vfs_aio.c +++ b/sys/kern/vfs_aio.c @@ -755,10 +755,9 @@ aio_process_rw(struct kaiocb *job) long inblock_st, inblock_end; int error, opcode; - KASSERT(job->uaiocb.aio_lio_opcode == LIO_READ || - job->uaiocb.aio_lio_opcode == LIO_READV || - job->uaiocb.aio_lio_opcode == LIO_WRITE || - job->uaiocb.aio_lio_opcode == LIO_WRITEV, + opcode = job->uaiocb.aio_lio_opcode & ~LIO_FOFFSET; + KASSERT(opcode == LIO_READ || opcode == LIO_READV || + opcode == LIO_WRITE || opcode == LIO_WRITEV, ("%s: opcode %d", __func__, job->uaiocb.aio_lio_opcode)); aio_switch_vmspace(job); @@ -768,7 +767,6 @@ aio_process_rw(struct kaiocb *job) job->uiop->uio_td = td; fp = job->fd_file; - opcode = job->uaiocb.aio_lio_opcode; cnt = job->uiop->uio_resid; msgrcv_st = td->td_ru.ru_msgrcv; From nobody Sat May 3 00:04:48 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 4Zq7MN6y3hz5vGxq; Sat, 03 May 2025 00:04: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 4Zq7MN6H4Lz40jb; Sat, 03 May 2025 00:04:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230688; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8JZQvK9jfDanezgYR7ydA/GbkPaqxEARbMrXeWAyw+s=; b=dM/pcRcx8B/v8x4x2iGD5lFaH230AIOhCXFg7AGLEsDrlqNB00RuZExGkuIxFVnd6Lt33X ctIX6TLwA53FAs+ljj3WhgIQcvm7gkW+vX0MavzWgw6j3cABxpU7N++7B1eAc6cFPox/ML w/rvCVRAwlUjmkx8NrlSlpHhvOVJmIyBeOXcnBoAt3QUPD6f186JtOsBlxzRqCsJQ3eiCs FhXnvuSFm0RH54o45xa7OEKYQwXSjfMv+QOFXHJKNR8QwCl/fNJcJrcZZGxuo6O/bz4QwF Rbx1XxLEwQtgkrRRrSidFVslyCXVF2TjKdUA43UhO9bnhKgZAgzbHonM1Cu79g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230688; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8JZQvK9jfDanezgYR7ydA/GbkPaqxEARbMrXeWAyw+s=; b=by0MdRgFlLjhTRfWTiphIScaDUHhaxbOQtOSglrtFhUx6vU619rPDXgO9YWYzteASVT7jH Pr7S/REKdPRh2K84ZWiUz/l3vAOTEvUZ2FwZ4X4uBOk0ppV/TFqCrv8B8aztBjbffjELc4 qaTQuMfuVHCjUSNY8Be6l5lkuKnb0PxB2CnJPEyh9bSoOOHwl2lKcy6/af3tGL4EKapS4K w/nuJ25Bj2OUN6yvwJovYD+f5lOFhbxRbPqu2clWne4ZUwzGzBlCb3QkGZymyYFu907u8T B23cgACR/iK+0Bm9ZiM6MyAOVFBMEu2uDbgl/oVWTdVy97espfGki4p3hHKJ2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746230688; a=rsa-sha256; cv=none; b=WuXW0ny1omPT6yrReTQw7ipyoeEmEcilrkcF7dF7LIQSoxp4Kt8TFaOdWlqRVlLbtQDIve m3ptz2xE5HpWXv6ZLa3rTDxqkyB3G0qC4ljJHkOrcwK6mXRgHge67jFlsV7CbKWBOJFnH4 R+0idc422afr8/uYK+ZJ7iH9wLpSOZWXxbR2Ri91nAJdRe2QX7VnrQP9eJ0cGYfz1IIbCP U/uJAWPqVfc8ckZatTBg04SN96MrNj0IXlkT0aQZ+KNzqTv6l6wWWfA3bG0f7sgAFfQw/Q Vb+wlZJs/bcpDC+Jd5KW672QqPwi7zTy9AAxGWhXWLHw2/7aES005/8dRvb17Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zq7MN5TXXz3fC; Sat, 03 May 2025 00:04: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 54304mVu035214; Sat, 3 May 2025 00:04:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54304mQK035211; Sat, 3 May 2025 00:04:48 GMT (envelope-from git) Date: Sat, 3 May 2025 00:04:48 GMT Message-Id: <202505030004.54304mQK035211@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: 029ed5f574f6 - main - vfs cache: Add a predicate for testing cache entries 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: 029ed5f574f61443fd12e0e70c7ab4dc296b81e5 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=029ed5f574f61443fd12e0e70c7ab4dc296b81e5 commit 029ed5f574f61443fd12e0e70c7ab4dc296b81e5 Author: Mark Johnston AuthorDate: 2025-05-02 21:34:16 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 00:04:32 +0000 vfs cache: Add a predicate for testing cache entries No functional change intended. Reviewed by: olce, kib MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50105 --- sys/kern/vfs_cache.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index e96724b928a6..670ac66ae6d7 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -32,7 +32,6 @@ * SUCH DAMAGE. */ -#include #include "opt_ddb.h" #include "opt_ktrace.h" @@ -459,6 +458,18 @@ cache_ncp_invalidate(struct namecache *ncp) atomic_thread_fence_rel(); } +/* + * Does this entry match the given directory and name? + */ +static bool +cache_ncp_match(struct namecache *ncp, struct vnode *dvp, + struct componentname *cnp) +{ + return (ncp->nc_dvp == dvp && + ncp->nc_nlen == cnp->cn_namelen && + bcmp(ncp->nc_name, cnp->cn_nameptr, cnp->cn_namelen) == 0); +} + /* * Check whether the entry can be safely used. * @@ -1413,8 +1424,7 @@ cache_neg_promote_cond(struct vnode *dvp, struct componentname *cnp, /* * The newly found entry may be something different... */ - if (!(ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && - !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen))) { + if (!cache_ncp_match(ncp, dvp, cnp)) { goto out_abort; } @@ -1760,12 +1770,9 @@ cache_zap_unlocked_bucket(struct namecache *ncp, struct componentname *cnp, cache_lock_vnodes(dvlp, vlp); mtx_lock(blp); CK_SLIST_FOREACH(rncp, (NCHHASH(hash)), nc_hash) { - if (rncp == ncp && rncp->nc_dvp == dvp && - rncp->nc_nlen == cnp->cn_namelen && - !bcmp(rncp->nc_name, cnp->cn_nameptr, rncp->nc_nlen)) + if (rncp == ncp && cache_ncp_match(rncp, dvp, cnp)) break; } - if (rncp == NULL) goto out_mismatch; @@ -1872,8 +1879,7 @@ retry: mtx_lock(blp); CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && - !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) + if (cache_ncp_match(ncp, dvp, cnp)) break; } @@ -2073,8 +2079,7 @@ retry: mtx_lock(blp); CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && - !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) + if (cache_ncp_match(ncp, dvp, cnp)) break; } @@ -2168,8 +2173,7 @@ cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, vfs_smr_enter(); CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && - !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) + if (cache_ncp_match(ncp, dvp, cnp)) break; } @@ -2569,9 +2573,7 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, */ ncpp = NCHHASH(hash); CK_SLIST_FOREACH(n2, ncpp, nc_hash) { - if (n2->nc_dvp == dvp && - n2->nc_nlen == cnp->cn_namelen && - !bcmp(n2->nc_name, cnp->cn_nameptr, n2->nc_nlen)) { + if (cache_ncp_match(n2, dvp, cnp)) { MPASS(cache_ncp_canuse(n2)); if ((n2->nc_flag & NCF_NEGATIVE) != 0) KASSERT(vp == NULL, @@ -3104,8 +3106,7 @@ cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) blp = HASH2BUCKETLOCK(hash); mtx_lock(blp); CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && - !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) { + if (cache_ncp_match(ncp, dvp, cnp)) { if (ncp->nc_vp != vp) panic("%s: mismatch (%p != %p); ncp %p [%s] dvp %p\n", __func__, vp, ncp->nc_vp, ncp, ncp->nc_name, ncp->nc_dvp); @@ -5554,8 +5555,7 @@ cache_fplookup_next(struct cache_fpl *fpl) MPASS(!cache_fpl_isdotdot(cnp)); CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && - !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) + if (cache_ncp_match(ncp, dvp, cnp)) break; } From nobody Sat May 3 00:04:49 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 4Zq7MQ068Zz5vGy2; Sat, 03 May 2025 00:04: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 4Zq7MP5ttSz40rv; Sat, 03 May 2025 00:04:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230689; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M9aKqfFDPwsI2Y5GpkHpuxDbQkqGHrnEWAMTD6RzSIk=; b=AhyojcL1W6mqtqPr8ciza//8Pf+0f8ZFZSf5s/JhrlxaVfHHKhcT34nLEi3e0BAh3gEX/H aK9IAprMODW/KnfLG2ubHQq4Ky80NgkT3IiRzQXL7ZMo99tvyBUGSg7Cnk1QG5apRgfOvC /ho9rFTbbXUeEtfpUTgRZ4hIZ384MQi/vwLDO0gCKJVqdXJHo1FBXXGKsolP5H1bA6bWCC 9VUS1hRPr5ktsRDxqIzqOBh0pHmutledKL9lv3BI9suvDIeecp6CdyMKFQMgDecr3yGN/A tfK6CSZCRhJexKvSnrW0JJYNDSNMfA9/trYnRIOuvQQCiNwXdUTWRJK60ZN+1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230689; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M9aKqfFDPwsI2Y5GpkHpuxDbQkqGHrnEWAMTD6RzSIk=; b=H1FmuXa1t1rNJEou71Wz1XYxanDCV80zb2V5HL7rpEoXL9iSGhK+gfQ0AdBNbJHe2r6FgD Cn03u5ceCoYF4LZmF6ZEM42hoNo9l4aCPApvxQbkYLXwjhlOltU6+XCdLpKBFdREhbrF3g EBcxRn0QY3lVmUsMux4JCLdVnqowbypUihhgry+dhK6AzHCVGN99iZw1zD8jY4rsVLJPRh +q44MVHU1/w0+ef86E//ymqmjERhkwFe/6aR0CQhi+XPFXEfsIeVxA9GBwY37WCHX7KJ3d b+ZwHA9YZfSnJz5MK/QRUdWVhBvfAj9PQRTPmnXGyyaV+3bJggzexqSKgBDGcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746230689; a=rsa-sha256; cv=none; b=jqaf7mrI5Qib0CpoJi44uaockKzbJNn8HuvCgUkF7ssm1ZM9PGHEuEfUOyDkCIHFBm2oG/ BIPR1fScz+CWODAEjd0QQhEvfuLLxcNFdaRBLcLzuB9v5nBi7sx2oqbsgYTE0eNL81aAga uzsJbgPl8FUil7qCwHlW5wytsYbrR5DswXb6ciSFjf6NXG3Iy/RV0QhhPNgV2se0I/hTi8 a/vrWR9cPY392wYQ4jUdYN/i/vyAb9TIgGdG7XdaJKiMXW8YKc7cmhSbIO2OtHm123COLq firVKYF8Q4e+4Mz1U92676ZDBj4sCzIu0XonMfxNDnx07jSHyvmD0RFxKTp2Tg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zq7MP5K8kz3wC; Sat, 03 May 2025 00:04: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 54304nCJ035257; Sat, 3 May 2025 00:04:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54304n2p035254; Sat, 3 May 2025 00:04:49 GMT (envelope-from git) Date: Sat, 3 May 2025 00:04:49 GMT Message-Id: <202505030004.54304n2p035254@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: cc25864d4568 - main - vfs cache: Move hash row lookup loops into a subroutine 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: cc25864d4568079cadef46291ddf7d501c81d60a Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=cc25864d4568079cadef46291ddf7d501c81d60a commit cc25864d4568079cadef46291ddf7d501c81d60a Author: Mark Johnston AuthorDate: 2025-05-02 21:35:04 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 00:04:32 +0000 vfs cache: Move hash row lookup loops into a subroutine No functional change intended. Reviewed by: olce, kib MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50106 --- sys/kern/vfs_cache.c | 129 +++++++++++++++++++++++++-------------------------- sys/sys/vnode.h | 1 + 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 670ac66ae6d7..86e5c65ba3da 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -585,6 +585,24 @@ VP2VNODELOCK(struct vnode *vp) return (&vnodelocks[(((uintptr_t)(vp) >> 8) & ncvnodehash)]); } +/* + * Search the hash table for a namecache entry. Either the corresponding bucket + * must be locked, or the caller must be in an SMR read section. + */ +static struct namecache * +cache_ncp_find(struct vnode *dvp, struct componentname *cnp, uint32_t hash) +{ + struct namecache *ncp; + + KASSERT(mtx_owned(HASH2BUCKETLOCK(hash)) || VFS_SMR_ENTERED(), + ("%s: hash %u not locked", __func__, hash)); + CK_SLIST_FOREACH(ncp, NCHHASH(hash), nc_hash) { + if (cache_ncp_match(ncp, dvp, cnp)) + break; + } + return (ncp); +} + static void cache_out_ts(struct namecache *ncp, struct timespec *tsp, int *ticksp) { @@ -1877,12 +1895,7 @@ retry: goto out_no_entry; mtx_lock(blp); - - CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (cache_ncp_match(ncp, dvp, cnp)) - break; - } - + ncp = cache_ncp_find(dvp, cnp, hash); if (ncp == NULL) { mtx_unlock(blp); goto out_no_entry; @@ -2078,11 +2091,7 @@ retry: blp = HASH2BUCKETLOCK(hash); mtx_lock(blp); - CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (cache_ncp_match(ncp, dvp, cnp)) - break; - } - + ncp = cache_ncp_find(dvp, cnp, hash); if (__predict_false(ncp == NULL)) { mtx_unlock(blp); SDT_PROBE2(vfs, namecache, lookup, miss, dvp, cnp->cn_nameptr); @@ -2172,11 +2181,7 @@ cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); vfs_smr_enter(); - CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (cache_ncp_match(ncp, dvp, cnp)) - break; - } - + ncp = cache_ncp_find(dvp, cnp, hash); if (__predict_false(ncp == NULL)) { vfs_smr_exit(); SDT_PROBE2(vfs, namecache, lookup, miss, dvp, cnp->cn_nameptr); @@ -2494,7 +2499,6 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, struct celockstate cel; struct namecache *ncp, *n2, *ndd; struct namecache_ts *ncp_ts; - struct nchashhead *ncpp; uint32_t hash; int flag; int len; @@ -2571,45 +2575,46 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, * with this name. This can happen with concurrent lookups of * the same path name. */ - ncpp = NCHHASH(hash); - CK_SLIST_FOREACH(n2, ncpp, nc_hash) { - if (cache_ncp_match(n2, dvp, cnp)) { - MPASS(cache_ncp_canuse(n2)); - if ((n2->nc_flag & NCF_NEGATIVE) != 0) - KASSERT(vp == NULL, - ("%s: found entry pointing to a different vnode (%p != %p) ; name [%s]", - __func__, NULL, vp, cnp->cn_nameptr)); - else - KASSERT(n2->nc_vp == vp, - ("%s: found entry pointing to a different vnode (%p != %p) ; name [%s]", - __func__, n2->nc_vp, vp, cnp->cn_nameptr)); - /* - * Entries are supposed to be immutable unless in the - * process of getting destroyed. Accommodating for - * changing timestamps is possible but not worth it. - * This should be harmless in terms of correctness, in - * the worst case resulting in an earlier expiration. - * Alternatively, the found entry can be replaced - * altogether. - */ - MPASS((n2->nc_flag & (NCF_TS | NCF_DTS)) == (ncp->nc_flag & (NCF_TS | NCF_DTS))); + n2 = cache_ncp_find(dvp, cnp, hash); + if (n2 != NULL) { + MPASS(cache_ncp_canuse(n2)); + if ((n2->nc_flag & NCF_NEGATIVE) != 0) + KASSERT(vp == NULL, + ("%s: found entry pointing to a different vnode " + "(%p != %p); name [%s]", + __func__, NULL, vp, cnp->cn_nameptr)); + else + KASSERT(n2->nc_vp == vp, + ("%s: found entry pointing to a different vnode " + "(%p != %p); name [%s]", + __func__, n2->nc_vp, vp, cnp->cn_nameptr)); + /* + * Entries are supposed to be immutable unless in the + * process of getting destroyed. Accommodating for + * changing timestamps is possible but not worth it. + * This should be harmless in terms of correctness, in + * the worst case resulting in an earlier expiration. + * Alternatively, the found entry can be replaced + * altogether. + */ + MPASS((n2->nc_flag & (NCF_TS | NCF_DTS)) == + (ncp->nc_flag & (NCF_TS | NCF_DTS))); #if 0 - if (tsp != NULL) { - KASSERT((n2->nc_flag & NCF_TS) != 0, - ("no NCF_TS")); - n2_ts = __containerof(n2, struct namecache_ts, nc_nc); - n2_ts->nc_time = ncp_ts->nc_time; - n2_ts->nc_ticks = ncp_ts->nc_ticks; - if (dtsp != NULL) { - n2_ts->nc_dotdottime = ncp_ts->nc_dotdottime; - n2_ts->nc_nc.nc_flag |= NCF_DTS; - } + if (tsp != NULL) { + KASSERT((n2->nc_flag & NCF_TS) != 0, + ("no NCF_TS")); + n2_ts = __containerof(n2, struct namecache_ts, nc_nc); + n2_ts->nc_time = ncp_ts->nc_time; + n2_ts->nc_ticks = ncp_ts->nc_ticks; + if (dtsp != NULL) { + n2_ts->nc_dotdottime = ncp_ts->nc_dotdottime; + n2_ts->nc_nc.nc_flag |= NCF_DTS; } -#endif - SDT_PROBE3(vfs, namecache, enter, duplicate, dvp, ncp->nc_name, - vp); - goto out_unlock_free; } +#endif + SDT_PROBE3(vfs, namecache, enter, duplicate, dvp, ncp->nc_name, + vp); + goto out_unlock_free; } if (flag == NCF_ISDOTDOT) { @@ -2675,7 +2680,7 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, * Insert the new namecache entry into the appropriate chain * within the cache entries table. */ - CK_SLIST_INSERT_HEAD(ncpp, ncp, nc_hash); + CK_SLIST_INSERT_HEAD(NCHHASH(hash), ncp, nc_hash); atomic_thread_fence_rel(); /* @@ -3105,12 +3110,10 @@ cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) return; blp = HASH2BUCKETLOCK(hash); mtx_lock(blp); - CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (cache_ncp_match(ncp, dvp, cnp)) { - if (ncp->nc_vp != vp) - panic("%s: mismatch (%p != %p); ncp %p [%s] dvp %p\n", - __func__, vp, ncp->nc_vp, ncp, ncp->nc_name, ncp->nc_dvp); - } + ncp = cache_ncp_find(dvp, cnp, hash); + if (ncp != NULL && ncp->nc_vp != vp) { + panic("%s: mismatch (%p != %p); ncp %p [%s] dvp %p\n", + __func__, vp, ncp->nc_vp, ncp, ncp->nc_name, ncp->nc_dvp); } mtx_unlock(blp); } @@ -5554,11 +5557,7 @@ cache_fplookup_next(struct cache_fpl *fpl) MPASS(!cache_fpl_isdotdot(cnp)); - CK_SLIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { - if (cache_ncp_match(ncp, dvp, cnp)) - break; - } - + ncp = cache_ncp_find(dvp, cnp, hash); if (__predict_false(ncp == NULL)) { return (cache_fplookup_noentry(fpl)); } diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index a2706e6e6b88..bed20f607339 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -1195,6 +1195,7 @@ vn_get_state(struct vnode *vp) #define vfs_smr_exit() smr_exit(VFS_SMR()) #define vfs_smr_synchronize() smr_synchronize(VFS_SMR()) #define vfs_smr_entered_load(ptr) smr_entered_load((ptr), VFS_SMR()) +#define VFS_SMR_ENTERED() SMR_ENTERED(VFS_SMR()) #define VFS_SMR_ASSERT_ENTERED() SMR_ASSERT_ENTERED(VFS_SMR()) #define VFS_SMR_ASSERT_NOT_ENTERED() SMR_ASSERT_NOT_ENTERED(VFS_SMR()) #define VFS_SMR_ZONE_SET(zone) uma_zone_set_smr((zone), VFS_SMR()) From nobody Sat May 3 00:04:50 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 4Zq7MR3Bphz5vGp1; Sat, 03 May 2025 00:04:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-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 4Zq7MQ6n6Bz40v9; Sat, 03 May 2025 00:04:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230691; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zkbw6+az1M4kK2yLr2ehoLOONhKup06OtUJK0qkWnCI=; b=ypc13RZ2EWx6wqFnhPBPuy210YiI2jDQe5JbM3Nm4V1moac8UjKf54vYsyQ04jxmNgCTUG ztqRcfW8p3Z/IeuMBXyfZGsldxxijvO1M/qqepuNztRkGHxZJnjr0L0Je2mmVJfNbMROL2 rEJq45lWJcLqrwoY2p2cT8dPuBTWo3Ywarg6YjpiF8/8l81V5PfvCOj75pFB3y9IgjNN1O oUGB5pIDITAtb1buggE/BeI7r0VawxvJsrreh8vf7jEhiomK7262vRDWhVkE/5hf4apecp GEUBFHsOxtYSzgHe5oOXZ8qd2D7hiqyLi3gdEpgnzV7YqmZZpBJaDTgNZzkr+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zkbw6+az1M4kK2yLr2ehoLOONhKup06OtUJK0qkWnCI=; b=kwPpxU2v+b7UGyKkf9VoEGdx6Bdcg9cNKtNoMXCiD4Sk8jzvoHWqENoHzEViMP1O/TEF9A FbSVfaADn7En63rn51u9tIhRQXipTAnan8LsC0sMWsPdJnPD564WYG5mesG05LELON6Qby Hsp+N2o5wrUE4tznP4+PmXWcR/VhP09hW8pYBOw36DR3Gq9fHN1XrjTl1qoLIHH+oloerx 24TTIeK1JyqCPQe0NrebxVWvscLevnHRB0NMIraWMGJu7UnNJL630Bf7AiFZYLnyFTTJrb km6GBAGnaPfl0bSCiuTwE6KN0eSl/UYyESoaqDlySgp0TMbwsxh9L8mjWUOq9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746230691; a=rsa-sha256; cv=none; b=q4zIlq4rwzz8eRDJ5gq5sWmZrAcQZVDfGIDheIOYQWjbINzyDdPQv0F/Civi09Gh8UjXvm +emyIjfzFHlKPSzgHt6hEOVGKBD91UQ2HXV9nKQRcUt+bEOPTGMb2MNBQerg5jTjkdoLsy Qya6JRRv/X53WLblF9tsded/FQwIVO8nsS5OE+gZjWgsm41dMeP/h+Cu5FSDkpunhDlQN1 Srvealwa94XlfPKNNJQzYSDIf+2mB+rqGfQH/D89knQTxDl5a+nCX2RcjacbXABjbgjX+Y OM9qWYuY2AtDbcejDxD7HeqTB6Ca/fO3Zjw7O7BeR1uSYBCo8xB68bBOfzSuww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zq7MQ6LClz3rg; Sat, 03 May 2025 00:04: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 54304oTN035292; Sat, 3 May 2025 00:04:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54304osF035289; Sat, 3 May 2025 00:04:50 GMT (envelope-from git) Date: Sat, 3 May 2025 00:04:50 GMT Message-Id: <202505030004.54304osF035289@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: 01435e282112 - main - vfs cache: Simplify cache_enter_time() a bit 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: 01435e28211220f985c66569f60939e440f0887f Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=01435e28211220f985c66569f60939e440f0887f commit 01435e28211220f985c66569f60939e440f0887f Author: Mark Johnston AuthorDate: 2025-05-02 21:35:18 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 00:04:32 +0000 vfs cache: Simplify cache_enter_time() a bit The condition `flag == NFC_ISDOTDOT && vp != NULL && vp->v_type != VDIR` is never true at this point in the function. This is asserted slightly earlier. So, remove some dead code and simplify control flow. N.B. we set v_cache_dd for all vnode types, not just VDIR. This seems to be intentional, see commit ce575cd0e2f9069. For regular files it appears to effectively represent the most recently entered cache entry for the vnode. No functional change intended. Reviewed by: olce, kib MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50107 --- sys/kern/vfs_cache.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 86e5c65ba3da..c949363de003 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -2628,28 +2628,20 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, ("wrong vnode type %p", vp)); atomic_thread_fence_rel(); atomic_store_ptr(&dvp->v_cache_dd, ncp); - } - - if (vp != NULL) { - if (flag != NCF_ISDOTDOT) { - /* - * For this case, the cache entry maps both the - * directory name in it and the name ".." for the - * directory's parent. - */ - if ((ndd = vp->v_cache_dd) != NULL) { - if ((ndd->nc_flag & NCF_ISDOTDOT) != 0) - cache_zap_locked(ndd); - else - ndd = NULL; - } - atomic_thread_fence_rel(); - atomic_store_ptr(&vp->v_cache_dd, ncp); - } else if (vp->v_type != VDIR) { - if (vp->v_cache_dd != NULL) { - atomic_store_ptr(&vp->v_cache_dd, NULL); - } + } else if (vp != NULL) { + /* + * For this case, the cache entry maps both the + * directory name in it and the name ".." for the + * directory's parent. + */ + if ((ndd = vp->v_cache_dd) != NULL) { + if ((ndd->nc_flag & NCF_ISDOTDOT) != 0) + cache_zap_locked(ndd); + else + ndd = NULL; } + atomic_thread_fence_rel(); + atomic_store_ptr(&vp->v_cache_dd, ncp); } if (flag != NCF_ISDOTDOT) { From nobody Sat May 3 00:04:51 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 4Zq7MS1TyXz5vGsB; Sat, 03 May 2025 00:04: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 4Zq7MS0Zsmz40Zv; Sat, 03 May 2025 00:04:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l+wsGeitkdmhSWrNEOnuf7wVbJ20BGrpWRLuR6QsBsc=; b=icUQesgsNsy5SSUvjvm4usWQD3fM/gBW+oAUycb5K/YTp8s5LZvadP7Av+t7YLZTqNWToi RI/dM37wlRL03cTO+6HaCygxlgJFF/VqeoYpANQLtK1g6pRbQOoB+VlJGJYHzDVDZ0afIN uu/OLApVDF73LKYXo4zZSdMfEFFenVcp3U8xTYrlCdIRIgVnX/I9kopjRk3sVx/a2Aivt2 wG7zMtR4tSeSgfIRrhhxswDSiGCdeHbXu/5BcF91GSRzrtmSdoqFfYpbY/fgHakomUm0jd 4vC0eIVfUtcedcuw8CSS5BKwNYOgnp/fFjTMshICv1RbPIBgRTmfCp1JAbJVYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746230692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l+wsGeitkdmhSWrNEOnuf7wVbJ20BGrpWRLuR6QsBsc=; b=s06nLafGA/0n/E/CVUZey6/+W1+yZKvz3zhp6OMUf4c8YmspfKoIypSlJGuXc+RAWMR084 qowCiA7WvaT/vehTNFYX0ckPCOkZBtBu4F7VSRlyJbhWLisNyCGUZHpt7j+aPdJUHC2/dP on8zVbwgM4JHkUZlA2OeKfJtAQOfFyCKAY5vgifBQHc3WoTkAgLLupHKBoCrRuYu3UqtyT WZ6R1ErN0eqf6G6sLw7dacRGr7/hQ2iW37tT+RgrZFDaI4WD/5KVuhP7wjYl7yDv5Mn3L9 dFLTzlilEqjbb/JVUKr2tOhs3jpobxLq4laOVgYfc+GB9EzwCQVEcfNJAAFlxQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746230692; a=rsa-sha256; cv=none; b=fRWrVqEjLkehIK9iJUdjolkvZHUm2EoJ8vK1/CAl2CR5h9rgRaLAYjEpJr0Zx3mAx0OogF CYzLHQ9v0fFH3/gf3hDqqvFD8OBo3lFOHIqbNcfEv/uq2UbvRLPgCJPkPM4ZJ+GMzsaYkB mX0UkuXWlZ4kw/Enx5qq+xm+yG1fOdm+vtAKr+cZ1R63E91Cj4gr/ij8kqh4fherTRdMgn 1/rV0c5xNLmNODNFaNVzhZ5k6/3WgdqzjD5CgFg2gJI42+pUIFYEjVrYGG37XwOHdiZBIp 6urmyvsKjR1sNxSHeXKwLN9UMLiI0UCY0B7MXrDvUtuoqFBCnc6Si9TslIknRA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zq7MS07Xpz3yW; Sat, 03 May 2025 00:04: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 54304pVC035327; Sat, 3 May 2025 00:04:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54304pMh035324; Sat, 3 May 2025 00:04:51 GMT (envelope-from git) Date: Sat, 3 May 2025 00:04:51 GMT Message-Id: <202505030004.54304pMh035324@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: 46adaf3642cf - main - tests: Serialize kern_descrip_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: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 46adaf3642cff045b9ac87bd2e8b32124bd66ba2 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=46adaf3642cff045b9ac87bd2e8b32124bd66ba2 commit 46adaf3642cff045b9ac87bd2e8b32124bd66ba2 Author: Mark Johnston AuthorDate: 2025-05-02 23:59:55 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 00:04:32 +0000 tests: Serialize kern_descrip_test It can trigger failures in unrelated tests when it modifies the maxfiles limit. MFC after: 1 week --- tests/sys/kern/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 0dc7fcbdd8d7..9480ea78266f 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -15,6 +15,8 @@ ATF_TESTS_C+= kcov .endif ATF_TESTS_C+= kern_copyin ATF_TESTS_C+= kern_descrip_test +# One test modifies the maxfiles limit, which can cause spurious test failures. +TEST_METADATA.kern_descrip_test+= is_exclusive="true" ATF_TESTS_C+= fdgrowtable_test ATF_TESTS_C+= kill_zombie .if ${MK_OPENSSL} != "no" From nobody Sat May 3 08:14:26 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 4ZqLDM1Nd7z5twMT; Sat, 03 May 2025 08:14:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqLDM0l1Fz3dSx; Sat, 03 May 2025 08:14:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746260067; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fmNGYG1JaPZ7Ho9BrqCVwJix+8EDNu3PXdr2nxhWCoI=; b=S4Jf5WkOAwnlyAJlnKHPKPs40UrMq52r/PGfqndpmBrx2iGXaqDRsc7f/n/7x51xv0eQ7f v8DYmCq308cN2Q6XXBce40ulHhhPmVQ9qu/pxOv/L9iWUKEA8PZqC8evo5X4UFiBk4AT3T 3pz78faj8vYr697Qk5L9/YZOoJc1WnVhUG2xzJKvPWT8PDj9+eZriek/LmA5UJ9x28TKhW Wq67YzBitm/5qbUhLdLRRRXBLgBW8dS+iIgSEms9zGt60VwTLg6KtKkiHrpxAr7Zwi9CBG VWp6e2Np4cryoryYn6Ag2l0ZyBGK9kwxCbcB5x5Y5Og5aa+alYuURwW79uZ8QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746260067; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fmNGYG1JaPZ7Ho9BrqCVwJix+8EDNu3PXdr2nxhWCoI=; b=xLYngX7+bOMZM4xIW1W46qXsFJNwVapEdK8OczIAtxfIMpYc9UQ1gc9MAvCSevtidc6qH0 YCOJUx3fbsWRUrhJEUMEBBAbfA098KBuLTQavDZtAug6owbnzyAz/Zi/O1G1e9GblG1ehq UBo66DqqqQFChdtokM2izKO6erZnZf3dqoW7pAExiikLsvKic+EyFd//hDnPKJLA/U7Hsa hclZdhSTQehbXVG7EAY7eNWAyFPWFFkgN8YhjRYIbd/ReEygOX3FWIF8htcTWHPFWb9/zg oiyUQR/xu9OTBEKaAKjoeXrAeXkE2mZixUbgvOzHQVNRJJJZ2tpY8G6zva1sRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746260067; a=rsa-sha256; cv=none; b=VxK+gJBqRIwW8iTAgOMP/6t6p+JZ5OVFcWT50EvH24BT4ockXy/QfIfeRM6LqEthwKub1g oS6gzDx7UtteKslmrvtguG4zL5dYbUUp/8vaL0kREXW06hAAKrWGHRwjMvQpbZ9JfWGAzB TxCcr30Lcim5pAk8OTSADwMhcG5f8fGfq8kDAG4Up/cXWE4HbL6A2p4tQy+59IakBW6qF8 XsTf4NvbaJtXjLJIMb//y+LxjzUuIYEmKg/g8VaBQBwwFZvs4FmYsBxiUYhVnVQiX7sA/y yPhNQjSiB13L0ZXGbBbCpcQ0aSlZ6TUm+91mDeWX93Jeu3w0so2kA0yZpbkgZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqLDM008Vzb2T; Sat, 03 May 2025 08:14: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 5438EQ9w053327; Sat, 3 May 2025 08:14:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5438EQoi053324; Sat, 3 May 2025 08:14:26 GMT (envelope-from git) Date: Sat, 3 May 2025 08:14:26 GMT Message-Id: <202505030814.5438EQoi053324@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: 9485d2228660 - main - pf: send a challenge ACK for SYN's matching existing states 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: 9485d22286603ef2ac2e2009dd7dfcc6a59e2283 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=9485d22286603ef2ac2e2009dd7dfcc6a59e2283 commit 9485d22286603ef2ac2e2009dd7dfcc6a59e2283 Author: Kristof Provost AuthorDate: 2025-05-02 12:24:27 +0000 Commit: Kristof Provost CommitDate: 2025-05-03 08:13:52 +0000 pf: send a challenge ACK for SYN's matching existing states PF should send a challenge ACK as response to SYN, which matches existing state. Extra thanks goes to bluhm@ for careful testing and fixing patch I've sent to tech@ O.K. henning@ bluhm@ Obtained from: OpenBSD, sashan , 6679bb1581 Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/pf/pf.c | 62 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index a1301e59533b..8c74b15ef991 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -4373,6 +4373,25 @@ pf_icmp_to_bandlim(uint8_t type) } } +static void +pf_send_challenge_ack(struct pf_pdesc *pd, struct pf_kstate *s, + struct pf_state_peer *src, struct pf_state_peer *dst) +{ + /* + * We are sending challenge ACK as a response to SYN packet, which + * matches existing state (modulo TCP window check). Therefore packet + * must be sent on behalf of destination. + * + * We expect sender to remain either silent, or send RST packet + * so both, firewall and remote peer, can purge dead state from + * memory. + */ + pf_send_tcp(s->rule, pd->af, pd->dst, pd->src, + pd->hdr.tcp.th_dport, pd->hdr.tcp.th_sport, dst->seqlo, + src->seqlo, TH_ACK, 0, 0, s->rule->return_ttl, 0, 0, 0, + s->rule->rtableid); +} + static void pf_send_icmp(struct mbuf *m, u_int8_t type, u_int8_t code, sa_family_t af, struct pf_krule *r, int rtableid) @@ -7013,22 +7032,35 @@ pf_test_state(struct pf_kstate **state, struct pf_pdesc *pd, u_short *reason) if ((action = pf_synproxy(pd, *state, reason)) != PF_PASS) return (action); - if ((*state)->src.state >= TCPS_FIN_WAIT_2 && - (*state)->dst.state >= TCPS_FIN_WAIT_2 && - (((tcp_get_flags(th) & (TH_SYN|TH_ACK)) == TH_SYN) || - ((tcp_get_flags(th) & (TH_SYN|TH_ACK|TH_RST)) == TH_ACK && - pf_syncookie_check(pd) && pd->dir == PF_IN))) { - if (V_pf_status.debug >= PF_DEBUG_MISC) { - printf("pf: state reuse "); - pf_print_state(*state); - pf_print_flags(tcp_get_flags(th)); - printf("\n"); + if (((tcp_get_flags(th) & (TH_SYN | TH_ACK)) == TH_SYN) || + ((th->th_flags & (TH_SYN | TH_ACK | TH_RST)) == TH_ACK && + pf_syncookie_check(pd) && pd->dir == PF_IN)) { + if ((*state)->src.state >= TCPS_FIN_WAIT_2 && + (*state)->dst.state >= TCPS_FIN_WAIT_2) { + if (V_pf_status.debug >= PF_DEBUG_MISC) { + printf("pf: state reuse "); + pf_print_state(*state); + pf_print_flags(tcp_get_flags(th)); + printf("\n"); + } + /* XXX make sure it's the same direction ?? */ + pf_set_protostate(*state, PF_PEER_BOTH, TCPS_CLOSED); + pf_remove_state(*state); + *state = NULL; + return (PF_DROP); + } else if ((*state)->src.state >= TCPS_ESTABLISHED && + (*state)->dst.state >= TCPS_ESTABLISHED) { + /* + * SYN matches existing state??? + * Typically happens when sender boots up after + * sudden panic. Certain protocols (NFSv3) are + * always using same port numbers. Challenge + * ACK enables all parties (firewall and peers) + * to get in sync again. + */ + pf_send_challenge_ack(pd, *state, src, dst); + return (PF_DROP); } - /* XXX make sure it's the same direction ?? */ - pf_set_protostate(*state, PF_PEER_BOTH, TCPS_CLOSED); - pf_remove_state(*state); - *state = NULL; - return (PF_DROP); } if ((*state)->state_flags & PFSTATE_SLOPPY) { if (pf_tcp_track_sloppy(*state, pd, reason, src, dst, From nobody Sat May 3 08:14:28 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 4ZqLDN5DX5z5tvsp; Sat, 03 May 2025 08:14: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 4ZqLDN1Vzyz3dnR; Sat, 03 May 2025 08:14:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746260068; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NhkW2M1EY5qgz6eqM1+ut9F0VhAvqg2z/dfDM/t9hGk=; b=QpjAbKI+SLxr77LpaZYAifoaU0h99NM26vp/WnhXEy0lGgsSR4P2edA9aeTKl+xwORM/Q8 Hv8tBL/DHS2zcTZT9gG16g6DUWkFztpUZsPlN3Xzp3FF9rt5P4JHOXn4AUBgl6wPw4aGZV ixKF2ZBxpyrP/FkePesV0we1TXd9nrQbQPMYEYORX/sbk2Q0nazY9uUFcsXZLnyZFP4eU0 c+hGIeMVWMk60jlCIXWq1xNbZHMFsoCS5b1AcQZ2hE6eZCW1Da2jENotLuKaLAFvIkRJ+R +dBqdCNiIc/PXYdXYvJf7RT9nsU6iXRs036McYl2MfSWXXmY62otuBh4bBqrXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746260068; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NhkW2M1EY5qgz6eqM1+ut9F0VhAvqg2z/dfDM/t9hGk=; b=Z09CrwyJDInhT0kXgzLWeTeRb4x5KUyx4xW5B+eRLFQRMOSdCemXkiJIDnedmIm3/HPtlF hevXqOJ93MvRDHW8XSjCLB4OR637KvIOJC+aC33pW/Uax1ztzNf75hCIYAtKBFqYGdoC20 03aVOxq4oUxMx6KxxgpBYOvTNfzHAG2YOi4uGWMUNtLkFtgs75Kj9jGK+pWYn8AIDrC+B+ BHXXEvNZiCWKk6iCTF91eSU+q1ghSpFpAinTmtcW+7I0MUyijt2WGgprpAjkuKYeM2xDNa LrPuB+i9eN3B0swSy8FDidmxb0glrjT9fHEwx8JvckF3+WwMxj6+skiMLk+Qng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746260068; a=rsa-sha256; cv=none; b=RiKFsDDliWpjGjvt9b7tDwMFDcqYOsPSEHJbWJ0wWLy1jL/GxBBqZ3tQijMqOBBz9ymUkK XePbVElAddU2VXXYFUsmiKrCCNMP1tXr9i7fAzQGgAG+Dt6Qz+GCk57ZwMO8um2Wmww1qo LY+ZqKsgUk++z0DHTVSh8qtJDkyRHXeZMZfmqxDVZuhdGDTIxx3Ekr91jIkod+3RnZL/Jr tUWLH6XxEVhBJgevEhWxLvapUHO2zUUuYDjpqV28tR7YVPH7C5V9R/bbAqc8eTkRX1eAvS jXSArFZBWZ8bbBdr6IEjL5P1GfzUe7gY7GF4VHSPQCXzRiqloGi6odxP3eBxLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqLDN0xwZzbZg; Sat, 03 May 2025 08:14: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 5438ESh5053360; Sat, 3 May 2025 08:14:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5438ESHk053357; Sat, 3 May 2025 08:14:28 GMT (envelope-from git) Date: Sat, 3 May 2025 08:14:28 GMT Message-Id: <202505030814.5438ESHk053357@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: 37b6e0d8e7c4 - main - pf tests: verify that we send an ack challenge 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: 37b6e0d8e7c491ebe4b11f19932152c46b773172 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=37b6e0d8e7c491ebe4b11f19932152c46b773172 commit 37b6e0d8e7c491ebe4b11f19932152c46b773172 Author: Kristof Provost AuthorDate: 2025-05-01 15:46:31 +0000 Commit: Kristof Provost CommitDate: 2025-05-03 08:13:52 +0000 pf tests: verify that we send an ack challenge If there's a state conflict with an open state and a new SYN we send an ack probe. Verify that this works as expected. Sponsored by: Rubicon Communications, LLC ("Netgate") --- tests/sys/netpfil/pf/Makefile | 1 + tests/sys/netpfil/pf/tcp.py | 173 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) diff --git a/tests/sys/netpfil/pf/Makefile b/tests/sys/netpfil/pf/Makefile index db8b4f5130d7..b6c7a2703b7a 100644 --- a/tests/sys/netpfil/pf/Makefile +++ b/tests/sys/netpfil/pf/Makefile @@ -59,6 +59,7 @@ ATF_TESTS_PYTEST+= nat64.py ATF_TESTS_PYTEST+= nat66.py ATF_TESTS_PYTEST+= return.py ATF_TESTS_PYTEST+= sctp.py +ATF_TESTS_PYTEST+= tcp.py # Allow tests to run in parallel in their own jails TEST_METADATA+= execenv="jail" diff --git a/tests/sys/netpfil/pf/tcp.py b/tests/sys/netpfil/pf/tcp.py new file mode 100644 index 000000000000..49a9ef4e0e66 --- /dev/null +++ b/tests/sys/netpfil/pf/tcp.py @@ -0,0 +1,173 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2025 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 sys +import pytest +import random +import socket +import selectors +import threading +import time +from atf_python.sys.net.tools import ToolsHelper +from atf_python.sys.net.vnet import VnetTestTemplate + +class DelayedSend(threading.Thread): + def __init__(self, packet): + threading.Thread.__init__(self) + self._packet = packet + + self.start() + + def run(self): + import scapy.all as sp + time.sleep(1) + sp.send(self._packet) + +class TCPClient: + def __init__(self, src, dst, sport, dport, sp): + self.src = src + self.dst = dst + self.sport = sport + self.dport = dport + self.sp = sp + self.seq = random.randrange(1, (2**32)-1) + self.ack = 0 + + def syn(self): + syn = self.sp.IP(src=self.src, dst=self.dst) \ + / self.sp.TCP(sport=self.sport, dport=self.dport, flags="S", seq=self.seq) + return syn + + def connect(self): + syn = self.syn() + r = self.sp.sr1(syn, timeout=5) + + assert r + t = r.getlayer(self.sp.TCP) + assert t + assert t.sport == self.dport + assert t.dport == self.sport + assert t.flags == "SA" + + self.seq += 1 + self.ack = t.seq + 1 + ack = self.sp.IP(src=self.src, dst=self.dst) \ + / self.sp.TCP(sport=self.sport, dport=self.dport, flags="A", ack=self.ack, seq=self.seq) + self.sp.send(ack) + + def send(self, data): + length = len(data) + pkt = self.sp.IP(src=self.src, dst=self.dst) \ + / self.sp.TCP(sport=self.sport, dport=self.dport, ack=self.ack, seq=self.seq, flags="") \ + / self.sp.Raw(data) + self.seq += length + pkt.show() + self.sp.send(pkt) + +class TestTcp(VnetTestTemplate): + REQUIRED_MODULES = [ "pf" ] + TOPOLOGY = { + "vnet1": {"ifaces": ["if1"]}, + "vnet2": {"ifaces": ["if1"]}, + "if1": {"prefixes4": [("192.0.2.1/24", "192.0.2.2/24")]}, + } + + def vnet2_handler(self, vnet): + ToolsHelper.print_output("/usr/sbin/arp -s 192.0.2.3 00:01:02:03:04:05") + ToolsHelper.print_output("/sbin/pfctl -e") + ToolsHelper.pf_rules([ + "pass" + ]) + ToolsHelper.print_output("/sbin/pfctl -x loud") + + # Start TCP listener + sel = selectors.DefaultSelector() + t = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + t.bind(("0.0.0.0", 1234)) + t.listen(100) + t.setblocking(False) + sel.register(t, selectors.EVENT_READ, data=None) + + while True: + events = sel.select(timeout=2) + for key, mask in events: + sock = key.fileobj + if key.data is None: + conn, addr = sock.accept() + print(f"Accepted connection from {addr}") + events = selectors.EVENT_READ | selectors.EVENT_WRITE + sel.register(conn, events, data="TCP") + else: + if mask & selectors.EVENT_READ: + recv_data = sock.recv(1024) + print(f"Received TCP {recv_data}") + ToolsHelper.print_output("/sbin/pfctl -ss -vv") + sock.send(recv_data) + + @pytest.mark.require_user("root") + @pytest.mark.require_progs(["scapy"]) + def test_challenge_ack(self): + vnet = self.vnet_map["vnet1"] + ifname = vnet.iface_alias_map["if1"].name + + # Import in the correct vnet, so at to not confuse Scapy + import scapy.all as sp + + #time.sleep(30) + + a = TCPClient("192.0.2.3", "192.0.2.2", 1234, 1234, sp) + a.connect() + a.send(b"foo") + + b = TCPClient("192.0.2.3", "192.0.2.2", 1234, 1234, sp) + syn = b.syn() + syn.show() + s = DelayedSend(syn) + packets = sp.sniff(iface=ifname, timeout=3) + found = False + for p in packets: + ip = p.getlayer(sp.IP) + if not ip: + continue + tcp = p.getlayer(sp.TCP) + if not tcp: + continue + + if ip.src != "192.0.2.2": + continue + + p.show() + + assert ip.dst == "192.0.2.3" + assert tcp.sport == 1234 + assert tcp.dport == 1234 + assert tcp.flags == "A" + + # We only expect one + assert not found + found = True + + assert found From nobody Sat May 3 08:14:29 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 4ZqLDP4bCPz5twGG; Sat, 03 May 2025 08:14: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 4ZqLDP1yMsz3dWW; Sat, 03 May 2025 08:14:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746260069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mrkyU7hTI1raE0JAcAvCVrL3+1oxOsveFM1ba+PLsD8=; b=JOVCEx7FBxgrvT57Mni09x6wtF/dTFPKRphGFp1MzJULJFcLwe4GXR5PMatr4AIXBKNtIN QaAxSW9BP9hjdVh0OB/5AYhnNMxObZ7/Saq1SnBeRkq0JqXJw5oJMyb0WO/gObOitYkgPj LajVHwXA7jxqIgyr2fk82qWpUjNf5AeM62GCzEzf3vy9ic+Hgrz0l9f6h70GHxnJEAgQDT f5Q3kNJlzZfBmdrzvuRgmw8W8jZ6t5X6rqCxPIbmyt9yLOrFRLpOO2d4/0gTGVZ98oArF9 l03noHj5HrBWW0oG1eC0q1Se1mermGRWwLx5CkgAQTEGXyme/qyJ2uFiQMw6zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746260069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mrkyU7hTI1raE0JAcAvCVrL3+1oxOsveFM1ba+PLsD8=; b=VvcGCU+gQ1YVRKkDRNOGqIZ8x6yaTlGVvMnpcEQYddIg38ydQOdjfTK4ZxahouXcY81zT7 YZy4BoyOMS8aX57zUkKDXrwVlhcjqtdCGjRR7ryv7cYA8DJlHwqfpyErAH3TSWEZplIJ2+ GiBpwgSjcNJR2FFijsKW/0grJ8gPfhIb4wTSxyRfw0zOJiwbAcv5RIiCSKZXeWndrxHfp9 WiADfPane7It7lnL+pXEc8dbplBaTy66Bb84BRH8P0CZ61Y8JiPay9t1VZ+sqAUA9Iqygp RcwwClwMXJS9R8KMH2TVfw1wuMpTJ1hD3IV2Wmdsl0GJrBjxv7/7CE1lGuNrLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746260069; a=rsa-sha256; cv=none; b=t/0vlzHbK+szcoZb6peI3v+yVoVsrHF0NqP77bA3lvkTgVcUxPfpF135uOMW0jXtPtjMWp sigw52ljpciqggWnw5zufeXRY9FyW64rtXyiZDokkrdY7CFyaZW55DNbnnx+Tsu6jrGh2a J1Jo7Bn/+v4Ujplk4NzjkmtTtiiUSfc17H7GbtTsEMqfGkBX8IW/KsjGL2rJ8USNuFZAO3 9bOrNUkuZrJYD7IEKTxharTDoBWOqu54uSiMJ3AcIddYBdCg+C/SDUOVkYtUeS5qBWPvCx cLvpAmKxmzqTBwoZLNaYWRfmzRdBFU9ksG717tbMIxg1F1MEQlCFau+iYP5OVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqLDP1QwyzbDM; Sat, 03 May 2025 08:14: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 5438ETKD053399; Sat, 3 May 2025 08:14:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5438EThH053396; Sat, 3 May 2025 08:14:29 GMT (envelope-from git) Date: Sat, 3 May 2025 08:14:29 GMT Message-Id: <202505030814.5438EThH053396@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: 4f642f569b47 - main - pfctl: match broadcast address behaviour to 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: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4f642f569b47692a53ce142a6b64c506122b0c22 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4f642f569b47692a53ce142a6b64c506122b0c22 commit 4f642f569b47692a53ce142a6b64c506122b0c22 Author: Kristof Provost AuthorDate: 2025-05-02 12:26:37 +0000 Commit: Kristof Provost CommitDate: 2025-05-03 08:13:53 +0000 pfctl: match broadcast address behaviour to the kernel When using a /32 IPv4 interface address, pfctl(8) reports a 0.0.0.0 as broadcast address. The kernel does not consider this a broadcast address and ifconfig(8) has a check to exclude it. Use the same check in pfctl(8). Found by regress/sbin/pfctl pfi2; OK mikeb@ Obtained from: OpenBSD, bluhm , cf181e999d Sponsored by: Rubicon Communications, LLC ("Netgate") --- sbin/pfctl/pfctl_parser.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index 8a64578b136d..d814b5f200e1 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -1715,6 +1715,8 @@ ifa_lookup(char *ifa_name, int flags) if ((flags & PFI_AFLAG_BROADCAST) && !(p->ifa_flags & IFF_BROADCAST)) continue; + if ((flags & PFI_AFLAG_BROADCAST) && p->bcast.v4.s_addr == 0) + continue; if ((flags & PFI_AFLAG_PEER) && !(p->ifa_flags & IFF_POINTOPOINT)) continue; From nobody Sat May 3 08:56:37 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 4ZqM916w5Nz5tyYV; Sat, 03 May 2025 08:56:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqM9169sjz47Sj; Sat, 03 May 2025 08:56:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746262597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MlKAkYfwvcg5GMsteIxebTKfa2ggtXhMxrq4WdPsmOk=; b=CDWUU0hJBCBaaQiCNbxemi+e9WJsWI+l5Xivf9ZlHsGchonZ9K6Nef58QEsxhNONqQ7eUK JaSP6v9AgiSnuRdeU79C8JEb2dQpyanodrT5og9jw5e9b9kVeA2X385+MjT9xJBPgEvZ3j LzCNSoLo164Ctcqd3/LmRX9CdWRm9dOznWP0FM/4dH/DWtnp56SEX+JfRztgtS4arorBsx TZOh9cbcj94RL0EaLd/uEuFGlTOOzdj6wQxvpkWsWcQtWzQo2msmLDFjEsRSIAfhNv1Rb2 liftojaFMlTMMatSYLXtG8Ul688UuFbvQ1K+URW6xgVrYpQbC6GdqVn8HIdSPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746262597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MlKAkYfwvcg5GMsteIxebTKfa2ggtXhMxrq4WdPsmOk=; b=RC6knUOMGnVowZ4W4WjmMIdHziU+wTjW90RZpWW7WTfOUx7SVbWIyCHim32oniNRQXQc11 76TaB/Yvkgs/lQooEK3e21HdMHrL7cHq8tnSHjuXQ4u48MZ2psQsd3Kr3VfMHz8pBIwMkS uoSSTNOiQHMFrkV2N4AkSw7qg1E9ixJVZ4dnnlvv5FqkcT1/qKgq/lTHHmR0+HSGUtSKH3 vEPJ2kiPMRWv4R11Z8wLpvqVp9tmezTcGNN8WjI88/RIqGDfr233slBCvpXmxFX/TByZ81 MTBZWfq6gZipC/NweHyh9KanGCBAGwHqzDNGvICPBgQ5rz6mw8/NTasK6eGzpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746262597; a=rsa-sha256; cv=none; b=B4rITXGWrNvCTY18BiLljGsuqDVGChr9rdexU4RzuL/uAfJUJO2iqTzJOzERs6WkgCajgX iVWC7ZqChg7KeDCfjCa6BShi7XsNMLGviONZPyV0dbcoXHkEPiuXhmQk/Sgja8Ifn4pCyt Ekd7IfXRcvjl9V5Aq/gbI60prubNI/lY6o5WJZ4TdsUY5b5/VhPiLU/mYqluKPKBWHR0Zn T5A23lpRM8JWByK6SQX4UYtY5p1NtusM5qpFigNeMienjZaLvVhXOpVcrLb1AHVVwNPWxb QaHzKbXARe3sEJLF4+g/OXmbvn8A7uPRVFr1Zg3VCGgl7GBGfw51T9LUHzGCFg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqM915bPVzcXV; Sat, 03 May 2025 08:56: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 5438ub5F028655; Sat, 3 May 2025 08:56:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5438ub3F028652; Sat, 3 May 2025 08:56:37 GMT (envelope-from git) Date: Sat, 3 May 2025 08:56:37 GMT Message-Id: <202505030856.5438ub3F028652@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI Subject: git: d5931764df7f - main - sys/modules/vmm: ${CFLAGS:N-flto} -> ${CFLAGS:N-flto*} 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: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d5931764df7f8c522dd04dd7f0ed413561607c06 Auto-Submitted: auto-generated The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=d5931764df7f8c522dd04dd7f0ed413561607c06 commit d5931764df7f8c522dd04dd7f0ed413561607c06 Author: Xin LI AuthorDate: 2025-04-21 06:16:54 +0000 Commit: Xin LI CommitDate: 2025-05-03 08:55:05 +0000 sys/modules/vmm: ${CFLAGS:N-flto} -> ${CFLAGS:N-flto*} Fixes: 12a6257a96007222e5441d883709fca2a28febb5 Differential Revision: https://reviews.freebsd.org/D49940 --- sys/modules/vmm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/modules/vmm/Makefile b/sys/modules/vmm/Makefile index 1e232779b4b7..066b4d814348 100644 --- a/sys/modules/vmm/Makefile +++ b/sys/modules/vmm/Makefile @@ -142,7 +142,7 @@ svm_support.o: ${.IMPSRC} -o ${.TARGET} hyp_genassym.o: offset.inc - ${CC} -c ${NOSAN_CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC} + ${CC} -c ${NOSAN_CFLAGS:N-flto*:N-fno-common} -fcommon ${.IMPSRC} vmx_genassym.o: offset.inc ${CC} -c ${NOSAN_CFLAGS:N-flto*:N-fno-common} -fcommon ${.IMPSRC} From nobody Sat May 3 15:39:12 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 4ZqX5X35nKz5vVhN; Sat, 03 May 2025 15:39: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 4ZqX5X2LlLz3bF0; Sat, 03 May 2025 15:39:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746286752; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0oDVuVfrglDsZyCsWuJqNFt4agNDPmq+tygAsVb2lhI=; b=W1nr+GFCG7fpQVJRhaIWAJw6pKXQtzTB+wrCA6xQrSIJEgHjvUzFix4o5SUKm6oRLWIIRB /n3TeKTUDpyBe/Z/QL9KEx3fYkmXjW4BbkVbVR8X2mHFlUTdVj+AdtqWYwfog/kElTMxct zWdEpOxZRhxc6LvITpvb0w565SbxyUUon/FJxOuutOx8fYyxe2e1KFQrmllCIg2g4g3CHO oDCj6F9AUF6cvFijybiw0Sd00S5QpOqZSUHxPo1Kl3Ab3r1eZ4Kkm24fe+VewmFiXh9ksE PWcgQzqDCeRAkkplm5GSdjKzFuzPqNwr2y/C9bdkZqHHcq40Ev/LBvGNbis3XQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746286752; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0oDVuVfrglDsZyCsWuJqNFt4agNDPmq+tygAsVb2lhI=; b=r9LcD/uaOobymFHmQTqrCt9MVoQOTwobEA5Xm8PL/JQv776dC0O7zg8WLgjZ4wpQfB4XWG L5SA6tyDbnFEC4SeCuMhrFDBK/knMNuIQIl6e70XmTeHWdg/wdSHxW5emvnAsexIOjutG+ 1SiUMz99s3anv3b1HMbt4cP+tzKVBeiTFATGvLp5rDhUZeVRq2+sPk4HfnMfhyn1kEDco8 m0mtehd8vh1LBUFIDwRg936TahuaLIlwQikOWiGuKfGmfduaFImOrwUlPR8PB6cnKzHZ7b QduiaW5PIIy1YtLt97Xhxs4eiFbfOZ0EQxEoim4MoD8IW/znFk84z5USw6J1Ig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746286752; a=rsa-sha256; cv=none; b=YqbOx84oE5lWHnUYCwyokQe0koalCRiKU7gU/nNFwFJd/gyHZkGMAVMPkabHITSQXkJJuW EhqGxIAFKwn/zFAGUruRchYujf8k9ibP6WHY6k9krAVHxVnDNEdlYEsT4N0gkA493yQkeC bkbTdrnYdxeESuwGW2Cb7The+vA8zcWHBne/Np87cvUoTHm+VUM+n9mTkWCNZlFzCaRjoH bhk6pknLJFg1TtnyaDvssZppU4ahw+LDVXn9YmyhIJOMRQAs8pTCQaBmtrLFA45cyL123w 153FzaT5pgmnWQUWQn9X1FsY/sjWOzSou3DlrBVLNLX1XinOTK5haavVBTVXHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqX5X1QwXzplZ; Sat, 03 May 2025 15:39:12 +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 543FdCUg083043; Sat, 3 May 2025 15:39:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FdCIq083040; Sat, 3 May 2025 15:39:12 GMT (envelope-from git) Date: Sat, 3 May 2025 15:39:12 GMT Message-Id: <202505031539.543FdCIq083040@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: 37ea95328ca6 - main - net80211: document where to find the HT TX width action frame. 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: 37ea95328ca65ffc7368e4d842c28cbd87777b7a Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=37ea95328ca65ffc7368e4d842c28cbd87777b7a commit 37ea95328ca65ffc7368e4d842c28cbd87777b7a Author: Adrian Chadd AuthorDate: 2025-05-01 04:08:40 +0000 Commit: Adrian Chadd CommitDate: 2025-05-03 15:38:04 +0000 net80211: document where to find the HT TX width action frame. This came up when understanding the what ni_chw was doing. Differential Revision: https://reviews.freebsd.org/D50095 Reviewed by: bz --- sys/net80211/ieee80211_ht.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c index 08912dc8fca2..d4e84ce92531 100644 --- a/sys/net80211/ieee80211_ht.c +++ b/sys/net80211/ieee80211_ht.c @@ -2592,6 +2592,11 @@ ht_recv_action_ba_delba(struct ieee80211_node *ni, return 0; } +/* + * Handle the HT channel width action frame. + * + * 802.11-2020 9.6.11.2 (Notify Channel Width frame format). + */ static int ht_recv_action_ht_txchwidth(struct ieee80211_node *ni, const struct ieee80211_frame *wh __unused, @@ -2603,6 +2608,11 @@ ht_recv_action_ht_txchwidth(struct ieee80211_node *ni, if ((ni->ni_htcap & IEEE80211_HTCAP_CHWIDTH40) == 0) return (0); + /* + * The supported values are either 0 (any supported width) + * or 1 (HT20). 80, 160, etc MHz widths are not represented + * here. + */ chw = (frm[2] == IEEE80211_A_HT_TXCHWIDTH_2040) ? IEEE80211_STA_RX_BW_40 : IEEE80211_STA_RX_BW_20; From nobody Sat May 3 15:39:13 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 4ZqX5Y47zkz5vVf7; Sat, 03 May 2025 15:39:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqX5Y29X9z3b8s; Sat, 03 May 2025 15:39:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746286753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LJO+SQzYXFbKi1etGH/nMZYnm34z54sWXPiABXenZJ8=; b=tJCu4Aa2VGPTf8QaO4guoIMSknXvJTnN9KK1nrUa+nu/P66coEG7+7JpEcL/hCR6BWEiNV kpWAHqKFizQ/mFCgtyouWep4Sc0ZzgJKtksgG4Q8tYwsxRe9qywzVyHKdYvC+uIodZVFeU 7LqZ3gSgi9LzfqwhQOUo1I+UvSfNZsH9l+cu5badsEpoqIuXWYOEssnma3y4fxPSbtgDHB 5Tu4Rwt1LCmzX5Dxe3jgkCKBYZXeMXs0GvJxpz2hY9NrUyrlHMp/9SxwOmmFy0Yg8CrSCf kRaQW0N8nfH1foQi0WMbPSNtwoxNUitafnOgQOrMsIYMylVTzofoGYn6JP+1Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746286753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LJO+SQzYXFbKi1etGH/nMZYnm34z54sWXPiABXenZJ8=; b=smgnWN/w3M5cXReuzee/LqbqKWiKScxzgSZXktpj/3/bXmiZG0nqhSq20xYxRxm6JK83Fk eWA0x170zUZJwYQBBNABIx1VIEb4/Ls18h+Sb3rPu3ug7KbSbCPqSU/XmzcuLICcFedIcx Kvh5WA5+/h7As+wTXQxBQEV2rr3DRNl5btjxBFbKs7hc27yhS1ob0xo4uDnsVFmd94Q+M8 dPyB0L1aK4Pf7bQOzAGeMjrOYQjv8UN/ct1l97DkfJ/K7pmsJjnRuK4YmzAf+ztrhwYV/g 5p5CWDnyURqr+XCemPOEYT2gGI3YrTQv0viQUDLnANtMclkTNtd1NDaFROuNwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746286753; a=rsa-sha256; cv=none; b=LmbpMRi6a827o/F+N/+XDse7FT1QykVkkRZngBmPRj7CkfOLdbFUHhHTpkDW2I6OVD0qTe wRIeA9cVr7z+XGL2dmfIqJfoLSqqetE2OsrEir/Y+JevCRh9LVkAqoR4m9WfQ1sZAMPl91 QA6BwWfjh9BIDJhAJWBbb33XKe8jaOk4IwN0wYbUgjnhDH0WSZYBpIExHJQ6erYh2TEGLT kD01oXcEAl9Ysnk9jNH79EA7pP6b/slTXla0f9dSecxSPVK11MNTqE65YZwq0nTvYSfroQ QfZLScgitPrGkh9KG+KZ5zE9ufYf2ozievGkMRwRNxE3/xMwoznS6ZOO1tZV7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqX5Y1Thqznxk; Sat, 03 May 2025 15:39:13 +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 543FdDGl083080; Sat, 3 May 2025 15:39:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FdDxU083077; Sat, 3 May 2025 15:39:13 GMT (envelope-from git) Date: Sat, 3 May 2025 15:39:13 GMT Message-Id: <202505031539.543FdDxU083077@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: 363846a7e31b - main - net80211: fix VHT80/VHT160 transmit width checks 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: 363846a7e31b013dc7ebccd8017578fe79ee5103 Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=363846a7e31b013dc7ebccd8017578fe79ee5103 commit 363846a7e31b013dc7ebccd8017578fe79ee5103 Author: Adrian Chadd AuthorDate: 2025-05-01 04:09:52 +0000 Commit: Adrian Chadd CommitDate: 2025-05-03 15:38:25 +0000 net80211: fix VHT80/VHT160 transmit width checks I didn't double check to see if ni_chw had been updated to actually implement values other than 20/40. It's just implementing the HT channel width stuff during both association and upon receiving a HT TX channel width action frame. This meant the VHT80/VHT160 transmit width checks were never going to be true, as ni_chw is never set to VHT80 / VHT160. After checking the HT action frame and looking for VHT changes, I'm pretty sure there's nothing explicit about VHT width, as it's normally done via CCA (clear channel access) and/or RTS/CTS exchanges - each 20MHz subchannel is RTS/CTS'ed / will be checked and if they're busy, a narrower frame will be transmitted. So, change the VHT80 / VHT160 checks to only check if ni_chw is 20MHz. If it's 20MHz then a HT action frame has come out saying to TX at 20MHz, and we should obey it. Otherwise, do 80/160MHz as available. Differential Revision: https://reviews.freebsd.org/D50096 Reviewed by: bz --- sys/net80211/ieee80211_vht.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sys/net80211/ieee80211_vht.c b/sys/net80211/ieee80211_vht.c index 0df95d87d01a..eb4ea615da75 100644 --- a/sys/net80211/ieee80211_vht.c +++ b/sys/net80211/ieee80211_vht.c @@ -992,9 +992,15 @@ ieee80211_vht_check_tx_vht80(const struct ieee80211_node *ni) vap = ni->ni_vap; bss_chan = vap->iv_bss->ni_chan; + /* + * ni_chw represents 20MHz or 40MHz from the HT + * TX width action frame / HT channel negotiation. + * If a HT TX width action frame sets it to 20MHz + * then reject doing 80MHz. + */ return (IEEE80211_IS_CHAN_VHT80(bss_chan) && IEEE80211_IS_CHAN_VHT80(ni->ni_chan) && - (ni->ni_chw == IEEE80211_STA_RX_BW_80)); + (ni->ni_chw != IEEE80211_STA_RX_BW_20)); } /* @@ -1015,7 +1021,13 @@ ieee80211_vht_check_tx_vht160(const struct ieee80211_node *ni) vap = ni->ni_vap; bss_chan = vap->iv_bss->ni_chan; - if (ni->ni_chw != IEEE80211_STA_RX_BW_160) + /* + * ni_chw represents 20MHz or 40MHz from the HT + * TX width action frame / HT channel negotiation. + * If a HT TX width action frame sets it to 20MHz + * then reject doing 160MHz. + */ + if (ni->ni_chw == IEEE80211_STA_RX_BW_20) return (false); if (IEEE80211_IS_CHAN_VHT160(bss_chan) && From nobody Sat May 3 15:39:14 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 4ZqX5Z5qyYz5vVhV; Sat, 03 May 2025 15:39:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqX5Z3svGz3b4C; Sat, 03 May 2025 15:39:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746286754; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7NWvmFDTt0/YTL8HVNHB2ws/UmdLZ8fQcb84ibS3Kzs=; b=lGt37TywG7sGMqgTqA9yGTgzHb/glKCR/XXVqCf9Rm7KUL+4MQUVIySFA9Xs5RXR4zZAN6 8q6qYqQZhEwCJs4gRpo+jmjZ4L9oDegUHD9Cqg0xRV8kQvMvvc22C20l/CS5/oKCvcx6eK Ln7RZP8xpyRm5ZmWpsnrjTLHPNsOhHY88bf2Rb8x7gFdSDPKp5At6Pol2xhjFQSjL7FfQs pAOMVo071eGCwHcvr09Emo0vaAEbRZmQ9k7n98iKEuYtTk/MJDId2fKZAibtsAkkIT+55z 0fF45d9o0Nf30rs3jDP1HRi1GaBlLBXVyDxfsGAwO8ENb5LCcxvOWQ5vWwUdrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746286754; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7NWvmFDTt0/YTL8HVNHB2ws/UmdLZ8fQcb84ibS3Kzs=; b=shZEhIRA3K1DbK6REQ84v8MwjYUxzbuw3BG3Sq1AN/pZ7ct7dYlB3vihuy0xlP1GzTW+v0 LrESkqHfqFBC4xpYdr80RM7TcICgW1j81Ji5kXoUWwmvXQJkkup+mozIrKCCcocuBlbM9H UhX82McH1tlXBkTwviOqMvmj5gRUQ0sATTGo+iqefkp+q/gMI+ivyae8O7o2ykTFadTg3N Bq5Qukfjtu0YL4WKjicpTh2MElAZ7yoU+0p4kf9HnQFeaKZYdvEXnyoUyBlmrGFrD+umjA ShDYDVzRuvCSPzvMJ8emRkuG5qPzQoPzjVSbEfR3tp8CWeFvTJ1y97akO7vjSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746286754; a=rsa-sha256; cv=none; b=C70In+QSYJjFQw54DEhIgyClxUt6T5s2bgEjGxdHE50eukk1LHI8AaX5MfwDulQF1iPvqD XCyyosSxQYNCcGJAFaVOr6DzttQOSk7/BR5bRo0zSwWM+aniyfzUqt9u3Nby9jfZO5LB+G Lpj1oMWbRfwNRclx3vhwmfwfBmO+5YbOA52JEKTmwUe6RvG9qIbWHXMG6i64wcu0DkaN1m 6653HlSnwCDeoZ55CiRRnalFz5qBC4N0rEvGixyFmXWTG1hj0DVcRUM13Yj5dHRUqeNtgM LixO2e96pa5aLnt5gYMzUAmJkjW/ee0LWgMOhuT1rI27tPuCu3r8BgYtnrguZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqX5Z2jR8zpKM; Sat, 03 May 2025 15:39: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 543FdEXv083112; Sat, 3 May 2025 15:39:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FdETN083109; Sat, 3 May 2025 15:39:14 GMT (envelope-from git) Date: Sat, 3 May 2025 15:39:14 GMT Message-Id: <202505031539.543FdETN083109@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: 44ec60a4290b - main - net80211: fix ff_approx_txtime() to handle VHT rates 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: 44ec60a4290b1b4dd4842889038c399a7bed17bd Auto-Submitted: auto-generated The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=44ec60a4290b1b4dd4842889038c399a7bed17bd commit 44ec60a4290b1b4dd4842889038c399a7bed17bd Author: Adrian Chadd AuthorDate: 2025-04-10 20:27:14 +0000 Commit: Adrian Chadd CommitDate: 2025-05-03 15:38:51 +0000 net80211: fix ff_approx_txtime() to handle VHT rates The fast frames / A-MSDU aggregation code is calculating whether to aggregate frames based on transmit time, which requires a frame length calculation. Unfortunately this is another place where VHT rates started showing up but weren't being handled. This only shows up if IEEE80211_SUPPORT_SUPERG is enabled, which isn't enabled by default (which means there's also no net80211 software driven A-MSDU assembly.) So: * Fetch the rate type * Handle HT, LEGACY, VHT and UNDEFINED * default UNDEFINED to 4ms, which should avoid the FF/A-MSDU aggregation * default VHT to 1ms, to allow SOME possible A-MSDU aggregation where possible. There needs to be a bit more work done on HT/VHT for doing A-MSDU with and without A-MPDU running, as that drastically changes the math. Differential Revision: https://reviews.freebsd.org/D49766 --- sys/net80211/ieee80211_superg.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/sys/net80211/ieee80211_superg.c b/sys/net80211/ieee80211_superg.c index ee3b70d5ed9f..fcf0c614b0a0 100644 --- a/sys/net80211/ieee80211_superg.c +++ b/sys/net80211/ieee80211_superg.c @@ -721,6 +721,7 @@ static uint32_t ff_approx_txtime(struct ieee80211_node *ni, const struct mbuf *m1, const struct mbuf *m2) { + struct ieee80211_node_txrate txr; struct ieee80211com *ic = ni->ni_ic; struct ieee80211vap *vap = ni->ni_vap; uint32_t framelen; @@ -743,20 +744,33 @@ ff_approx_txtime(struct ieee80211_node *ni, if (m2 != NULL) framelen += m2->m_pkthdr.len; - /* - * For now, we assume non-shortgi, 20MHz, just because I want to - * at least test 802.11n. - */ - dot11rate = ieee80211_node_get_txrate_dot11rate(ni); - if (dot11rate & IEEE80211_RATE_MCS) + ieee80211_node_get_txrate(ni, &txr); + + switch (txr.type) { + case IEEE80211_NODE_TXRATE_LEGACY: + dot11rate = ieee80211_node_get_txrate_dot11rate(ni); + frame_time = ieee80211_compute_duration(ic->ic_rt, framelen, + dot11rate, 0); + break; + case IEEE80211_NODE_TXRATE_HT: + /* TODO: check ht40/shortgi */ + dot11rate = ieee80211_node_get_txrate_dot11rate(ni); frame_time = ieee80211_compute_duration_ht(framelen, dot11rate, IEEE80211_HT_RC_2_STREAMS(dot11rate), 0, /* isht40 */ 0); /* isshortgi */ - else - frame_time = ieee80211_compute_duration(ic->ic_rt, framelen, - dot11rate, 0); + break; + case IEEE80211_NODE_TXRATE_VHT: + /* TODO: there's no VHT frame length calculation just yet */ + frame_time = 1000; /* 1ms */ + break; + case IEEE80211_NODE_TXRATE_UNDEFINED: + /* TODO: proper error handling */ + frame_time = 4000; /* 4ms */ + break; + } + return (frame_time); } From nobody Sat May 3 15:47:32 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 4ZqXH94TBMz5vVfB; Sat, 03 May 2025 15:47: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 4ZqXH912hrz3jlJ; Sat, 03 May 2025 15:47:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746287253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HCagqsf/r0euT1IRMAsAl+3PhtUlLhKtZb6Ag6Ayj3Y=; b=Ba9Wo/j+r7VkV1/BLEj/uo1cdVGY2pnCA2rakyaj+QekflsrMeyuQbCij+3VZ4gTQNgvEC h4qbsUAaq724phzbvSgevvCup1bJcHx6/9l1gY6Fn13lpElChRzcPafqoGrB3tXhuT3MA9 O5tThjQtJCFZWsjFMkcMwtSwSh62yP5PIGR+dDJL/xIUB+kElylzzZ1PjqJATHlzqu/mOT xRnk1aoO69+LKWR8HuzD0+Osies4ZvNX80u5HlmtlbS9KlcdKKUKWVm+3IrCLRIyoP4J19 CXTI/MNzHJ4c5JxIyjekf8+39QLcdM185d9vmAzLbvA2lI5O1iYJYIqU0gLesg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746287253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HCagqsf/r0euT1IRMAsAl+3PhtUlLhKtZb6Ag6Ayj3Y=; b=fo+W6XqrpUe3/OrLmZuvZ5R8ayrW8hvejL9G48v85ZvqSTWbjtJTVsGS59CYeRRRdmXL74 +0owWKlQU3fXaWgYrHotCc/Irnd6ffuP0buXvDeVNURu3cban/mDaPGzGajroJwN3v7NZ1 LP17T+aO8VuFavmRvs63iT0+H5lqJxbqv3w8QvITqOZpyJ/Pu0OlwlCJoMEbxZaF8/4BD+ C+kWj371cuajCXQbRebr86cXiS3awyuYof3Hr1eYLIkqdsRWN21ea7uv4yyFZ0ciauhikg jyuyNDMNmpcES9M8t4owWGlkhMLFIMwXSH7SvRcMqfsLqyKipZLzqN7Z1/7vHQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746287253; a=rsa-sha256; cv=none; b=G76XXfb47lSitGrjraahnh8KpK7QBwzXSF8MOa/SJNLvZ8/InxvYOeaFUGw9IWC5rawO5R 5f0thfxo/ja+lDW+LukCgfLcjGq32ajbEAApECpwo6W/d99qz4GbXffka70oE23XZ4XNJL CpGlDwEW2QG0GqECWmQS6jbQfMamDsz764GbUvkKV3gVNHM7KZvJZDV1vbpJgfpOTn6IyJ UueTXzfRAIQAwRQsk4vEP3ROeB17T8Zi4LoZSc6YzhMnEiq4XxXKHWsuC4+SxRjAy2n9GR ilbdcFQugnsrJwyelT+iWDcl5WqZFsjUSp+4rhIt0dbY3qeWHz/exkEYfDBcjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqXH908qtzppW; Sat, 03 May 2025 15:47: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 543FlWGw001767; Sat, 3 May 2025 15:47:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FlW23001764; Sat, 3 May 2025 15:47:32 GMT (envelope-from git) Date: Sat, 3 May 2025 15:47:32 GMT Message-Id: <202505031547.543FlW23001764@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Lexi Winter Subject: git: 1271b1d747a7 - main - rc.d: remove obsolete /etc/rc.d/keyserv 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: ivy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1271b1d747a7746a858e793cda8e78c150c79e01 Auto-Submitted: auto-generated The branch main has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=1271b1d747a7746a858e793cda8e78c150c79e01 commit 1271b1d747a7746a858e793cda8e78c150c79e01 Author: Lexi Winter AuthorDate: 2025-05-03 15:44:03 +0000 Commit: Lexi Winter CommitDate: 2025-05-03 15:44:03 +0000 rc.d: remove obsolete /etc/rc.d/keyserv the keyserv daemon was removed in 9dcb984251b3. also remove its rc script. Reviewed by: kevans, adrian, emaste Approved by: kevans (mentor) Fixes: 9dcb984251b3 ("Remove publickey(5) stuff") Differential Revision: https://reviews.freebsd.org/D50135 --- ObsoleteFiles.inc | 1 + libexec/rc/rc.d/Makefile | 5 +---- libexec/rc/rc.d/keyserv | 28 ---------------------------- 3 files changed, 2 insertions(+), 32 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index b5432dae3824..52cb219c6e89 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -102,6 +102,7 @@ OLD_FILES+=usr/share/man/man1/keylogin.1.gz OLD_FILES+=usr/share/man/man1/keylogin.1.gz OLD_FILES+=usr/share/man/man5/publickey.5.gz OLD_FILES+=usr/share/man/man8/keyserv.1.gz +OLD_FILES+=etc/rc.d/keyserv # 20241206: Remove Altera DE4 drivers OLD_FILES+=usr/share/man/man4/altera_atse.4.gz diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile index 6e2e9d30ef79..122c52be3da8 100644 --- a/libexec/rc/rc.d/Makefile +++ b/libexec/rc/rc.d/Makefile @@ -290,13 +290,10 @@ NTPPACKAGE= ntp _opensm= opensm .endif -.if ${MK_OPENSSL} != "no" -CONFS+= keyserv -.if ${MK_OPENSSL_KTLS} != "no" +.if ${MK_OPENSSL} != "no" && ${MK_OPENSSL_KTLS} != "no" CONFS+= tlsclntd \ tlsservd .endif -.endif .if ${MK_OPENSSH} != "no" CONFGROUPS+= SSH diff --git a/libexec/rc/rc.d/keyserv b/libexec/rc/rc.d/keyserv deleted file mode 100755 index d78695eb33b2..000000000000 --- a/libexec/rc/rc.d/keyserv +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# -# - -# Start keyserv if we are running Secure RPC - -# PROVIDE: keyserv -# REQUIRE: ypset -# BEFORE: DAEMON -# KEYWORD: shutdown - -. /etc/rc.subr - -name="keyserv" -desc="Server for storing private encryption keys" -rcvar="keyserv_enable" -command="/usr/sbin/${name}" -start_precmd="keyserv_prestart" - -: ${keyserv_svcj_options:="net_basic"} - -keyserv_prestart() -{ - force_depend rpcbind || return 1 -} - -load_rc_config $name -run_rc_command "$1" From nobody Sat May 3 15:59:14 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 4ZqXXf4ZYJz5vWYP; Sat, 03 May 2025 15:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqXXf3hWwz3sCR; Sat, 03 May 2025 15:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746287954; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ApPXDRFcaMFmE/I8C9ZcQcAIgvygxlkc6RWarh4SRDw=; b=FDJ7Ce6J9y8Vi2MwIVMSRRTD2LOtEb8JBXG4s5MmhAl+68DAnNHAwShrl4MsheigdrfZED ih0mNbcWpIOER+jlWHxmQCTug8YB1DMwC3Jle5gi+UgfMVEVxEe121B33K2YpS4yTHN7w6 l+2ggesBeJcbQI9venCOq4uMCevoqDFkZPHq2aJUG9wr7fMKTxqAKyoXU/bjRul9yz3EH5 u8qQ+ORaGsemCAGhOYaHnvhFb/HnqsDW0jmeoPd897tGywVJ6FS1E/aMi1DfzzLFtMqyjZ SegCHsPyCH+NcZNycfRoHHRT2x9qMSm8JG/9coih3OtLGD5QUGvVp/+TUfXOkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746287954; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ApPXDRFcaMFmE/I8C9ZcQcAIgvygxlkc6RWarh4SRDw=; b=oxHHJBaH1GNPYXxUulaCnGMUM4uOY/KE6/kRKnzt9qpZTueW+Zsbgv6uzqfSX0vg1BWLim dGvBY+tNwRHUPpRcZVGiuhkUhSroJ+Ttega6sE53qa6mEVHuczhc5Lb0kH7A++1/j0sLsc KIkx6iJbzsqTzS3ZvWHf5Pd0TsiVUApWXn8YucJjVz52rpvvHX/crNEkIp/FoMXeXfqc0E QLzlDePuWpabU3WUtVRGabg74AXCWYXF/IZTIcOP2dgpVE6972No6luCwFUIYm4YczUThH osbYwufG6/0jaJzhYgvkDpBgV50E9pHNnXoeWmtHjYn4a5XC7FnJpy1Y1qBQeg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746287954; a=rsa-sha256; cv=none; b=potrvC9Pl28mpNhQI4cTEx1jEguWiuXCIlEbWZc2hTn3sqSUyax2cBPEjmowny+pmJ2VLE 9NEV/6jkgG/CYIKs+kq7XfIrjzyUF6yG2WWEAw1/z0PH8M2PCm32kkTxuMzqc5I00z9jsy mCeZwKbU8t1+POPpOxK11SDM9GZ1W52P7P2e/fOdvaGczFBp/kj+tPO0AgvFxeCF2axVEm paFXBgWY/eaDECCqaOgt+uDKDnXQhtiVXIsZcXmLWmYD7v1HNwe/Kllkz3IU9kXS5wZD9d 93uPON6XPT8cK/a9JgC3OrDP2lzM/+fCtmdXLMBb/7+0WdY7sM0yU85iCaRBOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqXXf3DxJzpdw; Sat, 03 May 2025 15:59: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 543FxEVK021082; Sat, 3 May 2025 15:59:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FxEgp021079; Sat, 3 May 2025 15:59:14 GMT (envelope-from git) Date: Sat, 3 May 2025 15:59:14 GMT Message-Id: <202505031559.543FxEgp021079@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 26d4ac7a2725 - main - kyua: Don't pass NULL to unique_ptr constructors 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 26d4ac7a2725c0ab2d536c402fc0185fe7afed85 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=26d4ac7a2725c0ab2d536c402fc0185fe7afed85 commit 26d4ac7a2725c0ab2d536c402fc0185fe7afed85 Author: John Baldwin AuthorDate: 2025-05-03 15:58:47 +0000 Commit: John Baldwin CommitDate: 2025-05-03 15:58:47 +0000 kyua: Don't pass NULL to unique_ptr constructors This is ambiguous when NULL is defined to an integral constant. Instead, use the more iodiomatic pattern of {} to construct a default pointer. Reviewed by: olce Differential Revision: https://reviews.freebsd.org/D50090 --- contrib/kyua/utils/process/child.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/kyua/utils/process/child.cpp b/contrib/kyua/utils/process/child.cpp index bfde8159d5c8..d554f1fd9fb5 100644 --- a/contrib/kyua/utils/process/child.cpp +++ b/contrib/kyua/utils/process/child.cpp @@ -223,7 +223,7 @@ process::child::fork_capture_aux(void) std::cerr << F("Failed to set up subprocess: %s\n") % e.what(); std::abort(); } - return std::unique_ptr< process::child >(NULL); + return {}; } else { ::close(fds[1]); LD(F("Spawned process %s: stdout and stderr inherited") % pid); @@ -284,7 +284,7 @@ process::child::fork_files_aux(const fs::path& stdout_file, std::cerr << F("Failed to set up subprocess: %s\n") % e.what(); std::abort(); } - return std::unique_ptr< process::child >(NULL); + return {}; } else { LD(F("Spawned process %s: stdout=%s, stderr=%s") % pid % stdout_file % stderr_file); From nobody Sat May 3 15:59:15 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 4ZqXXg70dKz5vWwT; Sat, 03 May 2025 15:59: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 4ZqXXg4rctz3sHl; Sat, 03 May 2025 15:59:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746287955; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6c1wJBrLv7h4MbMUMl0v/+3mwRTFb07QX8dhv+dN39E=; b=Go7o3NgwH9AD/OXU0C4GOiRfQwsJvAdRsNv0ZyJJuCWmbJ0LLdgpzGvcGP6ywQqziIaB+A 9hbpEjyYchZb6J1gB935XSavCQdUOjkpDnU5CIqCaOiaILB7mcRdtdt1eXzXL7B+8IavOW ALBUuqOgzE0ftSNeg6+kDaJXxgCb7AoDuwRnBa5JYbrN1YML3r3He+y1qandrf3yjU23CR AMdIsNT6qRmrqZHeNQcbvjfWjaJP0TgTxs6ZjL2tI5eQjGUt4LG8rMgQoPEWyncIIQT/dt OT7cG0CFWpoTaLuZJj5ie+aRMSuel3DIl4g+zbLhvuoFlHHCbzmbMi+I3D2PjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746287955; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6c1wJBrLv7h4MbMUMl0v/+3mwRTFb07QX8dhv+dN39E=; b=lh6sMHWevB2gldQtNdnW7ZXS5G8RS4WeNmc0/3a9m7vAO9bdsmE3uFgNwgLTDoBHC7HjKo N2pXkEFWMchMNaDRrO94HLedpTLW6A0XvRV9PAb+NwIpCXoP9ESYvWjEZKgf3Ai7NpYMEg PunNLhL5aCZIr8zHQIS5cH/w15KWyIHjXbgwFOu+t6KaQHrtPGLMZrB2dz/CANpwXwX3Mr nDjwvdbRcR8IHq06Q1CCWYn1dl/asFgxquq2h7a/81D2oV8k0+bmxhRDj3nwq8Hfy8O/Lv lRX3mj6W5EljrcF0BGA/Iys6eDvy4k8T1tusD+3Opt3h5gaZ7N+GMwJbhOlrtA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746287955; a=rsa-sha256; cv=none; b=f+6FG0Woi6KiXigySoYZD5t2Lv4CrDfy8BBvgelC9u3s4PQ5JlW4BIjjNPmsaQMYDBsYP4 zE6N7qgZp/Giu8uUbc6h76UDqosDSuqrmqYBsluLORFjRU51S8vb7dtuwbbI6R2gTwZea0 2C6xzW87Jd+p/hLmUrEuRV2r0XTId3wDPPteasWx0bO+uPZvlK8F+AQ+6LMhF1XEmIYrXa 1M2XsZ4IjUNMrbO8fGgB4ljPEWOtVN0ITUd48uu5RCpEHCIhzwAdyOyXJLxtFfDe5JpvMd IRp9JaIlY6xfdMRwIJkMCMYhEhC7M4w5rvcnUBYnwbwM941dRX0tsaqESdXk+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqXXg4FQqzpdx; Sat, 03 May 2025 15:59: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 543FxFDU021114; Sat, 3 May 2025 15:59:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FxFOi021111; Sat, 3 May 2025 15:59:15 GMT (envelope-from git) Date: Sat, 3 May 2025 15:59:15 GMT Message-Id: <202505031559.543FxFOi021111@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: d61c8bca8648 - main - kyua: Don't pass NULL to std::unique_ptr<>::reset() 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d61c8bca8648fa6dfa89bd5c7dc75726a2740c15 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=d61c8bca8648fa6dfa89bd5c7dc75726a2740c15 commit d61c8bca8648fa6dfa89bd5c7dc75726a2740c15 Author: John Baldwin AuthorDate: 2025-05-03 15:59:02 +0000 Commit: John Baldwin CommitDate: 2025-05-03 15:59:02 +0000 kyua: Don't pass NULL to std::unique_ptr<>::reset() No functional change, this is simply more idiomatic. Reviewed by: olce, emaste Differential Revision: https://reviews.freebsd.org/D50091 --- contrib/kyua/utils/fs/directory.cpp | 2 +- contrib/kyua/utils/logging/operations.cpp | 2 +- contrib/kyua/utils/process/child.cpp | 10 +++++----- contrib/kyua/utils/process/executor.cpp | 4 ++-- contrib/kyua/utils/signals/interrupts.cpp | 6 +++--- contrib/kyua/utils/signals/timer.cpp | 6 +++--- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/contrib/kyua/utils/fs/directory.cpp b/contrib/kyua/utils/fs/directory.cpp index c8cd5e008490..f82fe88f86dc 100644 --- a/contrib/kyua/utils/fs/directory.cpp +++ b/contrib/kyua/utils/fs/directory.cpp @@ -204,7 +204,7 @@ struct utils::fs::detail::directory_iterator::impl : utils::noncopyable { original_errno); } if (result == NULL) { - _entry.reset(NULL); + _entry.reset(); close(); } else { _entry.reset(new directory_entry(_dirent.d_name)); diff --git a/contrib/kyua/utils/logging/operations.cpp b/contrib/kyua/utils/logging/operations.cpp index ce86183910b2..fbcf28b71169 100644 --- a/contrib/kyua/utils/logging/operations.cpp +++ b/contrib/kyua/utils/logging/operations.cpp @@ -245,7 +245,7 @@ logging::set_inmemory(void) if (globals->logfile.get() != NULL) { INV(globals->backlog.empty()); globals->logfile->flush(); - globals->logfile.reset(NULL); + globals->logfile.reset(); } } diff --git a/contrib/kyua/utils/process/child.cpp b/contrib/kyua/utils/process/child.cpp index d554f1fd9fb5..36b6b6b3e51f 100644 --- a/contrib/kyua/utils/process/child.cpp +++ b/contrib/kyua/utils/process/child.cpp @@ -206,12 +206,12 @@ process::child::fork_capture_aux(void) new signals::interrupts_inhibiter); pid_t pid = detail::syscall_fork(); if (pid == -1) { - inhibiter.reset(NULL); // Unblock signals. + inhibiter.reset(); // Unblock signals. ::close(fds[0]); ::close(fds[1]); throw process::system_error("fork(2) failed", errno); } else if (pid == 0) { - inhibiter.reset(NULL); // Unblock signals. + inhibiter.reset(); // Unblock signals. ::setsid(); try { @@ -263,10 +263,10 @@ process::child::fork_files_aux(const fs::path& stdout_file, new signals::interrupts_inhibiter); pid_t pid = detail::syscall_fork(); if (pid == -1) { - inhibiter.reset(NULL); // Unblock signals. + inhibiter.reset(); // Unblock signals. throw process::system_error("fork(2) failed", errno); } else if (pid == 0) { - inhibiter.reset(NULL); // Unblock signals. + inhibiter.reset(); // Unblock signals. ::setsid(); try { @@ -289,7 +289,7 @@ process::child::fork_files_aux(const fs::path& stdout_file, LD(F("Spawned process %s: stdout=%s, stderr=%s") % pid % stdout_file % stderr_file); signals::add_pid_to_kill(pid); - inhibiter.reset(NULL); // Unblock signals. + inhibiter.reset(); // Unblock signals. return std::unique_ptr< process::child >( new process::child(new impl(pid, NULL))); } diff --git a/contrib/kyua/utils/process/executor.cpp b/contrib/kyua/utils/process/executor.cpp index 843c9d862304..bddbeee7605f 100644 --- a/contrib/kyua/utils/process/executor.cpp +++ b/contrib/kyua/utils/process/executor.cpp @@ -633,10 +633,10 @@ struct utils::process::executor::executor_handle::impl : utils::noncopyable { "this could be an internal error or a buggy test") % root_work_directory->directory() % e.what()); } - root_work_directory.reset(NULL); + root_work_directory.reset(); interrupts_handler->unprogram(); - interrupts_handler.reset(NULL); + interrupts_handler.reset(); } /// Common code to run after any of the wait calls. diff --git a/contrib/kyua/utils/signals/interrupts.cpp b/contrib/kyua/utils/signals/interrupts.cpp index 829df7cfbf1e..bb0d1c319856 100644 --- a/contrib/kyua/utils/signals/interrupts.cpp +++ b/contrib/kyua/utils/signals/interrupts.cpp @@ -145,9 +145,9 @@ setup_handlers(void) static void cleanup_handlers(void) { - sighup_handler->unprogram(); sighup_handler.reset(NULL); - sigint_handler->unprogram(); sigint_handler.reset(NULL); - sigterm_handler->unprogram(); sigterm_handler.reset(NULL); + sighup_handler->unprogram(); sighup_handler.reset(); + sigint_handler->unprogram(); sigint_handler.reset(); + sigterm_handler->unprogram(); sigterm_handler.reset(); } diff --git a/contrib/kyua/utils/signals/timer.cpp b/contrib/kyua/utils/signals/timer.cpp index eceaa7fcd4ff..044dec87c352 100644 --- a/contrib/kyua/utils/signals/timer.cpp +++ b/contrib/kyua/utils/signals/timer.cpp @@ -257,7 +257,7 @@ public: _timer_activation = timer->when(); add_to_all_timers(timer); } catch (...) { - _sigalrm_programmer.reset(NULL); + _sigalrm_programmer.reset(); throw; } } @@ -276,7 +276,7 @@ public: } _sigalrm_programmer->unprogram(); - _sigalrm_programmer.reset(NULL); + _sigalrm_programmer.reset(); } /// Programs a new timer, possibly adjusting the global system timer. @@ -530,7 +530,7 @@ signals::timer::unprogram(void) } if (!globals->unprogram(this)) { - globals.reset(NULL); + globals.reset(); } _pimpl->programmed = false; From nobody Sat May 3 19:42:47 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 4ZqdVf5HQVz5vnQV; Sat, 03 May 2025 19:42:50 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) (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 4ZqdVf2hvnz3PtL; Sat, 03 May 2025 19:42:50 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-736ab1c43c4so3261852b3a.1; Sat, 03 May 2025 12:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746301369; x=1746906169; darn=freebsd.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=ntKM9R0rvw1PQ3AUHJ+G0gvpx7JZLleKQijlAiHsbao=; b=fORw1+YHDqpmXgMSmaRzGgiNmh8RYBHACVc57Pnv110NKBvEdriBjHNnSq2HJBDKQ7 rLq35bfJbKQ1WcYxEaHQfwUKxkYCqQ9cSEt6SX7ZLxEuJrcbYMLk1TwcoBb6d/7S2ETN 6R90kifwErepdXulAlzOVmV5S26AhusMFII/SviCa+wO0TACytsSa0Oq5MZR226wbqKh +q9RGsf07+og7wn6+Yvyb7qBOvHyh7dhqnLtM50QXjayCGmOio4gXYjVSS2SNXG3u4dq i7FRBL4CoaxZB25tevELtOnZBGxiYtJI6wQzOzQjO0phgXKnd+JGI8uOieUT37zF8rqo mfvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746301369; x=1746906169; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ntKM9R0rvw1PQ3AUHJ+G0gvpx7JZLleKQijlAiHsbao=; b=VKS9c09wc6bv1VxusioXBgWSyRXXCHfTCU7881yuvNEveweUJFVSUHHMzvkz+qlFmY L9MGAUcvT3UirMIo6Ult/TLIbKfYb7drwWkYdaFENAt2eSLFGSv2J0HhaZnJb5/6dr3p EYmYA79OPPKYxaV6BcNrKLxugQCq8pcsNawXOfYJS3K6H2Z870+TsAfbkr28R43r+9C/ bD0RGaHZ3zorMG+8zKOaJYnzpaBv3j4Bq/CNfGgdIm6S7yWCHdiLfRF7IOC7Krb0sueL GGMPMCFgQGqT2L/LdoeHIavuiyHR8MenGlEBF/xNjUjA7QwexqdmafnNGgL12QIhBlUH eAYw== X-Forwarded-Encrypted: i=1; AJvYcCWIF3vNjwZZFqfaQf2IiXkAftwk6k6f0r3c2ncd6kGbWBdhmmHqVZRRhMMrs9JJaT45Y7SgNNTWIpjxlrLAQUPsV7rK0hs=@freebsd.org, AJvYcCXu3aPGro0v3K1PYreqOpTUvlstyzcMjx0hjuwEhuDLyABKuz1vpjR1RE47h6zOBRBIFOI4VhkVCZFuE24VIGsihliI@freebsd.org X-Gm-Message-State: AOJu0YyHdSwi78Y+t0BiWF6R+urJCLGZrx3Mvc9dyLt6of9c3oOXMPFM bGCKRUHk94FJHZmfxqN2SV9laT96y7mRf8TomuXpL9UrmXO+2uJ09XQVIBE5FzM= X-Gm-Gg: ASbGncvv222ZJ9+kyIIi1m8fbXpgVJWpRiPnclTH/qnnDVQol2zxaVlDW4kwTGxvvPc QZE2pq7P5ykCQW1Mqk5glvVcCh8hzA63J5cG2OkPGRwbZlcwdN1YWJeCM10FLFkdU4WGIKsRdFS 9D2NuWyANEBYmc8e+TH8dWG4hLwNWwO7BtHj0kXbaccaz+5budKlAdG+zCEZRMTd7TAHLORUbbA mrwQH3TqrAkBJVVSF56yMCC/8t4qHIJVq8EImcJLhjSzianKbwc3VVo9+P/YzRsTNQqZMsw0Y5Y AOCMd7WPb0XliuFGdivVQ5rRtjfYv/mf5o/WF4cqvPdBLwX3Llj8/ynF5Jp/ X-Google-Smtp-Source: AGHT+IEFyrPSba8A2qgMgWzvHIGmiSiwb1jjp6KIZG777iIhWjjX1nuerVXMaSZFLEwJ3D+RpOjn4w== X-Received: by 2002:aa7:9304:0:b0:736:31cf:2590 with SMTP id d2e1a72fcca58-7406f164a6bmr2903044b3a.16.1746301368717; Sat, 03 May 2025 12:42:48 -0700 (PDT) Received: from smtpclient.apple ([176.100.43.188]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74058dbb939sm3835737b3a.61.2025.05.03.12.42.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 03 May 2025 12:42:48 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: Enji Cooper 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 (1.0) Subject: Re: git: 46adaf3642cf - main - tests: Serialize kern_descrip_test Date: Sat, 3 May 2025 12:42:47 -0700 Message-Id: <2C233510-D3A1-497B-B6A0-19F32E0D919A@gmail.com> References: <202505030004.54304pMh035324@gitrepo.freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org In-Reply-To: <202505030004.54304pMh035324@gitrepo.freebsd.org> To: Mark Johnston X-Mailer: iPhone Mail (22E252) X-Rspamd-Queue-Id: 4ZqdVf2hvnz3PtL 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-Spamd-Bar: ---- > On May 2, 2025, at 17:05, Mark Johnston wrote: >=20 > =EF=BB=BFThe branch main has been updated by markj: >=20 > URL: https://cgit.FreeBSD.org/src/commit/?id=3D46adaf3642cff045b9ac87bd2e8= b32124bd66ba2 >=20 > commit 46adaf3642cff045b9ac87bd2e8b32124bd66ba2 > Author: Mark Johnston > AuthorDate: 2025-05-02 23:59:55 +0000 > Commit: Mark Johnston > CommitDate: 2025-05-03 00:04:32 +0000 >=20 > tests: Serialize kern_descrip_test >=20 > It can trigger failures in unrelated tests when it modifies the maxfile= s > limit. I need to check back in with this, but does this test require (allow.+)syste= m_side_effects? It seems like it should (also, is_exclusive and system_side_= effects seem like they should overlap with one another..). Thanks! -Enji= From nobody Sat May 3 20:08:41 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 4Zqf4b1RHqz5vptn; Sat, 03 May 2025 20:08:47 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qv1-xf30.google.com (mail-qv1-xf30.google.com [IPv6:2607:f8b0:4864:20::f30]) (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 4Zqf4Z2ry2z3kJV; Sat, 03 May 2025 20:08:46 +0000 (UTC) (envelope-from markjdb@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-qv1-xf30.google.com with SMTP id 6a1803df08f44-6ed16ce246bso19610226d6.3; Sat, 03 May 2025 13:08:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746302925; x=1746907725; darn=freebsd.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:sender :from:to:cc:subject:date:message-id:reply-to; bh=PTJ2iaO/8hofmcJP1aBWOk/hJC4U32/98bAlidoM5aQ=; b=K+BvTrkZs5w8iOSSRz9jfogprc9or8ttIORFmefEPWkXfD7Yllehnsn83YflIvXZ+W Dk9B/zNHG895U651tEmLiS7IBuMlmQ5BzdwUIDdQ4+nYaKKZlcpGraKx/uLNRjHRAR0T mlRPZ033FYadtFcedfZRLVXGuKINwc1yFJwv0fxnOmWdmciNsqq6Mg/u7B9w/81njYSB 7mZTGEAUGWzqI6BhZAEds613VvDRy5wbn0gzP28Wm6xmU1kAfmkEootLhRAJNC/WJIJW vtLgBYQ4cnQJN7Xa0hKA8F7/pl4NozGY6hKLsDty/msvtXE4ozgOq/wPV2vOrCZCwfnC S6Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746302925; x=1746907725; h=in-reply-to:content-transfer-encoding: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=PTJ2iaO/8hofmcJP1aBWOk/hJC4U32/98bAlidoM5aQ=; b=xSAEFOB/toyXWCOXaIQuaVCjttesy+4F5BCxSyw/x+YBlW5O1Pl1SXznSdmTcTIVn0 cZHVaw2/e2XTNURiOvTLqeVIaAqxM4eh9sWkfPELz+6nmJaat27NMpr9GIfTn3lf4faz GxRPzw53Z95kuTpeZNjnocJfXliuxfdXEF4/w+GThGq6VEI2eS+mTaDRDKEntiFtp5oV gf39iKnLEfuj3tKnuOp6pJIaT4CUUVgYnSReNtyi38fszR5obJUbEM7Nb/IqbDAytB9b GabrTzai5hfLnXSHb8D+9HFiyEdwL3pr/s3sPpXMKYFyMBruM7gbL3rZ8DWmT/2zpejm Y4HQ== X-Forwarded-Encrypted: i=1; AJvYcCWtuPsEp6U1zt/Fj53A+0JzCJXIw+k6eh7O9KF/yHQEZ4CcjfvJvm2tkLLUb3cbkITCSRJmmVgLY8z1XRBQZcxyrAhkjp0=@freebsd.org, AJvYcCXU1CIHe8+9WUd9q0wZO9GS0XqC8r9phmUl7+2DFULUV/rc/9plOA2RFBtRZ4b0FygHRBUZWTbOg9jU0ZNcEZH03LUf@freebsd.org X-Gm-Message-State: AOJu0YzWNCJxJZmkRncJeGfLEFkAu9mWO5kqknc6Tceyb6M7K9aVSy3n C6OpGgNPXv7TNDMbwnH7c8eaik+QNFDmGWSXWu5ox0W3Dn8PFptHGq2wGAL1 X-Gm-Gg: ASbGncsFMgM6JhWk9JftLZsJ4Z/HNhzOSggdh70InSNDPQCyGR8RKbKDQjrgztuJk9K O0R50hwGUNKdxpxmvj5DBxUNeA7AYcK+rCVzPYf4osk7L4OTC/VWZmPBnJvmwFxXrknyuWXDz5B e4bcqCUD9HkIUvSeoYf4RZSFBjtREz2h1MWlXnywHh2SK5wtEVwaWSkczaFMqegF3ZcHVBc9LCR J8bfB4/dHYr0FzS+57kgbUCxSkCZrW+aF+BZYT2kyWmn+I0C/fdQDBplWAlUAS6DfeUl+RUzN/p qmCbQCCarnMmrlUbmohxmwcw9exLqQKVW4kvLq5YGMI5Nk2jwiRI/sY= X-Google-Smtp-Source: AGHT+IHH72Dj6hZxC/6iGeR1OiVVx2BsyfH9sp+9Lm+Rfveut3e1KtooyjDTmXoTBktEABCNFVzJ5w== X-Received: by 2002:ad4:5fcc:0:b0:6e8:eabf:fd44 with SMTP id 6a1803df08f44-6f528ca3c05mr33551226d6.27.1746302925349; Sat, 03 May 2025 13:08:45 -0700 (PDT) Received: from nuc (192-0-220-237.cpe.teksavvy.com. [192.0.220.237]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f50f3d2e0csm35181326d6.60.2025.05.03.13.08.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 May 2025 13:08:44 -0700 (PDT) Date: Sat, 3 May 2025 16:08:41 -0400 From: Mark Johnston To: Enji Cooper Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 46adaf3642cf - main - tests: Serialize kern_descrip_test Message-ID: References: <202505030004.54304pMh035324@gitrepo.freebsd.org> <2C233510-D3A1-497B-B6A0-19F32E0D919A@gmail.com> 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-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2C233510-D3A1-497B-B6A0-19F32E0D919A@gmail.com> X-Rspamd-Queue-Id: 4Zqf4Z2ry2z3kJV 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-Spamd-Bar: ---- On Sat, May 03, 2025 at 12:42:47PM -0700, Enji Cooper wrote: > > > On May 2, 2025, at 17:05, Mark Johnston wrote: > > > > The branch main has been updated by markj: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=46adaf3642cff045b9ac87bd2e8b32124bd66ba2 > > > > commit 46adaf3642cff045b9ac87bd2e8b32124bd66ba2 > > Author: Mark Johnston > > AuthorDate: 2025-05-02 23:59:55 +0000 > > Commit: Mark Johnston > > CommitDate: 2025-05-03 00:04:32 +0000 > > > > tests: Serialize kern_descrip_test > > > > It can trigger failures in unrelated tests when it modifies the maxfiles > > limit. > > I need to check back in with this, but does this test require (allow.+)system_side_effects? Yes. > It seems like it should (also, is_exclusive and system_side_effects seem like they should overlap with one another..). Yes, require.config allow_system_side_effects should imply is_exclusive, that makes perfect sense to me. From nobody Sat May 3 20:49:33 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 4Zqfzf0xlQz5tdfc; Sat, 03 May 2025 20:49: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 4Zqfzd1Xpbz3K3k; Sat, 03 May 2025 20:49:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746305373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A+P0vgxlOuQ5+xOfCIg6DcpsAprc5IRLe6pv1lZBXG0=; b=c+tzvDvKNIq79FStULNZQbXALcVMamVPIx4C8U4H5D6TBGWeR20kur60engS8QG1Dige0M xpHXwE4w/5d0Rn7LhrC7j8XwAJzNRGeIV8b8AuApx7v6rA4N8mbLL9jsBW/Id5x4EWiQ0b FLBQCw9PdxUmEfdRe5R26z42oQRiYufMwfyurDVfzN6yJPeOnlsQwyMEgOCmIvHkqNWFiz kV5wJM36e09wi+S2S0yDHkLqc5mROo6fnvRSdje6fYULiqpCzmSjHjudH2grzDMGKt1TA8 fsqNSu7dP3CHaTI6XLWrkyJZh0DonkbfFqGU5tgPHqDkl24AVh3oT5nNvf46KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746305373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A+P0vgxlOuQ5+xOfCIg6DcpsAprc5IRLe6pv1lZBXG0=; b=xV+ACCnADenrqTQiapH20xTCu9t11uKutd2B+4AGGv80YmlDU+96VBBsEcqW6gMcqbm6UP yXM0l59utNMJNlnrtH75qwxCBcF5vzvx4nHnmp5JsOwLFS7SlW4qsrjYPj8G0EAldbRVSM tGHPuExrbaMInN4/qDoamIvHyMTLFXYG1WS8w1zFoOhDUnF7aSlqIez2+oIOelpJA1dugg P6yN5misd+bkTHzzTt5puXhx63vdOFHPQrC/9t9dLDgyYVzqP1B+UakpOLejQ5ySR3h3Zm 3GIMwhEQa1CSLEkPFBealJfBPOZlEhh04trcZYSP7vztSmLCL/OYbfQzjMQpnA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746305373; a=rsa-sha256; cv=none; b=Fbq/d+qYZxuYW1Vq6dlYuXzWxvdmaexoVEBYlZH7hN3FubO7k3X06Jxbml2I0tpTdHhs/E bj7lqBNSJrdoyxRGizmK/5DtBflu1Z5mqFJEsWokxF5ek5wilBQwcBy6mla76rM+AXlUUd QhsO2kXKHE7e73eFGIusGkE4JFaZzXryfpc0/LX4LhGWxiTwlrNITKJmnYuxaEX/EJccQ9 +Z1SyjcaLTPGVCX/QAYv/fNwor0REYNVySqGl+KXev5BxL6EtGxAYngTvgP30kucNdEVAI ERGd3C+rBRzYusiVDx/83E4Rsskoe39YUefUcrMzFO8OLZPN7y8KYHOpNn3vpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zqfzd10SKzyRf; Sat, 03 May 2025 20:49: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 543KnXpS065616; Sat, 3 May 2025 20:49:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543KnXiJ065613; Sat, 3 May 2025 20:49:33 GMT (envelope-from git) Date: Sat, 3 May 2025 20:49:33 GMT Message-Id: <202505032049.543KnXiJ065613@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: 981af1192cfa - main - bpf: Make bpf.h self-contained 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: 981af1192cfa5ecd7bee9fe47386ed9d45397828 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=981af1192cfa5ecd7bee9fe47386ed9d45397828 commit 981af1192cfa5ecd7bee9fe47386ed9d45397828 Author: Mark Johnston AuthorDate: 2025-05-03 20:43:42 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 20:44:45 +0000 bpf: Make bpf.h self-contained PR: 286539 MFC after: 3 days --- sys/net/bpf.h | 1 + tools/build/test-includes/badfiles.inc | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/bpf.h b/sys/net/bpf.h index 654d6c00199e..486e3f59f7d5 100644 --- a/sys/net/bpf.h +++ b/sys/net/bpf.h @@ -37,6 +37,7 @@ #ifndef _NET_BPF_H_ #define _NET_BPF_H_ +#include #include #include #include diff --git a/tools/build/test-includes/badfiles.inc b/tools/build/test-includes/badfiles.inc index 2ed61c32aa4e..d77ce3eae51f 100644 --- a/tools/build/test-includes/badfiles.inc +++ b/tools/build/test-includes/badfiles.inc @@ -132,7 +132,6 @@ BADHDRS= \ sys/vdso.h \ sys/vmmeter.h \ sys/vnode.h \ - net/bpf.h \ net/bpf_buffer.h \ net/bpf_jitter.h \ net/bpf_zerocopy.h \ From nobody Sat May 3 20:49: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 4Zqfzf4ZnSz5tdlp; Sat, 03 May 2025 20:49: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 4Zqfzf2H2Tz3KFL; Sat, 03 May 2025 20:49:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746305374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9R5ubvghj910G+RaOxqxBrxJR8RXswSF5wUDPoogo/4=; b=GcJVJYbS5bupCwNsHd3x+V0C9l8EeJ0y1oFBcFkmx6I/kSkoRJvMwyaOAPYyXPOL0N1T54 glzvLBE5n1R5jHjxfXCvJrUL01iObN8OMw2/24xkB2FWxC5WXPZ2T3D6cx3Xyo63ACoXXY 9aFpDn2iMzvcK5DD89JCMAjlR9IwF2skhi5TVZAMcoZCeFL2kAy1P97waw3jLFk3YuaRAW zGvafv/3qtoumc/HujMRRNo1hUIAGgkmdqrEJbjzO43TqxYfljRhNEYtOMz0fefMMs/1qn eYWFtAplNlvpuML3cGJaWJkiEMSlOl+1kv9v2+apXW0ZapLL6IB2xr8B9ZG4lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746305374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9R5ubvghj910G+RaOxqxBrxJR8RXswSF5wUDPoogo/4=; b=GiQMAYGmrOnLOtuSFibAZzxpLUpZmriCG+v0y4lOaVHtffGtF+HWiY5gg7UWZoKVfSbovI BLsfRA7jTAYoSCb2cyGimXb9e/9jpsOZh6h2TV5qKKc9XcKJ3XQjFCU8xtqhroguBusdOv JLySy4M4aSdwpGvAJWLlH9ZmbG4po7mmg05rhbXaPDRYmJmuDyWjQ2C6DtFfDX2jT4Df6N dK500lu9P7jFSUh686wvoaKLSEAtXvYlNV0GCJbX8lLKyZ64i3R/+eaMega0BJdMynOarq 0aVW5vj6BVHSs7gfv9AoD3L8/CDReLJr18rs2n0NAgVf3WEMdCk+S5hbXvoljA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746305374; a=rsa-sha256; cv=none; b=M+L3w9rP3q0yWFvtyYl1NKM1yChjWEKsu8o0SmSDZykAXjWxcLdqdh6DI1to1tPgYxY268 W+Smp5epDv7hcxj0LXc9PZY2QFh6XmTJxhWgrAlBJFdsB873TrxUNQwQia1evt+k0jPBPM ua0hBDtNpT/L4In4UYiKFGLIE1usX0FyCCvpCQ014cfLdaOmM13BuP5XE7KWz8yMKB3JkS W1/HCtC0BVC6bbIafbImsG+AGuiQEj2nyJVIjTILtPaAT5ARbXIrUBHLWadXlVEtvGgCe0 0cJsCPysdAlK2uPUd2yHABf0ACX2fe0mAObbh67tYNNQoB/BV10s4gLE7VnXoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zqfzf1kKWzyJM; Sat, 03 May 2025 20:49: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 543KnYt2065650; Sat, 3 May 2025 20:49:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543KnYsi065647; Sat, 3 May 2025 20:49:34 GMT (envelope-from git) Date: Sat, 3 May 2025 20:49:34 GMT Message-Id: <202505032049.543KnYsi065647@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: 75d173a84836 - main - netinet: Make in_systm.h self-contained 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: 75d173a84836d14b12a0f747ffed7d37766dd274 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=75d173a84836d14b12a0f747ffed7d37766dd274 commit 75d173a84836d14b12a0f747ffed7d37766dd274 Author: Mark Johnston AuthorDate: 2025-05-03 20:44:13 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 20:44:45 +0000 netinet: Make in_systm.h self-contained PR: 286539 MFC after: 3 days --- sys/netinet/in_systm.h | 2 ++ tools/build/test-includes/badfiles.inc | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/netinet/in_systm.h b/sys/netinet/in_systm.h index 2750733335bb..2f057b962d79 100644 --- a/sys/netinet/in_systm.h +++ b/sys/netinet/in_systm.h @@ -32,6 +32,8 @@ #ifndef _NETINET_IN_SYSTM_H_ #define _NETINET_IN_SYSTM_H_ +#include + /* * Miscellaneous internetwork * definitions for kernel. diff --git a/tools/build/test-includes/badfiles.inc b/tools/build/test-includes/badfiles.inc index d77ce3eae51f..9feb73edc5d0 100644 --- a/tools/build/test-includes/badfiles.inc +++ b/tools/build/test-includes/badfiles.inc @@ -243,7 +243,6 @@ BADHDRS= \ netinet/in_pcb.h \ netinet/in_pcb_var.h \ netinet/in_rss.h \ - netinet/in_systm.h \ netinet/in_var.h \ netinet/ip6.h \ netinet/ip_carp.h \ From nobody Sun May 4 07:09:46 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 4ZqwlL5NyZz5vSJ6; Sun, 04 May 2025 07:09: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 4ZqwlL5BtVz3pdW; Sun, 04 May 2025 07:09:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746342590; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t2O9A6SRwfkYyPDFyl8+fuWNMkqKcRZ6CG7c1XUjr2g=; b=cvZW0zpSp/PflG9StwTBZ4A19g+/roBngAZghTgLfvs3gfLggcRHeKp88b1bk/AzurBzV7 qJkjsePEH8G5z0pQjy2YMPeuZ/YH0GEpVoR/uY4360HZW6kmUWCLAkaK1dgRkP11pkYrSj YoZGZlUL1Diwk138fIG/7iCUXs8ij+x3ZcI3GsS6klDlxK+KOYpfsukmsmepUu3PJhT0xq ZMc7HFPKnqrjrM0ywV4o9MUmxMmmu2DXYRXxD9/PB6MW9czIsT0QDFTwlJ0hNXszUFW/bb B/cXRsNXJubKEdy8igb0eAdfduOI4dQTUexcZCsGNGw0HP7y1rh1YTR/MVI7KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746342590; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t2O9A6SRwfkYyPDFyl8+fuWNMkqKcRZ6CG7c1XUjr2g=; b=RWOF14bnZklkNaGXpos4ZozeTejBBZCtgLIVnXu4bn38o4r/+qyO4vsSoSMGu2j3tDIUhy GFD2ptzIrtwc+C0tmbsKLmI7mq4l52oERBKgJHfFtiQ6iTRjUmv0fagsCPrP37/yboFAQj 6mBCaBSljavhI1DWJ4dXGfGMX8rVyEKN1iyE1pagMyMWofPHfLMBLcJ1zQ2rwd1QGoD+Q6 7j7kUvhPEpA0aCX3WrxN2yrwCqXaf8Y0r41mfvnVQ2WV4/UpWzy0CcZxgPGD7aqJcjFkFA OxhPzsdn6TGxfvwSNVhEeMCpb9EBeKAdK4k/GPWF0mDU85+UE5k/8rzzEp2RWA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746342590; a=rsa-sha256; cv=none; b=LHcEZTgIUY31E4bX3A987p29BPTSJhxCwLoLiDGpK/EjHeDd6GlR8Vli4a2Zl2Z8gODQKO 5aV4qeWqdTXjfTKPaUxEhwA5Ia0zEwYhxYVzuXNvmlMGllxLq8ewGUhezxcG295XrlLnrG +8t/kCouYwL+jl8HKWBSVabuCXWbccrnb//EF3oufYk/9Ga7mv/Vw6SamtZUAnOD603IeU 1kA875jn+EfeoGtnmsfSpGx9bfe4fw5oOMddHjwvSpGs6b+7wrUser5UOmjvYg5zsth01K TizdDuPHjfN960polmz/vIr3gY2skeNxBp+w3WUEQepvQV7H9gY92B8fUia/Dw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqwlL4FbKz3Gt; Sun, 04 May 2025 07:09: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 54479oFJ028532; Sun, 4 May 2025 07:09:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54479kYC028511; Sun, 4 May 2025 07:09:46 GMT (envelope-from git) Date: Sun, 4 May 2025 07:09:46 GMT Message-Id: <202505040709.54479kYC028511@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI Subject: git: 128836d304d9 - main - MFV: xz 5.8.1. 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: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 128836d304d93f2d00eb14069c27089ab46c38d4 Auto-Submitted: auto-generated The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=128836d304d93f2d00eb14069c27089ab46c38d4 commit 128836d304d93f2d00eb14069c27089ab46c38d4 Merge: 75d173a84836 12eff5f0d8b7 Author: Xin LI AuthorDate: 2025-05-04 07:06:22 +0000 Commit: Xin LI CommitDate: 2025-05-04 07:06:22 +0000 MFV: xz 5.8.1. PR: bin/286252 MFC after: 1 week contrib/xz/AUTHORS | 2 +- contrib/xz/COPYING | 25 +- contrib/xz/ChangeLog | 6031 +++++++++++++++----- contrib/xz/README | 107 +- contrib/xz/THANKS | 37 + contrib/xz/TODO | 25 +- contrib/xz/src/common/my_landlock.h | 141 + contrib/xz/src/common/sysdefs.h | 58 +- contrib/xz/src/common/tuklib_common.h | 11 +- contrib/xz/src/common/tuklib_gettext.h | 11 + contrib/xz/src/common/tuklib_mbstr.h | 25 +- contrib/xz/src/common/tuklib_mbstr_nonprint.c | 162 + contrib/xz/src/common/tuklib_mbstr_nonprint.h | 71 + contrib/xz/src/common/tuklib_mbstr_width.c | 34 +- contrib/xz/src/common/tuklib_mbstr_wrap.c | 294 + contrib/xz/src/common/tuklib_mbstr_wrap.h | 204 + contrib/xz/src/common/tuklib_physmem.c | 11 +- contrib/xz/src/liblzma/api/lzma/bcj.h | 97 + contrib/xz/src/liblzma/api/lzma/container.h | 2 +- contrib/xz/src/liblzma/api/lzma/lzma12.h | 2 +- contrib/xz/src/liblzma/api/lzma/version.h | 4 +- contrib/xz/src/liblzma/check/check.h | 18 - contrib/xz/src/liblzma/check/crc32_arm64.h | 55 +- contrib/xz/src/liblzma/check/crc32_fast.c | 46 +- contrib/xz/src/liblzma/check/crc32_loongarch.h | 65 + contrib/xz/src/liblzma/check/crc32_small.c | 3 + contrib/xz/src/liblzma/check/crc32_table.c | 42 - contrib/xz/src/liblzma/check/crc32_x86.S | 14 +- contrib/xz/src/liblzma/check/crc64_fast.c | 39 +- contrib/xz/src/liblzma/check/crc64_table.c | 37 - contrib/xz/src/liblzma/check/crc64_x86.S | 14 +- .../xz/src/liblzma/check/crc_clmul_consts_gen.c | 160 + contrib/xz/src/liblzma/check/crc_common.h | 111 +- contrib/xz/src/liblzma/check/crc_x86_clmul.h | 519 +- contrib/xz/src/liblzma/common/alone_decoder.c | 3 +- contrib/xz/src/liblzma/common/auto_decoder.c | 5 +- contrib/xz/src/liblzma/common/block_decoder.c | 6 +- contrib/xz/src/liblzma/common/block_encoder.c | 6 +- contrib/xz/src/liblzma/common/common.c | 8 +- contrib/xz/src/liblzma/common/file_info.c | 22 +- contrib/xz/src/liblzma/common/index_decoder.c | 9 +- contrib/xz/src/liblzma/common/index_encoder.c | 6 +- contrib/xz/src/liblzma/common/index_hash.c | 7 +- contrib/xz/src/liblzma/common/lzip_decoder.c | 14 +- contrib/xz/src/liblzma/common/memcmplen.h | 12 +- contrib/xz/src/liblzma/common/stream_decoder.c | 16 +- contrib/xz/src/liblzma/common/stream_decoder_mt.c | 140 +- contrib/xz/src/liblzma/common/stream_encoder_mt.c | 10 +- contrib/xz/src/liblzma/common/string_conversion.c | 99 +- contrib/xz/src/liblzma/liblzma_generic.map | 10 + contrib/xz/src/liblzma/liblzma_linux.map | 10 + contrib/xz/src/liblzma/lz/lz_decoder.c | 21 +- contrib/xz/src/liblzma/lz/lz_decoder.h | 103 +- contrib/xz/src/liblzma/lz/lz_encoder.c | 2 +- contrib/xz/src/liblzma/lz/lz_encoder_hash.h | 30 +- contrib/xz/src/liblzma/lzma/lzma2_encoder.c | 9 +- contrib/xz/src/liblzma/lzma/lzma_decoder.c | 2 +- contrib/xz/src/liblzma/simple/arm.c | 4 +- contrib/xz/src/liblzma/simple/arm64.c | 22 +- contrib/xz/src/liblzma/simple/armthumb.c | 7 +- contrib/xz/src/liblzma/simple/ia64.c | 4 +- contrib/xz/src/liblzma/simple/powerpc.c | 4 +- contrib/xz/src/liblzma/simple/riscv.c | 18 + contrib/xz/src/liblzma/simple/sparc.c | 5 +- contrib/xz/src/liblzma/simple/x86.c | 24 + contrib/xz/src/lzmainfo/lzmainfo.c | 52 +- contrib/xz/src/xz/args.c | 41 +- contrib/xz/src/xz/args.h | 2 +- contrib/xz/src/xz/coder.c | 28 +- contrib/xz/src/xz/file_io.c | 260 +- contrib/xz/src/xz/file_io.h | 10 +- contrib/xz/src/xz/list.c | 39 +- contrib/xz/src/xz/main.c | 10 +- contrib/xz/src/xz/message.c | 506 +- contrib/xz/src/xz/options.c | 15 +- contrib/xz/src/xz/private.h | 1 + contrib/xz/src/xz/sandbox.c | 78 +- contrib/xz/src/xz/suffix.c | 12 +- contrib/xz/src/xz/util.c | 10 +- contrib/xz/src/xz/xz.1 | 94 +- contrib/xz/src/xzdec/xzdec.c | 75 +- lib/liblzma/Makefile | 9 +- lib/liblzma/Symbol.map | 9 + lib/liblzma/Versions.def | 5 +- lib/liblzma/config.h | 18 +- usr.bin/lzmainfo/Makefile | 5 +- usr.bin/xz/Makefile | 4 +- usr.bin/xzdec/Makefile | 3 +- 88 files changed, 7849 insertions(+), 2552 deletions(-) diff --cc contrib/xz/src/common/my_landlock.h index 000000000000,e135d08c858f..e135d08c858f mode 000000,100644..100644 --- a/contrib/xz/src/common/my_landlock.h +++ b/contrib/xz/src/common/my_landlock.h diff --cc contrib/xz/src/common/tuklib_mbstr_nonprint.c index 000000000000,dc778757b148..dc778757b148 mode 000000,100644..100644 --- a/contrib/xz/src/common/tuklib_mbstr_nonprint.c +++ b/contrib/xz/src/common/tuklib_mbstr_nonprint.c diff --cc contrib/xz/src/common/tuklib_mbstr_nonprint.h index 000000000000,6fc969109fe0..6fc969109fe0 mode 000000,100644..100644 --- a/contrib/xz/src/common/tuklib_mbstr_nonprint.h +++ b/contrib/xz/src/common/tuklib_mbstr_nonprint.h diff --cc contrib/xz/src/common/tuklib_mbstr_wrap.c index 000000000000,8d906e004d75..8d906e004d75 mode 000000,100644..100644 --- a/contrib/xz/src/common/tuklib_mbstr_wrap.c +++ b/contrib/xz/src/common/tuklib_mbstr_wrap.c diff --cc contrib/xz/src/common/tuklib_mbstr_wrap.h index 000000000000,4e2f297dabb4..4e2f297dabb4 mode 000000,100644..100644 --- a/contrib/xz/src/common/tuklib_mbstr_wrap.h +++ b/contrib/xz/src/common/tuklib_mbstr_wrap.h diff --cc contrib/xz/src/liblzma/check/crc32_loongarch.h index 000000000000,ec738b83d70a..ec738b83d70a mode 000000,100644..100644 --- a/contrib/xz/src/liblzma/check/crc32_loongarch.h +++ b/contrib/xz/src/liblzma/check/crc32_loongarch.h diff --cc contrib/xz/src/liblzma/check/crc_clmul_consts_gen.c index 000000000000,5fe14bd6f042..5fe14bd6f042 mode 000000,100644..100644 --- a/contrib/xz/src/liblzma/check/crc_clmul_consts_gen.c +++ b/contrib/xz/src/liblzma/check/crc_clmul_consts_gen.c diff --cc lib/liblzma/Makefile index 9f8ac443a8fc,000000000000..27e0521f5884 mode 100644,000000..100644 --- a/lib/liblzma/Makefile +++ b/lib/liblzma/Makefile @@@ -1,176 -1,0 +1,173 @@@ +PACKAGE=lib${LIB} +LIB= lzma +LZMADIR= ${SRCTOP}/contrib/xz/src/liblzma + +.PATH: ${LZMADIR:H}/common +SRCS+= tuklib_physmem.c tuklib_cpucores.c + +.PATH: ${LZMADIR}/api/lzma + +MAININCS= ../lzma.h +MAININCSDIR= ${INCLUDEDIR} + +LZMAINCS+= base.h \ + bcj.h \ + block.h \ + check.h \ + container.h \ + delta.h \ + filter.h \ + hardware.h \ + index.h \ + index_hash.h \ + lzma12.h \ + stream_flags.h \ + version.h \ + vli.h + +LZMAINCSDIR= ${INCLUDEDIR}/lzma + +INCSGROUPS= MAININCS LZMAINCS + +.PATH: ${LZMADIR}/common +SRCS+= common.c \ + block_util.c \ + easy_preset.c \ + filter_common.c \ + hardware_physmem.c \ + hardware_cputhreads.c \ + index.c \ + stream_flags_common.c \ + string_conversion.c \ + vli_size.c \ + alone_encoder.c \ + block_buffer_encoder.c \ + block_encoder.c \ + block_header_encoder.c \ + easy_buffer_encoder.c \ + easy_encoder.c \ + easy_encoder_memusage.c \ + filter_buffer_encoder.c \ + filter_encoder.c \ + filter_flags_encoder.c \ + index_encoder.c \ + lzip_decoder.c \ + microlzma_encoder.c \ + microlzma_decoder.c \ + stream_buffer_encoder.c \ + stream_encoder.c \ + stream_flags_encoder.c \ + vli_encoder.c \ + alone_decoder.c \ + auto_decoder.c \ + block_buffer_decoder.c \ + block_decoder.c \ + block_header_decoder.c \ + easy_decoder_memusage.c \ + file_info.c \ + filter_buffer_decoder.c \ + filter_decoder.c \ + filter_flags_decoder.c \ + index_decoder.c \ + index_hash.c \ + stream_buffer_decoder.c \ + stream_decoder.c \ + stream_decoder_mt.c \ + stream_flags_decoder.c \ + stream_encoder_mt.c \ + vli_decoder.c \ + outqueue.c + + +.PATH: ${LZMADIR}/check - SRCS+= check.c \ - crc32_table.c \ - crc64_table.c ++SRCS+= check.c \ ++ crc32_fast.c \ ++ crc64_fast.c +.if defined(MACHINE_ARCH) && ${MACHINE_ARCH} == "i386" +SRCS+= crc32_x86.S \ + crc64_x86.S +ACFLAGS+= -Wa,--noexecstack - .else - SRCS+= crc32_fast.c \ - crc64_fast.c +.endif + +.PATH: ${LZMADIR}/lz +SRCS+= lz_encoder.c \ + lz_encoder_mf.c \ + lz_decoder.c + +.PATH: ${LZMADIR}/lzma +SRCS+= lzma_encoder.c \ + lzma_encoder_presets.c \ + lzma_encoder_optimum_fast.c \ + lzma_encoder_optimum_normal.c \ + fastpos_table.c \ + lzma_decoder.c \ + lzma2_encoder.c \ + lzma2_decoder.c + +.PATH: ${LZMADIR}/rangecoder +SRCS+= price_table.c + +.PATH: ${LZMADIR}/delta +SRCS+= delta_common.c \ + delta_encoder.c \ + delta_decoder.c + +.PATH: ${LZMADIR}/simple +SRCS+= simple_coder.c \ + simple_encoder.c \ + simple_decoder.c \ + x86.c \ + powerpc.c \ + ia64.c \ + arm.c \ + arm64.c \ + armthumb.c \ + riscv.c \ + sparc.c + +.PATH: ${LZMADIR} + +VERSION_MAJOR!= sed -n '/define.*LZMA_VERSION_MAJOR/{s,[^0-9.],,gp;q;}' \ + ${LZMADIR}/api/lzma/version.h +VERSION_MINOR!= sed -n '/define.*LZMA_VERSION_MINOR/{s,[^0-9.],,gp;q;}' \ + ${LZMADIR}/api/lzma/version.h +VERSION_PATCH!= sed -n '/define.*LZMA_VERSION_PATCH/{s,[^0-9.],,gp;q;}' \ + ${LZMADIR}/api/lzma/version.h + +WARNS?= 3 + +CFLAGS+= -DHAVE_CONFIG_H \ + -DTUKLIB_SYMBOL_PREFIX=lzma_ \ + -I${.CURDIR} \ + -I${LZMADIR}/api \ + -I${LZMADIR}/common \ + -I${LZMADIR}/check \ + -I${LZMADIR}/lz \ + -I${LZMADIR}/rangecoder \ + -I${LZMADIR}/lzma \ + -I${LZMADIR}/delta \ + -I${LZMADIR}/simple \ + -I${LZMADIR:H}/common + +LIBADD+= md pthread + +VERSION_DEF= ${.CURDIR}/Versions.def +SYMBOL_MAPS= ${.CURDIR}/Symbol.map + +CLEANFILES+= liblzma.pc + +PCFILES= liblzma.pc + +liblzma.pc: liblzma.pc.in + sed -e 's,@prefix@,/usr,g ; \ + s,@exec_prefix@,/usr,g ; \ + s,@libdir@,${LIBDIR},g ; \ + s,@sharedlibdir@,${SHLIBDIR},g ; \ + s,@includedir@,${INCLUDEDIR},g ; \ + s,@LIBS@,-pthread -lmd,g ; \ + s,@PACKAGE_URL@,https://tukaani.org/xz/,g ; \ + s,@PACKAGE_VERSION@,${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH},g ; \ + s,@PTHREAD_CFLAGS@,,g ; \ + s,@PTHREAD_LIBS@,,g' ${.ALLSRC} > ${.TARGET} + +.include diff --cc lib/liblzma/Symbol.map index 938b6191b4f4,000000000000..0976e26a3c8d mode 100644,000000..100644 --- a/lib/liblzma/Symbol.map +++ b/lib/liblzma/Symbol.map @@@ -1,213 -1,0 +1,222 @@@ +XZ_5.0 { + lzma_alone_decoder; + lzma_alone_encoder; + lzma_auto_decoder; + lzma_block_buffer_bound; + lzma_block_buffer_decode; + lzma_block_buffer_encode; + lzma_block_compressed_size; + lzma_block_decoder; + lzma_block_encoder; + lzma_block_header_decode; + lzma_block_header_encode; + lzma_block_header_size; + lzma_block_total_size; + lzma_block_unpadded_size; + lzma_check_is_supported; + lzma_check_size; + lzma_code; + lzma_crc32; + lzma_crc64; + lzma_easy_buffer_encode; + lzma_easy_decoder_memusage; + lzma_easy_encoder; + lzma_easy_encoder_memusage; + lzma_end; + lzma_filter_decoder_is_supported; + lzma_filter_encoder_is_supported; + lzma_filter_flags_decode; + lzma_filter_flags_encode; + lzma_filter_flags_size; + lzma_filters_copy; + lzma_filters_update; + lzma_get_check; + lzma_index_append; + lzma_index_block_count; + lzma_index_buffer_decode; + lzma_index_buffer_encode; + lzma_index_cat; + lzma_index_checks; + lzma_index_decoder; + lzma_index_dup; + lzma_index_encoder; + lzma_index_end; + lzma_index_file_size; + lzma_index_hash_append; + lzma_index_hash_decode; + lzma_index_hash_end; + lzma_index_hash_init; + lzma_index_hash_size; + lzma_index_init; + lzma_index_iter_init; + lzma_index_iter_locate; + lzma_index_iter_next; + lzma_index_iter_rewind; + lzma_index_memusage; + lzma_index_memused; + lzma_index_size; + lzma_index_stream_count; + lzma_index_stream_flags; + lzma_index_stream_padding; + lzma_index_stream_size; + lzma_index_total_size; + lzma_index_uncompressed_size; + lzma_lzma_preset; + lzma_memlimit_get; + lzma_memlimit_set; + lzma_memusage; + lzma_mf_is_supported; + lzma_mode_is_supported; + lzma_physmem; + lzma_properties_decode; + lzma_properties_encode; + lzma_properties_size; + lzma_raw_buffer_decode; + lzma_raw_buffer_encode; + lzma_raw_decoder; + lzma_raw_decoder_memusage; + lzma_raw_encoder; + lzma_raw_encoder_memusage; + lzma_stream_buffer_bound; + lzma_stream_buffer_decode; + lzma_stream_buffer_encode; + lzma_stream_decoder; + lzma_stream_encoder; + lzma_stream_flags_compare; + lzma_stream_footer_decode; + lzma_stream_footer_encode; + lzma_stream_header_decode; + lzma_stream_header_encode; + lzma_version_number; + lzma_version_string; + lzma_vli_decode; + lzma_vli_encode; + lzma_vli_size; +}; + +XZ_5.2 { + lzma_block_uncomp_encode; + lzma_cputhreads; + lzma_get_progress; + lzma_stream_encoder_mt; + lzma_stream_encoder_mt_memusage; +}; + +XZ_5.4 { + lzma_file_info_decoder; + lzma_filters_free; + lzma_lzip_decoder; + lzma_microlzma_decoder; + lzma_microlzma_encoder; + lzma_stream_decoder_mt; + lzma_str_from_filters; + lzma_str_list_filters; + lzma_str_to_filters; +}; + +XZ_5.6 { + lzma_mt_block_size; +}; + ++XZ_5.8 { ++ lzma_bcj_arm64_encode; ++ lzma_bcj_arm64_decode; ++ lzma_bcj_riscv_encode; ++ lzma_bcj_riscv_decode; ++ lzma_bcj_x86_encode; ++ lzma_bcj_x86_decode; ++}; ++ +XZprivate_1.0 { + lzma_alloc; + lzma_alloc_zero; + lzma_alone_decoder_init; + lzma_block_buffer_bound64; + lzma_block_decoder_init; + lzma_block_encoder_init; + lzma_bufcpy; + lzma_check_finish; + lzma_check_init; + lzma_check_update; + lzma_delta_coder_init; + lzma_delta_coder_memusage; + lzma_delta_decoder_init; + lzma_delta_encoder_init; + lzma_delta_props_decode; + lzma_delta_props_encode; + lzma_easy_preset; + lzma_free; + lzma_index_encoder_init; + lzma_index_padding_size; + lzma_index_prealloc; + lzma_lz_decoder_init; + lzma_lz_decoder_memusage; + lzma_lz_encoder_init; + lzma_lz_encoder_memusage; + lzma_lzma2_block_size; + lzma_lzma2_decoder_init; + lzma_lzma2_decoder_memusage; + lzma_lzma2_encoder_init; + lzma_lzma2_encoder_memusage; + lzma_lzma2_props_decode; + lzma_lzma2_props_encode; + lzma_lzma_decoder_create; + lzma_lzma_decoder_init; + lzma_lzma_decoder_memusage; + lzma_lzma_decoder_memusage_nocheck; + lzma_lzma_encode; + lzma_lzma_encoder_create; + lzma_lzma_encoder_init; + lzma_lzma_encoder_memusage; + lzma_lzma_encoder_reset; + lzma_lzma_lclppb_decode; + lzma_lzma_lclppb_encode; + lzma_lzma_optimum_fast; + lzma_lzma_optimum_normal; + lzma_lzma_props_decode; + lzma_lzma_props_encode; + lzma_mf_bt2_find; + lzma_mf_bt2_skip; + lzma_mf_bt3_find; + lzma_mf_bt3_skip; + lzma_mf_bt4_find; + lzma_mf_bt4_skip; + lzma_mf_find; + lzma_mf_hc3_find; + lzma_mf_hc3_skip; + lzma_mf_hc4_find; + lzma_mf_hc4_skip; + lzma_next_end; + lzma_next_filter_init; + lzma_next_filter_update; + lzma_outq_end; + lzma_outq_get_buf; + lzma_outq_init; + lzma_outq_is_readable; + lzma_outq_memusage; + lzma_outq_read; + lzma_raw_coder_init; + lzma_raw_coder_memusage; + lzma_raw_decoder_init; + lzma_raw_encoder_init; + lzma_simple_arm_decoder_init; + lzma_simple_arm_encoder_init; + lzma_simple_armthumb_decoder_init; + lzma_simple_armthumb_encoder_init; + lzma_simple_coder_init; + lzma_simple_ia64_decoder_init; + lzma_simple_ia64_encoder_init; + lzma_simple_powerpc_decoder_init; + lzma_simple_powerpc_encoder_init; + lzma_simple_props_decode; + lzma_simple_props_encode; + lzma_simple_props_size; + lzma_simple_sparc_decoder_init; + lzma_simple_sparc_encoder_init; + lzma_simple_x86_decoder_init; + lzma_simple_x86_encoder_init; + lzma_stream_decoder_init; + lzma_strm_init; + lzma_tuklib_cpucores; + lzma_tuklib_physmem; +}; diff --cc lib/liblzma/Versions.def index 25064d9d50e7,000000000000..555ef25c8801 mode 100644,000000..100644 --- a/lib/liblzma/Versions.def +++ b/lib/liblzma/Versions.def @@@ -1,16 -1,0 +1,19 @@@ + +XZ_5.0 { +}; + +XZ_5.2 { +} XZ_5.0; + +XZ_5.4 { +} XZ_5.2; + +XZ_5.6 { +} XZ_5.4; + - XZprivate_1.0 { ++XZ_5.8 { +} XZ_5.6; + ++XZprivate_1.0 { ++} XZ_5.8; ++ diff --cc lib/liblzma/config.h index 3e51b0b92463,000000000000..963d08c93e7a mode 100644,000000..100644 --- a/lib/liblzma/config.h +++ b/lib/liblzma/config.h @@@ -1,640 -1,0 +1,652 @@@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* How many MiB of RAM to assume if the real amount cannot be determined. */ +#define ASSUME_RAM 128 + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* FreeBSD - disabled intentionally */ +/* #undef ENABLE_NLS */ + +/* Define to 1 if ARM64 CRC32 instruction is supported. See configure.ac for + details. */ +/* #undef HAVE_ARM64_CRC32 */ + +/* Define to 1 if bswap_16 is available. */ +/* #undef HAVE_BSWAP_16 */ + +/* Define to 1 if bswap_32 is available. */ +/* #undef HAVE_BSWAP_32 */ + +/* Define to 1 if bswap_64 is available. */ +/* #undef HAVE_BSWAP_64 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BYTESWAP_H */ + +#ifndef WITHOUT_CAPSICUM +/* Define to 1 if you have the 'cap_rights_limit' function. */ +#define HAVE_CAP_RIGHTS_LIMIT 1 +#endif + +/* Define to 1 if the system has the type 'CC_SHA256_CTX'. */ +/* #undef HAVE_CC_SHA256_CTX */ + +/* Define to 1 if you have the 'CC_SHA256_Init' function. */ +/* #undef HAVE_CC_SHA256_INIT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* Define to 1 if crc32 integrity check is enabled. */ +#define HAVE_CHECK_CRC32 1 + +/* Define to 1 if crc64 integrity check is enabled. */ +#define HAVE_CHECK_CRC64 1 + +/* Define to 1 if sha256 integrity check is enabled. */ +#define HAVE_CHECK_SHA256 1 + +/* Define to 1 if you have the 'clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if 'CLOCK_MONOTONIC' is declared in . */ +#define HAVE_CLOCK_MONOTONIC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_COMMONCRYPTO_COMMONDIGEST_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_CPUID_H 1 + ++/* Define to 1 if the 32-bit x86 CRC assembly files are used. */ ++/* FreeBSD - only enabled for i386 */ ++#if defined(__FreeBSD__) && defined(__i386__) ++#define HAVE_CRC_X86_ASM 1 ++#endif ++ +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* FreeBSD - disabled intentionally */ +/* #undef HAVE_DCGETTEXT */ + +/* Define to 1 if any of HAVE_DECODER_foo have been defined. */ +#define HAVE_DECODERS 1 + +/* Define to 1 if arm decoder is enabled. */ +#define HAVE_DECODER_ARM 1 + +/* Define to 1 if arm64 decoder is enabled. */ +#define HAVE_DECODER_ARM64 1 + +/* Define to 1 if armthumb decoder is enabled. */ +#define HAVE_DECODER_ARMTHUMB 1 + +/* Define to 1 if delta decoder is enabled. */ +#define HAVE_DECODER_DELTA 1 + +/* Define to 1 if ia64 decoder is enabled. */ +#define HAVE_DECODER_IA64 1 + +/* Define to 1 if lzma1 decoder is enabled. */ +#define HAVE_DECODER_LZMA1 1 + +/* Define to 1 if lzma2 decoder is enabled. */ +#define HAVE_DECODER_LZMA2 1 + +/* Define to 1 if powerpc decoder is enabled. */ +#define HAVE_DECODER_POWERPC 1 + +/* Define to 1 if riscv decoder is enabled. */ +#define HAVE_DECODER_RISCV 1 + +/* Define to 1 if sparc decoder is enabled. */ +#define HAVE_DECODER_SPARC 1 + +/* Define to 1 if x86 decoder is enabled. */ +#define HAVE_DECODER_X86 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the 'elf_aux_info' function. */ +/* #undef HAVE_ELF_AUX_INFO */ + +/* Define to 1 if any of HAVE_ENCODER_foo have been defined. */ +#define HAVE_ENCODERS 1 + +/* Define to 1 if arm encoder is enabled. */ +#define HAVE_ENCODER_ARM 1 + +/* Define to 1 if arm64 encoder is enabled. */ +#define HAVE_ENCODER_ARM64 1 + +/* Define to 1 if armthumb encoder is enabled. */ +#define HAVE_ENCODER_ARMTHUMB 1 + +/* Define to 1 if delta encoder is enabled. */ +#define HAVE_ENCODER_DELTA 1 + +/* Define to 1 if ia64 encoder is enabled. */ +#define HAVE_ENCODER_IA64 1 + +/* Define to 1 if lzma1 encoder is enabled. */ +#define HAVE_ENCODER_LZMA1 1 + +/* Define to 1 if lzma2 encoder is enabled. */ +#define HAVE_ENCODER_LZMA2 1 + +/* Define to 1 if powerpc encoder is enabled. */ +#define HAVE_ENCODER_POWERPC 1 + +/* Define to 1 if riscv encoder is enabled. */ +#define HAVE_ENCODER_RISCV 1 + +/* Define to 1 if sparc encoder is enabled. */ +#define HAVE_ENCODER_SPARC 1 + +/* Define to 1 if x86 encoder is enabled. */ +#define HAVE_ENCODER_X86 1 + +/* Define to 1 if __attribute__((__constructor__)) is supported for functions. + */ +#define HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR 1 + +/* Define to 1 if you have the 'futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the 'futimes' function. */ +/* #undef HAVE_FUTIMES */ + +/* Define to 1 if you have the 'futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the 'getauxval' function. */ +/* #undef HAVE_GETAUXVAL */ + +/* Define to 1 if you have the header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the 'getopt_long' function. */ +#define HAVE_GETOPT_LONG 1 + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* FreeBSD - disabled intentionally */ +/* #undef HAVE_GETTEXT */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* Define to 1 if you have the header file. */ +/* FreeBSD - only with clang because the base gcc does not support it */ +#if defined(__clang__) && defined(__FreeBSD__) && defined(__amd64__) +#define HAVE_IMMINTRIN_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if Linux Landlock is supported. See configure.ac for details. + */ +/* #undef HAVE_LINUX_LANDLOCK */ + ++/* Define to 1 if 64-bit LoongArch CRC32 instructions are supported. */ ++/* #undef HAVE_LOONGARCH_CRC32 */ ++ +/* Define to 1 if .lz (lzip) decompression support is enabled. */ +#define HAVE_LZIP_DECODER 1 + +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +#define HAVE_MBRTOWC 1 + +/* Define to 1 to enable bt2 match finder. */ +#define HAVE_MF_BT2 1 + +/* Define to 1 to enable bt3 match finder. */ +#define HAVE_MF_BT3 1 + +/* Define to 1 to enable bt4 match finder. */ +#define HAVE_MF_BT4 1 + +/* Define to 1 to enable hc3 match finder. */ +#define HAVE_MF_HC3 1 + +/* Define to 1 to enable hc4 match finder. */ +#define HAVE_MF_HC4 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if getopt.h declares extern int optreset. */ +#define HAVE_OPTRESET 1 + +/* Define to 1 if you have the 'pledge' function. */ +/* #undef HAVE_PLEDGE */ + +/* Define to 1 if you have the 'posix_fadvise' function. */ +#define HAVE_POSIX_FADVISE 1 + +/* Define to 1 if 'program_invocation_name' is declared in . */ +/* #undef HAVE_PROGRAM_INVOCATION_NAME */ + +/* Define to 1 if you have the 'pthread_condattr_setclock' function. */ +#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1 + +/* Have PTHREAD_PRIO_INHERIT. */ +#define HAVE_PTHREAD_PRIO_INHERIT 1 + +/* Define to 1 if you have the 'SHA256Init' function. */ +/* #undef HAVE_SHA256INIT */ + +/* Define to 1 if the system has the type 'SHA256_CTX'. */ +#define HAVE_SHA256_CTX 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SHA256_H 1 + +/* Define to 1 if you have the 'SHA256_Init' function. */ +#define HAVE_SHA256_INIT 1 + +/* Define to 1 if the system has the type 'SHA2_CTX'. */ +/* #undef HAVE_SHA2_CTX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHA2_H */ + +/* Define to 1 if optimizing for size. */ +/* #undef HAVE_SMALL */ + +/* Define to 1 if stdbool.h conforms to C99. */ +#define HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if 'st_atimensec' is a member of 'struct stat'. */ +#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 + +/* Define to 1 if 'st_atimespec.tv_nsec' is a member of 'struct stat'. */ +#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 + +/* Define to 1 if 'st_atim.st__tim.tv_nsec' is a member of 'struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */ + +/* Define to 1 if 'st_atim.tv_nsec' is a member of 'struct stat'. */ +#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 + +/* Define to 1 if 'st_uatime' is a member of 'struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_UATIME */ + +/* Define to 1 to if GNU/Linux-specific details are unconditionally wanted for + symbol versioning. Define to 2 to if these are wanted only if also PIC is + defined (allows building both shared and static liblzma at the same time + with Libtool if neither --with-pic nor --without-pic is used). This define + must be used together with liblzma_linux.map. */ +/* #undef HAVE_SYMBOL_VERSIONS_LINUX */ + +/* Define to 1 if you have the 'sysctlbyname' function. */ +/* #undef HAVE_SYSCTLBYNAME */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BYTEORDER_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_CDEFS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if the system has the type 'uintptr_t'. */ +#define HAVE_UINTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if _mm_set_epi64x and _mm_clmulepi64_si128 are usable. See + configure.ac for details. */ +#if defined(__FreeBSD__) && defined(__amd64__) +#define HAVE_USABLE_CLMUL 1 +#endif + +/* Define to 1 if you have the 'utime' function. */ +/* #undef HAVE_UTIME */ + +/* Define to 1 if you have the 'utimes' function. */ +/* #undef HAVE_UTIMES */ + ++/* Define to 1 if you have the 'vasprintf' function. */ ++#define HAVE_VASPRINTF 1 ++ +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#define HAVE_VISIBILITY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the 'wcwidth' function. */ +#define HAVE_WCWIDTH 1 + +/* Define to 1 if the system has the type '_Bool'. */ +#define HAVE__BOOL 1 + +/* Define to 1 if you have the '_futime' function. */ +/* #undef HAVE__FUTIME */ + +/* Define to 1 if _mm_movemask_epi8 is available. */ +#if defined(__FreeBSD__) && defined(__amd64__) +#define HAVE__MM_MOVEMASK_EPI8 1 +#endif + +/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. + */ +#define HAVE___BUILTIN_ASSUME_ALIGNED 1 + +/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. + */ +#define HAVE___BUILTIN_BSWAPXX 1 + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 when using POSIX threads (pthreads). */ +#define MYTHREAD_POSIX 1 + +/* Define to 1 when using Windows Vista compatible threads. This uses features + that are not available on Windows XP. */ +/* #undef MYTHREAD_VISTA */ + +/* Define to 1 when using Windows 95 (and thus XP) compatible threads. This + avoids use of features that were added in Windows Vista. */ +/* #undef MYTHREAD_WIN95 */ + +/* Define to 1 to disable debugging code. */ +#define NDEBUG 1 + +/* Name of package */ +#define PACKAGE "xz" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "xz@tukaani.org" + *** 374 LINES SKIPPED *** From nobody Sun May 4 07:50:26 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 4ZqxfB6ccHz5vVn0; Sun, 04 May 2025 07:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqxfB3Hq1z4N0j; Sun, 04 May 2025 07:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746345026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/6OifgYpzhWxrFSeMAPRuNDODwXqdmb+prkvDnV0344=; b=xsY3cG5DV4KuQa2Y6qDACPc8QhIy/4z1dMb+6LDP6zNh85Uo919lEut7hw6MaFJ6wnHGwT nEVBuKaOusbFiVRPeiQzNVS5Sxcp/RNO2ndRYL/qNJRpa8vIm2woCM8udyOMTq2tUt7u8K 4srh8AHyDt5BkVcTqLOKvD/+sy0duQ104sI2LV9CH/nb/UefuF7uJ9CH06C+jrTD3G/bGI WJoobqqM/dRoCAyD5UCjajBiGebLIk0WaMCgApg2DIbCqnrbji7Epdh++WLzEwTPK/n95a 1yuFQ75HYVOm9l94BemMwaPr6ICvsQ+8n4PCPjRBCPGTLkDKgriCJ0P2VKZV/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746345026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/6OifgYpzhWxrFSeMAPRuNDODwXqdmb+prkvDnV0344=; b=BNm23vAAM7GuPhCHum1YKYJM0rhG1ZDaLO/iacjSmKfq29g2p8l8smB4T4d7LjjweRXSiI Kj3qdd6/8hhIrGAx1ia3NRHR8EJNJUI92UF6DLTfwwFWyRLAF0R9R9oHMVvDMCzkew4t3o NDHnBBaLDKLZPyVGXREx9HAg669Un5LHzqKC8j0YJxyMtveFDqMbgQozG32JlCTBVJCG7f NlSxHCzgP0Yezs7IjwRtSLd3lXWUQZlppWNLvvz4C8LFEbBPzK4m3h/c4hvhUq2aszYnkc 49QRLBjHKNr9fWDhNbWNIGtwCNoyUEJ4RpYDbXI/ePIDNfKEsxZevSlvaf478g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746345026; a=rsa-sha256; cv=none; b=iXV5HgdmVwgfVmh68ajkaC15f2oIQNtDjldL0G5WXJp1dHy8EkZLv3VYbcfyZVVdUSfh4G UIjIIRVpGbk1m17K7RtgsI58qp3/Lsp4vScZS/kh2aUQMt4Li87wMSyZ7sWwJk+X+JHWXY pCNBR/AvVHixUhewtDVBDdAfyChe0WJ6jj1iuHZVRHoH9NqeB2ieB5ykoSoFwPoFroqbvq 1hwwytFfu3OJE+TneuMDCaaOhXZCRPns+iLz7ZUNW/HTwrTM241Y928kwWRH38ze2GhtVF gXmeCC3s7X4joAojZ4OgodrsnShKgvaw5DCeumw0vHwB4POu3WugrQmFNNZ2wg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZqxfB2TSYz4W8; Sun, 04 May 2025 07:50: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 5447oQfn012048; Sun, 4 May 2025 07:50:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5447oQWq012045; Sun, 4 May 2025 07:50:26 GMT (envelope-from git) Date: Sun, 4 May 2025 07:50:26 GMT Message-Id: <202505040750.5447oQWq012045@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Xin LI Subject: git: 83507f9e6fed - main - newsyslog(8): Disable compression by default in newsyslog.conf. 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: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 83507f9e6fedbc02d1acecc9fb5c09eae34b1ae6 Auto-Submitted: auto-generated The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=83507f9e6fedbc02d1acecc9fb5c09eae34b1ae6 commit 83507f9e6fedbc02d1acecc9fb5c09eae34b1ae6 Author: Xin LI AuthorDate: 2025-05-04 07:49:28 +0000 Commit: Xin LI CommitDate: 2025-05-04 07:49:28 +0000 newsyslog(8): Disable compression by default in newsyslog.conf. Historically, newsyslog compressed rotated log files to save disk space. This was helpful when storage was limited. However, with modern files systems like ZFS providing built-in compression and with larger disks now common, the benefits of additional log compression have diminished, especially given the inconvenience of needing to decompress logs when searching for specific patterns. This change updates the default /etc/newsyslog.conf to specify: none disabling compression for new installations or default setups. It does not modify the behavior of the newsyslog utility itself; users can still enable compression as needed via configuration. MFC: never Reviewed by: zlei, dvl, otis Relnotes: yes Differential Revision: https://reviews.freebsd.org/D43169 --- UPDATING | 15 +++++++++++++++ usr.sbin/newsyslog/newsyslog.conf | 2 ++ 2 files changed, 17 insertions(+) diff --git a/UPDATING b/UPDATING index a05ebb418ca8..3fef48b52636 100644 --- a/UPDATING +++ b/UPDATING @@ -27,6 +27,21 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20250504: + newsyslog(8) will no longer compress rotated log files by default. + The J, X, Y, and Z flags in newsyslog.conf(5) now indicate that a + file may be compressed, rather than specifying a particular + compression method. + + To restore the previous default behavior of automatic compression, + remove the line: + + none + + from /etc/newsyslog.conf. + + For more details, refer to the newsyslog(8) manual page. + 20250412: LinuxKPI alloc routines were changed to return physically contiguous memory where expected. These changes may require out-of-tree drivers diff --git a/usr.sbin/newsyslog/newsyslog.conf b/usr.sbin/newsyslog/newsyslog.conf index d907e08fd747..691aa4503ec2 100644 --- a/usr.sbin/newsyslog/newsyslog.conf +++ b/usr.sbin/newsyslog/newsyslog.conf @@ -1,5 +1,7 @@ # configuration file for newsyslog # +# Global compress method for files tagged as compressible. + none # Entries which do not specify the '/pid_file' field will cause the # syslogd process to be signalled when that log file is rotated. This # action is only appropriate for log files which are written to by the From nobody Sun May 4 17:09:28 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 4ZrB3D3QYFz5tyS3; Sun, 04 May 2025 17:09: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 4ZrB3D2d3xz44Wl; Sun, 04 May 2025 17:09:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378568; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+EvGTalhRWtfQzXNncD1D2OsoS3J690XJFyQSp0L4c0=; b=Isuu76J+Byu1yXWiPjb/AaD3XgA9QDTDyADo5PSLat1cCzVe3NSU1OyKY5dhW62LlhuYrm gloT9cqDYvtwcZKbFEr1WeRYNyQ+iS6O9aI4r5Z+vG0cd7z6Ue0jEVT4oRluNvGPdvG6hb 5ZYfrspgzGq8MXQTpACnKDdcPCRd4WXxZ7mr50YJh52DzxJMvAaa/0thvIREY0akGtaQn3 dDh3fsWt+WL0rWVsrmjeH51IhxNtK6sZe1rZFdF6ESGV7byxQDW9ocaJF0swISDrwqMHKB rFlriFWmn6+Gxkghch4JCX8UR4YWKAH/RGeq9yXkvDeeF66zSFdNQWDfBtl5Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378568; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+EvGTalhRWtfQzXNncD1D2OsoS3J690XJFyQSp0L4c0=; b=IECS5VKb1kHpl8+daR3uZ+yUKEz/Y4E6hlvh6DzKg/lipi/p9cG8zJlKWA+pMrk4pufzE6 udg64H41hkv1eCwC+JLk4JJbQmvEo0FjQbDqatEoP7arFe1v9h8PjjmTP8WDILBjSFHLdB ejc47jc1l8WBfMLV4PlHGPcAwrgSVkIdqkrzWsbGDqcmNQ/joV70z51BhenpBcA1kvQkrt ii/jReMtgI86Hn0+9Q1d4pt9wWORP8NXv+HOGEiEPIxgpsYeIipOhR64wSljEByiSTHVG6 biJm08uYEXZovTlFQmGSTg7RE1ozW8oKdZRezqFTJiLRRDo6bNqZQFPPcM9Dug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746378568; a=rsa-sha256; cv=none; b=gBZNq/LzvjwXDqAoUebpv8Ds2maXuUI5/AZmoQCdl/NcHPmKo7uFMtiIkgFtMA38ZHbyLf dLcnI1ZJP8BlR1zZNvD1tOUQmWYMUePGgliBLfEFwoyRqi3c68D4bpjwHJcligSeaF9klW B4G07d6T6T9CLTIbN2SikU2yC9Uyyg78TwG7doBT5xU4K5BBTHILEtIyYkBSsEUpZYT2DG uSRZQP4uKmaBxgAHig7tFjuPd9XU36TRtUjCEViiCrZQ26s+VjBTCUjmUXMX+tM63QvkXG wMky9LKrjl1s1D7fTBD/b7V+fjRGd7i4cCpDLMbGEo3rSmA2Tp3R2mmLeEY/Ag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrB3D1lfSzdBk; Sun, 04 May 2025 17:09: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 544H9S4t060483; Sun, 4 May 2025 17:09:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544H9SU1060480; Sun, 4 May 2025 17:09:28 GMT (envelope-from git) Date: Sun, 4 May 2025 17:09:28 GMT Message-Id: <202505041709.544H9SU1060480@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michal Meloun Subject: git: 9ee759f3676f - main - Decorate IPv4 structures used for byte buffer overlays as packed. 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: mmel X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9ee759f3676f700f8224a95216f659f87f5d9ae9 Auto-Submitted: auto-generated The branch main has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=9ee759f3676f700f8224a95216f659f87f5d9ae9 commit 9ee759f3676f700f8224a95216f659f87f5d9ae9 Author: Michal Meloun AuthorDate: 2025-05-01 08:54:05 +0000 Commit: Michal Meloun CommitDate: 2025-05-04 11:48:04 +0000 Decorate IPv4 structures used for byte buffer overlays as packed. The C language only allows pointer casting to another type if both sides have compatible alignments, unaligned casts causes undefined behavior. Since we do not have declared (and therefore not checked) mbuf alignments for the various input functions in the IP stack, the worst case (alignment to char*) should be expected. A lot of work still needs to be done on IPv6, especially on the terrible accesses to in6_addr members. It should have no performance impact on all unaligned architectures. MFC after: 1 month Reviewed by: kib PR: 272965 Differential Revision: https://reviews.freebsd.org/D50103 --- sys/netinet/dccp.h | 2 +- sys/netinet/ip.h | 4 ++-- sys/netinet/ip_var.h | 2 +- sys/netinet/pim.h | 2 +- sys/netinet/tcp.h | 2 +- sys/netinet/udp.h | 2 +- tests/sys/netinet/ip_reass_test.c | 12 ++++++++---- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/netinet/dccp.h b/sys/netinet/dccp.h index 4fb6a0d2ab3e..da83a1b06861 100644 --- a/sys/netinet/dccp.h +++ b/sys/netinet/dccp.h @@ -64,7 +64,7 @@ struct dccphdr { uint8_t seq[6]; } longseq; } d_seqno; -}; +} __packed; #define d_seqno_short d_seqno.shortseq; #define d_seqno_long d_seqno.longseq.seq; diff --git a/sys/netinet/ip.h b/sys/netinet/ip.h index 44db466912d0..6de41a7e79fa 100644 --- a/sys/netinet/ip.h +++ b/sys/netinet/ip.h @@ -67,7 +67,7 @@ struct ip { u_char ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src,ip_dst; /* source and dest address */ -} __packed __aligned(2); +} __packed; #define IP_MAXPACKET 65535 /* maximum packet size */ @@ -187,7 +187,7 @@ struct ip_timestamp { uint32_t ipt_time; /* network format */ } ipt_ta[1]; } ipt_timestamp; -}; +} __packed; /* Flag bits for ipt_flg. */ #define IPOPT_TS_TSONLY 0 /* timestamps only */ diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index 18ca5861a40e..f782ebc53eb0 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -47,7 +47,7 @@ struct ipovly { u_short ih_len; /* protocol length */ struct in_addr ih_src; /* source internet address */ struct in_addr ih_dst; /* destination internet address */ -}; +} __packed; #ifdef _KERNEL /* diff --git a/sys/netinet/pim.h b/sys/netinet/pim.h index 98230fc6ae2d..4744ffc7e9d8 100644 --- a/sys/netinet/pim.h +++ b/sys/netinet/pim.h @@ -71,7 +71,7 @@ struct pim { #endif /* ! _PIM_VT */ uint8_t pim_reserved; /* Reserved */ uint16_t pim_cksum; /* IP-style checksum */ -}; +} __packed; /* KAME-related name backward compatibility */ #define pim_ver pim_vers #define pim_rsv pim_reserved diff --git a/sys/netinet/tcp.h b/sys/netinet/tcp.h index 94d41ff67836..41a49b318cd5 100644 --- a/sys/netinet/tcp.h +++ b/sys/netinet/tcp.h @@ -77,7 +77,7 @@ struct tcphdr { u_short th_win; /* window */ u_short th_sum; /* checksum */ u_short th_urp; /* urgent pointer */ -}; +} __packed; static __inline uint16_t __tcp_get_flags(const struct tcphdr *th) diff --git a/sys/netinet/udp.h b/sys/netinet/udp.h index edff456ba70e..010f2210b516 100644 --- a/sys/netinet/udp.h +++ b/sys/netinet/udp.h @@ -44,7 +44,7 @@ struct udphdr { u_short uh_dport; /* destination port */ u_short uh_ulen; /* udp length */ u_short uh_sum; /* udp checksum */ -}; +} __packed; /* * User-settable options (used with setsockopt). diff --git a/tests/sys/netinet/ip_reass_test.c b/tests/sys/netinet/ip_reass_test.c index a65bfa34e1d4..538815bd7a2c 100644 --- a/tests/sys/netinet/ip_reass_test.c +++ b/tests/sys/netinet/ip_reass_test.c @@ -60,12 +60,16 @@ update_cksum(struct ip *ip) { size_t i; uint32_t cksum; - uint16_t *cksump; + uint8_t *cksump; + uint16_t tmp; ip->ip_sum = 0; - cksump = (uint16_t *)ip; - for (cksum = 0, i = 0; i < sizeof(*ip) / sizeof(*cksump); cksump++, i++) - cksum += ntohs(*cksump); + cksump = (char *)ip; + for (cksum = 0, i = 0; i < sizeof(*ip) / sizeof(uint16_t); i++) { + tmp = *cksump++; + tmp = tmp << 8 | *cksump++; + cksum += ntohs(tmp); + } cksum = (cksum >> 16) + (cksum & 0xffff); cksum = ~(cksum + (cksum >> 16)); ip->ip_sum = htons((uint16_t)cksum); From nobody Sun May 4 17:09:29 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 4ZrB3F3TWTz5tyZQ; Sun, 04 May 2025 17:09: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 4ZrB3F2fkFz44Nd; Sun, 04 May 2025 17:09:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eZgthZ0P+UE107+Ud/SxKpASVSA0fggV8QtGA0ds9Nw=; b=W1TrevgpqaZDm1VclKEZwHGe7zYfWpJ0s7RKqhJlZ4wAiffoImkbD19Sf1iBJB3ECGrbcp sDieWxKp1KbVMNjlBduyQvRB2Xygj8+W2T4jb8Nz2qDHqzJQ4ybUsaompBYVO95kD0ol1w v0HyZjhsXJhZBb8/UmyY5FR4sq/RYX6DfOiytLIluSwgjE1YfhdPLymVTJLC8zt01UUERN Lwgxb+9/LJWZjSk0j8yYsM2A0NZLEOKiQzFRXhXeseC6dgDfQmaV309jMqTvbBhlqf3SK7 D4WEzk0GzzKLkQ6B455HRRFt1QuidfnuUOqiwgeuzhjQ1qR6el+XAAC4eiF5hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eZgthZ0P+UE107+Ud/SxKpASVSA0fggV8QtGA0ds9Nw=; b=Zug3KnFr+eNoknRZnX0f/JEkmUwM/aJ0m0TznFrct+jCHbxJcDZchBFnL9hZ4VOnkcuDX2 uQzpj/m/GKaqM3iZ2ZjzkL4M7dYX9uctNitsQkpjxYt/5ti4/U+1f92srWkE5AwRENzKBm /ZatKhwcdOFOzMHb5JAPDryfoPARF4Wy1m6Mq5GZz1KtRrr6N99zd4mNnA4sFA8httlFP3 A26VeISgODc2oLofw/CKheQXfOaFykCAhmgFvYUPylCuSJaxPit7Q1uyuLi4NX2LNU7olD m4gHxFibpgsUZIOUpGL9+ibZ5zv6wzGDTG48rztviCQJtipHXjKwFVIny1sTrQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746378569; a=rsa-sha256; cv=none; b=lylh65AbZlBdWDPiiptmkYSF1jNL1mLHmEyCQASDUILPQt2X7yzNviK6X6JXaKPV3TPdWU QrRC1KXTY9D7imtmFqikqXHntY8SQLnf6T9wSW2Q/WQQW1HXPA0LE/wf9UpoHHvayX1FqX PkBzgBupJwKF5ZRVK8P+aDyXkVdSAavAssAqu9UfMwRujG17eRFMwvbzRpdmYqD9oZRQEK 49OoSwW22Q7SC5UBwIW0U3E6mxRtyb6ScTF0dDjerwwkoropS5Yw3fRhqDUtA4lCoToGS9 FD0MdV3FgJD+mxeNMMjijMHDQ8WZ9/PEcyvrFn67gkZ2R5ASWkhF1seadffzNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrB3F22GTzdBl; Sun, 04 May 2025 17:09: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 544H9T0N060518; Sun, 4 May 2025 17:09:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544H9Toi060515; Sun, 4 May 2025 17:09:29 GMT (envelope-from git) Date: Sun, 4 May 2025 17:09:29 GMT Message-Id: <202505041709.544H9Toi060515@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michal Meloun Subject: git: 50fda38ba0b0 - main - libgcc_s: export integer and floating point __aeabi_ symbols 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: mmel X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 50fda38ba0b0a783ccf1375fb889eee5476f4b1a Auto-Submitted: auto-generated The branch main has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=50fda38ba0b0a783ccf1375fb889eee5476f4b1a commit 50fda38ba0b0a783ccf1375fb889eee5476f4b1a Author: Michal Meloun AuthorDate: 2025-02-22 18:35:27 +0000 Commit: Michal Meloun CommitDate: 2025-05-04 11:48:32 +0000 libgcc_s: export integer and floating point __aeabi_ symbols Export all integer and floating point __aeabi_ functions defined by "Run-time ABI for Arm Architecture" from libgcc, excluding __aeabi_h2f_alt, __aeabi_f2h_alt and __aeabi_d2h_alt, which are not yet implemented by compiler-rt. To maintain ABI backward compatibility, convert __aeabi_ floating-point symbols previously exported from libc to an explicit non-default version. Remove guessing of vfp/not-vfp version for compiler-rt sources. The vfp version needs additional runtime logic to select the right implementation and we don't have it implemented. MFC after: 1 month Reviewed by: dim PR: 271087 Differential Revision: https://reviews.freebsd.org/D50100 --- lib/libc/arm/aeabi/Symbol.map | 44 ------------------------ lib/libc/arm/aeabi/aeabi_int_div.S | 2 ++ lib/libc/arm/aeabi/aeabi_vfp.h | 4 ++- lib/libcompiler_rt/Makefile.inc | 18 ++++++---- lib/libgcc_s/arm/Symbol.map | 68 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+), 52 deletions(-) diff --git a/lib/libc/arm/aeabi/Symbol.map b/lib/libc/arm/aeabi/Symbol.map index 175884c82881..515794004ba7 100644 --- a/lib/libc/arm/aeabi/Symbol.map +++ b/lib/libc/arm/aeabi/Symbol.map @@ -6,50 +6,6 @@ FBSDprivate_1.0 { __aeabi_atexit; - __aeabi_dcmpeq; - __aeabi_dcmplt; - __aeabi_dcmple; - __aeabi_dcmpge; - __aeabi_dcmpgt; - __aeabi_dcmpun; - - __aeabi_cdcmpeq; - __aeabi_cdcmple; - __aeabi_cdrcmple; - - __aeabi_d2iz; - __aeabi_d2f; - - __aeabi_dadd; - __aeabi_ddiv; - __aeabi_dmul; - __aeabi_dsub; - - - __aeabi_fcmpeq; - __aeabi_fcmplt; - __aeabi_fcmple; - __aeabi_fcmpge; - __aeabi_fcmpgt; - __aeabi_fcmpun; - - __aeabi_cfcmpeq; - __aeabi_cfcmple; - __aeabi_cfrcmple; - - __aeabi_f2iz; - __aeabi_f2d; - - __aeabi_fadd; - __aeabi_fdiv; - __aeabi_fmul; - __aeabi_fsub; - - - __aeabi_i2d; - __aeabi_i2f; - - __aeabi_memclr; __aeabi_memclr4; __aeabi_memclr8; diff --git a/lib/libc/arm/aeabi/aeabi_int_div.S b/lib/libc/arm/aeabi/aeabi_int_div.S index 708b478b3881..bb002c2716f7 100644 --- a/lib/libc/arm/aeabi/aeabi_int_div.S +++ b/lib/libc/arm/aeabi/aeabi_int_div.S @@ -37,11 +37,13 @@ */ ENTRY(__aeabi_uidiv_compat) + .hidden __aeabi_uidiv_compat .symver __aeabi_uidiv_compat, __aeabi_uidiv@ b __udivsi3 END(__aeabi_uidiv_compat) ENTRY(__aeabi_idiv_compat) + .hidden __aeabi_idiv_compat .symver __aeabi_idiv_compat, __aeabi_idiv@ b __divsi3 END(__aeabi_idiv_compat) diff --git a/lib/libc/arm/aeabi/aeabi_vfp.h b/lib/libc/arm/aeabi/aeabi_vfp.h index 3b70fe06fab3..4f3bb2ef969b 100644 --- a/lib/libc/arm/aeabi/aeabi_vfp.h +++ b/lib/libc/arm/aeabi/aeabi_vfp.h @@ -40,7 +40,9 @@ #define AEABI_ENTRY(x) ENTRY(__aeabi_ ## x ## _vfp) #define AEABI_END(x) END(__aeabi_ ## x ## _vfp) #else -#define AEABI_ENTRY(x) ENTRY(__aeabi_ ## x) +#define AEABI_ENTRY(x) \ + ENTRY(__aeabi_ ## x) \ + .symver __aeabi_##x, __aeabi_##x##@FBSDprivate_1.0; #define AEABI_END(x) END(__aeabi_ ## x) #endif diff --git a/lib/libcompiler_rt/Makefile.inc b/lib/libcompiler_rt/Makefile.inc index e2a2618232e1..57cfdee95541 100644 --- a/lib/libcompiler_rt/Makefile.inc +++ b/lib/libcompiler_rt/Makefile.inc @@ -208,7 +208,7 @@ SRCF+= trunctfsf2 .endif # These are already shipped by libc.a on some architectures. -.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "riscv" +.if ${MACHINE_CPUARCH} != "riscv" SRCF+= adddf3 SRCF+= addsf3 SRCF+= divdf3 @@ -225,10 +225,8 @@ SRCF+= subsf3 SRCF+= truncdfsf2 .endif -.if ${MACHINE_CPUARCH} != "arm" SRCF+= comparedf2 SRCF+= comparesf2 -.endif # Helper to reduce complexity of _Float16 and __bf16 statements below. .if ${MACHINE_CPUARCH} == "aarch64" || \ @@ -274,10 +272,7 @@ CFLAGS+= -DEMIT_SYNC_ATOMICS .endif .for file in ${SRCF} -.if ${MACHINE_CPUARCH} == "arm" && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") \ - && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) -SRCS+= ${file}vfp.S -. elif exists(${CRTSRC}/${CRTARCH}/${file}.S) +. if exists(${CRTSRC}/${CRTARCH}/${file}.S) SRCS+= ${file}.S . else SRCS+= ${file}.c @@ -285,7 +280,15 @@ SRCS+= ${file}.c .endfor .if ${MACHINE_CPUARCH} == "arm" +SRCS+= aeabi_cdcmp.S +SRCS+= aeabi_cdcmpeq_check_nan.c +SRCS+= aeabi_cfcmp.S +SRCS+= aeabi_cfcmpeq_check_nan.c +SRCS+= aeabi_dcmp.S SRCS+= aeabi_div0.c +SRCS+= aeabi_drsub.c +SRCS+= aeabi_fcmp.S +SRCS+= aeabi_frsub.c SRCS+= aeabi_idivmod.S SRCS+= aeabi_ldivmod.S SRCS+= aeabi_memcmp.S @@ -294,6 +297,7 @@ SRCS+= aeabi_memmove.S SRCS+= aeabi_memset.S SRCS+= aeabi_uidivmod.S SRCS+= aeabi_uldivmod.S + SRCS+= switch16.S SRCS+= switch32.S SRCS+= switch8.S diff --git a/lib/libgcc_s/arm/Symbol.map b/lib/libgcc_s/arm/Symbol.map index 92b54761d810..ea0189eabaa0 100644 --- a/lib/libgcc_s/arm/Symbol.map +++ b/lib/libgcc_s/arm/Symbol.map @@ -2,6 +2,74 @@ */ GCC_3.5 { + __aeabi_cdcmple; + __aeabi_cdrcmple; + __aeabi_cfcmpeq; + __aeabi_cfcmple; + __aeabi_cfrcmple; + __aeabi_d2f; + __aeabi_d2h; +/* __aeabi_d2h_alt; */ + __aeabi_d2iz; + __aeabi_d2lz; + __aeabi_d2uiz; + __aeabi_d2ulz; + __aeabi_dadd; + __aeabi_dcmpeq; + __aeabi_dcmpge; + __aeabi_dcmpgt; + __aeabi_dcmple; + __aeabi_dcmplt; + __aeabi_dcmpun; + __aeabi_ddiv; + __aeabi_dmul; + __aeabi_dneg; + __aeabi_drsub; + __aeabi_dsub; + __aeabi_f2d; + __aeabi_f2h; +/* __aeabi_f2h_alt; */ + __aeabi_f2iz; + __aeabi_f2lz; + __aeabi_f2uiz; + __aeabi_f2ulz; + __aeabi_fadd; + __aeabi_fcmpeq; + __aeabi_fcmpge; + __aeabi_fcmpgt; + __aeabi_fcmple; + __aeabi_fcmplt; + __aeabi_fcmpun; + __aeabi_fdiv; + __aeabi_fmul; + __aeabi_fneg; + __aeabi_frsub; + __aeabi_fsub; + __aeabi_h2f; +/* __aeabi_h2f_alt; */ + __aeabi_i2d; + __aeabi_i2f; + __aeabi_idiv; + __aeabi_idiv0; + __aeabi_idivmod; + __aeabi_l2d; + __aeabi_l2f; + __aeabi_lasr; + __aeabi_lcmp; + __aeabi_ldiv0; + __aeabi_ldivmod; + __aeabi_llsl; + __aeabi_llsr; + __aeabi_lmul; + __aeabi_ui2d; + __aeabi_ui2f; + __aeabi_uidiv; + __aeabi_uidivmod; + __aeabi_ul2d; + __aeabi_ul2f; + __aeabi_ulcmp; + __aeabi_uldivmod; + _Unwind_Complete; _Unwind_VRS_Get; _Unwind_VRS_Set; From nobody Sun May 4 17:09:30 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 4ZrB3H447lz5tyTl; Sun, 04 May 2025 17:09: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 4ZrB3H1CVpz44RM; Sun, 04 May 2025 17:09:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378571; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BZN/24s48tbh4sI7p0hQtUTABtHXX0fd2kuuB+iucgA=; b=CWRGuPlKreQWIlPUQukpkFn9kFIocUv4hreeQ3PO+Pqs18VvYrzjOzZ9xJ+1WNPA+C1GOn FQMdJYeHI93yLe4GeGck9F7PfaDX8MRI0xF7YXsMwlotnH4mbtWVBoqK4lcJdit8P14Nn9 oTYWm/9gD31pX0SvdOgzqP1sOKssZBzvFlczrOL+up3e7XK80Z+fuUUKQ/UODpgIPoafXK h+1ZDK5xLUDvYoWjDPg65ic41cAzBlzzvEjX8/tRt+rTnkIgYPuK462fs/9rJSt6cY4hTN WSApqmSHxh3voU3tJlw7sxxvYboIFRK3h97QMLnevtHed0OqUpySmI39vLDkRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378571; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BZN/24s48tbh4sI7p0hQtUTABtHXX0fd2kuuB+iucgA=; b=N8wBi9cUnEnFEr81p1egsB+QNgiqG/jxtnT52F6ZbBvgMjl8O1akEQ0cL1FI5ZpGEUrnDh V5qHqOxhxGmuc6zJX6wTVvk72OEe10mEuvRZYw6MWMNbEIjxl0ZFuLLie7JU3uTyeKcyvd 4OxS3g7VyIA2pk50Qtr+3vo7Y7FsBHSQNoxfuSh8yqwwOq140MD1ATgHZ/ltk/1Y/FuP1k TLLqVwqjaBj25SrrmSXR4erFGxmZu547y/zHPIrK88WuZyNDZDMV/X8erTTkPF700Wb8nE 2AXO9JNzR115Clur9515sk+CkjLX6rwnNIcDP0eeTi8qlp4hjC93mCiqTjLikQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746378571; a=rsa-sha256; cv=none; b=JKTwONh1fTnF85bljiL47ZwtjlEeRixi26xDVCXG04IbSxDiInZ0XtzCCUuBEpd7eT/zHl ylIO78RVDvPS0ufp4MwNcHglrghMMnPbUI/EEK0M2xnKR3HznRToR2v1iCprDLZuNoEy0o 5p07gOUoyBu5qxTmhGYM+PP/LMlE3DYIbFNzKWy8o6dHvmDZ942WEdJXnRIEzgChdYlryh TF1kuXcmcFgsqvjqWfgKgUwiQc4IWgAObNQj56Nh/UBHBscWAwjJim+Z5urUOPeIgvcCHr ZT2WkVuHAUfy9yu8TAFOFVST+YjT/zRivQ0RTg4zSMJNxvfEib33rENCutgK2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrB3G30x3zdMF; Sun, 04 May 2025 17:09: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 544H9Urm060555; Sun, 4 May 2025 17:09:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544H9UCb060553; Sun, 4 May 2025 17:09:30 GMT (envelope-from git) Date: Sun, 4 May 2025 17:09:30 GMT Message-Id: <202505041709.544H9UCb060553@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michal Meloun Subject: git: 71279c158005 - main - rk3568 pcie: Do not require optional FDT properties. 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: mmel X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 71279c158005ee5c2cca2e5c19158237119e5286 Auto-Submitted: auto-generated The branch main has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=71279c158005ee5c2cca2e5c19158237119e5286 commit 71279c158005ee5c2cca2e5c19158237119e5286 Author: Michal Meloun AuthorDate: 2025-02-18 14:39:15 +0000 Commit: Michal Meloun CommitDate: 2025-05-04 11:48:47 +0000 rk3568 pcie: Do not require optional FDT properties. - "vpcie3v3-supply" is documented as an optional, do not require it. - fix handling of the another optional property "reset-gpios". - while I'm in, fix errors reporting in rk3568_pcie_init_soc() MFC after: 2 weeks Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D50102 --- sys/arm64/rockchip/rk3568_pcie.c | 62 ++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/sys/arm64/rockchip/rk3568_pcie.c b/sys/arm64/rockchip/rk3568_pcie.c index 9e3a1fa054cc..ac9d0a713886 100644 --- a/sys/arm64/rockchip/rk3568_pcie.c +++ b/sys/arm64/rockchip/rk3568_pcie.c @@ -139,21 +139,43 @@ rk3568_pcie_init_soc(device_t dev) int err, count; bool status; + /* Assert PCIe reset */ + if (sc->reset_gpio != NULL) { + if (gpio_pin_setflags(sc->reset_gpio, GPIO_PIN_OUTPUT)) { + device_printf(dev, "Could not setup PCIe reset\n"); + return (ENXIO); + } + if (gpio_pin_set_active(sc->reset_gpio, true)) { + device_printf(dev, "Could not set PCIe reset\n"); + return (ENXIO); + } + } + /* Assert reset */ - if (hwreset_assert(sc->hwreset)) + if (hwreset_assert(sc->hwreset)) { device_printf(dev, "Could not assert reset\n"); + return (ENXIO); + } /* Powerup PCIe */ - if (regulator_enable(sc->regulator)) - device_printf(dev, "Cannot enable regulator\n"); + if (sc->regulator != NULL) { + if (regulator_enable(sc->regulator)) { + device_printf(dev, "Cannot enable regulator\n"); + return (ENXIO); + } + } /* Enable PHY */ - if (phy_enable(sc->phy)) + if (phy_enable(sc->phy)) { device_printf(dev, "Cannot enable phy\n"); + return (ENXIO); + } /* Deassert reset */ - if (hwreset_deassert(sc->hwreset)) + if (hwreset_deassert(sc->hwreset)) { device_printf(dev, "Could not deassert reset\n"); + return (ENXIO); + } /* Enable clocks */ if ((err = clk_enable(sc->aclk_mst))) { @@ -183,7 +205,7 @@ rk3568_pcie_init_soc(device_t dev) bus_write_4(sc->apb_res, PCIE_CLIENT_GENERAL_CON, (DEVICE_TYPE_MASK << 16) | DEVICE_TYPE_RC); - /* Assert reset PCIe */ + /* Deassert PCIe reset */ if ((err = gpio_pin_set_active(sc->reset_gpio, false))) device_printf(dev, "reset_gpio set failed\n"); @@ -193,9 +215,13 @@ rk3568_pcie_init_soc(device_t dev) (LINK_REQ_RST_GRT | LTSSM_ENABLE)); DELAY(100000); - /* Release reset */ - if ((err = gpio_pin_set_active(sc->reset_gpio, true))) - device_printf(dev, "reset_gpio release failed\n"); + /* Release PCIe reset */ + if (sc->reset_gpio != NULL) { + if (gpio_pin_set_active(sc->reset_gpio, true)) { + device_printf(dev, "Could not release PCIe reset"); + return (ENXIO); + } + } /* Wait for link up/stable */ for (count = 20; count; count--) { @@ -301,8 +327,9 @@ rk3568_pcie_attach(device_t dev) } /* Get regulator if present */ - if (regulator_get_by_ofw_property(dev, 0, "vpcie3v3-supply", - &sc->regulator)) { + error = regulator_get_by_ofw_property(dev, 0, "vpcie3v3-supply", + &sc->regulator); + if (error != 0 && error != ENOENT) { device_printf(dev, "Cannot get regulator\n"); goto fail; } @@ -314,14 +341,11 @@ rk3568_pcie_attach(device_t dev) } /* Get GPIO reset */ - if (OF_hasprop(sc->node, "reset-gpios")) { - if (gpio_pin_get_by_ofw_property(dev, sc->node, "reset-gpios", - &sc->reset_gpio)) { - device_printf(dev, "Cannot get reset-gpios\n"); - goto fail; - } - gpio_pin_setflags(sc->reset_gpio, GPIO_PIN_OUTPUT); - gpio_pin_set_active(sc->reset_gpio, true); + error = gpio_pin_get_by_ofw_property(dev, sc->node, "reset-gpios", + &sc->reset_gpio); + if (error != 0 && error != ENOENT) { + device_printf(dev, "Cannot get reset-gpios\n"); + goto fail; } /* Get clocks */ From nobody Sun May 4 17:09:31 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 4ZrB3J5Tb4z5tyS6; Sun, 04 May 2025 17:09: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 4ZrB3J2kd6z44kc; Sun, 04 May 2025 17:09:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378572; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EL5hBrQ6TDomoWvcknkZCRjSX/DAHe3i+5E16zlnX+g=; b=pjoZ2UzChiTr1qCzDyAkfoeQzWdrODf98d3+AXP5kIaXhiiY8aR7gvpV6MJCukvvxDjQPg gEPeclVnU2CoJL7q5HP1g8yo2G/36Fv+HGW4QDN16F4lwsYbZIq8xM7jch/4dPV1e71Fzv GfOBkcyTKOd86inQI9S/6fttSJ+TisUcdFwe6i+Mo7p0NBtOKN9duAC7XAnMZ5yfExK3Gj xp6GPycxfi4HS3GYkaZwzLduMHvMu6U+bwJF5zaMA++5itNhX+vXIIUQfihRLdHjNMK0Nv vaj3HKFv4sURx5Px3/zzz5bZyz2Zu6MXQ5HGQ/OLECJDUCzFCemncZrInN/A6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746378572; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EL5hBrQ6TDomoWvcknkZCRjSX/DAHe3i+5E16zlnX+g=; b=IMXsCFaAIiQY6x5QD4Z1+/OjzYZTXJQTgNix2jsdnft95q9GzG8hJVz1OP6NXoYtFlX17J 2TLAQUlM31Pc2yfe2e7wE2PVp4l1oZULuFPPYHSZdnq9FkuczdoHzO0e/kZPfJMfk4qRok ZHruZA/ItI/s5DJrvfTx3FLjddzkkDaghy/QRl9BLCI0VTQZRnDCtEtsAgtK8rzjyZlumz qg9UadTiNFvvoPPtEnpZ/JF72rke3PspbrIwQTYUZlIbfsaJCkAAJrSLM3+EDy+gPaVIBl lkSKPkdcNv1GteThRmO7bEZlL3Kyew/nHYpr/QgsIZMyq5yOduzPWFypKsQ2Yw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746378572; a=rsa-sha256; cv=none; b=uqzLivWG1/IfTOCdY+bquJHrtZqxo25yYJK8H9KMjgW4CripYwvcThaZxXYMcf6JSdyw8q xUUYHgIpQ8ZwUONQJZ+nQgwk//FUc9nG9s+N591UPeYsWPTT73dnq9zuQt8DVx/x0lgv5c mSdAlLxVYuBHUHesGbGQ1ivBAhZAHOGXy038ZSrQH3nJX/b6FYijNx3Qt5T2FM86HrHPNV auapuSzShFdGeIUpYO5Pw5gzvYXQ2R2HY91WQ3R5/j+9PJYNjwxldFhiOENoZ1b2MLZL/h uwIWiERqYivH1CDAskJxXZg++wGgE9XecHCBZBpKtnb9irZoKFiYNQYNThjMbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrB3H3TmkzdMG; Sun, 04 May 2025 17:09: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 544H9VJu060597; Sun, 4 May 2025 17:09:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544H9VBn060594; Sun, 4 May 2025 17:09:31 GMT (envelope-from git) Date: Sun, 4 May 2025 17:09:31 GMT Message-Id: <202505041709.544H9VBn060594@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michal Meloun Subject: git: ec5083a0e890 - main - rk_iodomain: Do not require optional FDT properties. 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: mmel X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ec5083a0e890be3e59960e73867b611d32c11c4c Auto-Submitted: auto-generated The branch main has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=ec5083a0e890be3e59960e73867b611d32c11c4c commit ec5083a0e890be3e59960e73867b611d32c11c4c Author: Michal Meloun AuthorDate: 2025-02-18 14:46:07 +0000 Commit: Michal Meloun CommitDate: 2025-05-04 11:49:03 +0000 rk_iodomain: Do not require optional FDT properties. The regulatos in the list are documented as optional, do not require them. MFC after: 2 weeks Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D50101 --- sys/arm64/rockchip/rk_iodomain.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sys/arm64/rockchip/rk_iodomain.c b/sys/arm64/rockchip/rk_iodomain.c index ed61b99481f2..7b4006fc9aed 100644 --- a/sys/arm64/rockchip/rk_iodomain.c +++ b/sys/arm64/rockchip/rk_iodomain.c @@ -163,11 +163,16 @@ rk_iodomain_set(struct rk_iodomain_softc *sc) regulator_t supply; uint32_t reg = 0; uint32_t mask = 0; - int uvolt, i; + int uvolt, i, rv; for (i = 0; i < sc->conf->nsupply; i++) { - if (regulator_get_by_ofw_property(sc->dev, sc->node, - sc->conf->supply[i].name, &supply) != 0) { + rv = regulator_get_by_ofw_property(sc->dev, sc->node, + sc->conf->supply[i].name, &supply); + + if (rv == ENOENT) + continue; + + if (rv != 0) { device_printf(sc->dev, "Cannot get property for regulator %s\n", sc->conf->supply[i].name); From nobody Sun May 4 19:14:33 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 4ZrDqY3cxCz5v7ns; Sun, 04 May 2025 19:14: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 4ZrDqY38K2z3Rwm; Sun, 04 May 2025 19:14:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746386073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TQPZ80ixkFmJ/XyqdEpkKDTfv+YB0STp+auh43CbKVQ=; b=vbTOGwlU0N+RZz71tPgr2/AV04PWeIHkOI/r9UYyu8b1I3lMCech5s+9d+KJ4N4Ie4UAQ0 OMN4uZNht81PkPXQq9nlzp8BcbqtnpzU3LPoXr3UZAlUBhUIDyXU9r8BqWdLazN3VjCP9N sM5mdlnd8a3+vXynEOw3BIJt4CCiSqo/pA6cD7y2u9E3V5OjwmYyUnmLiym0y9IH5G7YZI kFwUB5X8DBS96I/UakzLbY84FNXz1Gwut+SSN8WKTYC4Wf28JXM5H8kCmbO3exGY//xF53 /buTBJCaa9aXPURqdLUfvYDWeINI2l7qXPVh3kgZvxHjWMK7nVH2AaEiYVeLXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746386073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TQPZ80ixkFmJ/XyqdEpkKDTfv+YB0STp+auh43CbKVQ=; b=QDK60RukYbALobwNhq0vDyT52c6FzkGnwzSCMh2Rnkl/Au0/TJN9htjXoGfvgKpkeaMBI3 xyYPUfY7wVdYUAwGajG8X3VOdvpwspmUXjO0hN3cr1llDBfJIiTHd3Q8hc+xXYaDN7ntTo jDAelIqhlAxQGe3pXWejR/pzL9A8dN19RAZXTwfeNsbZsqgK4+NVamt/qKtHvWOlZ/yzJA HPgjFAE4bgJj5gug+MJoAxGYIhCxat/O6X9XSWdza5htohsA5tbGeKRjvmHPXePHza5Yys wzDQhLKa47NaDRR6xfzvh5FXsrFPLGdZpulJfFhzNHQNmqcesWZxWmEmwMPxWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746386073; a=rsa-sha256; cv=none; b=CiaYTEpKj6sUky5iDhf0v8ITnqE0BdtOfYiP8L7AIDuJBOoNn/ZLF9TwOrHe2DvMAhv99o huw5wAO5Al5y2cYWCBOrnJ9J44OpLdmXw/wTREKlpM05K3EKi2FTe9PSW6T/53by8LpF5H EqEN/8gtiGwMxgpBWtuv/+plAGqHt5T7tipGC8ke+1xobMmJs3VSnSMGlAJt10hNN8aJVQ zq4Z+ZeVnixdGH3Hh5Tbx/Ypb0+W9O4CFX3BSWSk1NrnTXG+Z8gF5RQZ+8zc+lVpexXOhS XxdWuXyV2gXawfuQ0gZy3ZWw2I11OSGG0h9yL1ZkPMMlOSYDQCZ0IdXb3azpHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrDqY2gR6zhDc; Sun, 04 May 2025 19:14: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 544JEXFv004024; Sun, 4 May 2025 19:14:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544JEXFb004021; Sun, 4 May 2025 19:14:33 GMT (envelope-from git) Date: Sun, 4 May 2025 19:14:33 GMT Message-Id: <202505041914.544JEXFb004021@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: 9639de2a6f7e - main - sctp: fix mapping of interface address flags 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: 9639de2a6f7eec8b2158782fbfab3419d507fdc5 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=9639de2a6f7eec8b2158782fbfab3419d507fdc5 commit 9639de2a6f7eec8b2158782fbfab3419d507fdc5 Author: Michael Tuexen AuthorDate: 2025-05-04 19:05:48 +0000 Commit: Michael Tuexen CommitDate: 2025-05-04 19:11:08 +0000 sctp: fix mapping of interface address flags Do not clear the SCTP_ADDR_IFA_UNUSEABLE flag, if it was set due to the address being deprecated. Also don't declare tentative addresses as unusable. While there, cleanup the code. PR: 230242 MFC after: 3 days --- sys/netinet/sctp_bsd_addr.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/sys/netinet/sctp_bsd_addr.c b/sys/netinet/sctp_bsd_addr.c index a10fbcc5ca40..65b271afd84d 100644 --- a/sys/netinet/sctp_bsd_addr.c +++ b/sys/netinet/sctp_bsd_addr.c @@ -119,23 +119,21 @@ sctp_gather_internal_ifa_flags(struct sctp_ifa *ifa) ifa6 = (struct in6_ifaddr *)ifa->ifa; ifa->flags = ifa6->ia6_flags; - if (!MODULE_GLOBAL(ip6_use_deprecated)) { - if (ifa->flags & - IN6_IFF_DEPRECATED) { + if (MODULE_GLOBAL(ip6_use_deprecated)) { + ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; + } else { + if (ifa->flags & IN6_IFF_DEPRECATED) { ifa->localifa_flags |= SCTP_ADDR_IFA_UNUSEABLE; } else { ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; } - } else { - ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; } - if (ifa->flags & - (IN6_IFF_DETACHED | - IN6_IFF_ANYCAST | - IN6_IFF_NOTREADY)) { + if (ifa->flags & (IN6_IFF_DETACHED | IN6_IFF_DUPLICATED)) { + ifa->localifa_flags |= SCTP_ADDR_IFA_UNUSEABLE; + } + /* Right now, do not support IPv6 anycast addresses */ + if (ifa->flags & IN6_IFF_ANYCAST) { ifa->localifa_flags |= SCTP_ADDR_IFA_UNUSEABLE; - } else { - ifa->localifa_flags &= ~SCTP_ADDR_IFA_UNUSEABLE; } } #endif /* INET6 */ From nobody Sun May 4 22:01:32 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 4ZrJXF1MdYz5vLyW; Sun, 04 May 2025 22:01: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 4ZrJXF0gPyz3v70; Sun, 04 May 2025 22:01:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396093; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L7xirmHKOOmXGhY2BAj1Kx1IfalfqbdePjDYLoAZSis=; b=CL4IzxClEjny/YnhHabGcp6Ry6WDpxlmYJI115At8EEfFnnlqludhKO4jVXH2aCX8Bd+Ko r0V4S2ACFumUsl8ooESB1K2rBQ4bSJ/BLod+7l7E2tcXVmzwNy79Q0HmO+5ETVAOqok747 JcuC7k8ig3e8/hC9hqJrl78psiuc4HOgxYCGvh+U0qM0W8rL24PjFzoKB4twlPi9OsJflr 4fVQAP91ET4jq6qRIwt67jVRRVwp4reGE6IWZQecyAjINZzBrZkI5tvsTJlzyv0WDgA8HL AX2wtciEUCfE6jQ/soL8b9EHXRqKl8ZSPHUU6C2PzA5JgjlV3amUMo9CTnoJig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396093; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L7xirmHKOOmXGhY2BAj1Kx1IfalfqbdePjDYLoAZSis=; b=oZSM1g9u3iOhVX8UNHglQr4a1plDRDL01jeRF4PC2YcJmFWJLN7MbTIMBG1b1ejzQzPgdL sYkA3rzaYjuzqzZAlGZbBBFjLclsJ2Kp4D15/6OKKb6VcVKQLb5/T6ErC+fGXNHdPlkJzJ XhZAS2Hg+ljkyetZuYDKIttDorU7rc/hcG957/RlNLY/PWcGTMu7FuE7VPp95RqFiYkmPS XUQF3ni5xNUovxraqg6uuHh5ZKXB06oKhtDMbGTGrODtGZnTRD7CsPsbombaOeklXHLrSx wWMd/45UpEkUdFnbmSV09chy5TP07n74NgTUbTF3jAB+Dtl7PL9t70gUBZADsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746396093; a=rsa-sha256; cv=none; b=pQZNvNcNcF7jMm4SebW1B6ZeqR+tgDRutMUCwzwonNVqFnQLCOKevCXjAUrHVz3LaMq3tV SmAw2M8RgABlfh/uVeLdsB90MKXgU6JkT0RtTutuBY/iDqFCsUDO3UD5hYQw8vO8cspgvo OEQcOwMXyA39ReWQCuE3C1QImE4yUBQsO5de70ME9dmwm+mUneRcZCScKHSsZfEPZF+9E6 rVUIy95CpxoWgL+C94kkIOVDiTBbJWhxhXHzJy9gE77Cre9NqI93nnedF4Bei/6ys9V/2x sM/fBTz6Bin19vcJqJ0Ql92KynDsOlfR7BtsD8L5kq2s0Z51tv4/m6O9QhbxPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrJXF0DsnzmKF; Sun, 04 May 2025 22:01: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 544M1WHn016827; Sun, 4 May 2025 22:01:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544M1WNn016825; Sun, 4 May 2025 22:01:32 GMT (envelope-from git) Date: Sun, 4 May 2025 22:01:32 GMT Message-Id: <202505042201.544M1WNn016825@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: f61844833ee8 - main - vfs_vnops.c: Make O_NAMEDATTR Solaris compatible 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f61844833ee8e39f7568b27f562d7e26897bb73d Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=f61844833ee8e39f7568b27f562d7e26897bb73d commit f61844833ee8e39f7568b27f562d7e26897bb73d Author: Rick Macklem AuthorDate: 2025-05-04 21:58:56 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 21:58:56 +0000 vfs_vnops.c: Make O_NAMEDATTR Solaris compatible When the O_XATTR flag is used in a Solaris open(2), the named attribute directory is created, if it does not already exist. (Solaris does not require or allow O_CREAT for this case.) The consensus on the mailing list was that O_NAMEDATTR should behave the same way, as in "create the named attribute directory if it does not exist even if O_CREAT is not specified. This patch makes this change. Note that CREATENAMED is still useful for the NFSv4 server. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D50139 Fixes: 2ec2ba7e232d ("vfs: Add VFS/syscall support for Solaris style extended attributes") --- sys/kern/vfs_vnops.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index f1d3ba2ac08b..eaa1d298bdc6 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -208,11 +208,8 @@ open2nameif(int fmode, u_int vn_open_flags) res |= OPENREAD; if ((fmode & FWRITE) != 0) res |= OPENWRITE; - if ((fmode & O_NAMEDATTR) != 0) { - res |= OPENNAMED; - if ((fmode & O_CREAT) != 0) - res |= CREATENAMED; - } + if ((fmode & O_NAMEDATTR) != 0) + res |= OPENNAMED | CREATENAMED; if ((vn_open_flags & VN_OPEN_NOAUDIT) == 0) res |= AUDITVNODE1; if ((vn_open_flags & VN_OPEN_NOCAPCHECK) != 0) From nobody Sun May 4 22:08:07 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 4ZrJgr4T5wz5vM7m; Sun, 04 May 2025 22:08: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 4ZrJgq5VqSz41XQ; Sun, 04 May 2025 22:08:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396487; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eBQVyb1GFY+NVvWftAAayjVFaLsLYLOYRcyKMTc7tBQ=; b=qu2WpZbKnYwMVhnSebSTRx3NdaJq/HGFE7JZLC8tXxdZa1NmFAZWvdpMx1mC/261LqxShr 4MuFYiRy3yWml5lREGro7ZixreYgv8r+XwwBwdj6QimOKafOE45zSel47ZS8LZEiUgFRyV T8G9UIIEYs/VOAOrPyAyr2b0r/KssMEbXgUPg1lbEcwZndS210Yr2JgPRG1jjAieoGL6EG PCxN1lfzsq+R9kYWNFjRYAE4PEJJq62Jjd/bgZzuawZ5rd140xMWkBdFdOPL6RzKEzNOiL HqvoecqkpJfJLIhTUZFTsSt9O8W1+6hirKEOqkLciI2pYL8MYmzccWXTwQkYHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396487; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eBQVyb1GFY+NVvWftAAayjVFaLsLYLOYRcyKMTc7tBQ=; b=jpvVtu01NWajDyqMJjxisO08dABSIFUnT85jMB5SZlpjM5Wf/4DhNClpqcaAskWyr+8wiv mIOBApR7yC5uKuennfZUKPrH6ezQKgNj5K5Gxelp+4oR59SkaOvWIINREpEz3XwEi70lvL KqTsVKnvJx5lMsaVpgTQYB95WGdoy9qoAXWG3IidpR7jYsUOjp9QA2rXivfLia/mIJRBmL qgBCw1b8nj0Nn8nuLgz0BCWMUn+V+aDHCdqhsGRvpKriV4GoacW6A+HjIEkp2vsC8bSm4d oF4SAksXmRFTeGH6Cm1Jvjg6fMpnS1vTXGutxoDC6lbg/2ZsG11zDGqeeiroJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746396487; a=rsa-sha256; cv=none; b=Vy/0eWBuYTIgYIDyrvOyZK7V+ifMWZ7A+ECGtvMxy9g775+yWN6pgRvy6gJt0uJY5ay+jM xYmIL3IDcR1xsej2cFKvuxt757Hx4h6CTe2yTcDJlQJRG72QB7Ejg7HCibrmffkaESWBVL vW4Qa8NCQ01uzud+RsKqY2m7JxMXbLscAThrdGkVZEBAXWK0M/Pb/Iah+9VE6tDlD5+CxP lbJa5jnsMWnQRD50KXpTh9DwbrQ83xd3Wij6lzAFwqGuPireLg+TzeNju6EP0UeQhIRKoZ ofpAtO7FnIi04n1J7p1qSX6pi498QBLfscz8ApXNoX88+E/j3xPFgoJO6//Flw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrJgq50Zkzn0F; Sun, 04 May 2025 22:08: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 544M87nq024487; Sun, 4 May 2025 22:08:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544M87gP024481; Sun, 4 May 2025 22:08:07 GMT (envelope-from git) Date: Sun, 4 May 2025 22:08:07 GMT Message-Id: <202505042208.544M87gP024481@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: 071ab5a1f3cb - main - zfs: merge openzfs/zfs@246e5883b 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: 071ab5a1f3cbfd29c8fbec27f7e619418adaf074 Auto-Submitted: auto-generated The branch main has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=071ab5a1f3cbfd29c8fbec27f7e619418adaf074 commit 071ab5a1f3cbfd29c8fbec27f7e619418adaf074 Merge: f61844833ee8 246e5883bb5b Author: Martin Matuska AuthorDate: 2025-05-04 22:05:28 +0000 Commit: Martin Matuska CommitDate: 2025-05-04 22:05:28 +0000 zfs: merge openzfs/zfs@246e5883b Notable upstream pull request merges: #17111 246e5883b Implement allocation size ranges and use for gang leaves #17123 5f5321eff Handle interaction between gang blocks, copies, and FDT #17130 -multiple Implement default user/group/project quotas #17164 301da593a Fix lock reversal on device removal cancel #17183 367d34b3a Fix dspace underflow bug #17187 30cc2331f zed: Ensure spare activation after kernel-initiated device removal #17191 11ca12dbd simd_powerpc.h: enable FPU on FreeBSD #17192 5b29e70ae Remove mg_allocators #17204 a497c5fc8 Improve L2 caching control for prefetched indirects #17205 b14b3e398 Fix FDT rollback to not overwrite unnecessary fields #17206 7be9fa259 Fix nonrot property being incorrectly unset #17208 09fc7bb47 Fix memory leaks in pool properties handling #17213 78a7c78bd Added fix for zpool get state segfaults with two or more vdevs #17228 131df3bbf vdev_to_nvlist_iter: ignore draid parameters when matching names #17231 f40ab9e39 Fix double spares for failed vdev #17264 27f3d9494 Sort the blocking snapshots lis #17269 f86d9af16 Fix race between resilver wait and offline/detach #17273 c8fa39b46 cred: properly pass and test creds on other threads #17284 a7de203c8 txg: generalise txg_wait_synced_sig() to txg_wait_synced_flags() Obtained from: OpenZFS OpenZFS commit: 246e5883bb5b8e09b1a4213f7b1704b5a9ed5568 .../.github/workflows/scripts/generate-ci-type.py | 1 + .../.github/workflows/scripts/qemu-1-setup.sh | 44 +--- .../.github/workflows/scripts/qemu-2-start.sh | 51 ++++- .../.github/workflows/scripts/qemu-3-deps-vm.sh | 4 + .../.github/workflows/scripts/qemu-5-setup.sh | 34 ++- .../.github/workflows/scripts/qemu-6-tests.sh | 15 +- .../.github/workflows/scripts/qemu-7-prepare.sh | 4 +- .../.github/workflows/scripts/qemu-8-summary.sh | 2 +- .../.github/workflows/zfs-qemu-packages.yml | 2 +- sys/contrib/openzfs/.github/workflows/zfs-qemu.yml | 4 +- sys/contrib/openzfs/cmd/zed/agents/zfs_retire.c | 19 +- sys/contrib/openzfs/cmd/zed/zed.d/zed-functions.sh | 5 + sys/contrib/openzfs/cmd/zfs/zfs_main.c | 13 +- sys/contrib/openzfs/cmd/zinject/zinject.c | 20 +- .../openzfs/cmd/zpool/os/linux/zpool_vdev_os.c | 3 +- sys/contrib/openzfs/cmd/zpool/zpool_main.c | 8 +- .../openzfs/config/kernel-vfs-migratepage.m4 | 27 +++ sys/contrib/openzfs/config/kernel.m4 | 65 ++++-- sys/contrib/openzfs/config/user-libunwind.m4 | 16 ++ sys/contrib/openzfs/contrib/debian/control | 1 + .../contrib/initramfs/scripts/local-top/zfs | 4 +- sys/contrib/openzfs/include/libzfs.h | 2 +- .../openzfs/include/os/freebsd/spl/sys/debug.h | 71 +++---- .../openzfs/include/os/freebsd/spl/sys/policy.h | 1 - .../include/os/freebsd/spl/sys/simd_powerpc.h | 4 +- .../include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 8 + .../openzfs/include/os/linux/spl/sys/debug.h | 67 +++--- .../openzfs/include/os/linux/zfs/sys/policy.h | 1 - .../include/os/linux/zfs/sys/zfs_vfsops_os.h | 8 + sys/contrib/openzfs/include/sys/ddt.h | 4 + sys/contrib/openzfs/include/sys/dmu_recv.h | 1 - sys/contrib/openzfs/include/sys/dsl_dataset.h | 4 +- sys/contrib/openzfs/include/sys/dsl_dir.h | 4 +- sys/contrib/openzfs/include/sys/fs/zfs.h | 6 + sys/contrib/openzfs/include/sys/metaslab.h | 10 +- sys/contrib/openzfs/include/sys/metaslab_impl.h | 1 - sys/contrib/openzfs/include/sys/nvpair.h | 2 + sys/contrib/openzfs/include/sys/spa.h | 3 +- sys/contrib/openzfs/include/sys/txg.h | 23 +- sys/contrib/openzfs/include/sys/vdev.h | 3 + sys/contrib/openzfs/include/sys/vdev_draid.h | 2 +- sys/contrib/openzfs/include/sys/vdev_impl.h | 4 +- sys/contrib/openzfs/include/sys/zcp.h | 1 - sys/contrib/openzfs/include/sys/zfs_context.h | 4 +- sys/contrib/openzfs/include/sys/zfs_debug.h | 20 ++ sys/contrib/openzfs/include/sys/zfs_quota.h | 2 +- sys/contrib/openzfs/include/sys/zio.h | 1 + sys/contrib/openzfs/lib/libnvpair/libnvpair.abi | 40 ++-- sys/contrib/openzfs/lib/libnvpair/libnvpair.c | 181 +++------------- sys/contrib/openzfs/lib/libspl/backtrace.c | 66 ++++-- sys/contrib/openzfs/lib/libspl/include/assert.h | 65 +++--- sys/contrib/openzfs/lib/libuutil/libuutil.abi | 45 +--- sys/contrib/openzfs/lib/libzfs/libzfs.abi | 133 ++++++------ sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 60 ++++-- sys/contrib/openzfs/lib/libzfs/libzfs_iter.c | 2 +- sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 15 +- .../openzfs/lib/libzfs_core/libzfs_core.abi | 77 +++---- .../openzfs/lib/libzfsbootenv/libzfsbootenv.abi | 2 +- sys/contrib/openzfs/lib/libzpool/Makefile.am | 1 + sys/contrib/openzfs/lib/libzpool/kernel.c | 7 - sys/contrib/openzfs/man/man7/zfsprops.7 | 36 ++++ sys/contrib/openzfs/man/man8/zfs-rollback.8 | 4 +- sys/contrib/openzfs/module/Kbuild.in | 1 + sys/contrib/openzfs/module/Makefile.bsd | 16 +- sys/contrib/openzfs/module/nvpair/nvpair.c | 236 +++++++++++++++++++++ .../openzfs/module/os/freebsd/spl/spl_policy.c | 7 - .../openzfs/module/os/freebsd/zfs/vdev_geom.c | 3 +- .../openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 122 +++++++++-- .../openzfs/module/os/linux/spl/spl-kstat.c | 5 +- sys/contrib/openzfs/module/os/linux/zfs/abd_os.c | 2 + sys/contrib/openzfs/module/os/linux/zfs/policy.c | 44 ++-- .../openzfs/module/os/linux/zfs/vdev_disk.c | 3 +- .../openzfs/module/os/linux/zfs/zfs_vfsops.c | 131 ++++++++++-- sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 2 +- sys/contrib/openzfs/module/zcommon/zfs_prop.c | 22 ++ sys/contrib/openzfs/module/zcommon/zfs_valstr.c | 4 +- sys/contrib/openzfs/module/zfs/abd.c | 2 + sys/contrib/openzfs/module/zfs/dbuf.c | 25 ++- sys/contrib/openzfs/module/zfs/ddt.c | 32 +++ sys/contrib/openzfs/module/zfs/dmu_direct.c | 4 +- sys/contrib/openzfs/module/zfs/dmu_objset.c | 25 ++- sys/contrib/openzfs/module/zfs/dmu_recv.c | 48 +++-- sys/contrib/openzfs/module/zfs/dsl_dataset.c | 29 ++- sys/contrib/openzfs/module/zfs/dsl_dir.c | 42 ++-- sys/contrib/openzfs/module/zfs/dsl_scan.c | 13 +- sys/contrib/openzfs/module/zfs/dsl_synctask.c | 19 +- sys/contrib/openzfs/module/zfs/metaslab.c | 225 +++++++++++++++----- sys/contrib/openzfs/module/zfs/refcount.c | 3 +- sys/contrib/openzfs/module/zfs/spa.c | 101 ++++++++- sys/contrib/openzfs/module/zfs/txg.c | 34 +-- sys/contrib/openzfs/module/zfs/vdev.c | 60 +++++- sys/contrib/openzfs/module/zfs/vdev_draid.c | 21 +- sys/contrib/openzfs/module/zfs/vdev_file.c | 5 +- sys/contrib/openzfs/module/zfs/vdev_indirect.c | 3 +- sys/contrib/openzfs/module/zfs/vdev_mirror.c | 9 +- sys/contrib/openzfs/module/zfs/vdev_missing.c | 6 +- sys/contrib/openzfs/module/zfs/vdev_raidz.c | 34 ++- sys/contrib/openzfs/module/zfs/vdev_rebuild.c | 2 +- sys/contrib/openzfs/module/zfs/vdev_removal.c | 67 +++--- sys/contrib/openzfs/module/zfs/vdev_root.c | 3 +- sys/contrib/openzfs/module/zfs/zcp.c | 12 +- sys/contrib/openzfs/module/zfs/zcp_synctask.c | 2 - sys/contrib/openzfs/module/zfs/zfs_debug_common.c | 97 +++++++++ sys/contrib/openzfs/module/zfs/zfs_fm.c | 18 +- sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 98 ++++++++- sys/contrib/openzfs/module/zfs/zfs_quota.c | 64 +++++- sys/contrib/openzfs/module/zfs/zfs_znode.c | 8 + sys/contrib/openzfs/module/zfs/zio.c | 144 ++++++++++--- sys/contrib/openzfs/rpm/generic/zfs-dkms.spec.in | 6 + sys/contrib/openzfs/tests/runfiles/common.run | 18 +- sys/contrib/openzfs/tests/runfiles/linux.run | 18 +- sys/contrib/openzfs/tests/runfiles/sanity.run | 4 + .../openzfs/tests/zfs-tests/cmd/clonefile.c | 11 +- .../tests/zfs-tests/cmd/file/largest_file.c | 2 +- sys/contrib/openzfs/tests/zfs-tests/cmd/statx.c | 3 + .../openzfs/tests/zfs-tests/tests/Makefile.am | 27 +++ .../cli_root/zpool_add/zpool_add_dryrun_output.ksh | 22 +- .../zpool_create/zpool_create_dryrun_output.ksh | 15 +- .../functional/cli_root/zpool_get/vdev_get_all.ksh | 92 ++++++++ .../zpool_split/zpool_split_dryrun_output.ksh | 14 +- .../cli_root/zpool_status/zpool_status_003_pos.ksh | 2 +- .../cli_root/zpool_status/zpool_status_004_pos.ksh | 2 +- .../tests/functional/dedup/dedup_quota.ksh | 21 +- .../tests/functional/events/zed_cksum_reported.ksh | 2 +- .../tests/functional/fault/auto_spare_double.ksh | 122 +++++++++++ .../functional/gang_blocks/gang_blocks_001_pos.ksh | 59 ++++++ .../gang_blocks/gang_blocks_ddt_copies.ksh | 79 +++++++ .../online_offline/online_offline_001_pos.ksh | 11 +- .../online_offline/online_offline_002_neg.ksh | 7 +- .../online_offline/online_offline_003_neg.ksh | 9 +- .../pool_checkpoint/checkpoint_capacity.ksh | 5 +- .../pool_checkpoint/pool_checkpoint.kshlib | 3 +- .../projectquota/defaultprojectquota_001_pos.ksh | 89 ++++++++ .../projectquota/defaultprojectquota_002_pos.ksh | 87 ++++++++ .../projectquota/defaultprojectquota_003_neg.ksh | 77 +++++++ .../projectquota/defaultprojectquota_004_pos.ksh | 67 ++++++ .../projectquota/defaultprojectquota_005_pos.ksh | 76 +++++++ .../projectquota/defaultprojectquota_006_pos.ksh | 90 ++++++++ .../projectquota/defaultprojectquota_007_pos.ksh | 130 ++++++++++++ .../projectquota/projectquota_007_pos.ksh | 4 +- .../projectquota/projectquota_common.kshlib | 2 + .../projectquota/projectspace_005_pos.ksh | 84 ++++++++ .../replacement/resilver_restart_001.ksh | 2 +- .../tests/functional/slog/slog_006_pos.ksh | 3 +- .../userquota/defaultuserquota_001_pos.ksh | 75 +++++++ .../userquota/defaultuserquota_002_pos.ksh | 96 +++++++++ .../userquota/defaultuserquota_003_pos.ksh | 62 ++++++ .../userquota/defaultuserquota_004_neg.ksh | 72 +++++++ .../userquota/defaultuserquota_005_pos.ksh | 76 +++++++ .../userquota/defaultuserquota_006_pos.ksh | 61 ++++++ .../userquota/defaultuserquota_007_pos.ksh | 90 ++++++++ .../userquota/defaultuserquota_008_pos.ksh | 78 +++++++ .../userquota/defaultuserquota_009_pos.ksh | 133 ++++++++++++ .../userquota/defaultuserquota_010_neg.ksh | 65 ++++++ .../userquota/defaultuserquota_011_neg.ksh | 79 +++++++ .../userquota/defaultuserquota_012_neg.ksh | 88 ++++++++ .../userquota/defaultuserquota_013_neg.ksh | 71 +++++++ .../functional/userquota/groupspace_004_pos.ksh | 78 +++++++ .../tests/functional/userquota/userquota.cfg | 2 + .../functional/userquota/userquota_common.kshlib | 6 + .../functional/userquota/userspace_004_pos.ksh | 80 +++++++ .../tests/functional/vdev_disk/page_alignment.c | 8 +- .../functional/zvol/zvol_stress/zvol_stress.ksh | 3 +- .../openzfs/tests/zfs-tests/tests/perf/perf.shlib | 136 ++++++------ sys/modules/zfs/zfs_config.h | 12 +- sys/modules/zfs/zfs_gitrev.h | 2 +- 166 files changed, 4680 insertions(+), 1144 deletions(-) diff --cc sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 index 000000000000,05db3af511eb..05db3af511eb mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 +++ b/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 diff --cc sys/contrib/openzfs/module/zfs/zfs_debug_common.c index 000000000000,cff0dc01c39c..cff0dc01c39c mode 000000,100644..100644 --- a/sys/contrib/openzfs/module/zfs/zfs_debug_common.c +++ b/sys/contrib/openzfs/module/zfs/zfs_debug_common.c diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh index 000000000000,0a63b6059410..0a63b6059410 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh index 000000000000,6a905c867952..6a905c867952 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh index 000000000000,3601f5422250..3601f5422250 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh index 000000000000,12ebcec3af37..12ebcec3af37 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh index 000000000000,7d0bf5cf0fe1..7d0bf5cf0fe1 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh index 000000000000,eabf4fecfcb4..eabf4fecfcb4 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh index 000000000000,53ae9b213c1c..53ae9b213c1c mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh index 000000000000,784077e62501..784077e62501 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh index 000000000000,2adf2a9340f7..2adf2a9340f7 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh index 000000000000,88af37c60549..88af37c60549 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh index 000000000000,fecb7670dfc6..fecb7670dfc6 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh index 000000000000,92d6e2e81656..92d6e2e81656 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh index 000000000000,c57352595662..c57352595662 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh index 000000000000,325873f90af2..325873f90af2 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh index 000000000000,f43f5bd5e57e..f43f5bd5e57e mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh index 000000000000,42be33cac12c..42be33cac12c mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh index 000000000000,c3302d10dae9..c3302d10dae9 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh index 000000000000,37e6e66c8119..37e6e66c8119 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh index 000000000000,91e27cf460fc..91e27cf460fc mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh index 000000000000,b8efb74d0f12..b8efb74d0f12 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh index 000000000000,30aa93e2b0ba..30aa93e2b0ba mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh index 000000000000,ec964236a115..ec964236a115 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh index 000000000000,e822052ff3dd..e822052ff3dd mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh index 000000000000,046273ebd869..046273ebd869 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh index 000000000000,7877bee5f48d..7877bee5f48d mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh index 000000000000,f7dc33591ca9..f7dc33591ca9 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh index 000000000000,795c65101878..795c65101878 mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh diff --cc sys/modules/zfs/zfs_config.h index 2650db0a389b,000000000000..86ccdbee2d5b mode 100644,000000..100644 --- a/sys/modules/zfs/zfs_config.h +++ b/sys/modules/zfs/zfs_config.h @@@ -1,833 -1,0 +1,839 @@@ +/* + */ + +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* __assign_str() has one arg */ +/* #undef HAVE_1ARG_ASSIGN_STR */ + +/* lookup_bdev() wants 1 arg */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ + +/* kernel has access_ok with 'type' parameter */ +/* #undef HAVE_ACCESS_OK_TYPE */ + +/* add_disk() returns int */ +/* #undef HAVE_ADD_DISK_RET */ + +/* Define if host toolchain supports AES */ +#define HAVE_AES 1 + +/* Define if you have [rt] */ +#define HAVE_AIO_H 1 + +#ifdef __amd64__ +#ifndef RESCUE +/* Define if host toolchain supports AVX */ +#define HAVE_AVX 1 +#endif + +/* Define if host toolchain supports AVX2 */ +#define HAVE_AVX2 1 + +/* Define if host toolchain supports AVX512BW */ +#define HAVE_AVX512BW 1 + +/* Define if host toolchain supports AVX512CD */ +#define HAVE_AVX512CD 1 + +/* Define if host toolchain supports AVX512DQ */ +#define HAVE_AVX512DQ 1 + +/* Define if host toolchain supports AVX512ER */ +#define HAVE_AVX512ER 1 + +/* Define if host toolchain supports AVX512F */ +#define HAVE_AVX512F 1 + +/* Define if host toolchain supports AVX512IFMA */ +#define HAVE_AVX512IFMA 1 + +/* Define if host toolchain supports AVX512PF */ +#define HAVE_AVX512PF 1 + +/* Define if host toolchain supports AVX512VBMI */ +#define HAVE_AVX512VBMI 1 + +/* Define if host toolchain supports AVX512VL */ +#define HAVE_AVX512VL 1 +#endif + +/* backtrace() is available */ +/* #undef HAVE_BACKTRACE */ + +/* bdevname() is available */ +/* #undef HAVE_BDEVNAME */ + +/* bdev_check_media_change() exists */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ + +/* bdev_file_open_by_path() exists */ +/* #undef HAVE_BDEV_FILE_OPEN_BY_PATH */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_63 */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_OLD */ + +/* bdev_kobj() exists */ +/* #undef HAVE_BDEV_KOBJ */ + +/* bdev_max_discard_sectors() is available */ +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ + +/* bdev_max_secure_erase_sectors() is available */ +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ + +/* bdev_nr_bytes() is available */ +/* #undef HAVE_BDEV_NR_BYTES */ + +/* bdev_open_by_path() exists */ +/* #undef HAVE_BDEV_OPEN_BY_PATH */ + +/* bdev_release() exists */ +/* #undef HAVE_BDEV_RELEASE */ + +/* block_device_operations->submit_bio() returns void */ +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ + +/* bdev_whole() is available */ +/* #undef HAVE_BDEV_WHOLE */ + +/* bio_alloc() takes 4 arguments */ +/* #undef HAVE_BIO_ALLOC_4ARG */ + +/* bio->bi_bdev->bd_disk exists */ +/* #undef HAVE_BIO_BDEV_DISK */ + +/* bio_*_io_acct() available */ +/* #undef HAVE_BIO_IO_ACCT */ + +/* bio_max_segs() is implemented */ +/* #undef HAVE_BIO_MAX_SEGS */ + +/* bio_set_dev() GPL-only */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ + +/* bio_set_dev() is a macro */ +/* #undef HAVE_BIO_SET_DEV_MACRO */ + +/* bio_set_op_attrs is available */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ + +/* blkdev_get_by_path() exists and takes 4 args */ +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */ + +/* blkdev_get_by_path() handles ERESTARTSYS */ +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ + +/* __blkdev_issue_discard(flags) is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_FLAGS */ + +/* __blkdev_issue_discard() is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_NOFLAGS */ + +/* blkdev_issue_discard(flags) is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_FLAGS */ + +/* blkdev_issue_discard() is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_NOFLAGS */ + +/* blkdev_issue_secure_erase() is available */ +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ + +/* blkdev_put() exists */ +/* #undef HAVE_BLKDEV_PUT */ + +/* blkdev_put() accepts void* as arg 2 */ +/* #undef HAVE_BLKDEV_PUT_HOLDER */ + +/* struct queue_limits has a features field */ +/* #undef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES */ + +/* blkdev_reread_part() exists */ +/* #undef HAVE_BLKDEV_REREAD_PART */ + +/* blkg_tryget() is available */ +/* #undef HAVE_BLKG_TRYGET */ + +/* blkg_tryget() GPL-only */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ + +/* blk_alloc_disk() exists */ +/* #undef HAVE_BLK_ALLOC_DISK */ + +/* blk_alloc_disk() exists and takes 2 args */ +/* #undef HAVE_BLK_ALLOC_DISK_2ARG */ + +/* blk_alloc_queue() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ + +/* blk_alloc_queue_rh() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ + +/* blk_cleanup_disk() exists */ +/* #undef HAVE_BLK_CLEANUP_DISK */ + +/* blk_mode_t is defined */ +/* #undef HAVE_BLK_MODE_T */ + +/* block multiqueue hardware context is cached in struct request */ +/* #undef HAVE_BLK_MQ_RQ_HCTX */ + +/* blk queue backing_dev_info is dynamic */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ + +/* blk_queue_discard() is available */ +/* #undef HAVE_BLK_QUEUE_DISCARD */ + +/* backing_dev_info is available through queue gendisk */ +/* #undef HAVE_BLK_QUEUE_DISK_BDI */ + +/* blk_queue_secure_erase() is available */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ + +/* blk_queue_update_readahead() exists */ +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ + +/* BLK_STS_RESV_CONFLICT is defined */ +/* #undef HAVE_BLK_STS_RESV_CONFLICT */ + +/* Define if release() in block_device_operations takes 1 arg */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */ + +/* Define if revalidate_disk() in block_device_operations */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* check_disk_change() exists */ +/* #undef HAVE_CHECK_DISK_CHANGE */ + +/* copy_splice_read exists */ +/* #undef HAVE_COPY_SPLICE_READ */ + +/* cpu_has_feature() is GPL-only */ +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* DECLARE_EVENT_CLASS() is available */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ + +/* 3-arg dequeue_signal() takes a type argument */ +/* #undef HAVE_DEQUEUE_SIGNAL_3ARG_TYPE */ + +/* dequeue_signal() takes 4 arguments */ +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ + +/* lookup_bdev() wants dev_t arg */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ + +/* disk_check_media_change() exists */ +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */ + +/* disk_*_io_acct() available */ +/* #undef HAVE_DISK_IO_ACCT */ + +/* disk_update_readahead() exists */ +/* #undef HAVE_DISK_UPDATE_READAHEAD */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* dops->d_revalidate() takes 4 args */ +/* #undef HAVE_D_REVALIDATE_4ARGS */ + +/* Define to 1 if you have the 'execvpe' function. */ +#define HAVE_EXECVPE 1 + +/* fault_in_iov_iter_readable() is available */ +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ + +/* file->f_version exists */ +/* #undef HAVE_FILE_F_VERSION */ + +/* flush_dcache_page() is GPL-only */ +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ + +/* Define if compiler supports -Wformat-overflow */ +/* #undef HAVE_FORMAT_OVERFLOW */ + +/* fsync_bdev() is declared in include/blkdev.h */ +/* #undef HAVE_FSYNC_BDEV */ + +/* yes */ +/* #undef HAVE_GENERIC_FADVISE */ + +/* generic_fillattr requires struct mnt_idmap* */ +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ + +/* generic_fillattr requires struct mnt_idmap* and u32 request_mask */ +/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */ + +/* generic_fillattr requires struct user_namespace* */ +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ + +/* generic_*_io_acct() 4 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ + +/* GENHD_FL_EXT_DEVT flag is available */ +/* #undef HAVE_GENHD_FL_EXT_DEVT */ + +/* GENHD_FL_NO_PART flag is available */ +/* #undef HAVE_GENHD_FL_NO_PART */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* Define to 1 if you have the 'gettid' function. */ +/* #undef HAVE_GETTID */ + +/* iops->get_acl() exists */ +/* #undef HAVE_GET_ACL */ + +/* iops->get_acl() takes rcu */ +/* #undef HAVE_GET_ACL_RCU */ + +/* has iops->get_inode_acl() */ +/* #undef HAVE_GET_INODE_ACL */ + +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ +/* #undef HAVE_IATTR_VFSID */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* iops->getattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_GETATTR */ + +/* iops->setattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_SETATTR */ + +/* APIs for idmapped mount are present */ +/* #undef HAVE_IDMAP_MNT_API */ + +/* mnt_idmap does not have user_namespace */ +/* #undef HAVE_IDMAP_NO_USERNS */ + +/* Define if compiler supports -Wimplicit-fallthrough */ +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_INFINITE_RECURSION */ + +/* inode_get_atime() exists in linux/fs.h */ +/* #undef HAVE_INODE_GET_ATIME */ + +/* inode_get_ctime() exists in linux/fs.h */ +/* #undef HAVE_INODE_GET_CTIME */ + +/* inode_get_mtime() exists in linux/fs.h */ +/* #undef HAVE_INODE_GET_MTIME */ + +/* inode_owner_or_capable() exists */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ + +/* inode_owner_or_capable() takes mnt_idmap */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ + +/* inode_owner_or_capable() takes user_ns */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ + +/* inode_set_atime_to_ts() exists in linux/fs.h */ +/* #undef HAVE_INODE_SET_ATIME_TO_TS */ + +/* inode_set_ctime_to_ts() exists in linux/fs.h */ +/* #undef HAVE_INODE_SET_CTIME_TO_TS */ + +/* inode_set_mtime_to_ts() exists in linux/fs.h */ +/* #undef HAVE_INODE_SET_MTIME_TO_TS */ + +/* timestamp_truncate() exists */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* iops->create() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_CREATE_IDMAP */ + +/* iops->create() takes struct user_namespace* */ +/* #undef HAVE_IOPS_CREATE_USERNS */ + +/* iops->mkdir() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKDIR_IDMAP */ + +/* iops->mkdir() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKDIR_USERNS */ + +/* iops->mknod() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKNOD_IDMAP */ + +/* iops->mknod() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKNOD_USERNS */ + +/* iops->permission() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ + +/* iops->permission() takes struct user_namespace* */ +/* #undef HAVE_IOPS_PERMISSION_USERNS */ + +/* iops->rename() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_RENAME_IDMAP */ + +/* iops->rename() takes struct user_namespace* */ +/* #undef HAVE_IOPS_RENAME_USERNS */ + +/* iops->symlink() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ + +/* iops->symlink() takes struct user_namespace* */ +/* #undef HAVE_IOPS_SYMLINK_USERNS */ + +/* iov_iter_get_pages2() is available */ +/* #undef HAVE_IOV_ITER_GET_PAGES2 */ + +/* iov_iter_type() is available */ +/* #undef HAVE_IOV_ITER_TYPE */ + +/* Define to 1 if you have the 'issetugid' function. */ +#define HAVE_ISSETUGID 1 + +/* iter_iov() is available */ +/* #undef HAVE_ITER_IOV */ + +/* iter_is_ubuf() is available */ +/* #undef HAVE_ITER_IS_UBUF */ + +/* kernel has kernel_fpu_* functions */ +/* #undef HAVE_KERNEL_FPU */ + +/* kernel has asm/fpu/api.h */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ + +/* kernel fpu internal */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ + +/* kernel has asm/fpu/internal.h */ +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ + +/* kernel defines intptr_t */ +/* #undef HAVE_KERNEL_INTPTR_T */ + +/* kernel has kernel_neon_* functions */ +/* #undef HAVE_KERNEL_NEON */ + +/* kernel does stack verification */ +/* #undef HAVE_KERNEL_OBJTOOL */ + +/* kernel has linux/objtool.h */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ + +/* strlcpy() exists */ +/* #undef HAVE_KERNEL_STRLCPY */ + +/* kernel has kmap_local_page */ +/* #undef HAVE_KMAP_LOCAL_PAGE */ + +/* Define if you have [aio] */ +/* #undef HAVE_LIBAIO */ + +/* Define if you have [blkid] */ +/* #undef HAVE_LIBBLKID */ + +/* Define if you have [crypto] */ +#define HAVE_LIBCRYPTO 1 + +/* Define if you have [tirpc] */ +/* #undef HAVE_LIBTIRPC */ + +/* Define if you have [udev] */ +/* #undef HAVE_LIBUDEV */ + +/* Define if you have [unwind] */ +/* #undef HAVE_LIBUNWIND */ + +/* libunwind has unw_get_elf_filename */ +/* #undef HAVE_LIBUNWIND_ELF */ + +/* Define if you have [uuid] */ +/* #undef HAVE_LIBUUID */ + +/* building against unsupported kernel version */ +/* #undef HAVE_LINUX_EXPERIMENTAL */ + +/* makedev() is declared in sys/mkdev.h */ +/* #undef HAVE_MAKEDEV_IN_MKDEV */ + +/* makedev() is declared in sys/sysmacros.h */ +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ + +/* Noting that make_request_fn() returns blk_qc_t */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ + +/* Define to 1 if you have the 'mlockall' function. */ +#define HAVE_MLOCKALL 1 + +/* PG_error flag is available */ +/* #undef HAVE_MM_PAGE_FLAG_ERROR */ + +/* page_mapping() is available */ +/* #undef HAVE_MM_PAGE_MAPPING */ + +/* page_size() is available */ +/* #undef HAVE_MM_PAGE_SIZE */ + +/* Define if host toolchain supports MOVBE */ +#define HAVE_MOVBE 1 + +/* folio_wait_bit() exists */ +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ + +/* part_to_dev() exists */ +/* #undef HAVE_PART_TO_DEV */ + +/* iops->getattr() takes a path */ +/* #undef HAVE_PATH_IOPS_GETATTR */ + +/* Define if host toolchain supports PCLMULQDQ */ +#define HAVE_PCLMULQDQ 1 + +/* pin_user_pages_unlocked() is available */ +/* #undef HAVE_PIN_USER_PAGES_UNLOCKED */ + +/* proc_handler ctl_table arg is const */ +/* #undef HAVE_PROC_HANDLER_CTL_TABLE_CONST */ + +/* proc_ops structure exists */ +/* #undef HAVE_PROC_OPS_STRUCT */ + +/* If available, contains the Python version number currently in use. */ +#define HAVE_PYTHON "3.7" + +/* qat is enabled and existed */ +/* #undef HAVE_QAT */ + +/* struct reclaim_state has reclaimed */ +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ + +/* register_shrinker is vararg */ +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ + +/* register_sysctl_sz exists */ +/* #undef HAVE_REGISTER_SYSCTL_SZ */ + +/* register_sysctl_table exists */ +/* #undef HAVE_REGISTER_SYSCTL_TABLE */ + +/* iops->rename() wants flags */ +/* #undef HAVE_RENAME_WANTS_FLAGS */ + +/* revalidate_disk() is available */ +/* #undef HAVE_REVALIDATE_DISK */ + +/* revalidate_disk_size() is available */ +/* #undef HAVE_REVALIDATE_DISK_SIZE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SECURITY_PAM_MODULES_H 1 + +/* setattr_prepare() accepts mnt_idmap */ +/* #undef HAVE_SETATTR_PREPARE_IDMAP */ + +/* setattr_prepare() is available, doesn't accept user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ + +/* setattr_prepare() accepts user_namespace */ +/* #undef HAVE_SETATTR_PREPARE_USERNS */ + +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ + +/* iops->set_acl() takes 4 args */ +/* #undef HAVE_SET_ACL_USERNS */ + +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ + +/* shrinker_register exists */ +/* #undef HAVE_SHRINKER_REGISTER */ + +/* kernel_siginfo_t exists */ +/* #undef HAVE_SIGINFO */ + +#if defined(__amd64__) || defined(__i386__) +/* Define if host toolchain supports SSE */ +#define HAVE_SSE 1 + +/* Define if host toolchain supports SSE2 */ +#define HAVE_SSE2 1 + +/* Define if host toolchain supports SSE3 */ +#define HAVE_SSE3 1 + +/* Define if host toolchain supports SSE4.1 */ +#define HAVE_SSE4_1 1 + +/* Define if host toolchain supports SSE4.2 */ +#define HAVE_SSE4_2 1 + +/* Define if host toolchain supports SSSE3 */ +#define HAVE_SSSE3 1 +#endif + +/* STACK_FRAME_NON_STANDARD is defined */ +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ + +/* standalone exists */ +/* #undef HAVE_STANDALONE_LINUX_STDARG */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the 'strlcat' function. */ +#define HAVE_STRLCAT 1 + +/* Define to 1 if you have the 'strlcpy' function. */ *** 224 LINES SKIPPED *** From nobody Sun May 4 22:09:58 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 4ZrJjy4sh7z5vMVV; Sun, 04 May 2025 22:09:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrJjy4CSKz43DR; Sun, 04 May 2025 22:09:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WxiT331t0d8q2t3c6zIydpjsbgr6mzoUK0T0hdjDS9Q=; b=Ii+DX/VAc9ugMLTr8CACH54eKoX8bMKkGXle5yYwhPZY1Je4EK+Yb0cywbch6wn/nVvGuB 6kgI4/3Df9I9yZ/U8IGSkUGjxqJ4HsfCcdto7mQCV6vFzTq5MN4Lvt9zSWuFzU31bC5z7h bXBsbf9QBgoI7W2UQuAb8BVy8SgBkA95/Non1VEgG8uC/fTrZpwiCXTkuMN6jTIvUg6etM UrXto/RLbuvoveXBtyrWnNlvcZdPBFXjtaXzJq2DevPbX/K9pzmZYTs18RQ7fcv4wFgkk5 vi5vuuLYEzUK5YG1S5r9yOnHD6++ahqPnAK4BM5XYIGrTPnWbZLJA/0XH1ONcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WxiT331t0d8q2t3c6zIydpjsbgr6mzoUK0T0hdjDS9Q=; b=CQ5zNqUM4pUooCRhO6iIhPBhXY+/i4xHQYxXOcsvRldZ7hcbQ3oFkCW9NsCWBnXARTPeVm MJ7SGqUANl1Kym8CmwwfBwRZMFAwfHCMbuwhA+qdcKjRKH07j3Ph86SrPoi6Yxv13qorsr WdnQ79auIha6BuCk0TZuak1hRTdaDsW6pFvP/oi7Kp43jpDt0wCc1DPahFsqUO3t9IZh6/ ijqxroHC7AFDv39u9oqbqOp/8oSNLMH0k9Hk1d7YZdcwjkKsKAigd9Y1A/w4GJn9EH4LjO 7mw/63b7ZeSL3GtpJfj31TbNkrWtBfaxT82guGtH9QM15Ay3WCBZS3bnHg2/xQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746396598; a=rsa-sha256; cv=none; b=ozQCx0uCP7pzXzzuht/biQItAEYCCuALJDgr1RW0GEGXZk8sI09P6uuWoRtMnogctZC9gO +uvzjof14MgB/9tDtv2PUus0NtZ6vSt6Z5P0uyZll4aWmT8TufjtNsuQLtQH8kJqf/VZME Va97UnNzwJG1tsyT18LAu0RaYjGK/FcPqY9eV927EyU+G0kQ9R9VdhNXOg/YvFAamAWTjg aDdKpyqv/aVuvjC1nsQFuVz8bmeGw1FH1SeXwftfN/4jjC49RPZ0simd6LiqiZ0yZgHIOE 4/hDNaMvwdZWeXC7540H7wMWL3gma9ZVLqdBQ8BgJbJfMH/f2xsAVaI5qtP2mg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrJjy3L3jzmGy; Sun, 04 May 2025 22:09:58 +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 544M9w5f025164; Sun, 4 May 2025 22:09:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544M9wKD025161; Sun, 4 May 2025 22:09:58 GMT (envelope-from git) Date: Sun, 4 May 2025 22:09:58 GMT Message-Id: <202505042209.544M9wKD025161@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: 845b81cf9080 - main - LinuxKPI: 802.11: fix wiphy_info[_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: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 845b81cf908002b14ac08ce8c42246720a5b30d9 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=845b81cf908002b14ac08ce8c42246720a5b30d9 commit 845b81cf908002b14ac08ce8c42246720a5b30d9 Author: Bjoern A. Zeeb AuthorDate: 2025-05-02 20:14:35 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-05-04 22:09:30 +0000 LinuxKPI: 802.11: fix wiphy_info[_once] The dev field in wiphy is a pointer already; no need for &. Sponsored by: The FreeBSD Foundation MFC after: 3 days Fixes: ac1d519c01ca8 --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index 328563b4a125..aae60983f5f6 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -2281,9 +2281,9 @@ wiphy_delayed_work_cancel(struct wiphy *wiphy, struct wiphy_delayed_work *wdwk) #define wiphy_err(_wiphy, _fmt, ...) \ dev_err((_wiphy)->dev, _fmt, __VA_ARGS__) #define wiphy_info(wiphy, fmt, ...) \ - dev_info(&(wiphy)->dev, fmt, ##__VA_ARGS__) + dev_info((wiphy)->dev, fmt, ##__VA_ARGS__) #define wiphy_info_once(wiphy, fmt, ...) \ - dev_info_once(&(wiphy)->dev, fmt, ##__VA_ARGS__) + dev_info_once((wiphy)->dev, fmt, ##__VA_ARGS__) #ifndef LINUXKPI_NET80211 #define ieee80211_channel linuxkpi_ieee80211_channel From nobody Sun May 4 22:11:11 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 4ZrJlM6srxz5vMYW; Sun, 04 May 2025 22:11: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 4ZrJlM6Bycz44ST; Sun, 04 May 2025 22:11:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396671; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NJEl9DvAdLPUSmGJo0krEhzJ/GF3hhC2LKfNaj5EZhc=; b=VF1VV6TQ+ktudXQDRW+9ARtGrY9pZGOG0YI1/BJrP5RcfJIoevYXURh0A2+1uztAX20XFS qDGu75Iww//d/aOTD9NvJvFDaaOO3HzUKQrBjSFXxYdIwrU0iRrVMtBdDTDfN5pqvEgGqP AZMlk75mxmgPwYAKWj4U2v42QCqCjk2LFbujG+B6YnTPIauOQH9TqpEjzFHToeg262ZYOB IHWxxVzzgiOTca3YNqJBMWCLbjF1o7EZsQGZjmlBv6xfk7crUNCibfNSX/tP7r/qwc99Fm KQOcQf6n5tobRTvHu1NB2yxwNtxM9eabxXrotEDygrzClXzrJm1Dz70VF0r29g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396671; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NJEl9DvAdLPUSmGJo0krEhzJ/GF3hhC2LKfNaj5EZhc=; b=LVvDPFt91DEfLsRRZwF7KbTN1zjz8Uzvucngdhw9QtnBL7904RpvkwRUSdHhsGNRIGoIOI q+6jjdb6uZkCZuPedL98OPDW/aCh2MrKGPTWriEEWIoRej5cLFKs5IovxtL3KWzSkwW8sm dHx+iY7mPUrwhmQrCs8b3dPhgWtECD9pyFEaX0YqIrAdxQTrjSdzl7X7EGC4+YhyUbN+SN yPsBB7o0HQMQ69BmYT/Sbcve0Bn4Ii6P4ydomshtffOuxUMr/YVaqf3sxXej5ReI+rddLZ I+wPuStoUMNZuGzpvnDlB97aafJFiogV951Yt2meE+KxnoI2ybVL1tFRtwH9FQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746396671; a=rsa-sha256; cv=none; b=Cb1bLaRElH4sWzuVIuy6iCMoXMH3zOp0IlAw5raTcJtBu7KXZaoEwmIAwm20KIH2DA6bkR pYBhlbbwRqtSSDCAf/Ye7xtt3eBn1r6ZLsEcGgCopC1We4JQKJrkHw7v68Rt1vg88/3NRD 2FOJaIorpGLbAp5BY6d8qOjYMYjw1PUsFtoeuifz5WSvrJL55D1WDEM+9KYIqeD1mZQd9v dMB07JvldGwGOws1rQC+xvXgBUQSEICJEpydYJyllOEdI0fKL+QhCKkvwAfsWTdyJs7VL6 FUBDOL2RUu5d2/OAv7EKhl5BS4KIUMH7nuxMzC+Ucfd8430Xt/Ft5avc3THx0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrJlM5kM7znHZ; Sun, 04 May 2025 22:11: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 544MBBj6035302; Sun, 4 May 2025 22:11:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MBBam035299; Sun, 4 May 2025 22:11:11 GMT (envelope-from git) Date: Sun, 4 May 2025 22:11:11 GMT Message-Id: <202505042211.544MBBam035299@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: 9c05d6320cc0 - main - LinuxKPI: netdev: add NETIF_F_HW_TC 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: 9c05d6320cc091ffb43002a149c04c122ccb798c Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9c05d6320cc091ffb43002a149c04c122ccb798c commit 9c05d6320cc091ffb43002a149c04c122ccb798c Author: Bjoern A. Zeeb AuthorDate: 2025-05-02 20:09:31 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-05-04 22:10:46 +0000 LinuxKPI: netdev: add NETIF_F_HW_TC Add a new flag needed by mt76. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/include/linux/netdev_features.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/netdev_features.h b/sys/compat/linuxkpi/common/include/linux/netdev_features.h index 06e88d107708..51d2586e8aac 100644 --- a/sys/compat/linuxkpi/common/include/linux/netdev_features.h +++ b/sys/compat/linuxkpi/common/include/linux/netdev_features.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2021 The FreeBSD Foundation + * Copyright (c) 2020-2025 The FreeBSD Foundation * * Portions of this software were developed by Björn Zeeb * under sponsorship from the FreeBSD Foundation. @@ -41,6 +41,7 @@ typedef uint32_t netdev_features_t; #define NETIF_F_TSO6 BIT(5) #define NETIF_F_RXCSUM BIT(6) #define NETIF_F_HW_CSUM BIT(7) +#define NETIF_F_HW_TC BIT(8) #define NETIF_F_CSUM_MASK (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM) From nobody Sun May 4 22:13:11 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 4ZrJnh0zg6z5vMtK; Sun, 04 May 2025 22:13: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 4ZrJnh04nnz46f7; Sun, 04 May 2025 22:13:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7jkpJp56VCXr+zZrd4gSIM+k9yOPoBY2R51aL2m1EA=; b=HSBagbZdUOuXtJOFvbMFJVU4nNCsWBOsFFBT9ub8hIsaWpzXITJqhl8k1A7CxC3b5EzjFB ZTO6B8CrjQOTa4+zgsjuQch2dIA+i42ZDEm1Vsgjo0cp/yjIMooFRwYsq8b7KMlgp+hrPn pl3Vxcva9+Q++/mTr27KCcNH/oOn7mUBSmOaazpeVhJIxOCH6WOdGI530dLW312W7k/RZz mlk3jFiTCzVLhSX/7m+lwrG8Yd7KKiU1wAK80YqLejHsx8CKJrURFVxrHm0Ln1aDW8yymG IYXypj2AIFatbBGPvrhIhAAidT4E+6rKF+rMuuf1v6yyvTz/Qdw8/yH5oOzKOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7jkpJp56VCXr+zZrd4gSIM+k9yOPoBY2R51aL2m1EA=; b=Vp8LVc2SZutmhjd+3OciC7ZQ3oHPNrer3tFWv2YcMH1uopSR27Oq8upS/ip3kwIdHYp49D 2vQ3vqSFiF+nL2aGcJzkS3c11kPSfbisaG9BOUYrSFH40KT1q+BjNSHLxRlV9eXWgP5SQu 7ygoPr8TeVlZw8BdE62LTEafASiGlFDsE4A5AsCTE0UfQkXtaj0WpUcevJHMLV8oTDSkuF KnhUgdvaqwqN1NYI6JHhfmTFxbmTsbKcnC5lb/FtvIWJ8WA97iCAdmT33uKXUew3suuQ2L HPue2QDzXRrZ2YNoHR5SSYQNmpbM4iCf5c01c7XlnfYfm0EfufloEtM85P77xA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746396792; a=rsa-sha256; cv=none; b=QcuUxdCwWpvJ2W8ymqtf5vwfcQo20/V4IxpZQLmmNytLYkKMlVpicu0SAO+sr3XdtUDPcw OsUoW+trAK040JFakOW6ABktaQuu9EAVIjIMIdAVFVj9K2Alal6V4cYym13ja/czQusroO tSHhjb/q8OH/Wc/di2myqwnKv4qxQ31DUFMehuxje+S/wamE4h/iviG2XtdqciuQw+wfop CEXq4aFFJ+4qPUn2a/urpaA1urtI97cDEzDxEmZ6aE8M72gkIDoqIHzl451i99zykJj4eM spNrDqGYG06+noJGARSxOPZfyMzslYWl3sJQsx0hq/TIcbn52CYgDhmk7MbKDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrJng6TQ5znN2; Sun, 04 May 2025 22:13: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 544MDBdt041875; Sun, 4 May 2025 22:13:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MDBao041872; Sun, 4 May 2025 22:13:11 GMT (envelope-from git) Date: Sun, 4 May 2025 22:13:11 GMT Message-Id: <202505042213.544MDBao041872@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: 0f12c3cd0ddb - main - vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0f12c3cd0ddb9b230f21187f7e8a48964cdaf744 Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=0f12c3cd0ddb9b230f21187f7e8a48964cdaf744 commit 0f12c3cd0ddb9b230f21187f7e8a48964cdaf744 Author: Rick Macklem AuthorDate: 2025-05-04 22:06:01 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 22:11:06 +0000 vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name Commit f61844833ee8 changes the semantics of O_NAMEDATTR so that a named attribute directory will be created if it does not already exist. As such, an open(2) without O_CREAT cannot be used to test to see if one exists. This patch adds a new pathconf name _PC_HAS_NAMEDATTR, which returns 1 if one or more named attributes are associated with the file. This is similar to Solaris's _PC_XATTR_EXISTS. A return of 0 means that there are none, so there. is no need to open(2) the named attribute directory. This allows applications to avoid creating unnecessary named attribute directories when the application only wishes to read named attributes and not create them. It is also useful for the NFSv4 server, so that it can reply with a correct named_attr attribute. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D50140 Fixes: 2ec2ba7e232d ("vfs: Add VFS/syscall support for Solaris style extended attributes") --- sys/kern/vfs_default.c | 1 + sys/sys/unistd.h | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index c76fc9f9dc59..be49c0887609 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -452,6 +452,7 @@ vop_stdpathconf(struct vop_pathconf_args *ap) case _PC_INF_PRESENT: case _PC_MAC_PRESENT: case _PC_NAMEDATTR_ENABLED: + case _PC_HAS_NAMEDATTR: *ap->a_retval = 0; return (0); default: diff --git a/sys/sys/unistd.h b/sys/sys/unistd.h index 59cef241754a..f5caea2e3919 100644 --- a/sys/sys/unistd.h +++ b/sys/sys/unistd.h @@ -155,6 +155,7 @@ #define _PC_ACL_NFS4 64 #define _PC_DEALLOC_PRESENT 65 #define _PC_NAMEDATTR_ENABLED 66 +#define _PC_HAS_NAMEDATTR 67 #endif /* From OpenSolaris, used by SEEK_DATA/SEEK_HOLE. */ From nobody Sun May 4 22:19:31 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 4ZrJx05LC3z5vN1x for ; Sun, 04 May 2025 22:19:32 +0000 (UTC) (envelope-from 010001969d620e6d-0938fbf4-17f8-4502-a9e2-1665c0eb22fe-000000@amazonses.com) Received: from a8-26.smtp-out.amazonses.com (a8-26.smtp-out.amazonses.com [54.240.8.26]) (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) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrJx02ly6z4FnV for ; Sun, 04 May 2025 22:19:32 +0000 (UTC) (envelope-from 010001969d620e6d-0938fbf4-17f8-4502-a9e2-1665c0eb22fe-000000@amazonses.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=vnqrkfnvu6csdl6mwgk5t6ix3nnepx57; d=tarsnap.com; t=1746397171; h=Message-ID:Date:MIME-Version:Subject:To:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding; bh=BEpwGYNwRHt3WQxi+jHy8n4AjjlzGz7KZC0EhBDcHvA=; b=ldneA6uIrd0vLsb8hDafOFHxdf5lhcJu1EeFlEppu3ObNkSU+idgxdXp2jTpBdD/ yErX9h66lZ+EI4/5+rkQkCMKRC9SfX5CRx7Yxo3HUvF4OCSNl9xKPpBwWpQQC7XTgo0 NOtwPpdmQt1qEqJgHpZn6reWdPYNDPS7rdXLHsdc= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1746397171; h=Message-ID:Date:MIME-Version:Subject:To:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Feedback-ID; bh=BEpwGYNwRHt3WQxi+jHy8n4AjjlzGz7KZC0EhBDcHvA=; b=MeMlVIpIW4RiMnskUTRejdOJOeOZfLIoBXNBl5xGdoe0VpPIdlxGim67Xg5S7oB+ pMz/jOrJp0eeCmftQkGJAUPPT4ZKjOlur5sLaM0XjP1Fd3rmPp7eoMM4OmoAxrVtxEr AgazhFxczEwVstsZtfQMFSOyuIezCZZSZEShJ0Gg= Message-ID: <010001969d620e6d-0938fbf4-17f8-4502-a9e2-1665c0eb22fe-000000@email.amazonses.com> Date: Sun, 4 May 2025 22:19:31 +0000 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: 071ab5a1f3cb - main - zfs: merge openzfs/zfs@246e5883b To: Martin Matuska , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202505042208.544M87gP024481@gitrepo.freebsd.org> Content-Language: en-US From: Colin Percival Autocrypt: addr=cperciva@tarsnap.com; keydata= xsFNBGWMSrYBEACdWRqDn3B3SKO7IG0/fGHYtfs26f3Q5QeAcasy1fQLniwGQWn5rlILhbCD K/jdNoDm5Zxq20eqyffoDNObCjnHgg4tGANdi+RmDy+7CDpE789H8dss9y7Pt5DlGGAXQQnt hxush3EYS/Ctprd9UUL/lzOOLOU1aNtzB84tNrJBtcJmL7OYHfyTSNFxvedqJrrasejIQOLI t/DQ89BPzz+vsKHz7FJPXh3fsVkzLA00DJYcfkgxyABfJNA7U6yMwd4DVSdx/SsvfIDMVXnu UXCXswo106WPZbYGlZPpq0wW6iibtTerJix+8AeuwXvl9O1p8yESK4ErkIxCnmghTSz+pdzj z/6xBRkdDM9VdZ0r+CzsaNXMpDOzFuKyjaiYBdgCLljbDnXIHFcqXenrZ7Xwkm09g/M4uVSh pIUG2RYa6tsHSQoGCp3f2RZv1znfViKQFbbL83QjtPA20AhseZSYbHp1FPhXyy9J0wkGL16L e99g6gdGeIRE82BZjBjKGDkoyDPq+oDRSFl8NtzmIKy+cfz00nViqcTF4bREXEawFGhlpO0X O9q8mijI9iFB6zaPBiSdJGBL5ML5qLTNCl8Zlf4m1TBvmRTqF/lzMHVXHidDoUhpSh/y3AFZ 1KrYc27ztJQywDJPJPWPbtY8YhFLFs377gfP8WldsZjzp8nvoQARAQABzSVDb2xpbiBQZXJj aXZhbCA8Y3BlcmNpdmFAdGFyc25hcC5jb20+wsGRBBMBCAA7FiEEglY7hNBiDtwN+4ZBOJfy 4i5lrT8FAmWMSyYCGwMICwkNCAwHCwMFFQoJCAsFFgMCAQACHgUCF4AACgkQOJfy4i5lrT+i Yg/+PYyJNoFuygtV5t/skcjYmvEC93mnazEvh+x99vGYZnGKeJ8NDOF4QCUzeHquOWxDi8Zl reXyswKcrIquPxxX6+YyGe97VbvLnez3ksfzOYRj1F4qV0Rq8ZNK51+bvIrbcS3SfDaRioAk D7WWwFor8y/hSwxYkfsKbtP5PRcem20JUxuC085zqWLaKv5t5n2CBzAGMjwJaQ3tM3AXVwWJ uJaHA6ot/6fntJlmkfcyCYyyr0D6b0guRj3STbZ2hNn5o2AI+f6LJJ31s2sPFjl6rs7fORf3 hFSNOHDd2HxfVBXFdQy24ROkC4orBBz2xh9GScjxxT/hbXkfufkubFubw7n0HkvHzA3UF+Qq A8JiI3n+d7ocsP0/5BQ2sZdeqPGJgHx6RkAMuW1tJ29wSvCN1qMgFwhYkpQdfvHlociQrimU fvlRfSrBEe8o7tvIuEdpvwvCZSTJqQbVoMw8UHFE7nzyCXUSab5h6PbjakCqim13ekVO2KFF TTPcz5o5jEeUY75tzbIwcDfFbT5KqNjWy06TVdM9VEJDHSfOfxHR3kSEwZ+tT2aTvL3grsUn gFwSNcj4Cl4CRFfUw8zVZY+7O7RiMlhBqykikvUurrdGKc1Scwa0yuppdA6eVvylyTWSQGrQ +uLWtV1LUKN7ZqKJWBkLPt9nS4XZWGyBvxOHYqjOwU0EZYxKtgEQANYfgbtUMVnhjxDHhWLp g5kLHK3YW0TfJKzpXqDB7NiqxHofn4OcbZnVC3MKggcbs9o1/UtsjnlsG8550PfiYkDXvPiO RJwgbGs6MGIDK797C6cnBLQ8xwBa9SL4cl5iQFnhWmt6vwnJ+an/cm5JpYves3wL7jV09qU9 57hkHXEUcl38r4FssZzVcLKPUVTa3Un+QGRTGDGe/f4ctjMaqv0ZCM+l2ixPhf/vqESrfSLv V/+T3dmtUfXjazO3SABvsHwxgGuTTYOlKoPCaebr+BRdqm0xeIShoIlhvTI8y4clchqx/Uxg UG5X2kvU13k3DS3Q8uLE4Et9x1CcZT6WGgBZSR6R0WfD0SDnzufNnRWJ0dEPA2MtJHE7+85R Vi9j/IgZV+y5Ur+bnPkjDG1s2SVciX5v9HQ0oilcBhvx0j5lGE9hhurD9F+fCvkr4KdbCknE 6Y8ce8pCNBUoB/DqibJivOzTk9K9MGB5x0De5TerIrFiaw3/mQC9nGeO9dtE7wvDJetWeoTq 4BEaCzpufNqbkpOaTQILr4V6Gp7M6v97g83TVAwZntz/q8ptwuKQPZ2JaSFLZn7oWUpYXA5s +SIODFHLn6iMoYpBQskHQjnj4lEPJadl4qj+ZKA89iDAKsniyoFXsbJe2CPbMS1yzBxKZq6K D/jpt7BOnuHr/JrXABEBAAHCwXYEGAEIACAWIQSCVjuE0GIO3A37hkE4l/LiLmWtPwUCZYxK tgIbDAAKCRA4l/LiLmWtP3jmEACQrh9gWe8F1Tkw3m6VoHKwLc5he4tX3WpQa//soPO6iGG3 S3WPruQ46NrAaAojoOcKI9UONDO5rxG0ZTX53S+lu2EO47jbcLwOCjaEpjKpDRt9ZXBQE8Xl mtBE9Bp3W9gpjB1nE3KNM1mJYgsK0QdRpwwfh4pVgGpOj8j23I6MCK+v99zEBnpgCn2GX8W/ kctRXHqWwndHysOJtRP/zrl7dDaABF1f9efUl0LL3TD3GJ9VDz+DNOin/uK2a1hiJo8QzTRk PpfUQ2ebzDsrd1i/pOWkMSkdH+rEu4AGrXWtaBwrMyrGkL6Icb6yO+P9/z0W2wlgBf3P1YRt JPgQt/Dj3yvA/UnaV/QmuVQPjl13o24UnJGsZM8XGnNdfWBKkC1Q6VXC4QT+dyBHYH9MuE9d 6oGl8pFM1+cTfEfbM62/rRoPkF1yHMsI/903VxEvuUIKfhEZAVLFyHldooNxuchntHQP9y8J 8Ou9bWYQP7MnEn+kwSwrZkjurfPkan+xQvp6dDYnj3V0GwA5pprBMaB928VIDVOv+1PNQI3t Cvk5VPv/skq+TJRMHW7bFSt8PRa91cUf1FOLIz9APDiJOzXkwxUEHGV3zPSaUhs1JYjyBeGT wDAvtLUdjOnRhEUOwlnIrztmvyciutjJoVzKEEjj5WXnHk9L9kQ1bpAjkjTONw== In-Reply-To: <202505042208.544M87gP024481@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Feedback-ID: ::1.us-east-1.Lv9FVjaNvvR5llaqfLoOVbo2VxOELl7cjN0AOyXnPlk=:AmazonSES X-SES-Outgoing: 2025.05.04-54.240.8.26 X-Rspamd-Queue-Id: 4ZrJx02ly6z4FnV 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:14618, ipnet:54.240.8.0/21, country:US] X-Spamd-Bar: ---- Is there anything in here which wants to land in 14.3? Colin Percival On 5/4/25 15:08, Martin Matuska wrote: > The branch main has been updated by mm: > > URL: https://cgit.FreeBSD.org/src/commit/?id=071ab5a1f3cbfd29c8fbec27f7e619418adaf074 > > commit 071ab5a1f3cbfd29c8fbec27f7e619418adaf074 > Merge: f61844833ee8 246e5883bb5b > Author: Martin Matuska > AuthorDate: 2025-05-04 22:05:28 +0000 > Commit: Martin Matuska > CommitDate: 2025-05-04 22:05:28 +0000 > > zfs: merge openzfs/zfs@246e5883b > > Notable upstream pull request merges: > #17111 246e5883b Implement allocation size ranges and use for gang leaves > #17123 5f5321eff Handle interaction between gang blocks, copies, and FDT > #17130 -multiple Implement default user/group/project quotas > #17164 301da593a Fix lock reversal on device removal cancel > #17183 367d34b3a Fix dspace underflow bug > #17187 30cc2331f zed: Ensure spare activation after kernel-initiated device > removal > #17191 11ca12dbd simd_powerpc.h: enable FPU on FreeBSD > #17192 5b29e70ae Remove mg_allocators > #17204 a497c5fc8 Improve L2 caching control for prefetched indirects > #17205 b14b3e398 Fix FDT rollback to not overwrite unnecessary fields > #17206 7be9fa259 Fix nonrot property being incorrectly unset > #17208 09fc7bb47 Fix memory leaks in pool properties handling > > #17213 78a7c78bd Added fix for zpool get state segfaults with two or more > vdevs > #17228 131df3bbf vdev_to_nvlist_iter: ignore draid parameters when matching > names > #17231 f40ab9e39 Fix double spares for failed vdev > #17264 27f3d9494 Sort the blocking snapshots lis > #17269 f86d9af16 Fix race between resilver wait and offline/detach > #17273 c8fa39b46 cred: properly pass and test creds on other threads > #17284 a7de203c8 txg: generalise txg_wait_synced_sig() to > txg_wait_synced_flags() > > Obtained from: OpenZFS > OpenZFS commit: 246e5883bb5b8e09b1a4213f7b1704b5a9ed5568 > > .../.github/workflows/scripts/generate-ci-type.py | 1 + > .../.github/workflows/scripts/qemu-1-setup.sh | 44 +--- > .../.github/workflows/scripts/qemu-2-start.sh | 51 ++++- > .../.github/workflows/scripts/qemu-3-deps-vm.sh | 4 + > .../.github/workflows/scripts/qemu-5-setup.sh | 34 ++- > .../.github/workflows/scripts/qemu-6-tests.sh | 15 +- > .../.github/workflows/scripts/qemu-7-prepare.sh | 4 +- > .../.github/workflows/scripts/qemu-8-summary.sh | 2 +- > .../.github/workflows/zfs-qemu-packages.yml | 2 +- > sys/contrib/openzfs/.github/workflows/zfs-qemu.yml | 4 +- > sys/contrib/openzfs/cmd/zed/agents/zfs_retire.c | 19 +- > sys/contrib/openzfs/cmd/zed/zed.d/zed-functions.sh | 5 + > sys/contrib/openzfs/cmd/zfs/zfs_main.c | 13 +- > sys/contrib/openzfs/cmd/zinject/zinject.c | 20 +- > .../openzfs/cmd/zpool/os/linux/zpool_vdev_os.c | 3 +- > sys/contrib/openzfs/cmd/zpool/zpool_main.c | 8 +- > .../openzfs/config/kernel-vfs-migratepage.m4 | 27 +++ > sys/contrib/openzfs/config/kernel.m4 | 65 ++++-- > sys/contrib/openzfs/config/user-libunwind.m4 | 16 ++ > sys/contrib/openzfs/contrib/debian/control | 1 + > .../contrib/initramfs/scripts/local-top/zfs | 4 +- > sys/contrib/openzfs/include/libzfs.h | 2 +- > .../openzfs/include/os/freebsd/spl/sys/debug.h | 71 +++---- > .../openzfs/include/os/freebsd/spl/sys/policy.h | 1 - > .../include/os/freebsd/spl/sys/simd_powerpc.h | 4 +- > .../include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 8 + > .../openzfs/include/os/linux/spl/sys/debug.h | 67 +++--- > .../openzfs/include/os/linux/zfs/sys/policy.h | 1 - > .../include/os/linux/zfs/sys/zfs_vfsops_os.h | 8 + > sys/contrib/openzfs/include/sys/ddt.h | 4 + > sys/contrib/openzfs/include/sys/dmu_recv.h | 1 - > sys/contrib/openzfs/include/sys/dsl_dataset.h | 4 +- > sys/contrib/openzfs/include/sys/dsl_dir.h | 4 +- > sys/contrib/openzfs/include/sys/fs/zfs.h | 6 + > sys/contrib/openzfs/include/sys/metaslab.h | 10 +- > sys/contrib/openzfs/include/sys/metaslab_impl.h | 1 - > sys/contrib/openzfs/include/sys/nvpair.h | 2 + > sys/contrib/openzfs/include/sys/spa.h | 3 +- > sys/contrib/openzfs/include/sys/txg.h | 23 +- > sys/contrib/openzfs/include/sys/vdev.h | 3 + > sys/contrib/openzfs/include/sys/vdev_draid.h | 2 +- > sys/contrib/openzfs/include/sys/vdev_impl.h | 4 +- > sys/contrib/openzfs/include/sys/zcp.h | 1 - > sys/contrib/openzfs/include/sys/zfs_context.h | 4 +- > sys/contrib/openzfs/include/sys/zfs_debug.h | 20 ++ > sys/contrib/openzfs/include/sys/zfs_quota.h | 2 +- > sys/contrib/openzfs/include/sys/zio.h | 1 + > sys/contrib/openzfs/lib/libnvpair/libnvpair.abi | 40 ++-- > sys/contrib/openzfs/lib/libnvpair/libnvpair.c | 181 +++------------- > sys/contrib/openzfs/lib/libspl/backtrace.c | 66 ++++-- > sys/contrib/openzfs/lib/libspl/include/assert.h | 65 +++--- > sys/contrib/openzfs/lib/libuutil/libuutil.abi | 45 +--- > sys/contrib/openzfs/lib/libzfs/libzfs.abi | 133 ++++++------ > sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 60 ++++-- > sys/contrib/openzfs/lib/libzfs/libzfs_iter.c | 2 +- > sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 15 +- > .../openzfs/lib/libzfs_core/libzfs_core.abi | 77 +++---- > .../openzfs/lib/libzfsbootenv/libzfsbootenv.abi | 2 +- > sys/contrib/openzfs/lib/libzpool/Makefile.am | 1 + > sys/contrib/openzfs/lib/libzpool/kernel.c | 7 - > sys/contrib/openzfs/man/man7/zfsprops.7 | 36 ++++ > sys/contrib/openzfs/man/man8/zfs-rollback.8 | 4 +- > sys/contrib/openzfs/module/Kbuild.in | 1 + > sys/contrib/openzfs/module/Makefile.bsd | 16 +- > sys/contrib/openzfs/module/nvpair/nvpair.c | 236 +++++++++++++++++++++ > .../openzfs/module/os/freebsd/spl/spl_policy.c | 7 - > .../openzfs/module/os/freebsd/zfs/vdev_geom.c | 3 +- > .../openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 122 +++++++++-- > .../openzfs/module/os/linux/spl/spl-kstat.c | 5 +- > sys/contrib/openzfs/module/os/linux/zfs/abd_os.c | 2 + > sys/contrib/openzfs/module/os/linux/zfs/policy.c | 44 ++-- > .../openzfs/module/os/linux/zfs/vdev_disk.c | 3 +- > .../openzfs/module/os/linux/zfs/zfs_vfsops.c | 131 ++++++++++-- > sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 2 +- > sys/contrib/openzfs/module/zcommon/zfs_prop.c | 22 ++ > sys/contrib/openzfs/module/zcommon/zfs_valstr.c | 4 +- > sys/contrib/openzfs/module/zfs/abd.c | 2 + > sys/contrib/openzfs/module/zfs/dbuf.c | 25 ++- > sys/contrib/openzfs/module/zfs/ddt.c | 32 +++ > sys/contrib/openzfs/module/zfs/dmu_direct.c | 4 +- > sys/contrib/openzfs/module/zfs/dmu_objset.c | 25 ++- > sys/contrib/openzfs/module/zfs/dmu_recv.c | 48 +++-- > sys/contrib/openzfs/module/zfs/dsl_dataset.c | 29 ++- > sys/contrib/openzfs/module/zfs/dsl_dir.c | 42 ++-- > sys/contrib/openzfs/module/zfs/dsl_scan.c | 13 +- > sys/contrib/openzfs/module/zfs/dsl_synctask.c | 19 +- > sys/contrib/openzfs/module/zfs/metaslab.c | 225 +++++++++++++++----- > sys/contrib/openzfs/module/zfs/refcount.c | 3 +- > sys/contrib/openzfs/module/zfs/spa.c | 101 ++++++++- > sys/contrib/openzfs/module/zfs/txg.c | 34 +-- > sys/contrib/openzfs/module/zfs/vdev.c | 60 +++++- > sys/contrib/openzfs/module/zfs/vdev_draid.c | 21 +- > sys/contrib/openzfs/module/zfs/vdev_file.c | 5 +- > sys/contrib/openzfs/module/zfs/vdev_indirect.c | 3 +- > sys/contrib/openzfs/module/zfs/vdev_mirror.c | 9 +- > sys/contrib/openzfs/module/zfs/vdev_missing.c | 6 +- > sys/contrib/openzfs/module/zfs/vdev_raidz.c | 34 ++- > sys/contrib/openzfs/module/zfs/vdev_rebuild.c | 2 +- > sys/contrib/openzfs/module/zfs/vdev_removal.c | 67 +++--- > sys/contrib/openzfs/module/zfs/vdev_root.c | 3 +- > sys/contrib/openzfs/module/zfs/zcp.c | 12 +- > sys/contrib/openzfs/module/zfs/zcp_synctask.c | 2 - > sys/contrib/openzfs/module/zfs/zfs_debug_common.c | 97 +++++++++ > sys/contrib/openzfs/module/zfs/zfs_fm.c | 18 +- > sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 98 ++++++++- > sys/contrib/openzfs/module/zfs/zfs_quota.c | 64 +++++- > sys/contrib/openzfs/module/zfs/zfs_znode.c | 8 + > sys/contrib/openzfs/module/zfs/zio.c | 144 ++++++++++--- > sys/contrib/openzfs/rpm/generic/zfs-dkms.spec.in | 6 + > sys/contrib/openzfs/tests/runfiles/common.run | 18 +- > sys/contrib/openzfs/tests/runfiles/linux.run | 18 +- > sys/contrib/openzfs/tests/runfiles/sanity.run | 4 + > .../openzfs/tests/zfs-tests/cmd/clonefile.c | 11 +- > .../tests/zfs-tests/cmd/file/largest_file.c | 2 +- > sys/contrib/openzfs/tests/zfs-tests/cmd/statx.c | 3 + > .../openzfs/tests/zfs-tests/tests/Makefile.am | 27 +++ > .../cli_root/zpool_add/zpool_add_dryrun_output.ksh | 22 +- > .../zpool_create/zpool_create_dryrun_output.ksh | 15 +- > .../functional/cli_root/zpool_get/vdev_get_all.ksh | 92 ++++++++ > .../zpool_split/zpool_split_dryrun_output.ksh | 14 +- > .../cli_root/zpool_status/zpool_status_003_pos.ksh | 2 +- > .../cli_root/zpool_status/zpool_status_004_pos.ksh | 2 +- > .../tests/functional/dedup/dedup_quota.ksh | 21 +- > .../tests/functional/events/zed_cksum_reported.ksh | 2 +- > .../tests/functional/fault/auto_spare_double.ksh | 122 +++++++++++ > .../functional/gang_blocks/gang_blocks_001_pos.ksh | 59 ++++++ > .../gang_blocks/gang_blocks_ddt_copies.ksh | 79 +++++++ > .../online_offline/online_offline_001_pos.ksh | 11 +- > .../online_offline/online_offline_002_neg.ksh | 7 +- > .../online_offline/online_offline_003_neg.ksh | 9 +- > .../pool_checkpoint/checkpoint_capacity.ksh | 5 +- > .../pool_checkpoint/pool_checkpoint.kshlib | 3 +- > .../projectquota/defaultprojectquota_001_pos.ksh | 89 ++++++++ > .../projectquota/defaultprojectquota_002_pos.ksh | 87 ++++++++ > .../projectquota/defaultprojectquota_003_neg.ksh | 77 +++++++ > .../projectquota/defaultprojectquota_004_pos.ksh | 67 ++++++ > .../projectquota/defaultprojectquota_005_pos.ksh | 76 +++++++ > .../projectquota/defaultprojectquota_006_pos.ksh | 90 ++++++++ > .../projectquota/defaultprojectquota_007_pos.ksh | 130 ++++++++++++ > .../projectquota/projectquota_007_pos.ksh | 4 +- > .../projectquota/projectquota_common.kshlib | 2 + > .../projectquota/projectspace_005_pos.ksh | 84 ++++++++ > .../replacement/resilver_restart_001.ksh | 2 +- > .../tests/functional/slog/slog_006_pos.ksh | 3 +- > .../userquota/defaultuserquota_001_pos.ksh | 75 +++++++ > .../userquota/defaultuserquota_002_pos.ksh | 96 +++++++++ > .../userquota/defaultuserquota_003_pos.ksh | 62 ++++++ > .../userquota/defaultuserquota_004_neg.ksh | 72 +++++++ > .../userquota/defaultuserquota_005_pos.ksh | 76 +++++++ > .../userquota/defaultuserquota_006_pos.ksh | 61 ++++++ > .../userquota/defaultuserquota_007_pos.ksh | 90 ++++++++ > .../userquota/defaultuserquota_008_pos.ksh | 78 +++++++ > .../userquota/defaultuserquota_009_pos.ksh | 133 ++++++++++++ > .../userquota/defaultuserquota_010_neg.ksh | 65 ++++++ > .../userquota/defaultuserquota_011_neg.ksh | 79 +++++++ > .../userquota/defaultuserquota_012_neg.ksh | 88 ++++++++ > .../userquota/defaultuserquota_013_neg.ksh | 71 +++++++ > .../functional/userquota/groupspace_004_pos.ksh | 78 +++++++ > .../tests/functional/userquota/userquota.cfg | 2 + > .../functional/userquota/userquota_common.kshlib | 6 + > .../functional/userquota/userspace_004_pos.ksh | 80 +++++++ > .../tests/functional/vdev_disk/page_alignment.c | 8 +- > .../functional/zvol/zvol_stress/zvol_stress.ksh | 3 +- > .../openzfs/tests/zfs-tests/tests/perf/perf.shlib | 136 ++++++------ > sys/modules/zfs/zfs_config.h | 12 +- > sys/modules/zfs/zfs_gitrev.h | 2 +- > 166 files changed, 4680 insertions(+), 1144 deletions(-) > > diff --cc sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 > index 000000000000,05db3af511eb..05db3af511eb > mode 000000,100644..100644 > --- a/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 > +++ b/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 > diff --cc sys/contrib/openzfs/module/zfs/zfs_debug_common.c > index 000000000000,cff0dc01c39c..cff0dc01c39c > mode 000000,100644..100644 > --- a/sys/contrib/openzfs/module/zfs/zfs_debug_common.c > +++ b/sys/contrib/openzfs/module/zfs/zfs_debug_common.c > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh > index 000000000000,0a63b6059410..0a63b6059410 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh > index 000000000000,6a905c867952..6a905c867952 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh > index 000000000000,3601f5422250..3601f5422250 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh > index 000000000000,12ebcec3af37..12ebcec3af37 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh > index 000000000000,7d0bf5cf0fe1..7d0bf5cf0fe1 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh > index 000000000000,eabf4fecfcb4..eabf4fecfcb4 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh > index 000000000000,53ae9b213c1c..53ae9b213c1c > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh > index 000000000000,784077e62501..784077e62501 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh > index 000000000000,2adf2a9340f7..2adf2a9340f7 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh > index 000000000000,88af37c60549..88af37c60549 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh > index 000000000000,fecb7670dfc6..fecb7670dfc6 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh > index 000000000000,92d6e2e81656..92d6e2e81656 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh > index 000000000000,c57352595662..c57352595662 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh > index 000000000000,325873f90af2..325873f90af2 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh > index 000000000000,f43f5bd5e57e..f43f5bd5e57e > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh > index 000000000000,42be33cac12c..42be33cac12c > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh > index 000000000000,c3302d10dae9..c3302d10dae9 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh > index 000000000000,37e6e66c8119..37e6e66c8119 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh > index 000000000000,91e27cf460fc..91e27cf460fc > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh > index 000000000000,b8efb74d0f12..b8efb74d0f12 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh > index 000000000000,30aa93e2b0ba..30aa93e2b0ba > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh > index 000000000000,ec964236a115..ec964236a115 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh > index 000000000000,e822052ff3dd..e822052ff3dd > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh > index 000000000000,046273ebd869..046273ebd869 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh > index 000000000000,7877bee5f48d..7877bee5f48d > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh > index 000000000000,f7dc33591ca9..f7dc33591ca9 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh > index 000000000000,795c65101878..795c65101878 > mode 000000,100755..100755 > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh > diff --cc sys/modules/zfs/zfs_config.h > index 2650db0a389b,000000000000..86ccdbee2d5b > mode 100644,000000..100644 > --- a/sys/modules/zfs/zfs_config.h > +++ b/sys/modules/zfs/zfs_config.h > @@@ -1,833 -1,0 +1,839 @@@ > +/* > + */ > + > +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ > +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ > + > +/* Define to 1 if translation of program messages to the user's native > + language is requested. */ > +/* #undef ENABLE_NLS */ > + > +/* __assign_str() has one arg */ > +/* #undef HAVE_1ARG_ASSIGN_STR */ > + > +/* lookup_bdev() wants 1 arg */ > +/* #undef HAVE_1ARG_LOOKUP_BDEV */ > + > +/* kernel has access_ok with 'type' parameter */ > +/* #undef HAVE_ACCESS_OK_TYPE */ > + > +/* add_disk() returns int */ > +/* #undef HAVE_ADD_DISK_RET */ > + > +/* Define if host toolchain supports AES */ > +#define HAVE_AES 1 > + > +/* Define if you have [rt] */ > +#define HAVE_AIO_H 1 > + > +#ifdef __amd64__ > +#ifndef RESCUE > +/* Define if host toolchain supports AVX */ > +#define HAVE_AVX 1 > +#endif > + > +/* Define if host toolchain supports AVX2 */ > +#define HAVE_AVX2 1 > + > +/* Define if host toolchain supports AVX512BW */ > +#define HAVE_AVX512BW 1 > + > +/* Define if host toolchain supports AVX512CD */ > +#define HAVE_AVX512CD 1 > + > +/* Define if host toolchain supports AVX512DQ */ > +#define HAVE_AVX512DQ 1 > + > +/* Define if host toolchain supports AVX512ER */ > +#define HAVE_AVX512ER 1 > + > +/* Define if host toolchain supports AVX512F */ > +#define HAVE_AVX512F 1 > + > +/* Define if host toolchain supports AVX512IFMA */ > +#define HAVE_AVX512IFMA 1 > + > +/* Define if host toolchain supports AVX512PF */ > +#define HAVE_AVX512PF 1 > + > +/* Define if host toolchain supports AVX512VBMI */ > +#define HAVE_AVX512VBMI 1 > + > +/* Define if host toolchain supports AVX512VL */ > +#define HAVE_AVX512VL 1 > +#endif > + > +/* backtrace() is available */ > +/* #undef HAVE_BACKTRACE */ > + > +/* bdevname() is available */ > +/* #undef HAVE_BDEVNAME */ > + > +/* bdev_check_media_change() exists */ > +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ > + > +/* bdev_file_open_by_path() exists */ > +/* #undef HAVE_BDEV_FILE_OPEN_BY_PATH */ > + > +/* bdev_*_io_acct() available */ > +/* #undef HAVE_BDEV_IO_ACCT_63 */ > + > +/* bdev_*_io_acct() available */ > +/* #undef HAVE_BDEV_IO_ACCT_OLD */ > + > +/* bdev_kobj() exists */ > +/* #undef HAVE_BDEV_KOBJ */ > + > +/* bdev_max_discard_sectors() is available */ > +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ > + > +/* bdev_max_secure_erase_sectors() is available */ > +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ > + > +/* bdev_nr_bytes() is available */ > +/* #undef HAVE_BDEV_NR_BYTES */ > + > +/* bdev_open_by_path() exists */ > +/* #undef HAVE_BDEV_OPEN_BY_PATH */ > + > +/* bdev_release() exists */ > +/* #undef HAVE_BDEV_RELEASE */ > + > +/* block_device_operations->submit_bio() returns void */ > +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ > + > +/* bdev_whole() is available */ > +/* #undef HAVE_BDEV_WHOLE */ > + > +/* bio_alloc() takes 4 arguments */ > +/* #undef HAVE_BIO_ALLOC_4ARG */ > + > +/* bio->bi_bdev->bd_disk exists */ > +/* #undef HAVE_BIO_BDEV_DISK */ > + > +/* bio_*_io_acct() available */ > +/* #undef HAVE_BIO_IO_ACCT */ > + > +/* bio_max_segs() is implemented */ > +/* #undef HAVE_BIO_MAX_SEGS */ > + > +/* bio_set_dev() GPL-only */ > +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ > + > +/* bio_set_dev() is a macro */ > +/* #undef HAVE_BIO_SET_DEV_MACRO */ > + > +/* bio_set_op_attrs is available */ > +/* #undef HAVE_BIO_SET_OP_ATTRS */ > + > +/* blkdev_get_by_path() exists and takes 4 args */ > +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */ > + > +/* blkdev_get_by_path() handles ERESTARTSYS */ > +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ > + > +/* __blkdev_issue_discard(flags) is available */ > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_FLAGS */ > + > +/* __blkdev_issue_discard() is available */ > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_NOFLAGS */ > + > +/* blkdev_issue_discard(flags) is available */ > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_FLAGS */ > + > +/* blkdev_issue_discard() is available */ > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_NOFLAGS */ > + > +/* blkdev_issue_secure_erase() is available */ > +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ > + > +/* blkdev_put() exists */ > +/* #undef HAVE_BLKDEV_PUT */ > + > +/* blkdev_put() accepts void* as arg 2 */ > +/* #undef HAVE_BLKDEV_PUT_HOLDER */ > + > +/* struct queue_limits has a features field */ > +/* #undef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES */ > + > +/* blkdev_reread_part() exists */ > +/* #undef HAVE_BLKDEV_REREAD_PART */ > + > +/* blkg_tryget() is available */ > +/* #undef HAVE_BLKG_TRYGET */ > + > +/* blkg_tryget() GPL-only */ > +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ > + > +/* blk_alloc_disk() exists */ > +/* #undef HAVE_BLK_ALLOC_DISK */ > + > +/* blk_alloc_disk() exists and takes 2 args */ > +/* #undef HAVE_BLK_ALLOC_DISK_2ARG */ > + > +/* blk_alloc_queue() expects request function */ > +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ > + > +/* blk_alloc_queue_rh() expects request function */ > +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ > + > +/* blk_cleanup_disk() exists */ > +/* #undef HAVE_BLK_CLEANUP_DISK */ > + > +/* blk_mode_t is defined */ > +/* #undef HAVE_BLK_MODE_T */ > + > +/* block multiqueue hardware context is cached in struct request */ > +/* #undef HAVE_BLK_MQ_RQ_HCTX */ > + > +/* blk queue backing_dev_info is dynamic */ > +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ > + > +/* blk_queue_discard() is available */ > +/* #undef HAVE_BLK_QUEUE_DISCARD */ > + > +/* backing_dev_info is available through queue gendisk */ > +/* #undef HAVE_BLK_QUEUE_DISK_BDI */ > + > +/* blk_queue_secure_erase() is available */ > +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ > + > +/* blk_queue_update_readahead() exists */ > +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ > + > +/* BLK_STS_RESV_CONFLICT is defined */ > +/* #undef HAVE_BLK_STS_RESV_CONFLICT */ > + > +/* Define if release() in block_device_operations takes 1 arg */ > +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */ > + > +/* Define if revalidate_disk() in block_device_operations */ > +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ > + > +/* Define to 1 if you have the Mac OS X function > + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ > +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ > + > +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in > + the CoreFoundation framework. */ > +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ > + > +/* check_disk_change() exists */ > +/* #undef HAVE_CHECK_DISK_CHANGE */ > + > +/* copy_splice_read exists */ > +/* #undef HAVE_COPY_SPLICE_READ */ > + > +/* cpu_has_feature() is GPL-only */ > +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ > + > +/* Define if the GNU dcgettext() function is already present or preinstalled. > + */ > +/* #undef HAVE_DCGETTEXT */ > + > +/* DECLARE_EVENT_CLASS() is available */ > +/* #undef HAVE_DECLARE_EVENT_CLASS */ > + > +/* 3-arg dequeue_signal() takes a type argument */ > +/* #undef HAVE_DEQUEUE_SIGNAL_3ARG_TYPE */ > + > +/* dequeue_signal() takes 4 arguments */ > +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ > + > +/* lookup_bdev() wants dev_t arg */ > +/* #undef HAVE_DEVT_LOOKUP_BDEV */ > + > +/* disk_check_media_change() exists */ > +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */ > + > +/* disk_*_io_acct() available */ > +/* #undef HAVE_DISK_IO_ACCT */ > + > +/* disk_update_readahead() exists */ > +/* #undef HAVE_DISK_UPDATE_READAHEAD */ > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_DLFCN_H 1 > + > +/* dops->d_revalidate() takes 4 args */ > +/* #undef HAVE_D_REVALIDATE_4ARGS */ > + > +/* Define to 1 if you have the 'execvpe' function. */ > +#define HAVE_EXECVPE 1 > + > +/* fault_in_iov_iter_readable() is available */ > +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ > + > +/* file->f_version exists */ > +/* #undef HAVE_FILE_F_VERSION */ > + > +/* flush_dcache_page() is GPL-only */ > +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ > + > +/* Define if compiler supports -Wformat-overflow */ > +/* #undef HAVE_FORMAT_OVERFLOW */ > + > +/* fsync_bdev() is declared in include/blkdev.h */ > +/* #undef HAVE_FSYNC_BDEV */ > + > +/* yes */ > +/* #undef HAVE_GENERIC_FADVISE */ > + > +/* generic_fillattr requires struct mnt_idmap* */ > +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ > + > +/* generic_fillattr requires struct mnt_idmap* and u32 request_mask */ > +/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */ > + > +/* generic_fillattr requires struct user_namespace* */ > +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ > + > +/* generic_*_io_acct() 4 arg available */ > +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ > + > +/* GENHD_FL_EXT_DEVT flag is available */ > +/* #undef HAVE_GENHD_FL_EXT_DEVT */ > + > +/* GENHD_FL_NO_PART flag is available */ > +/* #undef HAVE_GENHD_FL_NO_PART */ > + > +/* Define if the GNU gettext() function is already present or preinstalled. */ > +/* #undef HAVE_GETTEXT */ > + > +/* Define to 1 if you have the 'gettid' function. */ > +/* #undef HAVE_GETTID */ > + > +/* iops->get_acl() exists */ > +/* #undef HAVE_GET_ACL */ > + > +/* iops->get_acl() takes rcu */ > +/* #undef HAVE_GET_ACL_RCU */ > + > +/* has iops->get_inode_acl() */ > +/* #undef HAVE_GET_INODE_ACL */ > + > +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ > +/* #undef HAVE_IATTR_VFSID */ > + > +/* Define if you have the iconv() function and it works. */ > +#define HAVE_ICONV 1 > + > +/* iops->getattr() takes struct mnt_idmap* */ > +/* #undef HAVE_IDMAP_IOPS_GETATTR */ > + > +/* iops->setattr() takes struct mnt_idmap* */ > +/* #undef HAVE_IDMAP_IOPS_SETATTR */ > + > +/* APIs for idmapped mount are present */ > +/* #undef HAVE_IDMAP_MNT_API */ > + > +/* mnt_idmap does not have user_namespace */ > +/* #undef HAVE_IDMAP_NO_USERNS */ > + > +/* Define if compiler supports -Wimplicit-fallthrough */ > +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ > + > +/* Define if compiler supports -Winfinite-recursion */ > +/* #undef HAVE_INFINITE_RECURSION */ > + > +/* inode_get_atime() exists in linux/fs.h */ > +/* #undef HAVE_INODE_GET_ATIME */ > + > +/* inode_get_ctime() exists in linux/fs.h */ > +/* #undef HAVE_INODE_GET_CTIME */ > + > +/* inode_get_mtime() exists in linux/fs.h */ > +/* #undef HAVE_INODE_GET_MTIME */ > + > +/* inode_owner_or_capable() exists */ > +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ > + > +/* inode_owner_or_capable() takes mnt_idmap */ > +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ > + > +/* inode_owner_or_capable() takes user_ns */ > +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ > + > +/* inode_set_atime_to_ts() exists in linux/fs.h */ > +/* #undef HAVE_INODE_SET_ATIME_TO_TS */ > + > +/* inode_set_ctime_to_ts() exists in linux/fs.h */ > +/* #undef HAVE_INODE_SET_CTIME_TO_TS */ > + > +/* inode_set_mtime_to_ts() exists in linux/fs.h */ > +/* #undef HAVE_INODE_SET_MTIME_TO_TS */ > + > +/* timestamp_truncate() exists */ > +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_INTTYPES_H 1 > + > +/* iops->create() takes struct mnt_idmap* */ > +/* #undef HAVE_IOPS_CREATE_IDMAP */ > + > +/* iops->create() takes struct user_namespace* */ > +/* #undef HAVE_IOPS_CREATE_USERNS */ > + > +/* iops->mkdir() takes struct mnt_idmap* */ > +/* #undef HAVE_IOPS_MKDIR_IDMAP */ > + > +/* iops->mkdir() takes struct user_namespace* */ > +/* #undef HAVE_IOPS_MKDIR_USERNS */ > + > +/* iops->mknod() takes struct mnt_idmap* */ > +/* #undef HAVE_IOPS_MKNOD_IDMAP */ > + > +/* iops->mknod() takes struct user_namespace* */ > +/* #undef HAVE_IOPS_MKNOD_USERNS */ > + > +/* iops->permission() takes struct mnt_idmap* */ > +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ > + > +/* iops->permission() takes struct user_namespace* */ > +/* #undef HAVE_IOPS_PERMISSION_USERNS */ > + > +/* iops->rename() takes struct mnt_idmap* */ > +/* #undef HAVE_IOPS_RENAME_IDMAP */ > + > +/* iops->rename() takes struct user_namespace* */ > +/* #undef HAVE_IOPS_RENAME_USERNS */ > + > +/* iops->symlink() takes struct mnt_idmap* */ > +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ > + > +/* iops->symlink() takes struct user_namespace* */ > +/* #undef HAVE_IOPS_SYMLINK_USERNS */ > + > +/* iov_iter_get_pages2() is available */ > +/* #undef HAVE_IOV_ITER_GET_PAGES2 */ > + > +/* iov_iter_type() is available */ > +/* #undef HAVE_IOV_ITER_TYPE */ > + > +/* Define to 1 if you have the 'issetugid' function. */ > +#define HAVE_ISSETUGID 1 > + > +/* iter_iov() is available */ > +/* #undef HAVE_ITER_IOV */ > + > +/* iter_is_ubuf() is available */ > +/* #undef HAVE_ITER_IS_UBUF */ > + > +/* kernel has kernel_fpu_* functions */ > +/* #undef HAVE_KERNEL_FPU */ > + > +/* kernel has asm/fpu/api.h */ > +/* #undef HAVE_KERNEL_FPU_API_HEADER */ > + > +/* kernel fpu internal */ > +/* #undef HAVE_KERNEL_FPU_INTERNAL */ > + > +/* kernel has asm/fpu/internal.h */ > +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ > + > +/* Define if compiler supports -Winfinite-recursion */ > +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ > + > +/* kernel defines intptr_t */ > +/* #undef HAVE_KERNEL_INTPTR_T */ > + > +/* kernel has kernel_neon_* functions */ > +/* #undef HAVE_KERNEL_NEON */ > + > +/* kernel does stack verification */ > +/* #undef HAVE_KERNEL_OBJTOOL */ > + > +/* kernel has linux/objtool.h */ > +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ > + > +/* strlcpy() exists */ > +/* #undef HAVE_KERNEL_STRLCPY */ > + > +/* kernel has kmap_local_page */ > +/* #undef HAVE_KMAP_LOCAL_PAGE */ > + > +/* Define if you have [aio] */ > +/* #undef HAVE_LIBAIO */ > + > +/* Define if you have [blkid] */ > +/* #undef HAVE_LIBBLKID */ > + > +/* Define if you have [crypto] */ > +#define HAVE_LIBCRYPTO 1 > + > +/* Define if you have [tirpc] */ > +/* #undef HAVE_LIBTIRPC */ > + > +/* Define if you have [udev] */ > +/* #undef HAVE_LIBUDEV */ > + > +/* Define if you have [unwind] */ > +/* #undef HAVE_LIBUNWIND */ > + > +/* libunwind has unw_get_elf_filename */ > +/* #undef HAVE_LIBUNWIND_ELF */ > + > +/* Define if you have [uuid] */ > +/* #undef HAVE_LIBUUID */ > + > +/* building against unsupported kernel version */ > +/* #undef HAVE_LINUX_EXPERIMENTAL */ > + > +/* makedev() is declared in sys/mkdev.h */ > +/* #undef HAVE_MAKEDEV_IN_MKDEV */ > + > +/* makedev() is declared in sys/sysmacros.h */ > +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ > + > +/* Noting that make_request_fn() returns blk_qc_t */ > +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ > + > +/* Define to 1 if you have the 'mlockall' function. */ > +#define HAVE_MLOCKALL 1 > + > +/* PG_error flag is available */ > +/* #undef HAVE_MM_PAGE_FLAG_ERROR */ > + > +/* page_mapping() is available */ > +/* #undef HAVE_MM_PAGE_MAPPING */ > + > +/* page_size() is available */ > +/* #undef HAVE_MM_PAGE_SIZE */ > + > +/* Define if host toolchain supports MOVBE */ > +#define HAVE_MOVBE 1 > + > +/* folio_wait_bit() exists */ > +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ > + > +/* part_to_dev() exists */ > +/* #undef HAVE_PART_TO_DEV */ > + > +/* iops->getattr() takes a path */ > +/* #undef HAVE_PATH_IOPS_GETATTR */ > + > +/* Define if host toolchain supports PCLMULQDQ */ > +#define HAVE_PCLMULQDQ 1 > + > +/* pin_user_pages_unlocked() is available */ > +/* #undef HAVE_PIN_USER_PAGES_UNLOCKED */ > + > +/* proc_handler ctl_table arg is const */ > +/* #undef HAVE_PROC_HANDLER_CTL_TABLE_CONST */ > + > +/* proc_ops structure exists */ > +/* #undef HAVE_PROC_OPS_STRUCT */ > + > +/* If available, contains the Python version number currently in use. */ > +#define HAVE_PYTHON "3.7" > + > +/* qat is enabled and existed */ > +/* #undef HAVE_QAT */ > + > +/* struct reclaim_state has reclaimed */ > +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ > + > +/* register_shrinker is vararg */ > +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ > + > +/* register_sysctl_sz exists */ > +/* #undef HAVE_REGISTER_SYSCTL_SZ */ > + > +/* register_sysctl_table exists */ > +/* #undef HAVE_REGISTER_SYSCTL_TABLE */ > + > +/* iops->rename() wants flags */ > +/* #undef HAVE_RENAME_WANTS_FLAGS */ > + > +/* revalidate_disk() is available */ > +/* #undef HAVE_REVALIDATE_DISK */ > + > +/* revalidate_disk_size() is available */ > +/* #undef HAVE_REVALIDATE_DISK_SIZE */ > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_SECURITY_PAM_MODULES_H 1 > + > +/* setattr_prepare() accepts mnt_idmap */ > +/* #undef HAVE_SETATTR_PREPARE_IDMAP */ > + > +/* setattr_prepare() is available, doesn't accept user_namespace */ > +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ > + > +/* setattr_prepare() accepts user_namespace */ > +/* #undef HAVE_SETATTR_PREPARE_USERNS */ > + > +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ > +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ > + > +/* iops->set_acl() takes 4 args */ > +/* #undef HAVE_SET_ACL_USERNS */ > + > +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ > +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ > + > +/* shrinker_register exists */ > +/* #undef HAVE_SHRINKER_REGISTER */ > + > +/* kernel_siginfo_t exists */ > +/* #undef HAVE_SIGINFO */ > + > +#if defined(__amd64__) || defined(__i386__) > +/* Define if host toolchain supports SSE */ > +#define HAVE_SSE 1 > + > +/* Define if host toolchain supports SSE2 */ > +#define HAVE_SSE2 1 > + > +/* Define if host toolchain supports SSE3 */ > +#define HAVE_SSE3 1 > + > +/* Define if host toolchain supports SSE4.1 */ > +#define HAVE_SSE4_1 1 > + > +/* Define if host toolchain supports SSE4.2 */ > +#define HAVE_SSE4_2 1 > + > +/* Define if host toolchain supports SSSE3 */ > +#define HAVE_SSSE3 1 > +#endif > + > +/* STACK_FRAME_NON_STANDARD is defined */ > +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ > + > +/* standalone exists */ > +/* #undef HAVE_STANDALONE_LINUX_STDARG */ > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_STDINT_H 1 > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_STDIO_H 1 > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_STDLIB_H 1 > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_STRINGS_H 1 > + > +/* Define to 1 if you have the header file. */ > +#define HAVE_STRING_H 1 > + > +/* Define to 1 if you have the 'strlcat' function. */ > +#define HAVE_STRLCAT 1 > + > +/* Define to 1 if you have the 'strlcpy' function. */ > *** 224 LINES SKIPPED *** > -- Colin Percival FreeBSD Release Engineering Lead & EC2 platform maintainer Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From nobody Sun May 4 22:20:32 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 4ZrJy95VfHz5vN4N for ; Sun, 04 May 2025 22:20:33 +0000 (UTC) (envelope-from 010001969d62fe18-0e74c886-4b0f-44ff-b755-0df246f169d0-000000@amazonses.com) Received: from a8-237.smtp-out.amazonses.com (a8-237.smtp-out.amazonses.com [54.240.8.237]) (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) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrJy94hxRz4Fwm for ; Sun, 04 May 2025 22:20:33 +0000 (UTC) (envelope-from 010001969d62fe18-0e74c886-4b0f-44ff-b755-0df246f169d0-000000@amazonses.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=vnqrkfnvu6csdl6mwgk5t6ix3nnepx57; d=tarsnap.com; t=1746397232; h=Message-ID:Date:MIME-Version:Subject:To:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding; bh=pAlFwH77KDz1E20LIufuew2RoouFLaCvvf/O9wqPR4M=; b=qBZbEHG/+nS3LzBStHQ4IDW2jNifdPUFSfLtZnR0mOaNVOkmcQyHePCJd9fm8LsZ JHGE7NXOjToQsQHFbpZ3NQ/hSZzJD44t/RaVIqvDMYp/0S2HlTEHrP6lwTUtxeme3Z3 WoaxiZcUQZCWgoO71HauBv8CMto4CjOd2N+Ee7sg= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1746397232; h=Message-ID:Date:MIME-Version:Subject:To:References:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Feedback-ID; bh=pAlFwH77KDz1E20LIufuew2RoouFLaCvvf/O9wqPR4M=; b=GYiGlHyWNR1ymndnG7U1JOYqWUNQK9MEz4iAsAjfH3V9TEoPx7xScLK8DnOZJB2c 9TyOdhdQpFdLuSBcfakJJ0KwjZ5rJJrD8zqw+0TYmdncfDit4PjcP/SXkYJKrEQOR98 jVjoQwkdH5hbL8Lk4vhDa25L1gJu8oPHorF5UFC0= Message-ID: <010001969d62fe18-0e74c886-4b0f-44ff-b755-0df246f169d0-000000@email.amazonses.com> Date: Sun, 4 May 2025 22:20:32 +0000 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: 128836d304d9 - main - MFV: xz 5.8.1. To: Xin LI , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202505040709.54479kYC028511@gitrepo.freebsd.org> Content-Language: en-US From: Colin Percival Autocrypt: addr=cperciva@tarsnap.com; keydata= xsFNBGWMSrYBEACdWRqDn3B3SKO7IG0/fGHYtfs26f3Q5QeAcasy1fQLniwGQWn5rlILhbCD K/jdNoDm5Zxq20eqyffoDNObCjnHgg4tGANdi+RmDy+7CDpE789H8dss9y7Pt5DlGGAXQQnt hxush3EYS/Ctprd9UUL/lzOOLOU1aNtzB84tNrJBtcJmL7OYHfyTSNFxvedqJrrasejIQOLI t/DQ89BPzz+vsKHz7FJPXh3fsVkzLA00DJYcfkgxyABfJNA7U6yMwd4DVSdx/SsvfIDMVXnu UXCXswo106WPZbYGlZPpq0wW6iibtTerJix+8AeuwXvl9O1p8yESK4ErkIxCnmghTSz+pdzj z/6xBRkdDM9VdZ0r+CzsaNXMpDOzFuKyjaiYBdgCLljbDnXIHFcqXenrZ7Xwkm09g/M4uVSh pIUG2RYa6tsHSQoGCp3f2RZv1znfViKQFbbL83QjtPA20AhseZSYbHp1FPhXyy9J0wkGL16L e99g6gdGeIRE82BZjBjKGDkoyDPq+oDRSFl8NtzmIKy+cfz00nViqcTF4bREXEawFGhlpO0X O9q8mijI9iFB6zaPBiSdJGBL5ML5qLTNCl8Zlf4m1TBvmRTqF/lzMHVXHidDoUhpSh/y3AFZ 1KrYc27ztJQywDJPJPWPbtY8YhFLFs377gfP8WldsZjzp8nvoQARAQABzSVDb2xpbiBQZXJj aXZhbCA8Y3BlcmNpdmFAdGFyc25hcC5jb20+wsGRBBMBCAA7FiEEglY7hNBiDtwN+4ZBOJfy 4i5lrT8FAmWMSyYCGwMICwkNCAwHCwMFFQoJCAsFFgMCAQACHgUCF4AACgkQOJfy4i5lrT+i Yg/+PYyJNoFuygtV5t/skcjYmvEC93mnazEvh+x99vGYZnGKeJ8NDOF4QCUzeHquOWxDi8Zl reXyswKcrIquPxxX6+YyGe97VbvLnez3ksfzOYRj1F4qV0Rq8ZNK51+bvIrbcS3SfDaRioAk D7WWwFor8y/hSwxYkfsKbtP5PRcem20JUxuC085zqWLaKv5t5n2CBzAGMjwJaQ3tM3AXVwWJ uJaHA6ot/6fntJlmkfcyCYyyr0D6b0guRj3STbZ2hNn5o2AI+f6LJJ31s2sPFjl6rs7fORf3 hFSNOHDd2HxfVBXFdQy24ROkC4orBBz2xh9GScjxxT/hbXkfufkubFubw7n0HkvHzA3UF+Qq A8JiI3n+d7ocsP0/5BQ2sZdeqPGJgHx6RkAMuW1tJ29wSvCN1qMgFwhYkpQdfvHlociQrimU fvlRfSrBEe8o7tvIuEdpvwvCZSTJqQbVoMw8UHFE7nzyCXUSab5h6PbjakCqim13ekVO2KFF TTPcz5o5jEeUY75tzbIwcDfFbT5KqNjWy06TVdM9VEJDHSfOfxHR3kSEwZ+tT2aTvL3grsUn gFwSNcj4Cl4CRFfUw8zVZY+7O7RiMlhBqykikvUurrdGKc1Scwa0yuppdA6eVvylyTWSQGrQ +uLWtV1LUKN7ZqKJWBkLPt9nS4XZWGyBvxOHYqjOwU0EZYxKtgEQANYfgbtUMVnhjxDHhWLp g5kLHK3YW0TfJKzpXqDB7NiqxHofn4OcbZnVC3MKggcbs9o1/UtsjnlsG8550PfiYkDXvPiO RJwgbGs6MGIDK797C6cnBLQ8xwBa9SL4cl5iQFnhWmt6vwnJ+an/cm5JpYves3wL7jV09qU9 57hkHXEUcl38r4FssZzVcLKPUVTa3Un+QGRTGDGe/f4ctjMaqv0ZCM+l2ixPhf/vqESrfSLv V/+T3dmtUfXjazO3SABvsHwxgGuTTYOlKoPCaebr+BRdqm0xeIShoIlhvTI8y4clchqx/Uxg UG5X2kvU13k3DS3Q8uLE4Et9x1CcZT6WGgBZSR6R0WfD0SDnzufNnRWJ0dEPA2MtJHE7+85R Vi9j/IgZV+y5Ur+bnPkjDG1s2SVciX5v9HQ0oilcBhvx0j5lGE9hhurD9F+fCvkr4KdbCknE 6Y8ce8pCNBUoB/DqibJivOzTk9K9MGB5x0De5TerIrFiaw3/mQC9nGeO9dtE7wvDJetWeoTq 4BEaCzpufNqbkpOaTQILr4V6Gp7M6v97g83TVAwZntz/q8ptwuKQPZ2JaSFLZn7oWUpYXA5s +SIODFHLn6iMoYpBQskHQjnj4lEPJadl4qj+ZKA89iDAKsniyoFXsbJe2CPbMS1yzBxKZq6K D/jpt7BOnuHr/JrXABEBAAHCwXYEGAEIACAWIQSCVjuE0GIO3A37hkE4l/LiLmWtPwUCZYxK tgIbDAAKCRA4l/LiLmWtP3jmEACQrh9gWe8F1Tkw3m6VoHKwLc5he4tX3WpQa//soPO6iGG3 S3WPruQ46NrAaAojoOcKI9UONDO5rxG0ZTX53S+lu2EO47jbcLwOCjaEpjKpDRt9ZXBQE8Xl mtBE9Bp3W9gpjB1nE3KNM1mJYgsK0QdRpwwfh4pVgGpOj8j23I6MCK+v99zEBnpgCn2GX8W/ kctRXHqWwndHysOJtRP/zrl7dDaABF1f9efUl0LL3TD3GJ9VDz+DNOin/uK2a1hiJo8QzTRk PpfUQ2ebzDsrd1i/pOWkMSkdH+rEu4AGrXWtaBwrMyrGkL6Icb6yO+P9/z0W2wlgBf3P1YRt JPgQt/Dj3yvA/UnaV/QmuVQPjl13o24UnJGsZM8XGnNdfWBKkC1Q6VXC4QT+dyBHYH9MuE9d 6oGl8pFM1+cTfEfbM62/rRoPkF1yHMsI/903VxEvuUIKfhEZAVLFyHldooNxuchntHQP9y8J 8Ou9bWYQP7MnEn+kwSwrZkjurfPkan+xQvp6dDYnj3V0GwA5pprBMaB928VIDVOv+1PNQI3t Cvk5VPv/skq+TJRMHW7bFSt8PRa91cUf1FOLIz9APDiJOzXkwxUEHGV3zPSaUhs1JYjyBeGT wDAvtLUdjOnRhEUOwlnIrztmvyciutjJoVzKEEjj5WXnHk9L9kQ1bpAjkjTONw== In-Reply-To: <202505040709.54479kYC028511@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Feedback-ID: ::1.us-east-1.Lv9FVjaNvvR5llaqfLoOVbo2VxOELl7cjN0AOyXnPlk=:AmazonSES X-SES-Outgoing: 2025.05.04-54.240.8.237 X-Rspamd-Queue-Id: 4ZrJy94hxRz4Fwm 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:14618, ipnet:54.240.8.0/21, country:US] X-Spamd-Bar: ---- Is there anything in here which wants to land in FreeBSD 14.3? Colin Percival On 5/4/25 00:09, Xin LI wrote: > The branch main has been updated by delphij: > > URL: https://cgit.FreeBSD.org/src/commit/?id=128836d304d93f2d00eb14069c27089ab46c38d4 > > commit 128836d304d93f2d00eb14069c27089ab46c38d4 > Merge: 75d173a84836 12eff5f0d8b7 > Author: Xin LI > AuthorDate: 2025-05-04 07:06:22 +0000 > Commit: Xin LI > CommitDate: 2025-05-04 07:06:22 +0000 > > MFV: xz 5.8.1. > > PR: bin/286252 > MFC after: 1 week -- Colin Percival FreeBSD Release Engineering Lead & EC2 platform maintainer Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From nobody Sun May 4 22:23:43 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 4ZrK246jZTz5vN98 for ; Sun, 04 May 2025 22:23:56 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) (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 4ZrK244wFNz4J7s for ; Sun, 04 May 2025 22:23:56 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-2ff6e91cff5so3488921a91.2 for ; Sun, 04 May 2025 15:23:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1746397435; x=1747002235; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=YpNtpT1r3BYIxpfvIbVfQguMXIjifhM8AioHZmH9ZZk=; b=QxqAG2tQ8m23ljuAgnZUhoNiQ1BwcIiYY4SbkK9oe6cbdgahHHHmFXzMfZAcDiEUZO EjVD/PGYJ1kBl+5Iv929+/V8neYatg89YL3SvqPa/y1jHduX0gGJzjAPADRtnHVCA2m/ 30H32QsZrRXOb0pUZ2LFcGE7g+M1PPDSPyEZTogMfvFB/vw8molp4a9D69+A+7U+onxa dZ2iksiCE7hgL9up0hZQqzY8XLyY0TKBbjjwyFns4N8fzs6Rh46XRlQsyJ3MIy3CHsPa A4Kd0z+rekNdiubnTvr7Spgk8xjfgZu6omq9doGkRBpX20qr638MXPYIzfD0bdjZme5e QTBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746397435; x=1747002235; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YpNtpT1r3BYIxpfvIbVfQguMXIjifhM8AioHZmH9ZZk=; b=M+rzFsDtbU+PzTVapeXGlDtQQPOBQFG0JgxCKFufalULFb9XZJDMQNj+ui6MMj6iM1 Emr78eJY0eZq4IVdsAwq9FZ6kqsNZ2GW/KWBvG4Qht9W8nxMcgmNfUR/jotY7HOHRMP0 MIu73wP4dsuHcMF1DdbFfBsu1S8PGE1Z43GqWQ7BJKENVhzTQEuVldwpShRXI61PPkjc NY6SviWxquXlMSl6HHJ0jXk8mwRS9Hs/8AtzA0vbfMRH4W5F0JOhdS2CWbJT6YurwMd1 GN0OapLeVRWA25y5nABe7KTzoe6dA1cH0FvM2t7WxAvAFTV3KqHOWjEiyyaft56UvMCN aqgw== X-Forwarded-Encrypted: i=1; AJvYcCUxDmFNYq1tQXexLj5LS/LsNsIPlwmyP3YGPAWRBGMjpiic6QBWDT4y2jQRIBemYlU+Gft9yzZgoP2oj/MgtgIiC6KfZA==@freebsd.org X-Gm-Message-State: AOJu0Yz4spXtlRDbxq5l4X0jDlmzY+JEGEndTysbW+aRxtr619JfMNux qdGcxIoTH25xldEOGhq4s+C2U75myqDpPIHMFlocZnnH2leKGsWVG4fOcnaC4/AO6iK67ZK7lc4 /0aO28HAZrH5qG01ilzu97iCFw/zvC0TdnqU3RQ== X-Gm-Gg: ASbGncv6FnEQmOtJJKWXbACNC7fFA9nmIt1WHXcREcn0X818jXV7rhkqBGfWHRwqOT8 KdNeSknXfpl8745sHkgG+9yKwWGyJStuWKuMLslSA1Er5goGeBbExNU7uhJxTZR07vqe42Lm2XJ nrSCMGdIV+MacKwurqyiQawA== X-Google-Smtp-Source: AGHT+IFnYObC9PaNuLS8BWBIT6b5T/I+I2y7pDh5DTeu+VjqEy4cnvVLzZ2A5cm7nlI36tfhe6hNtqsWbfTtWvFe0uY= X-Received: by 2002:a17:90b:2f10:b0:2ee:d63f:d8f with SMTP id 98e67ed59e1d1-30a6197d927mr8031720a91.13.1746397434947; Sun, 04 May 2025 15:23:54 -0700 (PDT) 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 References: <202505042208.544M87gP024481@gitrepo.freebsd.org> <010001969d620eb0-b6f8cd83-1b8b-4bcc-b3b9-8eb12d3f0963-000000@email.amazonses.com> In-Reply-To: <010001969d620eb0-b6f8cd83-1b8b-4bcc-b3b9-8eb12d3f0963-000000@email.amazonses.com> From: Warner Losh Date: Sun, 4 May 2025 16:23:43 -0600 X-Gm-Features: ATxdqUF4Sb7ENXmY0GSY-gEVOyqkmj5rPKYcaeZzw7G1ltZRY3UwdR6W0VbzQrE Message-ID: Subject: Re: git: 071ab5a1f3cb - main - zfs: merge openzfs/zfs@246e5883b To: Colin Percival Cc: Martin Matuska , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4ZrK244wFNz4J7s 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-Spamd-Bar: ---- I thought that stable/14 tracked a different zfs branch, and if that lands, that might be interesting for 14.3. But this is zfs main landing in FreeBSD main, so I'm skeptical. Warner On Sun, May 4, 2025 at 4:19=E2=80=AFPM Colin Percival wrote: > > Is there anything in here which wants to land in 14.3? > > Colin Percival > > On 5/4/25 15:08, Martin Matuska wrote: > > The branch main has been updated by mm: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D071ab5a1f3cbfd29c8fbec27= f7e619418adaf074 > > > > commit 071ab5a1f3cbfd29c8fbec27f7e619418adaf074 > > Merge: f61844833ee8 246e5883bb5b > > Author: Martin Matuska > > AuthorDate: 2025-05-04 22:05:28 +0000 > > Commit: Martin Matuska > > CommitDate: 2025-05-04 22:05:28 +0000 > > > > zfs: merge openzfs/zfs@246e5883b > > > > Notable upstream pull request merges: > > #17111 246e5883b Implement allocation size ranges and use for gan= g leaves > > #17123 5f5321eff Handle interaction between gang blocks, copies, = and FDT > > #17130 -multiple Implement default user/group/project quotas > > #17164 301da593a Fix lock reversal on device removal cancel > > #17183 367d34b3a Fix dspace underflow bug > > #17187 30cc2331f zed: Ensure spare activation after kernel-initia= ted device > > removal > > #17191 11ca12dbd simd_powerpc.h: enable FPU on FreeBSD > > #17192 5b29e70ae Remove mg_allocators > > #17204 a497c5fc8 Improve L2 caching control for prefetched indire= cts > > #17205 b14b3e398 Fix FDT rollback to not overwrite unnecessary fi= elds > > #17206 7be9fa259 Fix nonrot property being incorrectly unset > > #17208 09fc7bb47 Fix memory leaks in pool properties handling > > > > #17213 78a7c78bd Added fix for zpool get state segfaults with two= or more > > vdevs > > #17228 131df3bbf vdev_to_nvlist_iter: ignore draid parameters whe= n matching > > names > > #17231 f40ab9e39 Fix double spares for failed vdev > > #17264 27f3d9494 Sort the blocking snapshots lis > > #17269 f86d9af16 Fix race between resilver wait and offline/detac= h > > #17273 c8fa39b46 cred: properly pass and test creds on other thre= ads > > #17284 a7de203c8 txg: generalise txg_wait_synced_sig() to > > txg_wait_synced_flags() > > > > Obtained from: OpenZFS > > OpenZFS commit: 246e5883bb5b8e09b1a4213f7b1704b5a9ed5568 > > > > .../.github/workflows/scripts/generate-ci-type.py | 1 + > > .../.github/workflows/scripts/qemu-1-setup.sh | 44 +--- > > .../.github/workflows/scripts/qemu-2-start.sh | 51 ++++- > > .../.github/workflows/scripts/qemu-3-deps-vm.sh | 4 + > > .../.github/workflows/scripts/qemu-5-setup.sh | 34 ++- > > .../.github/workflows/scripts/qemu-6-tests.sh | 15 +- > > .../.github/workflows/scripts/qemu-7-prepare.sh | 4 +- > > .../.github/workflows/scripts/qemu-8-summary.sh | 2 +- > > .../.github/workflows/zfs-qemu-packages.yml | 2 +- > > sys/contrib/openzfs/.github/workflows/zfs-qemu.yml | 4 +- > > sys/contrib/openzfs/cmd/zed/agents/zfs_retire.c | 19 +- > > sys/contrib/openzfs/cmd/zed/zed.d/zed-functions.sh | 5 + > > sys/contrib/openzfs/cmd/zfs/zfs_main.c | 13 +- > > sys/contrib/openzfs/cmd/zinject/zinject.c | 20 +- > > .../openzfs/cmd/zpool/os/linux/zpool_vdev_os.c | 3 +- > > sys/contrib/openzfs/cmd/zpool/zpool_main.c | 8 +- > > .../openzfs/config/kernel-vfs-migratepage.m4 | 27 +++ > > sys/contrib/openzfs/config/kernel.m4 | 65 ++++-- > > sys/contrib/openzfs/config/user-libunwind.m4 | 16 ++ > > sys/contrib/openzfs/contrib/debian/control | 1 + > > .../contrib/initramfs/scripts/local-top/zfs | 4 +- > > sys/contrib/openzfs/include/libzfs.h | 2 +- > > .../openzfs/include/os/freebsd/spl/sys/debug.h | 71 +++---- > > .../openzfs/include/os/freebsd/spl/sys/policy.h | 1 - > > .../include/os/freebsd/spl/sys/simd_powerpc.h | 4 +- > > .../include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 8 + > > .../openzfs/include/os/linux/spl/sys/debug.h | 67 +++--- > > .../openzfs/include/os/linux/zfs/sys/policy.h | 1 - > > .../include/os/linux/zfs/sys/zfs_vfsops_os.h | 8 + > > sys/contrib/openzfs/include/sys/ddt.h | 4 + > > sys/contrib/openzfs/include/sys/dmu_recv.h | 1 - > > sys/contrib/openzfs/include/sys/dsl_dataset.h | 4 +- > > sys/contrib/openzfs/include/sys/dsl_dir.h | 4 +- > > sys/contrib/openzfs/include/sys/fs/zfs.h | 6 + > > sys/contrib/openzfs/include/sys/metaslab.h | 10 +- > > sys/contrib/openzfs/include/sys/metaslab_impl.h | 1 - > > sys/contrib/openzfs/include/sys/nvpair.h | 2 + > > sys/contrib/openzfs/include/sys/spa.h | 3 +- > > sys/contrib/openzfs/include/sys/txg.h | 23 +- > > sys/contrib/openzfs/include/sys/vdev.h | 3 + > > sys/contrib/openzfs/include/sys/vdev_draid.h | 2 +- > > sys/contrib/openzfs/include/sys/vdev_impl.h | 4 +- > > sys/contrib/openzfs/include/sys/zcp.h | 1 - > > sys/contrib/openzfs/include/sys/zfs_context.h | 4 +- > > sys/contrib/openzfs/include/sys/zfs_debug.h | 20 ++ > > sys/contrib/openzfs/include/sys/zfs_quota.h | 2 +- > > sys/contrib/openzfs/include/sys/zio.h | 1 + > > sys/contrib/openzfs/lib/libnvpair/libnvpair.abi | 40 ++-- > > sys/contrib/openzfs/lib/libnvpair/libnvpair.c | 181 +++---------= ---- > > sys/contrib/openzfs/lib/libspl/backtrace.c | 66 ++++-- > > sys/contrib/openzfs/lib/libspl/include/assert.h | 65 +++--- > > sys/contrib/openzfs/lib/libuutil/libuutil.abi | 45 +--- > > sys/contrib/openzfs/lib/libzfs/libzfs.abi | 133 ++++++------ > > sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 60 ++++-- > > sys/contrib/openzfs/lib/libzfs/libzfs_iter.c | 2 +- > > sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 15 +- > > .../openzfs/lib/libzfs_core/libzfs_core.abi | 77 +++---- > > .../openzfs/lib/libzfsbootenv/libzfsbootenv.abi | 2 +- > > sys/contrib/openzfs/lib/libzpool/Makefile.am | 1 + > > sys/contrib/openzfs/lib/libzpool/kernel.c | 7 - > > sys/contrib/openzfs/man/man7/zfsprops.7 | 36 ++++ > > sys/contrib/openzfs/man/man8/zfs-rollback.8 | 4 +- > > sys/contrib/openzfs/module/Kbuild.in | 1 + > > sys/contrib/openzfs/module/Makefile.bsd | 16 +- > > sys/contrib/openzfs/module/nvpair/nvpair.c | 236 ++++++++++++= +++++++++ > > .../openzfs/module/os/freebsd/spl/spl_policy.c | 7 - > > .../openzfs/module/os/freebsd/zfs/vdev_geom.c | 3 +- > > .../openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 122 +++++++++-- > > .../openzfs/module/os/linux/spl/spl-kstat.c | 5 +- > > sys/contrib/openzfs/module/os/linux/zfs/abd_os.c | 2 + > > sys/contrib/openzfs/module/os/linux/zfs/policy.c | 44 ++-- > > .../openzfs/module/os/linux/zfs/vdev_disk.c | 3 +- > > .../openzfs/module/os/linux/zfs/zfs_vfsops.c | 131 ++++++++++-- > > sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 2 +- > > sys/contrib/openzfs/module/zcommon/zfs_prop.c | 22 ++ > > sys/contrib/openzfs/module/zcommon/zfs_valstr.c | 4 +- > > sys/contrib/openzfs/module/zfs/abd.c | 2 + > > sys/contrib/openzfs/module/zfs/dbuf.c | 25 ++- > > sys/contrib/openzfs/module/zfs/ddt.c | 32 +++ > > sys/contrib/openzfs/module/zfs/dmu_direct.c | 4 +- > > sys/contrib/openzfs/module/zfs/dmu_objset.c | 25 ++- > > sys/contrib/openzfs/module/zfs/dmu_recv.c | 48 +++-- > > sys/contrib/openzfs/module/zfs/dsl_dataset.c | 29 ++- > > sys/contrib/openzfs/module/zfs/dsl_dir.c | 42 ++-- > > sys/contrib/openzfs/module/zfs/dsl_scan.c | 13 +- > > sys/contrib/openzfs/module/zfs/dsl_synctask.c | 19 +- > > sys/contrib/openzfs/module/zfs/metaslab.c | 225 ++++++++++++= +++----- > > sys/contrib/openzfs/module/zfs/refcount.c | 3 +- > > sys/contrib/openzfs/module/zfs/spa.c | 101 ++++++++- > > sys/contrib/openzfs/module/zfs/txg.c | 34 +-- > > sys/contrib/openzfs/module/zfs/vdev.c | 60 +++++- > > sys/contrib/openzfs/module/zfs/vdev_draid.c | 21 +- > > sys/contrib/openzfs/module/zfs/vdev_file.c | 5 +- > > sys/contrib/openzfs/module/zfs/vdev_indirect.c | 3 +- > > sys/contrib/openzfs/module/zfs/vdev_mirror.c | 9 +- > > sys/contrib/openzfs/module/zfs/vdev_missing.c | 6 +- > > sys/contrib/openzfs/module/zfs/vdev_raidz.c | 34 ++- > > sys/contrib/openzfs/module/zfs/vdev_rebuild.c | 2 +- > > sys/contrib/openzfs/module/zfs/vdev_removal.c | 67 +++--- > > sys/contrib/openzfs/module/zfs/vdev_root.c | 3 +- > > sys/contrib/openzfs/module/zfs/zcp.c | 12 +- > > sys/contrib/openzfs/module/zfs/zcp_synctask.c | 2 - > > sys/contrib/openzfs/module/zfs/zfs_debug_common.c | 97 +++++++++ > > sys/contrib/openzfs/module/zfs/zfs_fm.c | 18 +- > > sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 98 ++++++++- > > sys/contrib/openzfs/module/zfs/zfs_quota.c | 64 +++++- > > sys/contrib/openzfs/module/zfs/zfs_znode.c | 8 + > > sys/contrib/openzfs/module/zfs/zio.c | 144 ++++++++++--= - > > sys/contrib/openzfs/rpm/generic/zfs-dkms.spec.in | 6 + > > sys/contrib/openzfs/tests/runfiles/common.run | 18 +- > > sys/contrib/openzfs/tests/runfiles/linux.run | 18 +- > > sys/contrib/openzfs/tests/runfiles/sanity.run | 4 + > > .../openzfs/tests/zfs-tests/cmd/clonefile.c | 11 +- > > .../tests/zfs-tests/cmd/file/largest_file.c | 2 +- > > sys/contrib/openzfs/tests/zfs-tests/cmd/statx.c | 3 + > > .../openzfs/tests/zfs-tests/tests/Makefile.am | 27 +++ > > .../cli_root/zpool_add/zpool_add_dryrun_output.ksh | 22 +- > > .../zpool_create/zpool_create_dryrun_output.ksh | 15 +- > > .../functional/cli_root/zpool_get/vdev_get_all.ksh | 92 ++++++++ > > .../zpool_split/zpool_split_dryrun_output.ksh | 14 +- > > .../cli_root/zpool_status/zpool_status_003_pos.ksh | 2 +- > > .../cli_root/zpool_status/zpool_status_004_pos.ksh | 2 +- > > .../tests/functional/dedup/dedup_quota.ksh | 21 +- > > .../tests/functional/events/zed_cksum_reported.ksh | 2 +- > > .../tests/functional/fault/auto_spare_double.ksh | 122 +++++++++++ > > .../functional/gang_blocks/gang_blocks_001_pos.ksh | 59 ++++++ > > .../gang_blocks/gang_blocks_ddt_copies.ksh | 79 +++++++ > > .../online_offline/online_offline_001_pos.ksh | 11 +- > > .../online_offline/online_offline_002_neg.ksh | 7 +- > > .../online_offline/online_offline_003_neg.ksh | 9 +- > > .../pool_checkpoint/checkpoint_capacity.ksh | 5 +- > > .../pool_checkpoint/pool_checkpoint.kshlib | 3 +- > > .../projectquota/defaultprojectquota_001_pos.ksh | 89 ++++++++ > > .../projectquota/defaultprojectquota_002_pos.ksh | 87 ++++++++ > > .../projectquota/defaultprojectquota_003_neg.ksh | 77 +++++++ > > .../projectquota/defaultprojectquota_004_pos.ksh | 67 ++++++ > > .../projectquota/defaultprojectquota_005_pos.ksh | 76 +++++++ > > .../projectquota/defaultprojectquota_006_pos.ksh | 90 ++++++++ > > .../projectquota/defaultprojectquota_007_pos.ksh | 130 ++++++++++++ > > .../projectquota/projectquota_007_pos.ksh | 4 +- > > .../projectquota/projectquota_common.kshlib | 2 + > > .../projectquota/projectspace_005_pos.ksh | 84 ++++++++ > > .../replacement/resilver_restart_001.ksh | 2 +- > > .../tests/functional/slog/slog_006_pos.ksh | 3 +- > > .../userquota/defaultuserquota_001_pos.ksh | 75 +++++++ > > .../userquota/defaultuserquota_002_pos.ksh | 96 +++++++++ > > .../userquota/defaultuserquota_003_pos.ksh | 62 ++++++ > > .../userquota/defaultuserquota_004_neg.ksh | 72 +++++++ > > .../userquota/defaultuserquota_005_pos.ksh | 76 +++++++ > > .../userquota/defaultuserquota_006_pos.ksh | 61 ++++++ > > .../userquota/defaultuserquota_007_pos.ksh | 90 ++++++++ > > .../userquota/defaultuserquota_008_pos.ksh | 78 +++++++ > > .../userquota/defaultuserquota_009_pos.ksh | 133 ++++++++++++ > > .../userquota/defaultuserquota_010_neg.ksh | 65 ++++++ > > .../userquota/defaultuserquota_011_neg.ksh | 79 +++++++ > > .../userquota/defaultuserquota_012_neg.ksh | 88 ++++++++ > > .../userquota/defaultuserquota_013_neg.ksh | 71 +++++++ > > .../functional/userquota/groupspace_004_pos.ksh | 78 +++++++ > > .../tests/functional/userquota/userquota.cfg | 2 + > > .../functional/userquota/userquota_common.kshlib | 6 + > > .../functional/userquota/userspace_004_pos.ksh | 80 +++++++ > > .../tests/functional/vdev_disk/page_alignment.c | 8 +- > > .../functional/zvol/zvol_stress/zvol_stress.ksh | 3 +- > > .../openzfs/tests/zfs-tests/tests/perf/perf.shlib | 136 ++++++------ > > sys/modules/zfs/zfs_config.h | 12 +- > > sys/modules/zfs/zfs_gitrev.h | 2 +- > > 166 files changed, 4680 insertions(+), 1144 deletions(-) > > > > diff --cc sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 > > index 000000000000,05db3af511eb..05db3af511eb > > mode 000000,100644..100644 > > --- a/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 > > +++ b/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 > > diff --cc sys/contrib/openzfs/module/zfs/zfs_debug_common.c > > index 000000000000,cff0dc01c39c..cff0dc01c39c > > mode 000000,100644..100644 > > --- a/sys/contrib/openzfs/module/zfs/zfs_debug_common.c > > +++ b/sys/contrib/openzfs/module/zfs/zfs_debug_common.c > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root= /zpool_get/vdev_get_all.ksh > > index 000000000000,0a63b6059410..0a63b6059410 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpo= ol_get/vdev_get_all.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpo= ol_get/vdev_get_all.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/au= to_spare_double.ksh > > index 000000000000,6a905c867952..6a905c867952 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_s= pare_double.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_s= pare_double.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blo= cks/gang_blocks_001_pos.ksh > > index 000000000000,3601f5422250..3601f5422250 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/= gang_blocks_001_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/= gang_blocks_001_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blo= cks/gang_blocks_ddt_copies.ksh > > index 000000000000,12ebcec3af37..12ebcec3af37 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/= gang_blocks_ddt_copies.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/= gang_blocks_ddt_copies.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_001_pos.ksh > > index 000000000000,7d0bf5cf0fe1..7d0bf5cf0fe1 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_001_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_001_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_002_pos.ksh > > index 000000000000,eabf4fecfcb4..eabf4fecfcb4 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_002_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_002_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_003_neg.ksh > > index 000000000000,53ae9b213c1c..53ae9b213c1c > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_003_neg.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_003_neg.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_004_pos.ksh > > index 000000000000,784077e62501..784077e62501 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_004_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_004_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_005_pos.ksh > > index 000000000000,2adf2a9340f7..2adf2a9340f7 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_005_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_005_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_006_pos.ksh > > index 000000000000,88af37c60549..88af37c60549 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_006_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_006_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/defaultprojectquota_007_pos.ksh > > index 000000000000,fecb7670dfc6..fecb7670dfc6 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_007_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /defaultprojectquota_007_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectq= uota/projectspace_005_pos.ksh > > index 000000000000,92d6e2e81656..92d6e2e81656 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /projectspace_005_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota= /projectspace_005_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_001_pos.ksh > > index 000000000000,c57352595662..c57352595662 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_001_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_001_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_002_pos.ksh > > index 000000000000,325873f90af2..325873f90af2 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_002_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_002_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_003_pos.ksh > > index 000000000000,f43f5bd5e57e..f43f5bd5e57e > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_003_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_003_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_004_neg.ksh > > index 000000000000,42be33cac12c..42be33cac12c > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_004_neg.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_004_neg.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_005_pos.ksh > > index 000000000000,c3302d10dae9..c3302d10dae9 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_005_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_005_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_006_pos.ksh > > index 000000000000,37e6e66c8119..37e6e66c8119 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_006_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_006_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_007_pos.ksh > > index 000000000000,91e27cf460fc..91e27cf460fc > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_007_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_007_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_008_pos.ksh > > index 000000000000,b8efb74d0f12..b8efb74d0f12 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_008_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_008_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_009_pos.ksh > > index 000000000000,30aa93e2b0ba..30aa93e2b0ba > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_009_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_009_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_010_neg.ksh > > index 000000000000,ec964236a115..ec964236a115 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_010_neg.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_010_neg.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_011_neg.ksh > > index 000000000000,e822052ff3dd..e822052ff3dd > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_011_neg.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_011_neg.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_012_neg.ksh > > index 000000000000,046273ebd869..046273ebd869 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_012_neg.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_012_neg.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/defaultuserquota_013_neg.ksh > > index 000000000000,7877bee5f48d..7877bee5f48d > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_013_neg.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/de= faultuserquota_013_neg.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/groupspace_004_pos.ksh > > index 000000000000,f7dc33591ca9..f7dc33591ca9 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/gr= oupspace_004_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/gr= oupspace_004_pos.ksh > > diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquot= a/userspace_004_pos.ksh > > index 000000000000,795c65101878..795c65101878 > > mode 000000,100755..100755 > > --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/us= erspace_004_pos.ksh > > +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/us= erspace_004_pos.ksh > > diff --cc sys/modules/zfs/zfs_config.h > > index 2650db0a389b,000000000000..86ccdbee2d5b > > mode 100644,000000..100644 > > --- a/sys/modules/zfs/zfs_config.h > > +++ b/sys/modules/zfs/zfs_config.h > > @@@ -1,833 -1,0 +1,839 @@@ > > +/* > > + */ > > + > > +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ > > +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ > > + > > +/* Define to 1 if translation of program messages to the user's nati= ve > > + language is requested. */ > > +/* #undef ENABLE_NLS */ > > + > > +/* __assign_str() has one arg */ > > +/* #undef HAVE_1ARG_ASSIGN_STR */ > > + > > +/* lookup_bdev() wants 1 arg */ > > +/* #undef HAVE_1ARG_LOOKUP_BDEV */ > > + > > +/* kernel has access_ok with 'type' parameter */ > > +/* #undef HAVE_ACCESS_OK_TYPE */ > > + > > +/* add_disk() returns int */ > > +/* #undef HAVE_ADD_DISK_RET */ > > + > > +/* Define if host toolchain supports AES */ > > +#define HAVE_AES 1 > > + > > +/* Define if you have [rt] */ > > +#define HAVE_AIO_H 1 > > + > > +#ifdef __amd64__ > > +#ifndef RESCUE > > +/* Define if host toolchain supports AVX */ > > +#define HAVE_AVX 1 > > +#endif > > + > > +/* Define if host toolchain supports AVX2 */ > > +#define HAVE_AVX2 1 > > + > > +/* Define if host toolchain supports AVX512BW */ > > +#define HAVE_AVX512BW 1 > > + > > +/* Define if host toolchain supports AVX512CD */ > > +#define HAVE_AVX512CD 1 > > + > > +/* Define if host toolchain supports AVX512DQ */ > > +#define HAVE_AVX512DQ 1 > > + > > +/* Define if host toolchain supports AVX512ER */ > > +#define HAVE_AVX512ER 1 > > + > > +/* Define if host toolchain supports AVX512F */ > > +#define HAVE_AVX512F 1 > > + > > +/* Define if host toolchain supports AVX512IFMA */ > > +#define HAVE_AVX512IFMA 1 > > + > > +/* Define if host toolchain supports AVX512PF */ > > +#define HAVE_AVX512PF 1 > > + > > +/* Define if host toolchain supports AVX512VBMI */ > > +#define HAVE_AVX512VBMI 1 > > + > > +/* Define if host toolchain supports AVX512VL */ > > +#define HAVE_AVX512VL 1 > > +#endif > > + > > +/* backtrace() is available */ > > +/* #undef HAVE_BACKTRACE */ > > + > > +/* bdevname() is available */ > > +/* #undef HAVE_BDEVNAME */ > > + > > +/* bdev_check_media_change() exists */ > > +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ > > + > > +/* bdev_file_open_by_path() exists */ > > +/* #undef HAVE_BDEV_FILE_OPEN_BY_PATH */ > > + > > +/* bdev_*_io_acct() available */ > > +/* #undef HAVE_BDEV_IO_ACCT_63 */ > > + > > +/* bdev_*_io_acct() available */ > > +/* #undef HAVE_BDEV_IO_ACCT_OLD */ > > + > > +/* bdev_kobj() exists */ > > +/* #undef HAVE_BDEV_KOBJ */ > > + > > +/* bdev_max_discard_sectors() is available */ > > +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ > > + > > +/* bdev_max_secure_erase_sectors() is available */ > > +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ > > + > > +/* bdev_nr_bytes() is available */ > > +/* #undef HAVE_BDEV_NR_BYTES */ > > + > > +/* bdev_open_by_path() exists */ > > +/* #undef HAVE_BDEV_OPEN_BY_PATH */ > > + > > +/* bdev_release() exists */ > > +/* #undef HAVE_BDEV_RELEASE */ > > + > > +/* block_device_operations->submit_bio() returns void */ > > +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ > > + > > +/* bdev_whole() is available */ > > +/* #undef HAVE_BDEV_WHOLE */ > > + > > +/* bio_alloc() takes 4 arguments */ > > +/* #undef HAVE_BIO_ALLOC_4ARG */ > > + > > +/* bio->bi_bdev->bd_disk exists */ > > +/* #undef HAVE_BIO_BDEV_DISK */ > > + > > +/* bio_*_io_acct() available */ > > +/* #undef HAVE_BIO_IO_ACCT */ > > + > > +/* bio_max_segs() is implemented */ > > +/* #undef HAVE_BIO_MAX_SEGS */ > > + > > +/* bio_set_dev() GPL-only */ > > +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ > > + > > +/* bio_set_dev() is a macro */ > > +/* #undef HAVE_BIO_SET_DEV_MACRO */ > > + > > +/* bio_set_op_attrs is available */ > > +/* #undef HAVE_BIO_SET_OP_ATTRS */ > > + > > +/* blkdev_get_by_path() exists and takes 4 args */ > > +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */ > > + > > +/* blkdev_get_by_path() handles ERESTARTSYS */ > > +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ > > + > > +/* __blkdev_issue_discard(flags) is available */ > > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_FLAGS */ > > + > > +/* __blkdev_issue_discard() is available */ > > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_NOFLAGS */ > > + > > +/* blkdev_issue_discard(flags) is available */ > > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_FLAGS */ > > + > > +/* blkdev_issue_discard() is available */ > > +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_NOFLAGS */ > > + > > +/* blkdev_issue_secure_erase() is available */ > > +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ > > + > > +/* blkdev_put() exists */ > > +/* #undef HAVE_BLKDEV_PUT */ > > + > > +/* blkdev_put() accepts void* as arg 2 */ > > +/* #undef HAVE_BLKDEV_PUT_HOLDER */ > > + > > +/* struct queue_limits has a features field */ > > +/* #undef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES */ > > + > > +/* blkdev_reread_part() exists */ > > +/* #undef HAVE_BLKDEV_REREAD_PART */ > > + > > +/* blkg_tryget() is available */ > > +/* #undef HAVE_BLKG_TRYGET */ > > + > > +/* blkg_tryget() GPL-only */ > > +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ > > + > > +/* blk_alloc_disk() exists */ > > +/* #undef HAVE_BLK_ALLOC_DISK */ > > + > > +/* blk_alloc_disk() exists and takes 2 args */ > > +/* #undef HAVE_BLK_ALLOC_DISK_2ARG */ > > + > > +/* blk_alloc_queue() expects request function */ > > +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ > > + > > +/* blk_alloc_queue_rh() expects request function */ > > +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ > > + > > +/* blk_cleanup_disk() exists */ > > +/* #undef HAVE_BLK_CLEANUP_DISK */ > > + > > +/* blk_mode_t is defined */ > > +/* #undef HAVE_BLK_MODE_T */ > > + > > +/* block multiqueue hardware context is cached in struct request */ > > +/* #undef HAVE_BLK_MQ_RQ_HCTX */ > > + > > +/* blk queue backing_dev_info is dynamic */ > > +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ > > + > > +/* blk_queue_discard() is available */ > > +/* #undef HAVE_BLK_QUEUE_DISCARD */ > > + > > +/* backing_dev_info is available through queue gendisk */ > > +/* #undef HAVE_BLK_QUEUE_DISK_BDI */ > > + > > +/* blk_queue_secure_erase() is available */ > > +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ > > + > > +/* blk_queue_update_readahead() exists */ > > +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ > > + > > +/* BLK_STS_RESV_CONFLICT is defined */ > > +/* #undef HAVE_BLK_STS_RESV_CONFLICT */ > > + > > +/* Define if release() in block_device_operations takes 1 arg */ > > +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */ > > + > > +/* Define if revalidate_disk() in block_device_operations */ > > +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ > > + > > +/* Define to 1 if you have the Mac OS X function > > + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. *= / > > +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ > > + > > +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAp= pValue in > > + the CoreFoundation framework. */ > > +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ > > + > > +/* check_disk_change() exists */ > > +/* #undef HAVE_CHECK_DISK_CHANGE */ > > + > > +/* copy_splice_read exists */ > > +/* #undef HAVE_COPY_SPLICE_READ */ > > + > > +/* cpu_has_feature() is GPL-only */ > > +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ > > + > > +/* Define if the GNU dcgettext() function is already present or prei= nstalled. > > + */ > > +/* #undef HAVE_DCGETTEXT */ > > + > > +/* DECLARE_EVENT_CLASS() is available */ > > +/* #undef HAVE_DECLARE_EVENT_CLASS */ > > + > > +/* 3-arg dequeue_signal() takes a type argument */ > > +/* #undef HAVE_DEQUEUE_SIGNAL_3ARG_TYPE */ > > + > > +/* dequeue_signal() takes 4 arguments */ > > +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ > > + > > +/* lookup_bdev() wants dev_t arg */ > > +/* #undef HAVE_DEVT_LOOKUP_BDEV */ > > + > > +/* disk_check_media_change() exists */ > > +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */ > > + > > +/* disk_*_io_acct() available */ > > +/* #undef HAVE_DISK_IO_ACCT */ > > + > > +/* disk_update_readahead() exists */ > > +/* #undef HAVE_DISK_UPDATE_READAHEAD */ > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_DLFCN_H 1 > > + > > +/* dops->d_revalidate() takes 4 args */ > > +/* #undef HAVE_D_REVALIDATE_4ARGS */ > > + > > +/* Define to 1 if you have the 'execvpe' function. */ > > +#define HAVE_EXECVPE 1 > > + > > +/* fault_in_iov_iter_readable() is available */ > > +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ > > + > > +/* file->f_version exists */ > > +/* #undef HAVE_FILE_F_VERSION */ > > + > > +/* flush_dcache_page() is GPL-only */ > > +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ > > + > > +/* Define if compiler supports -Wformat-overflow */ > > +/* #undef HAVE_FORMAT_OVERFLOW */ > > + > > +/* fsync_bdev() is declared in include/blkdev.h */ > > +/* #undef HAVE_FSYNC_BDEV */ > > + > > +/* yes */ > > +/* #undef HAVE_GENERIC_FADVISE */ > > + > > +/* generic_fillattr requires struct mnt_idmap* */ > > +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ > > + > > +/* generic_fillattr requires struct mnt_idmap* and u32 request_mask = */ > > +/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */ > > + > > +/* generic_fillattr requires struct user_namespace* */ > > +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ > > + > > +/* generic_*_io_acct() 4 arg available */ > > +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ > > + > > +/* GENHD_FL_EXT_DEVT flag is available */ > > +/* #undef HAVE_GENHD_FL_EXT_DEVT */ > > + > > +/* GENHD_FL_NO_PART flag is available */ > > +/* #undef HAVE_GENHD_FL_NO_PART */ > > + > > +/* Define if the GNU gettext() function is already present or preins= talled. */ > > +/* #undef HAVE_GETTEXT */ > > + > > +/* Define to 1 if you have the 'gettid' function. */ > > +/* #undef HAVE_GETTID */ > > + > > +/* iops->get_acl() exists */ > > +/* #undef HAVE_GET_ACL */ > > + > > +/* iops->get_acl() takes rcu */ > > +/* #undef HAVE_GET_ACL_RCU */ > > + > > +/* has iops->get_inode_acl() */ > > +/* #undef HAVE_GET_INODE_ACL */ > > + > > +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ > > +/* #undef HAVE_IATTR_VFSID */ > > + > > +/* Define if you have the iconv() function and it works. */ > > +#define HAVE_ICONV 1 > > + > > +/* iops->getattr() takes struct mnt_idmap* */ > > +/* #undef HAVE_IDMAP_IOPS_GETATTR */ > > + > > +/* iops->setattr() takes struct mnt_idmap* */ > > +/* #undef HAVE_IDMAP_IOPS_SETATTR */ > > + > > +/* APIs for idmapped mount are present */ > > +/* #undef HAVE_IDMAP_MNT_API */ > > + > > +/* mnt_idmap does not have user_namespace */ > > +/* #undef HAVE_IDMAP_NO_USERNS */ > > + > > +/* Define if compiler supports -Wimplicit-fallthrough */ > > +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ > > + > > +/* Define if compiler supports -Winfinite-recursion */ > > +/* #undef HAVE_INFINITE_RECURSION */ > > + > > +/* inode_get_atime() exists in linux/fs.h */ > > +/* #undef HAVE_INODE_GET_ATIME */ > > + > > +/* inode_get_ctime() exists in linux/fs.h */ > > +/* #undef HAVE_INODE_GET_CTIME */ > > + > > +/* inode_get_mtime() exists in linux/fs.h */ > > +/* #undef HAVE_INODE_GET_MTIME */ > > + > > +/* inode_owner_or_capable() exists */ > > +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ > > + > > +/* inode_owner_or_capable() takes mnt_idmap */ > > +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ > > + > > +/* inode_owner_or_capable() takes user_ns */ > > +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ > > + > > +/* inode_set_atime_to_ts() exists in linux/fs.h */ > > +/* #undef HAVE_INODE_SET_ATIME_TO_TS */ > > + > > +/* inode_set_ctime_to_ts() exists in linux/fs.h */ > > +/* #undef HAVE_INODE_SET_CTIME_TO_TS */ > > + > > +/* inode_set_mtime_to_ts() exists in linux/fs.h */ > > +/* #undef HAVE_INODE_SET_MTIME_TO_TS */ > > + > > +/* timestamp_truncate() exists */ > > +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_INTTYPES_H 1 > > + > > +/* iops->create() takes struct mnt_idmap* */ > > +/* #undef HAVE_IOPS_CREATE_IDMAP */ > > + > > +/* iops->create() takes struct user_namespace* */ > > +/* #undef HAVE_IOPS_CREATE_USERNS */ > > + > > +/* iops->mkdir() takes struct mnt_idmap* */ > > +/* #undef HAVE_IOPS_MKDIR_IDMAP */ > > + > > +/* iops->mkdir() takes struct user_namespace* */ > > +/* #undef HAVE_IOPS_MKDIR_USERNS */ > > + > > +/* iops->mknod() takes struct mnt_idmap* */ > > +/* #undef HAVE_IOPS_MKNOD_IDMAP */ > > + > > +/* iops->mknod() takes struct user_namespace* */ > > +/* #undef HAVE_IOPS_MKNOD_USERNS */ > > + > > +/* iops->permission() takes struct mnt_idmap* */ > > +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ > > + > > +/* iops->permission() takes struct user_namespace* */ > > +/* #undef HAVE_IOPS_PERMISSION_USERNS */ > > + > > +/* iops->rename() takes struct mnt_idmap* */ > > +/* #undef HAVE_IOPS_RENAME_IDMAP */ > > + > > +/* iops->rename() takes struct user_namespace* */ > > +/* #undef HAVE_IOPS_RENAME_USERNS */ > > + > > +/* iops->symlink() takes struct mnt_idmap* */ > > +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ > > + > > +/* iops->symlink() takes struct user_namespace* */ > > +/* #undef HAVE_IOPS_SYMLINK_USERNS */ > > + > > +/* iov_iter_get_pages2() is available */ > > +/* #undef HAVE_IOV_ITER_GET_PAGES2 */ > > + > > +/* iov_iter_type() is available */ > > +/* #undef HAVE_IOV_ITER_TYPE */ > > + > > +/* Define to 1 if you have the 'issetugid' function. */ > > +#define HAVE_ISSETUGID 1 > > + > > +/* iter_iov() is available */ > > +/* #undef HAVE_ITER_IOV */ > > + > > +/* iter_is_ubuf() is available */ > > +/* #undef HAVE_ITER_IS_UBUF */ > > + > > +/* kernel has kernel_fpu_* functions */ > > +/* #undef HAVE_KERNEL_FPU */ > > + > > +/* kernel has asm/fpu/api.h */ > > +/* #undef HAVE_KERNEL_FPU_API_HEADER */ > > + > > +/* kernel fpu internal */ > > +/* #undef HAVE_KERNEL_FPU_INTERNAL */ > > + > > +/* kernel has asm/fpu/internal.h */ > > +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ > > + > > +/* Define if compiler supports -Winfinite-recursion */ > > +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ > > + > > +/* kernel defines intptr_t */ > > +/* #undef HAVE_KERNEL_INTPTR_T */ > > + > > +/* kernel has kernel_neon_* functions */ > > +/* #undef HAVE_KERNEL_NEON */ > > + > > +/* kernel does stack verification */ > > +/* #undef HAVE_KERNEL_OBJTOOL */ > > + > > +/* kernel has linux/objtool.h */ > > +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ > > + > > +/* strlcpy() exists */ > > +/* #undef HAVE_KERNEL_STRLCPY */ > > + > > +/* kernel has kmap_local_page */ > > +/* #undef HAVE_KMAP_LOCAL_PAGE */ > > + > > +/* Define if you have [aio] */ > > +/* #undef HAVE_LIBAIO */ > > + > > +/* Define if you have [blkid] */ > > +/* #undef HAVE_LIBBLKID */ > > + > > +/* Define if you have [crypto] */ > > +#define HAVE_LIBCRYPTO 1 > > + > > +/* Define if you have [tirpc] */ > > +/* #undef HAVE_LIBTIRPC */ > > + > > +/* Define if you have [udev] */ > > +/* #undef HAVE_LIBUDEV */ > > + > > +/* Define if you have [unwind] */ > > +/* #undef HAVE_LIBUNWIND */ > > + > > +/* libunwind has unw_get_elf_filename */ > > +/* #undef HAVE_LIBUNWIND_ELF */ > > + > > +/* Define if you have [uuid] */ > > +/* #undef HAVE_LIBUUID */ > > + > > +/* building against unsupported kernel version */ > > +/* #undef HAVE_LINUX_EXPERIMENTAL */ > > + > > +/* makedev() is declared in sys/mkdev.h */ > > +/* #undef HAVE_MAKEDEV_IN_MKDEV */ > > + > > +/* makedev() is declared in sys/sysmacros.h */ > > +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ > > + > > +/* Noting that make_request_fn() returns blk_qc_t */ > > +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ > > + > > +/* Define to 1 if you have the 'mlockall' function. */ > > +#define HAVE_MLOCKALL 1 > > + > > +/* PG_error flag is available */ > > +/* #undef HAVE_MM_PAGE_FLAG_ERROR */ > > + > > +/* page_mapping() is available */ > > +/* #undef HAVE_MM_PAGE_MAPPING */ > > + > > +/* page_size() is available */ > > +/* #undef HAVE_MM_PAGE_SIZE */ > > + > > +/* Define if host toolchain supports MOVBE */ > > +#define HAVE_MOVBE 1 > > + > > +/* folio_wait_bit() exists */ > > +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ > > + > > +/* part_to_dev() exists */ > > +/* #undef HAVE_PART_TO_DEV */ > > + > > +/* iops->getattr() takes a path */ > > +/* #undef HAVE_PATH_IOPS_GETATTR */ > > + > > +/* Define if host toolchain supports PCLMULQDQ */ > > +#define HAVE_PCLMULQDQ 1 > > + > > +/* pin_user_pages_unlocked() is available */ > > +/* #undef HAVE_PIN_USER_PAGES_UNLOCKED */ > > + > > +/* proc_handler ctl_table arg is const */ > > +/* #undef HAVE_PROC_HANDLER_CTL_TABLE_CONST */ > > + > > +/* proc_ops structure exists */ > > +/* #undef HAVE_PROC_OPS_STRUCT */ > > + > > +/* If available, contains the Python version number currently in use= . */ > > +#define HAVE_PYTHON "3.7" > > + > > +/* qat is enabled and existed */ > > +/* #undef HAVE_QAT */ > > + > > +/* struct reclaim_state has reclaimed */ > > +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ > > + > > +/* register_shrinker is vararg */ > > +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ > > + > > +/* register_sysctl_sz exists */ > > +/* #undef HAVE_REGISTER_SYSCTL_SZ */ > > + > > +/* register_sysctl_table exists */ > > +/* #undef HAVE_REGISTER_SYSCTL_TABLE */ > > + > > +/* iops->rename() wants flags */ > > +/* #undef HAVE_RENAME_WANTS_FLAGS */ > > + > > +/* revalidate_disk() is available */ > > +/* #undef HAVE_REVALIDATE_DISK */ > > + > > +/* revalidate_disk_size() is available */ > > +/* #undef HAVE_REVALIDATE_DISK_SIZE */ > > + > > +/* Define to 1 if you have the header file.= */ > > +#define HAVE_SECURITY_PAM_MODULES_H 1 > > + > > +/* setattr_prepare() accepts mnt_idmap */ > > +/* #undef HAVE_SETATTR_PREPARE_IDMAP */ > > + > > +/* setattr_prepare() is available, doesn't accept user_namespace */ > > +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ > > + > > +/* setattr_prepare() accepts user_namespace */ > > +/* #undef HAVE_SETATTR_PREPARE_USERNS */ > > + > > +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ > > +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ > > + > > +/* iops->set_acl() takes 4 args */ > > +/* #undef HAVE_SET_ACL_USERNS */ > > + > > +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ > > +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ > > + > > +/* shrinker_register exists */ > > +/* #undef HAVE_SHRINKER_REGISTER */ > > + > > +/* kernel_siginfo_t exists */ > > +/* #undef HAVE_SIGINFO */ > > + > > +#if defined(__amd64__) || defined(__i386__) > > +/* Define if host toolchain supports SSE */ > > +#define HAVE_SSE 1 > > + > > +/* Define if host toolchain supports SSE2 */ > > +#define HAVE_SSE2 1 > > + > > +/* Define if host toolchain supports SSE3 */ > > +#define HAVE_SSE3 1 > > + > > +/* Define if host toolchain supports SSE4.1 */ > > +#define HAVE_SSE4_1 1 > > + > > +/* Define if host toolchain supports SSE4.2 */ > > +#define HAVE_SSE4_2 1 > > + > > +/* Define if host toolchain supports SSSE3 */ > > +#define HAVE_SSSE3 1 > > +#endif > > + > > +/* STACK_FRAME_NON_STANDARD is defined */ > > +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ > > + > > +/* standalone exists */ > > +/* #undef HAVE_STANDALONE_LINUX_STDARG */ > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_STDINT_H 1 > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_STDIO_H 1 > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_STDLIB_H 1 > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_STRINGS_H 1 > > + > > +/* Define to 1 if you have the header file. */ > > +#define HAVE_STRING_H 1 > > + > > +/* Define to 1 if you have the 'strlcat' function. */ > > +#define HAVE_STRLCAT 1 > > + > > +/* Define to 1 if you have the 'strlcpy' function. */ > > *** 224 LINES SKIPPED *** > > > > -- > Colin Percival > FreeBSD Release Engineering Lead & EC2 platform maintainer > Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoi= d > From nobody Sun May 4 22:26:13 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 4ZrK4k0dn9z5vN7h; Sun, 04 May 2025 22:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrK4j5K2Kz4KXG; Sun, 04 May 2025 22:26:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746397573; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UD/w42l30D9dUL7B5yYIoKV7wCu5kQF1/ukEWTqbs88=; b=cas0w9NVz1gjUWyiUiO/NqUJwR/THAqcdd4CMNk3fvv3FBXbMpSGlu3ulzaAXy38TDqnrR aBibyIDHI23ZWEbg0Eac+LrG8H5RqhKjPrlbjmoz4zhRcWhv+/J3TQg+oTX8hrC9IcZ7ue s/T8cTEjYXA+SW/sGHP11gxtG6w6F01HGJncNevPuy8XJOh1ZwZkopEsl3MflsjvQSYrZ4 GmGf9tzZaUaTthST+EzuIA/opsbcuXDUT5B2Fd5ptEBcPXZUQ+lt1EwXwzsu8pZ4EPrsU0 RZYjlVN1bvLYap8ynKdFp13J6CRGftaB3HcdqWQBGyIOamzdG2JzicZ69+h7Pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746397573; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UD/w42l30D9dUL7B5yYIoKV7wCu5kQF1/ukEWTqbs88=; b=ceSS8XiV565rXn6Icpk/gW2pEwueIiep1GQgnuAfPO5xg0vZMwXYaakIZuO9b+umms8gsm sOo1WATieIzcX2SA4tdSrQ3L1R8Z8+9V8Lu9mUJUwccupFOJu6GJlQELTtYDzft+eZsA73 zt1arJyuyp5z3cCkLCl1H/J9poS5BqfQvRBUD6pOm+RT65nJtTu/y2gfn5ogG1omS2bM0Z xY4stdn2ZYWVL5J1VqyPAK7eiEgT+lZ+H59aIritlxlojuArKvMmzaSzkVsX+WOXwzyej4 5VQXEqANL/KYaoSkI1AJOoF/T4f2dGIyhlpcBb3l1yRT0Uouv1eLLAFBUzH5WQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746397573; a=rsa-sha256; cv=none; b=ZYo3go6WjoskD6RpfAwuw3rIBCq1gTrmSs3BXyJNOijVeVfOYq3RjP/BRBRUow3Hg1FzgX cirSHuG4B1NrgM4aKCaZFT2fdyfzW0KQnCnW0fBCys6C/SDdtdTyBWHuhun9UgvzzelxJO fUAm7/MZXQSQOnWY+niaDxdInOz9YScnLmlfwakCuUN89RQp0eGMbwMA5Rb66GaLtf+zB2 KZ3iwZD9tdQHgnbJIr6HaTtOH3y53HnO1jlMqJDdOQt7dccAjCXgsQlHkOJJmu7RdhhM5p EVOYtulj1IJsWWrIw1aUDQ0B1k/IcUXMoL1QYqmwru1YIRnb1oifkjRilDTJug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrK4j4tBSznm0; Sun, 04 May 2025 22:26:13 +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 544MQDF8060954; Sun, 4 May 2025 22:26:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MQDlA060951; Sun, 4 May 2025 22:26:13 GMT (envelope-from git) Date: Sun, 4 May 2025 22:26:13 GMT Message-Id: <202505042226.544MQDlA060951@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: 38eb41a3897a - main - pathconf.2: Document the _PC_HAS_NAMEDATTR 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 38eb41a3897a78097146b217ebbf0e348e29a35a Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=38eb41a3897a78097146b217ebbf0e348e29a35a commit 38eb41a3897a78097146b217ebbf0e348e29a35a Author: Rick Macklem AuthorDate: 2025-05-04 22:23:42 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 22:23:42 +0000 pathconf.2: Document the _PC_HAS_NAMEDATTR name Commit 0f12c3cd0ddb adds a new pathconf(2) name called _PC_HAS_NAMEDATTR. This patch documents it in the man page. This is a content change. Reviewed by: ziaee (manpages) Differential Revision: https://reviews.freebsd.org/D50141 Fixes: 2ec2ba7e232d ("vfs: Add VFS/syscall support for Solaris style extended attributes") --- lib/libsys/pathconf.2 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/libsys/pathconf.2 b/lib/libsys/pathconf.2 index a460e86e6968..4c562b9c2c9a 100644 --- a/lib/libsys/pathconf.2 +++ b/lib/libsys/pathconf.2 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 16, 2025 +.Dd May 3, 2025 .Dt PATHCONF 2 .Os .Sh NAME @@ -177,6 +177,8 @@ Return 1 if a file system supports hole-punching (see otherwise 0. .It Li _PC_NAMEDATTR_ENABLED Return 1 if named attributes are enabled for the file system, otherwise 0. +.It Li _PC_HAS_NAMEDATTR +Return 1 if one or more named attributes exist for the file, otherwise 0. .El .Sh RETURN VALUES If the call to From nobody Sun May 4 22:26:49 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 4ZrK5Q0gbdz5vNMS; Sun, 04 May 2025 22:26: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 4ZrK5P66x7z4KpN; Sun, 04 May 2025 22:26:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746397609; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IuMUI6yNuQlaPhp4G9rIF9E323j4HtDJtzKIuUh8YkM=; b=kCQ8SeiwZ75rPiEzjDYN2vzUeNfWz7j9oh7dLF37rmCzM9idk+MImqso1WSpTmXdADWrLq 7PVbC1m3FSir6h7Km8D57mzaD7qAAZAQYWOVDq6olQl1ApErNr+hc5F/z61E8+yk3M24My NYEpe0AU+/TnQfVYakigjZd0mW9CGdIE54rDgpXA4cWZ7V3lbapUmNKycRGci7ElflL0Lx 0dzBf2nZ69mPdAnhqC5icJnhBgBy72uezFM6swEvTHr77xVS1kupLCFRolvlPIYije2p7+ ErW4MUQxswLJwMMScN0FFh7FJNoAY0svDq6OIurD56MOccn1MXKltYAJEsa3rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746397609; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IuMUI6yNuQlaPhp4G9rIF9E323j4HtDJtzKIuUh8YkM=; b=N6Jz/8PJ7lOV566Y4s/hDxvBfYRao3ic4imueBABeDyfE2du4NNyFAI3z8he1zZyyYLF7+ mV65r8gTRpeSE55DgKepNYLPNk1W45VI/y4Rc20r9ntgZ2Wn45FT9c4zbBrs6vbUxhA/fK JInfX0rxd94sixL1AqKNA/cQKNQvb4BJB2+x3/ZRkvTIqTbquPYSrado2TSYJM1jGXxkAS k3d1dPQqeDGBscZnN4r8WhIuZyYVrSqzQZSQe1J7ESkldShRKfI6Wh7KWZL5ySKaEN87ZT LFkGOKp0jdKNENirELIJNo78UzhS+2/nmM3OWxEQQ635iGyNL6UpfL/HfW6rBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746397609; a=rsa-sha256; cv=none; b=fBpYnFoTKcfcEDDe0VB7v1+H+LO4dN/91CYQgo2OyygVaNJ2JFvJyZ/nWQfdq9L5Ivl1hP Qtb9g2kLpsAXwlz017awzlJDqLokeF7DLy86Px3bRySAHBphxCNMTG2KpTOH53Vkq89Usa N2jIea3eCezz5rfYBSzM/LeXA3RHEyob6NM9NEoVfYDKSJTlMOMvMiTFHGEpLqA2NsK0E3 B9cvWA/9L8YjbZZbPRCkpEUMKi9q7X6QIgmNZjwqbm4lPSAYjLjM3saEcI/s7cITrdsdZx txavbToLNAJE8VPcSTCzaHKMN0kgnI7RrTD8kJ7rDvu6bJtqDeCRAIA/KbwD5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrK5P5ktfznCQ; Sun, 04 May 2025 22:26: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 544MQn3i061253; Sun, 4 May 2025 22:26:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MQn76061250; Sun, 4 May 2025 22:26:49 GMT (envelope-from git) Date: Sun, 4 May 2025 22:26:49 GMT Message-Id: <202505042226.544MQn76061250@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: 79952cd7649b - main - sctp: report address unavailability consistently 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: 79952cd7649b63fa312ecafcffb719f5060929d4 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=79952cd7649b63fa312ecafcffb719f5060929d4 commit 79952cd7649b63fa312ecafcffb719f5060929d4 Author: Michael Tuexen AuthorDate: 2025-05-04 22:20:40 +0000 Commit: Michael Tuexen CommitDate: 2025-05-04 22:23:29 +0000 sctp: report address unavailability consistently When binding to an address, which is not available, use consistently EADDRNOTAVAIL. MFC after: 3 days --- sys/netinet/sctp_pcb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 1a8a514fbf5f..9c9dd0cf3462 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -3050,7 +3050,7 @@ continue_anyway: /* GAK, more FIXME IFA lock? */ if (ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) { /* Can't bind a non-existent addr. */ - error = EINVAL; + error = EADDRNOTAVAIL; SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, error); goto out; } From nobody Sun May 4 22:33:48 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 4ZrKFS4hPPz5vP5t; Sun, 04 May 2025 22:33: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 4ZrKFS45FSz3FZ2; Sun, 04 May 2025 22:33:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RR8olTVFXFYYJRbPzjXwrE99/F/UM/946mx4oBLT2TI=; b=SmDC8+O1d1b4xDrzN8by/a6PWiZobstaZgEZKjliyQX6jK8bzF+tiFb8QaGJxHS7qZzxwj RyV6TzOU5DYIZmoX6LDVHSu27tPh2PxEIxST05B33XIm4DlwSvDhW2cd+ngOAtBFvJAchw ySD3n0F3BdZNWyLbQ5mj9KRVhs306RPqfd8dd5RpGwCV59EuDwLh9BrimRJsdyiE7VW2XT okXzedRphJ8kqOmCbvGWjp8YEO7nqRmR5fwPOe7HNmancfco2v0APcjzhEgXy0tIhlMAIR 9L+wrUO7p7WhCjud9aClauevLv8m3ZhHVezzbDbL3Py/xpjP4y5fRQx7vWd3lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RR8olTVFXFYYJRbPzjXwrE99/F/UM/946mx4oBLT2TI=; b=mouZ7rU96SL0eewK7Y1Z7yvZ9a7Puv8j5W4D5pS86pjQ04l32obKazc+RJ3dxaen2KJHpq slR5lHz+UJc8ZSp+ZHwzuYNzvJODgi9msGPp/OLv7hQfSFUl+ViCAu/doIz5ro/ksGV0m9 hmkF8dnIDyG0JefnXpBA3qt+imhzdQK/hHyxnTw34twqeVcPQ6P+2U2vns9X6McgyBGtKe jSU2vl+dV3PNAJvM5Z8SNafMGuVZg2AcHNi7rJ2s9mgDBTxc5EF6Nh1mrzD2cnitJO3zAL U7noESxFDEgPV4+VK/GB29moJ2+0EFUq90q482Y+9j91/yBlM8TXHGCeOOqNbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746398028; a=rsa-sha256; cv=none; b=CeaA4R36L/Yp8bTOvg0AD1q9EeOtXpcNkNzSbzr3zPw9ecMaW/40gJjiX1z0mRnXGWYBO9 7NNYI1lxYod72M8bpD8LsItVCdEcTULOTUQt2f7sqs9mi3UJyZ1NE+4QKGBD1iQWdzlCix vNISM7KH6yhhu42O9LBy2Q/SHeElF+Mtj/jKwoDOTtQ4tM5uOS80C3n3NuRUIGUSgzd2dx qfhIBgoegcqymzDK4BljSQxMN4Zv/GFJ9FAqT9+3D/X7hPTZ3+HVQmHwThQZpRN4D1chDB /Jf9eTHqvCD4B+kmWcf1inhppD5t/Js8qMEpD8bV7Hrf9vIlP4q6pPThDtyDcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrKFS3hcvzntT; Sun, 04 May 2025 22:33: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 544MXmwk079621; Sun, 4 May 2025 22:33:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MXmfj079618; Sun, 4 May 2025 22:33:48 GMT (envelope-from git) Date: Sun, 4 May 2025 22:33:48 GMT Message-Id: <202505042233.544MXmfj079618@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: 8f5f6680efa2 - main - sctp: don't report unusable addresses via sysctl 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 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: 8f5f6680efa28135bf37f3def2aa71f35bd30333 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=8f5f6680efa28135bf37f3def2aa71f35bd30333 commit 8f5f6680efa28135bf37f3def2aa71f35bd30333 Author: Michael Tuexen AuthorDate: 2025-05-04 22:28:52 +0000 Commit: Michael Tuexen CommitDate: 2025-05-04 22:28:52 +0000 sctp: don't report unusable addresses via sysctl interface When reporting the local addresses of an endpoint (inp without stcb), ignore unusable addresses. MFC after: 3 days --- sys/netinet/sctp_sysctl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/netinet/sctp_sysctl.c b/sys/netinet/sctp_sysctl.c index a39429ec046e..bd2f23f40727 100644 --- a/sys/netinet/sctp_sysctl.c +++ b/sys/netinet/sctp_sysctl.c @@ -265,6 +265,10 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st if (sctp_is_addr_restricted(stcb, sctp_ifa)) { continue; } + } else { + if (sctp_ifa->localifa_flags & SCTP_ADDR_IFA_UNUSEABLE) { + continue; + } } switch (sctp_ifa->address.sa.sa_family) { #ifdef INET From nobody Sun May 4 22:42:57 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 4ZrKS14K2hz5vPPw; Sun, 04 May 2025 22:42: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 4ZrKS13Fd5z3MQL; Sun, 04 May 2025 22:42:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FEZfek7XdT4NTHtkmHjJLZA45n/sN4/B1xuLrZExcEM=; b=mV396o0LYpPyelWmIL/PJi+opg0NTkWrT0B/TdxVbbPkXu4YgXlcsqAj3hwHp5aqAuqjip mxR3baVRZDxy9edVIivwhMWqiDD15ZKBWqpWfvfUSAqpGfDabsVna4QSjXnY8Kgw2knldq zKlTjND7PZPZ9jtF2gdPUFhpLFKnb9pJHyLJit5RaabNtrFNGSIAyvoJhGpwU2JGXBuDEs qzhumlP4vWeXzePaZmEgOngrcsRMduTJ0S65+IB45r6ulhtK9A9PM2sdjNw9vRkiC9wx17 +N93yT9O70J9NPlflaLAlfb264AQuCeZa5y1rF3LDMLiDv0NlrOTG8RIxWX/cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FEZfek7XdT4NTHtkmHjJLZA45n/sN4/B1xuLrZExcEM=; b=Qgssn80Xi4t7hbIvXGNS2LG3sK/yvQdUq5Xym88U2Hi/P1pCQWQVMEvDGGkmpFdsT6rKTJ Jkakb/niYij4JamrsgCTetCPgCc2l9Grvct7jyI/tJTVu5Lp9/W57Ff1GgijtvmZllU6wt uo/GOZ7MUZksz26rj43ZOu7CRAoiZ5yyej61a7eHfOTaVQwXRuRcsWLmAM/ci0ZuNb4PwL vB3RRWY7xt/fNQpxehn7JbR2FpzVCMmthACQHRhkhR7ou/cPu6IEMzCQXcpGxELCqTe7VK va8K0pqlgbriSbDnQ0+kf84i1RlOnhh9uDGoL3AsiNc3EZGvS6EBzapWYDXDEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746398577; a=rsa-sha256; cv=none; b=qY3eRx8dIp7AnIufIvZrI0YAf9jE+qzNGiKHEVx68dK73mMIfag6Bxqqwk3IzZLSV/aISc ffATsUQtGnKI6GohL3dNWp6OPlaAg/whluw0ABfrOfLT/T5QCabQvJXu+JdbTppbVOF6Kj +mEghMsYUFbkIWIJRxHo2KPARfVxHDZZRuH+8lrID5ZJEUJ6Fc4nFSQlGMXQzm9B3SNLF8 SnKX6d5+xnOouJdhFNSfKnDqX70sTfHWwI1ckAYwg1HxnCyLDbQr+KHLncCWVdhdQHP/Vg CBomSjZuEk8IYBJPbPSmHU/FtqjtH5BZ8Jb9/TNeETUan5m9QvnB7qelQVhhZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrKS12s4jzp4Q; Sun, 04 May 2025 22:42: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 544MgvR9098236; Sun, 4 May 2025 22:42:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MgvHc098234; Sun, 4 May 2025 22:42:57 GMT (envelope-from git) Date: Sun, 4 May 2025 22:42:57 GMT Message-Id: <202505042242.544MgvHc098234@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: 6ab4b0c0df57 - main - sctp: initilize local address flags correctly 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: 6ab4b0c0df57775fd6c288a0b7d0f5d2cad73481 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=6ab4b0c0df57775fd6c288a0b7d0f5d2cad73481 commit 6ab4b0c0df57775fd6c288a0b7d0f5d2cad73481 Author: Michael Tuexen AuthorDate: 2025-05-04 22:41:49 +0000 Commit: Michael Tuexen CommitDate: 2025-05-04 22:41:49 +0000 sctp: initilize local address flags correctly Use the same routine for initilizing as for updating. MFC after: 3 days --- sys/netinet/sctp_pcb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 9c9dd0cf3462..13d3b0a332f9 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -453,6 +453,7 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, SCTPDBG(SCTP_DEBUG_PCB4, "Clearing deleted ifa flag\n"); sctp_ifap->localifa_flags = SCTP_ADDR_VALID; + sctp_gather_internal_ifa_flags(sctp_ifap); sctp_ifap->ifn_p = sctp_ifnp; atomic_add_int(&sctp_ifap->ifn_p->refcount, 1); } @@ -475,6 +476,7 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, } else { /* Repair ifn_p, which was NULL... */ sctp_ifap->localifa_flags = SCTP_ADDR_VALID; + sctp_gather_internal_ifa_flags(sctp_ifap); SCTPDBG(SCTP_DEBUG_PCB4, "Repairing ifn %p for ifa %p\n", (void *)sctp_ifnp, (void *)sctp_ifap); @@ -499,7 +501,7 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, void *ifn, uint32_t ifn_index, sctp_ifap->ifa = ifa; memcpy(&sctp_ifap->address, addr, addr->sa_len); sctp_ifap->localifa_flags = SCTP_ADDR_VALID | SCTP_ADDR_DEFER_USE; - sctp_ifap->flags = ifa_flags; + sctp_gather_internal_ifa_flags(sctp_ifap); /* Set scope */ switch (sctp_ifap->address.sa.sa_family) { #ifdef INET From nobody Sun May 4 22:43:48 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 4ZrKT04RSNz5vPsC; Sun, 04 May 2025 22:43: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 4ZrKT03vfbz3MvH; Sun, 04 May 2025 22:43:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bOvmEnFsH6bHjfGmCTjDTMcjeLS5YvwFL+r1MVyLOj0=; b=YKIrNqMBDxDBZgwdClkjp81/tF1AvXmRTDwZ0zlJtTZTb65J/GGK/FGBf37u/i6XStdTCs K+VXBcWgkt6L4JBf3UpuTG7VB4qiGOqfsil4lvSovg6jV1G5c7z1PFb+O842i7YiQSqjDz owvHJzZupYO4XDlfMMYQG3KOyCNAKIggH2oDIAwHYjzC4G4qm3iidPTNapPbla7bXePWFH NcB3V9S6iuT0inEa1RsmpcAXLIY9U7FytEZ8dFUFS+6SvuZgCPzUOFxg60mqyzLmlwWaUC pgseBH5XgaVvsA7G8iSJAxXgo+XRRjZsD13RyfZUUwDyA+2rBQOC+vtIh2K6oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bOvmEnFsH6bHjfGmCTjDTMcjeLS5YvwFL+r1MVyLOj0=; b=x8AC6cJigHVhmwP2CwTjIy4g4yzmiUEzM7uOlTbO0DNwtPr80H4QzDzO00ASUjmShdavgX 8kNcKQ5NWcBJ8PnsxlJAJOF/7VvQyK2I5XaUbDY3exQzLoyslSDHQr8/41ER8osnUoSm15 qUGvFap6JxYDSqoKqzwTVE/HKjQzTiOjZ4x9TH84JVBOUHXCnbvA/zAgFfZVPeRehaUAjk 3B1Qo97vI5CWwgjQMknhHJI29bFFftzaFla7PbiUtk7XoR6tqt7/L+Q3BLhoHBQkscPL0/ m0jTIdtPLdK20YJzAgrUbaTSRUKteYyu7UhBr++dvX2NBuWSxCqQPEj8RN7l8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746398628; a=rsa-sha256; cv=none; b=aMBu1ff8qG2fPYfCji9Quy5HZtu7RGNaAXOqJr1vo5j6Ny/AkwMbe6dSN6C1DkEAkwBjkk e6te+OZJWzZ0tBb5nOJ47d46qypuEbZURn2j+5dnx6TZKaXFGUXddooABEBz90ScVph8Lx DRGQ/47hPwkllXNy4fit2f3N/FX3TkkDh2eSAp+SEts0PPzRHu42f1xI9w4QUAtDz/gkIY eOWY90ZQmIhPtrv9fTxYhXyGBnTe4PqvEHP8lOBMxX4a9cFAwlmrmr4ADkFn+hGQLs506P 9qfjdq1ptNALEx7p8xJcFnHCZCZPS0e9y0zVa8q+cBfy4ltD2qhbzi8Mf52/Ug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrKT03QRMzp0j; Sun, 04 May 2025 22:43: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 544Mhmi2098605; Sun, 4 May 2025 22:43:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MhmBM098602; Sun, 4 May 2025 22:43:48 GMT (envelope-from git) Date: Sun, 4 May 2025 22:43:48 GMT Message-Id: <202505042243.544MhmBM098602@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 4245835e5bf9 - main - ftpd.8: Fix manual syntax 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4245835e5bf9b26497d15228886b5d8e12545e7e Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=4245835e5bf9b26497d15228886b5d8e12545e7e commit 4245835e5bf9b26497d15228886b5d8e12545e7e Author: Tom Hukins AuthorDate: 2025-05-04 16:34:35 +0000 Commit: Warner Losh CommitDate: 2025-05-04 22:43:34 +0000 ftpd.8: Fix manual syntax This does not change the manual's content, but improves its syntax as suggested by `mandoc -T lint`. Reviewed by: imp, emaste Pull Request: https://github.com/freebsd/freebsd-src/pull/1690 --- libexec/ftpd/ftpd.8 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libexec/ftpd/ftpd.8 b/libexec/ftpd/ftpd.8 index 2241ea78de81..3474c379fbc7 100644 --- a/libexec/ftpd/ftpd.8 +++ b/libexec/ftpd/ftpd.8 @@ -47,7 +47,7 @@ The base system .Nm is deprecated, and will be removed in -.Fx 15.0. +.Fx 15.0 . Users are advised to install the .Pa ftp/freebsd-ftpd port or package instead. @@ -57,9 +57,7 @@ The utility is the Internet File Transfer Protocol server process. -The server uses the -.Tn TCP -protocol +The server uses the TCP protocol and listens at the port specified with the .Fl P option or in the @@ -107,7 +105,8 @@ With this option set, .Nm sends authentication success and failure messages to the .Xr blacklistd 8 -daemon. If this option is not specified, no communcation with the +daemon. +If this option is not specified, no communcation with the .Xr blacklistd 8 daemon is attempted. .It Fl D From nobody Sun May 4 22:47:11 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 4ZrKXw1FDNz5vPdV; Sun, 04 May 2025 22:47: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 4ZrKXv4fHSz3R3d; Sun, 04 May 2025 22:47:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aYH80eIFXICuSGxgPHGf0xZIfRLrEwbfH5LV06pE97Q=; b=xi4i2BzxHlSMwwGwYxry0mK8VFEbYvK8rAUG15tmODZrQ0c576iWt7RBtlAhMlr9O/noJm eKqdAMdfoSmwcCZy3UfzAbCEHbrfzFQnwbizPqNaoZzFnviMlU1LdPjtVPfsVF/BtTQ0jU oOATt81xqKnP1Bhf0dBiy8RVAJ/dH596ey2+9JHm6p9Gh2Q2iUvxqi9ebKMEZo9jlbc0Rm FuKLSy6kQUoJyiu3mDMTUYwRHPhxu3E3PhOVGv6WpuCtKW5I8R+vre1NbNqpDAwgCnz0Zi PHWpNtR1khp4s4X01PqBTzi6W1bNGJSXSdaHOLdgGUgb6lkA9nIDUJVjPvYxxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aYH80eIFXICuSGxgPHGf0xZIfRLrEwbfH5LV06pE97Q=; b=Y50Zi/V/aiJdcXMurkNa0xOTks62tXNwUjLmbf5TT1Ou6pyHQ+o49JQxLh929PPRD/sw1A 8pPqyEEuFJFoWL1xwmcv1xEWb5IsC7oD7E2yF/wjX8ag4RDJxq/CR1gOC/L/7SI+B+xtat YJI48x/t5MIIJ+mziSSGtU62NuMecNUKA4lbf5r5dmdRzgsO8WcQip8r9jXjVdk7f1NnJy 3QunTvn2bh/g8Ox2/aQTN1Xgq8c9LZ/iNVBzlZLXwPuNRlF7MYU9oQHZHxPn9y2OTx/ShI /qpWT5XUdR7ncsj7zmHUITPXrl2fF2FGUkRubCD5SuTAj/YQQnNCYDmw/xbVVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746398831; a=rsa-sha256; cv=none; b=MqOP5GhGQQvX/PFoHJ1v9MVjiRDfDIRiKMICaNs/JcG9tpyLdlD0j+o5XDAosd434BHF2F w8Ot6WX2UUyYCYyS7JMmTCYjiGUBa+9uuW5RJMezEyL93CTtacVh4mB8Q+R1MikSQ8cEXK oNtTSwGHAqzq7vJDUaor33mh80JCEqzZ/6xKqVjfXcmU2sfFCWXZzaCzJAdQ1xsdq7frp4 dB41ybkPDq62AJRK68v//Kbt6m8iobiMhNece/EiXs/KGUfoFFxDIDYXeiBM3r3VEBPUEp wWctsnky+l6fbbnPRhMt17ocM3vtIxPMkur+VMcZywdCn2YwH9e65lcXAgbMGA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrKXv4FMGzp0l; Sun, 04 May 2025 22:47: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 544MlB2B099938; Sun, 4 May 2025 22:47:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MlBUw099935; Sun, 4 May 2025 22:47:11 GMT (envelope-from git) Date: Sun, 4 May 2025 22:47:11 GMT Message-Id: <202505042247.544MlBUw099935@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 7996429578a6 - main - tcp.4: the default congestion algorithm changed 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7996429578a6771bc12b034c09912289345891ac Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=7996429578a6771bc12b034c09912289345891ac commit 7996429578a6771bc12b034c09912289345891ac Author: Tom Hukins AuthorDate: 2025-02-12 10:07:41 +0000 Commit: Warner Losh CommitDate: 2025-05-04 22:47:07 +0000 tcp.4: the default congestion algorithm changed cc_cubic(4) replaced cc_newreno(4) as the default in FreeBSD 14 with commit bb1d472d79f7. Fixes: bb1d472d79f7 ("tcp: make CUBIC the default congestion control mechanism.") Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1686 --- share/man/man4/tcp.4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index 70b50a3b197f..d53d8086e8c0 100644 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -447,7 +447,7 @@ and the reverse source route is used in responding. The default congestion control algorithm for .Tn TCP is -.Xr cc_newreno 4 . +.Xr cc_cubic 4 . Other congestion control algorithms can be made available using the .Xr mod_cc 4 framework. From nobody Sun May 4 22:47:42 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 4ZrKYV34ckz5vPhb; Sun, 04 May 2025 22:47: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 4ZrKYV2VqVz3RwJ; Sun, 04 May 2025 22:47:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hi13vVc0ytp07gp+ErAGYaAdgyo1dbya0C1/T1PFEUg=; b=rqxngi6klCFvepLKph0z3fl31V4/ZVPIW6OSsN7fmavc9v0jZhxT2x/g5Ohpwqc7FWM5uB QFz8RYrt8UsQj//zwetQPE/9ERdqGIdroH0lf5AQRUh+HEpY9SCw2U37DTvRjNILBMQa2d 6pTZeGRvfiXuqxATaRAvuq3q+g9J9HrRfHeArwfEiYMfoYdNkMbgNOUbss2LmnLE4l6wVH KhyDDqOCTTPkGYs5gSrYQxzYuwIuoLonUkGmTAWvi6I7qWHoqsmTYCIHwyNnZ7nfDL6e+G fXxNQ4lV7a0baaT0PQJYQjXwPc6VtcQiwLmK6hZkCFSNPgp3LE+PFNTb9v753A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746398862; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hi13vVc0ytp07gp+ErAGYaAdgyo1dbya0C1/T1PFEUg=; b=nG4oh8w0YESO7w95ufuFVcubIGkSXJxq8qIznkUKHy5RCVYI5leHeA4URoSEC5Ztyf8WXi YWmxXuytJiOMDUpzP51iI81rUCKfgsci7Sk/OwlEs+tsMd7zqfrGveKD4lL2SFSNK6ma3q tWhkGjz6b/JHfCwArXDrsmxr/vVryaeM/Uw/zlKEXsya3v3PU9LSplHfp05C89XWCb9g/I LAnPAfNe7SMrrvWscqZUSR5bbGDxOOkE7vLk9DW/Dbs5mM1UfR+TmjlK8F2DP8pYhRkNID 9sPmRt0/HTPzUMeJu6gZB20nRpVMgSLDsxRdFaZCqe2xCRpyhb+Eyiyeu3HD9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746398862; a=rsa-sha256; cv=none; b=Lj9bxsFGl9eMSO1WimW1aZdvM6AlqAbRo9I5S6X0/a2HBgvNZHcyki+R1lh3KUOhW4/z1j Djv1ocAy401td5go8pjSy86Apsl2+SzrwJDzQv5dKar6w+XGUHvP9+mRRUKek7tcue2j1/ j2jpkCEAoyK2IvvbtS9D6zRVf5zZI0859PDy7LFVEEcLZROB07OJmTXQ+D/vat2+EEykhD yjYe8yzcbgXvp8GtGtj7v+rQ7U47wtp1fY2fMEGL+xRV5yClm0OMELaP2hNzIm+UJAMfLC ajwVFmmSAn/7GeAbHwCpMaFGvWtjELydAHmzIN07sDCphrauZT0zRR1XMayz6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrKYV21rkznPX; Sun, 04 May 2025 22:47: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 544MlgN7000258; Sun, 4 May 2025 22:47:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MlgK7000255; Sun, 4 May 2025 22:47:42 GMT (envelope-from git) Date: Sun, 4 May 2025 22:47:42 GMT Message-Id: <202505042247.544MlgK7000255@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: 2013c4e0dc73 - main - sctp: clear the SCTP_ADDR_VALID flag when removing an address 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: 2013c4e0dc73a7c7b05f48726af1a4931686ccef Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=2013c4e0dc73a7c7b05f48726af1a4931686ccef commit 2013c4e0dc73a7c7b05f48726af1a4931686ccef Author: Michael Tuexen AuthorDate: 2025-05-04 22:45:01 +0000 Commit: Michael Tuexen CommitDate: 2025-05-04 22:47:36 +0000 sctp: clear the SCTP_ADDR_VALID flag when removing an address This flag is currently not read, therefore the bug had no consequences. MFC after: 3 days --- sys/netinet/sctp_pcb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index 13d3b0a332f9..224f9c72d9ae 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -637,7 +637,7 @@ sctp_del_addr_from_vrf(uint32_t vrf_id, struct sockaddr *addr, } } SCTPDBG(SCTP_DEBUG_PCB4, "Deleting ifa %p\n", (void *)sctp_ifap); - sctp_ifap->localifa_flags &= SCTP_ADDR_VALID; + sctp_ifap->localifa_flags &= ~SCTP_ADDR_VALID; /* * We don't set the flag. This means that the structure will * hang around in EP's that have bound specific to it until From nobody Sun May 4 22:57:35 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 4ZrKmw1wmkz5vQlB; Sun, 04 May 2025 22:57: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 4ZrKmv5tdrz3cw7; Sun, 04 May 2025 22:57:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746399455; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xEDuj+vAmqwmeZyFkWIb72WOixr7fQ0EAikkznCFjIU=; b=wY4ktH7cclPXmaBAc3t9/+UWW2NiDlzuHXq00q2WHKGvJ4Zh/yYkkfhns3vdhYp6pUYIg0 J8ZUTd0M5m2Pxkp1DAC+ew5xupTbGJrYhgWBDVtp7/QrMcC5wv/4y4ykQdEBVfwDLv5Wxt aHriHMVyV+UG+1bf29b/rAEUUiOmo6BIl7eWJe5hlpa82OzmvJmzArvLL5lw38v7pp65nV 0tXvzcpYmmKlQMgQBRAZ8tKBGTrHl5FjUKsG4EwQNbqepxEZqq33aBwzlBJHlZhkaR2r++ YbCO5chylPSn/uhhHZSG8He1L6WlfBigPGs+dyPnwSoXQDtUtVCnlF5iEZfXRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746399455; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xEDuj+vAmqwmeZyFkWIb72WOixr7fQ0EAikkznCFjIU=; b=rg50e6/g86m4dhzro7J4igRGHj00IaOuevHbN/9ErPa77wpz5CD1TiolquzpQxDtJd0u4k J3EFPONS2dEmSn2sQyg+2pPJtbH5PuKCZg8k5xqF1nlZFOl7McUzpgYAQVjtzNrMiyTLF8 s/gMzeGnKUhEiZQIp9bA8iEwKr0Il6OCFzy5AxqmiPR+C+nKdlTAMxBe/Xp8jkLm/3v6J3 NkQBbCsETyauDWbgTFfAtNUIrCA23ULuTxQO11mHdkYjFEtPONfKj779sJBeAj4gFkb0p+ CgV8hRR2s8uVaep7S6PigG88w18CeuUo3z74agr5MS4b+T0soGsA/hI4DtdFpQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746399455; a=rsa-sha256; cv=none; b=uLjqkXTD3LPOyGhob7Cj3xKvPrD5vc1ogBW9WRAWl5e9kT+H6AV06kK1Qs9T4rbi7yWN4i i+XNZU4k9Wr0YfKq9giDHzdMlMqxgON61hpcGn4FRSPnDbW7NV8rg0BgLU1DXqm+e4OfgI 55v9sqmRExjaUoYPoTs7Z8d1u0PCDhon7yWEoG22TCMtHDGW5J9e6vxXdr8RrUDwqAKUOr W33cccQCcxBmud2f17IVQo9Nv/JctifKgbOapmVN4f0T6KhZr0pQ3uRyRtwuCMp8Sm8BUd ZoE1wxu9LLUoIY/AKlKLPhk2pJP8H0k9Ngg3ZfZ1369WNsVY6A9aCFmwzxUJAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrKmv5QcSzpY7; Sun, 04 May 2025 22:57: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 544MvZ5q018688; Sun, 4 May 2025 22:57:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MvZfh018682; Sun, 4 May 2025 22:57:35 GMT (envelope-from git) Date: Sun, 4 May 2025 22:57:35 GMT Message-Id: <202505042257.544MvZfh018682@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: 8ba4d145d351 - main - mt76: update Mediatek's mt76 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8ba4d145d351db26e07695b8e90697398c5dfec2 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=8ba4d145d351db26e07695b8e90697398c5dfec2 commit 8ba4d145d351db26e07695b8e90697398c5dfec2 Merge: 2013c4e0dc73 fbdea4ebdf0f Author: Bjoern A. Zeeb AuthorDate: 2025-05-02 11:27:19 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-05-04 22:55:08 +0000 mt76: update Mediatek's mt76 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 38fec10eb60d687e30c8c6b5420d86e8149f7557 ( tag: v6.14 ). Sponsored by: The FreeBSD Foundation .../common/include/linux/soc/mediatek/mtk_wed.h | 1 + sys/contrib/dev/mediatek/mt76/agg-rx.c | 2 +- sys/contrib/dev/mediatek/mt76/channel.c | 406 +++ sys/contrib/dev/mediatek/mt76/debugfs.c | 8 +- sys/contrib/dev/mediatek/mt76/dma.c | 336 +- sys/contrib/dev/mediatek/mt76/dma.h | 68 +- sys/contrib/dev/mediatek/mt76/eeprom.c | 58 +- sys/contrib/dev/mediatek/mt76/mac80211.c | 407 ++- sys/contrib/dev/mediatek/mt76/mcu.c | 23 + sys/contrib/dev/mediatek/mt76/mmio.c | 1 + sys/contrib/dev/mediatek/mt76/mt76.h | 354 +- sys/contrib/dev/mediatek/mt76/mt7603/beacon.c | 78 +- sys/contrib/dev/mediatek/mt76/mt7603/core.c | 2 + sys/contrib/dev/mediatek/mt76/mt7603/dma.c | 57 +- sys/contrib/dev/mediatek/mt76/mt7603/eeprom.c | 1 + sys/contrib/dev/mediatek/mt76/mt7603/init.c | 17 +- sys/contrib/dev/mediatek/mt76/mt7603/mac.c | 71 +- sys/contrib/dev/mediatek/mt76/mt7603/main.c | 54 +- sys/contrib/dev/mediatek/mt76/mt7603/mt7603.h | 5 +- sys/contrib/dev/mediatek/mt76/mt7603/regs.h | 5 + sys/contrib/dev/mediatek/mt76/mt7603/soc.c | 5 +- sys/contrib/dev/mediatek/mt76/mt7615/dma.c | 12 +- sys/contrib/dev/mediatek/mt76/mt7615/init.c | 10 +- sys/contrib/dev/mediatek/mt76/mt7615/mac.c | 14 +- sys/contrib/dev/mediatek/mt76/mt7615/main.c | 47 +- sys/contrib/dev/mediatek/mt76/mt7615/mcu.c | 36 +- sys/contrib/dev/mediatek/mt76/mt7615/mmio.c | 2 + sys/contrib/dev/mediatek/mt76/mt7615/mt7615.h | 5 +- sys/contrib/dev/mediatek/mt76/mt7615/pci.c | 20 +- sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c | 4 + sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c | 12 +- sys/contrib/dev/mediatek/mt76/mt7615/sdio.c | 8 +- sys/contrib/dev/mediatek/mt76/mt7615/sdio_mcu.c | 180 + sys/contrib/dev/mediatek/mt76/mt7615/soc.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7615/testmode.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/usb.c | 8 +- sys/contrib/dev/mediatek/mt76/mt7615/usb_mcu.c | 100 + sys/contrib/dev/mediatek/mt76/mt7615/usb_sdio.c | 5 + sys/contrib/dev/mediatek/mt76/mt76_connac.h | 33 +- sys/contrib/dev/mediatek/mt76/mt76_connac2_mac.h | 12 + sys/contrib/dev/mediatek/mt76/mt76_connac3_mac.c | 86 + sys/contrib/dev/mediatek/mt76/mt76_connac3_mac.h | 58 +- sys/contrib/dev/mediatek/mt76/mt76_connac_mac.c | 91 +- sys/contrib/dev/mediatek/mt76/mt76_connac_mcu.c | 369 +- sys/contrib/dev/mediatek/mt76/mt76_connac_mcu.h | 183 +- sys/contrib/dev/mediatek/mt76/mt76x0/pci.c | 16 +- sys/contrib/dev/mediatek/mt76/mt76x02_beacon.c | 8 +- sys/contrib/dev/mediatek/mt76/mt76x02_dfs.c | 4 +- sys/contrib/dev/mediatek/mt76/mt76x02_eeprom.c | 9 +- sys/contrib/dev/mediatek/mt76/mt76x02_mmio.c | 30 +- sys/contrib/dev/mediatek/mt76/mt76x02_usb_core.c | 18 +- sys/contrib/dev/mediatek/mt76/mt76x02_usb_mcu.c | 1 + sys/contrib/dev/mediatek/mt76/mt76x02_util.c | 6 +- sys/contrib/dev/mediatek/mt76/mt76x2/eeprom.c | 16 +- sys/contrib/dev/mediatek/mt76/mt76x2/mt76x2.h | 2 + sys/contrib/dev/mediatek/mt76/mt76x2/pci.c | 9 +- sys/contrib/dev/mediatek/mt76/mt76x2/pci_main.c | 31 +- sys/contrib/dev/mediatek/mt76/mt76x2/phy.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb.c | 3 + sys/contrib/dev/mediatek/mt76/mt76x2/usb_main.c | 31 +- sys/contrib/dev/mediatek/mt76/mt7915/Kconfig | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/debugfs.c | 9 +- sys/contrib/dev/mediatek/mt76/mt7915/dma.c | 48 +- sys/contrib/dev/mediatek/mt76/mt7915/eeprom.c | 53 +- sys/contrib/dev/mediatek/mt76/mt7915/eeprom.h | 50 +- sys/contrib/dev/mediatek/mt76/mt7915/init.c | 104 +- sys/contrib/dev/mediatek/mt76/mt7915/mac.c | 110 +- sys/contrib/dev/mediatek/mt76/mt7915/main.c | 280 +- sys/contrib/dev/mediatek/mt76/mt7915/mcu.c | 333 +- sys/contrib/dev/mediatek/mt76/mt7915/mcu.h | 28 +- sys/contrib/dev/mediatek/mt76/mt7915/mmio.c | 174 +- sys/contrib/dev/mediatek/mt76/mt7915/mt7915.h | 21 +- sys/contrib/dev/mediatek/mt76/mt7915/pci.c | 1 + sys/contrib/dev/mediatek/mt76/mt7915/regs.h | 8 + sys/contrib/dev/mediatek/mt76/mt7915/soc.c | 13 +- sys/contrib/dev/mediatek/mt76/mt7915/testmode.c | 6 +- sys/contrib/dev/mediatek/mt76/mt7921/init.c | 102 +- sys/contrib/dev/mediatek/mt76/mt7921/mac.c | 76 +- sys/contrib/dev/mediatek/mt76/mt7921/main.c | 430 ++- sys/contrib/dev/mediatek/mt76/mt7921/mcu.c | 322 +- sys/contrib/dev/mediatek/mt76/mt7921/mcu.h | 18 + sys/contrib/dev/mediatek/mt76/mt7921/mt7921.h | 39 +- sys/contrib/dev/mediatek/mt76/mt7921/pci.c | 69 +- sys/contrib/dev/mediatek/mt76/mt7921/pci_mac.c | 15 +- sys/contrib/dev/mediatek/mt76/mt7921/sdio.c | 16 +- sys/contrib/dev/mediatek/mt76/mt7921/sdio_mac.c | 5 +- sys/contrib/dev/mediatek/mt76/mt7921/sdio_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/usb.c | 23 +- sys/contrib/dev/mediatek/mt76/mt7925/Kconfig | 30 + sys/contrib/dev/mediatek/mt76/mt7925/Makefile | 9 + sys/contrib/dev/mediatek/mt76/mt7925/debugfs.c | 319 ++ sys/contrib/dev/mediatek/mt76/mt7925/init.c | 327 ++ sys/contrib/dev/mediatek/mt76/mt7925/mac.c | 1499 ++++++++ sys/contrib/dev/mediatek/mt76/mt7925/mac.h | 23 + sys/contrib/dev/mediatek/mt76/mt7925/main.c | 2209 ++++++++++++ sys/contrib/dev/mediatek/mt76/mt7925/mcu.c | 3597 ++++++++++++++++++++ sys/contrib/dev/mediatek/mt76/mt7925/mcu.h | 649 ++++ sys/contrib/dev/mediatek/mt76/mt7925/mt7925.h | 347 ++ sys/contrib/dev/mediatek/mt76/mt7925/pci.c | 625 ++++ sys/contrib/dev/mediatek/mt76/mt7925/pci_mac.c | 151 + sys/contrib/dev/mediatek/mt76/mt7925/pci_mcu.c | 53 + sys/contrib/dev/mediatek/mt76/mt7925/regs.h | 92 + sys/contrib/dev/mediatek/mt76/mt7925/usb.c | 343 ++ sys/contrib/dev/mediatek/mt76/mt792x.h | 175 +- sys/contrib/dev/mediatek/mt76/mt792x_acpi_sar.c | 83 +- sys/contrib/dev/mediatek/mt76/mt792x_acpi_sar.h | 2 + sys/contrib/dev/mediatek/mt76/mt792x_core.c | 189 +- sys/contrib/dev/mediatek/mt76/mt792x_dma.c | 60 +- sys/contrib/dev/mediatek/mt76/mt792x_mac.c | 10 +- sys/contrib/dev/mediatek/mt76/mt792x_regs.h | 8 + sys/contrib/dev/mediatek/mt76/mt792x_usb.c | 84 +- sys/contrib/dev/mediatek/mt76/mt7996/Kconfig | 2 +- sys/contrib/dev/mediatek/mt76/mt7996/debugfs.c | 160 +- sys/contrib/dev/mediatek/mt76/mt7996/dma.c | 401 ++- sys/contrib/dev/mediatek/mt76/mt7996/eeprom.c | 228 +- sys/contrib/dev/mediatek/mt76/mt7996/eeprom.h | 5 + sys/contrib/dev/mediatek/mt76/mt7996/init.c | 1017 +++++- sys/contrib/dev/mediatek/mt76/mt7996/mac.c | 493 ++- sys/contrib/dev/mediatek/mt76/mt7996/main.c | 1016 ++++-- sys/contrib/dev/mediatek/mt76/mt7996/mcu.c | 1502 ++++++-- sys/contrib/dev/mediatek/mt76/mt7996/mcu.h | 276 +- sys/contrib/dev/mediatek/mt76/mt7996/mmio.c | 380 ++- sys/contrib/dev/mediatek/mt76/mt7996/mt7996.h | 337 +- sys/contrib/dev/mediatek/mt76/mt7996/pci.c | 82 +- sys/contrib/dev/mediatek/mt76/mt7996/regs.h | 202 +- sys/contrib/dev/mediatek/mt76/pci.c | 23 + sys/contrib/dev/mediatek/mt76/scan.c | 168 + sys/contrib/dev/mediatek/mt76/sdio.c | 36 +- sys/contrib/dev/mediatek/mt76/sdio_txrx.c | 4 + sys/contrib/dev/mediatek/mt76/testmode.c | 2 +- sys/contrib/dev/mediatek/mt76/tx.c | 161 +- sys/contrib/dev/mediatek/mt76/usb.c | 63 +- sys/contrib/dev/mediatek/mt76/util.c | 11 +- sys/contrib/dev/mediatek/mt76/wed.c | 213 ++ sys/modules/mt76/Makefile | 1 + sys/modules/mt76/core/Makefile | 3 + sys/modules/mt76/mt7925/Makefile | 24 + 137 files changed, 20305 insertions(+), 3192 deletions(-) diff --cc sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h index 74038f0e7520,000000000000..903053e7f6e8 mode 100644,000000..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 @@@ -1,61 -1,0 +1,62 @@@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2022-2023 Bjoern A. Zeeb + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _LINUXKPI_LINUX_SOC_MEDIATEK_MTK_WED_H +#define _LINUXKPI_LINUX_SOC_MEDIATEK_MTK_WED_H + +struct mtk_wed_device { +}; + +#define WED_WO_STA_REC 0x6 + +#define mtk_wed_device_start(_dev, _mask) do { } while(0) +#define mtk_wed_device_detach(_dev) do { } while(0) +#define mtk_wed_device_irq_get(_dev, _mask) 0 +#define mtk_wed_device_irq_set_mask(_dev, _mask) do { } while(0) +#define mtk_wed_device_update_msg(_dev, _id, _msg, _len) (-ENODEV) +#define mtk_wed_device_dma_reset(_dev) do {} while (0) +#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) ++#define mtk_wed_device_setup_tc(_dev, _ndev, _type, _tdata) (-EOPNOTSUPP) + +static inline bool +mtk_wed_device_active(struct mtk_wed_device *dev __unused) +{ + + return (false); +} + +static inline bool +mtk_wed_get_rx_capa(struct mtk_wed_device *dev __unused) +{ + + return (false); +} + +#endif /* _LINUXKPI_LINUX_SOC_MEDIATEK_MTK_WED_H */ diff --cc sys/contrib/dev/mediatek/mt76/channel.c index 000000000000,6a35c6ebd823..6a35c6ebd823 mode 000000,100644..100644 --- a/sys/contrib/dev/mediatek/mt76/channel.c +++ b/sys/contrib/dev/mediatek/mt76/channel.c diff --cc sys/contrib/dev/mediatek/mt76/dma.c index eaa793e4b18e,000000000000..6765e1281ac3 mode 100644,000000..100644 --- a/sys/contrib/dev/mediatek/mt76/dma.c +++ b/sys/contrib/dev/mediatek/mt76/dma.c @@@ -1,1004 -1,0 +1,1066 @@@ +// SPDX-License-Identifier: ISC +/* + * Copyright (C) 2016 Felix Fietkau + */ + +#include +#if defined(__FreeBSD__) +#include +#include +#endif +#include "mt76.h" +#include "dma.h" + +#if IS_ENABLED(CONFIG_NET_MEDIATEK_SOC_WED) + - #define Q_READ(_dev, _q, _field) ({ \ ++#define Q_READ(_q, _field) ({ \ + u32 _offset = offsetof(struct mt76_queue_regs, _field); \ + u32 _val; \ + if ((_q)->flags & MT_QFLAG_WED) \ - _val = mtk_wed_device_reg_read(&(_dev)->mmio.wed, \ ++ _val = mtk_wed_device_reg_read((_q)->wed, \ + ((_q)->wed_regs + \ + _offset)); \ + else \ + _val = readl(&(_q)->regs->_field); \ + _val; \ +}) + - #define Q_WRITE(_dev, _q, _field, _val) do { \ ++#define Q_WRITE(_q, _field, _val) do { \ + u32 _offset = offsetof(struct mt76_queue_regs, _field); \ + if ((_q)->flags & MT_QFLAG_WED) \ - mtk_wed_device_reg_write(&(_dev)->mmio.wed, \ ++ mtk_wed_device_reg_write((_q)->wed, \ + ((_q)->wed_regs + _offset), \ + _val); \ + else \ + writel(_val, &(_q)->regs->_field); \ +} while (0) + +#else + - #define Q_READ(_dev, _q, _field) readl(&(_q)->regs->_field) - #define Q_WRITE(_dev, _q, _field, _val) writel(_val, &(_q)->regs->_field) ++#define Q_READ(_q, _field) readl(&(_q)->regs->_field) ++#define Q_WRITE(_q, _field, _val) writel(_val, &(_q)->regs->_field) + +#endif + +static struct mt76_txwi_cache * +mt76_alloc_txwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t; + dma_addr_t addr; + u8 *txwi; + int size; + + size = L1_CACHE_ALIGN(dev->drv->txwi_size + sizeof(*t)); + txwi = kzalloc(size, GFP_ATOMIC); + if (!txwi) + return NULL; + + addr = dma_map_single(dev->dma_dev, txwi, dev->drv->txwi_size, + DMA_TO_DEVICE); ++ if (unlikely(dma_mapping_error(dev->dma_dev, addr))) { ++ kfree(txwi); ++ return NULL; ++ } ++ + t = (struct mt76_txwi_cache *)(txwi + dev->drv->txwi_size); + t->dma_addr = addr; + + return t; +} + +static struct mt76_txwi_cache * +mt76_alloc_rxwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t; + + t = kzalloc(L1_CACHE_ALIGN(sizeof(*t)), GFP_ATOMIC); + if (!t) + return NULL; + + t->ptr = NULL; + return t; +} + +static struct mt76_txwi_cache * +__mt76_get_txwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t = NULL; + + spin_lock(&dev->lock); + if (!list_empty(&dev->txwi_cache)) { + t = list_first_entry(&dev->txwi_cache, struct mt76_txwi_cache, + list); + list_del(&t->list); + } + spin_unlock(&dev->lock); + + return t; +} + +static struct mt76_txwi_cache * +__mt76_get_rxwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t = NULL; + - spin_lock(&dev->wed_lock); ++ spin_lock_bh(&dev->wed_lock); + if (!list_empty(&dev->rxwi_cache)) { + t = list_first_entry(&dev->rxwi_cache, struct mt76_txwi_cache, + list); + list_del(&t->list); + } - spin_unlock(&dev->wed_lock); ++ spin_unlock_bh(&dev->wed_lock); + + return t; +} + +static struct mt76_txwi_cache * +mt76_get_txwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t = __mt76_get_txwi(dev); + + if (t) + return t; + + return mt76_alloc_txwi(dev); +} + +struct mt76_txwi_cache * +mt76_get_rxwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t = __mt76_get_rxwi(dev); + + if (t) + return t; + + return mt76_alloc_rxwi(dev); +} +EXPORT_SYMBOL_GPL(mt76_get_rxwi); + +void +mt76_put_txwi(struct mt76_dev *dev, struct mt76_txwi_cache *t) +{ + if (!t) + return; + + spin_lock(&dev->lock); + list_add(&t->list, &dev->txwi_cache); + spin_unlock(&dev->lock); +} +EXPORT_SYMBOL_GPL(mt76_put_txwi); + +void +mt76_put_rxwi(struct mt76_dev *dev, struct mt76_txwi_cache *t) +{ + if (!t) + return; + - spin_lock(&dev->wed_lock); ++ spin_lock_bh(&dev->wed_lock); + list_add(&t->list, &dev->rxwi_cache); - spin_unlock(&dev->wed_lock); ++ spin_unlock_bh(&dev->wed_lock); +} +EXPORT_SYMBOL_GPL(mt76_put_rxwi); + +static void +mt76_free_pending_txwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t; + + local_bh_disable(); + while ((t = __mt76_get_txwi(dev)) != NULL) { + dma_unmap_single(dev->dma_dev, t->dma_addr, dev->drv->txwi_size, + DMA_TO_DEVICE); + kfree(mt76_get_txwi_ptr(dev, t)); + } + local_bh_enable(); +} + +void +mt76_free_pending_rxwi(struct mt76_dev *dev) +{ + struct mt76_txwi_cache *t; + + local_bh_disable(); + while ((t = __mt76_get_rxwi(dev)) != NULL) { + if (t->ptr) + mt76_put_page_pool_buf(t->ptr, false); + kfree(t); + } + local_bh_enable(); +} +EXPORT_SYMBOL_GPL(mt76_free_pending_rxwi); + +static void +mt76_dma_sync_idx(struct mt76_dev *dev, struct mt76_queue *q) +{ - Q_WRITE(dev, q, desc_base, q->desc_dma); - Q_WRITE(dev, q, ring_size, q->ndesc); - q->head = Q_READ(dev, q, dma_idx); ++ Q_WRITE(q, desc_base, q->desc_dma); ++ if (q->flags & MT_QFLAG_WED_RRO_EN) ++ Q_WRITE(q, ring_size, MT_DMA_RRO_EN | q->ndesc); ++ else ++ Q_WRITE(q, ring_size, q->ndesc); ++ q->head = Q_READ(q, dma_idx); + q->tail = q->head; +} + - static void - mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q) ++void __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, ++ bool reset_idx) +{ - int i; - + if (!q || !q->ndesc) + return; + - /* clear descriptors */ - for (i = 0; i < q->ndesc; i++) - q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE); ++ if (!mt76_queue_is_wed_rro_ind(q)) { ++ int i; ++ ++ /* clear descriptors */ ++ for (i = 0; i < q->ndesc; i++) ++ q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE); ++ } + - Q_WRITE(dev, q, cpu_idx, 0); - Q_WRITE(dev, q, dma_idx, 0); ++ if (reset_idx) { ++ Q_WRITE(q, cpu_idx, 0); ++ Q_WRITE(q, dma_idx, 0); ++ } + mt76_dma_sync_idx(dev, q); +} + ++void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q) ++{ ++ __mt76_dma_queue_reset(dev, q, true); ++} ++ +static int +mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q, + struct mt76_queue_buf *buf, void *data) +{ - struct mt76_desc *desc = &q->desc[q->head]; + struct mt76_queue_entry *entry = &q->entry[q->head]; + struct mt76_txwi_cache *txwi = NULL; - u32 buf1 = 0, ctrl; ++ struct mt76_desc *desc; + int idx = q->head; ++ u32 buf1 = 0, ctrl; + int rx_token; + ++ if (mt76_queue_is_wed_rro_ind(q)) { ++ struct mt76_wed_rro_desc *rro_desc; ++ ++ rro_desc = (struct mt76_wed_rro_desc *)q->desc; ++ data = &rro_desc[q->head]; ++ goto done; ++ } ++ ++ desc = &q->desc[q->head]; + ctrl = FIELD_PREP(MT_DMA_CTL_SD_LEN0, buf[0].len); ++#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT ++ buf1 = FIELD_PREP(MT_DMA_CTL_SDP0_H, buf->addr >> 32); ++#endif + + if (mt76_queue_is_wed_rx(q)) { + txwi = mt76_get_rxwi(dev); + if (!txwi) + return -ENOMEM; + + rx_token = mt76_rx_token_consume(dev, data, txwi, buf->addr); + if (rx_token < 0) { + mt76_put_rxwi(dev, txwi); + return -ENOMEM; + } + + buf1 |= FIELD_PREP(MT_DMA_CTL_TOKEN, rx_token); + ctrl |= MT_DMA_CTL_TO_HOST; + } + + WRITE_ONCE(desc->buf0, cpu_to_le32(buf->addr)); + WRITE_ONCE(desc->buf1, cpu_to_le32(buf1)); + WRITE_ONCE(desc->ctrl, cpu_to_le32(ctrl)); + WRITE_ONCE(desc->info, 0); + ++done: + entry->dma_addr[0] = buf->addr; + entry->dma_len[0] = buf->len; + entry->txwi = txwi; + entry->buf = data; + entry->wcid = 0xffff; + entry->skip_buf1 = true; + q->head = (q->head + 1) % q->ndesc; + q->queued++; + + return idx; +} + +static int +mt76_dma_add_buf(struct mt76_dev *dev, struct mt76_queue *q, + struct mt76_queue_buf *buf, int nbufs, u32 info, + struct sk_buff *skb, void *txwi) +{ + struct mt76_queue_entry *entry; + struct mt76_desc *desc; + int i, idx = -1; + u32 ctrl, next; + + if (txwi) { + q->entry[q->head].txwi = DMA_DUMMY_DATA; + q->entry[q->head].skip_buf0 = true; + } + + for (i = 0; i < nbufs; i += 2, buf += 2) { + u32 buf0 = buf[0].addr, buf1 = 0; + + idx = q->head; + next = (q->head + 1) % q->ndesc; + + desc = &q->desc[idx]; + entry = &q->entry[idx]; + + if (buf[0].skip_unmap) + entry->skip_buf0 = true; + entry->skip_buf1 = i == nbufs - 1; + + entry->dma_addr[0] = buf[0].addr; + entry->dma_len[0] = buf[0].len; + + ctrl = FIELD_PREP(MT_DMA_CTL_SD_LEN0, buf[0].len); ++#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT ++ info |= FIELD_PREP(MT_DMA_CTL_SDP0_H, buf[0].addr >> 32); ++#endif + if (i < nbufs - 1) { + entry->dma_addr[1] = buf[1].addr; + entry->dma_len[1] = buf[1].len; + buf1 = buf[1].addr; + ctrl |= FIELD_PREP(MT_DMA_CTL_SD_LEN1, buf[1].len); ++#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT ++ info |= FIELD_PREP(MT_DMA_CTL_SDP1_H, ++ buf[1].addr >> 32); ++#endif + if (buf[1].skip_unmap) + entry->skip_buf1 = true; + } + + if (i == nbufs - 1) + ctrl |= MT_DMA_CTL_LAST_SEC0; + else if (i == nbufs - 2) + ctrl |= MT_DMA_CTL_LAST_SEC1; + + WRITE_ONCE(desc->buf0, cpu_to_le32(buf0)); + WRITE_ONCE(desc->buf1, cpu_to_le32(buf1)); + WRITE_ONCE(desc->info, cpu_to_le32(info)); + WRITE_ONCE(desc->ctrl, cpu_to_le32(ctrl)); + + q->head = next; + q->queued++; + } + + q->entry[idx].txwi = txwi; + q->entry[idx].skb = skb; + q->entry[idx].wcid = 0xffff; + + return idx; +} + +static void +mt76_dma_tx_cleanup_idx(struct mt76_dev *dev, struct mt76_queue *q, int idx, + struct mt76_queue_entry *prev_e) +{ + struct mt76_queue_entry *e = &q->entry[idx]; + + if (!e->skip_buf0) + dma_unmap_single(dev->dma_dev, e->dma_addr[0], e->dma_len[0], + DMA_TO_DEVICE); + + if (!e->skip_buf1) + dma_unmap_single(dev->dma_dev, e->dma_addr[1], e->dma_len[1], + DMA_TO_DEVICE); + + if (e->txwi == DMA_DUMMY_DATA) + e->txwi = NULL; + - if (e->skb == DMA_DUMMY_DATA) - e->skb = NULL; - + *prev_e = *e; + memset(e, 0, sizeof(*e)); +} + +static void +mt76_dma_kick_queue(struct mt76_dev *dev, struct mt76_queue *q) +{ + wmb(); - Q_WRITE(dev, q, cpu_idx, q->head); ++ Q_WRITE(q, cpu_idx, q->head); +} + +static void +mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush) +{ + struct mt76_queue_entry entry; + int last; + + if (!q || !q->ndesc) + return; + + spin_lock_bh(&q->cleanup_lock); + if (flush) + last = -1; + else - last = Q_READ(dev, q, dma_idx); ++ last = Q_READ(q, dma_idx); + + while (q->queued > 0 && q->tail != last) { + mt76_dma_tx_cleanup_idx(dev, q, q->tail, &entry); + mt76_queue_tx_complete(dev, q, &entry); + + if (entry.txwi) { + if (!(dev->drv->drv_flags & MT_DRV_TXWI_NO_FREE)) + mt76_put_txwi(dev, entry.txwi); + } + + if (!flush && q->tail == last) - last = Q_READ(dev, q, dma_idx); ++ last = Q_READ(q, dma_idx); + } + spin_unlock_bh(&q->cleanup_lock); + + if (flush) { + spin_lock_bh(&q->lock); + mt76_dma_sync_idx(dev, q); + mt76_dma_kick_queue(dev, q); + spin_unlock_bh(&q->lock); + } + + if (!q->queued) + wake_up(&dev->tx_wait); +} + +static void * +mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx, + int *len, u32 *info, bool *more, bool *drop) +{ + struct mt76_queue_entry *e = &q->entry[idx]; + struct mt76_desc *desc = &q->desc[idx]; - void *buf; ++ u32 ctrl, desc_info, buf1; ++ void *buf = e->buf; ++ ++ if (mt76_queue_is_wed_rro_ind(q)) ++ goto done; + ++ ctrl = le32_to_cpu(READ_ONCE(desc->ctrl)); + if (len) { - u32 ctrl = le32_to_cpu(READ_ONCE(desc->ctrl)); + *len = FIELD_GET(MT_DMA_CTL_SD_LEN0, ctrl); + *more = !(ctrl & MT_DMA_CTL_LAST_SEC0); + } + ++ desc_info = le32_to_cpu(desc->info); + if (info) - *info = le32_to_cpu(desc->info); ++ *info = desc_info; ++ ++ buf1 = le32_to_cpu(desc->buf1); ++ mt76_dma_should_drop_buf(drop, ctrl, buf1, desc_info); + + if (mt76_queue_is_wed_rx(q)) { - u32 buf1 = le32_to_cpu(desc->buf1); + u32 token = FIELD_GET(MT_DMA_CTL_TOKEN, buf1); + struct mt76_txwi_cache *t = mt76_rx_token_release(dev, token); + + if (!t) + return NULL; + + dma_sync_single_for_cpu(dev->dma_dev, t->dma_addr, + SKB_WITH_OVERHEAD(q->buf_size), + page_pool_get_dma_dir(q->page_pool)); + + buf = t->ptr; + t->dma_addr = 0; + t->ptr = NULL; + + mt76_put_rxwi(dev, t); - - if (drop) { - u32 ctrl = le32_to_cpu(READ_ONCE(desc->ctrl)); - - *drop = !!(ctrl & (MT_DMA_CTL_TO_HOST_A | - MT_DMA_CTL_DROP)); - ++ if (drop) + *drop |= !!(buf1 & MT_DMA_CTL_WO_DROP); - } + } else { - buf = e->buf; - e->buf = NULL; + dma_sync_single_for_cpu(dev->dma_dev, e->dma_addr[0], + SKB_WITH_OVERHEAD(q->buf_size), + page_pool_get_dma_dir(q->page_pool)); + } + ++done: ++ e->buf = NULL; + return buf; +} + +static void * +mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush, + int *len, u32 *info, bool *more, bool *drop) +{ + int idx = q->tail; + + *more = false; + if (!q->queued) + return NULL; + - if (flush) - q->desc[idx].ctrl |= cpu_to_le32(MT_DMA_CTL_DMA_DONE); - else if (!(q->desc[idx].ctrl & cpu_to_le32(MT_DMA_CTL_DMA_DONE))) ++ if (mt76_queue_is_wed_rro_data(q)) + return NULL; + ++ if (!mt76_queue_is_wed_rro_ind(q)) { ++ if (flush) ++ q->desc[idx].ctrl |= cpu_to_le32(MT_DMA_CTL_DMA_DONE); ++ else if (!(q->desc[idx].ctrl & cpu_to_le32(MT_DMA_CTL_DMA_DONE))) ++ return NULL; ++ } ++ + q->tail = (q->tail + 1) % q->ndesc; + q->queued--; + + return mt76_dma_get_buf(dev, q, idx, len, info, more, drop); +} + +static int +mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q, + struct sk_buff *skb, u32 tx_info) +{ + struct mt76_queue_buf buf = {}; + dma_addr_t addr; + + if (test_bit(MT76_MCU_RESET, &dev->phy.state)) + goto error; + + if (q->queued + 1 >= q->ndesc - 1) + goto error; + + addr = dma_map_single(dev->dma_dev, skb->data, skb->len, + DMA_TO_DEVICE); + if (unlikely(dma_mapping_error(dev->dma_dev, addr))) + goto error; + + buf.addr = addr; + buf.len = skb->len; + + spin_lock_bh(&q->lock); + mt76_dma_add_buf(dev, q, &buf, 1, tx_info, skb, NULL); + mt76_dma_kick_queue(dev, q); + spin_unlock_bh(&q->lock); + + return 0; + +error: + dev_kfree_skb(skb); + return -ENOMEM; +} + +static int - mt76_dma_tx_queue_skb(struct mt76_dev *dev, struct mt76_queue *q, ++mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q, + enum mt76_txq_id qid, struct sk_buff *skb, + struct mt76_wcid *wcid, struct ieee80211_sta *sta) +{ + struct ieee80211_tx_status status = { + .sta = sta, + }; + struct mt76_tx_info tx_info = { + .skb = skb, + }; ++ struct mt76_dev *dev = phy->dev; + struct ieee80211_hw *hw; + int len, n = 0, ret = -ENOMEM; + struct mt76_txwi_cache *t; + struct sk_buff *iter; + dma_addr_t addr; + u8 *txwi; + - if (test_bit(MT76_RESET, &dev->phy.state)) ++ if (test_bit(MT76_RESET, &phy->state)) + goto free_skb; + + t = mt76_get_txwi(dev); + if (!t) + goto free_skb; + + txwi = mt76_get_txwi_ptr(dev, t); + + skb->prev = skb->next = NULL; + if (dev->drv->drv_flags & MT_DRV_TX_ALIGNED4_SKBS) + mt76_insert_hdr_pad(skb); + + len = skb_headlen(skb); + addr = dma_map_single(dev->dma_dev, skb->data, len, DMA_TO_DEVICE); + if (unlikely(dma_mapping_error(dev->dma_dev, addr))) + goto free; + + tx_info.buf[n].addr = t->dma_addr; + tx_info.buf[n++].len = dev->drv->txwi_size; + tx_info.buf[n].addr = addr; + tx_info.buf[n++].len = len; + + skb_walk_frags(skb, iter) { + if (n == ARRAY_SIZE(tx_info.buf)) + goto unmap; + + addr = dma_map_single(dev->dma_dev, iter->data, iter->len, + DMA_TO_DEVICE); + if (unlikely(dma_mapping_error(dev->dma_dev, addr))) + goto unmap; + + tx_info.buf[n].addr = addr; + tx_info.buf[n++].len = iter->len; + } + tx_info.nbuf = n; + + if (q->queued + (tx_info.nbuf + 1) / 2 >= q->ndesc - 1) { + ret = -ENOMEM; + goto unmap; + } + + dma_sync_single_for_cpu(dev->dma_dev, t->dma_addr, dev->drv->txwi_size, + DMA_TO_DEVICE); + ret = dev->drv->tx_prepare_skb(dev, txwi, qid, wcid, sta, &tx_info); + dma_sync_single_for_device(dev->dma_dev, t->dma_addr, dev->drv->txwi_size, + DMA_TO_DEVICE); + if (ret < 0) + goto unmap; + + return mt76_dma_add_buf(dev, q, tx_info.buf, tx_info.nbuf, + tx_info.info, tx_info.skb, t); + +unmap: + for (n--; n > 0; n--) + dma_unmap_single(dev->dma_dev, tx_info.buf[n].addr, + tx_info.buf[n].len, DMA_TO_DEVICE); + +free: +#ifdef CONFIG_NL80211_TESTMODE + /* fix tx_done accounting on queue overflow */ + if (mt76_is_testmode_skb(dev, skb, &hw)) { + struct mt76_phy *phy = hw->priv; + + if (tx_info.skb == phy->test.tx_skb) + phy->test.tx_done--; + } +#endif + + mt76_put_txwi(dev, t); + +free_skb: + status.skb = tx_info.skb; + hw = mt76_tx_status_get_hw(dev, tx_info.skb); + spin_lock_bh(&dev->rx_lock); + ieee80211_tx_status_ext(hw, &status); + spin_unlock_bh(&dev->rx_lock); + + return ret; +} + +static int - mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q, - bool allow_direct) ++mt76_dma_rx_fill_buf(struct mt76_dev *dev, struct mt76_queue *q, ++ bool allow_direct) +{ + int len = SKB_WITH_OVERHEAD(q->buf_size); + int frames = 0; + + if (!q->ndesc) + return 0; + - spin_lock_bh(&q->lock); - + while (q->queued < q->ndesc - 1) { ++ struct mt76_queue_buf qbuf = {}; + enum dma_data_direction dir; - struct mt76_queue_buf qbuf; + dma_addr_t addr; + int offset; - void *buf; ++ void *buf = NULL; ++ ++ if (mt76_queue_is_wed_rro_ind(q)) ++ goto done; + + buf = mt76_get_page_pool_buf(q, &offset, q->buf_size); + if (!buf) + break; + + addr = page_pool_get_dma_addr(virt_to_head_page(buf)) + offset; + dir = page_pool_get_dma_dir(q->page_pool); + dma_sync_single_for_device(dev->dma_dev, addr, len, dir); + + qbuf.addr = addr + q->buf_offset; ++done: + qbuf.len = len - q->buf_offset; + qbuf.skip_unmap = false; + if (mt76_dma_add_rx_buf(dev, q, &qbuf, buf) < 0) { + mt76_put_page_pool_buf(buf, allow_direct); + break; + } + frames++; + } + - if (frames) ++ if (frames || mt76_queue_is_wed_rx(q)) + mt76_dma_kick_queue(dev, q); + - spin_unlock_bh(&q->lock); - + return frames; +} + - int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset) ++int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q, ++ bool allow_direct) +{ - #ifdef CONFIG_NET_MEDIATEK_SOC_WED - struct mtk_wed_device *wed = &dev->mmio.wed; - int ret, type, ring; - u8 flags; ++ int frames; *** 40955 LINES SKIPPED *** From nobody Sun May 4 22:42:27 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 4ZrKtP6YcWz5vQh0; Sun, 04 May 2025 23:02:21 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from www541.your-server.de (www541.your-server.de [213.133.107.7]) (using TLSv1.3 with cipher TLS_AES_256_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 4ZrKtN2wf1z3h5q; Sun, 04 May 2025 23:02:20 +0000 (UTC) (envelope-from mm@FreeBSD.org) Authentication-Results: mx1.freebsd.org; dkim=none; spf=softfail (mx1.freebsd.org: 213.133.107.7 is neither permitted nor denied by domain of mm@FreeBSD.org) smtp.mailfrom=mm@FreeBSD.org; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=freebsd.org (policy=none) Received: from sslproxy06.your-server.de ([78.46.172.3]) by www541.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1uBi2W-0004zt-1P; Mon, 05 May 2025 00:42:29 +0200 Received: from [188.167.204.158] (helo=[10.0.9.101]) by sslproxy06.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uBi2V-000G4C-0X; Mon, 05 May 2025 00:42:28 +0200 Message-ID: Date: Mon, 5 May 2025 00:42:27 +0200 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: 071ab5a1f3cb - main - zfs: merge openzfs/zfs@246e5883b To: Colin Percival , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202505042208.544M87gP024481@gitrepo.freebsd.org> <010001969d620e6b-dc680bf3-8f87-475f-8297-5f03515a1bf2-000000@email.amazonses.com> Content-Language: en-US From: Martin Matuska Autocrypt: addr=mm@FreeBSD.org; keydata= xsDNBGOTSakBDADYnE8uP/uR+viUTGNdMG8tWtoopvEEACFOwqx6NPb9sXvip5z20ochmO+j NqbV+OiS/6gjpd2f2fmJ241ooqbqZrWklabohbr2ros25bmi1C/77FEKsGulay334p1LXPxQ A3kjEQSINMresnt8FYCO5q50VHgmnhSNaom8jPAy9S06fWqPyXAXoJ53hwzYN6Bgb2CnU5FT wC9O4v5sI4wjQYq5JC9cbl1hM5PzC5bIse79l5NqYTsSuSY2RhOQ7w6L6V295l7C6TPkPBcq kg4Q+AYzdTTZagMN9NcchembtR/aMbuExg1PiUMdPOu99uW605XikwwYTy0ZGlz7GZE9Ecpo BaoSX5m3haM5k59e5839YtnCVbS0XOLCDp8uPMbLElGsLH6J1f1RxxV+h4r6ZypDSC0vTi54 qI1nxsdJm1n21iwQ0zP77oLUaIc+Nb0Mmh61+YFPLMgeHlfEsnsYzTWJU/tt6rlFFECKSlBG kiIXy1IeyKx2D+OlCZJ7FQMAEQEAAc0fTWFydGluIE1hdHVza2EgPG1tQEZyZWVCU0Qub3Jn PsLBFAQTAQoAPhYhBNssfPG0wmX671bj/FhIoYuPFBhLBQJjk0mpAhsDBQkFo5qABQsJCAcC BhUKCQgLAgQWAgMBAh4BAheAAAoJEFhIoYuPFBhLbPkMAM3tMymnbjprFzY1hhPOYczWI3f0 QREf+BdPt2X5325j2LV09mu3O4uiH/JBfzPc/9Z5HZzNJFaGTGpnhHrihiI6rZUDVon1CikU oiIMDWbNOMO+4WK6FVHTjziDFd/g3ql5WESgZm9SEtpHWfgvnKQAbAovKrA5CrAr8FePENKA zjlsJaEiYTrK7HrI2s5hMZkDQixFKFGgNuZe89k8HEy9ARrxGfMj1CrFtlHXts0K3hVFhdRS kPW8BxwlwuXVQYrXY5Ih6+5R2/XtjTkNrgg6EYfP11eyiN4Vfi5LuHUmwZkVXg7tfJWmcXmr Cpi6Q39JxiDZAkiSb8izebYBXHnzGHa3CgV8F7DqogO2e5a3MqUio6UVJPmeFIJogCgaJUMS KxcxjVl99Qmy6Boorpy58LDXp1T0Lcp7PhNqnmPW+Qh0/KUvuLrfWDtSc2+mL/llrEAHfIHT QbQsqpNEaOpEBpecIO5cDz1ussX/AurCw5E7DoHWJD87IOFM9LTPqM7AzQRjk0mpAQwAuz9d wJX5d7fhMD945bJDhB6ps0x2M0HFdbeClqkIbmkwq2Ws396XJhM8kd5qzrdVZZjJYSGl9vni AhLJk6uTBTZLqRG01LDh0AMsNsyN9yUH4QwqQXeui+GUHPnjzc8LkNvDgpUi9k+B1ZsDNQRE F7Jc6U3afkRCNwpym4CVeWBHhm032fU+jlKALKMlu58gHECGj4SbVChf6Gd7h4Z8p/yjx94d sqJsGog2PnwakLPKjIMNDg1X6BHFTcBHzmnaM0mtKsUQuHtmcctNC8TUP1v8NGFEcOyFNFOI BUcauUK+EhAvU2ew6qplTPjO/TcKw/Mw1++DGXDyu+3VIgBl5wIv3HPo/nNVvSy9Wrz1JztL kBjvFDtiEx/5+4baKGkkUwAQEALKlyqcuPSl0bVxmK93Hs/DgZ3+xqDm5SJGP6bI/M6jkul9 tTxpyYYSh6Z1k6w7Vc7UAEkU6FcdjpzIuAPGTuxC+eU7a1O7Wq/A/MpKvRdfox+pSC0fCQQt KcRVABEBAAHCwPwEGAEKACYWIQTbLHzxtMJl+u9W4/xYSKGLjxQYSwUCY5NJqQIbDAUJBaOa gAAKCRBYSKGLjxQYS04fC/4uG3TaACwvF2qgyzmAGEL+NjYowmHH+OuEJ4i91lYBmIEn3CyW omRuHAXq023/HUFjylqbiPl6cuQsJbLKnfCbRBaIkwTQ3f603lAwWk7mQxsXKAIIhdI536R+ sDXEV9C3zjQtNXWvO+n5hbxJgEWNa1qdbgrj0Ltx7Bpxltj7PCxZn8VXVtsRkacHuUvSGLA6 Jd+ObGDR9WUSMvLtu3/ynEnrDjBCybvxriXcPY6jW7H3spxv7KYm8AGYbtctz3S4tskUGJJv HFtVxu8fHnmQa0TO2035jMm45MOBcegVcvjAxOzJWWTMLDWb+pa5brw87tG1daXgLVpror/E LaOCIVPwjCmmQQg15vaUjL3qLI48oP43OhwcEJxvHhZ/3Je57zHwGm2vk/O/UbjbbJEu/g30 d1vd9IAuzUUKNUkW6i/cU+OkrPpiHJjS8uM81xip6FCmG0WzStrz46S6lw0GIBiw9SUwaEVB qQ/GkSXj8gzl2fLRiu1O5gkB2sgdcMs= Cc: Warner Losh In-Reply-To: <010001969d620e6b-dc680bf3-8f87-475f-8297-5f03515a1bf2-000000@email.amazonses.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Authenticated-Sender: martin@matuska.de X-Virus-Scanned: Clear (ClamAV 1.0.7/27628/Sun May 4 10:34:32 2025) X-Rspamd-Queue-Id: 4ZrKtN2wf1z3h5q X-Spamd-Bar: / X-Spamd-Result: default: False [0.85 / 15.00]; NEURAL_SPAM_MEDIUM(1.00)[0.995]; NEURAL_HAM_SHORT(-0.97)[-0.974]; NEURAL_SPAM_LONG(0.82)[0.825]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : No valid SPF, No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; ASN(0.00)[asn:24940, ipnet:213.133.96.0/19, country:DE]; FREEFALL_USER(0.00)[mm]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; HAS_X_AS(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; R_DKIM_NA(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all:c]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org]; RCVD_TLS_ALL(0.00)[] I am sorry but FreeBSD 14 tracks OpenZFS 2.2 which may roll out a 2.2.8 at some point, but definitely not in time for 14.3 FreeBSD-CURRENT tracks OpenZFS-master. In the meantime there was a OpenZFS 2.3 release, that is not tracked by any of our branches. Users can install OpenZFS 2.3.2 from ports, which I maintain. Cheers, mm P.S: I should rather look into updating libarchive with all its fixed CVEs not yet backported to FreeBSD ... On 5. 5. 2025 0:19, Colin Percival wrote: > Is there anything in here which wants to land in 14.3? > > Colin Percival > > On 5/4/25 15:08, Martin Matuska wrote: >> The branch main has been updated by mm: >> >> URL: >> https://cgit.FreeBSD.org/src/commit/?id=071ab5a1f3cbfd29c8fbec27f7e619418adaf074 >> >> commit 071ab5a1f3cbfd29c8fbec27f7e619418adaf074 >> Merge: f61844833ee8 246e5883bb5b >> Author:     Martin Matuska >> AuthorDate: 2025-05-04 22:05:28 +0000 >> Commit:     Martin Matuska >> CommitDate: 2025-05-04 22:05:28 +0000 >> >>      zfs: merge openzfs/zfs@246e5883b >>           Notable upstream pull request merges: >>       #17111 246e5883b Implement allocation size ranges and use for >> gang leaves >>       #17123 5f5321eff Handle interaction between gang blocks, >> copies, and FDT >>       #17130 -multiple Implement default user/group/project quotas >>       #17164 301da593a Fix lock reversal on device removal cancel >>       #17183 367d34b3a Fix dspace underflow bug >>       #17187 30cc2331f zed: Ensure spare activation after >> kernel-initiated device >>                        removal >>       #17191 11ca12dbd simd_powerpc.h: enable FPU on FreeBSD >>       #17192 5b29e70ae Remove mg_allocators >>       #17204 a497c5fc8 Improve L2 caching control for prefetched >> indirects >>       #17205 b14b3e398 Fix FDT rollback to not overwrite unnecessary >> fields >>       #17206 7be9fa259 Fix nonrot property being incorrectly unset >>       #17208 09fc7bb47 Fix memory leaks in pool properties handling >>            #17213 78a7c78bd Added fix for zpool get state segfaults >> with two or more >>                        vdevs >>       #17228 131df3bbf vdev_to_nvlist_iter: ignore draid parameters >> when matching >>                        names >>       #17231 f40ab9e39 Fix double spares for failed vdev >>       #17264 27f3d9494 Sort the blocking snapshots lis >>       #17269 f86d9af16 Fix race between resilver wait and offline/detach >>       #17273 c8fa39b46 cred: properly pass and test creds on other >> threads >>       #17284 a7de203c8 txg: generalise txg_wait_synced_sig() to >>                        txg_wait_synced_flags() >>           Obtained from:  OpenZFS >>      OpenZFS commit: 246e5883bb5b8e09b1a4213f7b1704b5a9ed5568 >> >>   .../.github/workflows/scripts/generate-ci-type.py  |   1 + >>   .../.github/workflows/scripts/qemu-1-setup.sh      |  44 +--- >>   .../.github/workflows/scripts/qemu-2-start.sh      |  51 ++++- >>   .../.github/workflows/scripts/qemu-3-deps-vm.sh    |   4 + >>   .../.github/workflows/scripts/qemu-5-setup.sh      |  34 ++- >>   .../.github/workflows/scripts/qemu-6-tests.sh      |  15 +- >>   .../.github/workflows/scripts/qemu-7-prepare.sh    |   4 +- >>   .../.github/workflows/scripts/qemu-8-summary.sh    |   2 +- >>   .../.github/workflows/zfs-qemu-packages.yml        |   2 +- >>   sys/contrib/openzfs/.github/workflows/zfs-qemu.yml |   4 +- >>   sys/contrib/openzfs/cmd/zed/agents/zfs_retire.c    |  19 +- >>   sys/contrib/openzfs/cmd/zed/zed.d/zed-functions.sh |   5 + >>   sys/contrib/openzfs/cmd/zfs/zfs_main.c             |  13 +- >>   sys/contrib/openzfs/cmd/zinject/zinject.c          |  20 +- >>   .../openzfs/cmd/zpool/os/linux/zpool_vdev_os.c     |   3 +- >>   sys/contrib/openzfs/cmd/zpool/zpool_main.c         |   8 +- >>   .../openzfs/config/kernel-vfs-migratepage.m4       |  27 +++ >>   sys/contrib/openzfs/config/kernel.m4               |  65 ++++-- >>   sys/contrib/openzfs/config/user-libunwind.m4       |  16 ++ >>   sys/contrib/openzfs/contrib/debian/control         |   1 + >>   .../contrib/initramfs/scripts/local-top/zfs        |   4 +- >>   sys/contrib/openzfs/include/libzfs.h               |   2 +- >>   .../openzfs/include/os/freebsd/spl/sys/debug.h     |  71 +++---- >>   .../openzfs/include/os/freebsd/spl/sys/policy.h    |   1 - >>   .../include/os/freebsd/spl/sys/simd_powerpc.h      |   4 +- >>   .../include/os/freebsd/zfs/sys/zfs_vfsops_os.h     |   8 + >>   .../openzfs/include/os/linux/spl/sys/debug.h       |  67 +++--- >>   .../openzfs/include/os/linux/zfs/sys/policy.h      |   1 - >>   .../include/os/linux/zfs/sys/zfs_vfsops_os.h       |   8 + >>   sys/contrib/openzfs/include/sys/ddt.h              |   4 + >>   sys/contrib/openzfs/include/sys/dmu_recv.h         |   1 - >>   sys/contrib/openzfs/include/sys/dsl_dataset.h      |   4 +- >>   sys/contrib/openzfs/include/sys/dsl_dir.h          |   4 +- >>   sys/contrib/openzfs/include/sys/fs/zfs.h           |   6 + >>   sys/contrib/openzfs/include/sys/metaslab.h         |  10 +- >>   sys/contrib/openzfs/include/sys/metaslab_impl.h    |   1 - >>   sys/contrib/openzfs/include/sys/nvpair.h           |   2 + >>   sys/contrib/openzfs/include/sys/spa.h              |   3 +- >>   sys/contrib/openzfs/include/sys/txg.h              |  23 +- >>   sys/contrib/openzfs/include/sys/vdev.h             |   3 + >>   sys/contrib/openzfs/include/sys/vdev_draid.h       |   2 +- >>   sys/contrib/openzfs/include/sys/vdev_impl.h        |   4 +- >>   sys/contrib/openzfs/include/sys/zcp.h              |   1 - >>   sys/contrib/openzfs/include/sys/zfs_context.h      |   4 +- >>   sys/contrib/openzfs/include/sys/zfs_debug.h        |  20 ++ >>   sys/contrib/openzfs/include/sys/zfs_quota.h        |   2 +- >>   sys/contrib/openzfs/include/sys/zio.h              |   1 + >>   sys/contrib/openzfs/lib/libnvpair/libnvpair.abi    |  40 ++-- >>   sys/contrib/openzfs/lib/libnvpair/libnvpair.c      | 181 >> +++------------- >>   sys/contrib/openzfs/lib/libspl/backtrace.c         |  66 ++++-- >>   sys/contrib/openzfs/lib/libspl/include/assert.h    |  65 +++--- >>   sys/contrib/openzfs/lib/libuutil/libuutil.abi      |  45 +--- >>   sys/contrib/openzfs/lib/libzfs/libzfs.abi          | 133 ++++++------ >>   sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c    |  60 ++++-- >>   sys/contrib/openzfs/lib/libzfs/libzfs_iter.c       |   2 +- >>   sys/contrib/openzfs/lib/libzfs/libzfs_pool.c       |  15 +- >>   .../openzfs/lib/libzfs_core/libzfs_core.abi        |  77 +++---- >>   .../openzfs/lib/libzfsbootenv/libzfsbootenv.abi    |   2 +- >>   sys/contrib/openzfs/lib/libzpool/Makefile.am       |   1 + >>   sys/contrib/openzfs/lib/libzpool/kernel.c          |   7 - >>   sys/contrib/openzfs/man/man7/zfsprops.7            |  36 ++++ >>   sys/contrib/openzfs/man/man8/zfs-rollback.8        |   4 +- >>   sys/contrib/openzfs/module/Kbuild.in               |   1 + >>   sys/contrib/openzfs/module/Makefile.bsd            |  16 +- >>   sys/contrib/openzfs/module/nvpair/nvpair.c         | 236 >> +++++++++++++++++++++ >>   .../openzfs/module/os/freebsd/spl/spl_policy.c     |   7 - >>   .../openzfs/module/os/freebsd/zfs/vdev_geom.c      |   3 +- >>   .../openzfs/module/os/freebsd/zfs/zfs_vfsops.c     | 122 +++++++++-- >>   .../openzfs/module/os/linux/spl/spl-kstat.c        |   5 +- >>   sys/contrib/openzfs/module/os/linux/zfs/abd_os.c   |   2 + >>   sys/contrib/openzfs/module/os/linux/zfs/policy.c   |  44 ++-- >>   .../openzfs/module/os/linux/zfs/vdev_disk.c        |   3 +- >>   .../openzfs/module/os/linux/zfs/zfs_vfsops.c       | 131 ++++++++++-- >>   sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c |   2 +- >>   sys/contrib/openzfs/module/zcommon/zfs_prop.c      |  22 ++ >>   sys/contrib/openzfs/module/zcommon/zfs_valstr.c    |   4 +- >>   sys/contrib/openzfs/module/zfs/abd.c               |   2 + >>   sys/contrib/openzfs/module/zfs/dbuf.c              |  25 ++- >>   sys/contrib/openzfs/module/zfs/ddt.c               |  32 +++ >>   sys/contrib/openzfs/module/zfs/dmu_direct.c        |   4 +- >>   sys/contrib/openzfs/module/zfs/dmu_objset.c        |  25 ++- >>   sys/contrib/openzfs/module/zfs/dmu_recv.c          |  48 +++-- >>   sys/contrib/openzfs/module/zfs/dsl_dataset.c       |  29 ++- >>   sys/contrib/openzfs/module/zfs/dsl_dir.c           |  42 ++-- >>   sys/contrib/openzfs/module/zfs/dsl_scan.c          |  13 +- >>   sys/contrib/openzfs/module/zfs/dsl_synctask.c      |  19 +- >>   sys/contrib/openzfs/module/zfs/metaslab.c          | 225 >> +++++++++++++++----- >>   sys/contrib/openzfs/module/zfs/refcount.c          |   3 +- >>   sys/contrib/openzfs/module/zfs/spa.c               | 101 ++++++++- >>   sys/contrib/openzfs/module/zfs/txg.c               |  34 +-- >>   sys/contrib/openzfs/module/zfs/vdev.c              |  60 +++++- >>   sys/contrib/openzfs/module/zfs/vdev_draid.c        |  21 +- >>   sys/contrib/openzfs/module/zfs/vdev_file.c         |   5 +- >>   sys/contrib/openzfs/module/zfs/vdev_indirect.c     |   3 +- >>   sys/contrib/openzfs/module/zfs/vdev_mirror.c       |   9 +- >>   sys/contrib/openzfs/module/zfs/vdev_missing.c      |   6 +- >>   sys/contrib/openzfs/module/zfs/vdev_raidz.c        |  34 ++- >>   sys/contrib/openzfs/module/zfs/vdev_rebuild.c      |   2 +- >>   sys/contrib/openzfs/module/zfs/vdev_removal.c      |  67 +++--- >>   sys/contrib/openzfs/module/zfs/vdev_root.c         |   3 +- >>   sys/contrib/openzfs/module/zfs/zcp.c               |  12 +- >>   sys/contrib/openzfs/module/zfs/zcp_synctask.c      |   2 - >>   sys/contrib/openzfs/module/zfs/zfs_debug_common.c  |  97 +++++++++ >>   sys/contrib/openzfs/module/zfs/zfs_fm.c            |  18 +- >>   sys/contrib/openzfs/module/zfs/zfs_ioctl.c         |  98 ++++++++- >>   sys/contrib/openzfs/module/zfs/zfs_quota.c         |  64 +++++- >>   sys/contrib/openzfs/module/zfs/zfs_znode.c         |   8 + >>   sys/contrib/openzfs/module/zfs/zio.c               | 144 ++++++++++--- >>   sys/contrib/openzfs/rpm/generic/zfs-dkms.spec.in   |   6 + >>   sys/contrib/openzfs/tests/runfiles/common.run      |  18 +- >>   sys/contrib/openzfs/tests/runfiles/linux.run       |  18 +- >>   sys/contrib/openzfs/tests/runfiles/sanity.run      |   4 + >>   .../openzfs/tests/zfs-tests/cmd/clonefile.c        |  11 +- >>   .../tests/zfs-tests/cmd/file/largest_file.c        |   2 +- >>   sys/contrib/openzfs/tests/zfs-tests/cmd/statx.c    |   3 + >>   .../openzfs/tests/zfs-tests/tests/Makefile.am      |  27 +++ >>   .../cli_root/zpool_add/zpool_add_dryrun_output.ksh |  22 +- >>   .../zpool_create/zpool_create_dryrun_output.ksh    |  15 +- >>   .../functional/cli_root/zpool_get/vdev_get_all.ksh |  92 ++++++++ >>   .../zpool_split/zpool_split_dryrun_output.ksh      |  14 +- >>   .../cli_root/zpool_status/zpool_status_003_pos.ksh |   2 +- >>   .../cli_root/zpool_status/zpool_status_004_pos.ksh |   2 +- >>   .../tests/functional/dedup/dedup_quota.ksh         |  21 +- >>   .../tests/functional/events/zed_cksum_reported.ksh |   2 +- >>   .../tests/functional/fault/auto_spare_double.ksh   | 122 +++++++++++ >>   .../functional/gang_blocks/gang_blocks_001_pos.ksh |  59 ++++++ >>   .../gang_blocks/gang_blocks_ddt_copies.ksh         |  79 +++++++ >>   .../online_offline/online_offline_001_pos.ksh      |  11 +- >>   .../online_offline/online_offline_002_neg.ksh      |   7 +- >>   .../online_offline/online_offline_003_neg.ksh      |   9 +- >>   .../pool_checkpoint/checkpoint_capacity.ksh        |   5 +- >>   .../pool_checkpoint/pool_checkpoint.kshlib         |   3 +- >>   .../projectquota/defaultprojectquota_001_pos.ksh   |  89 ++++++++ >>   .../projectquota/defaultprojectquota_002_pos.ksh   |  87 ++++++++ >>   .../projectquota/defaultprojectquota_003_neg.ksh   |  77 +++++++ >>   .../projectquota/defaultprojectquota_004_pos.ksh   |  67 ++++++ >>   .../projectquota/defaultprojectquota_005_pos.ksh   |  76 +++++++ >>   .../projectquota/defaultprojectquota_006_pos.ksh   |  90 ++++++++ >>   .../projectquota/defaultprojectquota_007_pos.ksh   | 130 ++++++++++++ >>   .../projectquota/projectquota_007_pos.ksh          |   4 +- >>   .../projectquota/projectquota_common.kshlib        |   2 + >>   .../projectquota/projectspace_005_pos.ksh          |  84 ++++++++ >>   .../replacement/resilver_restart_001.ksh           |   2 +- >>   .../tests/functional/slog/slog_006_pos.ksh         |   3 +- >>   .../userquota/defaultuserquota_001_pos.ksh         |  75 +++++++ >>   .../userquota/defaultuserquota_002_pos.ksh         |  96 +++++++++ >>   .../userquota/defaultuserquota_003_pos.ksh         |  62 ++++++ >>   .../userquota/defaultuserquota_004_neg.ksh         |  72 +++++++ >>   .../userquota/defaultuserquota_005_pos.ksh         |  76 +++++++ >>   .../userquota/defaultuserquota_006_pos.ksh         |  61 ++++++ >>   .../userquota/defaultuserquota_007_pos.ksh         |  90 ++++++++ >>   .../userquota/defaultuserquota_008_pos.ksh         |  78 +++++++ >>   .../userquota/defaultuserquota_009_pos.ksh         | 133 ++++++++++++ >>   .../userquota/defaultuserquota_010_neg.ksh         |  65 ++++++ >>   .../userquota/defaultuserquota_011_neg.ksh         |  79 +++++++ >>   .../userquota/defaultuserquota_012_neg.ksh         |  88 ++++++++ >>   .../userquota/defaultuserquota_013_neg.ksh         |  71 +++++++ >>   .../functional/userquota/groupspace_004_pos.ksh    |  78 +++++++ >>   .../tests/functional/userquota/userquota.cfg       |   2 + >>   .../functional/userquota/userquota_common.kshlib   |   6 + >>   .../functional/userquota/userspace_004_pos.ksh     |  80 +++++++ >>   .../tests/functional/vdev_disk/page_alignment.c    |   8 +- >>   .../functional/zvol/zvol_stress/zvol_stress.ksh    |   3 +- >>   .../openzfs/tests/zfs-tests/tests/perf/perf.shlib  | 136 ++++++------ >>   sys/modules/zfs/zfs_config.h                       |  12 +- >>   sys/modules/zfs/zfs_gitrev.h                       |   2 +- >>   166 files changed, 4680 insertions(+), 1144 deletions(-) >> >> diff --cc sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 >> index 000000000000,05db3af511eb..05db3af511eb >> mode 000000,100644..100644 >> --- a/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 >> +++ b/sys/contrib/openzfs/config/kernel-vfs-migratepage.m4 >> diff --cc sys/contrib/openzfs/module/zfs/zfs_debug_common.c >> index 000000000000,cff0dc01c39c..cff0dc01c39c >> mode 000000,100644..100644 >> --- a/sys/contrib/openzfs/module/zfs/zfs_debug_common.c >> +++ b/sys/contrib/openzfs/module/zfs/zfs_debug_common.c >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh >> index 000000000000,0a63b6059410..0a63b6059410 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_get/vdev_get_all.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh >> index 000000000000,6a905c867952..6a905c867952 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_spare_double.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh >> index 000000000000,3601f5422250..3601f5422250 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_001_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh >> index 000000000000,12ebcec3af37..12ebcec3af37 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/gang_blocks/gang_blocks_ddt_copies.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh >> index 000000000000,7d0bf5cf0fe1..7d0bf5cf0fe1 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_001_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh >> index 000000000000,eabf4fecfcb4..eabf4fecfcb4 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_002_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh >> index 000000000000,53ae9b213c1c..53ae9b213c1c >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_003_neg.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh >> index 000000000000,784077e62501..784077e62501 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_004_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh >> index 000000000000,2adf2a9340f7..2adf2a9340f7 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_005_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh >> index 000000000000,88af37c60549..88af37c60549 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_006_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh >> index 000000000000,fecb7670dfc6..fecb7670dfc6 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/defaultprojectquota_007_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh >> index 000000000000,92d6e2e81656..92d6e2e81656 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/projectquota/projectspace_005_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh >> index 000000000000,c57352595662..c57352595662 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_001_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh >> index 000000000000,325873f90af2..325873f90af2 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_002_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh >> index 000000000000,f43f5bd5e57e..f43f5bd5e57e >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_003_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh >> index 000000000000,42be33cac12c..42be33cac12c >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_004_neg.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh >> index 000000000000,c3302d10dae9..c3302d10dae9 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_005_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh >> index 000000000000,37e6e66c8119..37e6e66c8119 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_006_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh >> index 000000000000,91e27cf460fc..91e27cf460fc >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_007_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh >> index 000000000000,b8efb74d0f12..b8efb74d0f12 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_008_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh >> index 000000000000,30aa93e2b0ba..30aa93e2b0ba >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_009_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh >> index 000000000000,ec964236a115..ec964236a115 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_010_neg.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh >> index 000000000000,e822052ff3dd..e822052ff3dd >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_011_neg.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh >> index 000000000000,046273ebd869..046273ebd869 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_012_neg.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh >> index 000000000000,7877bee5f48d..7877bee5f48d >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/defaultuserquota_013_neg.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh >> index 000000000000,f7dc33591ca9..f7dc33591ca9 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/groupspace_004_pos.ksh >> diff --cc >> sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh >> index 000000000000,795c65101878..795c65101878 >> mode 000000,100755..100755 >> --- >> a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh >> +++ >> b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/userquota/userspace_004_pos.ksh >> diff --cc sys/modules/zfs/zfs_config.h >> index 2650db0a389b,000000000000..86ccdbee2d5b >> mode 100644,000000..100644 >> --- a/sys/modules/zfs/zfs_config.h >> +++ b/sys/modules/zfs/zfs_config.h >> @@@ -1,833 -1,0 +1,839 @@@ >>   +/* >>   + */ >>   + >>   +/* zfs_config.h.  Generated from zfs_config.h.in by configure.  */ >>   +/* zfs_config.h.in.  Generated from configure.ac by autoheader.  */ >>   + >>   +/* Define to 1 if translation of program messages to the user's >> native >>   +   language is requested. */ >>   +/* #undef ENABLE_NLS */ >>   + >>   +/* __assign_str() has one arg */ >>   +/* #undef HAVE_1ARG_ASSIGN_STR */ >>   + >>   +/* lookup_bdev() wants 1 arg */ >>   +/* #undef HAVE_1ARG_LOOKUP_BDEV */ >>   + >>   +/* kernel has access_ok with 'type' parameter */ >>   +/* #undef HAVE_ACCESS_OK_TYPE */ >>   + >>   +/* add_disk() returns int */ >>   +/* #undef HAVE_ADD_DISK_RET */ >>   + >>   +/* Define if host toolchain supports AES */ >>   +#define HAVE_AES 1 >>   + >>   +/* Define if you have [rt] */ >>   +#define HAVE_AIO_H 1 >>   + >>   +#ifdef __amd64__ >>   +#ifndef RESCUE >>   +/* Define if host toolchain supports AVX */ >>   +#define HAVE_AVX 1 >>   +#endif >>   + >>   +/* Define if host toolchain supports AVX2 */ >>   +#define HAVE_AVX2 1 >>   + >>   +/* Define if host toolchain supports AVX512BW */ >>   +#define HAVE_AVX512BW 1 >>   + >>   +/* Define if host toolchain supports AVX512CD */ >>   +#define HAVE_AVX512CD 1 >>   + >>   +/* Define if host toolchain supports AVX512DQ */ >>   +#define HAVE_AVX512DQ 1 >>   + >>   +/* Define if host toolchain supports AVX512ER */ >>   +#define HAVE_AVX512ER 1 >>   + >>   +/* Define if host toolchain supports AVX512F */ >>   +#define HAVE_AVX512F 1 >>   + >>   +/* Define if host toolchain supports AVX512IFMA */ >>   +#define HAVE_AVX512IFMA 1 >>   + >>   +/* Define if host toolchain supports AVX512PF */ >>   +#define HAVE_AVX512PF 1 >>   + >>   +/* Define if host toolchain supports AVX512VBMI */ >>   +#define HAVE_AVX512VBMI 1 >>   + >>   +/* Define if host toolchain supports AVX512VL */ >>   +#define HAVE_AVX512VL 1 >>   +#endif >>   + >>   +/* backtrace() is available */ >>   +/* #undef HAVE_BACKTRACE */ >>   + >>   +/* bdevname() is available */ >>   +/* #undef HAVE_BDEVNAME */ >>   + >>   +/* bdev_check_media_change() exists */ >>   +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ >>   + >>   +/* bdev_file_open_by_path() exists */ >>   +/* #undef HAVE_BDEV_FILE_OPEN_BY_PATH */ >>   + >>   +/* bdev_*_io_acct() available */ >>   +/* #undef HAVE_BDEV_IO_ACCT_63 */ >>   + >>   +/* bdev_*_io_acct() available */ >>   +/* #undef HAVE_BDEV_IO_ACCT_OLD */ >>   + >>   +/* bdev_kobj() exists */ >>   +/* #undef HAVE_BDEV_KOBJ */ >>   + >>   +/* bdev_max_discard_sectors() is available */ >>   +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ >>   + >>   +/* bdev_max_secure_erase_sectors() is available */ >>   +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ >>   + >>   +/* bdev_nr_bytes() is available */ >>   +/* #undef HAVE_BDEV_NR_BYTES */ >>   + >>   +/* bdev_open_by_path() exists */ >>   +/* #undef HAVE_BDEV_OPEN_BY_PATH */ >>   + >>   +/* bdev_release() exists */ >>   +/* #undef HAVE_BDEV_RELEASE */ >>   + >>   +/* block_device_operations->submit_bio() returns void */ >>   +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ >>   + >>   +/* bdev_whole() is available */ >>   +/* #undef HAVE_BDEV_WHOLE */ >>   + >>   +/* bio_alloc() takes 4 arguments */ >>   +/* #undef HAVE_BIO_ALLOC_4ARG */ >>   + >>   +/* bio->bi_bdev->bd_disk exists */ >>   +/* #undef HAVE_BIO_BDEV_DISK */ >>   + >>   +/* bio_*_io_acct() available */ >>   +/* #undef HAVE_BIO_IO_ACCT */ >>   + >>   +/* bio_max_segs() is implemented */ >>   +/* #undef HAVE_BIO_MAX_SEGS */ >>   + >>   +/* bio_set_dev() GPL-only */ >>   +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ >>   + >>   +/* bio_set_dev() is a macro */ >>   +/* #undef HAVE_BIO_SET_DEV_MACRO */ >>   + >>   +/* bio_set_op_attrs is available */ >>   +/* #undef HAVE_BIO_SET_OP_ATTRS */ >>   + >>   +/* blkdev_get_by_path() exists and takes 4 args */ >>   +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */ >>   + >>   +/* blkdev_get_by_path() handles ERESTARTSYS */ >>   +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ >>   + >>   +/* __blkdev_issue_discard(flags) is available */ >>   +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_FLAGS */ >>   + >>   +/* __blkdev_issue_discard() is available */ >>   +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_NOFLAGS */ >>   + >>   +/* blkdev_issue_discard(flags) is available */ >>   +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_FLAGS */ >>   + >>   +/* blkdev_issue_discard() is available */ >>   +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_NOFLAGS */ >>   + >>   +/* blkdev_issue_secure_erase() is available */ >>   +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ >>   + >>   +/* blkdev_put() exists */ >>   +/* #undef HAVE_BLKDEV_PUT */ >>   + >>   +/* blkdev_put() accepts void* as arg 2 */ >>   +/* #undef HAVE_BLKDEV_PUT_HOLDER */ >>   + >>   +/* struct queue_limits has a features field */ >>   +/* #undef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES */ >>   + >>   +/* blkdev_reread_part() exists */ >>   +/* #undef HAVE_BLKDEV_REREAD_PART */ >>   + >>   +/* blkg_tryget() is available */ >>   +/* #undef HAVE_BLKG_TRYGET */ >>   + >>   +/* blkg_tryget() GPL-only */ >>   +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ >>   + >>   +/* blk_alloc_disk() exists */ >>   +/* #undef HAVE_BLK_ALLOC_DISK */ >>   + >>   +/* blk_alloc_disk() exists and takes 2 args */ >>   +/* #undef HAVE_BLK_ALLOC_DISK_2ARG */ >>   + >>   +/* blk_alloc_queue() expects request function */ >>   +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ >>   + >>   +/* blk_alloc_queue_rh() expects request function */ >>   +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ >>   + >>   +/* blk_cleanup_disk() exists */ >>   +/* #undef HAVE_BLK_CLEANUP_DISK */ >>   + >>   +/* blk_mode_t is defined */ >>   +/* #undef HAVE_BLK_MODE_T */ >>   + >>   +/* block multiqueue hardware context is cached in struct request */ >>   +/* #undef HAVE_BLK_MQ_RQ_HCTX */ >>   + >>   +/* blk queue backing_dev_info is dynamic */ >>   +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ >>   + >>   +/* blk_queue_discard() is available */ >>   +/* #undef HAVE_BLK_QUEUE_DISCARD */ >>   + >>   +/* backing_dev_info is available through queue gendisk */ >>   +/* #undef HAVE_BLK_QUEUE_DISK_BDI */ >>   + >>   +/* blk_queue_secure_erase() is available */ >>   +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ >>   + >>   +/* blk_queue_update_readahead() exists */ >>   +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ >>   + >>   +/* BLK_STS_RESV_CONFLICT is defined */ >>   +/* #undef HAVE_BLK_STS_RESV_CONFLICT */ >>   + >>   +/* Define if release() in block_device_operations takes 1 arg */ >>   +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */ >>   + >>   +/* Define if revalidate_disk() in block_device_operations */ >>   +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ >>   + >>   +/* Define to 1 if you have the Mac OS X function >>   +   CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ >>   +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ >>   + >>   +/* Define to 1 if you have the Mac OS X function >> CFPreferencesCopyAppValue in >>   +   the CoreFoundation framework. */ >>   +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ >>   + >>   +/* check_disk_change() exists */ >>   +/* #undef HAVE_CHECK_DISK_CHANGE */ >>   + >>   +/* copy_splice_read exists */ >>   +/* #undef HAVE_COPY_SPLICE_READ */ >>   + >>   +/* cpu_has_feature() is GPL-only */ >>   +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ >>   + >>   +/* Define if the GNU dcgettext() function is already present or >> preinstalled. >>   +   */ >>   +/* #undef HAVE_DCGETTEXT */ >>   + >>   +/* DECLARE_EVENT_CLASS() is available */ >>   +/* #undef HAVE_DECLARE_EVENT_CLASS */ >>   + >>   +/* 3-arg dequeue_signal() takes a type argument */ >>   +/* #undef HAVE_DEQUEUE_SIGNAL_3ARG_TYPE */ >>   + >>   +/* dequeue_signal() takes 4 arguments */ >>   +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ >>   + >>   +/* lookup_bdev() wants dev_t arg */ >>   +/* #undef HAVE_DEVT_LOOKUP_BDEV */ >>   + >>   +/* disk_check_media_change() exists */ >>   +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */ >>   + >>   +/* disk_*_io_acct() available */ >>   +/* #undef HAVE_DISK_IO_ACCT */ >>   + >>   +/* disk_update_readahead() exists */ >>   +/* #undef HAVE_DISK_UPDATE_READAHEAD */ >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_DLFCN_H 1 >>   + >>   +/* dops->d_revalidate() takes 4 args */ >>   +/* #undef HAVE_D_REVALIDATE_4ARGS */ >>   + >>   +/* Define to 1 if you have the 'execvpe' function. */ >>   +#define HAVE_EXECVPE 1 >>   + >>   +/* fault_in_iov_iter_readable() is available */ >>   +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ >>   + >>   +/* file->f_version exists */ >>   +/* #undef HAVE_FILE_F_VERSION */ >>   + >>   +/* flush_dcache_page() is GPL-only */ >>   +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ >>   + >>   +/* Define if compiler supports -Wformat-overflow */ >>   +/* #undef HAVE_FORMAT_OVERFLOW */ >>   + >>   +/* fsync_bdev() is declared in include/blkdev.h */ >>   +/* #undef HAVE_FSYNC_BDEV */ >>   + >>   +/* yes */ >>   +/* #undef HAVE_GENERIC_FADVISE */ >>   + >>   +/* generic_fillattr requires struct mnt_idmap* */ >>   +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ >>   + >>   +/* generic_fillattr requires struct mnt_idmap* and u32 >> request_mask */ >>   +/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */ >>   + >>   +/* generic_fillattr requires struct user_namespace* */ >>   +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ >>   + >>   +/* generic_*_io_acct() 4 arg available */ >>   +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ >>   + >>   +/* GENHD_FL_EXT_DEVT flag is available */ >>   +/* #undef HAVE_GENHD_FL_EXT_DEVT */ >>   + >>   +/* GENHD_FL_NO_PART flag is available */ >>   +/* #undef HAVE_GENHD_FL_NO_PART */ >>   + >>   +/* Define if the GNU gettext() function is already present or >> preinstalled. */ >>   +/* #undef HAVE_GETTEXT */ >>   + >>   +/* Define to 1 if you have the 'gettid' function. */ >>   +/* #undef HAVE_GETTID */ >>   + >>   +/* iops->get_acl() exists */ >>   +/* #undef HAVE_GET_ACL */ >>   + >>   +/* iops->get_acl() takes rcu */ >>   +/* #undef HAVE_GET_ACL_RCU */ >>   + >>   +/* has iops->get_inode_acl() */ >>   +/* #undef HAVE_GET_INODE_ACL */ >>   + >>   +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ >>   +/* #undef HAVE_IATTR_VFSID */ >>   + >>   +/* Define if you have the iconv() function and it works. */ >>   +#define HAVE_ICONV 1 >>   + >>   +/* iops->getattr() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IDMAP_IOPS_GETATTR */ >>   + >>   +/* iops->setattr() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IDMAP_IOPS_SETATTR */ >>   + >>   +/* APIs for idmapped mount are present */ >>   +/* #undef HAVE_IDMAP_MNT_API */ >>   + >>   +/* mnt_idmap does not have user_namespace */ >>   +/* #undef HAVE_IDMAP_NO_USERNS */ >>   + >>   +/* Define if compiler supports -Wimplicit-fallthrough */ >>   +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ >>   + >>   +/* Define if compiler supports -Winfinite-recursion */ >>   +/* #undef HAVE_INFINITE_RECURSION */ >>   + >>   +/* inode_get_atime() exists in linux/fs.h */ >>   +/* #undef HAVE_INODE_GET_ATIME */ >>   + >>   +/* inode_get_ctime() exists in linux/fs.h */ >>   +/* #undef HAVE_INODE_GET_CTIME */ >>   + >>   +/* inode_get_mtime() exists in linux/fs.h */ >>   +/* #undef HAVE_INODE_GET_MTIME */ >>   + >>   +/* inode_owner_or_capable() exists */ >>   +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ >>   + >>   +/* inode_owner_or_capable() takes mnt_idmap */ >>   +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ >>   + >>   +/* inode_owner_or_capable() takes user_ns */ >>   +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ >>   + >>   +/* inode_set_atime_to_ts() exists in linux/fs.h */ >>   +/* #undef HAVE_INODE_SET_ATIME_TO_TS */ >>   + >>   +/* inode_set_ctime_to_ts() exists in linux/fs.h */ >>   +/* #undef HAVE_INODE_SET_CTIME_TO_TS */ >>   + >>   +/* inode_set_mtime_to_ts() exists in linux/fs.h */ >>   +/* #undef HAVE_INODE_SET_MTIME_TO_TS */ >>   + >>   +/* timestamp_truncate() exists */ >>   +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_INTTYPES_H 1 >>   + >>   +/* iops->create() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IOPS_CREATE_IDMAP */ >>   + >>   +/* iops->create() takes struct user_namespace* */ >>   +/* #undef HAVE_IOPS_CREATE_USERNS */ >>   + >>   +/* iops->mkdir() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IOPS_MKDIR_IDMAP */ >>   + >>   +/* iops->mkdir() takes struct user_namespace* */ >>   +/* #undef HAVE_IOPS_MKDIR_USERNS */ >>   + >>   +/* iops->mknod() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IOPS_MKNOD_IDMAP */ >>   + >>   +/* iops->mknod() takes struct user_namespace* */ >>   +/* #undef HAVE_IOPS_MKNOD_USERNS */ >>   + >>   +/* iops->permission() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ >>   + >>   +/* iops->permission() takes struct user_namespace* */ >>   +/* #undef HAVE_IOPS_PERMISSION_USERNS */ >>   + >>   +/* iops->rename() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IOPS_RENAME_IDMAP */ >>   + >>   +/* iops->rename() takes struct user_namespace* */ >>   +/* #undef HAVE_IOPS_RENAME_USERNS */ >>   + >>   +/* iops->symlink() takes struct mnt_idmap* */ >>   +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ >>   + >>   +/* iops->symlink() takes struct user_namespace* */ >>   +/* #undef HAVE_IOPS_SYMLINK_USERNS */ >>   + >>   +/* iov_iter_get_pages2() is available */ >>   +/* #undef HAVE_IOV_ITER_GET_PAGES2 */ >>   + >>   +/* iov_iter_type() is available */ >>   +/* #undef HAVE_IOV_ITER_TYPE */ >>   + >>   +/* Define to 1 if you have the 'issetugid' function. */ >>   +#define HAVE_ISSETUGID 1 >>   + >>   +/* iter_iov() is available */ >>   +/* #undef HAVE_ITER_IOV */ >>   + >>   +/* iter_is_ubuf() is available */ >>   +/* #undef HAVE_ITER_IS_UBUF */ >>   + >>   +/* kernel has kernel_fpu_* functions */ >>   +/* #undef HAVE_KERNEL_FPU */ >>   + >>   +/* kernel has asm/fpu/api.h */ >>   +/* #undef HAVE_KERNEL_FPU_API_HEADER */ >>   + >>   +/* kernel fpu internal */ >>   +/* #undef HAVE_KERNEL_FPU_INTERNAL */ >>   + >>   +/* kernel has asm/fpu/internal.h */ >>   +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ >>   + >>   +/* Define if compiler supports -Winfinite-recursion */ >>   +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ >>   + >>   +/* kernel defines intptr_t */ >>   +/* #undef HAVE_KERNEL_INTPTR_T */ >>   + >>   +/* kernel has kernel_neon_* functions */ >>   +/* #undef HAVE_KERNEL_NEON */ >>   + >>   +/* kernel does stack verification */ >>   +/* #undef HAVE_KERNEL_OBJTOOL */ >>   + >>   +/* kernel has linux/objtool.h */ >>   +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ >>   + >>   +/* strlcpy() exists */ >>   +/* #undef HAVE_KERNEL_STRLCPY */ >>   + >>   +/* kernel has kmap_local_page */ >>   +/* #undef HAVE_KMAP_LOCAL_PAGE */ >>   + >>   +/* Define if you have [aio] */ >>   +/* #undef HAVE_LIBAIO */ >>   + >>   +/* Define if you have [blkid] */ >>   +/* #undef HAVE_LIBBLKID */ >>   + >>   +/* Define if you have [crypto] */ >>   +#define HAVE_LIBCRYPTO 1 >>   + >>   +/* Define if you have [tirpc] */ >>   +/* #undef HAVE_LIBTIRPC */ >>   + >>   +/* Define if you have [udev] */ >>   +/* #undef HAVE_LIBUDEV */ >>   + >>   +/* Define if you have [unwind] */ >>   +/* #undef HAVE_LIBUNWIND */ >>   + >>   +/* libunwind has unw_get_elf_filename */ >>   +/* #undef HAVE_LIBUNWIND_ELF */ >>   + >>   +/* Define if you have [uuid] */ >>   +/* #undef HAVE_LIBUUID */ >>   + >>   +/* building against unsupported kernel version */ >>   +/* #undef HAVE_LINUX_EXPERIMENTAL */ >>   + >>   +/* makedev() is declared in sys/mkdev.h */ >>   +/* #undef HAVE_MAKEDEV_IN_MKDEV */ >>   + >>   +/* makedev() is declared in sys/sysmacros.h */ >>   +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */ >>   + >>   +/* Noting that make_request_fn() returns blk_qc_t */ >>   +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ >>   + >>   +/* Define to 1 if you have the 'mlockall' function. */ >>   +#define HAVE_MLOCKALL 1 >>   + >>   +/* PG_error flag is available */ >>   +/* #undef HAVE_MM_PAGE_FLAG_ERROR */ >>   + >>   +/* page_mapping() is available */ >>   +/* #undef HAVE_MM_PAGE_MAPPING */ >>   + >>   +/* page_size() is available */ >>   +/* #undef HAVE_MM_PAGE_SIZE */ >>   + >>   +/* Define if host toolchain supports MOVBE */ >>   +#define HAVE_MOVBE 1 >>   + >>   +/* folio_wait_bit() exists */ >>   +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ >>   + >>   +/* part_to_dev() exists */ >>   +/* #undef HAVE_PART_TO_DEV */ >>   + >>   +/* iops->getattr() takes a path */ >>   +/* #undef HAVE_PATH_IOPS_GETATTR */ >>   + >>   +/* Define if host toolchain supports PCLMULQDQ */ >>   +#define HAVE_PCLMULQDQ 1 >>   + >>   +/* pin_user_pages_unlocked() is available */ >>   +/* #undef HAVE_PIN_USER_PAGES_UNLOCKED */ >>   + >>   +/* proc_handler ctl_table arg is const */ >>   +/* #undef HAVE_PROC_HANDLER_CTL_TABLE_CONST */ >>   + >>   +/* proc_ops structure exists */ >>   +/* #undef HAVE_PROC_OPS_STRUCT */ >>   + >>   +/* If available, contains the Python version number currently in >> use. */ >>   +#define HAVE_PYTHON "3.7" >>   + >>   +/* qat is enabled and existed */ >>   +/* #undef HAVE_QAT */ >>   + >>   +/* struct reclaim_state has reclaimed */ >>   +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */ >>   + >>   +/* register_shrinker is vararg */ >>   +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ >>   + >>   +/* register_sysctl_sz exists */ >>   +/* #undef HAVE_REGISTER_SYSCTL_SZ */ >>   + >>   +/* register_sysctl_table exists */ >>   +/* #undef HAVE_REGISTER_SYSCTL_TABLE */ >>   + >>   +/* iops->rename() wants flags */ >>   +/* #undef HAVE_RENAME_WANTS_FLAGS */ >>   + >>   +/* revalidate_disk() is available */ >>   +/* #undef HAVE_REVALIDATE_DISK */ >>   + >>   +/* revalidate_disk_size() is available */ >>   +/* #undef HAVE_REVALIDATE_DISK_SIZE */ >>   + >>   +/* Define to 1 if you have the header >> file. */ >>   +#define HAVE_SECURITY_PAM_MODULES_H 1 >>   + >>   +/* setattr_prepare() accepts mnt_idmap */ >>   +/* #undef HAVE_SETATTR_PREPARE_IDMAP */ >>   + >>   +/* setattr_prepare() is available, doesn't accept user_namespace */ >>   +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ >>   + >>   +/* setattr_prepare() accepts user_namespace */ >>   +/* #undef HAVE_SETATTR_PREPARE_USERNS */ >>   + >>   +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */ >>   +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */ >>   + >>   +/* iops->set_acl() takes 4 args */ >>   +/* #undef HAVE_SET_ACL_USERNS */ >>   + >>   +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */ >>   +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */ >>   + >>   +/* shrinker_register exists */ >>   +/* #undef HAVE_SHRINKER_REGISTER */ >>   + >>   +/* kernel_siginfo_t exists */ >>   +/* #undef HAVE_SIGINFO */ >>   + >>   +#if defined(__amd64__) || defined(__i386__) >>   +/* Define if host toolchain supports SSE */ >>   +#define HAVE_SSE 1 >>   + >>   +/* Define if host toolchain supports SSE2 */ >>   +#define HAVE_SSE2 1 >>   + >>   +/* Define if host toolchain supports SSE3 */ >>   +#define HAVE_SSE3 1 >>   + >>   +/* Define if host toolchain supports SSE4.1 */ >>   +#define HAVE_SSE4_1 1 >>   + >>   +/* Define if host toolchain supports SSE4.2 */ >>   +#define HAVE_SSE4_2 1 >>   + >>   +/* Define if host toolchain supports SSSE3 */ >>   +#define HAVE_SSSE3 1 >>   +#endif >>   + >>   +/* STACK_FRAME_NON_STANDARD is defined */ >>   +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ >>   + >>   +/* standalone exists */ >>   +/* #undef HAVE_STANDALONE_LINUX_STDARG */ >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_STDINT_H 1 >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_STDIO_H 1 >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_STDLIB_H 1 >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_STRINGS_H 1 >>   + >>   +/* Define to 1 if you have the header file. */ >>   +#define HAVE_STRING_H 1 >>   + >>   +/* Define to 1 if you have the 'strlcat' function. */ >>   +#define HAVE_STRLCAT 1 >>   + >>   +/* Define to 1 if you have the 'strlcpy' function. */ >> *** 224 LINES SKIPPED *** >> >